@morojs/moro 1.6.0 → 1.6.1

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 (388) hide show
  1. package/README.md +256 -74
  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/file-loader.d.ts +6 -1
  5. package/dist/core/config/file-loader.js +249 -19
  6. package/dist/core/config/file-loader.js.map +1 -1
  7. package/dist/core/config/index.d.ts +12 -41
  8. package/dist/core/config/index.js +54 -65
  9. package/dist/core/config/index.js.map +1 -1
  10. package/dist/core/config/loader.d.ts +7 -0
  11. package/dist/core/config/loader.js +269 -0
  12. package/dist/core/config/loader.js.map +1 -0
  13. package/dist/core/config/schema.d.ts +2 -2
  14. package/dist/core/config/schema.js +44 -52
  15. package/dist/core/config/schema.js.map +1 -1
  16. package/dist/core/config/utils.d.ts +3 -10
  17. package/dist/core/config/utils.js +58 -31
  18. package/dist/core/config/utils.js.map +1 -1
  19. package/dist/core/config/validation.d.ts +17 -0
  20. package/dist/core/config/validation.js +131 -0
  21. package/dist/core/config/validation.js.map +1 -0
  22. package/dist/core/database/adapters/drizzle.d.ts +1 -1
  23. package/dist/core/database/adapters/drizzle.js +11 -18
  24. package/dist/core/database/adapters/drizzle.js.map +1 -1
  25. package/dist/core/database/adapters/index.d.ts +7 -7
  26. package/dist/core/database/adapters/index.js +29 -19
  27. package/dist/core/database/adapters/index.js.map +1 -1
  28. package/dist/core/database/adapters/mongodb.d.ts +1 -13
  29. package/dist/core/database/adapters/mongodb.js +10 -46
  30. package/dist/core/database/adapters/mongodb.js.map +1 -1
  31. package/dist/core/database/adapters/mysql.d.ts +1 -14
  32. package/dist/core/database/adapters/mysql.js +9 -19
  33. package/dist/core/database/adapters/mysql.js.map +1 -1
  34. package/dist/core/database/adapters/postgresql.d.ts +2 -12
  35. package/dist/core/database/adapters/postgresql.js +9 -19
  36. package/dist/core/database/adapters/postgresql.js.map +1 -1
  37. package/dist/core/database/adapters/redis.d.ts +1 -12
  38. package/dist/core/database/adapters/redis.js +13 -48
  39. package/dist/core/database/adapters/redis.js.map +1 -1
  40. package/dist/core/database/adapters/sqlite.d.ts +1 -3
  41. package/dist/core/database/adapters/sqlite.js +8 -19
  42. package/dist/core/database/adapters/sqlite.js.map +1 -1
  43. package/dist/core/database/index.d.ts +2 -2
  44. package/dist/core/database/index.js +18 -2
  45. package/dist/core/database/index.js.map +1 -1
  46. package/dist/core/docs/index.d.ts +9 -9
  47. package/dist/core/docs/index.js +35 -14
  48. package/dist/core/docs/index.js.map +1 -1
  49. package/dist/core/docs/openapi-generator.d.ts +2 -2
  50. package/dist/core/docs/openapi-generator.js +16 -11
  51. package/dist/core/docs/openapi-generator.js.map +1 -1
  52. package/dist/core/docs/schema-to-openapi.d.ts +2 -2
  53. package/dist/core/docs/schema-to-openapi.js +11 -5
  54. package/dist/core/docs/schema-to-openapi.js.map +1 -1
  55. package/dist/core/docs/simple-docs.d.ts +1 -1
  56. package/dist/core/docs/simple-docs.js +9 -4
  57. package/dist/core/docs/simple-docs.js.map +1 -1
  58. package/dist/core/docs/swagger-ui.d.ts +2 -2
  59. package/dist/core/docs/swagger-ui.js +29 -26
  60. package/dist/core/docs/swagger-ui.js.map +1 -1
  61. package/dist/core/docs/zod-to-openapi.js +28 -31
  62. package/dist/core/docs/zod-to-openapi.js.map +1 -1
  63. package/dist/core/events/event-bus.d.ts +1 -1
  64. package/dist/core/events/event-bus.js +10 -6
  65. package/dist/core/events/event-bus.js.map +1 -1
  66. package/dist/core/events/index.d.ts +2 -2
  67. package/dist/core/events/index.js +5 -1
  68. package/dist/core/events/index.js.map +1 -1
  69. package/dist/core/framework.d.ts +12 -19
  70. package/dist/core/framework.js +100 -277
  71. package/dist/core/framework.js.map +1 -1
  72. package/dist/core/http/http-server.d.ts +1 -13
  73. package/dist/core/http/http-server.js +85 -175
  74. package/dist/core/http/http-server.js.map +1 -1
  75. package/dist/core/http/index.d.ts +3 -4
  76. package/dist/core/http/index.js +8 -3
  77. package/dist/core/http/index.js.map +1 -1
  78. package/dist/core/http/router.d.ts +1 -13
  79. package/dist/core/http/router.js +43 -117
  80. package/dist/core/http/router.js.map +1 -1
  81. package/dist/core/logger/filters.d.ts +1 -1
  82. package/dist/core/logger/filters.js +23 -20
  83. package/dist/core/logger/filters.js.map +1 -1
  84. package/dist/core/logger/index.d.ts +3 -3
  85. package/dist/core/logger/index.js +24 -2
  86. package/dist/core/logger/index.js.map +1 -1
  87. package/dist/core/logger/logger.d.ts +14 -30
  88. package/dist/core/logger/logger.js +223 -398
  89. package/dist/core/logger/logger.js.map +1 -1
  90. package/dist/core/logger/outputs.d.ts +1 -1
  91. package/dist/core/logger/outputs.js +17 -8
  92. package/dist/core/logger/outputs.js.map +1 -1
  93. package/dist/core/middleware/built-in/adapters/cache/file.d.ts +1 -1
  94. package/dist/core/middleware/built-in/adapters/cache/file.js +47 -10
  95. package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -1
  96. package/dist/core/middleware/built-in/adapters/cache/index.d.ts +4 -4
  97. package/dist/core/middleware/built-in/adapters/cache/index.js +17 -10
  98. package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -1
  99. package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +1 -1
  100. package/dist/core/middleware/built-in/adapters/cache/memory.js +7 -3
  101. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -1
  102. package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +1 -3
  103. package/dist/core/middleware/built-in/adapters/cache/redis.js +9 -11
  104. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -1
  105. package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +1 -1
  106. package/dist/core/middleware/built-in/adapters/cdn/azure.js +7 -3
  107. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -1
  108. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +1 -1
  109. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +7 -3
  110. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -1
  111. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +1 -3
  112. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +10 -12
  113. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -1
  114. package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +4 -4
  115. package/dist/core/middleware/built-in/adapters/cdn/index.js +17 -10
  116. package/dist/core/middleware/built-in/adapters/cdn/index.js.map +1 -1
  117. package/dist/core/middleware/built-in/adapters/index.d.ts +4 -4
  118. package/dist/core/middleware/built-in/adapters/index.js +23 -4
  119. package/dist/core/middleware/built-in/adapters/index.js.map +1 -1
  120. package/dist/core/middleware/built-in/auth-helpers.js +22 -11
  121. package/dist/core/middleware/built-in/auth-helpers.js.map +1 -1
  122. package/dist/core/middleware/built-in/auth-providers.d.ts +1 -1
  123. package/dist/core/middleware/built-in/auth-providers.js +9 -4
  124. package/dist/core/middleware/built-in/auth-providers.js.map +1 -1
  125. package/dist/core/middleware/built-in/auth.d.ts +2 -2
  126. package/dist/core/middleware/built-in/auth.js +26 -93
  127. package/dist/core/middleware/built-in/auth.js.map +1 -1
  128. package/dist/core/middleware/built-in/cache.d.ts +2 -2
  129. package/dist/core/middleware/built-in/cache.js +12 -11
  130. package/dist/core/middleware/built-in/cache.js.map +1 -1
  131. package/dist/core/middleware/built-in/cdn.d.ts +2 -2
  132. package/dist/core/middleware/built-in/cdn.js +9 -5
  133. package/dist/core/middleware/built-in/cdn.js.map +1 -1
  134. package/dist/core/middleware/built-in/cookie.d.ts +1 -1
  135. package/dist/core/middleware/built-in/cookie.js +7 -3
  136. package/dist/core/middleware/built-in/cookie.js.map +1 -1
  137. package/dist/core/middleware/built-in/cors.d.ts +1 -1
  138. package/dist/core/middleware/built-in/cors.js +7 -3
  139. package/dist/core/middleware/built-in/cors.js.map +1 -1
  140. package/dist/core/middleware/built-in/csp.d.ts +1 -1
  141. package/dist/core/middleware/built-in/csp.js +8 -5
  142. package/dist/core/middleware/built-in/csp.js.map +1 -1
  143. package/dist/core/middleware/built-in/csrf.d.ts +1 -1
  144. package/dist/core/middleware/built-in/csrf.js +8 -5
  145. package/dist/core/middleware/built-in/csrf.js.map +1 -1
  146. package/dist/core/middleware/built-in/error-tracker.js +7 -3
  147. package/dist/core/middleware/built-in/error-tracker.js.map +1 -1
  148. package/dist/core/middleware/built-in/index.d.ts +27 -28
  149. package/dist/core/middleware/built-in/index.js +78 -48
  150. package/dist/core/middleware/built-in/index.js.map +1 -1
  151. package/dist/core/middleware/built-in/performance-monitor.js +7 -3
  152. package/dist/core/middleware/built-in/performance-monitor.js.map +1 -1
  153. package/dist/core/middleware/built-in/rate-limit.d.ts +1 -1
  154. package/dist/core/middleware/built-in/rate-limit.js +7 -3
  155. package/dist/core/middleware/built-in/rate-limit.js.map +1 -1
  156. package/dist/core/middleware/built-in/request-logger.js +8 -5
  157. package/dist/core/middleware/built-in/request-logger.js.map +1 -1
  158. package/dist/core/middleware/built-in/session.d.ts +2 -2
  159. package/dist/core/middleware/built-in/session.js +15 -11
  160. package/dist/core/middleware/built-in/session.js.map +1 -1
  161. package/dist/core/middleware/built-in/sse.d.ts +1 -1
  162. package/dist/core/middleware/built-in/sse.js +14 -12
  163. package/dist/core/middleware/built-in/sse.js.map +1 -1
  164. package/dist/core/middleware/built-in/validation.d.ts +1 -1
  165. package/dist/core/middleware/built-in/validation.js +7 -3
  166. package/dist/core/middleware/built-in/validation.js.map +1 -1
  167. package/dist/core/middleware/index.d.ts +4 -4
  168. package/dist/core/middleware/index.js +28 -8
  169. package/dist/core/middleware/index.js.map +1 -1
  170. package/dist/core/modules/auto-discovery.d.ts +2 -19
  171. package/dist/core/modules/auto-discovery.js +74 -391
  172. package/dist/core/modules/auto-discovery.js.map +1 -1
  173. package/dist/core/modules/index.d.ts +2 -2
  174. package/dist/core/modules/index.js +9 -2
  175. package/dist/core/modules/index.js.map +1 -1
  176. package/dist/core/modules/modules.d.ts +3 -3
  177. package/dist/core/modules/modules.js +54 -23
  178. package/dist/core/modules/modules.js.map +1 -1
  179. package/dist/core/networking/adapters/index.d.ts +3 -4
  180. package/dist/core/networking/adapters/index.js +7 -3
  181. package/dist/core/networking/adapters/index.js.map +1 -1
  182. package/dist/core/networking/adapters/socketio-adapter.d.ts +1 -1
  183. package/dist/core/networking/adapters/socketio-adapter.js +40 -5
  184. package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
  185. package/dist/core/networking/adapters/ws-adapter.d.ts +2 -2
  186. package/dist/core/networking/adapters/ws-adapter.js +43 -8
  187. package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
  188. package/dist/core/networking/index.d.ts +2 -3
  189. package/dist/core/networking/index.js +7 -2
  190. package/dist/core/networking/index.js.map +1 -1
  191. package/dist/core/networking/service-discovery.js +12 -8
  192. package/dist/core/networking/service-discovery.js.map +1 -1
  193. package/dist/core/networking/websocket-adapter.js +2 -1
  194. package/dist/core/networking/websocket-adapter.js.map +1 -1
  195. package/dist/core/networking/websocket-manager.d.ts +3 -3
  196. package/dist/core/networking/websocket-manager.js +11 -9
  197. package/dist/core/networking/websocket-manager.js.map +1 -1
  198. package/dist/core/routing/app-integration.d.ts +2 -2
  199. package/dist/core/routing/app-integration.js +12 -7
  200. package/dist/core/routing/app-integration.js.map +1 -1
  201. package/dist/core/routing/index.d.ts +2 -22
  202. package/dist/core/routing/index.js +27 -185
  203. package/dist/core/routing/index.js.map +1 -1
  204. package/dist/core/runtime/aws-lambda-adapter.d.ts +3 -3
  205. package/dist/core/runtime/aws-lambda-adapter.js +6 -2
  206. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
  207. package/dist/core/runtime/base-adapter.d.ts +2 -2
  208. package/dist/core/runtime/base-adapter.js +7 -3
  209. package/dist/core/runtime/base-adapter.js.map +1 -1
  210. package/dist/core/runtime/cloudflare-workers-adapter.d.ts +3 -3
  211. package/dist/core/runtime/cloudflare-workers-adapter.js +6 -2
  212. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
  213. package/dist/core/runtime/index.d.ts +12 -12
  214. package/dist/core/runtime/index.js +35 -22
  215. package/dist/core/runtime/index.js.map +1 -1
  216. package/dist/core/runtime/node-adapter.d.ts +4 -4
  217. package/dist/core/runtime/node-adapter.js +49 -18
  218. package/dist/core/runtime/node-adapter.js.map +1 -1
  219. package/dist/core/runtime/vercel-edge-adapter.d.ts +3 -3
  220. package/dist/core/runtime/vercel-edge-adapter.js +6 -2
  221. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
  222. package/dist/core/utilities/circuit-breaker.js +5 -1
  223. package/dist/core/utilities/circuit-breaker.js.map +1 -1
  224. package/dist/core/utilities/container.js +22 -12
  225. package/dist/core/utilities/container.js.map +1 -1
  226. package/dist/core/utilities/hooks.d.ts +2 -2
  227. package/dist/core/utilities/hooks.js +12 -7
  228. package/dist/core/utilities/hooks.js.map +1 -1
  229. package/dist/core/utilities/index.d.ts +4 -5
  230. package/dist/core/utilities/index.js +19 -5
  231. package/dist/core/utilities/index.js.map +1 -1
  232. package/dist/core/validation/adapters.d.ts +1 -1
  233. package/dist/core/validation/adapters.js +26 -15
  234. package/dist/core/validation/adapters.js.map +1 -1
  235. package/dist/core/validation/index.d.ts +4 -6
  236. package/dist/core/validation/index.js +28 -57
  237. package/dist/core/validation/index.js.map +1 -1
  238. package/dist/core/validation/schema-interface.js +9 -3
  239. package/dist/core/validation/schema-interface.js.map +1 -1
  240. package/dist/index.d.ts +52 -51
  241. package/dist/index.js +132 -23
  242. package/dist/index.js.map +1 -1
  243. package/dist/moro.d.ts +10 -61
  244. package/dist/moro.js +237 -575
  245. package/dist/moro.js.map +1 -1
  246. package/dist/types/auth.js +9 -3
  247. package/dist/types/auth.js.map +1 -1
  248. package/dist/types/cache.js +2 -1
  249. package/dist/types/cdn.js +2 -1
  250. package/dist/types/config.d.ts +2 -70
  251. package/dist/types/config.js +2 -1
  252. package/dist/types/config.js.map +1 -1
  253. package/dist/types/core.d.ts +42 -36
  254. package/dist/types/core.js +2 -1
  255. package/dist/types/database.js +2 -1
  256. package/dist/types/discovery.js +2 -1
  257. package/dist/types/events.js +2 -1
  258. package/dist/types/hooks.d.ts +1 -1
  259. package/dist/types/hooks.js +2 -1
  260. package/dist/types/http.d.ts +1 -16
  261. package/dist/types/http.js +2 -1
  262. package/dist/types/logger.d.ts +0 -7
  263. package/dist/types/logger.js +2 -1
  264. package/dist/types/module.d.ts +0 -11
  265. package/dist/types/module.js +2 -1
  266. package/dist/types/runtime.d.ts +1 -1
  267. package/dist/types/runtime.js +2 -1
  268. package/dist/types/session.js +2 -1
  269. package/package.json +52 -19
  270. package/src/core/auth/morojs-adapter.ts +13 -18
  271. package/src/core/config/file-loader.ts +273 -13
  272. package/src/core/config/index.ts +34 -83
  273. package/src/core/config/loader.ts +633 -0
  274. package/src/core/config/schema.ts +33 -44
  275. package/src/core/config/utils.ts +31 -24
  276. package/src/core/config/validation.ts +140 -0
  277. package/src/core/database/README.md +16 -26
  278. package/src/core/database/adapters/drizzle.ts +6 -18
  279. package/src/core/database/adapters/index.ts +13 -13
  280. package/src/core/database/adapters/mongodb.ts +5 -53
  281. package/src/core/database/adapters/mysql.ts +4 -32
  282. package/src/core/database/adapters/postgresql.ts +5 -30
  283. package/src/core/database/adapters/redis.ts +8 -61
  284. package/src/core/database/adapters/sqlite.ts +3 -19
  285. package/src/core/database/index.ts +2 -2
  286. package/src/core/docs/index.ts +8 -8
  287. package/src/core/docs/openapi-generator.ts +4 -4
  288. package/src/core/docs/schema-to-openapi.ts +6 -3
  289. package/src/core/docs/simple-docs.ts +2 -2
  290. package/src/core/docs/swagger-ui.ts +16 -19
  291. package/src/core/docs/zod-to-openapi.ts +34 -34
  292. package/src/core/events/event-bus.ts +2 -2
  293. package/src/core/events/index.ts +2 -2
  294. package/src/core/framework.ts +67 -311
  295. package/src/core/http/http-server.ts +45 -190
  296. package/src/core/http/index.ts +3 -4
  297. package/src/core/http/router.ts +40 -129
  298. package/src/core/logger/filters.ts +5 -13
  299. package/src/core/logger/index.ts +3 -4
  300. package/src/core/logger/logger.ts +216 -435
  301. package/src/core/logger/outputs.ts +3 -1
  302. package/src/core/middleware/built-in/adapters/cache/file.ts +3 -3
  303. package/src/core/middleware/built-in/adapters/cache/index.ts +7 -7
  304. package/src/core/middleware/built-in/adapters/cache/memory.ts +2 -2
  305. package/src/core/middleware/built-in/adapters/cache/redis.ts +4 -18
  306. package/src/core/middleware/built-in/adapters/cdn/azure.ts +2 -2
  307. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +2 -2
  308. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +5 -16
  309. package/src/core/middleware/built-in/adapters/cdn/index.ts +7 -7
  310. package/src/core/middleware/built-in/adapters/index.ts +4 -4
  311. package/src/core/middleware/built-in/auth-helpers.ts +1 -1
  312. package/src/core/middleware/built-in/auth-providers.ts +1 -1
  313. package/src/core/middleware/built-in/auth.ts +21 -102
  314. package/src/core/middleware/built-in/cache.ts +6 -8
  315. package/src/core/middleware/built-in/cdn.ts +4 -4
  316. package/src/core/middleware/built-in/cookie.ts +2 -2
  317. package/src/core/middleware/built-in/cors.ts +2 -2
  318. package/src/core/middleware/built-in/csp.ts +3 -3
  319. package/src/core/middleware/built-in/csrf.ts +3 -3
  320. package/src/core/middleware/built-in/error-tracker.ts +1 -1
  321. package/src/core/middleware/built-in/index.ts +30 -38
  322. package/src/core/middleware/built-in/performance-monitor.ts +1 -1
  323. package/src/core/middleware/built-in/rate-limit.ts +2 -2
  324. package/src/core/middleware/built-in/request-logger.ts +1 -3
  325. package/src/core/middleware/built-in/session.ts +8 -7
  326. package/src/core/middleware/built-in/sse.ts +9 -11
  327. package/src/core/middleware/built-in/validation.ts +2 -2
  328. package/src/core/middleware/index.ts +6 -6
  329. package/src/core/modules/auto-discovery.ts +15 -478
  330. package/src/core/modules/index.ts +2 -2
  331. package/src/core/modules/modules.ts +12 -23
  332. package/src/core/networking/adapters/index.ts +3 -4
  333. package/src/core/networking/adapters/socketio-adapter.ts +3 -5
  334. package/src/core/networking/adapters/ws-adapter.ts +9 -8
  335. package/src/core/networking/index.ts +2 -3
  336. package/src/core/networking/service-discovery.ts +7 -6
  337. package/src/core/networking/websocket-manager.ts +7 -7
  338. package/src/core/routing/app-integration.ts +3 -3
  339. package/src/core/routing/index.ts +17 -201
  340. package/src/core/runtime/aws-lambda-adapter.ts +3 -3
  341. package/src/core/runtime/base-adapter.ts +2 -2
  342. package/src/core/runtime/cloudflare-workers-adapter.ts +3 -3
  343. package/src/core/runtime/index.ts +13 -13
  344. package/src/core/runtime/node-adapter.ts +10 -16
  345. package/src/core/runtime/vercel-edge-adapter.ts +3 -3
  346. package/src/core/utilities/hooks.ts +3 -3
  347. package/src/core/utilities/index.ts +4 -5
  348. package/src/core/validation/adapters.ts +1 -1
  349. package/src/core/validation/index.ts +16 -68
  350. package/src/index.ts +66 -73
  351. package/src/moro.ts +204 -685
  352. package/src/types/config.ts +2 -71
  353. package/src/types/core.ts +47 -49
  354. package/src/types/hooks.ts +1 -1
  355. package/src/types/http.ts +1 -23
  356. package/src/types/logger.ts +0 -9
  357. package/src/types/module.ts +0 -12
  358. package/src/types/runtime.ts +1 -1
  359. package/tsconfig.json +2 -4
  360. package/dist/core/config/config-manager.d.ts +0 -44
  361. package/dist/core/config/config-manager.js +0 -104
  362. package/dist/core/config/config-manager.js.map +0 -1
  363. package/dist/core/config/config-sources.d.ts +0 -21
  364. package/dist/core/config/config-sources.js +0 -499
  365. package/dist/core/config/config-sources.js.map +0 -1
  366. package/dist/core/config/config-validator.d.ts +0 -21
  367. package/dist/core/config/config-validator.js +0 -788
  368. package/dist/core/config/config-validator.js.map +0 -1
  369. package/dist/core/http/uws-http-server.d.ts +0 -64
  370. package/dist/core/http/uws-http-server.js +0 -688
  371. package/dist/core/http/uws-http-server.js.map +0 -1
  372. package/dist/core/middleware/built-in/jwt-helpers.d.ts +0 -118
  373. package/dist/core/middleware/built-in/jwt-helpers.js +0 -218
  374. package/dist/core/middleware/built-in/jwt-helpers.js.map +0 -1
  375. package/dist/core/networking/adapters/uws-adapter.d.ts +0 -44
  376. package/dist/core/networking/adapters/uws-adapter.js +0 -513
  377. package/dist/core/networking/adapters/uws-adapter.js.map +0 -1
  378. package/dist/core/utilities/package-utils.d.ts +0 -38
  379. package/dist/core/utilities/package-utils.js +0 -57
  380. package/dist/core/utilities/package-utils.js.map +0 -1
  381. package/jest.config.mjs +0 -41
  382. package/src/core/config/config-manager.ts +0 -133
  383. package/src/core/config/config-sources.ts +0 -596
  384. package/src/core/config/config-validator.ts +0 -1113
  385. package/src/core/http/uws-http-server.ts +0 -794
  386. package/src/core/middleware/built-in/jwt-helpers.ts +0 -243
  387. package/src/core/networking/adapters/uws-adapter.ts +0 -619
  388. package/src/core/utilities/package-utils.ts +0 -59
@@ -1,10 +1,10 @@
1
1
  // Module System - Definition and Loading
2
2
  import { promises as fs } from 'fs';
3
3
  import path from 'path';
4
- import { Container } from '../utilities/index.js';
5
- import { ModuleConfig } from '../../types/module.js';
6
- import { ModuleDefinition, ModuleRoute, ModuleSocket } from '../../types/module.js';
7
- import { createFrameworkLogger } from '../logger/index.js';
4
+ import { Container } from '../utilities';
5
+ import { ModuleConfig } from '../../types/module';
6
+ import { ModuleDefinition, ModuleRoute, ModuleSocket } from '../../types/module';
7
+ import { logger, createFrameworkLogger } from '../logger';
8
8
 
9
9
  // Module Definition Function
10
10
  export function defineModule(definition: ModuleDefinition): ModuleConfig {
@@ -24,21 +24,6 @@ export function defineModule(definition: ModuleDefinition): ModuleConfig {
24
24
  cache: route.cache,
25
25
  rateLimit: route.rateLimit,
26
26
  middleware: route.middleware,
27
- // Copy all additional properties for extensibility
28
- ...Object.fromEntries(
29
- Object.entries(route).filter(
30
- ([key]) =>
31
- ![
32
- 'method',
33
- 'path',
34
- 'handler',
35
- 'validation',
36
- 'cache',
37
- 'rateLimit',
38
- 'middleware',
39
- ].includes(key)
40
- )
41
- ),
42
27
  }));
43
28
 
44
29
  // Store the actual route handler functions
@@ -109,14 +94,18 @@ export class ModuleLoader {
109
94
  }
110
95
  }
111
96
  } catch (error) {
112
- this.moduleLogger.warn(`Could not load module from ${modulePath}`, 'MODULE_LOADER', {
113
- error: error instanceof Error ? error.message : String(error),
114
- });
97
+ this.moduleLogger.warn(
98
+ `⚠️ Could not load module from ${modulePath}:`,
99
+ 'ModuleLoader',
100
+ {
101
+ error: error instanceof Error ? error.message : String(error),
102
+ }
103
+ );
115
104
  }
116
105
  }
117
106
  }
118
107
  } catch (error) {
119
- this.moduleLogger.error('Failed to discover modules', 'MODULE_LOADER', {
108
+ this.moduleLogger.error('Failed to discover modules:', 'ModuleLoader', {
120
109
  error: error instanceof Error ? error.message : String(error),
121
110
  });
122
111
  }
@@ -1,9 +1,8 @@
1
1
  // WebSocket Adapters for Moro Framework
2
2
  // Export all available adapters from this centralized location
3
3
 
4
- export { SocketIOAdapter } from './socketio-adapter.js';
5
- export { WSAdapter } from './ws-adapter.js';
6
- export { UWebSocketsAdapter } from './uws-adapter.js';
4
+ export { SocketIOAdapter } from './socketio-adapter';
5
+ export { WSAdapter } from './ws-adapter';
7
6
 
8
7
  // Re-export the adapter interface for convenience
9
8
  export type {
@@ -14,4 +13,4 @@ export type {
14
13
  WebSocketEmitter,
15
14
  WebSocketMiddleware,
16
15
  WebSocketEventHandler,
17
- } from '../websocket-adapter.js';
16
+ } from '../websocket-adapter';
@@ -1,7 +1,6 @@
1
1
  // Socket.IO WebSocket Adapter for Moro Framework
2
2
  // Implements the WebSocket adapter interface using Socket.IO
3
3
 
4
- import { resolveUserPackage } from '../../utilities/package-utils.js';
5
4
  import {
6
5
  WebSocketAdapter,
7
6
  WebSocketAdapterOptions,
@@ -9,7 +8,7 @@ import {
9
8
  WebSocketConnection,
10
9
  WebSocketEmitter,
11
10
  WebSocketMiddleware,
12
- } from '../websocket-adapter.js';
11
+ } from '../websocket-adapter';
13
12
 
14
13
  /**
15
14
  * Socket.IO adapter implementation
@@ -20,9 +19,8 @@ export class SocketIOAdapter implements WebSocketAdapter {
20
19
 
21
20
  async initialize(httpServer: any, options: WebSocketAdapterOptions = {}): Promise<void> {
22
21
  try {
23
- // Dynamic import from user's context to find their installed socket.io
24
- const socketIOPath = resolveUserPackage('socket.io');
25
- const { Server } = await import(socketIOPath);
22
+ // Dynamic import to avoid requiring socket.io as a hard dependency
23
+ const { Server } = await import('socket.io');
26
24
 
27
25
  this.io = new Server(httpServer, {
28
26
  cors: options.cors || { origin: '*' },
@@ -1,7 +1,6 @@
1
1
  // Native WebSocket Adapter for Moro Framework
2
2
  // Implements the WebSocket adapter interface using the 'ws' library
3
3
 
4
- import { resolveUserPackage } from '../../utilities/package-utils.js';
5
4
  import {
6
5
  WebSocketAdapter,
7
6
  WebSocketAdapterOptions,
@@ -9,8 +8,8 @@ import {
9
8
  WebSocketConnection,
10
9
  WebSocketEmitter,
11
10
  WebSocketMiddleware,
12
- } from '../websocket-adapter.js';
13
- import { createFrameworkLogger } from '../../logger/index.js';
11
+ } from '../websocket-adapter';
12
+ import { createFrameworkLogger } from '../../logger';
14
13
 
15
14
  /**
16
15
  * Native WebSocket adapter using the 'ws' library
@@ -20,15 +19,14 @@ export class WSAdapter implements WebSocketAdapter {
20
19
  private wss: any; // WebSocket server instance
21
20
  private namespaces = new Map<string, WSNamespaceWrapper>();
22
21
  private connections = new Map<string, WSConnectionWrapper>();
23
- private wsLogger = createFrameworkLogger('WEBSOCKET_ADAPTER');
24
22
  private customIdGenerator?: () => string;
25
23
  private connectionCounter = 0;
24
+ private wsLogger = createFrameworkLogger('WEBSOCKET_ADAPTER');
26
25
 
27
26
  async initialize(httpServer: any, options: WebSocketAdapterOptions = {}): Promise<void> {
28
27
  try {
29
- // Dynamic import from user's context to find their installed ws library
30
- const wsPath = resolveUserPackage('ws');
31
- const { WebSocketServer } = await import(wsPath);
28
+ // Dynamic import to avoid requiring ws as a hard dependency
29
+ const { WebSocketServer } = await import('ws');
32
30
 
33
31
  this.wss = new WebSocketServer({
34
32
  server: httpServer,
@@ -102,7 +100,10 @@ export class WSAdapter implements WebSocketAdapter {
102
100
  // ws library handles compression at the browser level
103
101
  // This is a no-op but kept for interface compatibility
104
102
  if (enabled) {
105
- this.wsLogger.warn('Compression is handled automatically by the ws library and browsers');
103
+ this.wsLogger.warn(
104
+ 'Compression is handled automatically by the ws library and browsers',
105
+ 'WSAdapter'
106
+ );
106
107
  }
107
108
  }
108
109
 
@@ -1,4 +1,3 @@
1
1
  // Networking System - Centralized Exports
2
- export { WebSocketManager } from './websocket-manager.js';
3
- export { ServiceRegistry } from './service-discovery.js';
4
- export type { ServiceInfo, ServiceDiscoveryOptions } from './service-discovery.js';
2
+ export { WebSocketManager } from './websocket-manager';
3
+ export { ServiceRegistry, ServiceInfo, ServiceDiscoveryOptions } from './service-discovery';
@@ -1,6 +1,7 @@
1
1
  // Service Discovery Client for Microservices
2
2
  // Supports Consul, Kubernetes, and in-memory registry
3
- import { createFrameworkLogger } from '../logger/index.js';
3
+
4
+ import { logger, createFrameworkLogger } from '../logger';
4
5
 
5
6
  export interface ServiceInfo {
6
7
  name: string;
@@ -123,7 +124,7 @@ export class ServiceRegistry {
123
124
  throw new Error(`Consul registration failed: ${response.statusText}`);
124
125
  }
125
126
  } catch (error) {
126
- this.serviceLogger.error('Failed to register with Consul', 'SERVICE_DISCOVERY', {
127
+ this.serviceLogger.error('Failed to register with Consul:', 'ServiceRegistry', {
127
128
  error: error instanceof Error ? error.message : String(error),
128
129
  });
129
130
  // Fallback to in-memory
@@ -154,7 +155,7 @@ export class ServiceRegistry {
154
155
  metadata: entry.Service.Meta,
155
156
  }));
156
157
  } catch (error) {
157
- this.serviceLogger.error('Failed to discover from Consul', 'SERVICE_DISCOVERY', {
158
+ this.serviceLogger.error('Failed to discover from Consul:', 'ServiceRegistry', {
158
159
  error: error instanceof Error ? error.message : String(error),
159
160
  });
160
161
  return this.discoverFromMemory(serviceName);
@@ -169,7 +170,7 @@ export class ServiceRegistry {
169
170
  method: 'PUT',
170
171
  });
171
172
  } catch (error) {
172
- this.serviceLogger.error('Failed to deregister from Consul', 'SERVICE_DISCOVERY', {
173
+ this.serviceLogger.error('Failed to deregister from Consul:', 'ServiceRegistry', {
173
174
  error: error instanceof Error ? error.message : String(error),
174
175
  });
175
176
  }
@@ -204,7 +205,7 @@ export class ServiceRegistry {
204
205
  },
205
206
  ];
206
207
  } catch (error) {
207
- this.serviceLogger.error('Failed to discover from Kubernetes', 'SERVICE_DISCOVERY', {
208
+ this.serviceLogger.error('Failed to discover from Kubernetes:', 'ServiceRegistry', {
208
209
  error: error instanceof Error ? error.message : String(error),
209
210
  });
210
211
  return this.discoverFromMemory(serviceName);
@@ -241,7 +242,7 @@ export class ServiceRegistry {
241
242
  this.removeUnhealthyService(serviceName, service);
242
243
  }
243
244
  } catch (error) {
244
- this.serviceLogger.warn(`Health check failed for ${serviceName}`, 'SERVICE_DISCOVERY', {
245
+ this.serviceLogger.warn(`Health check failed for ${serviceName}:`, 'ServiceRegistry', {
245
246
  error: error instanceof Error ? error.message : String(error),
246
247
  });
247
248
  this.removeUnhealthyService(serviceName, service);
@@ -1,12 +1,10 @@
1
1
  // WebSocket Manager for Moro Framework
2
2
  // Manages WebSocket connections using pluggable adapters
3
- import * as zlib from 'zlib';
4
- import { Container } from '../utilities/index.js';
5
- import { CircuitBreaker } from '../utilities/index.js';
6
- import { ModuleConfig, WebSocketDefinition } from '../../types/module.js';
7
- import { WebSocketAdapter, WebSocketNamespace, WebSocketConnection } from './websocket-adapter.js';
8
- import { createFrameworkLogger } from '../logger/index.js';
9
- import { normalizeValidationError } from '../validation/schema-interface.js';
3
+ import { Container } from '../utilities';
4
+ import { CircuitBreaker } from '../utilities';
5
+ import { ModuleConfig, WebSocketDefinition } from '../../types/module';
6
+ import { WebSocketAdapter, WebSocketNamespace, WebSocketConnection } from './websocket-adapter';
7
+ import { createFrameworkLogger } from '../logger';
10
8
 
11
9
  export class WebSocketManager {
12
10
  private circuitBreakers = new Map<string, CircuitBreaker>();
@@ -136,6 +134,7 @@ export class WebSocketManager {
136
134
  data = await wsConfig.validation.parseAsync(data);
137
135
  } catch (validationError: any) {
138
136
  // Handle universal validation errors
137
+ const { normalizeValidationError } = require('../validation/schema-interface');
139
138
  const normalizedError = normalizeValidationError(validationError);
140
139
  const error = {
141
140
  success: false,
@@ -265,6 +264,7 @@ export class WebSocketManager {
265
264
  if (buffer[0] === 0x1f && buffer[1] === 0x8b) {
266
265
  // This is gzipped data
267
266
  try {
267
+ const zlib = require('zlib');
268
268
  return zlib.gunzipSync(buffer);
269
269
  } catch {
270
270
  return buffer;
@@ -8,9 +8,9 @@ import {
8
8
  createRoute,
9
9
  defineRoute,
10
10
  HttpMethod,
11
- } from './index.js';
12
- import { HttpRequest, HttpResponse } from '../http/index.js';
13
- import { createFrameworkLogger } from '../logger/index.js';
11
+ } from './index';
12
+ import { HttpRequest, HttpResponse } from '../http';
13
+ import { createFrameworkLogger } from '../logger';
14
14
 
15
15
  const logger = createFrameworkLogger('AppIntegration');
16
16
 
@@ -1,9 +1,9 @@
1
1
  // Intelligent Routing System for Moro Framework
2
2
  // Schema-first with automatic middleware ordering and chainable API
3
3
 
4
- import { ValidationSchema } from '../validation/schema-interface.js';
5
- import { HttpRequest, HttpResponse } from '../http/index.js';
6
- import { createFrameworkLogger } from '../logger/index.js';
4
+ import { ValidationSchema } from '../validation/schema-interface';
5
+ import { HttpRequest, HttpResponse } from '../http';
6
+ import { createFrameworkLogger } from '../logger';
7
7
 
8
8
  const logger = createFrameworkLogger('IntelligentRouting');
9
9
 
@@ -256,91 +256,20 @@ export class IntelligentRouteBuilder implements RouteBuilder {
256
256
 
257
257
  // Executable route with intelligent middleware ordering
258
258
  export class ExecutableRoute implements CompiledRoute {
259
- // PERFORMANCE OPTIMIZATION: Pre-analyze route requirements
260
- private readonly requiresAuth: boolean;
261
- private readonly requiresValidation: boolean;
262
- private readonly requiresRateLimit: boolean;
263
- private readonly requiresCache: boolean;
264
- private readonly hasBeforeMiddleware: boolean;
265
- private readonly hasAfterMiddleware: boolean;
266
- private readonly hasTransformMiddleware: boolean;
267
- private readonly isFastPath: boolean;
268
-
269
- constructor(public readonly schema: RouteSchema) {
270
- // Pre-calculate what this route actually needs
271
- this.requiresAuth = !!this.schema.auth;
272
- this.requiresValidation = !!this.schema.validation;
273
- this.requiresRateLimit = !!this.schema.rateLimit;
274
- this.requiresCache = !!this.schema.cache;
275
- this.hasBeforeMiddleware = !!this.schema.middleware?.before?.length;
276
- this.hasAfterMiddleware = !!this.schema.middleware?.after?.length;
277
- this.hasTransformMiddleware = !!this.schema.middleware?.transform?.length;
278
-
279
- // Fast path: no middleware, no auth, no validation, no rate limiting
280
- this.isFastPath =
281
- !this.requiresAuth &&
282
- !this.requiresValidation &&
283
- !this.requiresRateLimit &&
284
- !this.requiresCache &&
285
- !this.hasBeforeMiddleware &&
286
- !this.hasAfterMiddleware &&
287
- !this.hasTransformMiddleware;
288
-
289
- // Log fast path routes for monitoring
290
- if (this.isFastPath) {
291
- logger.debug(`Fast path route: ${this.schema.method} ${this.schema.path}`, 'FastPath');
292
- }
293
- }
259
+ constructor(public readonly schema: RouteSchema) {}
294
260
 
295
261
  async execute(req: HttpRequest, res: HttpResponse): Promise<void> {
296
262
  const validatedReq = req as ValidatedRequest;
297
263
 
298
264
  try {
299
- // PERFORMANCE OPTIMIZATION: Fast path for simple routes
300
- if (this.isFastPath) {
301
- // Skip all middleware - execute handler directly
302
- const result = await this.schema.handler(validatedReq, res);
303
- if (result !== undefined && !res.headersSent) {
304
- res.json(result);
305
- }
306
- return;
307
- }
308
-
309
- // Optimized middleware execution - only run what's needed
310
- if (this.hasBeforeMiddleware) {
311
- await this.executePhase('before', validatedReq, res);
312
- if (res.headersSent) return;
313
- }
314
-
315
- if (this.requiresRateLimit) {
316
- await this.executePhase('rateLimit', validatedReq, res);
317
- if (res.headersSent) return;
318
- }
319
-
320
- if (this.requiresAuth) {
321
- await this.executePhase('auth', validatedReq, res);
322
- if (res.headersSent) return;
323
- }
324
-
325
- if (this.requiresValidation) {
326
- await this.executePhase('validation', validatedReq, res);
327
- if (res.headersSent) return;
328
- }
329
-
330
- if (this.hasTransformMiddleware) {
331
- await this.executePhase('transform', validatedReq, res);
332
- if (res.headersSent) return;
333
- }
334
-
335
- if (this.requiresCache) {
336
- await this.executePhase('cache', validatedReq, res);
337
- if (res.headersSent) return;
338
- }
339
-
340
- if (this.hasAfterMiddleware) {
341
- await this.executePhase('after', validatedReq, res);
342
- if (res.headersSent) return;
343
- }
265
+ // Execute middleware in intelligent order
266
+ await this.executePhase('before', validatedReq, res);
267
+ await this.executePhase('rateLimit', validatedReq, res);
268
+ await this.executePhase('auth', validatedReq, res);
269
+ await this.executePhase('validation', validatedReq, res);
270
+ await this.executePhase('transform', validatedReq, res);
271
+ await this.executePhase('cache', validatedReq, res);
272
+ await this.executePhase('after', validatedReq, res);
344
273
 
345
274
  // Execute handler last
346
275
  if (!res.headersSent) {
@@ -432,32 +361,15 @@ export class ExecutableRoute implements CompiledRoute {
432
361
  req: HttpRequest,
433
362
  res: HttpResponse
434
363
  ): Promise<void> {
435
- // PERFORMANCE OPTIMIZATION: Reduce Promise overhead
436
364
  return new Promise((resolve, reject) => {
437
- let resolved = false;
438
-
439
- const next = () => {
440
- if (!resolved) {
441
- resolved = true;
442
- resolve();
443
- }
444
- };
445
-
446
365
  try {
366
+ const next = () => resolve();
447
367
  const result = middleware(req, res, next);
448
368
  if (result instanceof Promise) {
449
- result.then(() => !resolved && next()).catch(reject);
450
- } else {
451
- // Synchronous middleware - call next immediately if not called
452
- if (!resolved) {
453
- next();
454
- }
369
+ result.then(() => resolve()).catch(reject);
455
370
  }
456
371
  } catch (error) {
457
- if (!resolved) {
458
- resolved = true;
459
- reject(error);
460
- }
372
+ reject(error);
461
373
  }
462
374
  });
463
375
  }
@@ -471,90 +383,10 @@ export class ExecutableRoute implements CompiledRoute {
471
383
  }
472
384
 
473
385
  private async executeAuth(req: ValidatedRequest, res: HttpResponse): Promise<void> {
474
- const authConfig = this.schema.auth;
475
- const auth = req.auth;
476
-
477
- // This should never happen since executeAuth is only called when auth config exists
478
- if (!authConfig) {
479
- logger.error('executeAuth called without auth config', 'Auth');
480
- return;
481
- }
482
-
386
+ // Authentication implementation will be added
483
387
  logger.debug('Auth check', 'Auth', {
484
- config: authConfig,
485
- isAuthenticated: auth?.isAuthenticated,
486
- userRoles: auth?.user?.roles,
388
+ config: this.schema.auth,
487
389
  });
488
-
489
- // Check if auth middleware ran
490
- if (!auth) {
491
- res.status(500);
492
- res.json({
493
- success: false,
494
- error: 'Authentication middleware not configured',
495
- message: 'Auth middleware must be installed before using route-level auth',
496
- });
497
- return;
498
- }
499
-
500
- // Check authentication requirement (default is required unless optional: true)
501
- if (!authConfig.optional && !auth.isAuthenticated) {
502
- res.status(401);
503
- res.json({
504
- success: false,
505
- error: 'Authentication required',
506
- message: 'You must be logged in to access this resource',
507
- });
508
- return;
509
- }
510
-
511
- // Skip further checks if not authenticated but optional
512
- if (!auth.isAuthenticated && authConfig.optional) {
513
- return; // Continue to handler
514
- }
515
-
516
- // Only check roles/permissions if user is authenticated
517
- if (auth.isAuthenticated) {
518
- const user = auth.user;
519
-
520
- // Check roles if specified
521
- if (authConfig.roles && authConfig.roles.length > 0) {
522
- const userRoles = user?.roles || [];
523
- const hasRole = authConfig.roles.some((role: string) => userRoles.includes(role));
524
-
525
- if (!hasRole) {
526
- res.status(403);
527
- res.json({
528
- success: false,
529
- error: 'Insufficient permissions',
530
- message: `Required roles: ${authConfig.roles.join(', ')}`,
531
- userRoles,
532
- });
533
- return;
534
- }
535
- }
536
-
537
- // Check permissions if specified
538
- if (authConfig.permissions && authConfig.permissions.length > 0) {
539
- const userPermissions = user?.permissions || [];
540
- const hasPermission = authConfig.permissions.every((permission: string) =>
541
- userPermissions.includes(permission)
542
- );
543
-
544
- if (!hasPermission) {
545
- res.status(403);
546
- res.json({
547
- success: false,
548
- error: 'Insufficient permissions',
549
- message: `Required permissions: ${authConfig.permissions.join(', ')}`,
550
- userPermissions,
551
- });
552
- return;
553
- }
554
- }
555
- }
556
-
557
- // All auth checks passed
558
390
  }
559
391
 
560
392
  private async executeValidation(req: ValidatedRequest, res: HttpResponse): Promise<void> {
@@ -643,22 +475,6 @@ export class ExecutableRoute implements CompiledRoute {
643
475
  config: this.schema.cache,
644
476
  });
645
477
  }
646
-
647
- // Performance monitoring
648
- getPerformanceInfo() {
649
- return {
650
- path: this.schema.path,
651
- method: this.schema.method,
652
- isFastPath: this.isFastPath,
653
- requiresAuth: this.requiresAuth,
654
- requiresValidation: this.requiresValidation,
655
- requiresRateLimit: this.requiresRateLimit,
656
- requiresCache: this.requiresCache,
657
- hasBeforeMiddleware: this.hasBeforeMiddleware,
658
- hasAfterMiddleware: this.hasAfterMiddleware,
659
- hasTransformMiddleware: this.hasTransformMiddleware,
660
- };
661
- }
662
478
  }
663
479
 
664
480
  // Factory functions for creating routes
@@ -1,7 +1,7 @@
1
1
  // AWS Lambda runtime adapter
2
- import { BaseRuntimeAdapter } from './base-adapter.js';
3
- import { HttpRequest, HttpResponse } from '../../types/http.js';
4
- import { RuntimeHttpResponse } from '../../types/runtime.js';
2
+ import { BaseRuntimeAdapter } from './base-adapter';
3
+ import { HttpRequest, HttpResponse } from '../../types/http';
4
+ import { RuntimeHttpResponse } from '../../types/runtime';
5
5
 
6
6
  export interface LambdaEvent {
7
7
  httpMethod: string;
@@ -1,6 +1,6 @@
1
1
  // Base runtime adapter with common functionality
2
- import { RuntimeAdapter, RuntimeType, RuntimeHttpResponse } from '../../types/runtime.js';
3
- import { HttpRequest, HttpResponse } from '../../types/http.js';
2
+ import { RuntimeAdapter, RuntimeType, RuntimeHttpResponse } from '../../types/runtime';
3
+ import { HttpRequest, HttpResponse } from '../../types/http';
4
4
  import { randomBytes } from 'crypto';
5
5
 
6
6
  export abstract class BaseRuntimeAdapter implements RuntimeAdapter {
@@ -1,7 +1,7 @@
1
1
  // Cloudflare Workers runtime adapter
2
- import { BaseRuntimeAdapter } from './base-adapter.js';
3
- import { HttpRequest, HttpResponse } from '../../types/http.js';
4
- import { RuntimeHttpResponse } from '../../types/runtime.js';
2
+ import { BaseRuntimeAdapter } from './base-adapter';
3
+ import { HttpRequest, HttpResponse } from '../../types/http';
4
+ import { RuntimeHttpResponse } from '../../types/runtime';
5
5
 
6
6
  export interface WorkersEnv {
7
7
  [key: string]: any;
@@ -1,9 +1,9 @@
1
1
  // Runtime adapters export
2
- export { BaseRuntimeAdapter } from './base-adapter.js';
3
- export { NodeRuntimeAdapter } from './node-adapter.js';
4
- export { VercelEdgeAdapter } from './vercel-edge-adapter.js';
5
- export { AWSLambdaAdapter } from './aws-lambda-adapter.js';
6
- export { CloudflareWorkersAdapter } from './cloudflare-workers-adapter.js';
2
+ export { BaseRuntimeAdapter } from './base-adapter';
3
+ export { NodeRuntimeAdapter } from './node-adapter';
4
+ export { VercelEdgeAdapter } from './vercel-edge-adapter';
5
+ export { AWSLambdaAdapter } from './aws-lambda-adapter';
6
+ export { CloudflareWorkersAdapter } from './cloudflare-workers-adapter';
7
7
 
8
8
  // Re-export types
9
9
  export type {
@@ -12,18 +12,18 @@ export type {
12
12
  RuntimeConfig,
13
13
  RuntimeMoroOptions,
14
14
  RuntimeHttpResponse,
15
- } from '../../types/runtime.js';
15
+ } from '../../types/runtime';
16
16
 
17
17
  // Re-export specific runtime types
18
- export type { LambdaEvent, LambdaContext, LambdaResponse } from './aws-lambda-adapter.js';
19
- export type { WorkersEnv, WorkersContext } from './cloudflare-workers-adapter.js';
18
+ export type { LambdaEvent, LambdaContext, LambdaResponse } from './aws-lambda-adapter';
19
+ export type { WorkersEnv, WorkersContext } from './cloudflare-workers-adapter';
20
20
 
21
21
  // Runtime factory functions
22
- import { NodeRuntimeAdapter } from './node-adapter.js';
23
- import { VercelEdgeAdapter } from './vercel-edge-adapter.js';
24
- import { AWSLambdaAdapter } from './aws-lambda-adapter.js';
25
- import { CloudflareWorkersAdapter } from './cloudflare-workers-adapter.js';
26
- import { RuntimeType, RuntimeAdapter } from '../../types/runtime.js';
22
+ import { NodeRuntimeAdapter } from './node-adapter';
23
+ import { VercelEdgeAdapter } from './vercel-edge-adapter';
24
+ import { AWSLambdaAdapter } from './aws-lambda-adapter';
25
+ import { CloudflareWorkersAdapter } from './cloudflare-workers-adapter';
26
+ import { RuntimeType, RuntimeAdapter } from '../../types/runtime';
27
27
 
28
28
  export function createRuntimeAdapter(type: RuntimeType): RuntimeAdapter {
29
29
  switch (type) {
@@ -1,9 +1,9 @@
1
1
  // Node.js runtime adapter
2
2
  import { IncomingMessage, ServerResponse } from 'http';
3
- import { BaseRuntimeAdapter } from './base-adapter.js';
4
- import { HttpRequest, HttpResponse } from '../../types/http.js';
5
- import { RuntimeHttpResponse } from '../../types/runtime.js';
6
- import { MoroHttpServer } from '../http/http-server.js';
3
+ import { BaseRuntimeAdapter } from './base-adapter';
4
+ import { HttpRequest, HttpResponse } from '../../types/http';
5
+ import { RuntimeHttpResponse } from '../../types/runtime';
6
+ import { MoroHttpServer } from '../http/http-server';
7
7
 
8
8
  export class NodeRuntimeAdapter extends BaseRuntimeAdapter {
9
9
  readonly type = 'node' as const;
@@ -138,30 +138,24 @@ export class NodeRuntimeAdapter extends BaseRuntimeAdapter {
138
138
 
139
139
  if (!enhanced.cookie) {
140
140
  enhanced.cookie = function (name: string, value: string, options?: any) {
141
- if (!this.headersSent) {
142
- const cookieString = `${name}=${value}`;
143
- this.setHeader('Set-Cookie', cookieString);
144
- }
141
+ const cookieString = `${name}=${value}`;
142
+ this.setHeader('Set-Cookie', cookieString);
145
143
  return this;
146
144
  };
147
145
  }
148
146
 
149
147
  if (!enhanced.clearCookie) {
150
148
  enhanced.clearCookie = function (name: string, options?: any) {
151
- if (!this.headersSent) {
152
- this.setHeader('Set-Cookie', `${name}=; expires=Thu, 01 Jan 1970 00:00:00 GMT`);
153
- }
149
+ this.setHeader('Set-Cookie', `${name}=; expires=Thu, 01 Jan 1970 00:00:00 GMT`);
154
150
  return this;
155
151
  };
156
152
  }
157
153
 
158
154
  if (!enhanced.redirect) {
159
155
  enhanced.redirect = function (url: string, status?: number) {
160
- if (!this.headersSent) {
161
- this.statusCode = status || 302;
162
- this.setHeader('Location', url);
163
- this.end();
164
- }
156
+ this.statusCode = status || 302;
157
+ this.setHeader('Location', url);
158
+ this.end();
165
159
  };
166
160
  }
167
161