@morojs/moro 1.8.0 → 1.8.2

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 (356) hide show
  1. package/README.md +29 -38
  2. package/dist/core/auth/morojs-adapter.js +95 -45
  3. package/dist/core/auth/morojs-adapter.js.map +1 -1
  4. package/dist/core/config/config-manager.js.map +1 -1
  5. package/dist/core/config/config-sources.js +8 -49
  6. package/dist/core/config/config-sources.js.map +1 -1
  7. package/dist/core/config/config-validator.js +2 -3
  8. package/dist/core/config/config-validator.js.map +1 -1
  9. package/dist/core/config/file-loader.js.map +1 -1
  10. package/dist/core/config/index.js.map +1 -1
  11. package/dist/core/config/schema.js +4 -1
  12. package/dist/core/config/schema.js.map +1 -1
  13. package/dist/core/config/utils.js.map +1 -1
  14. package/dist/core/database/adapters/drizzle.js +2 -2
  15. package/dist/core/database/adapters/drizzle.js.map +1 -1
  16. package/dist/core/database/adapters/index.js.map +1 -1
  17. package/dist/core/database/adapters/mongodb.d.ts +1 -0
  18. package/dist/core/database/adapters/mongodb.js +16 -0
  19. package/dist/core/database/adapters/mongodb.js.map +1 -1
  20. package/dist/core/database/adapters/mysql.d.ts +1 -0
  21. package/dist/core/database/adapters/mysql.js +13 -2
  22. package/dist/core/database/adapters/mysql.js.map +1 -1
  23. package/dist/core/database/adapters/postgresql.js +2 -2
  24. package/dist/core/database/adapters/postgresql.js.map +1 -1
  25. package/dist/core/database/adapters/redis.js.map +1 -1
  26. package/dist/core/database/adapters/sql-safety.js +5 -4
  27. package/dist/core/database/adapters/sql-safety.js.map +1 -1
  28. package/dist/core/database/adapters/sqlite.js.map +1 -1
  29. package/dist/core/database/index.js.map +1 -1
  30. package/dist/core/docs/index.js +11 -7
  31. package/dist/core/docs/index.js.map +1 -1
  32. package/dist/core/docs/openapi-generator.js +8 -6
  33. package/dist/core/docs/openapi-generator.js.map +1 -1
  34. package/dist/core/docs/schema-to-openapi.js +3 -3
  35. package/dist/core/docs/schema-to-openapi.js.map +1 -1
  36. package/dist/core/docs/simple-docs.js.map +1 -1
  37. package/dist/core/docs/swagger-ui.js.map +1 -1
  38. package/dist/core/docs/zod-to-openapi.js +2 -2
  39. package/dist/core/docs/zod-to-openapi.js.map +1 -1
  40. package/dist/core/events/event-bus.js +14 -5
  41. package/dist/core/events/event-bus.js.map +1 -1
  42. package/dist/core/events/index.js.map +1 -1
  43. package/dist/core/framework.d.ts +2 -2
  44. package/dist/core/framework.js +21 -14
  45. package/dist/core/framework.js.map +1 -1
  46. package/dist/core/graphql/adapter.js.map +1 -1
  47. package/dist/core/graphql/adapters/graphql-js-adapter.js.map +1 -1
  48. package/dist/core/graphql/core.js.map +1 -1
  49. package/dist/core/graphql/index.js.map +1 -1
  50. package/dist/core/graphql/loader.js.map +1 -1
  51. package/dist/core/graphql/types.js.map +1 -1
  52. package/dist/core/grpc/adapters/grpc-js-adapter.js +4 -0
  53. package/dist/core/grpc/adapters/grpc-js-adapter.js.map +1 -1
  54. package/dist/core/grpc/adapters/index.js.map +1 -1
  55. package/dist/core/grpc/grpc-adapter.js.map +1 -1
  56. package/dist/core/grpc/grpc-manager.js.map +1 -1
  57. package/dist/core/grpc/index.js.map +1 -1
  58. package/dist/core/grpc/middleware/auth.js +1 -1
  59. package/dist/core/grpc/middleware/auth.js.map +1 -1
  60. package/dist/core/grpc/middleware/logging.js.map +1 -1
  61. package/dist/core/grpc/middleware/validation.js +1 -1
  62. package/dist/core/grpc/middleware/validation.js.map +1 -1
  63. package/dist/core/grpc/types.d.ts +7 -7
  64. package/dist/core/grpc/types.js.map +1 -1
  65. package/dist/core/http/http-server.d.ts +0 -13
  66. package/dist/core/http/http-server.js +34 -141
  67. package/dist/core/http/http-server.js.map +1 -1
  68. package/dist/core/http/http2-server.js +27 -5
  69. package/dist/core/http/http2-server.js.map +1 -1
  70. package/dist/core/http/index.js.map +1 -1
  71. package/dist/core/http/moro-engine-server.d.ts +2 -2
  72. package/dist/core/http/moro-engine-server.js +48 -22
  73. package/dist/core/http/moro-engine-server.js.map +1 -1
  74. package/dist/core/http/utils/compression.js +3 -3
  75. package/dist/core/http/utils/compression.js.map +1 -1
  76. package/dist/core/http/utils/lazy-event-emitter.js.map +1 -1
  77. package/dist/core/http/utils/multipart-parser.js +7 -3
  78. package/dist/core/http/utils/multipart-parser.js.map +1 -1
  79. package/dist/core/http/utils/query-parser.js.map +1 -1
  80. package/dist/core/http/utils/size.js +2 -2
  81. package/dist/core/http/utils/size.js.map +1 -1
  82. package/dist/core/http/utils/ssl-config.d.ts +10 -10
  83. package/dist/core/http/utils/ssl-config.js.map +1 -1
  84. package/dist/core/http/utils/uws-worker-clustering.js +37 -30
  85. package/dist/core/http/utils/uws-worker-clustering.js.map +1 -1
  86. package/dist/core/http/uws-http-server.d.ts +1 -0
  87. package/dist/core/http/uws-http-server.js +80 -22
  88. package/dist/core/http/uws-http-server.js.map +1 -1
  89. package/dist/core/jobs/cron-parser.js +7 -5
  90. package/dist/core/jobs/cron-parser.js.map +1 -1
  91. package/dist/core/jobs/index.js.map +1 -1
  92. package/dist/core/jobs/job-executor.d.ts +1 -1
  93. package/dist/core/jobs/job-executor.js.map +1 -1
  94. package/dist/core/jobs/job-scheduler.d.ts +3 -3
  95. package/dist/core/jobs/job-scheduler.js.map +1 -1
  96. package/dist/core/jobs/job-state-manager.d.ts +3 -3
  97. package/dist/core/jobs/job-state-manager.js +25 -4
  98. package/dist/core/jobs/job-state-manager.js.map +1 -1
  99. package/dist/core/jobs/leader-election.d.ts +15 -0
  100. package/dist/core/jobs/leader-election.js +158 -69
  101. package/dist/core/jobs/leader-election.js.map +1 -1
  102. package/dist/core/jobs/types.d.ts +4 -4
  103. package/dist/core/jobs/types.js.map +1 -1
  104. package/dist/core/jobs/utils.d.ts +1 -1
  105. package/dist/core/jobs/utils.js +7 -3
  106. package/dist/core/jobs/utils.js.map +1 -1
  107. package/dist/core/logger/filters.js +3 -2
  108. package/dist/core/logger/filters.js.map +1 -1
  109. package/dist/core/logger/index.js.map +1 -1
  110. package/dist/core/logger/logger.js +56 -25
  111. package/dist/core/logger/logger.js.map +1 -1
  112. package/dist/core/logger/outputs.js.map +1 -1
  113. package/dist/core/mail/adapters/console-adapter.js.map +1 -1
  114. package/dist/core/mail/adapters/index.js.map +1 -1
  115. package/dist/core/mail/adapters/nodemailer-adapter.js.map +1 -1
  116. package/dist/core/mail/adapters/resend-adapter.js.map +1 -1
  117. package/dist/core/mail/adapters/sendgrid-adapter.js.map +1 -1
  118. package/dist/core/mail/adapters/ses-adapter.js.map +1 -1
  119. package/dist/core/mail/index.js.map +1 -1
  120. package/dist/core/mail/mail-adapter.js.map +1 -1
  121. package/dist/core/mail/mail-manager.d.ts +10 -0
  122. package/dist/core/mail/mail-manager.js +21 -5
  123. package/dist/core/mail/mail-manager.js.map +1 -1
  124. package/dist/core/mail/template-engine.js.map +1 -1
  125. package/dist/core/mail/types.js.map +1 -1
  126. package/dist/core/middleware/built-in/auth/core.js +3 -3
  127. package/dist/core/middleware/built-in/auth/core.js.map +1 -1
  128. package/dist/core/middleware/built-in/auth/helpers.js +4 -4
  129. package/dist/core/middleware/built-in/auth/helpers.js.map +1 -1
  130. package/dist/core/middleware/built-in/auth/hook.js.map +1 -1
  131. package/dist/core/middleware/built-in/auth/index.js.map +1 -1
  132. package/dist/core/middleware/built-in/auth/jwt-helpers.d.ts +4 -4
  133. package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -1
  134. package/dist/core/middleware/built-in/auth/middleware.js.map +1 -1
  135. package/dist/core/middleware/built-in/auth/providers.js.map +1 -1
  136. package/dist/core/middleware/built-in/body-parsers/index.js.map +1 -1
  137. package/dist/core/middleware/built-in/body-size/core.js +2 -2
  138. package/dist/core/middleware/built-in/body-size/core.js.map +1 -1
  139. package/dist/core/middleware/built-in/body-size/hook.js.map +1 -1
  140. package/dist/core/middleware/built-in/body-size/index.js.map +1 -1
  141. package/dist/core/middleware/built-in/body-size/middleware.js.map +1 -1
  142. package/dist/core/middleware/built-in/cache/adapters/cache/file.js +3 -1
  143. package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -1
  144. package/dist/core/middleware/built-in/cache/adapters/cache/index.js.map +1 -1
  145. package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -1
  146. package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -1
  147. package/dist/core/middleware/built-in/cache/adapters/index.js.map +1 -1
  148. package/dist/core/middleware/built-in/cache/core.js.map +1 -1
  149. package/dist/core/middleware/built-in/cache/hook.js +3 -3
  150. package/dist/core/middleware/built-in/cache/hook.js.map +1 -1
  151. package/dist/core/middleware/built-in/cache/index.js.map +1 -1
  152. package/dist/core/middleware/built-in/cache/middleware.js.map +1 -1
  153. package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js.map +1 -1
  154. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js.map +1 -1
  155. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -1
  156. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js.map +1 -1
  157. package/dist/core/middleware/built-in/cdn/adapters/index.js.map +1 -1
  158. package/dist/core/middleware/built-in/cdn/core.js.map +1 -1
  159. package/dist/core/middleware/built-in/cdn/hook.js.map +1 -1
  160. package/dist/core/middleware/built-in/cdn/index.js.map +1 -1
  161. package/dist/core/middleware/built-in/cdn/middleware.js.map +1 -1
  162. package/dist/core/middleware/built-in/compression/core.js.map +1 -1
  163. package/dist/core/middleware/built-in/compression/hook.js.map +1 -1
  164. package/dist/core/middleware/built-in/compression/index.js.map +1 -1
  165. package/dist/core/middleware/built-in/compression/middleware.js.map +1 -1
  166. package/dist/core/middleware/built-in/cookie/core.js.map +1 -1
  167. package/dist/core/middleware/built-in/cookie/hook.js.map +1 -1
  168. package/dist/core/middleware/built-in/cookie/index.js.map +1 -1
  169. package/dist/core/middleware/built-in/cookie/middleware.js.map +1 -1
  170. package/dist/core/middleware/built-in/cors/core.js.map +1 -1
  171. package/dist/core/middleware/built-in/cors/hook.js.map +1 -1
  172. package/dist/core/middleware/built-in/cors/index.js.map +1 -1
  173. package/dist/core/middleware/built-in/cors/middleware.js.map +1 -1
  174. package/dist/core/middleware/built-in/csp/core.js.map +1 -1
  175. package/dist/core/middleware/built-in/csp/hook.js.map +1 -1
  176. package/dist/core/middleware/built-in/csp/index.js.map +1 -1
  177. package/dist/core/middleware/built-in/csp/middleware.js.map +1 -1
  178. package/dist/core/middleware/built-in/csrf/core.js +1 -1
  179. package/dist/core/middleware/built-in/csrf/core.js.map +1 -1
  180. package/dist/core/middleware/built-in/csrf/hook.js.map +1 -1
  181. package/dist/core/middleware/built-in/csrf/index.js.map +1 -1
  182. package/dist/core/middleware/built-in/csrf/middleware.js.map +1 -1
  183. package/dist/core/middleware/built-in/error-tracker/index.js.map +1 -1
  184. package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -1
  185. package/dist/core/middleware/built-in/graphql/core.js.map +1 -1
  186. package/dist/core/middleware/built-in/graphql/helpers.js.map +1 -1
  187. package/dist/core/middleware/built-in/graphql/hook.js.map +1 -1
  188. package/dist/core/middleware/built-in/graphql/index.js.map +1 -1
  189. package/dist/core/middleware/built-in/graphql/middleware.js.map +1 -1
  190. package/dist/core/middleware/built-in/graphql/subscriptions.js.map +1 -1
  191. package/dist/core/middleware/built-in/helmet/core.js.map +1 -1
  192. package/dist/core/middleware/built-in/helmet/hook.js.map +1 -1
  193. package/dist/core/middleware/built-in/helmet/index.js.map +1 -1
  194. package/dist/core/middleware/built-in/helmet/middleware.js.map +1 -1
  195. package/dist/core/middleware/built-in/http2/core.js.map +1 -1
  196. package/dist/core/middleware/built-in/http2/hook.js.map +1 -1
  197. package/dist/core/middleware/built-in/http2/index.js.map +1 -1
  198. package/dist/core/middleware/built-in/http2/middleware.js.map +1 -1
  199. package/dist/core/middleware/built-in/index.js.map +1 -1
  200. package/dist/core/middleware/built-in/performance-monitor/index.js.map +1 -1
  201. package/dist/core/middleware/built-in/performance-monitor/middleware.js.map +1 -1
  202. package/dist/core/middleware/built-in/range/core.js +4 -1
  203. package/dist/core/middleware/built-in/range/core.js.map +1 -1
  204. package/dist/core/middleware/built-in/range/hook.js.map +1 -1
  205. package/dist/core/middleware/built-in/range/index.js.map +1 -1
  206. package/dist/core/middleware/built-in/range/middleware.js.map +1 -1
  207. package/dist/core/middleware/built-in/rate-limit/core.js.map +1 -1
  208. package/dist/core/middleware/built-in/rate-limit/hook.js.map +1 -1
  209. package/dist/core/middleware/built-in/rate-limit/index.js.map +1 -1
  210. package/dist/core/middleware/built-in/rate-limit/middleware.js.map +1 -1
  211. package/dist/core/middleware/built-in/request-logger/index.js.map +1 -1
  212. package/dist/core/middleware/built-in/request-logger/middleware.js.map +1 -1
  213. package/dist/core/middleware/built-in/session/core.js +4 -4
  214. package/dist/core/middleware/built-in/session/core.js.map +1 -1
  215. package/dist/core/middleware/built-in/session/hook.js.map +1 -1
  216. package/dist/core/middleware/built-in/session/index.js.map +1 -1
  217. package/dist/core/middleware/built-in/session/middleware.js.map +1 -1
  218. package/dist/core/middleware/built-in/sse/core.js.map +1 -1
  219. package/dist/core/middleware/built-in/sse/hook.js.map +1 -1
  220. package/dist/core/middleware/built-in/sse/index.js.map +1 -1
  221. package/dist/core/middleware/built-in/sse/middleware.js.map +1 -1
  222. package/dist/core/middleware/built-in/static/core.js.map +1 -1
  223. package/dist/core/middleware/built-in/static/hook.js.map +1 -1
  224. package/dist/core/middleware/built-in/static/index.js.map +1 -1
  225. package/dist/core/middleware/built-in/static/middleware.js.map +1 -1
  226. package/dist/core/middleware/built-in/template/core.js +1 -1
  227. package/dist/core/middleware/built-in/template/core.js.map +1 -1
  228. package/dist/core/middleware/built-in/template/hook.js.map +1 -1
  229. package/dist/core/middleware/built-in/template/index.js.map +1 -1
  230. package/dist/core/middleware/built-in/template/middleware.js.map +1 -1
  231. package/dist/core/middleware/built-in/upload/core.js.map +1 -1
  232. package/dist/core/middleware/built-in/upload/hook.js.map +1 -1
  233. package/dist/core/middleware/built-in/upload/index.js.map +1 -1
  234. package/dist/core/middleware/built-in/upload/middleware.js.map +1 -1
  235. package/dist/core/middleware/built-in/validation/core.js.map +1 -1
  236. package/dist/core/middleware/built-in/validation/hook.js.map +1 -1
  237. package/dist/core/middleware/built-in/validation/index.js.map +1 -1
  238. package/dist/core/middleware/built-in/validation/middleware.js.map +1 -1
  239. package/dist/core/middleware/index.js +2 -2
  240. package/dist/core/middleware/index.js.map +1 -1
  241. package/dist/core/modules/auto-discovery.js +11 -7
  242. package/dist/core/modules/auto-discovery.js.map +1 -1
  243. package/dist/core/modules/index.js.map +1 -1
  244. package/dist/core/modules/modules.js +18 -13
  245. package/dist/core/modules/modules.js.map +1 -1
  246. package/dist/core/networking/adapters/engine-adapter.js +30 -2
  247. package/dist/core/networking/adapters/engine-adapter.js.map +1 -1
  248. package/dist/core/networking/adapters/index.js.map +1 -1
  249. package/dist/core/networking/adapters/socketio-adapter.d.ts +1 -0
  250. package/dist/core/networking/adapters/socketio-adapter.js +12 -1
  251. package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
  252. package/dist/core/networking/adapters/uws-adapter.js +1 -1
  253. package/dist/core/networking/adapters/uws-adapter.js.map +1 -1
  254. package/dist/core/networking/adapters/ws-adapter.d.ts +15 -0
  255. package/dist/core/networking/adapters/ws-adapter.js +120 -6
  256. package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
  257. package/dist/core/networking/index.js.map +1 -1
  258. package/dist/core/networking/service-discovery.js +7 -5
  259. package/dist/core/networking/service-discovery.js.map +1 -1
  260. package/dist/core/networking/websocket-adapter.d.ts +22 -3
  261. package/dist/core/networking/websocket-adapter.js.map +1 -1
  262. package/dist/core/networking/websocket-manager.js +70 -67
  263. package/dist/core/networking/websocket-manager.js.map +1 -1
  264. package/dist/core/pooling/object-pool-manager.js +6 -0
  265. package/dist/core/pooling/object-pool-manager.js.map +1 -1
  266. package/dist/core/queue/adapters/bull-adapter.js.map +1 -1
  267. package/dist/core/queue/adapters/index.js.map +1 -1
  268. package/dist/core/queue/adapters/kafka-adapter.js +2 -2
  269. package/dist/core/queue/adapters/kafka-adapter.js.map +1 -1
  270. package/dist/core/queue/adapters/memory-adapter.js +6 -6
  271. package/dist/core/queue/adapters/memory-adapter.js.map +1 -1
  272. package/dist/core/queue/adapters/rabbitmq-adapter.d.ts +50 -0
  273. package/dist/core/queue/adapters/rabbitmq-adapter.js +176 -20
  274. package/dist/core/queue/adapters/rabbitmq-adapter.js.map +1 -1
  275. package/dist/core/queue/adapters/sqs-adapter.d.ts +12 -2
  276. package/dist/core/queue/adapters/sqs-adapter.js +75 -24
  277. package/dist/core/queue/adapters/sqs-adapter.js.map +1 -1
  278. package/dist/core/queue/index.js.map +1 -1
  279. package/dist/core/queue/middleware/index.js.map +1 -1
  280. package/dist/core/queue/middleware/monitoring.d.ts +1 -1
  281. package/dist/core/queue/middleware/monitoring.js.map +1 -1
  282. package/dist/core/queue/middleware/priority.js +2 -1
  283. package/dist/core/queue/middleware/priority.js.map +1 -1
  284. package/dist/core/queue/middleware/rate-limit.js.map +1 -1
  285. package/dist/core/queue/queue-adapter.js.map +1 -1
  286. package/dist/core/queue/queue-manager.js.map +1 -1
  287. package/dist/core/queue/types.d.ts +8 -8
  288. package/dist/core/queue/types.js.map +1 -1
  289. package/dist/core/routing/app-integration.js.map +1 -1
  290. package/dist/core/routing/create-router.js.map +1 -1
  291. package/dist/core/routing/index.js.map +1 -1
  292. package/dist/core/routing/path-matcher.js.map +1 -1
  293. package/dist/core/routing/radix-tree.js.map +1 -1
  294. package/dist/core/routing/router.js.map +1 -1
  295. package/dist/core/routing/unified-router.js +12 -4
  296. package/dist/core/routing/unified-router.js.map +1 -1
  297. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
  298. package/dist/core/runtime/base-adapter.js +2 -2
  299. package/dist/core/runtime/base-adapter.js.map +1 -1
  300. package/dist/core/runtime/cloudflare-workers-adapter.js +2 -0
  301. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
  302. package/dist/core/runtime/index.js.map +1 -1
  303. package/dist/core/runtime/node-adapter.js +19 -17
  304. package/dist/core/runtime/node-adapter.js.map +1 -1
  305. package/dist/core/runtime/vercel-edge-adapter.js +2 -0
  306. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
  307. package/dist/core/utilities/circuit-breaker.d.ts +1 -0
  308. package/dist/core/utilities/circuit-breaker.js +25 -2
  309. package/dist/core/utilities/circuit-breaker.js.map +1 -1
  310. package/dist/core/utilities/container.js +9 -9
  311. package/dist/core/utilities/container.js.map +1 -1
  312. package/dist/core/utilities/hooks.js +28 -6
  313. package/dist/core/utilities/hooks.js.map +1 -1
  314. package/dist/core/utilities/index.js.map +1 -1
  315. package/dist/core/utilities/module-path.js.map +1 -1
  316. package/dist/core/utilities/package-utils.js +1 -1
  317. package/dist/core/utilities/package-utils.js.map +1 -1
  318. package/dist/core/utilities/response-helpers.js +1 -1
  319. package/dist/core/utilities/response-helpers.js.map +1 -1
  320. package/dist/core/validation/adapters.js.map +1 -1
  321. package/dist/core/validation/error-handler.js.map +1 -1
  322. package/dist/core/validation/index.js.map +1 -1
  323. package/dist/core/validation/schema-interface.js.map +1 -1
  324. package/dist/core/workers/facade.js.map +1 -1
  325. package/dist/core/workers/index.js.map +1 -1
  326. package/dist/core/workers/worker-entry.d.ts +1 -0
  327. package/dist/core/workers/worker-entry.js +12 -0
  328. package/dist/core/workers/worker-entry.js.map +1 -0
  329. package/dist/core/workers/worker-manager.d.ts +23 -2
  330. package/dist/core/workers/worker-manager.js +117 -17
  331. package/dist/core/workers/worker-manager.js.map +1 -1
  332. package/dist/core/workers/worker.js +8 -6
  333. package/dist/core/workers/worker.js.map +1 -1
  334. package/dist/index.d.ts +1 -1
  335. package/dist/index.js +4 -1
  336. package/dist/index.js.map +1 -1
  337. package/dist/moro.d.ts +18 -1
  338. package/dist/moro.js +168 -50
  339. package/dist/moro.js.map +1 -1
  340. package/dist/types/auth.d.ts +4 -4
  341. package/dist/types/auth.js.map +1 -1
  342. package/dist/types/cache.js.map +1 -1
  343. package/dist/types/cdn.js.map +1 -1
  344. package/dist/types/config.d.ts +10 -10
  345. package/dist/types/config.js.map +1 -1
  346. package/dist/types/core.js.map +1 -1
  347. package/dist/types/database.js.map +1 -1
  348. package/dist/types/discovery.js.map +1 -1
  349. package/dist/types/events.js.map +1 -1
  350. package/dist/types/hooks.js.map +1 -1
  351. package/dist/types/http.js.map +1 -1
  352. package/dist/types/logger.js.map +1 -1
  353. package/dist/types/module.js.map +1 -1
  354. package/dist/types/runtime.js.map +1 -1
  355. package/dist/types/session.js.map +1 -1
  356. package/package.json +29 -17
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/core/workers/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/core/workers/worker.ts"],"names":[],"mappings":"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","sourcesContent":["// Worker Thread Implementation\n// Runs in worker threads to execute CPU-intensive operations\n\nimport { parentPort } from 'worker_threads';\nimport * as crypto from 'crypto';\nimport * as zlib from 'zlib';\nimport { promisify } from 'util';\nimport { resolveUserPackage, isPackageAvailable } from '../utilities/package-utils.js';\n\n// Optional isolated-vm for true V8 isolate sandboxing of JSON transforms\nlet isolatedVM: any = null;\nconst isolatedVMAvailable = isPackageAvailable('isolated-vm');\nlet jsonTransformWarningShown = false;\n\n// Optional JWT import (may not be available)\nlet jwt: any = null;\nconst jwtAvailable = isPackageAvailable('jsonwebtoken');\n\nconst gzip = promisify(zlib.gzip);\nconst gunzip = promisify(zlib.gunzip);\n\n// Import task types\nimport { WorkerTask, WorkerResult, WORKER_TASKS } from './worker-manager.js';\n\n/**\n * Execute a worker task\n */\nasync function executeTask(task: WorkerTask): Promise<WorkerResult> {\n const startTime = Date.now();\n\n try {\n let result: any;\n\n switch (task.type) {\n case WORKER_TASKS.JWT_VERIFY:\n result = await handleJWTVerify(task.data);\n break;\n\n case WORKER_TASKS.JWT_SIGN:\n result = await handleJWTSign(task.data);\n break;\n\n case WORKER_TASKS.CRYPTO_HASH:\n result = await handleCryptoHash(task.data);\n break;\n\n case WORKER_TASKS.CRYPTO_ENCRYPT:\n result = await handleCryptoEncrypt(task.data);\n break;\n\n case WORKER_TASKS.CRYPTO_DECRYPT:\n result = await handleCryptoDecrypt(task.data);\n break;\n\n case WORKER_TASKS.DATA_COMPRESS:\n result = await handleDataCompress(task.data);\n break;\n\n case WORKER_TASKS.DATA_DECOMPRESS:\n result = await handleDataDecompress(task.data);\n break;\n\n case WORKER_TASKS.HEAVY_COMPUTATION:\n result = await handleHeavyComputation(task.data);\n break;\n\n case WORKER_TASKS.JSON_TRANSFORM:\n result = await handleJSONTransform(task.data);\n break;\n\n default:\n throw new Error(`Unknown task type: ${task.type}`);\n }\n\n return {\n taskId: task.id,\n success: true,\n data: result,\n executionTime: Date.now() - startTime,\n };\n } catch (error) {\n return {\n taskId: task.id,\n success: false,\n error: error instanceof Error ? error.message : String(error),\n executionTime: Date.now() - startTime,\n };\n }\n}\n\n/**\n * JWT verification handler\n */\nasync function handleJWTVerify(data: {\n token: string;\n secret: string;\n options?: any;\n}): Promise<any> {\n if (!jwtAvailable) {\n throw new Error(\n 'JWT verification requires the \"jsonwebtoken\" package. Please install it with: npm install jsonwebtoken @types/jsonwebtoken'\n );\n }\n\n // Lazy load JWT if needed\n if (!jwt) {\n const jwtPath = resolveUserPackage('jsonwebtoken');\n jwt = await import(jwtPath);\n }\n\n const { token, secret, options } = data;\n return jwt.verify(token, secret, options);\n}\n\n/**\n * JWT signing handler\n */\nasync function handleJWTSign(data: {\n payload: any;\n secret: string;\n options?: any;\n}): Promise<string> {\n if (!jwtAvailable) {\n throw new Error(\n 'JWT signing requires the \"jsonwebtoken\" package. Please install it with: npm install jsonwebtoken @types/jsonwebtoken'\n );\n }\n\n // Lazy load JWT if needed\n if (!jwt) {\n const jwtPath = resolveUserPackage('jsonwebtoken');\n jwt = await import(jwtPath);\n }\n\n const { payload, secret, options } = data;\n return jwt.sign(payload, secret, options);\n}\n\n/**\n * Crypto hash handler\n */\nasync function handleCryptoHash(data: { data: string; algorithm?: string }): Promise<string> {\n const { data: inputData, algorithm = 'sha256' } = data;\n return crypto.createHash(algorithm).update(inputData).digest('hex');\n}\n\n/**\n * Crypto encryption handler\n * When no IV is provided, auto-generates a random 16-byte IV and prepends it to the output.\n */\nasync function handleCryptoEncrypt(data: {\n data: string;\n algorithm?: string;\n key: string;\n iv?: string;\n}): Promise<string> {\n const { data: inputData, algorithm = 'aes-256-cbc', key, iv } = data;\n\n let effectiveIv: Buffer;\n let prependIv = false;\n\n if (iv) {\n effectiveIv = Buffer.from(iv, 'hex');\n } else {\n // Auto-generate random IV for security — prepend to output for extraction during decryption\n effectiveIv = crypto.randomBytes(16);\n prependIv = true;\n }\n\n const cipher = crypto.createCipheriv(algorithm, key, effectiveIv);\n let encrypted = cipher.update(inputData, 'utf8', 'hex');\n encrypted += cipher.final('hex');\n\n // Prepend IV to ciphertext so decryption can extract it\n if (prependIv) {\n return effectiveIv.toString('hex') + ':' + encrypted;\n }\n return encrypted;\n}\n\n/**\n * Crypto decryption handler\n * Supports both formats:\n * - New format: \"iv_hex:ciphertext_hex\" (IV prepended, separated by colon)\n * - Legacy format: raw ciphertext_hex (falls back to zero IV for backward compatibility)\n */\nasync function handleCryptoDecrypt(data: {\n data: string;\n algorithm?: string;\n key: string;\n iv?: string;\n}): Promise<string> {\n const { data: encryptedData, algorithm = 'aes-256-cbc', key, iv } = data;\n\n let effectiveIv: Buffer;\n let ciphertext: string;\n\n if (iv) {\n // Explicit IV provided\n effectiveIv = Buffer.from(iv, 'hex');\n ciphertext = encryptedData;\n } else if (encryptedData.includes(':')) {\n // New format: extract prepended IV\n const colonIndex = encryptedData.indexOf(':');\n effectiveIv = Buffer.from(encryptedData.substring(0, colonIndex), 'hex');\n ciphertext = encryptedData.substring(colonIndex + 1);\n } else {\n // Legacy format: fall back to zero IV for backward compatibility\n effectiveIv = Buffer.alloc(16, 0);\n ciphertext = encryptedData;\n }\n\n const decipher = crypto.createDecipheriv(algorithm, key, effectiveIv);\n let decrypted = decipher.update(ciphertext, 'hex', 'utf8');\n decrypted += decipher.final('utf8');\n return decrypted;\n}\n\n/**\n * Data compression handler\n */\nasync function handleDataCompress(data: {\n input: string | Buffer;\n format?: 'gzip' | 'deflate';\n}): Promise<Buffer> {\n const { input, format = 'gzip' } = data;\n\n if (format === 'gzip') {\n return gzip(Buffer.from(input));\n } else {\n return new Promise((resolve, reject) => {\n zlib.deflate(Buffer.from(input), (error, result) => {\n if (error) reject(error);\n else resolve(result);\n });\n });\n }\n}\n\n/**\n * Data decompression handler\n */\nasync function handleDataDecompress(data: {\n input: Buffer;\n format?: 'gzip' | 'deflate';\n}): Promise<Buffer> {\n const { input, format = 'gzip' } = data;\n\n if (format === 'gzip') {\n return gunzip(input);\n } else {\n return new Promise((resolve, reject) => {\n zlib.inflate(input, (error, result) => {\n if (error) reject(error);\n else resolve(result);\n });\n });\n }\n}\n\n/**\n * Heavy computation handler\n */\nasync function handleHeavyComputation(data: any): Promise<any> {\n // This is a placeholder for heavy computation tasks\n // In real applications, this could be:\n // - Complex mathematical calculations\n // - Data processing pipelines\n // - Image processing\n // - Machine learning inference\n // - Large dataset transformations\n\n // Simulate heavy computation\n if (Array.isArray(data)) {\n // Simulate processing a large array\n const result = [];\n for (let i = 0; i < data.length; i++) {\n // Simulate CPU-intensive operation\n let sum = 0;\n for (let j = 0; j < 1000; j++) {\n sum += Math.sin(i) * Math.cos(j) + Math.sqrt(i + j);\n }\n result.push(sum);\n }\n return result;\n }\n\n if (typeof data === 'object' && data.iterations) {\n // Simulate configurable heavy computation\n let result = 0;\n for (let i = 0; i < (data.iterations || 1000000); i++) {\n result += Math.pow(Math.sin(i), 2) + Math.pow(Math.cos(i), 2);\n }\n return { result, iterations: data.iterations };\n }\n\n return data; // Echo back if not recognized\n}\n\n/**\n * Dangerous globals that must be shadowed to prevent access from transformer code.\n * Passed as explicit undefined parameters to new Function() so they shadow the real globals.\n *\n * IMPORTANT: Shadowing alone is NOT sufficient — attackers can bypass it via the prototype\n * chain (e.g., [].constructor.constructor('return process')()). The blocklist patterns\n * below are the primary defense; shadowing is defense-in-depth.\n */\nconst DANGEROUS_GLOBALS = [\n // Node.js core\n 'process',\n 'require',\n 'global',\n 'globalThis',\n 'Buffer',\n 'module',\n // Code execution\n 'eval',\n 'Function',\n // File/module paths\n '__dirname',\n '__filename',\n // Network/IO\n 'fetch',\n 'XMLHttpRequest',\n 'WebSocket',\n // Dynamic import\n 'import',\n // Timer functions (can accept string code like eval)\n 'setTimeout',\n 'setInterval',\n 'setImmediate',\n // Reflection/proxy (can be used to bypass restrictions)\n 'Proxy',\n 'Reflect',\n // Worker thread globals (this file runs in a worker)\n 'parentPort',\n 'workerData',\n // Advanced APIs\n 'WebAssembly',\n 'SharedArrayBuffer',\n];\n\n/**\n * Blocklist patterns that indicate potentially malicious transformer code.\n *\n * These are checked BEFORE execution and are the primary security layer.\n * The prototype chain bypass ([].constructor.constructor) is the #1 attack vector\n * against global shadowing, so we block access to prototype chain navigation.\n */\nconst DANGEROUS_IDENTIFIER_PATTERNS = DANGEROUS_GLOBALS.map(g => new RegExp(`\\\\b${g}\\\\b`));\n\n/**\n * Structural patterns that indicate prototype chain attacks or other bypass attempts.\n * These catch attacks like [].constructor.constructor('return process')().\n */\nconst DANGEROUS_STRUCTURAL_PATTERNS: Array<{ pattern: RegExp; description: string }> = [\n // Prototype chain navigation — the #1 bypass for global shadowing\n // [].constructor.constructor, ''.constructor, ({}).constructor, etc.\n { pattern: /\\.constructor\\b/, description: 'prototype chain access (.constructor)' },\n { pattern: /\\.__proto__\\b/, description: 'prototype chain access (__proto__)' },\n { pattern: /\\.prototype\\b/, description: 'prototype access (.prototype)' },\n // Object reflection methods that can navigate the prototype chain\n { pattern: /\\bgetPrototypeOf\\b/, description: 'prototype chain navigation (getPrototypeOf)' },\n { pattern: /\\bdefineProperty\\b/, description: 'property definition (defineProperty)' },\n { pattern: /\\bsetPrototypeOf\\b/, description: 'prototype mutation (setPrototypeOf)' },\n // Bracket notation with dangerous identifiers — catches obj['constructor'], obj[\"__proto__\"], etc.\n // Narrowly targeted: allows legitimate bracket access like data['first-name'] or ['a','b'] arrays\n {\n pattern:\n /\\[\\s*['\"`]\\s*(constructor|__proto__|prototype|process|require|global|globalThis|eval|Function|import|module|exports|parentPort|workerData)\\s*['\"`]\\s*\\]/,\n description: 'bracket notation access to blocked identifier',\n },\n // String concatenation tricks to reassemble blocked identifiers dynamically\n { pattern: /\\bString\\.fromCharCode\\b/, description: 'dynamic string construction' },\n // Async patterns that could be used for deferred execution\n { pattern: /\\bawait\\b/, description: 'async execution (await)' },\n { pattern: /\\bnew\\s+Promise\\b/, description: 'promise construction' },\n];\n\n/**\n * Validates that transformer code looks like a function expression (arrow or function keyword).\n * Rejects arbitrary statements, assignments to globals, etc.\n */\nfunction validateTransformerShape(code: string): void {\n const trimmed = code.trim();\n\n // Must look like a function expression: starts with ( for arrow/grouped, function keyword,\n // or a single identifier followed by => (arrow shorthand like \"data => data.x\")\n const isArrowShorthand = /^[a-zA-Z_$][a-zA-Z0-9_$]*\\s*=>/.test(trimmed);\n const isArrowParens = trimmed.startsWith('(');\n const isFunctionKeyword = trimmed.startsWith('function');\n\n if (!isArrowShorthand && !isArrowParens && !isFunctionKeyword) {\n throw new Error(\n 'Transformer must be a function expression (arrow function or function keyword)'\n );\n }\n}\n\n/**\n * Checks transformer code against blocklist of dangerous identifiers and structural patterns.\n *\n * Layer 1: Block known dangerous global identifiers (process, require, etc.)\n * Layer 2: Block prototype chain navigation (.constructor, __proto__, etc.)\n * Layer 3: Block bracket notation string access (obj['constructor'] bypass)\n */\nfunction checkDangerousPatterns(code: string): void {\n // Check dangerous global identifiers\n for (let i = 0; i < DANGEROUS_IDENTIFIER_PATTERNS.length; i++) {\n if (DANGEROUS_IDENTIFIER_PATTERNS[i]?.test(code)) {\n throw new Error(\n `Transformer code contains blocked identifier: \"${DANGEROUS_GLOBALS[i]}\". ` +\n 'Transformer functions must be pure data transforms without access to Node.js internals.'\n );\n }\n }\n\n // Check structural bypass patterns (prototype chain, bracket notation, etc.)\n for (const { pattern, description } of DANGEROUS_STRUCTURAL_PATTERNS) {\n if (pattern.test(code)) {\n throw new Error(\n `Transformer code contains blocked pattern: ${description}. ` +\n 'Transformer functions must be pure data transforms using only dot notation on the data parameter.'\n );\n }\n }\n}\n\n/**\n * Execute a transformer in a true V8 isolate sandbox using isolated-vm.\n * This is the secure path — complete memory and CPU isolation.\n *\n * The isolate has no access to Node.js APIs (process, require, fs, etc.)\n * and is limited to 128MB memory with a 10s execution timeout.\n *\n * @see https://www.npmjs.com/package/isolated-vm\n */\nasync function executeInIsolate(inputData: any, transformerCode: string): Promise<any> {\n if (!isolatedVM) {\n const ivmPath = resolveUserPackage('isolated-vm');\n isolatedVM = await import(ivmPath);\n // Handle both default and named exports\n if (isolatedVM.default) {\n isolatedVM = isolatedVM.default;\n }\n }\n\n const isolate = new isolatedVM.Isolate({ memoryLimit: 128 });\n try {\n const context = await isolate.createContext();\n const jail = context.global;\n\n // Copy input data into the isolate via ExternalCopy (deep copy, no shared references).\n // .copyInto() produces a transferable value that can be set on the isolate's global.\n await jail.set('__inputData', new isolatedVM.ExternalCopy(inputData).copyInto());\n\n // Compile the transformer script for execution in the isolate\n const script = await isolate.compileScript(`'use strict'; (${transformerCode})(__inputData);`);\n\n // Execute with timeout and copy the result back out of the isolate.\n // { copy: true } ensures complex objects (arrays, nested objects) are\n // deep-copied back — without it, only primitives transfer.\n const result = await script.run(context, { timeout: 10000, copy: true });\n\n return result;\n } finally {\n isolate.dispose();\n }\n}\n\n/**\n * Execute a transformer using the hardened new Function() path.\n * This is NOT a true sandbox — it is defense-in-depth hardening only.\n */\nfunction executeHardened(inputData: any, transformerCode: string): any {\n // Layer 1: Validate the code looks like a function expression\n validateTransformerShape(transformerCode);\n\n // Layer 2: Check for dangerous global identifiers and structural patterns\n checkDangerousPatterns(transformerCode);\n\n // Layer 3: Create function with dangerous globals explicitly shadowed as undefined\n const transformer = new Function(\n 'data',\n ...DANGEROUS_GLOBALS,\n `'use strict'; return (${transformerCode})(data);`\n );\n\n // Execute with all dangerous globals set to undefined\n return transformer(inputData, ...DANGEROUS_GLOBALS.map(() => undefined));\n}\n\n/**\n * JSON transformation handler.\n *\n * Security model (two paths):\n * 1. If `isolated-vm` is installed: uses a true V8 isolate with memory/CPU limits.\n * This is a real sandbox — the transformer cannot access Node.js APIs.\n * 2. Otherwise: uses a hardened new Function() with layered defenses (shape validation,\n * blocklist, global shadowing, strict mode). This blocks common attacks but is NOT\n * a true sandbox. Do not use this path with untrusted user-provided transformer code.\n *\n * To enable the secure path:\n * npm install isolated-vm\n */\nasync function handleJSONTransform(data: { data: any; transformer: string }): Promise<any> {\n const { data: inputData, transformer: transformerCode } = data;\n\n try {\n if (isolatedVMAvailable) {\n return await executeInIsolate(inputData, transformerCode);\n }\n\n // Hardened fallback — emit a one-time warning\n if (!jsonTransformWarningShown) {\n jsonTransformWarningShown = true;\n // eslint-disable-next-line no-console -- one-time security notice in worker thread\n console.warn(\n '[MoroJS Security] transformJSON is using the hardened fallback (new Function). ' +\n 'This is NOT a secure sandbox for untrusted code. If the transformer or data ' +\n 'originates from user input, install isolated-vm for true V8 isolate sandboxing:\\n' +\n ' npm install isolated-vm\\n' +\n 'See: https://www.npmjs.com/package/isolated-vm'\n );\n }\n\n return executeHardened(inputData, transformerCode);\n } catch (error) {\n throw new Error(\n `Invalid transformer function: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n}\n\n// Worker thread message handling\nif (parentPort) {\n parentPort.on('message', (task: WorkerTask) => {\n void (async () => {\n const result = await executeTask(task);\n\n if (parentPort) {\n parentPort.postMessage(result);\n }\n })();\n });\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { Moro, Moro as MoroCore, createApp, createAppNode, createAppEdge, create
2
2
  export type { MoroOptions } from './core/framework.js';
3
3
  export type { AuthOptions, AuthProvider, AuthUser, AuthSession, AuthRequest, AuthAccount, AuthJWT, AuthCallbacks, AuthEvents, AuthPages, AuthAdapter, OAuthProvider, CredentialsProvider, EmailProvider, SignInOptions, SignOutOptions, } from './types/auth.js';
4
4
  export { createAuthMiddleware, MoroJSAuth } from './core/auth/morojs-adapter.js';
5
- export { auth, providers, twoFactor, organization, anonymous, accountLinking, rateLimit, bearerToken, } from './core/middleware/built-in/auth/index.js';
5
+ export { auth, providers, twoFactor, organization, anonymous, accountLinking, rateLimit, bearerToken, requireAuth, requireRole, requirePermission, requireAdmin, authUtils, authResponses, extendedProviders, enterpriseProviders, } from './core/middleware/built-in/auth/index.js';
6
6
  export type { TwoFactorAuthOptions, OrganizationOptions, AnonymousOptions, AccountLinkingOptions, RateLimitOptions, BearerTokenOptions, } from './core/middleware/built-in/auth/index.js';
7
7
  export type { RuntimeType, RuntimeAdapter, RuntimeConfig, RuntimeHttpResponse, } from './types/runtime.js';
8
8
  export { NodeRuntimeAdapter, VercelEdgeAdapter, AWSLambdaAdapter, CloudflareWorkersAdapter, createRuntimeAdapter, createNodeHandler, createEdgeHandler, createLambdaHandler, createWorkerHandler, } from './core/runtime/index.js';
package/dist/index.js CHANGED
@@ -3,7 +3,10 @@ export { Moro, Moro as MoroCore, createApp, createAppNode, createAppEdge, create
3
3
  // Export native @auth/morojs adapter
4
4
  export { createAuthMiddleware, MoroJSAuth } from './core/auth/morojs-adapter.js';
5
5
  // Export Auth middleware and providers
6
- export { auth, providers, twoFactor, organization, anonymous, accountLinking, rateLimit, bearerToken, } from './core/middleware/built-in/auth/index.js';
6
+ export { auth, providers, twoFactor, organization, anonymous, accountLinking, rateLimit, bearerToken,
7
+ // Route guards and helpers (referenced by the auth docs as package-root
8
+ // imports; must be re-exported here to be part of the public API).
9
+ requireAuth, requireRole, requirePermission, requireAdmin, authUtils, authResponses, extendedProviders, enterpriseProviders, } from './core/middleware/built-in/auth/index.js';
7
10
  export { NodeRuntimeAdapter, VercelEdgeAdapter, AWSLambdaAdapter, CloudflareWorkersAdapter, createRuntimeAdapter, createNodeHandler, createEdgeHandler, createLambdaHandler, createWorkerHandler, } from './core/runtime/index.js';
8
11
  // Core exports
9
12
  export { MoroHttpServer, UWebSocketsHttpServer, MoroEngineServer } from './core/http/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EACL,IAAI,EACJ,IAAI,IAAI,QAAQ,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,MAAM,EACN,UAAU,GACX,MAAM,WAAW,CAAC;AAwBnB,qCAAqC;AACrC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEjF,uCAAuC;AACvC,OAAO,EACL,IAAI,EACJ,SAAS,EACT,SAAS,EACT,YAAY,EACZ,SAAS,EACT,cAAc,EACd,SAAS,EACT,WAAW,GACZ,MAAM,0CAA0C,CAAC;AAkBlD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AAUjC,eAAe;AACf,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE1F,oBAAoB;AACpB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG/E,iCAAiC;AACjC,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,SAAS,EACT,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB;AACjB,wDAAwD;AACxD,QAAQ,EACR,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAUnC,eAAe;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAYtD,gBAAgB;AAChB,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEvE,8BAA8B;AAC9B,OAAO,EACL,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,MAAM,EACN,cAAc,EACd,CAAC,EACD,qBAAqB,EACrB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAmBpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,eAAe,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEhG,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AAcjC,8BAA8B;AAC9B,OAAO,EACL,eAAe,EACf,SAAS,EACT,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAE7C,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAa7F,uBAAuB;AACvB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EACzB,iCAAiC,GAClC,MAAM,sBAAsB,CAAC;AAG9B,0BAA0B;AAC1B,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,cAAc,EACd,MAAM,EACN,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AA6BhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAEjF,wEAAwE;AACxE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,+CAA+C,CAAC;AAEvD,aAAa;AACb,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,YAAY,EACZ,SAAS,EACT,SAAS,GACV,MAAM,sBAAsB,CAAC;AAmB9B,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,eAAe;AACf,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAC;AAEpF,gFAAgF;AAChF,mEAAmE;AACnE,0EAA0E;AAC1E,OAAO,EAAE,YAAY,EAAE,YAAY,IAAI,MAAM,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAanG,WAAW;AACX,cAAc,oDAAoD,CAAC;AACnE,cAAc,kDAAkD,CAAC;AACjE,cAAc,mCAAmC,CAAC;AAqClD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,kBAAkB;AAClB,OAAO,EACL,QAAQ,EACR,qBAAqB,EACrB,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAoB9B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// MoroJS Framework - Main Entry Point\nexport {\n Moro,\n Moro as MoroCore,\n createApp,\n createAppNode,\n createAppEdge,\n createAppLambda,\n createAppWorker,\n getApp,\n RouteGroup,\n} from './moro.js';\n\nexport type { MoroOptions } from './core/framework.js';\n\n// Export auth types and middleware\nexport type {\n AuthOptions,\n AuthProvider,\n AuthUser,\n AuthSession,\n AuthRequest,\n AuthAccount,\n AuthJWT,\n AuthCallbacks,\n AuthEvents,\n AuthPages,\n AuthAdapter,\n OAuthProvider,\n CredentialsProvider,\n EmailProvider,\n SignInOptions,\n SignOutOptions,\n} from './types/auth.js';\n\n// Export native @auth/morojs adapter\nexport { createAuthMiddleware, MoroJSAuth } from './core/auth/morojs-adapter.js';\n\n// Export Auth middleware and providers\nexport {\n auth,\n providers,\n twoFactor,\n organization,\n anonymous,\n accountLinking,\n rateLimit,\n bearerToken,\n // Route guards and helpers (referenced by the auth docs as package-root\n // imports; must be re-exported here to be part of the public API).\n requireAuth,\n requireRole,\n requirePermission,\n requireAdmin,\n authUtils,\n authResponses,\n extendedProviders,\n enterpriseProviders,\n} from './core/middleware/built-in/auth/index.js';\nexport type {\n TwoFactorAuthOptions,\n OrganizationOptions,\n AnonymousOptions,\n AccountLinkingOptions,\n RateLimitOptions,\n BearerTokenOptions,\n} from './core/middleware/built-in/auth/index.js';\n\n// Runtime system exports\nexport type {\n RuntimeType,\n RuntimeAdapter,\n RuntimeConfig,\n RuntimeHttpResponse,\n} from './types/runtime.js';\n\nexport {\n NodeRuntimeAdapter,\n VercelEdgeAdapter,\n AWSLambdaAdapter,\n CloudflareWorkersAdapter,\n createRuntimeAdapter,\n createNodeHandler,\n createEdgeHandler,\n createLambdaHandler,\n createWorkerHandler,\n} from './core/runtime/index.js';\n\n// Runtime-specific types\nexport type {\n LambdaEvent,\n LambdaContext,\n LambdaResponse,\n} from './core/runtime/aws-lambda-adapter.js';\nexport type { WorkersEnv, WorkersContext } from './core/runtime/cloudflare-workers-adapter.js';\n\n// Core exports\nexport { MoroHttpServer, UWebSocketsHttpServer, MoroEngineServer } from './core/http/index.js';\nexport { builtInMiddleware, simpleMiddleware } from './core/middleware/built-in/index.js';\n\n// Networking System\nexport { WebSocketManager, ServiceRegistry } from './core/networking/index.js';\nexport type { ServiceInfo, ServiceDiscoveryOptions } from './core/networking/service-discovery.js';\n\n// Utilities and Container System\nexport {\n Container,\n FunctionalContainer,\n TypedServiceReference,\n ServiceScope,\n ServiceLifecycle,\n withLogging,\n withCaching,\n withRetry,\n withTimeout,\n CircuitBreaker,\n HookManager,\n HOOK_EVENTS,\n middleware,\n isPackageAvailable,\n resolveUserPackage,\n createUserRequire,\n // Standardized Response Helpers (namespace object only)\n response,\n ResponseBuilder,\n} from './core/utilities/index.js';\n\n// Response helper types\nexport type {\n ApiSuccessResponse,\n ApiErrorResponse,\n ApiResponse,\n ResponseValidationErrorDetail,\n} from './core/utilities/index.js';\n\n// Event System\nexport { MoroEventBus } from './core/events/index.js';\nexport type {\n EventContext,\n EventPayload,\n EventBusOptions,\n ModuleEventBus,\n GlobalEventBus,\n EventMetrics,\n SystemEvents,\n EventHandler,\n} from './types/events.js';\n\n// Logger System\nexport { createFrameworkLogger, logger } from './core/logger/index.js';\n\n// Universal Validation System\nexport {\n validate,\n body,\n query,\n params,\n combineSchemas,\n z,\n handleValidationError,\n normalizeErrors,\n} from './core/validation/index.js';\n\nexport type {\n ValidationConfig,\n ValidationResult,\n ValidationErrorDetail,\n ValidatedRequest,\n ValidationErrorHandler,\n ValidationErrorContext,\n ValidationErrorResponse,\n ValidationErrorDetailType,\n} from './core/validation/index.js';\n\n// Validation Interfaces and Adapters\nexport type {\n ValidationSchema,\n ValidationError,\n InferSchemaType,\n} from './core/validation/schema-interface.js';\nexport { normalizeValidationError } from './core/validation/schema-interface.js';\nexport { joi, yup, fn as customValidator, classValidator } from './core/validation/adapters.js';\n\n// Module System\nexport {\n defineModule,\n ModuleLoader,\n ModuleDiscovery,\n autoDiscoverModuleDirectories,\n} from './core/modules/index.js';\nexport type { ModuleDefinition, ModuleRoute, ModuleSocket, ModuleConfig } from './types/module.js';\n\n// WebSocket Adapter System\nexport type {\n WebSocketAdapter,\n WebSocketAdapterOptions,\n WebSocketNamespace,\n WebSocketConnection,\n WebSocketEmitter,\n WebSocketMiddleware,\n WebSocketEventHandler,\n} from './core/networking/websocket-adapter.js';\n\n// Built-in WebSocket Adapters\nexport {\n SocketIOAdapter,\n WSAdapter,\n UWebSocketsAdapter,\n} from './core/networking/adapters/index.js';\n\n// Intelligent Routing System\nexport { createRoute, defineRoute, EXECUTION_PHASES } from './core/routing/index.js';\nexport { IntelligentRoutingManager, RouteRegistry } from './core/routing/app-integration.js';\nexport type {\n RouteBuilder,\n RouteSchema,\n CompiledRoute,\n HttpMethod,\n AuthConfig,\n RateLimitConfig,\n CacheConfig,\n MiddlewarePhases,\n ExecutionPhase,\n} from './core/routing/index.js';\n\n// Documentation System\nexport {\n DocumentationSystem,\n AppDocumentationManager,\n createDocumentationSystem,\n generateDocsFromIntelligentRoutes,\n} from './core/docs/index.js';\nexport type { DocsConfig } from './core/docs/index.js';\n\n// Configuration utilities\nexport {\n getConfig,\n createModuleConfig,\n getEnvVar,\n getEnvArray,\n getEnvJson,\n isDevelopment,\n isProduction,\n isStaging,\n requireEnvVars,\n envVar,\n getConfigValue,\n} from './core/config/utils.js';\n\nexport {\n initializeConfig,\n getGlobalConfig,\n isConfigInitialized,\n resetConfig,\n} from './core/config/index.js';\n\n// Export configuration types for TypeScript users\nexport type { AppConfig, DeepPartial, OriginFunction } from './core/config/index.js';\n\n// GraphQL System - Only export types and adapter\n// The core classes are lazy-loaded internally via app.graphqlInit()\nexport type {\n GraphQLContext,\n GraphQLResolver,\n GraphQLSubscriptionResolver,\n GraphQLSchemaBuilderOptions,\n GraphQLResolvers,\n GraphQLExecutionOptions,\n GraphQLOptions,\n GraphQLPlugin,\n GraphQLRequestContext,\n GraphQLRequestListener,\n GraphQLRequest,\n GraphQLResponse,\n GraphQLMetrics,\n GraphQLSubscriptionOptions,\n DataLoaderOptions,\n ComplexityEstimator,\n QueryComplexityOptions,\n DepthLimitOptions,\n} from './core/graphql/types.js';\n\nexport type { GraphQLAdapter, GraphQLStats } from './core/graphql/adapter.js';\nexport { GraphQLJsAdapter } from './core/graphql/adapters/graphql-js-adapter.js';\n\n// GraphQL helpers (these don't import graphql directly at module level)\nexport {\n createPothosBuilder,\n isPothosAvailable,\n isPothosSchema,\n pothosToSchema,\n createComplexityPlugin,\n createDepthLimitPlugin,\n createDataLoader,\n} from './core/middleware/built-in/graphql/helpers.js';\n\n// Job System\nexport {\n JobScheduler,\n JobHealthChecker,\n CronParser,\n parseInterval,\n formatDuration,\n everyInterval,\n cronSchedule,\n oneTimeAt,\n createJob,\n} from './core/jobs/index.js';\n\nexport type {\n JobSchedule,\n JobOptions,\n SimpleJobOptions,\n JobFunction,\n JobMetrics,\n SchedulerStats,\n JobHealth,\n JobHealthStatus,\n JobContext,\n JobExecution,\n JobState,\n JobSchedulerOptions,\n ExecutionContext,\n ExecutionResult,\n} from './core/jobs/index.js';\n\n// Middleware System\nexport { MiddlewareManager } from './core/middleware/index.js';\nexport type { MiddlewareInterface, MoroMiddleware } from './core/middleware/index.js';\n\n// Body parsers\nexport { json, urlencoded } from './core/middleware/built-in/body-parsers/index.js';\n\n// Standalone router — `createRouter()` is the canonical factory; `Router` is an\n// alias kept callable without `new` so Express-style named imports\n// (`import { Router } from '...'`; `const r = Router();`) work unchanged.\nexport { createRouter, createRouter as Router, MoroRouter } from './core/routing/create-router.js';\n\n// Types\nexport type * from './types/core.js';\nexport type * from './types/http.js';\nexport type * from './types/hooks.js';\nexport type * from './types/cache.js';\nexport type * from './types/cdn.js';\nexport type * from './types/database.js';\nexport type * from './types/logger.js';\nexport type * from './types/session.js';\nexport type * from './types/discovery.js';\n\n// Adapters\nexport * from './core/middleware/built-in/cache/adapters/index.js';\nexport * from './core/middleware/built-in/cdn/adapters/index.js';\nexport * from './core/database/adapters/index.js';\n\n// Re-export commonly used types for convenience\nexport type { CacheAdapter, CacheOptions, CacheStrategy } from './types/cache.js';\nexport type { CDNAdapter, CDNOptions } from './types/cdn.js';\nexport type { DatabaseAdapter, DatabaseTransaction, DatabaseConfig } from './types/database.js';\nexport type { CookieOptions } from './types/http.js';\n\n// gRPC System - Lazy loaded, only types exported\nexport type {\n GrpcOptions,\n GrpcCall,\n GrpcCallback,\n GrpcMetadata,\n GrpcError,\n GrpcStatusCode,\n GrpcCredentials,\n GrpcServer,\n GrpcClient,\n GrpcClientOptions,\n GrpcInterceptor,\n ServiceImplementation,\n ServiceDefinition,\n ServiceRegistration,\n MethodDefinition,\n UnaryHandler,\n ServerStreamingHandler,\n ClientStreamingHandler,\n BidirectionalStreamingHandler,\n GrpcHandler,\n GrpcStats,\n HealthCheckStatus,\n HealthCheckResponse,\n ProtoLoadOptions,\n} from './core/grpc/types.js';\n\nexport type { GrpcAdapter } from './core/grpc/grpc-adapter.js';\nexport { GrpcJsAdapter } from './core/grpc/adapters/index.js';\n\n// gRPC Middleware\nexport {\n grpcAuth,\n grpcRequirePermission,\n grpcRequireRole,\n extractTokenFromMetadata,\n grpcLogger,\n grpcSimpleLogger,\n grpcDetailedLogger,\n grpcValidate,\n grpcValidateHandler,\n} from './core/grpc/index.js';\n\n// Mail System - Lazy loaded, only types exported\nexport type {\n MailConfig,\n MailOptions,\n MailResult,\n MailAdapter,\n MailAdapterType,\n EmailAddress,\n EmailAttachment,\n TemplateConfig,\n TemplateEngine,\n MailQueueConfig,\n NodemailerConnection,\n SendGridConnection,\n SESConnection,\n ResendConnection,\n} from './core/mail/types.js';\n\nexport { BaseMailAdapter } from './core/mail/mail-adapter.js';\nexport {\n ConsoleAdapter,\n NodemailerAdapter,\n SendGridAdapter,\n SESAdapter,\n ResendAdapter,\n} from './core/mail/adapters/index.js';\n"]}
package/dist/moro.d.ts CHANGED
@@ -258,6 +258,23 @@ export declare class Moro extends EventEmitter {
258
258
  * Gracefully close the application and clean up resources
259
259
  * This should be called in tests and during shutdown
260
260
  */
261
+ private shutdownHandlersRegistered;
262
+ private isShuttingDown;
263
+ private processListeners;
264
+ private static activeInstances;
265
+ private static globalSignalsInstalled;
266
+ private static globalShuttingDown;
267
+ private static installGlobalShutdownSignals;
268
+ /**
269
+ * Enable graceful shutdown for this instance. SIGINT/SIGTERM (Ctrl-C) drain
270
+ * in-flight work via close() by default; a second signal force-exits. Opt out
271
+ * with `server.gracefulShutdown: false` (e.g. when the host app owns signals).
272
+ * Uncaught-error draining is separate and opt-in (`server.handleUncaught`).
273
+ */
274
+ private registerProcessShutdownHandlers;
275
+ private drainAndExit;
276
+ /** Deregister this instance from process shutdown handling (called by close()). */
277
+ private removeProcessShutdownHandlers;
261
278
  close(): Promise<void>;
262
279
  /**
263
280
  * Register a background job with cron or interval schedule
@@ -318,7 +335,7 @@ export declare class Moro extends EventEmitter {
318
335
  stats: SchedulerStats;
319
336
  jobs: JobHealth[];
320
337
  unhealthyJobCount: number;
321
- message?: string;
338
+ message?: string | undefined;
322
339
  } | {
323
340
  status: "unknown";
324
341
  message: string;
package/dist/moro.js CHANGED
@@ -242,21 +242,29 @@ export class Moro extends EventEmitter {
242
242
  // Default to enabled (true) unless explicitly disabled
243
243
  const jobsEnabled = this.config.jobs?.enabled !== false && options.jobs?.enabled !== false;
244
244
  if (jobsEnabled) {
245
- const leaderElectionOptions = this.config.jobs?.leaderElection?.enabled !== false
245
+ const le = this.config.jobs?.leaderElection;
246
+ const leaderElectionOptions = le?.enabled !== false
246
247
  ? {
247
- strategy: this.config.jobs?.leaderElection?.strategy ?? 'file',
248
- lockPath: this.config.jobs?.leaderElection?.lockPath,
249
- lockTimeout: this.config.jobs?.leaderElection?.lockTimeout,
250
- heartbeatInterval: this.config.jobs?.leaderElection?.heartbeatInterval,
248
+ strategy: le?.strategy ?? 'file',
249
+ ...(le?.lockPath !== undefined ? { lockPath: le.lockPath } : {}),
250
+ ...(le?.lockTimeout !== undefined ? { lockTimeout: le.lockTimeout } : {}),
251
+ ...(le?.heartbeatInterval !== undefined
252
+ ? { heartbeatInterval: le.heartbeatInterval }
253
+ : {}),
251
254
  }
252
255
  : undefined;
256
+ const jobs = this.config.jobs;
253
257
  const jobSchedulerOptions = {
254
- maxConcurrentJobs: this.config.jobs?.maxConcurrentJobs,
255
- enableLeaderElection: this.config.jobs?.leaderElection?.enabled !== false,
256
- leaderElection: leaderElectionOptions,
257
- executor: this.config.jobs?.executor,
258
- stateManager: this.config.jobs?.stateManager,
259
- gracefulShutdownTimeout: this.config.jobs?.gracefulShutdownTimeout,
258
+ enableLeaderElection: jobs?.leaderElection?.enabled !== false,
259
+ ...(jobs?.maxConcurrentJobs !== undefined
260
+ ? { maxConcurrentJobs: jobs.maxConcurrentJobs }
261
+ : {}),
262
+ ...(leaderElectionOptions !== undefined ? { leaderElection: leaderElectionOptions } : {}),
263
+ ...(jobs?.executor !== undefined ? { executor: jobs.executor } : {}),
264
+ ...(jobs?.stateManager !== undefined ? { stateManager: jobs.stateManager } : {}),
265
+ ...(jobs?.gracefulShutdownTimeout !== undefined
266
+ ? { gracefulShutdownTimeout: jobs.gracefulShutdownTimeout }
267
+ : {}),
260
268
  };
261
269
  this.jobScheduler = new JobScheduler(createFrameworkLogger('Jobs'), jobSchedulerOptions);
262
270
  this.jobHealthChecker = new JobHealthChecker(this.jobScheduler, createFrameworkLogger('JobHealth'));
@@ -277,7 +285,7 @@ export class Moro extends EventEmitter {
277
285
  // is registered before module middleware that might bypass it
278
286
  this.autoDiscoveryOptions = options.autoDiscover !== false ? options : null;
279
287
  // Emit initialization event through enterprise event bus
280
- this.eventBus.emit('framework:initialized', {
288
+ void this.eventBus.emit('framework:initialized', {
281
289
  options,
282
290
  config: this.config,
283
291
  runtime: this.runtimeType,
@@ -459,7 +467,7 @@ export class Moro extends EventEmitter {
459
467
  enableDocs(config) {
460
468
  this.documentation.enableDocs(config, this.intelligentRouting);
461
469
  this.logger.info(`API Documentation enabled at ${config.basePath || '/docs'}`, 'Documentation');
462
- this.eventBus.emit('docs:enabled', { config });
470
+ void this.eventBus.emit('docs:enabled', { config });
463
471
  }
464
472
  // Get OpenAPI specification
465
473
  getOpenAPISpec() {
@@ -499,7 +507,7 @@ export class Moro extends EventEmitter {
499
507
  // Standard middleware integration (req, res, next pattern)
500
508
  if (typeof middlewareOrFunction === 'function' && middlewareOrFunction.length >= 3) {
501
509
  this.coreFramework.addMiddleware(middlewareOrFunction);
502
- this.eventBus.emit('middleware:registered', {
510
+ void this.eventBus.emit('middleware:registered', {
503
511
  type: 'standard',
504
512
  middleware: middlewareOrFunction,
505
513
  });
@@ -508,7 +516,7 @@ export class Moro extends EventEmitter {
508
516
  // Function-style middleware execution
509
517
  if (typeof middlewareOrFunction === 'function' && middlewareOrFunction.length <= 1) {
510
518
  await middlewareOrFunction(this);
511
- this.eventBus.emit('middleware:executed', {
519
+ void this.eventBus.emit('middleware:executed', {
512
520
  type: 'function',
513
521
  middleware: middlewareOrFunction,
514
522
  });
@@ -525,7 +533,7 @@ export class Moro extends EventEmitter {
525
533
  return this;
526
534
  }
527
535
  // Fallback: emit event for unknown middleware types
528
- this.eventBus.emit('middleware:advanced', {
536
+ void this.eventBus.emit('middleware:advanced', {
529
537
  middleware: middlewareOrFunction,
530
538
  config,
531
539
  });
@@ -595,14 +603,14 @@ export class Moro extends EventEmitter {
595
603
  }
596
604
  // Module loading with events
597
605
  async loadModule(moduleOrPath) {
598
- this.eventBus.emit('module:loading', {
606
+ void this.eventBus.emit('module:loading', {
599
607
  moduleId: typeof moduleOrPath === 'string' ? moduleOrPath : moduleOrPath.name,
600
608
  });
601
609
  if (typeof moduleOrPath === 'string') {
602
610
  const module = await this.importModule(moduleOrPath);
603
611
  await this.coreFramework.loadModule(module);
604
612
  this.loadedModules.add(moduleOrPath);
605
- this.eventBus.emit('module:loaded', {
613
+ void this.eventBus.emit('module:loaded', {
606
614
  moduleId: module.name,
607
615
  version: module.version || '1.0.0',
608
616
  });
@@ -610,7 +618,7 @@ export class Moro extends EventEmitter {
610
618
  else {
611
619
  await this.coreFramework.loadModule(moduleOrPath);
612
620
  this.loadedModules.add(moduleOrPath.name);
613
- this.eventBus.emit('module:loaded', {
621
+ void this.eventBus.emit('module:loaded', {
614
622
  moduleId: moduleOrPath.name,
615
623
  version: moduleOrPath.version || '1.0.0',
616
624
  });
@@ -624,7 +632,7 @@ export class Moro extends EventEmitter {
624
632
  }
625
633
  // Database helper with events
626
634
  database(adapter) {
627
- this.eventBus.emit('database:connected', {
635
+ void this.eventBus.emit('database:connected', {
628
636
  adapter: adapter.constructor.name,
629
637
  config: 'hidden',
630
638
  });
@@ -747,7 +755,11 @@ export class Moro extends EventEmitter {
747
755
  this.startWithClustering(port, host, callback);
748
756
  return;
749
757
  }
750
- this.eventBus.emit('server:starting', { port, runtime: this.runtimeType });
758
+ // Single-process graceful shutdown: SIGINT/SIGTERM (Ctrl-C) drain in-flight
759
+ // work via close() by default; a second signal force-exits. Opt out with
760
+ // `server.gracefulShutdown: false`. (Cluster mode wires its own handlers.)
761
+ this.registerProcessShutdownHandlers();
762
+ void this.eventBus.emit('server:starting', { port, runtime: this.runtimeType });
751
763
  // Add documentation middleware first (if enabled)
752
764
  try {
753
765
  const docsMiddleware = this.documentation.getDocsMiddleware();
@@ -784,7 +796,7 @@ export class Moro extends EventEmitter {
784
796
  // Log performance stats
785
797
  this.unifiedRouter.logPerformanceStats();
786
798
  }
787
- this.eventBus.emit('server:started', {
799
+ void this.eventBus.emit('server:started', {
788
800
  port,
789
801
  runtime: this.runtimeType,
790
802
  engine: serverKind,
@@ -1014,7 +1026,7 @@ export class Moro extends EventEmitter {
1014
1026
  if (matches) {
1015
1027
  req.params = {};
1016
1028
  route.paramNames.forEach((name, index) => {
1017
- req.params[name] = matches[index + 1];
1029
+ req.params[name] = matches[index + 1] ?? '';
1018
1030
  });
1019
1031
  }
1020
1032
  // Get handler function
@@ -1229,6 +1241,8 @@ export class Moro extends EventEmitter {
1229
1241
  // This provides the intuitive developer experience users expect
1230
1242
  for (const route of this.routes) {
1231
1243
  const handler = this.routeHandlers[route.handler];
1244
+ if (!handler)
1245
+ continue;
1232
1246
  // Get direct access to the HTTP server through the core framework
1233
1247
  const httpServer = this.coreFramework.httpServer;
1234
1248
  // Create a wrapper handler that handles validation, rate limiting, and return values
@@ -1532,20 +1546,20 @@ export class Moro extends EventEmitter {
1532
1546
  this.logger.info('Module changes detected, reloading...', 'ModuleDiscovery');
1533
1547
  // Unload existing modules (if supported)
1534
1548
  // For now, just log the change
1535
- this.eventBus.emit('modules:changed', {
1549
+ void this.eventBus.emit('modules:changed', {
1536
1550
  modules: modules.map(m => ({ name: m.name, version: m.version })),
1537
1551
  timestamp: new Date(),
1538
1552
  });
1539
1553
  }
1540
1554
  // Legacy method for backward compatibility
1541
1555
  autoDiscoverModules(modulesPath) {
1542
- // Redirect to new system
1543
- this.initializeAutoDiscovery({
1556
+ // Redirect to new system (legacy sync shim over the async discovery path).
1557
+ void this.initializeAutoDiscovery({
1544
1558
  autoDiscover: {
1545
1559
  enabled: true,
1546
1560
  paths: [modulesPath],
1547
1561
  },
1548
- });
1562
+ }).catch(err => this.logger.error(`Auto-discovery failed: ${String(err)}`, 'ModuleDiscovery'));
1549
1563
  }
1550
1564
  async importModule(modulePath) {
1551
1565
  // Convert file path to proper file URL for Windows compatibility
@@ -1720,7 +1734,7 @@ export class Moro extends EventEmitter {
1720
1734
  process.on('SIGTERM', workerShutdown);
1721
1735
  process.on('SIGINT', workerShutdown);
1722
1736
  // Continue with normal server startup for this worker
1723
- this.eventBus.emit('server:starting', {
1737
+ void this.eventBus.emit('server:starting', {
1724
1738
  port,
1725
1739
  runtime: this.runtimeType,
1726
1740
  worker: process.pid,
@@ -1742,7 +1756,7 @@ export class Moro extends EventEmitter {
1742
1756
  const workerCallback = () => {
1743
1757
  const displayHost = host || 'localhost';
1744
1758
  this.logger.info(`Worker ${process.pid} ready on ${displayHost}:${port}`, 'Worker');
1745
- this.eventBus.emit('server:started', {
1759
+ void this.eventBus.emit('server:started', {
1746
1760
  port,
1747
1761
  runtime: this.runtimeType,
1748
1762
  worker: process.pid,
@@ -1807,8 +1821,93 @@ export class Moro extends EventEmitter {
1807
1821
  * Gracefully close the application and clean up resources
1808
1822
  * This should be called in tests and during shutdown
1809
1823
  */
1824
+ shutdownHandlersRegistered = false;
1825
+ isShuttingDown = false;
1826
+ // Per-instance opt-in uncaught-error listeners (removed by close()).
1827
+ processListeners = [];
1828
+ // Graceful shutdown is driven by ONE process-level SIGINT/SIGTERM handler
1829
+ // shared across every Moro instance (installed once), so creating many apps
1830
+ // never accumulates process listeners. Instances register here on listen()
1831
+ // and deregister on close().
1832
+ static activeInstances = new Set();
1833
+ static globalSignalsInstalled = false;
1834
+ static globalShuttingDown = false;
1835
+ static installGlobalShutdownSignals() {
1836
+ if (Moro.globalSignalsInstalled)
1837
+ return;
1838
+ Moro.globalSignalsInstalled = true;
1839
+ const handle = (signal, code) => {
1840
+ // A second signal while already draining forces an immediate exit, so a
1841
+ // stuck shutdown can never make the process unkillable via Ctrl-C.
1842
+ if (Moro.globalShuttingDown) {
1843
+ process.exit(code);
1844
+ return;
1845
+ }
1846
+ Moro.globalShuttingDown = true;
1847
+ const instances = Array.from(Moro.activeInstances);
1848
+ instances[0]?.logger.info(`Received ${signal}, shutting down gracefully...`, 'Server');
1849
+ Promise.allSettled(instances.map(inst => inst.close()))
1850
+ .then(() => process.exit(code))
1851
+ .catch(() => process.exit(1));
1852
+ };
1853
+ process.on('SIGINT', () => handle('SIGINT', 0));
1854
+ process.on('SIGTERM', () => handle('SIGTERM', 0));
1855
+ }
1856
+ /**
1857
+ * Enable graceful shutdown for this instance. SIGINT/SIGTERM (Ctrl-C) drain
1858
+ * in-flight work via close() by default; a second signal force-exits. Opt out
1859
+ * with `server.gracefulShutdown: false` (e.g. when the host app owns signals).
1860
+ * Uncaught-error draining is separate and opt-in (`server.handleUncaught`).
1861
+ */
1862
+ registerProcessShutdownHandlers() {
1863
+ if (this.shutdownHandlersRegistered)
1864
+ return;
1865
+ const serverCfg = this.config.server;
1866
+ if (serverCfg?.gracefulShutdown === false)
1867
+ return; // default ON; opt out here
1868
+ this.shutdownHandlersRegistered = true;
1869
+ Moro.activeInstances.add(this);
1870
+ Moro.installGlobalShutdownSignals();
1871
+ // Opt-in uncaught-error draining (per instance, removed on close()).
1872
+ if (serverCfg?.handleUncaught === true) {
1873
+ const add = (event, handler) => {
1874
+ process.on(event, handler);
1875
+ this.processListeners.push([event, handler]);
1876
+ };
1877
+ add('unhandledRejection', reason => {
1878
+ this.logger.error(`Unhandled promise rejection: ${String(reason)}`, 'Server');
1879
+ this.drainAndExit(1);
1880
+ });
1881
+ add('uncaughtException', err => {
1882
+ this.logger.error(`Uncaught exception: ${err instanceof Error ? err.stack || err.message : String(err)}`, 'Server');
1883
+ this.drainAndExit(1);
1884
+ });
1885
+ }
1886
+ }
1887
+ drainAndExit(code) {
1888
+ if (this.isShuttingDown) {
1889
+ process.exit(code);
1890
+ return;
1891
+ }
1892
+ this.isShuttingDown = true;
1893
+ this.close()
1894
+ .then(() => process.exit(code))
1895
+ .catch(() => process.exit(1));
1896
+ }
1897
+ /** Deregister this instance from process shutdown handling (called by close()). */
1898
+ removeProcessShutdownHandlers() {
1899
+ Moro.activeInstances.delete(this);
1900
+ for (const [event, handler] of this.processListeners) {
1901
+ process.removeListener(event, handler);
1902
+ }
1903
+ this.processListeners = [];
1904
+ this.shutdownHandlersRegistered = false;
1905
+ }
1810
1906
  async close() {
1811
1907
  this.logger.debug('Closing Moro application...');
1908
+ // Detach our process signal listeners so repeated create/close cycles
1909
+ // (tests, or a host that spins up many apps) don't leak process listeners.
1910
+ this.removeProcessShutdownHandlers();
1812
1911
  // Run user-registered onClose hooks first, while subsystems are still alive.
1813
1912
  // Failures in one hook don't prevent subsequent hooks or Moro's own teardown.
1814
1913
  if (this.closeHooks.length > 0) {
@@ -1876,6 +1975,13 @@ export class Moro extends EventEmitter {
1876
1975
  // Only wait for close if the server is actually listening
1877
1976
  const isListening = server?.listening || server?.address?.() !== null;
1878
1977
  if (isListening) {
1978
+ // Stop accepting new connections and let in-flight requests finish,
1979
+ // but don't hang on idle keep-alive / WebSocket connections: close
1980
+ // idle sockets right away, then force-close whatever remains at the
1981
+ // deadline so this promise reflects a real close instead of only the
1982
+ // timer firing. (closeIdle/closeAllConnections exist on the Node http
1983
+ // server; the uWS/engine backends ignore the optional calls.)
1984
+ server?.closeIdleConnections?.();
1879
1985
  await Promise.race([
1880
1986
  new Promise(resolve => {
1881
1987
  httpServer.close(() => {
@@ -1883,7 +1989,15 @@ export class Moro extends EventEmitter {
1883
1989
  });
1884
1990
  }),
1885
1991
  new Promise(resolve => {
1886
- const timer = setTimeout(resolve, 2000); // 2 second timeout
1992
+ const timer = setTimeout(() => {
1993
+ try {
1994
+ server?.closeAllConnections?.();
1995
+ }
1996
+ catch {
1997
+ // best-effort force-close
1998
+ }
1999
+ resolve();
2000
+ }, 2000); // 2 second grace period
1887
2001
  timer.unref(); // Don't keep process alive
1888
2002
  }),
1889
2003
  ]);
@@ -1993,19 +2107,21 @@ export class Moro extends EventEmitter {
1993
2107
  }
1994
2108
  const jobOptions = {
1995
2109
  name: options.name || name,
1996
- enabled: options.enabled,
1997
- priority: options.priority,
1998
- timezone: options.timezone,
1999
- maxConcurrent: options.maxConcurrent,
2000
- timeout: options.timeout,
2001
- maxRetries: options.maxRetries,
2002
- retryDelay: options.retryDelay,
2003
- retryBackoff: options.retryBackoff,
2004
- enableCircuitBreaker: options.enableCircuitBreaker,
2005
- metadata: options.metadata,
2006
- onStart: options.onStart,
2007
- onComplete: options.onComplete,
2008
- onError: options.onError,
2110
+ ...(options.enabled !== undefined ? { enabled: options.enabled } : {}),
2111
+ ...(options.priority !== undefined ? { priority: options.priority } : {}),
2112
+ ...(options.timezone !== undefined ? { timezone: options.timezone } : {}),
2113
+ ...(options.maxConcurrent !== undefined ? { maxConcurrent: options.maxConcurrent } : {}),
2114
+ ...(options.timeout !== undefined ? { timeout: options.timeout } : {}),
2115
+ ...(options.maxRetries !== undefined ? { maxRetries: options.maxRetries } : {}),
2116
+ ...(options.retryDelay !== undefined ? { retryDelay: options.retryDelay } : {}),
2117
+ ...(options.retryBackoff !== undefined ? { retryBackoff: options.retryBackoff } : {}),
2118
+ ...(options.enableCircuitBreaker !== undefined
2119
+ ? { enableCircuitBreaker: options.enableCircuitBreaker }
2120
+ : {}),
2121
+ ...(options.metadata !== undefined ? { metadata: options.metadata } : {}),
2122
+ ...(options.onStart !== undefined ? { onStart: options.onStart } : {}),
2123
+ ...(options.onComplete !== undefined ? { onComplete: options.onComplete } : {}),
2124
+ ...(options.onError !== undefined ? { onError: options.onError } : {}),
2009
2125
  };
2010
2126
  const jobId = this.jobScheduler.registerJob(name, jobSchedule, handler, jobOptions);
2011
2127
  this.logger.info(`Job registered: ${name} (${jobId})`);
@@ -2173,7 +2289,7 @@ export class Moro extends EventEmitter {
2173
2289
  // Store config and trigger initialization immediately
2174
2290
  this.graphqlConfig = options;
2175
2291
  this.graphqlInitPromise = this.initializeGraphQL(options);
2176
- this.eventBus.emit('graphql:configured', { options });
2292
+ void this.eventBus.emit('graphql:configured', { options });
2177
2293
  return this;
2178
2294
  }
2179
2295
  /**
@@ -2828,7 +2944,7 @@ export class Moro extends EventEmitter {
2828
2944
  // Store config for lazy initialization
2829
2945
  this.mailConfig = config;
2830
2946
  this.logger.debug('Mail system configured (will initialize on first use)', 'Mail');
2831
- this.eventBus.emit('mail:configured', { config });
2947
+ void this.eventBus.emit('mail:configured', { config });
2832
2948
  return this;
2833
2949
  }
2834
2950
  /**
@@ -2858,7 +2974,9 @@ export class Moro extends EventEmitter {
2858
2974
  await this.ensureQueueInitialized();
2859
2975
  await this.processQueue(queueName, async (job) => {
2860
2976
  if (this.mailManager) {
2861
- return await this.mailManager.send(job.data);
2977
+ // deliver() bypasses the queue check; send() would re-enqueue the
2978
+ // job forever and never actually transmit the email.
2979
+ return await this.mailManager.deliver(job.data);
2862
2980
  }
2863
2981
  throw new Error('Mail manager not initialized');
2864
2982
  });
@@ -2906,19 +3024,19 @@ export class Moro extends EventEmitter {
2906
3024
  async sendMail(options) {
2907
3025
  // Lazy initialize on first use
2908
3026
  await this.ensureMailInitialized();
2909
- this.eventBus.emit('mail:sending', { options });
3027
+ void this.eventBus.emit('mail:sending', { options });
2910
3028
  try {
2911
3029
  const result = await this.mailManager.send(options);
2912
3030
  if (result.success) {
2913
- this.eventBus.emit('mail:sent', { result, options });
3031
+ void this.eventBus.emit('mail:sent', { result, options });
2914
3032
  }
2915
3033
  else {
2916
- this.eventBus.emit('mail:failed', { error: new Error(result.error), options });
3034
+ void this.eventBus.emit('mail:failed', { error: new Error(result.error), options });
2917
3035
  }
2918
3036
  return result;
2919
3037
  }
2920
3038
  catch (error) {
2921
- this.eventBus.emit('mail:failed', { error, options });
3039
+ void this.eventBus.emit('mail:failed', { error, options });
2922
3040
  throw error;
2923
3041
  }
2924
3042
  }