@morojs/moro 1.5.17 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/README.md +70 -269
  2. package/dist/core/auth/morojs-adapter.js +5 -9
  3. package/dist/core/auth/morojs-adapter.js.map +1 -1
  4. package/dist/core/config/config-manager.d.ts +1 -1
  5. package/dist/core/config/config-manager.js +10 -20
  6. package/dist/core/config/config-manager.js.map +1 -1
  7. package/dist/core/config/config-sources.d.ts +2 -2
  8. package/dist/core/config/config-sources.js +17 -20
  9. package/dist/core/config/config-sources.js.map +1 -1
  10. package/dist/core/config/config-validator.d.ts +1 -1
  11. package/dist/core/config/config-validator.js +33 -10
  12. package/dist/core/config/config-validator.js.map +1 -1
  13. package/dist/core/config/file-loader.d.ts +1 -1
  14. package/dist/core/config/file-loader.js +19 -78
  15. package/dist/core/config/file-loader.js.map +1 -1
  16. package/dist/core/config/index.d.ts +8 -8
  17. package/dist/core/config/index.js +25 -51
  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 +11 -13
  21. package/dist/core/config/schema.js.map +1 -1
  22. package/dist/core/config/utils.d.ts +1 -1
  23. package/dist/core/config/utils.js +18 -32
  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 +3 -1
  32. package/dist/core/database/adapters/mongodb.js +23 -8
  33. package/dist/core/database/adapters/mongodb.js.map +1 -1
  34. package/dist/core/database/adapters/mysql.d.ts +3 -1
  35. package/dist/core/database/adapters/mysql.js +18 -9
  36. package/dist/core/database/adapters/mysql.js.map +1 -1
  37. package/dist/core/database/adapters/postgresql.d.ts +3 -1
  38. package/dist/core/database/adapters/postgresql.js +18 -8
  39. package/dist/core/database/adapters/postgresql.js.map +1 -1
  40. package/dist/core/database/adapters/redis.d.ts +3 -1
  41. package/dist/core/database/adapters/redis.js +34 -9
  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 +6 -10
  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 +14 -6
  73. package/dist/core/framework.js +150 -88
  74. package/dist/core/framework.js.map +1 -1
  75. package/dist/core/http/http-server.d.ts +1 -1
  76. package/dist/core/http/http-server.js +24 -62
  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/router.d.ts +1 -1
  82. package/dist/core/http/router.js +3 -7
  83. package/dist/core/http/router.js.map +1 -1
  84. package/dist/core/http/uws-http-server.d.ts +64 -0
  85. package/dist/core/http/uws-http-server.js +688 -0
  86. package/dist/core/http/uws-http-server.js.map +1 -0
  87. package/dist/core/logger/filters.d.ts +1 -1
  88. package/dist/core/logger/filters.js +8 -19
  89. package/dist/core/logger/filters.js.map +1 -1
  90. package/dist/core/logger/index.d.ts +3 -3
  91. package/dist/core/logger/index.js +2 -25
  92. package/dist/core/logger/index.js.map +1 -1
  93. package/dist/core/logger/logger.d.ts +1 -1
  94. package/dist/core/logger/logger.js +21 -23
  95. package/dist/core/logger/logger.js.map +1 -1
  96. package/dist/core/logger/outputs.d.ts +1 -1
  97. package/dist/core/logger/outputs.js +8 -15
  98. package/dist/core/logger/outputs.js.map +1 -1
  99. package/dist/core/middleware/built-in/adapters/cache/file.d.ts +1 -1
  100. package/dist/core/middleware/built-in/adapters/cache/file.js +10 -47
  101. package/dist/core/middleware/built-in/adapters/cache/file.js.map +1 -1
  102. package/dist/core/middleware/built-in/adapters/cache/index.d.ts +4 -4
  103. package/dist/core/middleware/built-in/adapters/cache/index.js +10 -17
  104. package/dist/core/middleware/built-in/adapters/cache/index.js.map +1 -1
  105. package/dist/core/middleware/built-in/adapters/cache/memory.d.ts +1 -1
  106. package/dist/core/middleware/built-in/adapters/cache/memory.js +3 -7
  107. package/dist/core/middleware/built-in/adapters/cache/memory.js.map +1 -1
  108. package/dist/core/middleware/built-in/adapters/cache/redis.d.ts +3 -1
  109. package/dist/core/middleware/built-in/adapters/cache/redis.js +11 -9
  110. package/dist/core/middleware/built-in/adapters/cache/redis.js.map +1 -1
  111. package/dist/core/middleware/built-in/adapters/cdn/azure.d.ts +1 -1
  112. package/dist/core/middleware/built-in/adapters/cdn/azure.js +3 -7
  113. package/dist/core/middleware/built-in/adapters/cdn/azure.js.map +1 -1
  114. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.d.ts +1 -1
  115. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js +3 -7
  116. package/dist/core/middleware/built-in/adapters/cdn/cloudflare.js.map +1 -1
  117. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.d.ts +3 -1
  118. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js +12 -10
  119. package/dist/core/middleware/built-in/adapters/cdn/cloudfront.js.map +1 -1
  120. package/dist/core/middleware/built-in/adapters/cdn/index.d.ts +4 -4
  121. package/dist/core/middleware/built-in/adapters/cdn/index.js +10 -17
  122. package/dist/core/middleware/built-in/adapters/cdn/index.js.map +1 -1
  123. package/dist/core/middleware/built-in/adapters/index.d.ts +4 -4
  124. package/dist/core/middleware/built-in/adapters/index.js +4 -23
  125. package/dist/core/middleware/built-in/adapters/index.js.map +1 -1
  126. package/dist/core/middleware/built-in/auth-helpers.js +11 -22
  127. package/dist/core/middleware/built-in/auth-helpers.js.map +1 -1
  128. package/dist/core/middleware/built-in/auth-providers.d.ts +1 -1
  129. package/dist/core/middleware/built-in/auth-providers.js +4 -9
  130. package/dist/core/middleware/built-in/auth-providers.js.map +1 -1
  131. package/dist/core/middleware/built-in/auth.d.ts +2 -2
  132. package/dist/core/middleware/built-in/auth.js +10 -14
  133. package/dist/core/middleware/built-in/auth.js.map +1 -1
  134. package/dist/core/middleware/built-in/cache.d.ts +2 -2
  135. package/dist/core/middleware/built-in/cache.js +8 -11
  136. package/dist/core/middleware/built-in/cache.js.map +1 -1
  137. package/dist/core/middleware/built-in/cdn.d.ts +2 -2
  138. package/dist/core/middleware/built-in/cdn.js +5 -9
  139. package/dist/core/middleware/built-in/cdn.js.map +1 -1
  140. package/dist/core/middleware/built-in/cookie.d.ts +1 -1
  141. package/dist/core/middleware/built-in/cookie.js +3 -7
  142. package/dist/core/middleware/built-in/cookie.js.map +1 -1
  143. package/dist/core/middleware/built-in/cors.d.ts +1 -1
  144. package/dist/core/middleware/built-in/cors.js +3 -7
  145. package/dist/core/middleware/built-in/cors.js.map +1 -1
  146. package/dist/core/middleware/built-in/csp.d.ts +1 -1
  147. package/dist/core/middleware/built-in/csp.js +5 -8
  148. package/dist/core/middleware/built-in/csp.js.map +1 -1
  149. package/dist/core/middleware/built-in/csrf.d.ts +1 -1
  150. package/dist/core/middleware/built-in/csrf.js +5 -8
  151. package/dist/core/middleware/built-in/csrf.js.map +1 -1
  152. package/dist/core/middleware/built-in/error-tracker.js +3 -7
  153. package/dist/core/middleware/built-in/error-tracker.js.map +1 -1
  154. package/dist/core/middleware/built-in/index.d.ts +28 -28
  155. package/dist/core/middleware/built-in/index.js +47 -82
  156. package/dist/core/middleware/built-in/index.js.map +1 -1
  157. package/dist/core/middleware/built-in/jwt-helpers.d.ts +1 -1
  158. package/dist/core/middleware/built-in/jwt-helpers.js +6 -9
  159. package/dist/core/middleware/built-in/jwt-helpers.js.map +1 -1
  160. package/dist/core/middleware/built-in/performance-monitor.js +3 -7
  161. package/dist/core/middleware/built-in/performance-monitor.js.map +1 -1
  162. package/dist/core/middleware/built-in/rate-limit.d.ts +1 -1
  163. package/dist/core/middleware/built-in/rate-limit.js +3 -7
  164. package/dist/core/middleware/built-in/rate-limit.js.map +1 -1
  165. package/dist/core/middleware/built-in/request-logger.js +3 -7
  166. package/dist/core/middleware/built-in/request-logger.js.map +1 -1
  167. package/dist/core/middleware/built-in/session.d.ts +2 -2
  168. package/dist/core/middleware/built-in/session.js +11 -15
  169. package/dist/core/middleware/built-in/session.js.map +1 -1
  170. package/dist/core/middleware/built-in/sse.d.ts +1 -1
  171. package/dist/core/middleware/built-in/sse.js +3 -7
  172. package/dist/core/middleware/built-in/sse.js.map +1 -1
  173. package/dist/core/middleware/built-in/validation.d.ts +1 -1
  174. package/dist/core/middleware/built-in/validation.js +3 -7
  175. package/dist/core/middleware/built-in/validation.js.map +1 -1
  176. package/dist/core/middleware/index.d.ts +4 -4
  177. package/dist/core/middleware/index.js +8 -28
  178. package/dist/core/middleware/index.js.map +1 -1
  179. package/dist/core/modules/auto-discovery.d.ts +3 -3
  180. package/dist/core/modules/auto-discovery.js +43 -81
  181. package/dist/core/modules/auto-discovery.js.map +1 -1
  182. package/dist/core/modules/index.d.ts +2 -2
  183. package/dist/core/modules/index.js +2 -9
  184. package/dist/core/modules/index.js.map +1 -1
  185. package/dist/core/modules/modules.d.ts +3 -3
  186. package/dist/core/modules/modules.js +11 -52
  187. package/dist/core/modules/modules.js.map +1 -1
  188. package/dist/core/networking/adapters/index.d.ts +4 -3
  189. package/dist/core/networking/adapters/index.js +3 -7
  190. package/dist/core/networking/adapters/index.js.map +1 -1
  191. package/dist/core/networking/adapters/socketio-adapter.d.ts +1 -1
  192. package/dist/core/networking/adapters/socketio-adapter.js +5 -40
  193. package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
  194. package/dist/core/networking/adapters/uws-adapter.d.ts +44 -0
  195. package/dist/core/networking/adapters/uws-adapter.js +513 -0
  196. package/dist/core/networking/adapters/uws-adapter.js.map +1 -0
  197. package/dist/core/networking/adapters/ws-adapter.d.ts +1 -1
  198. package/dist/core/networking/adapters/ws-adapter.js +7 -42
  199. package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
  200. package/dist/core/networking/index.d.ts +3 -2
  201. package/dist/core/networking/index.js +2 -7
  202. package/dist/core/networking/index.js.map +1 -1
  203. package/dist/core/networking/service-discovery.js +3 -7
  204. package/dist/core/networking/service-discovery.js.map +1 -1
  205. package/dist/core/networking/websocket-adapter.js +1 -2
  206. package/dist/core/networking/websocket-adapter.js.map +1 -1
  207. package/dist/core/networking/websocket-manager.d.ts +3 -3
  208. package/dist/core/networking/websocket-manager.js +9 -11
  209. package/dist/core/networking/websocket-manager.js.map +1 -1
  210. package/dist/core/routing/app-integration.d.ts +2 -2
  211. package/dist/core/routing/app-integration.js +7 -12
  212. package/dist/core/routing/app-integration.js.map +1 -1
  213. package/dist/core/routing/index.d.ts +2 -2
  214. package/dist/core/routing/index.js +7 -14
  215. package/dist/core/routing/index.js.map +1 -1
  216. package/dist/core/runtime/aws-lambda-adapter.d.ts +3 -3
  217. package/dist/core/runtime/aws-lambda-adapter.js +2 -6
  218. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
  219. package/dist/core/runtime/base-adapter.d.ts +2 -2
  220. package/dist/core/runtime/base-adapter.js +3 -7
  221. package/dist/core/runtime/base-adapter.js.map +1 -1
  222. package/dist/core/runtime/cloudflare-workers-adapter.d.ts +3 -3
  223. package/dist/core/runtime/cloudflare-workers-adapter.js +2 -6
  224. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
  225. package/dist/core/runtime/index.d.ts +12 -12
  226. package/dist/core/runtime/index.js +22 -35
  227. package/dist/core/runtime/index.js.map +1 -1
  228. package/dist/core/runtime/node-adapter.d.ts +4 -4
  229. package/dist/core/runtime/node-adapter.js +6 -43
  230. package/dist/core/runtime/node-adapter.js.map +1 -1
  231. package/dist/core/runtime/vercel-edge-adapter.d.ts +3 -3
  232. package/dist/core/runtime/vercel-edge-adapter.js +2 -6
  233. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
  234. package/dist/core/utilities/circuit-breaker.js +1 -5
  235. package/dist/core/utilities/circuit-breaker.js.map +1 -1
  236. package/dist/core/utilities/container.js +12 -22
  237. package/dist/core/utilities/container.js.map +1 -1
  238. package/dist/core/utilities/hooks.d.ts +2 -2
  239. package/dist/core/utilities/hooks.js +7 -12
  240. package/dist/core/utilities/hooks.js.map +1 -1
  241. package/dist/core/utilities/index.d.ts +5 -4
  242. package/dist/core/utilities/index.js +5 -19
  243. package/dist/core/utilities/index.js.map +1 -1
  244. package/dist/core/utilities/package-utils.d.ts +38 -0
  245. package/dist/core/utilities/package-utils.js +57 -0
  246. package/dist/core/utilities/package-utils.js.map +1 -0
  247. package/dist/core/validation/adapters.d.ts +1 -1
  248. package/dist/core/validation/adapters.js +15 -26
  249. package/dist/core/validation/adapters.js.map +1 -1
  250. package/dist/core/validation/index.d.ts +6 -4
  251. package/dist/core/validation/index.js +57 -28
  252. package/dist/core/validation/index.js.map +1 -1
  253. package/dist/core/validation/schema-interface.js +3 -9
  254. package/dist/core/validation/schema-interface.js.map +1 -1
  255. package/dist/index.d.ts +51 -52
  256. package/dist/index.js +23 -132
  257. package/dist/index.js.map +1 -1
  258. package/dist/moro.d.ts +13 -10
  259. package/dist/moro.js +132 -102
  260. package/dist/moro.js.map +1 -1
  261. package/dist/types/auth.js +3 -9
  262. package/dist/types/auth.js.map +1 -1
  263. package/dist/types/cache.js +1 -2
  264. package/dist/types/cdn.js +1 -2
  265. package/dist/types/config.d.ts +13 -1
  266. package/dist/types/config.js +1 -2
  267. package/dist/types/config.js.map +1 -1
  268. package/dist/types/core.d.ts +3 -3
  269. package/dist/types/core.js +1 -2
  270. package/dist/types/database.js +1 -2
  271. package/dist/types/discovery.js +1 -2
  272. package/dist/types/events.js +1 -2
  273. package/dist/types/hooks.d.ts +1 -1
  274. package/dist/types/hooks.js +1 -2
  275. package/dist/types/http.js +1 -2
  276. package/dist/types/logger.js +1 -2
  277. package/dist/types/module.js +1 -2
  278. package/dist/types/runtime.d.ts +1 -1
  279. package/dist/types/runtime.js +1 -2
  280. package/dist/types/session.js +1 -2
  281. package/jest.config.mjs +41 -0
  282. package/package.json +18 -51
  283. package/src/core/auth/morojs-adapter.ts +1 -1
  284. package/src/core/config/config-manager.ts +2 -2
  285. package/src/core/config/config-sources.ts +6 -6
  286. package/src/core/config/config-validator.ts +38 -3
  287. package/src/core/config/file-loader.ts +13 -40
  288. package/src/core/config/index.ts +15 -11
  289. package/src/core/config/schema.ts +3 -2
  290. package/src/core/config/utils.ts +3 -3
  291. package/src/core/database/adapters/drizzle.ts +18 -6
  292. package/src/core/database/adapters/index.ts +13 -13
  293. package/src/core/database/adapters/mongodb.ts +23 -3
  294. package/src/core/database/adapters/mysql.ts +18 -4
  295. package/src/core/database/adapters/postgresql.ts +18 -3
  296. package/src/core/database/adapters/redis.ts +34 -4
  297. package/src/core/database/adapters/sqlite.ts +19 -3
  298. package/src/core/database/index.ts +2 -2
  299. package/src/core/docs/index.ts +8 -8
  300. package/src/core/docs/openapi-generator.ts +4 -4
  301. package/src/core/docs/schema-to-openapi.ts +3 -6
  302. package/src/core/docs/simple-docs.ts +2 -2
  303. package/src/core/docs/swagger-ui.ts +19 -16
  304. package/src/core/docs/zod-to-openapi.ts +34 -34
  305. package/src/core/events/event-bus.ts +2 -2
  306. package/src/core/events/index.ts +2 -2
  307. package/src/core/framework.ts +148 -44
  308. package/src/core/http/http-server.ts +14 -9
  309. package/src/core/http/index.ts +4 -3
  310. package/src/core/http/router.ts +2 -2
  311. package/src/core/http/uws-http-server.ts +794 -0
  312. package/src/core/logger/filters.ts +1 -1
  313. package/src/core/logger/index.ts +3 -3
  314. package/src/core/logger/logger.ts +9 -1
  315. package/src/core/logger/outputs.ts +1 -1
  316. package/src/core/middleware/built-in/adapters/cache/file.ts +3 -3
  317. package/src/core/middleware/built-in/adapters/cache/index.ts +7 -7
  318. package/src/core/middleware/built-in/adapters/cache/memory.ts +2 -2
  319. package/src/core/middleware/built-in/adapters/cache/redis.ts +18 -4
  320. package/src/core/middleware/built-in/adapters/cdn/azure.ts +2 -2
  321. package/src/core/middleware/built-in/adapters/cdn/cloudflare.ts +2 -2
  322. package/src/core/middleware/built-in/adapters/cdn/cloudfront.ts +16 -5
  323. package/src/core/middleware/built-in/adapters/cdn/index.ts +7 -7
  324. package/src/core/middleware/built-in/adapters/index.ts +4 -4
  325. package/src/core/middleware/built-in/auth-helpers.ts +1 -1
  326. package/src/core/middleware/built-in/auth-providers.ts +1 -1
  327. package/src/core/middleware/built-in/auth.ts +6 -6
  328. package/src/core/middleware/built-in/cache.ts +5 -5
  329. package/src/core/middleware/built-in/cdn.ts +4 -4
  330. package/src/core/middleware/built-in/cookie.ts +2 -2
  331. package/src/core/middleware/built-in/cors.ts +2 -2
  332. package/src/core/middleware/built-in/csp.ts +3 -3
  333. package/src/core/middleware/built-in/csrf.ts +3 -3
  334. package/src/core/middleware/built-in/error-tracker.ts +1 -1
  335. package/src/core/middleware/built-in/index.ts +31 -31
  336. package/src/core/middleware/built-in/jwt-helpers.ts +6 -3
  337. package/src/core/middleware/built-in/performance-monitor.ts +1 -1
  338. package/src/core/middleware/built-in/rate-limit.ts +2 -2
  339. package/src/core/middleware/built-in/request-logger.ts +1 -1
  340. package/src/core/middleware/built-in/session.ts +7 -8
  341. package/src/core/middleware/built-in/sse.ts +2 -2
  342. package/src/core/middleware/built-in/validation.ts +2 -2
  343. package/src/core/middleware/index.ts +6 -6
  344. package/src/core/modules/auto-discovery.ts +4 -4
  345. package/src/core/modules/index.ts +2 -2
  346. package/src/core/modules/modules.ts +4 -4
  347. package/src/core/networking/adapters/index.ts +4 -3
  348. package/src/core/networking/adapters/socketio-adapter.ts +5 -3
  349. package/src/core/networking/adapters/uws-adapter.ts +619 -0
  350. package/src/core/networking/adapters/ws-adapter.ts +6 -4
  351. package/src/core/networking/index.ts +3 -2
  352. package/src/core/networking/service-discovery.ts +1 -1
  353. package/src/core/networking/websocket-manager.ts +7 -7
  354. package/src/core/routing/app-integration.ts +3 -3
  355. package/src/core/routing/index.ts +3 -3
  356. package/src/core/runtime/aws-lambda-adapter.ts +3 -3
  357. package/src/core/runtime/base-adapter.ts +2 -2
  358. package/src/core/runtime/cloudflare-workers-adapter.ts +3 -3
  359. package/src/core/runtime/index.ts +13 -13
  360. package/src/core/runtime/node-adapter.ts +4 -4
  361. package/src/core/runtime/vercel-edge-adapter.ts +3 -3
  362. package/src/core/utilities/hooks.ts +3 -3
  363. package/src/core/utilities/index.ts +5 -4
  364. package/src/core/utilities/package-utils.ts +59 -0
  365. package/src/core/validation/adapters.ts +1 -1
  366. package/src/core/validation/index.ts +68 -16
  367. package/src/index.ts +73 -66
  368. package/src/moro.ts +144 -51
  369. package/src/types/config.ts +13 -1
  370. package/src/types/core.ts +3 -3
  371. package/src/types/hooks.ts +1 -1
  372. package/src/types/runtime.ts +1 -1
  373. package/tsconfig.json +4 -2
package/dist/moro.js CHANGED
@@ -1,59 +1,21 @@
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.Moro = void 0;
37
- exports.createApp = createApp;
38
- exports.createAppNode = createAppNode;
39
- exports.createAppEdge = createAppEdge;
40
- exports.createAppLambda = createAppLambda;
41
- exports.createAppWorker = createAppWorker;
42
1
  // Moro Framework - Modern TypeScript API Framework
43
2
  // Built for developers who demand performance, elegance, and zero compromises
44
3
  // Event-driven • Modular • Enterprise-ready • Developer-first
45
- const framework_1 = require("./core/framework");
46
- const http_1 = require("./core/http");
47
- const logger_1 = require("./core/logger");
48
- const middleware_1 = require("./core/middleware");
49
- const app_integration_1 = require("./core/routing/app-integration");
50
- const docs_1 = require("./core/docs");
51
- const events_1 = require("events");
4
+ import { Moro as MoroCore } from './core/framework.js';
5
+ import { middleware } from './core/http/index.js';
6
+ import { createFrameworkLogger, applyLoggingConfiguration } from './core/logger/index.js';
7
+ import { MiddlewareManager } from './core/middleware/index.js';
8
+ import { IntelligentRoutingManager } from './core/routing/app-integration.js';
9
+ import { AppDocumentationManager } from './core/docs/index.js';
10
+ import { EventEmitter } from 'events';
11
+ import cluster from 'cluster';
12
+ import os from 'os';
13
+ import { normalizeValidationError } from './core/validation/schema-interface.js';
52
14
  // Configuration System Integration
53
- const config_1 = require("./core/config");
15
+ import { initializeConfig } from './core/config/index.js';
54
16
  // Runtime System Integration
55
- const runtime_1 = require("./core/runtime");
56
- class Moro extends events_1.EventEmitter {
17
+ import { createRuntimeAdapter } from './core/runtime/index.js';
18
+ export class Moro extends EventEmitter {
57
19
  coreFramework;
58
20
  routes = [];
59
21
  moduleCounter = 0;
@@ -69,9 +31,9 @@ class Moro extends events_1.EventEmitter {
69
31
  // Application logger
70
32
  logger;
71
33
  // Intelligent routing system
72
- intelligentRouting = new app_integration_1.IntelligentRoutingManager();
34
+ intelligentRouting = new IntelligentRoutingManager();
73
35
  // Documentation system
74
- documentation = new docs_1.AppDocumentationManager();
36
+ documentation = new AppDocumentationManager();
75
37
  // Configuration system
76
38
  config;
77
39
  // Runtime system
@@ -79,43 +41,48 @@ class Moro extends events_1.EventEmitter {
79
41
  runtimeType;
80
42
  // Middleware system
81
43
  middlewareManager;
44
+ // Queued WebSocket registrations (for async adapter detection)
45
+ queuedWebSocketRegistrations = [];
82
46
  constructor(options = {}) {
83
47
  super(); // Call EventEmitter constructor
84
48
  // Apply logging configuration BEFORE config loading to avoid DEBUG spam
85
49
  // 1. Environment variables (base level)
86
50
  const envLogLevel = process.env.LOG_LEVEL || process.env.MORO_LOG_LEVEL;
87
51
  if (envLogLevel) {
88
- (0, logger_1.applyLoggingConfiguration)({ level: envLogLevel }, undefined);
52
+ applyLoggingConfiguration({ level: envLogLevel }, undefined);
89
53
  }
90
54
  // 2. createApp logger options (highest precedence)
91
55
  if (options.logger !== undefined) {
92
- (0, logger_1.applyLoggingConfiguration)(undefined, options.logger);
56
+ applyLoggingConfiguration(undefined, options.logger);
93
57
  }
94
58
  // Create logger AFTER initial configuration
95
- this.logger = (0, logger_1.createFrameworkLogger)('App');
59
+ this.logger = createFrameworkLogger('App');
96
60
  // Use simplified global configuration system
97
- this.config = (0, config_1.initializeConfig)(options);
61
+ this.config = initializeConfig(options);
98
62
  // Apply config file logging if it exists (may override createApp options if needed)
99
63
  if (this.config.logging && !options.logger) {
100
- (0, logger_1.applyLoggingConfiguration)(this.config.logging, undefined);
64
+ applyLoggingConfiguration(this.config.logging, undefined);
101
65
  // Recreate logger with updated config
102
- this.logger = (0, logger_1.createFrameworkLogger)('App');
66
+ this.logger = createFrameworkLogger('App');
103
67
  }
104
68
  this.logger.info(`Configuration system initialized: ${process.env.NODE_ENV || 'development'}:${this.config.server.port}`);
105
69
  // Initialize runtime system
106
70
  this.runtimeType = options.runtime?.type || 'node';
107
- this.runtimeAdapter = options.runtime?.adapter || (0, runtime_1.createRuntimeAdapter)(this.runtimeType);
71
+ this.runtimeAdapter = options.runtime?.adapter || createRuntimeAdapter(this.runtimeType);
108
72
  this.logger.info(`Runtime system initialized: ${this.runtimeType}`, 'Runtime');
109
73
  // Pass configuration from config to framework
110
74
  const frameworkOptions = {
111
75
  ...options,
112
76
  logger: this.config.logging,
113
- websocket: this.config.websocket.enabled ? options.websocket || {} : false,
77
+ // Enable websockets if either config has it enabled OR user passed websocket options
78
+ websocket: this.config.websocket.enabled || options.websocket
79
+ ? options.websocket || this.config.websocket || {}
80
+ : false,
114
81
  config: this.config,
115
82
  };
116
- this.coreFramework = new framework_1.Moro(frameworkOptions);
83
+ this.coreFramework = new MoroCore(frameworkOptions);
117
84
  // Initialize middleware system
118
- this.middlewareManager = new middleware_1.MiddlewareManager();
85
+ this.middlewareManager = new MiddlewareManager();
119
86
  // Integrate hooks system with HTTP server
120
87
  const httpServer = this.coreFramework.httpServer;
121
88
  if (httpServer && httpServer.setHookManager) {
@@ -323,29 +290,36 @@ class Moro extends events_1.EventEmitter {
323
290
  }
324
291
  // WebSocket helper with events
325
292
  websocket(namespace, handlers) {
293
+ // Queue the registration to be processed after adapter initialization
294
+ const registration = { namespace, handlers, processed: false };
295
+ this.queuedWebSocketRegistrations.push(registration);
296
+ // Try to process immediately if adapter is already ready
326
297
  const adapter = this.coreFramework.getWebSocketAdapter();
327
- if (!adapter) {
328
- throw new Error('WebSocket features require a WebSocket adapter. Install socket.io or configure an adapter:\n' +
329
- 'npm install socket.io\n' +
330
- 'or\n' +
331
- 'new Moro({ websocket: { adapter: new SocketIOAdapter() } })');
298
+ if (adapter && !registration.processed) {
299
+ // Adapter is ready, process immediately
300
+ this.processWebSocketRegistration(namespace, handlers, adapter);
301
+ registration.processed = true;
332
302
  }
303
+ // Otherwise, it will be processed when the server starts
304
+ return this;
305
+ }
306
+ processWebSocketRegistration(namespace, handlers, adapter) {
333
307
  this.emit('websocket:registering', { namespace, handlers });
334
308
  const ns = adapter.createNamespace(namespace);
335
309
  Object.entries(handlers).forEach(([event, handler]) => {
336
- ns.on('connection', socket => {
310
+ ns.on('connection', (socket) => {
337
311
  this.emit('websocket:connection', { namespace, event, socket });
338
312
  socket.on(event, (data, callback) => {
339
313
  this.emit('websocket:event', { namespace, event, data });
340
314
  Promise.resolve(handler(socket, data))
341
- .then(result => {
315
+ .then((result) => {
342
316
  this.emit('websocket:response', { namespace, event, result });
343
317
  if (callback)
344
318
  callback(result);
345
319
  else if (result)
346
320
  socket.emit(`${event}:response`, result);
347
321
  })
348
- .catch(error => {
322
+ .catch((error) => {
349
323
  this.emit('websocket:error', { namespace, event, error });
350
324
  const errorResponse = { success: false, error: error.message };
351
325
  if (callback)
@@ -357,7 +331,33 @@ class Moro extends events_1.EventEmitter {
357
331
  });
358
332
  });
359
333
  this.emit('websocket:registered', { namespace, handlers });
360
- return this;
334
+ }
335
+ async processQueuedWebSocketRegistrations() {
336
+ // Wait for WebSocket adapter to be ready
337
+ await this.coreFramework.ensureWebSocketReady();
338
+ const adapter = this.coreFramework.getWebSocketAdapter();
339
+ // Check if any unprocessed registrations exist
340
+ const unprocessedRegistrations = this.queuedWebSocketRegistrations.filter(r => !r.processed);
341
+ if (!adapter && unprocessedRegistrations.length > 0) {
342
+ throw new Error('WebSocket features require a WebSocket adapter.\n\n' +
343
+ 'Option 1: Install socket.io (auto-detected):\n' +
344
+ ' npm install socket.io\n' +
345
+ ' const app = new Moro({ websocket: {} });\n\n' +
346
+ 'Option 2: Configure a specific adapter:\n' +
347
+ " import { SocketIOAdapter } from '@morojs/moro';\n" +
348
+ ' const app = new Moro({ websocket: { adapter: new SocketIOAdapter() } });\n\n' +
349
+ 'Option 3: Enable in config file (moro.config.js):\n' +
350
+ ' export default { websocket: { enabled: true } };');
351
+ }
352
+ if (adapter) {
353
+ // Process all unprocessed registrations
354
+ for (const registration of this.queuedWebSocketRegistrations) {
355
+ if (!registration.processed) {
356
+ this.processWebSocketRegistration(registration.namespace, registration.handlers, adapter);
357
+ registration.processed = true;
358
+ }
359
+ }
360
+ }
361
361
  }
362
362
  listen(portOrCallback, hostOrCallback, callback) {
363
363
  // Only available for Node.js runtime
@@ -399,9 +399,18 @@ class Moro extends events_1.EventEmitter {
399
399
  throw new Error('Port not specified and not found in configuration. Please provide a port number or configure it in moro.config.js/ts');
400
400
  }
401
401
  // Check if clustering is enabled for massive performance gains
402
+ // NOTE: uWebSockets.js does NOT support Node.js clustering - it's single-threaded only
403
+ const usingUWebSockets = this.config.server?.useUWebSockets || false;
402
404
  if (this.config.performance?.clustering?.enabled) {
403
- this.startWithClustering(port, host, callback);
404
- return;
405
+ if (usingUWebSockets) {
406
+ this.logger.warn('Clustering is not supported with uWebSockets.js - running in single-threaded mode. ' +
407
+ 'uWebSockets is so fast that single-threaded performance often exceeds multi-threaded Node.js!', 'Cluster');
408
+ // Continue without clustering
409
+ }
410
+ else {
411
+ this.startWithClustering(port, host, callback);
412
+ return;
413
+ }
405
414
  }
406
415
  this.eventBus.emit('server:starting', { port, runtime: this.runtimeType });
407
416
  // Add documentation middleware first (if enabled)
@@ -452,16 +461,21 @@ class Moro extends events_1.EventEmitter {
452
461
  this.coreFramework.listen(port, actualCallback);
453
462
  }
454
463
  };
455
- // Ensure auto-discovery is complete before starting server
456
- this.ensureAutoDiscoveryComplete()
464
+ // Ensure auto-discovery and WebSocket setup is complete before starting server
465
+ Promise.all([this.ensureAutoDiscoveryComplete(), this.processQueuedWebSocketRegistrations()])
457
466
  .then(() => {
458
467
  startServer();
459
468
  })
460
469
  .catch(error => {
461
- this.logger.error('Auto-discovery initialization failed during server start', 'Framework', {
470
+ this.logger.error('Initialization failed during server start', 'Framework', {
462
471
  error: error instanceof Error ? error.message : String(error),
463
472
  });
464
- // Start server anyway - auto-discovery failure shouldn't prevent startup
473
+ // For auto-discovery failures, start server anyway
474
+ // For WebSocket failures with queued registrations, error will propagate
475
+ if (error instanceof Error &&
476
+ error.message.includes('WebSocket features require a WebSocket adapter')) {
477
+ throw error;
478
+ }
465
479
  startServer();
466
480
  });
467
481
  }
@@ -771,7 +785,6 @@ class Moro extends events_1.EventEmitter {
771
785
  }
772
786
  catch (error) {
773
787
  // Handle universal validation errors
774
- const { normalizeValidationError } = require('./core/validation/schema-interface');
775
788
  const normalizedError = normalizeValidationError(error);
776
789
  res.status(400).json({
777
790
  success: false,
@@ -848,11 +861,11 @@ class Moro extends events_1.EventEmitter {
848
861
  : this.config.security.cors
849
862
  ? this.config.security.cors
850
863
  : {};
851
- this.use(http_1.middleware.cors(corsOptions));
864
+ this.use(middleware.cors(corsOptions));
852
865
  }
853
866
  // Helmet - check config enabled property OR options.security.helmet.enabled === true
854
867
  if (this.config.security.helmet.enabled || options.security?.helmet?.enabled === true) {
855
- this.use(http_1.middleware.helmet());
868
+ this.use(middleware.helmet());
856
869
  }
857
870
  // Compression - check config enabled property OR options.performance.compression.enabled === true
858
871
  if (this.config.performance.compression.enabled ||
@@ -862,14 +875,14 @@ class Moro extends events_1.EventEmitter {
862
875
  : this.config.performance.compression
863
876
  ? this.config.performance.compression
864
877
  : {};
865
- this.use(http_1.middleware.compression(compressionOptions));
878
+ this.use(middleware.compression(compressionOptions));
866
879
  }
867
880
  // Body size limiting
868
- this.use(http_1.middleware.bodySize({ limit: '10mb' }));
881
+ this.use(middleware.bodySize({ limit: '10mb' }));
869
882
  }
870
883
  // Enhanced auto-discovery initialization
871
884
  async initializeAutoDiscovery(options) {
872
- const { ModuleDiscovery } = await Promise.resolve().then(() => __importStar(require('./core/modules/auto-discovery')));
885
+ const { ModuleDiscovery } = await import('./core/modules/auto-discovery.js');
873
886
  // Merge auto-discovery configuration
874
887
  const autoDiscoveryConfig = this.mergeAutoDiscoveryConfig(options);
875
888
  if (!autoDiscoveryConfig.enabled) {
@@ -1036,7 +1049,7 @@ class Moro extends events_1.EventEmitter {
1036
1049
  });
1037
1050
  }
1038
1051
  async importModule(modulePath) {
1039
- const module = await Promise.resolve(`${modulePath}`).then(s => __importStar(require(s)));
1052
+ const module = await import(modulePath);
1040
1053
  return module.default || module;
1041
1054
  }
1042
1055
  /**
@@ -1058,8 +1071,6 @@ class Moro extends events_1.EventEmitter {
1058
1071
  */
1059
1072
  clusterWorkers = new Map();
1060
1073
  startWithClustering(port, host, callback) {
1061
- const cluster = require('cluster');
1062
- const os = require('os');
1063
1074
  // Worker count calculation - respect user choice
1064
1075
  let workerCount = this.config.performance?.clustering?.workers || os.cpus().length;
1065
1076
  // Only auto-optimize if user hasn't specified a number or set it to 'auto'
@@ -1151,12 +1162,11 @@ class Moro extends events_1.EventEmitter {
1151
1162
  // Multiple workers writing to same log files creates I/O contention
1152
1163
  if (this.config.logging) {
1153
1164
  // Workers log less frequently to reduce I/O contention
1154
- (0, logger_1.applyLoggingConfiguration)(undefined, { level: 'warn' }); // Only warnings and errors
1165
+ applyLoggingConfiguration(undefined, { level: 'warn' }); // Only warnings and errors
1155
1166
  }
1156
1167
  // Research-based memory optimization for workers
1157
- const os = require('os');
1158
1168
  const totalMemoryGB = os.totalmem() / (1024 * 1024 * 1024);
1159
- const workerCount = Object.keys(require('cluster').workers || {}).length || 1;
1169
+ const workerCount = Object.keys(cluster.workers || {}).length || 1;
1160
1170
  // Conservative memory allocation
1161
1171
  const heapSizePerWorkerMB = Math.min(Math.floor(((totalMemoryGB * 1024) / workerCount) * 0.8), // 80% of available memory
1162
1172
  1536 // Cap at 1.5GB (GC efficiency threshold from research)
@@ -1238,12 +1248,33 @@ class Moro extends events_1.EventEmitter {
1238
1248
  worker: process.pid,
1239
1249
  });
1240
1250
  };
1241
- if (host) {
1242
- this.coreFramework.listen(port, host, workerCallback);
1243
- }
1244
- else {
1245
- this.coreFramework.listen(port, workerCallback);
1246
- }
1251
+ // Ensure WebSocket setup is complete before starting worker
1252
+ this.processQueuedWebSocketRegistrations()
1253
+ .then(() => {
1254
+ if (host) {
1255
+ this.coreFramework.listen(port, host, workerCallback);
1256
+ }
1257
+ else {
1258
+ this.coreFramework.listen(port, workerCallback);
1259
+ }
1260
+ })
1261
+ .catch(error => {
1262
+ this.logger.error('WebSocket initialization failed in worker', 'Worker', {
1263
+ error: error instanceof Error ? error.message : String(error),
1264
+ });
1265
+ // For WebSocket failures with queued registrations, error will propagate
1266
+ if (error instanceof Error &&
1267
+ error.message.includes('WebSocket features require a WebSocket adapter')) {
1268
+ throw error;
1269
+ }
1270
+ // Start anyway for other errors
1271
+ if (host) {
1272
+ this.coreFramework.listen(port, host, workerCallback);
1273
+ }
1274
+ else {
1275
+ this.coreFramework.listen(port, workerCallback);
1276
+ }
1277
+ });
1247
1278
  }
1248
1279
  }
1249
1280
  // Simple worker message handler
@@ -1307,31 +1338,30 @@ class Moro extends events_1.EventEmitter {
1307
1338
  this.logger.debug('Moro application closed successfully');
1308
1339
  }
1309
1340
  }
1310
- exports.Moro = Moro;
1311
1341
  // Export convenience function
1312
- function createApp(options) {
1342
+ export function createApp(options) {
1313
1343
  return new Moro(options);
1314
1344
  }
1315
1345
  // Runtime-specific convenience functions
1316
- function createAppNode(options) {
1346
+ export function createAppNode(options) {
1317
1347
  return new Moro({
1318
1348
  ...options,
1319
1349
  runtime: { type: 'node' },
1320
1350
  });
1321
1351
  }
1322
- function createAppEdge(options) {
1352
+ export function createAppEdge(options) {
1323
1353
  return new Moro({
1324
1354
  ...options,
1325
1355
  runtime: { type: 'vercel-edge' },
1326
1356
  });
1327
1357
  }
1328
- function createAppLambda(options) {
1358
+ export function createAppLambda(options) {
1329
1359
  return new Moro({
1330
1360
  ...options,
1331
1361
  runtime: { type: 'aws-lambda' },
1332
1362
  });
1333
1363
  }
1334
- function createAppWorker(options) {
1364
+ export function createAppWorker(options) {
1335
1365
  return new Moro({
1336
1366
  ...options,
1337
1367
  runtime: { type: 'cloudflare-workers' },
package/dist/moro.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"moro.js","sourceRoot":"","sources":["../src/moro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"moro.js","sourceRoot":"","sources":["../src/moro.ts"],"names":[],"mappings":"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"}