@morojs/moro 1.6.2 → 1.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/dist/core/http/http-server.js +12 -9
  2. package/dist/core/http/http-server.js.map +1 -1
  3. package/dist/core/http/uws-http-server.js +1 -1
  4. package/dist/core/http/uws-http-server.js.map +1 -1
  5. package/dist/core/middleware/built-in/auth/core.d.ts +78 -0
  6. package/dist/core/middleware/built-in/auth/core.js +358 -0
  7. package/dist/core/middleware/built-in/auth/core.js.map +1 -0
  8. package/dist/core/middleware/built-in/{auth-helpers.js → auth/helpers.js} +1 -1
  9. package/dist/core/middleware/built-in/auth/helpers.js.map +1 -0
  10. package/dist/core/middleware/built-in/auth/hook.d.ts +30 -0
  11. package/dist/core/middleware/built-in/auth/hook.js +99 -0
  12. package/dist/core/middleware/built-in/auth/hook.js.map +1 -0
  13. package/dist/core/middleware/built-in/auth/index.d.ts +7 -0
  14. package/dist/core/middleware/built-in/auth/index.js +15 -0
  15. package/dist/core/middleware/built-in/auth/index.js.map +1 -0
  16. package/dist/core/middleware/built-in/{jwt-helpers.js → auth/jwt-helpers.js} +1 -1
  17. package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -0
  18. package/dist/core/middleware/built-in/auth/middleware.d.ts +23 -0
  19. package/dist/core/middleware/built-in/auth/middleware.js +71 -0
  20. package/dist/core/middleware/built-in/auth/middleware.js.map +1 -0
  21. package/dist/core/middleware/built-in/{auth-providers.d.ts → auth/providers.d.ts} +1 -1
  22. package/dist/core/middleware/built-in/{auth-providers.js → auth/providers.js} +1 -1
  23. package/dist/core/middleware/built-in/auth/providers.js.map +1 -0
  24. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.d.ts +1 -1
  25. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.js +1 -1
  26. package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -0
  27. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/index.d.ts +1 -1
  28. package/dist/core/middleware/built-in/cache/adapters/cache/index.js.map +1 -0
  29. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.d.ts +1 -1
  30. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.js +1 -1
  31. package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -0
  32. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.d.ts +1 -1
  33. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.js +2 -2
  34. package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -0
  35. package/dist/core/middleware/built-in/{adapters → cache/adapters}/index.d.ts +0 -2
  36. package/{src/core/middleware/built-in/adapters/index.ts → dist/core/middleware/built-in/cache/adapters/index.js} +1 -3
  37. package/dist/core/middleware/built-in/cache/adapters/index.js.map +1 -0
  38. package/dist/core/middleware/built-in/cache/core.d.ts +37 -0
  39. package/dist/core/middleware/built-in/cache/core.js +87 -0
  40. package/dist/core/middleware/built-in/cache/core.js.map +1 -0
  41. package/dist/core/middleware/built-in/cache/hook.d.ts +20 -0
  42. package/dist/core/middleware/built-in/{cache.js → cache/hook.js} +22 -5
  43. package/dist/core/middleware/built-in/cache/hook.js.map +1 -0
  44. package/dist/core/middleware/built-in/cache/index.d.ts +3 -0
  45. package/dist/core/middleware/built-in/cache/index.js +9 -0
  46. package/dist/core/middleware/built-in/cache/index.js.map +1 -0
  47. package/dist/core/middleware/built-in/cache/middleware.d.ts +17 -0
  48. package/dist/core/middleware/built-in/cache/middleware.js +44 -0
  49. package/dist/core/middleware/built-in/cache/middleware.js.map +1 -0
  50. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.d.ts +1 -1
  51. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.js +1 -1
  52. package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js.map +1 -0
  53. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.d.ts +1 -1
  54. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.js +1 -1
  55. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js.map +1 -0
  56. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.d.ts +1 -1
  57. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.js +2 -2
  58. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -0
  59. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/index.d.ts +1 -1
  60. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js.map +1 -0
  61. package/dist/core/middleware/built-in/cdn/adapters/index.d.ts +2 -0
  62. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/index.js +0 -2
  63. package/dist/core/middleware/built-in/cdn/adapters/index.js.map +1 -0
  64. package/dist/core/middleware/built-in/cdn/core.d.ts +43 -0
  65. package/dist/core/middleware/built-in/cdn/core.js +144 -0
  66. package/dist/core/middleware/built-in/cdn/core.js.map +1 -0
  67. package/dist/core/middleware/built-in/cdn/hook.d.ts +22 -0
  68. package/dist/core/middleware/built-in/cdn/hook.js +70 -0
  69. package/dist/core/middleware/built-in/cdn/hook.js.map +1 -0
  70. package/dist/core/middleware/built-in/cdn/index.d.ts +5 -0
  71. package/dist/core/middleware/built-in/cdn/index.js +11 -0
  72. package/dist/core/middleware/built-in/cdn/index.js.map +1 -0
  73. package/dist/core/middleware/built-in/cdn/middleware.d.ts +21 -0
  74. package/dist/core/middleware/built-in/cdn/middleware.js +52 -0
  75. package/dist/core/middleware/built-in/cdn/middleware.js.map +1 -0
  76. package/dist/core/middleware/built-in/cookie/core.d.ts +37 -0
  77. package/dist/core/middleware/built-in/cookie/core.js +83 -0
  78. package/dist/core/middleware/built-in/cookie/core.js.map +1 -0
  79. package/dist/core/middleware/built-in/cookie/hook.d.ts +20 -0
  80. package/dist/core/middleware/built-in/cookie/hook.js +47 -0
  81. package/dist/core/middleware/built-in/cookie/hook.js.map +1 -0
  82. package/dist/core/middleware/built-in/cookie/index.d.ts +3 -0
  83. package/dist/core/middleware/built-in/cookie/index.js +9 -0
  84. package/dist/core/middleware/built-in/cookie/index.js.map +1 -0
  85. package/dist/core/middleware/built-in/cookie/middleware.d.ts +17 -0
  86. package/dist/core/middleware/built-in/cookie/middleware.js +36 -0
  87. package/dist/core/middleware/built-in/cookie/middleware.js.map +1 -0
  88. package/dist/core/middleware/built-in/cors/core.d.ts +23 -0
  89. package/dist/core/middleware/built-in/cors/core.js +51 -0
  90. package/dist/core/middleware/built-in/cors/core.js.map +1 -0
  91. package/dist/core/middleware/built-in/cors/hook.d.ts +17 -0
  92. package/dist/core/middleware/built-in/cors/hook.js +37 -0
  93. package/dist/core/middleware/built-in/cors/hook.js.map +1 -0
  94. package/dist/core/middleware/built-in/cors/index.d.ts +3 -0
  95. package/dist/core/middleware/built-in/cors/index.js +9 -0
  96. package/dist/core/middleware/built-in/cors/index.js.map +1 -0
  97. package/dist/core/middleware/built-in/cors/middleware.d.ts +16 -0
  98. package/dist/core/middleware/built-in/cors/middleware.js +22 -0
  99. package/dist/core/middleware/built-in/cors/middleware.js.map +1 -0
  100. package/dist/core/middleware/built-in/csp/core.d.ts +45 -0
  101. package/dist/core/middleware/built-in/csp/core.js +88 -0
  102. package/dist/core/middleware/built-in/csp/core.js.map +1 -0
  103. package/dist/core/middleware/built-in/csp/hook.d.ts +22 -0
  104. package/dist/core/middleware/built-in/csp/hook.js +47 -0
  105. package/dist/core/middleware/built-in/csp/hook.js.map +1 -0
  106. package/dist/core/middleware/built-in/csp/index.d.ts +3 -0
  107. package/dist/core/middleware/built-in/csp/index.js +9 -0
  108. package/dist/core/middleware/built-in/csp/index.js.map +1 -0
  109. package/dist/core/middleware/built-in/csp/middleware.d.ts +19 -0
  110. package/dist/core/middleware/built-in/csp/middleware.js +29 -0
  111. package/dist/core/middleware/built-in/csp/middleware.js.map +1 -0
  112. package/dist/core/middleware/built-in/csrf/core.d.ts +28 -0
  113. package/dist/core/middleware/built-in/csrf/core.js +69 -0
  114. package/dist/core/middleware/built-in/csrf/core.js.map +1 -0
  115. package/dist/core/middleware/built-in/csrf/hook.d.ts +17 -0
  116. package/dist/core/middleware/built-in/csrf/hook.js +45 -0
  117. package/dist/core/middleware/built-in/csrf/hook.js.map +1 -0
  118. package/dist/core/middleware/built-in/csrf/index.d.ts +3 -0
  119. package/dist/core/middleware/built-in/csrf/index.js +9 -0
  120. package/dist/core/middleware/built-in/csrf/index.js.map +1 -0
  121. package/dist/core/middleware/built-in/csrf/middleware.d.ts +16 -0
  122. package/dist/core/middleware/built-in/csrf/middleware.js +34 -0
  123. package/dist/core/middleware/built-in/csrf/middleware.js.map +1 -0
  124. package/dist/core/middleware/built-in/error-tracker/index.d.ts +1 -0
  125. package/dist/core/middleware/built-in/error-tracker/index.js +4 -0
  126. package/dist/core/middleware/built-in/error-tracker/index.js.map +1 -0
  127. package/dist/core/middleware/built-in/error-tracker/middleware.d.ts +12 -0
  128. package/dist/core/middleware/built-in/{error-tracker.js → error-tracker/middleware.js} +14 -3
  129. package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -0
  130. package/dist/core/middleware/built-in/index.d.ts +25 -59
  131. package/dist/core/middleware/built-in/index.js +31 -31
  132. package/dist/core/middleware/built-in/index.js.map +1 -1
  133. package/dist/core/middleware/built-in/performance-monitor/index.d.ts +1 -0
  134. package/dist/core/middleware/built-in/performance-monitor/index.js +4 -0
  135. package/dist/core/middleware/built-in/performance-monitor/index.js.map +1 -0
  136. package/dist/core/middleware/built-in/performance-monitor/middleware.d.ts +12 -0
  137. package/dist/core/middleware/built-in/{performance-monitor.js → performance-monitor/middleware.js} +14 -3
  138. package/dist/core/middleware/built-in/performance-monitor/middleware.js.map +1 -0
  139. package/dist/core/middleware/built-in/rate-limit/core.d.ts +33 -0
  140. package/dist/core/middleware/built-in/rate-limit/core.js +86 -0
  141. package/dist/core/middleware/built-in/rate-limit/core.js.map +1 -0
  142. package/dist/core/middleware/built-in/rate-limit/hook.d.ts +20 -0
  143. package/dist/core/middleware/built-in/{rate-limit.js → rate-limit/hook.js} +22 -16
  144. package/dist/core/middleware/built-in/rate-limit/hook.js.map +1 -0
  145. package/dist/core/middleware/built-in/rate-limit/index.d.ts +3 -0
  146. package/dist/core/middleware/built-in/rate-limit/index.js +9 -0
  147. package/dist/core/middleware/built-in/rate-limit/index.js.map +1 -0
  148. package/dist/core/middleware/built-in/rate-limit/middleware.d.ts +16 -0
  149. package/dist/core/middleware/built-in/rate-limit/middleware.js +35 -0
  150. package/dist/core/middleware/built-in/rate-limit/middleware.js.map +1 -0
  151. package/dist/core/middleware/built-in/request-logger/index.d.ts +1 -0
  152. package/dist/core/middleware/built-in/request-logger/index.js +4 -0
  153. package/dist/core/middleware/built-in/request-logger/index.js.map +1 -0
  154. package/dist/core/middleware/built-in/request-logger/middleware.d.ts +12 -0
  155. package/dist/core/middleware/built-in/{request-logger.js → request-logger/middleware.js} +14 -3
  156. package/dist/core/middleware/built-in/request-logger/middleware.js.map +1 -0
  157. package/dist/core/middleware/built-in/session/core.d.ts +73 -0
  158. package/dist/core/middleware/built-in/session/core.js +227 -0
  159. package/dist/core/middleware/built-in/session/core.js.map +1 -0
  160. package/dist/core/middleware/built-in/session/hook.d.ts +17 -0
  161. package/dist/core/middleware/built-in/session/hook.js +53 -0
  162. package/dist/core/middleware/built-in/session/hook.js.map +1 -0
  163. package/dist/core/middleware/built-in/session/index.d.ts +3 -0
  164. package/dist/core/middleware/built-in/session/index.js +9 -0
  165. package/dist/core/middleware/built-in/session/index.js.map +1 -0
  166. package/dist/core/middleware/built-in/session/middleware.d.ts +17 -0
  167. package/dist/core/middleware/built-in/session/middleware.js +38 -0
  168. package/dist/core/middleware/built-in/session/middleware.js.map +1 -0
  169. package/dist/core/middleware/built-in/sse/core.d.ts +44 -0
  170. package/dist/core/middleware/built-in/sse/core.js +117 -0
  171. package/dist/core/middleware/built-in/sse/core.js.map +1 -0
  172. package/dist/core/middleware/built-in/sse/hook.d.ts +18 -0
  173. package/dist/core/middleware/built-in/sse/hook.js +60 -0
  174. package/dist/core/middleware/built-in/sse/hook.js.map +1 -0
  175. package/dist/core/middleware/built-in/sse/index.d.ts +3 -0
  176. package/dist/core/middleware/built-in/sse/index.js +9 -0
  177. package/dist/core/middleware/built-in/sse/index.js.map +1 -0
  178. package/dist/core/middleware/built-in/sse/middleware.d.ts +18 -0
  179. package/dist/core/middleware/built-in/sse/middleware.js +43 -0
  180. package/dist/core/middleware/built-in/sse/middleware.js.map +1 -0
  181. package/dist/core/middleware/built-in/validation/core.d.ts +23 -0
  182. package/dist/core/middleware/built-in/validation/core.js +93 -0
  183. package/dist/core/middleware/built-in/validation/core.js.map +1 -0
  184. package/dist/core/middleware/built-in/validation/hook.d.ts +13 -0
  185. package/dist/core/middleware/built-in/{validation.js → validation/hook.js} +14 -3
  186. package/dist/core/middleware/built-in/validation/hook.js.map +1 -0
  187. package/dist/core/middleware/built-in/validation/index.d.ts +3 -0
  188. package/dist/core/middleware/built-in/validation/index.js +9 -0
  189. package/dist/core/middleware/built-in/validation/index.js.map +1 -0
  190. package/dist/core/middleware/built-in/validation/middleware.d.ts +16 -0
  191. package/dist/core/middleware/built-in/validation/middleware.js +27 -0
  192. package/dist/core/middleware/built-in/validation/middleware.js.map +1 -0
  193. package/dist/core/middleware/index.js +6 -0
  194. package/dist/core/middleware/index.js.map +1 -1
  195. package/dist/core/routing/unified-router.d.ts +4 -20
  196. package/dist/core/routing/unified-router.js +61 -106
  197. package/dist/core/routing/unified-router.js.map +1 -1
  198. package/dist/index.d.ts +3 -2
  199. package/dist/index.js +3 -2
  200. package/dist/index.js.map +1 -1
  201. package/dist/moro.js +12 -18
  202. package/dist/moro.js.map +1 -1
  203. package/dist/types/hooks.d.ts +3 -0
  204. package/package.json +2 -6
  205. package/dist/core/middleware/built-in/adapters/cache/file.js.map +0 -1
  206. package/dist/core/middleware/built-in/adapters/cache/index.js.map +0 -1
  207. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +0 -1
  208. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +0 -1
  209. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +0 -1
  210. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +0 -1
  211. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +0 -1
  212. package/dist/core/middleware/built-in/adapters/cdn/index.js.map +0 -1
  213. package/dist/core/middleware/built-in/adapters/index.js.map +0 -1
  214. package/dist/core/middleware/built-in/auth-helpers.js.map +0 -1
  215. package/dist/core/middleware/built-in/auth-providers.js.map +0 -1
  216. package/dist/core/middleware/built-in/auth.d.ts +0 -30
  217. package/dist/core/middleware/built-in/auth.js +0 -348
  218. package/dist/core/middleware/built-in/auth.js.map +0 -1
  219. package/dist/core/middleware/built-in/cache.d.ts +0 -3
  220. package/dist/core/middleware/built-in/cache.js.map +0 -1
  221. package/dist/core/middleware/built-in/cdn.d.ts +0 -3
  222. package/dist/core/middleware/built-in/cdn.js +0 -109
  223. package/dist/core/middleware/built-in/cdn.js.map +0 -1
  224. package/dist/core/middleware/built-in/cookie.d.ts +0 -14
  225. package/dist/core/middleware/built-in/cookie.js +0 -64
  226. package/dist/core/middleware/built-in/cookie.js.map +0 -1
  227. package/dist/core/middleware/built-in/cors.d.ts +0 -2
  228. package/dist/core/middleware/built-in/cors.js +0 -25
  229. package/dist/core/middleware/built-in/cors.js.map +0 -1
  230. package/dist/core/middleware/built-in/csp.d.ts +0 -22
  231. package/dist/core/middleware/built-in/csp.js +0 -68
  232. package/dist/core/middleware/built-in/csp.js.map +0 -1
  233. package/dist/core/middleware/built-in/csrf.d.ts +0 -9
  234. package/dist/core/middleware/built-in/csrf.js +0 -60
  235. package/dist/core/middleware/built-in/csrf.js.map +0 -1
  236. package/dist/core/middleware/built-in/error-tracker.d.ts +0 -1
  237. package/dist/core/middleware/built-in/error-tracker.js.map +0 -1
  238. package/dist/core/middleware/built-in/jwt-helpers.js.map +0 -1
  239. package/dist/core/middleware/built-in/performance-monitor.d.ts +0 -1
  240. package/dist/core/middleware/built-in/performance-monitor.js.map +0 -1
  241. package/dist/core/middleware/built-in/rate-limit.d.ts +0 -6
  242. package/dist/core/middleware/built-in/rate-limit.js.map +0 -1
  243. package/dist/core/middleware/built-in/request-logger.d.ts +0 -1
  244. package/dist/core/middleware/built-in/request-logger.js.map +0 -1
  245. package/dist/core/middleware/built-in/session.d.ts +0 -41
  246. package/dist/core/middleware/built-in/session.js +0 -205
  247. package/dist/core/middleware/built-in/session.js.map +0 -1
  248. package/dist/core/middleware/built-in/sse.d.ts +0 -6
  249. package/dist/core/middleware/built-in/sse.js +0 -69
  250. package/dist/core/middleware/built-in/sse.js.map +0 -1
  251. package/dist/core/middleware/built-in/validation.d.ts +0 -2
  252. package/dist/core/middleware/built-in/validation.js.map +0 -1
  253. package/jest.config.mjs +0 -41
  254. package/src/core/auth/README.md +0 -339
  255. package/src/core/auth/morojs-adapter.ts +0 -415
  256. package/src/core/config/config-manager.ts +0 -133
  257. package/src/core/config/config-sources.ts +0 -600
  258. package/src/core/config/config-validator.ts +0 -1116
  259. package/src/core/config/file-loader.ts +0 -150
  260. package/src/core/config/index.ts +0 -109
  261. package/src/core/config/schema.ts +0 -164
  262. package/src/core/config/utils.ts +0 -244
  263. package/src/core/database/README.md +0 -238
  264. package/src/core/database/adapters/drizzle.ts +0 -415
  265. package/src/core/database/adapters/index.ts +0 -42
  266. package/src/core/database/adapters/mongodb.ts +0 -317
  267. package/src/core/database/adapters/mysql.ts +0 -235
  268. package/src/core/database/adapters/postgresql.ts +0 -226
  269. package/src/core/database/adapters/redis.ts +0 -379
  270. package/src/core/database/adapters/sqlite.ts +0 -263
  271. package/src/core/database/index.ts +0 -3
  272. package/src/core/docs/index.ts +0 -231
  273. package/src/core/docs/openapi-generator.ts +0 -576
  274. package/src/core/docs/schema-to-openapi.ts +0 -145
  275. package/src/core/docs/simple-docs.ts +0 -295
  276. package/src/core/docs/swagger-ui.ts +0 -354
  277. package/src/core/docs/zod-to-openapi.ts +0 -532
  278. package/src/core/events/event-bus.ts +0 -231
  279. package/src/core/events/index.ts +0 -12
  280. package/src/core/framework.ts +0 -885
  281. package/src/core/http/http-server.ts +0 -1847
  282. package/src/core/http/index.ts +0 -7
  283. package/src/core/http/uws-http-server.ts +0 -591
  284. package/src/core/logger/filters.ts +0 -153
  285. package/src/core/logger/index.ts +0 -21
  286. package/src/core/logger/logger.ts +0 -1033
  287. package/src/core/logger/outputs.ts +0 -132
  288. package/src/core/middleware/built-in/adapters/cache/file.ts +0 -104
  289. package/src/core/middleware/built-in/adapters/cache/index.ts +0 -23
  290. package/src/core/middleware/built-in/adapters/cache/memory.ts +0 -73
  291. package/src/core/middleware/built-in/adapters/cache/redis.ts +0 -114
  292. package/src/core/middleware/built-in/adapters/cdn/azure.ts +0 -60
  293. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +0 -83
  294. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +0 -94
  295. package/src/core/middleware/built-in/adapters/cdn/index.ts +0 -23
  296. package/src/core/middleware/built-in/auth-helpers.ts +0 -401
  297. package/src/core/middleware/built-in/auth-providers.ts +0 -480
  298. package/src/core/middleware/built-in/auth.ts +0 -410
  299. package/src/core/middleware/built-in/cache.ts +0 -213
  300. package/src/core/middleware/built-in/cdn.ts +0 -124
  301. package/src/core/middleware/built-in/cookie.ts +0 -85
  302. package/src/core/middleware/built-in/cors.ts +0 -38
  303. package/src/core/middleware/built-in/csp.ts +0 -101
  304. package/src/core/middleware/built-in/csrf.ts +0 -82
  305. package/src/core/middleware/built-in/error-tracker.ts +0 -16
  306. package/src/core/middleware/built-in/index.ts +0 -87
  307. package/src/core/middleware/built-in/jwt-helpers.ts +0 -243
  308. package/src/core/middleware/built-in/performance-monitor.ts +0 -25
  309. package/src/core/middleware/built-in/rate-limit.ts +0 -60
  310. package/src/core/middleware/built-in/request-logger.ts +0 -16
  311. package/src/core/middleware/built-in/session.ts +0 -287
  312. package/src/core/middleware/built-in/sse.ts +0 -88
  313. package/src/core/middleware/built-in/validation.ts +0 -33
  314. package/src/core/middleware/index.ts +0 -177
  315. package/src/core/modules/auto-discovery.ts +0 -726
  316. package/src/core/modules/index.ts +0 -3
  317. package/src/core/modules/modules.ts +0 -135
  318. package/src/core/networking/adapters/index.ts +0 -17
  319. package/src/core/networking/adapters/socketio-adapter.ts +0 -254
  320. package/src/core/networking/adapters/uws-adapter.ts +0 -619
  321. package/src/core/networking/adapters/ws-adapter.ts +0 -429
  322. package/src/core/networking/index.ts +0 -4
  323. package/src/core/networking/service-discovery.ts +0 -303
  324. package/src/core/networking/websocket-adapter.ts +0 -217
  325. package/src/core/networking/websocket-manager.ts +0 -308
  326. package/src/core/pooling/object-pool-manager.ts +0 -630
  327. package/src/core/routing/app-integration.ts +0 -164
  328. package/src/core/routing/index.ts +0 -261
  329. package/src/core/routing/path-matcher.ts +0 -222
  330. package/src/core/routing/router.ts +0 -97
  331. package/src/core/routing/unified-router.ts +0 -870
  332. package/src/core/runtime/aws-lambda-adapter.ts +0 -147
  333. package/src/core/runtime/base-adapter.ts +0 -130
  334. package/src/core/runtime/cloudflare-workers-adapter.ts +0 -152
  335. package/src/core/runtime/index.ts +0 -62
  336. package/src/core/runtime/node-adapter.ts +0 -202
  337. package/src/core/runtime/vercel-edge-adapter.ts +0 -114
  338. package/src/core/utilities/circuit-breaker.ts +0 -46
  339. package/src/core/utilities/container.ts +0 -736
  340. package/src/core/utilities/hooks.ts +0 -142
  341. package/src/core/utilities/index.ts +0 -17
  342. package/src/core/utilities/package-utils.ts +0 -59
  343. package/src/core/validation/adapters.ts +0 -147
  344. package/src/core/validation/index.ts +0 -258
  345. package/src/core/validation/schema-interface.ts +0 -100
  346. package/src/index.ts +0 -233
  347. package/src/moro.ts +0 -1728
  348. package/src/types/auth.ts +0 -440
  349. package/src/types/cache.ts +0 -38
  350. package/src/types/cdn.ts +0 -22
  351. package/src/types/config.ts +0 -229
  352. package/src/types/core.ts +0 -58
  353. package/src/types/database.ts +0 -32
  354. package/src/types/discovery.ts +0 -7
  355. package/src/types/events.ts +0 -82
  356. package/src/types/hooks.ts +0 -47
  357. package/src/types/http.ts +0 -89
  358. package/src/types/logger.ts +0 -102
  359. package/src/types/module.ts +0 -99
  360. package/src/types/runtime.ts +0 -76
  361. package/src/types/session.ts +0 -89
  362. package/tsconfig.json +0 -23
  363. /package/dist/core/middleware/built-in/{auth-helpers.d.ts → auth/helpers.d.ts} +0 -0
  364. /package/dist/core/middleware/built-in/{jwt-helpers.d.ts → auth/jwt-helpers.d.ts} +0 -0
  365. /package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/index.js +0 -0
  366. /package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/index.js +0 -0
package/src/types/core.ts DELETED
@@ -1,58 +0,0 @@
1
- // Core Framework Types
2
- import { RuntimeConfig } from './runtime.js';
3
- import { LogLevel, LoggerOptions } from './logger.js';
4
- import { AppConfig } from './config.js';
5
-
6
- export interface MoroOptions {
7
- autoDiscover?:
8
- | boolean
9
- | {
10
- enabled?: boolean;
11
- paths?: string[];
12
- patterns?: string[];
13
- recursive?: boolean;
14
- loadingStrategy?: 'eager' | 'lazy' | 'conditional';
15
- watchForChanges?: boolean;
16
- ignorePatterns?: string[];
17
- loadOrder?: 'alphabetical' | 'dependency' | 'custom';
18
- failOnError?: boolean;
19
- maxDepth?: number;
20
- };
21
- modulesPath?: string; // Deprecated: use autoDiscover.paths instead
22
- middleware?: any[];
23
-
24
- // Runtime configuration
25
- runtime?: RuntimeConfig;
26
-
27
- // HTTP/WebSocket options
28
- http2?: boolean;
29
- https?: {
30
- key: string | Buffer;
31
- cert: string | Buffer;
32
- ca?: string | Buffer;
33
- };
34
- websocket?:
35
- | {
36
- enabled?: boolean;
37
- adapter?: any;
38
- compression?: boolean;
39
- customIdGenerator?: () => string;
40
- options?: any;
41
- }
42
- | false;
43
-
44
- // Simplified config options (these map to the full config)
45
- cors?: boolean | object;
46
- compression?: boolean | object;
47
- helmet?: boolean | object;
48
- logger?: LoggerOptions | boolean;
49
-
50
- // Direct config overrides (partial)
51
- server?: Partial<AppConfig['server']>;
52
- database?: Partial<AppConfig['database']>;
53
- modules?: Partial<AppConfig['modules']>;
54
- logging?: Partial<AppConfig['logging']>;
55
- security?: Partial<AppConfig['security']>;
56
- external?: Partial<AppConfig['external']>;
57
- performance?: Partial<AppConfig['performance']>;
58
- }
@@ -1,32 +0,0 @@
1
- // src/types/database.ts
2
- export interface DatabaseAdapter {
3
- connect(): Promise<void>;
4
- disconnect(): Promise<void>;
5
- query<T = any>(sql: string, params?: any[]): Promise<T[]>;
6
- queryOne<T = any>(sql: string, params?: any[]): Promise<T | null>;
7
- insert<T = any>(table: string, data: Record<string, any>): Promise<T>;
8
- update<T = any>(table: string, data: Record<string, any>, where: Record<string, any>): Promise<T>;
9
- delete(table: string, where: Record<string, any>): Promise<number>;
10
- transaction<T>(callback: (tx: DatabaseTransaction) => Promise<T>): Promise<T>;
11
- }
12
-
13
- export interface DatabaseTransaction {
14
- query<T = any>(sql: string, params?: any[]): Promise<T[]>;
15
- queryOne<T = any>(sql: string, params?: any[]): Promise<T | null>;
16
- insert<T = any>(table: string, data: Record<string, any>): Promise<T>;
17
- update<T = any>(table: string, data: Record<string, any>, where: Record<string, any>): Promise<T>;
18
- delete(table: string, where: Record<string, any>): Promise<number>;
19
- commit(): Promise<void>;
20
- rollback(): Promise<void>;
21
- }
22
-
23
- export interface DatabaseConfig {
24
- host: string;
25
- port: number;
26
- user: string;
27
- password: string;
28
- database: string;
29
- connectionLimit?: number;
30
- acquireTimeout?: number;
31
- timeout?: number;
32
- }
@@ -1,7 +0,0 @@
1
- // Auto-Discovery Types
2
- export interface DiscoveryOptions {
3
- baseDir?: string;
4
- pattern?: RegExp;
5
- recursive?: boolean;
6
- extensions?: string[];
7
- }
@@ -1,82 +0,0 @@
1
- // Enterprise Event System Types
2
- import { EventEmitter } from 'events';
3
-
4
- export interface EventContext {
5
- timestamp: Date;
6
- source: string;
7
- moduleId?: string;
8
- requestId?: string;
9
- userId?: string;
10
- sessionId?: string;
11
- metadata?: Record<string, any>;
12
- }
13
-
14
- export interface EventPayload<T = any> {
15
- context: EventContext;
16
- data: T;
17
- }
18
-
19
- export interface EventBusOptions {
20
- maxListeners?: number;
21
- enablePersistence?: boolean;
22
- enableMetrics?: boolean;
23
- isolation?: 'none' | 'module' | 'strict';
24
- }
25
-
26
- export interface ModuleEventBus {
27
- emit<T = any>(event: string, data: T): Promise<boolean>;
28
- on<T = any>(event: string, listener: (payload: EventPayload<T>) => void | Promise<void>): this;
29
- once<T = any>(event: string, listener: (payload: EventPayload<T>) => void | Promise<void>): this;
30
- off(event: string, listener: Function): this;
31
- removeAllListeners(event?: string): this;
32
- listenerCount(event: string): number;
33
- }
34
-
35
- export interface GlobalEventBus extends ModuleEventBus {
36
- createModuleBus(moduleId: string): ModuleEventBus;
37
- destroyModuleBus(moduleId: string): void;
38
- getMetrics(): EventMetrics;
39
- enableAuditLog(): void;
40
- disableAuditLog(): void;
41
- }
42
-
43
- export interface EventMetrics {
44
- totalEvents: number;
45
- eventsByType: Record<string, number>;
46
- eventsByModule: Record<string, number>;
47
- averageLatency: number;
48
- errorRate: number;
49
- }
50
-
51
- export type SystemEvents = {
52
- 'framework:initialized': { options: any };
53
- 'framework:shutdown': { graceful: boolean };
54
- 'module:loading': { moduleId: string; path?: string };
55
- 'module:loaded': { moduleId: string; version: string };
56
- 'module:unloaded': { moduleId: string };
57
- 'middleware:registered': { name: string; type: string };
58
- 'middleware:installed': { name: string; options?: any };
59
- 'database:connected': { adapter: string; config: any };
60
- 'database:disconnected': { adapter: string };
61
- 'server:starting': { port: number };
62
- 'server:started': { port: number; pid: number };
63
- 'server:stopping': { graceful: boolean };
64
- 'request:start': { method: string; path: string; requestId: string };
65
- 'request:end': {
66
- method: string;
67
- path: string;
68
- requestId: string;
69
- statusCode: number;
70
- duration: number;
71
- };
72
- 'websocket:connected': { namespace: string; socketId: string };
73
- 'websocket:disconnected': {
74
- namespace: string;
75
- socketId: string;
76
- reason: string;
77
- };
78
- 'error:handled': { error: Error; context: string; requestId?: string };
79
- 'error:unhandled': { error: Error; context: string };
80
- };
81
-
82
- export type EventHandler<T = any> = (payload: EventPayload<T>) => void | Promise<void>;
@@ -1,47 +0,0 @@
1
- // Hooks and Middleware Types
2
- import { HttpRequest, HttpResponse } from '../core/http/index.js';
3
-
4
- export type HookFunction = (...args: any[]) => Promise<any> | any;
5
-
6
- export interface HookContext {
7
- request?: HttpRequest;
8
- response?: HttpResponse;
9
- data?: any;
10
- metadata?: Record<string, any>;
11
- }
12
-
13
- export interface MoroMiddleware {
14
- name: string;
15
- version?: string;
16
- install: (hooks: any, options?: any) => Promise<void> | void;
17
- uninstall?: (hooks: any) => Promise<void> | void;
18
- }
19
-
20
- // Advanced middleware types
21
- export interface MiddlewareMetadata {
22
- name: string;
23
- version?: string;
24
- description?: string;
25
- author?: string;
26
- dependencies?: string[];
27
- tags?: string[];
28
- }
29
-
30
- export interface MiddlewareContext {
31
- app: any;
32
- hooks: any; // HookManager
33
- config: any;
34
- logger?: any;
35
- }
36
-
37
- export interface MiddlewareInterface extends MoroMiddleware {
38
- metadata?: MiddlewareMetadata;
39
- dependencies?: string[];
40
- configure?: (config: any) => void;
41
- beforeInstall?: (context: MiddlewareContext) => Promise<void> | void;
42
- afterInstall?: (context: MiddlewareContext) => Promise<void> | void;
43
- beforeUninstall?: (context: MiddlewareContext) => Promise<void> | void;
44
- afterUninstall?: (context: MiddlewareContext) => Promise<void> | void;
45
- }
46
-
47
- export type SimpleMiddlewareFunction = (app: any) => Promise<void> | void;
package/src/types/http.ts DELETED
@@ -1,89 +0,0 @@
1
- // HTTP Server Types
2
- import { IncomingMessage, ServerResponse } from 'http';
3
-
4
- export interface HttpRequest extends IncomingMessage {
5
- params: Record<string, string>;
6
- query: Record<string, string>;
7
- body: any;
8
- path: string;
9
- headers: Record<string, string>;
10
- ip: string;
11
- requestId: string;
12
- cookies?: Record<string, string>;
13
- files?: Record<string, any>;
14
- [key: string]: any;
15
- }
16
-
17
- export interface CookieOptions {
18
- maxAge?: number;
19
- expires?: Date;
20
- httpOnly?: boolean;
21
- secure?: boolean;
22
- sameSite?: 'strict' | 'lax' | 'none';
23
- domain?: string;
24
- path?: string;
25
- // Security options
26
- critical?: boolean; // Mark as critical for security (throws on late set)
27
- throwOnLateSet?: boolean; // Force throw if headers already sent
28
- }
29
-
30
- export interface ResponseState {
31
- headersSent: boolean;
32
- statusCode: number;
33
- headers: Record<string, any>;
34
- finished: boolean;
35
- writable: boolean;
36
- }
37
-
38
- export interface MoroResponseMethods {
39
- json(data: any): void;
40
- status(code: number): HttpResponse;
41
- send(data: string | Buffer): void;
42
- cookie(name: string, value: string, options?: CookieOptions): HttpResponse;
43
- clearCookie(name: string, options?: CookieOptions): HttpResponse;
44
- redirect(url: string, status?: number): void;
45
- sendFile(filePath: string): Promise<void>;
46
- render?(template: string, data?: any): Promise<void>;
47
-
48
- // Header management utilities
49
- hasHeader(name: string): boolean;
50
- setBulkHeaders(headers: Record<string, string | number>): HttpResponse;
51
- appendHeader(name: string, value: string | string[]): HttpResponse;
52
-
53
- // Response state utilities
54
- canSetHeaders(): boolean;
55
- getResponseState(): ResponseState;
56
- }
57
-
58
- export type HttpResponse = ServerResponse & MoroResponseMethods;
59
-
60
- export type HttpHandler = (req: HttpRequest, res: HttpResponse) => Promise<void> | void;
61
- export type Middleware = (
62
- req: HttpRequest,
63
- res: HttpResponse,
64
- next: () => void
65
- ) => Promise<void> | void;
66
- export type MiddlewareFunction = (
67
- req: HttpRequest,
68
- res: HttpResponse,
69
- next: () => void
70
- ) => void | Promise<void>;
71
-
72
- // Internal router types
73
- export interface RouteEntry {
74
- method: string;
75
- path: string;
76
- pattern: RegExp;
77
- paramNames: string[];
78
- handler: HttpHandler;
79
- middleware: Middleware[];
80
- }
81
-
82
- export interface RouteDefinition {
83
- method: string;
84
- path: string;
85
- pattern: RegExp;
86
- paramNames: string[];
87
- handler: HttpHandler;
88
- middleware: Middleware[];
89
- }
@@ -1,102 +0,0 @@
1
- // Enterprise Logger Types
2
- export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'fatal';
3
-
4
- export interface LogEntry {
5
- timestamp: Date;
6
- level: LogLevel;
7
- message: string;
8
- context?: string;
9
- metadata?: Record<string, any>;
10
- requestId?: string;
11
- moduleId?: string;
12
- userId?: string;
13
- sessionId?: string;
14
- performance?: {
15
- duration?: number;
16
- memory?: number;
17
- cpu?: number;
18
- };
19
- stack?: string;
20
- }
21
-
22
- export interface LoggerOptions {
23
- level?: LogLevel;
24
- enableColors?: boolean;
25
- enableTimestamp?: boolean;
26
- enableContext?: boolean;
27
- enableMetadata?: boolean;
28
- enablePerformance?: boolean;
29
- format?: 'pretty' | 'json' | 'compact';
30
- outputs?: LogOutput[];
31
- filters?: LogFilter[];
32
- maxEntries?: number;
33
- maxBufferSize?: number;
34
- }
35
-
36
- export interface LogOutput {
37
- name: string;
38
- write: (entry: LogEntry) => Promise<void> | void;
39
- level?: LogLevel;
40
- format?: 'pretty' | 'json' | 'compact';
41
- }
42
-
43
- export interface LogFilter {
44
- name: string;
45
- filter: (entry: LogEntry) => boolean;
46
- }
47
-
48
- export interface Logger {
49
- debug(message: string, context?: string, metadata?: Record<string, any>): void;
50
- info(message: string, context?: string, metadata?: Record<string, any>): void;
51
- warn(message: string, context?: string, metadata?: Record<string, any>): void;
52
- error(message: string | Error, context?: string, metadata?: Record<string, any>): void;
53
- fatal(message: string | Error, context?: string, metadata?: Record<string, any>): void;
54
-
55
- // Performance logging
56
- time(label: string): void;
57
- timeEnd(label: string, context?: string, metadata?: Record<string, any>): void;
58
-
59
- // Structured logging
60
- child(context: string, metadata?: Record<string, any>): Logger;
61
-
62
- // Configuration
63
- setLevel(level: LogLevel): void;
64
- getLevel(): LogLevel;
65
- addOutput(output: LogOutput): void;
66
- removeOutput(name: string): void;
67
- addFilter(filter: LogFilter): void;
68
- removeFilter(name: string): void;
69
-
70
- // Cleanup
71
- flush(): void;
72
- flushBuffer(): void;
73
- destroy(): void;
74
-
75
- // Metrics and history
76
- getHistory(count?: number): LogEntry[];
77
- getMetrics(): LogMetrics;
78
- clear(): void;
79
- }
80
-
81
- export interface LogMetrics {
82
- totalLogs: number;
83
- logsByLevel: Record<LogLevel, number>;
84
- logsByContext: Record<string, number>;
85
- averageLogRate: number;
86
- errorRate: number;
87
- memoryUsage: number;
88
- outputErrors?: Record<string, number>;
89
- }
90
-
91
- export interface ColorScheme {
92
- debug: string;
93
- info: string;
94
- warn: string;
95
- error: string;
96
- fatal: string;
97
- timestamp: string;
98
- context: string;
99
- metadata: string;
100
- performance: string;
101
- reset: string;
102
- }
@@ -1,99 +0,0 @@
1
- // Module Definition Types
2
- export interface ModuleRoute {
3
- method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
4
- path: string;
5
- handler: (req: any, res: any) => any | Promise<any>;
6
- validation?: any;
7
- cache?: { ttl: number; key?: string };
8
- rateLimit?: { requests: number; window: number };
9
- middleware?: string[];
10
- auth?: {
11
- roles?: string[];
12
- permissions?: string[];
13
- optional?: boolean;
14
- };
15
- }
16
-
17
- export interface ModuleSocket {
18
- event: string;
19
- handler: (socket: any, data: any) => any | Promise<any>;
20
- validation?: any;
21
- rateLimit?: { requests: number; window: number };
22
- rooms?: string[];
23
- broadcast?: boolean;
24
- }
25
-
26
- export interface ModuleDefinition {
27
- name: string;
28
- version: string;
29
- config?: {
30
- cache?: { ttl: number };
31
- rateLimit?: { requests: number; window: number };
32
- database?: {
33
- path?: string;
34
- };
35
- [key: string]: any;
36
- };
37
- routes?: ModuleRoute[];
38
- sockets?: ModuleSocket[];
39
- dependencies?: string[];
40
- }
41
-
42
- // Internal Module Configuration (used by framework)
43
- export interface ModuleConfig {
44
- name: string;
45
- version: string;
46
- routes?: InternalRouteDefinition[];
47
- websockets?: WebSocketDefinition[];
48
- sockets?: WebSocketDefinition[];
49
- dependencies?: string[];
50
- middleware?: any[]; // MiddlewareFunction from http types
51
- services?: ServiceDefinition[];
52
- config?: any; // Module-specific configuration
53
- routeHandlers?: Record<string, Function>;
54
- socketHandlers?: Record<string, Function>;
55
- }
56
-
57
- export interface InternalRouteDefinition {
58
- method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
59
- path: string;
60
- handler: string;
61
- middleware?: string[];
62
- validation?: any;
63
- cache?: CacheConfig;
64
- rateLimit?: RateLimitConfig;
65
- auth?: {
66
- roles?: string[];
67
- permissions?: string[];
68
- optional?: boolean;
69
- };
70
- // Allow additional properties for extensibility
71
- [key: string]: any;
72
- }
73
-
74
- export interface WebSocketDefinition {
75
- event: string;
76
- handler: string;
77
- middleware?: string[];
78
- validation?: any;
79
- rateLimit?: RateLimitConfig;
80
- rooms?: string[];
81
- broadcast?: boolean;
82
- }
83
-
84
- export interface ServiceDefinition {
85
- name: string;
86
- implementation: new (...args: any[]) => any;
87
- singleton?: boolean;
88
- dependencies?: string[];
89
- }
90
-
91
- export interface CacheConfig {
92
- ttl: number;
93
- key?: string;
94
- }
95
-
96
- export interface RateLimitConfig {
97
- requests: number;
98
- window: number;
99
- }
@@ -1,76 +0,0 @@
1
- // Runtime abstraction types for multi-environment support
2
- import { HttpRequest, HttpResponse } from '../core/http/index.js';
3
-
4
- export type RuntimeType = 'node' | 'vercel-edge' | 'aws-lambda' | 'cloudflare-workers';
5
-
6
- // Generic runtime request/response interfaces
7
- export interface RuntimeRequest {
8
- method: string;
9
- url: string;
10
- headers: Record<string, string>;
11
- body?: any;
12
- query?: Record<string, string>;
13
- params?: Record<string, string>;
14
- [key: string]: any;
15
- }
16
-
17
- export interface RuntimeResponse {
18
- status: number;
19
- headers: Record<string, string>;
20
- body: any;
21
- }
22
-
23
- // Runtime-specific response interface for adapters
24
- export interface RuntimeHttpResponse {
25
- statusCode: number;
26
- headers: Record<string, string>;
27
- body: any;
28
- headersSent: boolean;
29
-
30
- status(code: number): RuntimeHttpResponse;
31
- json(data: any): void;
32
- send(data: string | Buffer): void;
33
- cookie(name: string, value: string, options?: any): RuntimeHttpResponse;
34
- clearCookie(name: string, options?: any): RuntimeHttpResponse;
35
- redirect(url: string, status?: number): void;
36
- sendFile?(filePath: string): Promise<void>;
37
- }
38
-
39
- // Runtime-specific handler types
40
- export type NodeHandler = (req: any, res: any) => Promise<void> | void;
41
- export type EdgeHandler = (request: Request) => Promise<Response>;
42
- export type LambdaHandler = (event: any, context: any) => Promise<any>;
43
- export type WorkerHandler = (request: Request, env: any, ctx: any) => Promise<Response>;
44
-
45
- // Runtime adapter interface
46
- export interface RuntimeAdapter {
47
- readonly type: RuntimeType;
48
-
49
- // Convert runtime-specific request to MoroJS HttpRequest
50
- adaptRequest(runtimeRequest: any, ...args: any[]): Promise<HttpRequest>;
51
-
52
- // Convert MoroJS HttpResponse to runtime-specific response
53
- adaptResponse(
54
- moroResponse: HttpResponse | RuntimeHttpResponse,
55
- runtimeRequest: any
56
- ): Promise<any>;
57
-
58
- // Create the appropriate server/handler for the runtime
59
- createServer(handler: (req: HttpRequest, res: HttpResponse) => Promise<void>): any;
60
-
61
- // Start listening (for runtimes that support it)
62
- listen?(server: any, port: number, host?: string, callback?: () => void): void;
63
- }
64
-
65
- // Runtime configuration
66
- export interface RuntimeConfig {
67
- type: RuntimeType;
68
- adapter?: RuntimeAdapter;
69
- options?: any;
70
- }
71
-
72
- // Extended MoroOptions to include runtime configuration
73
- export interface RuntimeMoroOptions {
74
- runtime?: RuntimeConfig;
75
- // ... existing options
76
- }
@@ -1,89 +0,0 @@
1
- // Session Types
2
- export interface SessionData {
3
- [key: string]: any;
4
- cookie?: {
5
- originalMaxAge?: number;
6
- expires?: Date;
7
- secure?: boolean;
8
- httpOnly?: boolean;
9
- sameSite?: string;
10
- };
11
- }
12
-
13
- export interface SessionInstance {
14
- // Session data proxy
15
- [key: string]: any;
16
-
17
- // Session methods
18
- save(): Promise<void>;
19
- destroy(): Promise<void>;
20
- regenerate(): Promise<string>;
21
- touch(): Promise<void>;
22
-
23
- // Session properties
24
- readonly sessionID: string;
25
- readonly cookie?: SessionData['cookie'];
26
- readonly isNew?: boolean;
27
- readonly isModified?: boolean;
28
- }
29
-
30
- export interface SessionOptions {
31
- // Store configuration
32
- store?: 'memory' | 'redis' | 'file' | any;
33
- storeOptions?: {
34
- // Redis options
35
- host?: string;
36
- port?: number;
37
- password?: string;
38
- keyPrefix?: string;
39
- // File options
40
- path?: string;
41
- // Memory options
42
- max?: number;
43
- };
44
-
45
- // Session configuration
46
- secret?: string;
47
- name?: string; // Session cookie name
48
- genid?: () => string; // Session ID generator
49
- rolling?: boolean; // Reset expiry on each request
50
- resave?: boolean; // Save session even if not modified
51
- saveUninitialized?: boolean; // Save new but not modified sessions
52
-
53
- // Cookie configuration
54
- cookie?: {
55
- maxAge?: number; // Session timeout in ms
56
- expires?: Date; // Absolute expiry
57
- httpOnly?: boolean; // Prevent XSS access
58
- secure?: boolean; // HTTPS only
59
- sameSite?: 'strict' | 'lax' | 'none';
60
- domain?: string;
61
- path?: string;
62
- };
63
-
64
- // Security
65
- proxy?: boolean; // Trust proxy for secure cookies
66
- unset?: 'destroy' | 'keep'; // What to do when session is unset
67
- }
68
-
69
- // Extend the HTTP request type to include session
70
- declare global {
71
- namespace Express {
72
- interface Request {
73
- session: SessionInstance;
74
- }
75
- }
76
- }
77
-
78
- // For non-Express environments
79
- export interface RequestWithSession {
80
- session: SessionInstance;
81
- }
82
-
83
- export interface SessionStore {
84
- get(key: string): Promise<SessionData | null>;
85
- set(key: string, data: SessionData, ttl?: number): Promise<void>;
86
- del(key: string): Promise<void>;
87
- clear?(): Promise<void>;
88
- touch?(key: string): Promise<void>;
89
- }