@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,19 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.middleware = exports.MoroHttpServer = void 0;
1
37
  // src/core/http-server.ts
2
- import { createServer } from 'http';
3
- import * as zlib from 'zlib';
4
- import { createReadStream } from 'fs';
5
- import * as crypto from 'crypto';
6
- import { promisify } from 'util';
7
- import { createFrameworkLogger } from '../logger/index.js';
8
- const gzip = promisify(zlib.gzip);
9
- const deflate = promisify(zlib.deflate);
10
- export class MoroHttpServer {
38
+ const http_1 = require("http");
39
+ const zlib = __importStar(require("zlib"));
40
+ const util_1 = require("util");
41
+ const logger_1 = require("../logger");
42
+ const gzip = (0, util_1.promisify)(zlib.gzip);
43
+ const deflate = (0, util_1.promisify)(zlib.deflate);
44
+ class MoroHttpServer {
11
45
  server;
12
46
  routes = [];
13
47
  globalMiddleware = [];
14
48
  compressionEnabled = true;
15
49
  compressionThreshold = 1024;
16
- logger = createFrameworkLogger('HttpServer');
50
+ logger = (0, logger_1.createFrameworkLogger)('HttpServer');
17
51
  hookManager;
18
52
  requestCounter = 0;
19
53
  // Efficient object pooling with minimal overhead
@@ -22,10 +56,6 @@ export class MoroHttpServer {
22
56
  maxPoolSize = 50;
23
57
  // Request handler pooling to avoid function creation overhead
24
58
  middlewareExecutionCache = new Map();
25
- // Response caching for ultra-fast common responses
26
- responseCache = new Map();
27
- responseCacheHits = 0;
28
- responseCacheMisses = 0;
29
59
  // String interning for common values (massive memory savings)
30
60
  static INTERNED_METHODS = new Map([
31
61
  ['GET', 'GET'],
@@ -90,7 +120,7 @@ export class MoroHttpServer {
90
120
  }
91
121
  }
92
122
  constructor() {
93
- this.server = createServer(this.handleRequest.bind(this));
123
+ this.server = (0, http_1.createServer)(this.handleRequest.bind(this));
94
124
  // Optimize server for high performance (conservative settings for compatibility)
95
125
  this.server.keepAliveTimeout = 5000; // 5 seconds
96
126
  this.server.headersTimeout = 6000; // 6 seconds
@@ -241,13 +271,12 @@ export class MoroHttpServer {
241
271
  }
242
272
  catch (error) {
243
273
  // Debug: Log the actual error and where it came from
244
- this.logger.debug('Request error details', 'RequestHandler', {
245
- errorType: typeof error,
246
- errorMessage: error instanceof Error ? error.message : String(error),
247
- errorStack: error instanceof Error ? error.stack : 'No stack trace',
248
- requestPath: req.url,
249
- requestMethod: req.method,
250
- });
274
+ this.logger.debug('🚨 MoroJS Request Error Details:', 'RequestHandler');
275
+ this.logger.debug(`📍 Error type: ${typeof error}`, 'RequestHandler');
276
+ this.logger.debug(`📍 Error message: ${error instanceof Error ? error.message : String(error)}`, 'RequestHandler');
277
+ this.logger.debug(`📍 Error stack: ${error instanceof Error ? error.stack : 'No stack trace'}`, 'RequestHandler');
278
+ this.logger.debug(`📍 Request path: ${req.url}`, 'RequestHandler');
279
+ this.logger.debug(`📍 Request method: ${req.method}`, 'RequestHandler');
251
280
  this.logger.error('Request error', 'RequestHandler', {
252
281
  error: error instanceof Error ? error.message : String(error),
253
282
  requestId: httpReq.requestId,
@@ -271,7 +300,7 @@ export class MoroHttpServer {
271
300
  }
272
301
  else {
273
302
  // Even setHeader doesn't exist - object is completely wrong
274
- this.logger.error('Response object is not a proper ServerResponse', 'RequestHandler', {
303
+ this.logger.error('Response object is not a proper ServerResponse:', 'RequestHandler', {
275
304
  responseType: typeof httpRes,
276
305
  responseKeys: Object.keys(httpRes),
277
306
  });
@@ -284,7 +313,7 @@ export class MoroHttpServer {
284
313
  }));
285
314
  }
286
315
  else {
287
- this.logger.error('Cannot send error response - end() method missing', 'RequestHandler');
316
+ this.logger.error('Cannot send error response - end() method missing', 'RequestHandler');
288
317
  }
289
318
  }
290
319
  }
@@ -422,19 +451,6 @@ export class MoroHttpServer {
422
451
  httpRes.json = async (data) => {
423
452
  if (httpRes.headersSent)
424
453
  return;
425
- // PERFORMANCE OPTIMIZATION: Check response cache for common patterns
426
- const cacheKey = this.getResponseCacheKey(data);
427
- if (cacheKey) {
428
- const cachedBuffer = this.responseCache.get(cacheKey);
429
- if (cachedBuffer) {
430
- this.responseCacheHits++;
431
- httpRes.setHeader('Content-Type', 'application/json; charset=utf-8');
432
- httpRes.setHeader('Content-Length', cachedBuffer.length);
433
- httpRes.end(cachedBuffer);
434
- return;
435
- }
436
- this.responseCacheMisses++;
437
- }
438
454
  // Ultra-fast JSON serialization with zero-copy buffers
439
455
  let jsonString;
440
456
  // Enhanced JSON optimization for common API patterns
@@ -512,10 +528,6 @@ export class MoroHttpServer {
512
528
  httpRes.setHeader(key, value);
513
529
  });
514
530
  httpRes.end(finalBuffer);
515
- // PERFORMANCE OPTIMIZATION: Cache small, common responses
516
- if (cacheKey && finalBuffer.length < 1024 && this.responseCache.size < 100) {
517
- this.responseCache.set(cacheKey, Buffer.from(finalBuffer));
518
- }
519
531
  // Return buffer to pool after response (zero-copy achievement!)
520
532
  process.nextTick(() => MoroHttpServer.returnBuffer(buffer));
521
533
  };
@@ -543,24 +555,6 @@ export class MoroHttpServer {
543
555
  httpRes.end(data);
544
556
  };
545
557
  httpRes.cookie = (name, value, options = {}) => {
546
- if (httpRes.headersSent) {
547
- const isCritical = options.critical ||
548
- name.includes('session') ||
549
- name.includes('auth') ||
550
- name.includes('csrf');
551
- const message = `Cookie '${name}' could not be set - headers already sent`;
552
- if (isCritical || options.throwOnLateSet) {
553
- throw new Error(`${message}. This may cause authentication or security issues.`);
554
- }
555
- else {
556
- this.logger.warn(message, 'CookieWarning', {
557
- cookieName: name,
558
- critical: isCritical,
559
- stackTrace: new Error().stack,
560
- });
561
- }
562
- return httpRes;
563
- }
564
558
  const cookieValue = encodeURIComponent(value);
565
559
  let cookieString = `${name}=${cookieValue}`;
566
560
  if (options.maxAge)
@@ -600,8 +594,8 @@ export class MoroHttpServer {
600
594
  if (httpRes.headersSent)
601
595
  return;
602
596
  try {
603
- const fs = await import('fs/promises');
604
- const path = await import('path');
597
+ const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
598
+ const path = await Promise.resolve().then(() => __importStar(require('path')));
605
599
  const extension = path.extname(filePath);
606
600
  const mime = await this.getMimeType(extension);
607
601
  const stats = await fs.stat(filePath);
@@ -621,52 +615,6 @@ export class MoroHttpServer {
621
615
  httpRes.status(404).json({ success: false, error: 'File not found' });
622
616
  }
623
617
  };
624
- // Header management utilities
625
- httpRes.hasHeader = (name) => {
626
- return httpRes.getHeader(name) !== undefined;
627
- };
628
- // Note: removeHeader is inherited from ServerResponse, we don't override it
629
- httpRes.setBulkHeaders = (headers) => {
630
- if (httpRes.headersSent) {
631
- this.logger.warn('Cannot set headers - headers already sent', 'HeaderWarning', {
632
- attemptedHeaders: Object.keys(headers),
633
- });
634
- return httpRes;
635
- }
636
- Object.entries(headers).forEach(([key, value]) => {
637
- httpRes.setHeader(key, value);
638
- });
639
- return httpRes;
640
- };
641
- httpRes.appendHeader = (name, value) => {
642
- if (httpRes.headersSent) {
643
- this.logger.warn(`Cannot append to header '${name}' - headers already sent`, 'HeaderWarning');
644
- return httpRes;
645
- }
646
- const existing = httpRes.getHeader(name);
647
- if (existing) {
648
- const values = Array.isArray(existing) ? existing : [existing.toString()];
649
- const newValues = Array.isArray(value) ? value : [value];
650
- httpRes.setHeader(name, [...values, ...newValues]);
651
- }
652
- else {
653
- httpRes.setHeader(name, value);
654
- }
655
- return httpRes;
656
- };
657
- // Response state utilities
658
- httpRes.canSetHeaders = () => {
659
- return !httpRes.headersSent;
660
- };
661
- httpRes.getResponseState = () => {
662
- return {
663
- headersSent: httpRes.headersSent,
664
- statusCode: httpRes.statusCode,
665
- headers: httpRes.getHeaders ? httpRes.getHeaders() : {},
666
- finished: httpRes.finished || false,
667
- writable: httpRes.writable,
668
- };
669
- };
670
618
  return httpRes;
671
619
  }
672
620
  async getMimeType(ext) {
@@ -876,9 +824,7 @@ export class MoroHttpServer {
876
824
  if (!nextCalled)
877
825
  next();
878
826
  })
879
- .catch(error => {
880
- reject(error);
881
- });
827
+ .catch(reject);
882
828
  }
883
829
  }
884
830
  catch (error) {
@@ -912,44 +858,10 @@ export class MoroHttpServer {
912
858
  getServer() {
913
859
  return this.server;
914
860
  }
915
- // PERFORMANCE OPTIMIZATION: Generate cache key for common response patterns
916
- getResponseCacheKey(data) {
917
- // Only cache simple, common responses
918
- if (!data || typeof data !== 'object') {
919
- // Simple primitives or strings - generate key
920
- const key = JSON.stringify(data);
921
- return key.length < 100 ? key : null;
922
- }
923
- // Common API response patterns
924
- if ('hello' in data && Object.keys(data).length <= 2) {
925
- // Hello world type responses
926
- return `hello:${JSON.stringify(data)}`;
927
- }
928
- if ('status' in data && Object.keys(data).length <= 3) {
929
- // Status responses like {status: "ok", version: "1.0.0"}
930
- return `status:${JSON.stringify(data)}`;
931
- }
932
- if ('success' in data && 'message' in data && Object.keys(data).length <= 3) {
933
- // Simple success/error responses
934
- return `msg:${data.success}:${data.message}`;
935
- }
936
- // Don't cache complex objects
937
- return null;
938
- }
939
- // Performance statistics
940
- getPerformanceStats() {
941
- return {
942
- responseCacheHits: this.responseCacheHits,
943
- responseCacheMisses: this.responseCacheMisses,
944
- responseCacheSize: this.responseCache.size,
945
- paramObjectPoolSize: this.paramObjectPool.length,
946
- bufferPoolSize: this.bufferPool.length,
947
- middlewareExecutionCacheSize: this.middlewareExecutionCache.size,
948
- };
949
- }
950
861
  }
862
+ exports.MoroHttpServer = MoroHttpServer;
951
863
  // Built-in middleware
952
- export const middleware = {
864
+ exports.middleware = {
953
865
  cors: (options = {}) => {
954
866
  return (req, res, next) => {
955
867
  res.setHeader('Access-Control-Allow-Origin', options.origin || '*');
@@ -977,6 +889,7 @@ export const middleware = {
977
889
  };
978
890
  },
979
891
  compression: (options = {}) => {
892
+ const zlib = require('zlib');
980
893
  const threshold = options.threshold || 1024;
981
894
  const level = options.level || 6;
982
895
  return (req, res, next) => {
@@ -991,26 +904,24 @@ export const middleware = {
991
904
  return isJson ? originalJson.call(res, data) : originalSend.call(res, data);
992
905
  }
993
906
  if (acceptEncoding.includes('gzip')) {
907
+ res.setHeader('Content-Encoding', 'gzip');
994
908
  zlib.gzip(buffer, { level }, (err, compressed) => {
995
909
  if (err) {
996
910
  return isJson ? originalJson.call(res, data) : originalSend.call(res, data);
997
911
  }
998
- if (!res.headersSent) {
999
- res.setHeader('Content-Encoding', 'gzip');
1000
- res.setHeader('Content-Length', compressed.length);
1001
- }
912
+ res.setHeader('Content-Length', compressed.length);
913
+ res.writeHead(res.statusCode || 200, res.getHeaders());
1002
914
  res.end(compressed);
1003
915
  });
1004
916
  }
1005
917
  else if (acceptEncoding.includes('deflate')) {
918
+ res.setHeader('Content-Encoding', 'deflate');
1006
919
  zlib.deflate(buffer, { level }, (err, compressed) => {
1007
920
  if (err) {
1008
921
  return isJson ? originalJson.call(res, data) : originalSend.call(res, data);
1009
922
  }
1010
- if (!res.headersSent) {
1011
- res.setHeader('Content-Encoding', 'deflate');
1012
- res.setHeader('Content-Length', compressed.length);
1013
- }
923
+ res.setHeader('Content-Length', compressed.length);
924
+ res.writeHead(res.statusCode || 200, res.getHeaders());
1014
925
  res.end(compressed);
1015
926
  });
1016
927
  }
@@ -1065,9 +976,9 @@ export const middleware = {
1065
976
  return;
1066
977
  }
1067
978
  try {
1068
- const fs = await import('fs/promises');
1069
- const path = await import('path');
1070
- const crypto = await import('crypto');
979
+ const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
980
+ const path = await Promise.resolve().then(() => __importStar(require('path')));
981
+ const crypto = await Promise.resolve().then(() => __importStar(require('crypto')));
1071
982
  let filePath = path.join(options.root, req.path);
1072
983
  // Security: prevent directory traversal
1073
984
  if (!filePath.startsWith(path.resolve(options.root))) {
@@ -1235,8 +1146,8 @@ export const middleware = {
1235
1146
  // Add render method to response
1236
1147
  res.render = async (template, data = {}) => {
1237
1148
  try {
1238
- const fs = await import('fs/promises');
1239
- const path = await import('path');
1149
+ const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
1150
+ const path = await Promise.resolve().then(() => __importStar(require('path')));
1240
1151
  const templatePath = path.join(options.views, `${template}.html`);
1241
1152
  let templateContent;
1242
1153
  // Check cache first
@@ -1354,15 +1265,13 @@ export const middleware = {
1354
1265
  // Only handle SSE requests
1355
1266
  if (req.headers.accept?.includes('text/event-stream')) {
1356
1267
  // Set SSE headers
1357
- if (!res.headersSent) {
1358
- res.writeHead(200, {
1359
- 'Content-Type': 'text/event-stream',
1360
- 'Cache-Control': 'no-cache',
1361
- Connection: 'keep-alive',
1362
- 'Access-Control-Allow-Origin': options.cors ? '*' : undefined,
1363
- 'Access-Control-Allow-Headers': options.cors ? 'Cache-Control' : undefined,
1364
- });
1365
- }
1268
+ res.writeHead(200, {
1269
+ 'Content-Type': 'text/event-stream',
1270
+ 'Cache-Control': 'no-cache',
1271
+ Connection: 'keep-alive',
1272
+ 'Access-Control-Allow-Origin': options.cors ? '*' : undefined,
1273
+ 'Access-Control-Allow-Headers': options.cors ? 'Cache-Control' : undefined,
1274
+ });
1366
1275
  // Add SSE methods to response
1367
1276
  res.sendEvent = (data, event, id) => {
1368
1277
  if (id)
@@ -1406,8 +1315,8 @@ export const middleware = {
1406
1315
  // Add range support to response
1407
1316
  res.sendRange = async (filePath, stats) => {
1408
1317
  try {
1409
- const fs = await import('fs/promises');
1410
- const path = await import('path');
1318
+ const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
1319
+ const path = await Promise.resolve().then(() => __importStar(require('path')));
1411
1320
  if (!stats) {
1412
1321
  stats = await fs.stat(filePath);
1413
1322
  }
@@ -1443,8 +1352,7 @@ export const middleware = {
1443
1352
  const { start, end } = ranges[0];
1444
1353
  const chunkSize = end - start + 1;
1445
1354
  if (start >= fileSize || end >= fileSize) {
1446
- res.status(416);
1447
- res.setHeader('Content-Range', `bytes */${fileSize}`);
1355
+ res.status(416).setHeader('Content-Range', `bytes */${fileSize}`);
1448
1356
  res.json({ success: false, error: 'Range not satisfiable' });
1449
1357
  return;
1450
1358
  }
@@ -1452,7 +1360,7 @@ export const middleware = {
1452
1360
  res.setHeader('Content-Range', `bytes ${start}-${end}/${fileSize}`);
1453
1361
  res.setHeader('Content-Length', chunkSize);
1454
1362
  // Stream the range
1455
- const stream = createReadStream(filePath, {
1363
+ const stream = require('fs').createReadStream(filePath, {
1456
1364
  start,
1457
1365
  end,
1458
1366
  });
@@ -1469,12 +1377,12 @@ export const middleware = {
1469
1377
  const chunkSize = end - start + 1;
1470
1378
  res.write(`\r\n--${boundary}\r\n`);
1471
1379
  res.write(`Content-Range: bytes ${start}-${end}/${fileSize}\r\n\r\n`);
1472
- const stream = createReadStream(filePath, {
1380
+ const stream = require('fs').createReadStream(filePath, {
1473
1381
  start,
1474
1382
  end,
1475
1383
  });
1476
1384
  await new Promise(resolve => {
1477
- stream.on('end', () => resolve());
1385
+ stream.on('end', resolve);
1478
1386
  stream.pipe(res, { end: false });
1479
1387
  });
1480
1388
  }
@@ -1497,6 +1405,7 @@ export const middleware = {
1497
1405
  const headerName = options.headerName || 'x-csrf-token';
1498
1406
  const ignoreMethods = options.ignoreMethods || ['GET', 'HEAD', 'OPTIONS'];
1499
1407
  const generateToken = () => {
1408
+ const crypto = require('crypto');
1500
1409
  return crypto.randomBytes(tokenLength).toString('hex');
1501
1410
  };
1502
1411
  const verifyToken = (token, sessionToken) => {
@@ -1553,6 +1462,7 @@ export const middleware = {
1553
1462
  // Generate nonce if requested
1554
1463
  let nonce;
1555
1464
  if (options.nonce) {
1465
+ const crypto = require('crypto');
1556
1466
  nonce = crypto.randomBytes(16).toString('base64');
1557
1467
  req.cspNonce = nonce;
1558
1468
  }