@morojs/moro 1.6.1 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/README.md +74 -256
  2. package/dist/core/auth/morojs-adapter.js +20 -20
  3. package/dist/core/auth/morojs-adapter.js.map +1 -1
  4. package/dist/core/config/config-manager.d.ts +44 -0
  5. package/dist/core/config/config-manager.js +104 -0
  6. package/dist/core/config/config-manager.js.map +1 -0
  7. package/dist/core/config/config-sources.d.ts +21 -0
  8. package/dist/core/config/config-sources.js +503 -0
  9. package/dist/core/config/config-sources.js.map +1 -0
  10. package/dist/core/config/config-validator.d.ts +21 -0
  11. package/dist/core/config/config-validator.js +791 -0
  12. package/dist/core/config/config-validator.js.map +1 -0
  13. package/dist/core/config/file-loader.d.ts +1 -6
  14. package/dist/core/config/file-loader.js +21 -249
  15. package/dist/core/config/file-loader.js.map +1 -1
  16. package/dist/core/config/index.d.ts +41 -12
  17. package/dist/core/config/index.js +65 -54
  18. package/dist/core/config/index.js.map +1 -1
  19. package/dist/core/config/schema.d.ts +2 -2
  20. package/dist/core/config/schema.js +55 -44
  21. package/dist/core/config/schema.js.map +1 -1
  22. package/dist/core/config/utils.d.ts +10 -3
  23. package/dist/core/config/utils.js +31 -58
  24. package/dist/core/config/utils.js.map +1 -1
  25. package/dist/core/database/adapters/drizzle.d.ts +1 -1
  26. package/dist/core/database/adapters/drizzle.js +18 -11
  27. package/dist/core/database/adapters/drizzle.js.map +1 -1
  28. package/dist/core/database/adapters/index.d.ts +7 -7
  29. package/dist/core/database/adapters/index.js +19 -29
  30. package/dist/core/database/adapters/index.js.map +1 -1
  31. package/dist/core/database/adapters/mongodb.d.ts +13 -1
  32. package/dist/core/database/adapters/mongodb.js +46 -10
  33. package/dist/core/database/adapters/mongodb.js.map +1 -1
  34. package/dist/core/database/adapters/mysql.d.ts +14 -1
  35. package/dist/core/database/adapters/mysql.js +19 -9
  36. package/dist/core/database/adapters/mysql.js.map +1 -1
  37. package/dist/core/database/adapters/postgresql.d.ts +12 -2
  38. package/dist/core/database/adapters/postgresql.js +19 -9
  39. package/dist/core/database/adapters/postgresql.js.map +1 -1
  40. package/dist/core/database/adapters/redis.d.ts +12 -1
  41. package/dist/core/database/adapters/redis.js +48 -13
  42. package/dist/core/database/adapters/redis.js.map +1 -1
  43. package/dist/core/database/adapters/sqlite.d.ts +3 -1
  44. package/dist/core/database/adapters/sqlite.js +19 -8
  45. package/dist/core/database/adapters/sqlite.js.map +1 -1
  46. package/dist/core/database/index.d.ts +2 -2
  47. package/dist/core/database/index.js +2 -18
  48. package/dist/core/database/index.js.map +1 -1
  49. package/dist/core/docs/index.d.ts +9 -9
  50. package/dist/core/docs/index.js +14 -35
  51. package/dist/core/docs/index.js.map +1 -1
  52. package/dist/core/docs/openapi-generator.d.ts +2 -2
  53. package/dist/core/docs/openapi-generator.js +11 -16
  54. package/dist/core/docs/openapi-generator.js.map +1 -1
  55. package/dist/core/docs/schema-to-openapi.d.ts +2 -2
  56. package/dist/core/docs/schema-to-openapi.js +5 -11
  57. package/dist/core/docs/schema-to-openapi.js.map +1 -1
  58. package/dist/core/docs/simple-docs.d.ts +1 -1
  59. package/dist/core/docs/simple-docs.js +4 -9
  60. package/dist/core/docs/simple-docs.js.map +1 -1
  61. package/dist/core/docs/swagger-ui.d.ts +2 -2
  62. package/dist/core/docs/swagger-ui.js +26 -29
  63. package/dist/core/docs/swagger-ui.js.map +1 -1
  64. package/dist/core/docs/zod-to-openapi.js +31 -28
  65. package/dist/core/docs/zod-to-openapi.js.map +1 -1
  66. package/dist/core/events/event-bus.d.ts +1 -1
  67. package/dist/core/events/event-bus.js +7 -11
  68. package/dist/core/events/event-bus.js.map +1 -1
  69. package/dist/core/events/index.d.ts +2 -2
  70. package/dist/core/events/index.js +1 -5
  71. package/dist/core/events/index.js.map +1 -1
  72. package/dist/core/framework.d.ts +20 -13
  73. package/dist/core/framework.js +285 -102
  74. package/dist/core/framework.js.map +1 -1
  75. package/dist/core/http/http-server.d.ts +59 -7
  76. package/dist/core/http/http-server.js +202 -185
  77. package/dist/core/http/http-server.js.map +1 -1
  78. package/dist/core/http/index.d.ts +4 -3
  79. package/dist/core/http/index.js +3 -8
  80. package/dist/core/http/index.js.map +1 -1
  81. package/dist/core/http/uws-http-server.d.ts +46 -0
  82. package/dist/core/http/uws-http-server.js +523 -0
  83. package/dist/core/http/uws-http-server.js.map +1 -0
  84. package/dist/core/logger/filters.d.ts +1 -1
  85. package/dist/core/logger/filters.js +20 -23
  86. package/dist/core/logger/filters.js.map +1 -1
  87. package/dist/core/logger/index.d.ts +3 -3
  88. package/dist/core/logger/index.js +2 -24
  89. package/dist/core/logger/index.js.map +1 -1
  90. package/dist/core/logger/logger.d.ts +30 -14
  91. package/dist/core/logger/logger.js +398 -223
  92. package/dist/core/logger/logger.js.map +1 -1
  93. package/dist/core/logger/outputs.d.ts +1 -1
  94. package/dist/core/logger/outputs.js +8 -17
  95. package/dist/core/logger/outputs.js.map +1 -1
  96. package/dist/core/middleware/built-in/auth/core.d.ts +78 -0
  97. package/dist/core/middleware/built-in/auth/core.js +358 -0
  98. package/dist/core/middleware/built-in/auth/core.js.map +1 -0
  99. package/dist/core/middleware/built-in/{auth-helpers.js → auth/helpers.js} +12 -23
  100. package/dist/core/middleware/built-in/auth/helpers.js.map +1 -0
  101. package/dist/core/middleware/built-in/auth/hook.d.ts +30 -0
  102. package/dist/core/middleware/built-in/auth/hook.js +99 -0
  103. package/dist/core/middleware/built-in/auth/hook.js.map +1 -0
  104. package/dist/core/middleware/built-in/auth/index.d.ts +7 -0
  105. package/dist/core/middleware/built-in/auth/index.js +15 -0
  106. package/dist/core/middleware/built-in/auth/index.js.map +1 -0
  107. package/dist/core/middleware/built-in/auth/jwt-helpers.d.ts +118 -0
  108. package/dist/core/middleware/built-in/auth/jwt-helpers.js +218 -0
  109. package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -0
  110. package/dist/core/middleware/built-in/auth/middleware.d.ts +23 -0
  111. package/dist/core/middleware/built-in/auth/middleware.js +71 -0
  112. package/dist/core/middleware/built-in/auth/middleware.js.map +1 -0
  113. package/dist/core/middleware/built-in/{auth-providers.d.ts → auth/providers.d.ts} +1 -1
  114. package/dist/core/middleware/built-in/{auth-providers.js → auth/providers.js} +5 -10
  115. package/dist/core/middleware/built-in/auth/providers.js.map +1 -0
  116. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.d.ts +1 -1
  117. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/file.js +10 -47
  118. package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -0
  119. package/dist/core/middleware/built-in/cache/adapters/cache/index.d.ts +5 -0
  120. package/dist/core/middleware/built-in/cache/adapters/cache/index.js +21 -0
  121. package/dist/core/middleware/built-in/cache/adapters/cache/index.js.map +1 -0
  122. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.d.ts +1 -1
  123. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/memory.js +3 -7
  124. package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -0
  125. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.d.ts +3 -1
  126. package/dist/core/middleware/built-in/{adapters → cache/adapters}/cache/redis.js +11 -9
  127. package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -0
  128. package/dist/core/middleware/built-in/cache/adapters/index.d.ts +2 -0
  129. package/dist/core/middleware/built-in/cache/adapters/index.js +5 -0
  130. package/dist/core/middleware/built-in/cache/adapters/index.js.map +1 -0
  131. package/dist/core/middleware/built-in/cache/core.d.ts +37 -0
  132. package/dist/core/middleware/built-in/cache/core.js +87 -0
  133. package/dist/core/middleware/built-in/cache/core.js.map +1 -0
  134. package/dist/core/middleware/built-in/cache/hook.d.ts +20 -0
  135. package/dist/core/middleware/built-in/{cache.js → cache/hook.js} +30 -14
  136. package/dist/core/middleware/built-in/cache/hook.js.map +1 -0
  137. package/dist/core/middleware/built-in/cache/index.d.ts +3 -0
  138. package/dist/core/middleware/built-in/cache/index.js +9 -0
  139. package/dist/core/middleware/built-in/cache/index.js.map +1 -0
  140. package/dist/core/middleware/built-in/cache/middleware.d.ts +17 -0
  141. package/dist/core/middleware/built-in/cache/middleware.js +44 -0
  142. package/dist/core/middleware/built-in/cache/middleware.js.map +1 -0
  143. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.d.ts +1 -1
  144. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/azure.js +3 -7
  145. package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js.map +1 -0
  146. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.d.ts +1 -1
  147. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudflare.js +3 -7
  148. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js.map +1 -0
  149. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.d.ts +3 -1
  150. package/dist/core/middleware/built-in/{adapters → cdn/adapters}/cdn/cloudfront.js +12 -10
  151. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -0
  152. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.d.ts +5 -0
  153. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js +21 -0
  154. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js.map +1 -0
  155. package/dist/core/middleware/built-in/cdn/adapters/index.d.ts +2 -0
  156. package/dist/core/middleware/built-in/cdn/adapters/index.js +5 -0
  157. package/dist/core/middleware/built-in/cdn/adapters/index.js.map +1 -0
  158. package/dist/core/middleware/built-in/cdn/core.d.ts +43 -0
  159. package/dist/core/middleware/built-in/cdn/core.js +144 -0
  160. package/dist/core/middleware/built-in/cdn/core.js.map +1 -0
  161. package/dist/core/middleware/built-in/cdn/hook.d.ts +22 -0
  162. package/dist/core/middleware/built-in/cdn/hook.js +70 -0
  163. package/dist/core/middleware/built-in/cdn/hook.js.map +1 -0
  164. package/dist/core/middleware/built-in/cdn/index.d.ts +5 -0
  165. package/dist/core/middleware/built-in/cdn/index.js +11 -0
  166. package/dist/core/middleware/built-in/cdn/index.js.map +1 -0
  167. package/dist/core/middleware/built-in/cdn/middleware.d.ts +21 -0
  168. package/dist/core/middleware/built-in/cdn/middleware.js +52 -0
  169. package/dist/core/middleware/built-in/cdn/middleware.js.map +1 -0
  170. package/dist/core/middleware/built-in/cookie/core.d.ts +37 -0
  171. package/dist/core/middleware/built-in/cookie/core.js +83 -0
  172. package/dist/core/middleware/built-in/cookie/core.js.map +1 -0
  173. package/dist/core/middleware/built-in/cookie/hook.d.ts +20 -0
  174. package/dist/core/middleware/built-in/cookie/hook.js +47 -0
  175. package/dist/core/middleware/built-in/cookie/hook.js.map +1 -0
  176. package/dist/core/middleware/built-in/cookie/index.d.ts +3 -0
  177. package/dist/core/middleware/built-in/cookie/index.js +9 -0
  178. package/dist/core/middleware/built-in/cookie/index.js.map +1 -0
  179. package/dist/core/middleware/built-in/cookie/middleware.d.ts +17 -0
  180. package/dist/core/middleware/built-in/cookie/middleware.js +36 -0
  181. package/dist/core/middleware/built-in/cookie/middleware.js.map +1 -0
  182. package/dist/core/middleware/built-in/cors/core.d.ts +23 -0
  183. package/dist/core/middleware/built-in/cors/core.js +51 -0
  184. package/dist/core/middleware/built-in/cors/core.js.map +1 -0
  185. package/dist/core/middleware/built-in/cors/hook.d.ts +17 -0
  186. package/dist/core/middleware/built-in/cors/hook.js +37 -0
  187. package/dist/core/middleware/built-in/cors/hook.js.map +1 -0
  188. package/dist/core/middleware/built-in/cors/index.d.ts +3 -0
  189. package/dist/core/middleware/built-in/cors/index.js +9 -0
  190. package/dist/core/middleware/built-in/cors/index.js.map +1 -0
  191. package/dist/core/middleware/built-in/cors/middleware.d.ts +16 -0
  192. package/dist/core/middleware/built-in/cors/middleware.js +22 -0
  193. package/dist/core/middleware/built-in/cors/middleware.js.map +1 -0
  194. package/dist/core/middleware/built-in/csp/core.d.ts +45 -0
  195. package/dist/core/middleware/built-in/csp/core.js +88 -0
  196. package/dist/core/middleware/built-in/csp/core.js.map +1 -0
  197. package/dist/core/middleware/built-in/csp/hook.d.ts +22 -0
  198. package/dist/core/middleware/built-in/csp/hook.js +47 -0
  199. package/dist/core/middleware/built-in/csp/hook.js.map +1 -0
  200. package/dist/core/middleware/built-in/csp/index.d.ts +3 -0
  201. package/dist/core/middleware/built-in/csp/index.js +9 -0
  202. package/dist/core/middleware/built-in/csp/index.js.map +1 -0
  203. package/dist/core/middleware/built-in/csp/middleware.d.ts +19 -0
  204. package/dist/core/middleware/built-in/csp/middleware.js +29 -0
  205. package/dist/core/middleware/built-in/csp/middleware.js.map +1 -0
  206. package/dist/core/middleware/built-in/csrf/core.d.ts +28 -0
  207. package/dist/core/middleware/built-in/csrf/core.js +69 -0
  208. package/dist/core/middleware/built-in/csrf/core.js.map +1 -0
  209. package/dist/core/middleware/built-in/csrf/hook.d.ts +17 -0
  210. package/dist/core/middleware/built-in/csrf/hook.js +45 -0
  211. package/dist/core/middleware/built-in/csrf/hook.js.map +1 -0
  212. package/dist/core/middleware/built-in/csrf/index.d.ts +3 -0
  213. package/dist/core/middleware/built-in/csrf/index.js +9 -0
  214. package/dist/core/middleware/built-in/csrf/index.js.map +1 -0
  215. package/dist/core/middleware/built-in/csrf/middleware.d.ts +16 -0
  216. package/dist/core/middleware/built-in/csrf/middleware.js +34 -0
  217. package/dist/core/middleware/built-in/csrf/middleware.js.map +1 -0
  218. package/dist/core/middleware/built-in/error-tracker/index.d.ts +1 -0
  219. package/dist/core/middleware/built-in/error-tracker/index.js +4 -0
  220. package/dist/core/middleware/built-in/error-tracker/index.js.map +1 -0
  221. package/dist/core/middleware/built-in/error-tracker/middleware.d.ts +12 -0
  222. package/dist/core/middleware/built-in/error-tracker/middleware.js +26 -0
  223. package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -0
  224. package/dist/core/middleware/built-in/index.d.ts +28 -61
  225. package/dist/core/middleware/built-in/index.js +48 -78
  226. package/dist/core/middleware/built-in/index.js.map +1 -1
  227. package/dist/core/middleware/built-in/performance-monitor/index.d.ts +1 -0
  228. package/dist/core/middleware/built-in/performance-monitor/index.js +4 -0
  229. package/dist/core/middleware/built-in/performance-monitor/index.js.map +1 -0
  230. package/dist/core/middleware/built-in/performance-monitor/middleware.d.ts +12 -0
  231. package/dist/core/middleware/built-in/performance-monitor/middleware.js +29 -0
  232. package/dist/core/middleware/built-in/performance-monitor/middleware.js.map +1 -0
  233. package/dist/core/middleware/built-in/rate-limit/core.d.ts +33 -0
  234. package/dist/core/middleware/built-in/rate-limit/core.js +86 -0
  235. package/dist/core/middleware/built-in/rate-limit/core.js.map +1 -0
  236. package/dist/core/middleware/built-in/rate-limit/hook.d.ts +20 -0
  237. package/dist/core/middleware/built-in/{rate-limit.js → rate-limit/hook.js} +24 -22
  238. package/dist/core/middleware/built-in/rate-limit/hook.js.map +1 -0
  239. package/dist/core/middleware/built-in/rate-limit/index.d.ts +3 -0
  240. package/dist/core/middleware/built-in/rate-limit/index.js +9 -0
  241. package/dist/core/middleware/built-in/rate-limit/index.js.map +1 -0
  242. package/dist/core/middleware/built-in/rate-limit/middleware.d.ts +16 -0
  243. package/dist/core/middleware/built-in/rate-limit/middleware.js +35 -0
  244. package/dist/core/middleware/built-in/rate-limit/middleware.js.map +1 -0
  245. package/dist/core/middleware/built-in/request-logger/index.d.ts +1 -0
  246. package/dist/core/middleware/built-in/request-logger/index.js +4 -0
  247. package/dist/core/middleware/built-in/request-logger/index.js.map +1 -0
  248. package/dist/core/middleware/built-in/request-logger/middleware.d.ts +12 -0
  249. package/dist/core/middleware/built-in/request-logger/middleware.js +24 -0
  250. package/dist/core/middleware/built-in/request-logger/middleware.js.map +1 -0
  251. package/dist/core/middleware/built-in/session/core.d.ts +73 -0
  252. package/dist/core/middleware/built-in/session/core.js +227 -0
  253. package/dist/core/middleware/built-in/session/core.js.map +1 -0
  254. package/dist/core/middleware/built-in/session/hook.d.ts +17 -0
  255. package/dist/core/middleware/built-in/session/hook.js +53 -0
  256. package/dist/core/middleware/built-in/session/hook.js.map +1 -0
  257. package/dist/core/middleware/built-in/session/index.d.ts +3 -0
  258. package/dist/core/middleware/built-in/session/index.js +9 -0
  259. package/dist/core/middleware/built-in/session/index.js.map +1 -0
  260. package/dist/core/middleware/built-in/session/middleware.d.ts +17 -0
  261. package/dist/core/middleware/built-in/session/middleware.js +38 -0
  262. package/dist/core/middleware/built-in/session/middleware.js.map +1 -0
  263. package/dist/core/middleware/built-in/sse/core.d.ts +44 -0
  264. package/dist/core/middleware/built-in/sse/core.js +117 -0
  265. package/dist/core/middleware/built-in/sse/core.js.map +1 -0
  266. package/dist/core/middleware/built-in/sse/hook.d.ts +18 -0
  267. package/dist/core/middleware/built-in/sse/hook.js +60 -0
  268. package/dist/core/middleware/built-in/sse/hook.js.map +1 -0
  269. package/dist/core/middleware/built-in/sse/index.d.ts +3 -0
  270. package/dist/core/middleware/built-in/sse/index.js +9 -0
  271. package/dist/core/middleware/built-in/sse/index.js.map +1 -0
  272. package/dist/core/middleware/built-in/sse/middleware.d.ts +18 -0
  273. package/dist/core/middleware/built-in/sse/middleware.js +43 -0
  274. package/dist/core/middleware/built-in/sse/middleware.js.map +1 -0
  275. package/dist/core/middleware/built-in/validation/core.d.ts +23 -0
  276. package/dist/core/middleware/built-in/validation/core.js +93 -0
  277. package/dist/core/middleware/built-in/validation/core.js.map +1 -0
  278. package/dist/core/middleware/built-in/validation/hook.d.ts +13 -0
  279. package/dist/core/middleware/built-in/{validation.js → validation/hook.js} +16 -9
  280. package/dist/core/middleware/built-in/validation/hook.js.map +1 -0
  281. package/dist/core/middleware/built-in/validation/index.d.ts +3 -0
  282. package/dist/core/middleware/built-in/validation/index.js +9 -0
  283. package/dist/core/middleware/built-in/validation/index.js.map +1 -0
  284. package/dist/core/middleware/built-in/validation/middleware.d.ts +16 -0
  285. package/dist/core/middleware/built-in/validation/middleware.js +27 -0
  286. package/dist/core/middleware/built-in/validation/middleware.js.map +1 -0
  287. package/dist/core/middleware/index.d.ts +4 -4
  288. package/dist/core/middleware/index.js +14 -28
  289. package/dist/core/middleware/index.js.map +1 -1
  290. package/dist/core/modules/auto-discovery.d.ts +19 -2
  291. package/dist/core/modules/auto-discovery.js +391 -74
  292. package/dist/core/modules/auto-discovery.js.map +1 -1
  293. package/dist/core/modules/index.d.ts +2 -2
  294. package/dist/core/modules/index.js +2 -9
  295. package/dist/core/modules/index.js.map +1 -1
  296. package/dist/core/modules/modules.d.ts +3 -3
  297. package/dist/core/modules/modules.js +23 -54
  298. package/dist/core/modules/modules.js.map +1 -1
  299. package/dist/core/networking/adapters/index.d.ts +4 -3
  300. package/dist/core/networking/adapters/index.js +3 -7
  301. package/dist/core/networking/adapters/index.js.map +1 -1
  302. package/dist/core/networking/adapters/socketio-adapter.d.ts +1 -1
  303. package/dist/core/networking/adapters/socketio-adapter.js +5 -40
  304. package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
  305. package/dist/core/networking/adapters/uws-adapter.d.ts +44 -0
  306. package/dist/core/networking/adapters/uws-adapter.js +513 -0
  307. package/dist/core/networking/adapters/uws-adapter.js.map +1 -0
  308. package/dist/core/networking/adapters/ws-adapter.d.ts +2 -2
  309. package/dist/core/networking/adapters/ws-adapter.js +8 -43
  310. package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
  311. package/dist/core/networking/index.d.ts +3 -2
  312. package/dist/core/networking/index.js +2 -7
  313. package/dist/core/networking/index.js.map +1 -1
  314. package/dist/core/networking/service-discovery.js +8 -12
  315. package/dist/core/networking/service-discovery.js.map +1 -1
  316. package/dist/core/networking/websocket-adapter.js +1 -2
  317. package/dist/core/networking/websocket-adapter.js.map +1 -1
  318. package/dist/core/networking/websocket-manager.d.ts +3 -3
  319. package/dist/core/networking/websocket-manager.js +9 -11
  320. package/dist/core/networking/websocket-manager.js.map +1 -1
  321. package/dist/core/pooling/object-pool-manager.d.ts +140 -0
  322. package/dist/core/pooling/object-pool-manager.js +502 -0
  323. package/dist/core/pooling/object-pool-manager.js.map +1 -0
  324. package/dist/core/routing/app-integration.d.ts +14 -12
  325. package/dist/core/routing/app-integration.js +49 -85
  326. package/dist/core/routing/app-integration.js.map +1 -1
  327. package/dist/core/routing/index.d.ts +17 -11
  328. package/dist/core/routing/index.js +48 -237
  329. package/dist/core/routing/index.js.map +1 -1
  330. package/dist/core/routing/path-matcher.d.ts +67 -0
  331. package/dist/core/routing/path-matcher.js +182 -0
  332. package/dist/core/routing/path-matcher.js.map +1 -0
  333. package/dist/core/routing/router.d.ts +38 -0
  334. package/dist/core/routing/router.js +68 -0
  335. package/dist/core/routing/router.js.map +1 -0
  336. package/dist/core/routing/unified-router.d.ts +132 -0
  337. package/dist/core/routing/unified-router.js +639 -0
  338. package/dist/core/routing/unified-router.js.map +1 -0
  339. package/dist/core/runtime/aws-lambda-adapter.d.ts +3 -3
  340. package/dist/core/runtime/aws-lambda-adapter.js +2 -6
  341. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
  342. package/dist/core/runtime/base-adapter.d.ts +2 -2
  343. package/dist/core/runtime/base-adapter.js +3 -7
  344. package/dist/core/runtime/base-adapter.js.map +1 -1
  345. package/dist/core/runtime/cloudflare-workers-adapter.d.ts +3 -3
  346. package/dist/core/runtime/cloudflare-workers-adapter.js +2 -6
  347. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
  348. package/dist/core/runtime/index.d.ts +12 -12
  349. package/dist/core/runtime/index.js +22 -35
  350. package/dist/core/runtime/index.js.map +1 -1
  351. package/dist/core/runtime/node-adapter.d.ts +4 -4
  352. package/dist/core/runtime/node-adapter.js +18 -49
  353. package/dist/core/runtime/node-adapter.js.map +1 -1
  354. package/dist/core/runtime/vercel-edge-adapter.d.ts +3 -3
  355. package/dist/core/runtime/vercel-edge-adapter.js +2 -6
  356. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
  357. package/dist/core/utilities/circuit-breaker.js +1 -5
  358. package/dist/core/utilities/circuit-breaker.js.map +1 -1
  359. package/dist/core/utilities/container.js +12 -22
  360. package/dist/core/utilities/container.js.map +1 -1
  361. package/dist/core/utilities/hooks.d.ts +2 -2
  362. package/dist/core/utilities/hooks.js +7 -12
  363. package/dist/core/utilities/hooks.js.map +1 -1
  364. package/dist/core/utilities/index.d.ts +5 -4
  365. package/dist/core/utilities/index.js +5 -19
  366. package/dist/core/utilities/index.js.map +1 -1
  367. package/dist/core/utilities/package-utils.d.ts +38 -0
  368. package/dist/core/utilities/package-utils.js +57 -0
  369. package/dist/core/utilities/package-utils.js.map +1 -0
  370. package/dist/core/validation/adapters.d.ts +1 -1
  371. package/dist/core/validation/adapters.js +15 -26
  372. package/dist/core/validation/adapters.js.map +1 -1
  373. package/dist/core/validation/index.d.ts +6 -4
  374. package/dist/core/validation/index.js +57 -28
  375. package/dist/core/validation/index.js.map +1 -1
  376. package/dist/core/validation/schema-interface.js +3 -9
  377. package/dist/core/validation/schema-interface.js.map +1 -1
  378. package/dist/index.d.ts +52 -52
  379. package/dist/index.js +24 -132
  380. package/dist/index.js.map +1 -1
  381. package/dist/moro.d.ts +70 -16
  382. package/dist/moro.js +650 -269
  383. package/dist/moro.js.map +1 -1
  384. package/dist/types/auth.js +3 -9
  385. package/dist/types/auth.js.map +1 -1
  386. package/dist/types/cache.js +1 -2
  387. package/dist/types/cdn.js +1 -2
  388. package/dist/types/config.d.ts +73 -2
  389. package/dist/types/config.js +1 -2
  390. package/dist/types/config.js.map +1 -1
  391. package/dist/types/core.d.ts +36 -42
  392. package/dist/types/core.js +1 -2
  393. package/dist/types/database.js +1 -2
  394. package/dist/types/discovery.js +1 -2
  395. package/dist/types/events.js +1 -2
  396. package/dist/types/hooks.d.ts +4 -1
  397. package/dist/types/hooks.js +1 -2
  398. package/dist/types/http.d.ts +16 -1
  399. package/dist/types/http.js +1 -2
  400. package/dist/types/logger.d.ts +7 -0
  401. package/dist/types/logger.js +1 -2
  402. package/dist/types/module.d.ts +11 -0
  403. package/dist/types/module.js +1 -2
  404. package/dist/types/runtime.d.ts +1 -1
  405. package/dist/types/runtime.js +1 -2
  406. package/dist/types/session.js +1 -2
  407. package/package.json +18 -55
  408. package/dist/core/config/loader.d.ts +0 -7
  409. package/dist/core/config/loader.js +0 -269
  410. package/dist/core/config/loader.js.map +0 -1
  411. package/dist/core/config/validation.d.ts +0 -17
  412. package/dist/core/config/validation.js +0 -131
  413. package/dist/core/config/validation.js.map +0 -1
  414. package/dist/core/http/router.d.ts +0 -14
  415. package/dist/core/http/router.js +0 -109
  416. package/dist/core/http/router.js.map +0 -1
  417. package/dist/core/middleware/built-in/adapters/cache/file.js.map +0 -1
  418. package/dist/core/middleware/built-in/adapters/cache/index.d.ts +0 -5
  419. package/dist/core/middleware/built-in/adapters/cache/index.js +0 -28
  420. package/dist/core/middleware/built-in/adapters/cache/index.js.map +0 -1
  421. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +0 -1
  422. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +0 -1
  423. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +0 -1
  424. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +0 -1
  425. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +0 -1
  426. package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +0 -5
  427. package/dist/core/middleware/built-in/adapters/cdn/index.js +0 -28
  428. package/dist/core/middleware/built-in/adapters/cdn/index.js.map +0 -1
  429. package/dist/core/middleware/built-in/adapters/index.d.ts +0 -4
  430. package/dist/core/middleware/built-in/adapters/index.js +0 -26
  431. package/dist/core/middleware/built-in/adapters/index.js.map +0 -1
  432. package/dist/core/middleware/built-in/auth-helpers.js.map +0 -1
  433. package/dist/core/middleware/built-in/auth-providers.js.map +0 -1
  434. package/dist/core/middleware/built-in/auth.d.ts +0 -30
  435. package/dist/core/middleware/built-in/auth.js +0 -281
  436. package/dist/core/middleware/built-in/auth.js.map +0 -1
  437. package/dist/core/middleware/built-in/cache.d.ts +0 -3
  438. package/dist/core/middleware/built-in/cache.js.map +0 -1
  439. package/dist/core/middleware/built-in/cdn.d.ts +0 -3
  440. package/dist/core/middleware/built-in/cdn.js +0 -113
  441. package/dist/core/middleware/built-in/cdn.js.map +0 -1
  442. package/dist/core/middleware/built-in/cookie.d.ts +0 -14
  443. package/dist/core/middleware/built-in/cookie.js +0 -68
  444. package/dist/core/middleware/built-in/cookie.js.map +0 -1
  445. package/dist/core/middleware/built-in/cors.d.ts +0 -2
  446. package/dist/core/middleware/built-in/cors.js +0 -29
  447. package/dist/core/middleware/built-in/cors.js.map +0 -1
  448. package/dist/core/middleware/built-in/csp.d.ts +0 -22
  449. package/dist/core/middleware/built-in/csp.js +0 -71
  450. package/dist/core/middleware/built-in/csp.js.map +0 -1
  451. package/dist/core/middleware/built-in/csrf.d.ts +0 -9
  452. package/dist/core/middleware/built-in/csrf.js +0 -63
  453. package/dist/core/middleware/built-in/csrf.js.map +0 -1
  454. package/dist/core/middleware/built-in/error-tracker.d.ts +0 -1
  455. package/dist/core/middleware/built-in/error-tracker.js +0 -19
  456. package/dist/core/middleware/built-in/error-tracker.js.map +0 -1
  457. package/dist/core/middleware/built-in/performance-monitor.d.ts +0 -1
  458. package/dist/core/middleware/built-in/performance-monitor.js +0 -22
  459. package/dist/core/middleware/built-in/performance-monitor.js.map +0 -1
  460. package/dist/core/middleware/built-in/rate-limit.d.ts +0 -6
  461. package/dist/core/middleware/built-in/rate-limit.js.map +0 -1
  462. package/dist/core/middleware/built-in/request-logger.d.ts +0 -1
  463. package/dist/core/middleware/built-in/request-logger.js +0 -16
  464. package/dist/core/middleware/built-in/request-logger.js.map +0 -1
  465. package/dist/core/middleware/built-in/session.d.ts +0 -41
  466. package/dist/core/middleware/built-in/session.js +0 -209
  467. package/dist/core/middleware/built-in/session.js.map +0 -1
  468. package/dist/core/middleware/built-in/sse.d.ts +0 -6
  469. package/dist/core/middleware/built-in/sse.js +0 -71
  470. package/dist/core/middleware/built-in/sse.js.map +0 -1
  471. package/dist/core/middleware/built-in/validation.d.ts +0 -2
  472. package/dist/core/middleware/built-in/validation.js.map +0 -1
  473. package/src/core/auth/README.md +0 -339
  474. package/src/core/auth/morojs-adapter.ts +0 -410
  475. package/src/core/config/file-loader.ts +0 -407
  476. package/src/core/config/index.ts +0 -60
  477. package/src/core/config/loader.ts +0 -633
  478. package/src/core/config/schema.ts +0 -150
  479. package/src/core/config/utils.ts +0 -251
  480. package/src/core/config/validation.ts +0 -140
  481. package/src/core/database/README.md +0 -228
  482. package/src/core/database/adapters/drizzle.ts +0 -403
  483. package/src/core/database/adapters/index.ts +0 -42
  484. package/src/core/database/adapters/mongodb.ts +0 -269
  485. package/src/core/database/adapters/mysql.ts +0 -207
  486. package/src/core/database/adapters/postgresql.ts +0 -201
  487. package/src/core/database/adapters/redis.ts +0 -326
  488. package/src/core/database/adapters/sqlite.ts +0 -247
  489. package/src/core/database/index.ts +0 -3
  490. package/src/core/docs/index.ts +0 -231
  491. package/src/core/docs/openapi-generator.ts +0 -576
  492. package/src/core/docs/schema-to-openapi.ts +0 -148
  493. package/src/core/docs/simple-docs.ts +0 -295
  494. package/src/core/docs/swagger-ui.ts +0 -351
  495. package/src/core/docs/zod-to-openapi.ts +0 -532
  496. package/src/core/events/event-bus.ts +0 -231
  497. package/src/core/events/index.ts +0 -12
  498. package/src/core/framework.ts +0 -636
  499. package/src/core/http/http-server.ts +0 -1787
  500. package/src/core/http/index.ts +0 -6
  501. package/src/core/http/router.ts +0 -141
  502. package/src/core/logger/filters.ts +0 -145
  503. package/src/core/logger/index.ts +0 -20
  504. package/src/core/logger/logger.ts +0 -814
  505. package/src/core/logger/outputs.ts +0 -134
  506. package/src/core/middleware/built-in/adapters/cache/file.ts +0 -104
  507. package/src/core/middleware/built-in/adapters/cache/index.ts +0 -23
  508. package/src/core/middleware/built-in/adapters/cache/memory.ts +0 -73
  509. package/src/core/middleware/built-in/adapters/cache/redis.ts +0 -100
  510. package/src/core/middleware/built-in/adapters/cdn/azure.ts +0 -60
  511. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +0 -83
  512. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +0 -83
  513. package/src/core/middleware/built-in/adapters/cdn/index.ts +0 -23
  514. package/src/core/middleware/built-in/adapters/index.ts +0 -7
  515. package/src/core/middleware/built-in/auth-helpers.ts +0 -401
  516. package/src/core/middleware/built-in/auth-providers.ts +0 -480
  517. package/src/core/middleware/built-in/auth.ts +0 -329
  518. package/src/core/middleware/built-in/cache.ts +0 -211
  519. package/src/core/middleware/built-in/cdn.ts +0 -124
  520. package/src/core/middleware/built-in/cookie.ts +0 -85
  521. package/src/core/middleware/built-in/cors.ts +0 -38
  522. package/src/core/middleware/built-in/csp.ts +0 -101
  523. package/src/core/middleware/built-in/csrf.ts +0 -82
  524. package/src/core/middleware/built-in/error-tracker.ts +0 -16
  525. package/src/core/middleware/built-in/index.ts +0 -79
  526. package/src/core/middleware/built-in/performance-monitor.ts +0 -25
  527. package/src/core/middleware/built-in/rate-limit.ts +0 -60
  528. package/src/core/middleware/built-in/request-logger.ts +0 -14
  529. package/src/core/middleware/built-in/session.ts +0 -288
  530. package/src/core/middleware/built-in/sse.ts +0 -86
  531. package/src/core/middleware/built-in/validation.ts +0 -33
  532. package/src/core/middleware/index.ts +0 -177
  533. package/src/core/modules/auto-discovery.ts +0 -263
  534. package/src/core/modules/index.ts +0 -3
  535. package/src/core/modules/modules.ts +0 -124
  536. package/src/core/networking/adapters/index.ts +0 -16
  537. package/src/core/networking/adapters/socketio-adapter.ts +0 -252
  538. package/src/core/networking/adapters/ws-adapter.ts +0 -430
  539. package/src/core/networking/index.ts +0 -3
  540. package/src/core/networking/service-discovery.ts +0 -304
  541. package/src/core/networking/websocket-adapter.ts +0 -217
  542. package/src/core/networking/websocket-manager.ts +0 -308
  543. package/src/core/routing/app-integration.ts +0 -216
  544. package/src/core/routing/index.ts +0 -488
  545. package/src/core/runtime/aws-lambda-adapter.ts +0 -147
  546. package/src/core/runtime/base-adapter.ts +0 -130
  547. package/src/core/runtime/cloudflare-workers-adapter.ts +0 -152
  548. package/src/core/runtime/index.ts +0 -62
  549. package/src/core/runtime/node-adapter.ts +0 -196
  550. package/src/core/runtime/vercel-edge-adapter.ts +0 -114
  551. package/src/core/utilities/circuit-breaker.ts +0 -46
  552. package/src/core/utilities/container.ts +0 -736
  553. package/src/core/utilities/hooks.ts +0 -142
  554. package/src/core/utilities/index.ts +0 -16
  555. package/src/core/validation/adapters.ts +0 -147
  556. package/src/core/validation/index.ts +0 -206
  557. package/src/core/validation/schema-interface.ts +0 -100
  558. package/src/index.ts +0 -226
  559. package/src/moro.ts +0 -1197
  560. package/src/types/auth.ts +0 -440
  561. package/src/types/cache.ts +0 -38
  562. package/src/types/cdn.ts +0 -22
  563. package/src/types/config.ts +0 -157
  564. package/src/types/core.ts +0 -56
  565. package/src/types/database.ts +0 -32
  566. package/src/types/discovery.ts +0 -7
  567. package/src/types/events.ts +0 -82
  568. package/src/types/hooks.ts +0 -47
  569. package/src/types/http.ts +0 -67
  570. package/src/types/logger.ts +0 -93
  571. package/src/types/module.ts +0 -87
  572. package/src/types/runtime.ts +0 -76
  573. package/src/types/session.ts +0 -89
  574. package/tsconfig.json +0 -21
  575. /package/dist/core/middleware/built-in/{auth-helpers.d.ts → auth/helpers.d.ts} +0 -0
@@ -1,134 +0,0 @@
1
- // Advanced Logger Outputs
2
- import { writeFile, appendFile, mkdir } from 'fs/promises';
3
- import { join, dirname } from 'path';
4
- import { LogEntry, LogOutput } from '../../types/logger';
5
-
6
- // File output for persistent logging
7
- export class FileOutput implements LogOutput {
8
- name = 'file';
9
-
10
- constructor(
11
- private filePath: string,
12
- private options: {
13
- format?: 'json' | 'pretty';
14
- maxSize?: number; // MB
15
- rotate?: boolean;
16
- } = {}
17
- ) {}
18
-
19
- async write(entry: LogEntry): Promise<void> {
20
- try {
21
- // Ensure directory exists
22
- await mkdir(dirname(this.filePath), { recursive: true });
23
-
24
- const format = this.options.format || 'json';
25
- const line =
26
- format === 'json' ? JSON.stringify(entry) + '\n' : this.formatPretty(entry) + '\n';
27
-
28
- await appendFile(this.filePath, line, 'utf8');
29
-
30
- // TODO: Implement log rotation if needed
31
- } catch (error) {
32
- // Use console.error as fallback since this is the logger itself
33
- console.error('File logger error:', error);
34
- }
35
- }
36
-
37
- private formatPretty(entry: LogEntry): string {
38
- const timestamp = entry.timestamp.toISOString();
39
- const level = entry.level.toUpperCase().padEnd(5);
40
- const context = entry.context ? `[${entry.context}] ` : '';
41
- const metadata =
42
- entry.metadata && Object.keys(entry.metadata).length > 0
43
- ? ` ${JSON.stringify(entry.metadata)}`
44
- : '';
45
-
46
- return `${timestamp} ${level} ${context}${entry.message}${metadata}`;
47
- }
48
- }
49
-
50
- // HTTP webhook output for external logging services
51
- export class WebhookOutput implements LogOutput {
52
- name = 'webhook';
53
-
54
- constructor(
55
- private url: string,
56
- private options: {
57
- headers?: Record<string, string>;
58
- batch?: boolean;
59
- batchSize?: number;
60
- timeout?: number;
61
- } = {}
62
- ) {}
63
-
64
- async write(entry: LogEntry): Promise<void> {
65
- try {
66
- const response = await fetch(this.url, {
67
- method: 'POST',
68
- headers: {
69
- 'Content-Type': 'application/json',
70
- ...this.options.headers,
71
- },
72
- body: JSON.stringify(entry),
73
- signal: AbortSignal.timeout(this.options.timeout || 5000),
74
- });
75
-
76
- if (!response.ok) {
77
- throw new Error(`Webhook failed: ${response.status}`);
78
- }
79
- } catch (error) {
80
- // Use console.error as fallback since this is the logger itself
81
- console.error('Webhook logger error:', error);
82
- }
83
- }
84
- }
85
-
86
- // Memory buffer output for testing and debugging
87
- export class MemoryOutput implements LogOutput {
88
- name = 'memory';
89
- private buffer: LogEntry[] = [];
90
-
91
- constructor(private maxSize: number = 1000) {}
92
-
93
- write(entry: LogEntry): void {
94
- this.buffer.push(entry);
95
- if (this.buffer.length > this.maxSize) {
96
- this.buffer.shift();
97
- }
98
- }
99
-
100
- getEntries(): LogEntry[] {
101
- return [...this.buffer];
102
- }
103
-
104
- clear(): void {
105
- this.buffer = [];
106
- }
107
- }
108
-
109
- // Stream output for custom processing
110
- export class StreamOutput implements LogOutput {
111
- name = 'stream';
112
- format?: 'pretty' | 'json' | 'compact';
113
-
114
- constructor(
115
- private stream: NodeJS.WritableStream,
116
- format: 'json' | 'pretty' = 'json'
117
- ) {
118
- this.format = format;
119
- }
120
-
121
- write(entry: LogEntry): void {
122
- const data =
123
- this.format === 'json' ? JSON.stringify(entry) + '\n' : this.formatPretty(entry) + '\n';
124
-
125
- this.stream.write(data);
126
- }
127
-
128
- private formatPretty(entry: LogEntry): string {
129
- const timestamp = entry.timestamp.toISOString();
130
- const level = entry.level.toUpperCase().padEnd(5);
131
- const context = entry.context ? `[${entry.context}] ` : '';
132
- return `${timestamp} ${level} ${context}${entry.message}`;
133
- }
134
- }
@@ -1,104 +0,0 @@
1
- // File System Cache Adapter
2
- import { CacheAdapter } from '../../../../../types/cache';
3
- import { createFrameworkLogger } from '../../../../logger';
4
-
5
- const logger = createFrameworkLogger('FileCacheAdapter');
6
-
7
- export class FileCacheAdapter implements CacheAdapter {
8
- private cacheDir: string;
9
-
10
- constructor(options: { cacheDir?: string } = {}) {
11
- this.cacheDir = options.cacheDir || './cache';
12
- this.ensureCacheDir();
13
- }
14
-
15
- private async ensureCacheDir(): Promise<void> {
16
- const fs = await import('fs/promises');
17
- try {
18
- await fs.mkdir(this.cacheDir, { recursive: true });
19
- } catch (error) {
20
- logger.error('Failed to create cache directory', 'FileCache', { error });
21
- }
22
- }
23
-
24
- private getFilePath(key: string): string {
25
- const crypto = require('crypto');
26
- const hash = crypto.createHash('md5').update(key).digest('hex');
27
- return `${this.cacheDir}/${hash}.json`;
28
- }
29
-
30
- async get(key: string): Promise<any> {
31
- try {
32
- const fs = await import('fs/promises');
33
- const filePath = this.getFilePath(key);
34
- const data = await fs.readFile(filePath, 'utf-8');
35
- const parsed = JSON.parse(data);
36
-
37
- if (Date.now() > parsed.expires) {
38
- await this.del(key);
39
- return null;
40
- }
41
-
42
- return parsed.value;
43
- } catch (error) {
44
- return null;
45
- }
46
- }
47
-
48
- async set(key: string, value: any, ttl: number = 3600): Promise<void> {
49
- try {
50
- const fs = await import('fs/promises');
51
- const filePath = this.getFilePath(key);
52
- const expires = Date.now() + ttl * 1000;
53
- const data = JSON.stringify({ value, expires });
54
-
55
- await fs.writeFile(filePath, data);
56
- logger.debug(`Cached item to file: ${key} (TTL: ${ttl}s)`, 'FileCache');
57
- } catch (error) {
58
- logger.error('File cache set error', 'FileCache', { key, error });
59
- }
60
- }
61
-
62
- async del(key: string): Promise<void> {
63
- try {
64
- const fs = await import('fs/promises');
65
- const filePath = this.getFilePath(key);
66
- await fs.unlink(filePath);
67
- logger.debug(`Deleted file cache item: ${key}`, 'FileCache');
68
- } catch (error) {
69
- // File might not exist, which is okay
70
- }
71
- }
72
-
73
- async clear(): Promise<void> {
74
- try {
75
- const fs = await import('fs/promises');
76
- const files = await fs.readdir(this.cacheDir);
77
-
78
- await Promise.all(files.map(file => fs.unlink(`${this.cacheDir}/${file}`)));
79
-
80
- logger.debug('Cleared all file cache items', 'FileCache');
81
- } catch (error) {
82
- logger.error('File cache clear error', 'FileCache', { error });
83
- }
84
- }
85
-
86
- async exists(key: string): Promise<boolean> {
87
- const value = await this.get(key);
88
- return value !== null;
89
- }
90
-
91
- async ttl(key: string): Promise<number> {
92
- try {
93
- const fs = await import('fs/promises');
94
- const filePath = this.getFilePath(key);
95
- const data = await fs.readFile(filePath, 'utf-8');
96
- const parsed = JSON.parse(data);
97
-
98
- const remaining = Math.floor((parsed.expires - Date.now()) / 1000);
99
- return remaining > 0 ? remaining : -1;
100
- } catch (error) {
101
- return -1;
102
- }
103
- }
104
- }
@@ -1,23 +0,0 @@
1
- // Cache Adapters
2
- export { MemoryCacheAdapter } from './memory';
3
- export { RedisCacheAdapter } from './redis';
4
- export { FileCacheAdapter } from './file';
5
-
6
- import { MemoryCacheAdapter } from './memory';
7
- import { RedisCacheAdapter } from './redis';
8
- import { FileCacheAdapter } from './file';
9
- import { CacheAdapter } from '../../../../../types/cache';
10
-
11
- // Adapter factory function for auto-loading
12
- export function createCacheAdapter(type: string, options: any = {}): CacheAdapter {
13
- switch (type.toLowerCase()) {
14
- case 'memory':
15
- return new MemoryCacheAdapter();
16
- case 'redis':
17
- return new RedisCacheAdapter(options);
18
- case 'file':
19
- return new FileCacheAdapter(options);
20
- default:
21
- throw new Error(`Unknown cache adapter type: ${type}`);
22
- }
23
- }
@@ -1,73 +0,0 @@
1
- // Memory Cache Adapter
2
- import { CacheAdapter } from '../../../../../types/cache';
3
- import { createFrameworkLogger } from '../../../../logger';
4
-
5
- const logger = createFrameworkLogger('MemoryCacheAdapter');
6
-
7
- export class MemoryCacheAdapter implements CacheAdapter {
8
- private cache = new Map<string, { value: any; expires: number }>();
9
- private timers = new Map<string, NodeJS.Timeout>();
10
-
11
- async get(key: string): Promise<any> {
12
- const item = this.cache.get(key);
13
- if (!item) return null;
14
-
15
- if (Date.now() > item.expires) {
16
- await this.del(key);
17
- return null;
18
- }
19
-
20
- return item.value;
21
- }
22
-
23
- async set(key: string, value: any, ttl: number = 3600): Promise<void> {
24
- const expires = Date.now() + ttl * 1000;
25
-
26
- // Clear existing timer
27
- const existingTimer = this.timers.get(key);
28
- if (existingTimer) {
29
- clearTimeout(existingTimer);
30
- }
31
-
32
- // Set new value
33
- this.cache.set(key, { value, expires });
34
-
35
- // Set expiration timer
36
- const timer = setTimeout(() => {
37
- this.cache.delete(key);
38
- this.timers.delete(key);
39
- }, ttl * 1000);
40
-
41
- this.timers.set(key, timer);
42
- logger.debug(`Cached item: ${key} (TTL: ${ttl}s)`, 'MemoryCache');
43
- }
44
-
45
- async del(key: string): Promise<void> {
46
- this.cache.delete(key);
47
- const timer = this.timers.get(key);
48
- if (timer) {
49
- clearTimeout(timer);
50
- this.timers.delete(key);
51
- }
52
- logger.debug(`Deleted cache item: ${key}`, 'MemoryCache');
53
- }
54
-
55
- async clear(): Promise<void> {
56
- this.cache.clear();
57
- this.timers.forEach(timer => clearTimeout(timer));
58
- this.timers.clear();
59
- logger.debug('Cleared all cache items', 'MemoryCache');
60
- }
61
-
62
- async exists(key: string): Promise<boolean> {
63
- return this.cache.has(key) && Date.now() <= this.cache.get(key)!.expires;
64
- }
65
-
66
- async ttl(key: string): Promise<number> {
67
- const item = this.cache.get(key);
68
- if (!item) return -1;
69
-
70
- const remaining = Math.floor((item.expires - Date.now()) / 1000);
71
- return remaining > 0 ? remaining : -1;
72
- }
73
- }
@@ -1,100 +0,0 @@
1
- // Redis Cache Adapter
2
- import { CacheAdapter } from '../../../../../types/cache';
3
- import { createFrameworkLogger } from '../../../../logger';
4
-
5
- const logger = createFrameworkLogger('RedisCacheAdapter');
6
-
7
- export class RedisCacheAdapter implements CacheAdapter {
8
- private client: any;
9
-
10
- constructor(
11
- options: {
12
- host?: string;
13
- port?: number;
14
- password?: string;
15
- db?: number;
16
- keyPrefix?: string;
17
- } = {}
18
- ) {
19
- try {
20
- const redis = require('redis');
21
- this.client = redis.createClient({
22
- host: options.host || 'localhost',
23
- port: options.port || 6379,
24
- password: options.password,
25
- db: options.db || 0,
26
- key_prefix: options.keyPrefix || 'moro:cache:',
27
- });
28
-
29
- this.client.on('error', (err: Error) => {
30
- logger.error('Redis cache error', 'RedisCache', { error: err.message });
31
- });
32
-
33
- logger.info('Redis cache adapter initialized', 'RedisCache');
34
- } catch (error) {
35
- logger.error('Redis not available, falling back to memory cache', 'RedisCache');
36
- throw new Error('Redis package not installed. Run: npm install redis');
37
- }
38
- }
39
-
40
- async get(key: string): Promise<any> {
41
- try {
42
- const value = await this.client.get(key);
43
- return value ? JSON.parse(value) : null;
44
- } catch (error) {
45
- logger.error('Redis get error', 'RedisCache', { key, error });
46
- return null;
47
- }
48
- }
49
-
50
- async set(key: string, value: any, ttl: number = 3600): Promise<void> {
51
- try {
52
- const serialized = JSON.stringify(value);
53
- if (ttl > 0) {
54
- await this.client.setex(key, ttl, serialized);
55
- } else {
56
- await this.client.set(key, serialized);
57
- }
58
- logger.debug(`Cached item in Redis: ${key} (TTL: ${ttl}s)`, 'RedisCache');
59
- } catch (error) {
60
- logger.error('Redis set error', 'RedisCache', { key, error });
61
- }
62
- }
63
-
64
- async del(key: string): Promise<void> {
65
- try {
66
- await this.client.del(key);
67
- logger.debug(`Deleted Redis cache item: ${key}`, 'RedisCache');
68
- } catch (error) {
69
- logger.error('Redis del error', 'RedisCache', { key, error });
70
- }
71
- }
72
-
73
- async clear(): Promise<void> {
74
- try {
75
- await this.client.flushdb();
76
- logger.debug('Cleared all Redis cache items', 'RedisCache');
77
- } catch (error) {
78
- logger.error('Redis clear error', 'RedisCache', { error });
79
- }
80
- }
81
-
82
- async exists(key: string): Promise<boolean> {
83
- try {
84
- const exists = await this.client.exists(key);
85
- return exists === 1;
86
- } catch (error) {
87
- logger.error('Redis exists error', 'RedisCache', { key, error });
88
- return false;
89
- }
90
- }
91
-
92
- async ttl(key: string): Promise<number> {
93
- try {
94
- return await this.client.ttl(key);
95
- } catch (error) {
96
- logger.error('Redis TTL error', 'RedisCache', { key, error });
97
- return -1;
98
- }
99
- }
100
- }
@@ -1,60 +0,0 @@
1
- // Azure CDN Adapter
2
- import { CDNAdapter } from '../../../../../types/cdn';
3
- import { createFrameworkLogger } from '../../../../logger';
4
-
5
- const logger = createFrameworkLogger('AzureCDNAdapter');
6
-
7
- export class AzureCDNAdapter implements CDNAdapter {
8
- private endpoint: string;
9
- private subscriptionId: string;
10
- private resourceGroup: string;
11
- private profileName: string;
12
- private endpointName: string;
13
-
14
- constructor(options: {
15
- subscriptionId: string;
16
- resourceGroup: string;
17
- profileName: string;
18
- endpointName: string;
19
- endpoint: string;
20
- clientId?: string;
21
- clientSecret?: string;
22
- tenantId?: string;
23
- }) {
24
- this.subscriptionId = options.subscriptionId;
25
- this.resourceGroup = options.resourceGroup;
26
- this.profileName = options.profileName;
27
- this.endpointName = options.endpointName;
28
- this.endpoint = options.endpoint;
29
-
30
- logger.info('Azure CDN adapter initialized', 'AzureCDN');
31
- }
32
-
33
- async purge(urls: string[]): Promise<void> {
34
- try {
35
- const purgeUrl = `https://management.azure.com/subscriptions/${this.subscriptionId}/resourceGroups/${this.resourceGroup}/providers/Microsoft.Cdn/profiles/${this.profileName}/endpoints/${this.endpointName}/purge`;
36
-
37
- const purgeData = {
38
- contentPaths: urls.map(url => (url.startsWith('/') ? url : `/${url}`)),
39
- };
40
-
41
- logger.info(`Azure CDN cache purge requested: ${urls.length} URLs`, 'AzureCDN');
42
-
43
- // Implementation would use Azure SDK or REST API calls
44
- // const response = await fetch(purgeUrl, { method: 'POST', body: JSON.stringify(purgeData) });
45
- } catch (error) {
46
- logger.error('Azure CDN purge failed', 'AzureCDN', { error, urls });
47
- throw error;
48
- }
49
- }
50
-
51
- async prefetch(urls: string[]): Promise<void> {
52
- logger.debug(`Azure CDN prefetch requested for ${urls.length} URLs`, 'AzureCDN');
53
- // Azure CDN prefetch implementation
54
- }
55
-
56
- setHeaders(response: any): void {
57
- response.setHeader('Cache-Control', 'public, max-age=3600');
58
- response.setHeader('Azure-CDN-Edge-Location', 'US-East');
59
- }
60
- }
@@ -1,83 +0,0 @@
1
- // Cloudflare CDN Adapter
2
- import { CDNAdapter } from '../../../../../types/cdn';
3
- import { createFrameworkLogger } from '../../../../logger';
4
-
5
- const logger = createFrameworkLogger('CloudflareCDNAdapter');
6
-
7
- export class CloudflareCDNAdapter implements CDNAdapter {
8
- private apiToken: string;
9
- private zoneId: string;
10
-
11
- constructor(options: { apiToken: string; zoneId: string }) {
12
- this.apiToken = options.apiToken;
13
- this.zoneId = options.zoneId;
14
-
15
- logger.info('Cloudflare CDN adapter initialized', 'Cloudflare');
16
- }
17
-
18
- async purge(urls: string[]): Promise<void> {
19
- try {
20
- const response = await this.cfRequest('POST', `/zones/${this.zoneId}/purge_cache`, {
21
- files: urls,
22
- });
23
-
24
- if (response.success) {
25
- logger.info(`Cloudflare cache purged: ${urls.length} URLs`, 'Cloudflare');
26
- } else {
27
- throw new Error('Cloudflare purge failed');
28
- }
29
- } catch (error) {
30
- logger.error('Cloudflare purge failed', 'Cloudflare', { error, urls });
31
- throw error;
32
- }
33
- }
34
-
35
- async prefetch(urls: string[]): Promise<void> {
36
- try {
37
- logger.debug(`Cloudflare prefetch requested for ${urls.length} URLs`, 'Cloudflare');
38
- // Cloudflare doesn't have direct prefetch, but we can use preload links
39
- for (const url of urls) {
40
- // Implementation would depend on Cloudflare Workers or edge functions
41
- }
42
- } catch (error) {
43
- logger.error('Cloudflare prefetch failed', 'Cloudflare', { error, urls });
44
- }
45
- }
46
-
47
- async getStats(): Promise<any> {
48
- try {
49
- const response = await this.cfRequest('GET', `/zones/${this.zoneId}/analytics/dashboard`);
50
- return response.result;
51
- } catch (error) {
52
- logger.error('Cloudflare stats failed', 'Cloudflare', { error });
53
- return null;
54
- }
55
- }
56
-
57
- setHeaders(response: any): void {
58
- response.setHeader('Cache-Control', 'public, max-age=3600');
59
- response.setHeader('CF-Cache-Status', 'DYNAMIC');
60
- response.setHeader('CF-Ray', `${Math.random().toString(36)}-DFW`);
61
- }
62
-
63
- private async cfRequest(method: string, endpoint: string, data?: any): Promise<any> {
64
- const url = `https://api.cloudflare.com/client/v4${endpoint}`;
65
-
66
- try {
67
- // In a real implementation, you'd use fetch or axios
68
- const response = {
69
- success: true,
70
- result: data || {},
71
- };
72
-
73
- return response;
74
- } catch (error) {
75
- logger.error('Cloudflare API request failed', 'Cloudflare', {
76
- error,
77
- method,
78
- endpoint,
79
- });
80
- throw error;
81
- }
82
- }
83
- }
@@ -1,83 +0,0 @@
1
- // AWS CloudFront CDN Adapter
2
- import { CDNAdapter } from '../../../../../types/cdn';
3
- import { createFrameworkLogger } from '../../../../logger';
4
-
5
- const logger = createFrameworkLogger('CloudFrontCDNAdapter');
6
-
7
- export class CloudFrontCDNAdapter implements CDNAdapter {
8
- private cloudfront: any;
9
- private distributionId: string;
10
-
11
- constructor(options: {
12
- accessKeyId: string;
13
- secretAccessKey: string;
14
- region: string;
15
- distributionId: string;
16
- }) {
17
- this.distributionId = options.distributionId;
18
-
19
- try {
20
- const AWS = require('aws-sdk');
21
- AWS.config.update({
22
- accessKeyId: options.accessKeyId,
23
- secretAccessKey: options.secretAccessKey,
24
- region: options.region,
25
- });
26
-
27
- this.cloudfront = new AWS.CloudFront();
28
- logger.info('CloudFront CDN adapter initialized', 'CloudFront');
29
- } catch (error) {
30
- logger.error('AWS SDK not available', 'CloudFront');
31
- throw new Error('AWS SDK not installed. Run: npm install aws-sdk');
32
- }
33
- }
34
-
35
- async purge(urls: string[]): Promise<void> {
36
- try {
37
- const params = {
38
- DistributionId: this.distributionId,
39
- InvalidationBatch: {
40
- CallerReference: `moro-${Date.now()}`,
41
- Paths: {
42
- Quantity: urls.length,
43
- Items: urls.map(url => (url.startsWith('/') ? url : `/${url}`)),
44
- },
45
- },
46
- };
47
-
48
- const result = await this.cloudfront.createInvalidation(params).promise();
49
- logger.info(`CloudFront cache purged: ${urls.length} URLs`, 'CloudFront', {
50
- invalidationId: result.Invalidation.Id,
51
- });
52
- } catch (error) {
53
- logger.error('CloudFront purge failed', 'CloudFront', { error, urls });
54
- throw error;
55
- }
56
- }
57
-
58
- async prefetch(urls: string[]): Promise<void> {
59
- logger.debug(`CloudFront prefetch requested for ${urls.length} URLs`, 'CloudFront');
60
- // CloudFront doesn't have direct prefetch, but we can simulate with requests
61
- }
62
-
63
- async getStats(): Promise<any> {
64
- try {
65
- const params = { Id: this.distributionId };
66
- const distribution = await this.cloudfront.getDistribution(params).promise();
67
-
68
- return {
69
- status: distribution.Distribution.Status,
70
- domainName: distribution.Distribution.DomainName,
71
- enabled: distribution.Distribution.DistributionConfig.Enabled,
72
- };
73
- } catch (error) {
74
- logger.error('CloudFront stats failed', 'CloudFront', { error });
75
- return null;
76
- }
77
- }
78
-
79
- setHeaders(response: any): void {
80
- response.setHeader('Cache-Control', 'public, max-age=3600');
81
- response.setHeader('CloudFront-Viewer-Country', 'US');
82
- }
83
- }
@@ -1,23 +0,0 @@
1
- // CDN Adapters
2
- export { CloudflareCDNAdapter } from './cloudflare';
3
- export { CloudFrontCDNAdapter } from './cloudfront';
4
- export { AzureCDNAdapter } from './azure';
5
-
6
- import { CloudflareCDNAdapter } from './cloudflare';
7
- import { CloudFrontCDNAdapter } from './cloudfront';
8
- import { AzureCDNAdapter } from './azure';
9
- import { CDNAdapter } from '../../../../../types/cdn';
10
-
11
- // Adapter factory function for auto-loading
12
- export function createCDNAdapter(type: string, options: any = {}): CDNAdapter {
13
- switch (type.toLowerCase()) {
14
- case 'cloudflare':
15
- return new CloudflareCDNAdapter(options);
16
- case 'cloudfront':
17
- return new CloudFrontCDNAdapter(options);
18
- case 'azure':
19
- return new AzureCDNAdapter(options);
20
- default:
21
- throw new Error(`Unknown CDN adapter type: ${type}`);
22
- }
23
- }
@@ -1,7 +0,0 @@
1
- // Adapters Index
2
- export * from './cache';
3
- export * from './cdn';
4
-
5
- // Re-export factory functions for convenience
6
- export { createCacheAdapter } from './cache';
7
- export { createCDNAdapter } from './cdn';