@morojs/moro 1.6.6 → 1.7.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 (432) hide show
  1. package/README.md +22 -4
  2. package/dist/core/auth/morojs-adapter.js +33 -20
  3. package/dist/core/auth/morojs-adapter.js.map +1 -1
  4. package/dist/core/config/config-sources.js +71 -15
  5. package/dist/core/config/config-sources.js.map +1 -1
  6. package/dist/core/config/config-validator.js +201 -6
  7. package/dist/core/config/config-validator.js.map +1 -1
  8. package/dist/core/database/adapters/drizzle.js +5 -5
  9. package/dist/core/database/adapters/drizzle.js.map +1 -1
  10. package/dist/core/database/adapters/mongodb.js +5 -1
  11. package/dist/core/database/adapters/mongodb.js.map +1 -1
  12. package/dist/core/database/adapters/mysql.js +5 -1
  13. package/dist/core/database/adapters/mysql.js.map +1 -1
  14. package/dist/core/database/adapters/postgresql.js +1 -1
  15. package/dist/core/database/adapters/postgresql.js.map +1 -1
  16. package/dist/core/database/adapters/redis.js +2 -2
  17. package/dist/core/database/adapters/redis.js.map +1 -1
  18. package/dist/core/database/adapters/sqlite.js +5 -1
  19. package/dist/core/database/adapters/sqlite.js.map +1 -1
  20. package/dist/core/docs/index.js.map +1 -1
  21. package/dist/core/docs/openapi-generator.js +8 -9
  22. package/dist/core/docs/openapi-generator.js.map +1 -1
  23. package/dist/core/docs/simple-docs.js +2 -1
  24. package/dist/core/docs/simple-docs.js.map +1 -1
  25. package/dist/core/docs/swagger-ui.js +1 -0
  26. package/dist/core/docs/swagger-ui.js.map +1 -1
  27. package/dist/core/docs/zod-to-openapi.js +4 -0
  28. package/dist/core/docs/zod-to-openapi.js.map +1 -1
  29. package/dist/core/events/event-bus.d.ts +1 -1
  30. package/dist/core/events/event-bus.js +2 -1
  31. package/dist/core/events/event-bus.js.map +1 -1
  32. package/dist/core/framework.d.ts +5 -3
  33. package/dist/core/framework.js +28 -25
  34. package/dist/core/framework.js.map +1 -1
  35. package/dist/core/graphql/adapter.d.ts +73 -0
  36. package/dist/core/graphql/adapter.js +2 -0
  37. package/dist/core/graphql/adapter.js.map +1 -0
  38. package/dist/core/graphql/adapters/graphql-js-adapter.d.ts +26 -0
  39. package/dist/core/graphql/adapters/graphql-js-adapter.js +229 -0
  40. package/dist/core/graphql/adapters/graphql-js-adapter.js.map +1 -0
  41. package/dist/core/graphql/core.d.ts +60 -0
  42. package/dist/core/graphql/core.js +191 -0
  43. package/dist/core/graphql/core.js.map +1 -0
  44. package/dist/core/graphql/index.d.ts +4 -0
  45. package/dist/core/graphql/index.js +4 -0
  46. package/dist/core/graphql/index.js.map +1 -0
  47. package/dist/core/graphql/loader.d.ts +9 -0
  48. package/dist/core/graphql/loader.js +32 -0
  49. package/dist/core/graphql/loader.js.map +1 -0
  50. package/dist/core/graphql/types.d.ts +211 -0
  51. package/dist/core/graphql/types.js +2 -0
  52. package/dist/core/graphql/types.js.map +1 -0
  53. package/dist/core/grpc/adapters/grpc-js-adapter.d.ts +28 -0
  54. package/dist/core/grpc/adapters/grpc-js-adapter.js +449 -0
  55. package/dist/core/grpc/adapters/grpc-js-adapter.js.map +1 -0
  56. package/dist/core/grpc/adapters/index.d.ts +1 -0
  57. package/dist/core/grpc/adapters/index.js +6 -0
  58. package/dist/core/grpc/adapters/index.js.map +1 -0
  59. package/dist/core/grpc/grpc-adapter.d.ts +47 -0
  60. package/dist/core/grpc/grpc-adapter.js +4 -0
  61. package/dist/core/grpc/grpc-adapter.js.map +1 -0
  62. package/dist/core/grpc/grpc-manager.d.ts +59 -0
  63. package/dist/core/grpc/grpc-manager.js +218 -0
  64. package/dist/core/grpc/grpc-manager.js.map +1 -0
  65. package/dist/core/grpc/index.d.ts +7 -0
  66. package/dist/core/grpc/index.js +10 -0
  67. package/dist/core/grpc/index.js.map +1 -0
  68. package/dist/core/grpc/middleware/auth.d.ts +22 -0
  69. package/dist/core/grpc/middleware/auth.js +126 -0
  70. package/dist/core/grpc/middleware/auth.js.map +1 -0
  71. package/dist/core/grpc/middleware/logging.d.ts +19 -0
  72. package/dist/core/grpc/middleware/logging.js +57 -0
  73. package/dist/core/grpc/middleware/logging.js.map +1 -0
  74. package/dist/core/grpc/middleware/validation.d.ts +18 -0
  75. package/dist/core/grpc/middleware/validation.js +126 -0
  76. package/dist/core/grpc/middleware/validation.js.map +1 -0
  77. package/dist/core/grpc/types.d.ts +233 -0
  78. package/dist/core/grpc/types.js +36 -0
  79. package/dist/core/grpc/types.js.map +1 -0
  80. package/dist/core/http/http-server.d.ts +13 -84
  81. package/dist/core/http/http-server.js +216 -781
  82. package/dist/core/http/http-server.js.map +1 -1
  83. package/dist/core/http/http2-server.d.ts +131 -0
  84. package/dist/core/http/http2-server.js +803 -0
  85. package/dist/core/http/http2-server.js.map +1 -0
  86. package/dist/core/http/index.d.ts +3 -1
  87. package/dist/core/http/index.js +2 -1
  88. package/dist/core/http/index.js.map +1 -1
  89. package/dist/core/http/utils/uws-worker-clustering.d.ts +28 -0
  90. package/dist/core/http/utils/uws-worker-clustering.js +313 -0
  91. package/dist/core/http/utils/uws-worker-clustering.js.map +1 -0
  92. package/dist/core/http/uws-http-server.d.ts +3 -1
  93. package/dist/core/http/uws-http-server.js +58 -34
  94. package/dist/core/http/uws-http-server.js.map +1 -1
  95. package/dist/core/jobs/cron-parser.d.ts +62 -0
  96. package/dist/core/jobs/cron-parser.js +239 -0
  97. package/dist/core/jobs/cron-parser.js.map +1 -0
  98. package/dist/core/jobs/index.d.ts +12 -0
  99. package/dist/core/jobs/index.js +9 -0
  100. package/dist/core/jobs/index.js.map +1 -0
  101. package/dist/core/jobs/job-executor.d.ts +134 -0
  102. package/dist/core/jobs/job-executor.js +418 -0
  103. package/dist/core/jobs/job-executor.js.map +1 -0
  104. package/dist/core/jobs/job-scheduler.d.ts +214 -0
  105. package/dist/core/jobs/job-scheduler.js +554 -0
  106. package/dist/core/jobs/job-scheduler.js.map +1 -0
  107. package/dist/core/jobs/job-state-manager.d.ts +158 -0
  108. package/dist/core/jobs/job-state-manager.js +444 -0
  109. package/dist/core/jobs/job-state-manager.js.map +1 -0
  110. package/dist/core/jobs/leader-election.d.ts +124 -0
  111. package/dist/core/jobs/leader-election.js +482 -0
  112. package/dist/core/jobs/leader-election.js.map +1 -0
  113. package/dist/core/jobs/types.d.ts +151 -0
  114. package/dist/core/jobs/types.js +4 -0
  115. package/dist/core/jobs/types.js.map +1 -0
  116. package/dist/core/jobs/utils.d.ts +95 -0
  117. package/dist/core/jobs/utils.js +258 -0
  118. package/dist/core/jobs/utils.js.map +1 -0
  119. package/dist/core/logger/filters.js +2 -0
  120. package/dist/core/logger/filters.js.map +1 -1
  121. package/dist/core/logger/logger.js +48 -21
  122. package/dist/core/logger/logger.js.map +1 -1
  123. package/dist/core/logger/outputs.js +11 -3
  124. package/dist/core/logger/outputs.js.map +1 -1
  125. package/dist/core/mail/adapters/console-adapter.d.ts +14 -0
  126. package/dist/core/mail/adapters/console-adapter.js +89 -0
  127. package/dist/core/mail/adapters/console-adapter.js.map +1 -0
  128. package/dist/core/mail/adapters/index.d.ts +5 -0
  129. package/dist/core/mail/adapters/index.js +8 -0
  130. package/dist/core/mail/adapters/index.js.map +1 -0
  131. package/dist/core/mail/adapters/nodemailer-adapter.d.ts +18 -0
  132. package/dist/core/mail/adapters/nodemailer-adapter.js +188 -0
  133. package/dist/core/mail/adapters/nodemailer-adapter.js.map +1 -0
  134. package/dist/core/mail/adapters/resend-adapter.d.ts +18 -0
  135. package/dist/core/mail/adapters/resend-adapter.js +169 -0
  136. package/dist/core/mail/adapters/resend-adapter.js.map +1 -0
  137. package/dist/core/mail/adapters/sendgrid-adapter.d.ts +19 -0
  138. package/dist/core/mail/adapters/sendgrid-adapter.js +186 -0
  139. package/dist/core/mail/adapters/sendgrid-adapter.js.map +1 -0
  140. package/dist/core/mail/adapters/ses-adapter.d.ts +18 -0
  141. package/dist/core/mail/adapters/ses-adapter.js +167 -0
  142. package/dist/core/mail/adapters/ses-adapter.js.map +1 -0
  143. package/dist/core/mail/index.d.ts +5 -0
  144. package/dist/core/mail/index.js +8 -0
  145. package/dist/core/mail/index.js.map +1 -0
  146. package/dist/core/mail/mail-adapter.d.ts +62 -0
  147. package/dist/core/mail/mail-adapter.js +83 -0
  148. package/dist/core/mail/mail-adapter.js.map +1 -0
  149. package/dist/core/mail/mail-manager.d.ts +63 -0
  150. package/dist/core/mail/mail-manager.js +302 -0
  151. package/dist/core/mail/mail-manager.js.map +1 -0
  152. package/dist/core/mail/template-engine.d.ts +43 -0
  153. package/dist/core/mail/template-engine.js +239 -0
  154. package/dist/core/mail/template-engine.js.map +1 -0
  155. package/dist/core/mail/types.d.ts +237 -0
  156. package/dist/core/mail/types.js +4 -0
  157. package/dist/core/mail/types.js.map +1 -0
  158. package/dist/core/middleware/built-in/auth/helpers.js +1 -1
  159. package/dist/core/middleware/built-in/auth/helpers.js.map +1 -1
  160. package/dist/core/middleware/built-in/auth/jwt-helpers.js +1 -1
  161. package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -1
  162. package/dist/core/middleware/built-in/auth/providers.js +1 -1
  163. package/dist/core/middleware/built-in/auth/providers.js.map +1 -1
  164. package/dist/core/middleware/built-in/body-size/core.d.ts +12 -0
  165. package/dist/core/middleware/built-in/body-size/core.js +52 -0
  166. package/dist/core/middleware/built-in/body-size/core.js.map +1 -0
  167. package/dist/core/middleware/built-in/body-size/hook.d.ts +2 -0
  168. package/dist/core/middleware/built-in/body-size/hook.js +12 -0
  169. package/dist/core/middleware/built-in/body-size/hook.js.map +1 -0
  170. package/dist/core/middleware/built-in/body-size/index.d.ts +6 -0
  171. package/dist/core/middleware/built-in/body-size/index.js +7 -0
  172. package/dist/core/middleware/built-in/body-size/index.js.map +1 -0
  173. package/dist/core/middleware/built-in/body-size/middleware.d.ts +14 -0
  174. package/dist/core/middleware/built-in/body-size/middleware.js +22 -0
  175. package/dist/core/middleware/built-in/body-size/middleware.js.map +1 -0
  176. package/dist/core/middleware/built-in/cache/adapters/cache/file.js +3 -3
  177. package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -1
  178. package/dist/core/middleware/built-in/cache/adapters/cache/memory.js +1 -0
  179. package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -1
  180. package/dist/core/middleware/built-in/cache/adapters/cache/redis.js +1 -1
  181. package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -1
  182. package/dist/core/middleware/built-in/cache/core.d.ts +20 -1
  183. package/dist/core/middleware/built-in/cache/core.js.map +1 -1
  184. package/dist/core/middleware/built-in/cache/hook.d.ts +38 -1
  185. package/dist/core/middleware/built-in/cache/hook.js +202 -16
  186. package/dist/core/middleware/built-in/cache/hook.js.map +1 -1
  187. package/dist/core/middleware/built-in/cache/index.js +1 -1
  188. package/dist/core/middleware/built-in/cache/index.js.map +1 -1
  189. package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.d.ts +8 -0
  190. package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js +100 -7
  191. package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js.map +1 -1
  192. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.d.ts +6 -0
  193. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js +97 -13
  194. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js.map +1 -1
  195. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js +1 -1
  196. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -1
  197. package/dist/core/middleware/built-in/compression/core.d.ts +16 -0
  198. package/dist/core/middleware/built-in/compression/core.js +75 -0
  199. package/dist/core/middleware/built-in/compression/core.js.map +1 -0
  200. package/dist/core/middleware/built-in/compression/hook.d.ts +2 -0
  201. package/dist/core/middleware/built-in/compression/hook.js +14 -0
  202. package/dist/core/middleware/built-in/compression/hook.js.map +1 -0
  203. package/dist/core/middleware/built-in/compression/index.d.ts +6 -0
  204. package/dist/core/middleware/built-in/compression/index.js +7 -0
  205. package/dist/core/middleware/built-in/compression/index.js.map +1 -0
  206. package/dist/core/middleware/built-in/compression/middleware.d.ts +20 -0
  207. package/dist/core/middleware/built-in/compression/middleware.js +28 -0
  208. package/dist/core/middleware/built-in/compression/middleware.js.map +1 -0
  209. package/dist/core/middleware/built-in/cookie/core.js +37 -9
  210. package/dist/core/middleware/built-in/cookie/core.js.map +1 -1
  211. package/dist/core/middleware/built-in/cookie/hook.d.ts +1 -1
  212. package/dist/core/middleware/built-in/cookie/hook.js +2 -2
  213. package/dist/core/middleware/built-in/cookie/hook.js.map +1 -1
  214. package/dist/core/middleware/built-in/csrf/core.js +1 -0
  215. package/dist/core/middleware/built-in/csrf/core.js.map +1 -1
  216. package/dist/core/middleware/built-in/graphql/core.d.ts +11 -0
  217. package/dist/core/middleware/built-in/graphql/core.js +24 -0
  218. package/dist/core/middleware/built-in/graphql/core.js.map +1 -0
  219. package/dist/core/middleware/built-in/graphql/helpers.d.ts +69 -0
  220. package/dist/core/middleware/built-in/graphql/helpers.js +187 -0
  221. package/dist/core/middleware/built-in/graphql/helpers.js.map +1 -0
  222. package/dist/core/middleware/built-in/graphql/hook.d.ts +7 -0
  223. package/dist/core/middleware/built-in/graphql/hook.js +78 -0
  224. package/dist/core/middleware/built-in/graphql/hook.js.map +1 -0
  225. package/dist/core/middleware/built-in/graphql/index.d.ts +5 -0
  226. package/dist/core/middleware/built-in/graphql/index.js +5 -0
  227. package/dist/core/middleware/built-in/graphql/index.js.map +1 -0
  228. package/dist/core/middleware/built-in/graphql/middleware.d.ts +7 -0
  229. package/dist/core/middleware/built-in/graphql/middleware.js +54 -0
  230. package/dist/core/middleware/built-in/graphql/middleware.js.map +1 -0
  231. package/dist/core/middleware/built-in/graphql/subscriptions.d.ts +20 -0
  232. package/dist/core/middleware/built-in/graphql/subscriptions.js +37 -0
  233. package/dist/core/middleware/built-in/graphql/subscriptions.js.map +1 -0
  234. package/dist/core/middleware/built-in/helmet/core.d.ts +19 -0
  235. package/dist/core/middleware/built-in/helmet/core.js +70 -0
  236. package/dist/core/middleware/built-in/helmet/core.js.map +1 -0
  237. package/dist/core/middleware/built-in/helmet/hook.d.ts +2 -0
  238. package/dist/core/middleware/built-in/helmet/hook.js +12 -0
  239. package/dist/core/middleware/built-in/helmet/hook.js.map +1 -0
  240. package/dist/core/middleware/built-in/helmet/index.d.ts +6 -0
  241. package/dist/core/middleware/built-in/helmet/index.js +7 -0
  242. package/dist/core/middleware/built-in/helmet/index.js.map +1 -0
  243. package/dist/core/middleware/built-in/helmet/middleware.d.ts +22 -0
  244. package/dist/core/middleware/built-in/helmet/middleware.js +28 -0
  245. package/dist/core/middleware/built-in/helmet/middleware.js.map +1 -0
  246. package/dist/core/middleware/built-in/http2/core.d.ts +35 -0
  247. package/dist/core/middleware/built-in/http2/core.js +128 -0
  248. package/dist/core/middleware/built-in/http2/core.js.map +1 -0
  249. package/dist/core/middleware/built-in/http2/hook.d.ts +5 -0
  250. package/dist/core/middleware/built-in/http2/hook.js +34 -0
  251. package/dist/core/middleware/built-in/http2/hook.js.map +1 -0
  252. package/dist/core/middleware/built-in/http2/index.d.ts +8 -0
  253. package/dist/core/middleware/built-in/http2/index.js +10 -0
  254. package/dist/core/middleware/built-in/http2/index.js.map +1 -0
  255. package/dist/core/middleware/built-in/http2/middleware.d.ts +20 -0
  256. package/dist/core/middleware/built-in/http2/middleware.js +31 -0
  257. package/dist/core/middleware/built-in/http2/middleware.js.map +1 -0
  258. package/dist/core/middleware/built-in/index.d.ts +20 -1
  259. package/dist/core/middleware/built-in/index.js +31 -0
  260. package/dist/core/middleware/built-in/index.js.map +1 -1
  261. package/dist/core/middleware/built-in/range/core.d.ts +16 -0
  262. package/dist/core/middleware/built-in/range/core.js +112 -0
  263. package/dist/core/middleware/built-in/range/core.js.map +1 -0
  264. package/dist/core/middleware/built-in/range/hook.d.ts +2 -0
  265. package/dist/core/middleware/built-in/range/hook.js +12 -0
  266. package/dist/core/middleware/built-in/range/hook.js.map +1 -0
  267. package/dist/core/middleware/built-in/range/index.d.ts +6 -0
  268. package/dist/core/middleware/built-in/range/index.js +7 -0
  269. package/dist/core/middleware/built-in/range/index.js.map +1 -0
  270. package/dist/core/middleware/built-in/range/middleware.d.ts +21 -0
  271. package/dist/core/middleware/built-in/range/middleware.js +27 -0
  272. package/dist/core/middleware/built-in/range/middleware.js.map +1 -0
  273. package/dist/core/middleware/built-in/session/core.js +14 -1
  274. package/dist/core/middleware/built-in/session/core.js.map +1 -1
  275. package/dist/core/middleware/built-in/static/core.d.ts +20 -0
  276. package/dist/core/middleware/built-in/static/core.js +143 -0
  277. package/dist/core/middleware/built-in/static/core.js.map +1 -0
  278. package/dist/core/middleware/built-in/static/hook.d.ts +2 -0
  279. package/dist/core/middleware/built-in/static/hook.js +12 -0
  280. package/dist/core/middleware/built-in/static/hook.js.map +1 -0
  281. package/dist/core/middleware/built-in/static/index.d.ts +6 -0
  282. package/dist/core/middleware/built-in/static/index.js +7 -0
  283. package/dist/core/middleware/built-in/static/index.js.map +1 -0
  284. package/dist/core/middleware/built-in/static/middleware.d.ts +18 -0
  285. package/dist/core/middleware/built-in/static/middleware.js +26 -0
  286. package/dist/core/middleware/built-in/static/middleware.js.map +1 -0
  287. package/dist/core/middleware/built-in/template/core.d.ts +19 -0
  288. package/dist/core/middleware/built-in/template/core.js +108 -0
  289. package/dist/core/middleware/built-in/template/core.js.map +1 -0
  290. package/dist/core/middleware/built-in/template/hook.d.ts +2 -0
  291. package/dist/core/middleware/built-in/template/hook.js +12 -0
  292. package/dist/core/middleware/built-in/template/hook.js.map +1 -0
  293. package/dist/core/middleware/built-in/template/index.d.ts +6 -0
  294. package/dist/core/middleware/built-in/template/index.js +7 -0
  295. package/dist/core/middleware/built-in/template/index.js.map +1 -0
  296. package/dist/core/middleware/built-in/template/middleware.d.ts +21 -0
  297. package/dist/core/middleware/built-in/template/middleware.js +27 -0
  298. package/dist/core/middleware/built-in/template/middleware.js.map +1 -0
  299. package/dist/core/middleware/built-in/upload/core.d.ts +29 -0
  300. package/dist/core/middleware/built-in/upload/core.js +66 -0
  301. package/dist/core/middleware/built-in/upload/core.js.map +1 -0
  302. package/dist/core/middleware/built-in/upload/hook.d.ts +2 -0
  303. package/dist/core/middleware/built-in/upload/hook.js +25 -0
  304. package/dist/core/middleware/built-in/upload/hook.js.map +1 -0
  305. package/dist/core/middleware/built-in/upload/index.d.ts +6 -0
  306. package/dist/core/middleware/built-in/upload/index.js +7 -0
  307. package/dist/core/middleware/built-in/upload/index.js.map +1 -0
  308. package/dist/core/middleware/built-in/upload/middleware.d.ts +18 -0
  309. package/dist/core/middleware/built-in/upload/middleware.js +41 -0
  310. package/dist/core/middleware/built-in/upload/middleware.js.map +1 -0
  311. package/dist/core/middleware/built-in/validation/core.js +4 -2
  312. package/dist/core/middleware/built-in/validation/core.js.map +1 -1
  313. package/dist/core/middleware/built-in/validation/middleware.js +2 -1
  314. package/dist/core/middleware/built-in/validation/middleware.js.map +1 -1
  315. package/dist/core/middleware/index.js +1 -0
  316. package/dist/core/middleware/index.js.map +1 -1
  317. package/dist/core/modules/auto-discovery.js +5 -4
  318. package/dist/core/modules/auto-discovery.js.map +1 -1
  319. package/dist/core/modules/modules.js.map +1 -1
  320. package/dist/core/networking/adapters/socketio-adapter.js +1 -1
  321. package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
  322. package/dist/core/networking/adapters/uws-adapter.js +61 -8
  323. package/dist/core/networking/adapters/uws-adapter.js.map +1 -1
  324. package/dist/core/networking/adapters/ws-adapter.js +61 -19
  325. package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
  326. package/dist/core/networking/websocket-manager.js +2 -0
  327. package/dist/core/networking/websocket-manager.js.map +1 -1
  328. package/dist/core/pooling/object-pool-manager.js +12 -1
  329. package/dist/core/pooling/object-pool-manager.js.map +1 -1
  330. package/dist/core/queue/adapters/bull-adapter.d.ts +86 -0
  331. package/dist/core/queue/adapters/bull-adapter.js +330 -0
  332. package/dist/core/queue/adapters/bull-adapter.js.map +1 -0
  333. package/dist/core/queue/adapters/index.d.ts +9 -0
  334. package/dist/core/queue/adapters/index.js +10 -0
  335. package/dist/core/queue/adapters/index.js.map +1 -0
  336. package/dist/core/queue/adapters/kafka-adapter.d.ts +86 -0
  337. package/dist/core/queue/adapters/kafka-adapter.js +462 -0
  338. package/dist/core/queue/adapters/kafka-adapter.js.map +1 -0
  339. package/dist/core/queue/adapters/memory-adapter.d.ts +87 -0
  340. package/dist/core/queue/adapters/memory-adapter.js +415 -0
  341. package/dist/core/queue/adapters/memory-adapter.js.map +1 -0
  342. package/dist/core/queue/adapters/rabbitmq-adapter.d.ts +86 -0
  343. package/dist/core/queue/adapters/rabbitmq-adapter.js +436 -0
  344. package/dist/core/queue/adapters/rabbitmq-adapter.js.map +1 -0
  345. package/dist/core/queue/adapters/sqs-adapter.d.ts +102 -0
  346. package/dist/core/queue/adapters/sqs-adapter.js +522 -0
  347. package/dist/core/queue/adapters/sqs-adapter.js.map +1 -0
  348. package/dist/core/queue/index.d.ts +11 -0
  349. package/dist/core/queue/index.js +14 -0
  350. package/dist/core/queue/index.js.map +1 -0
  351. package/dist/core/queue/middleware/index.d.ts +7 -0
  352. package/dist/core/queue/middleware/index.js +8 -0
  353. package/dist/core/queue/middleware/index.js.map +1 -0
  354. package/dist/core/queue/middleware/monitoring.d.ts +84 -0
  355. package/dist/core/queue/middleware/monitoring.js +145 -0
  356. package/dist/core/queue/middleware/monitoring.js.map +1 -0
  357. package/dist/core/queue/middleware/priority.d.ts +61 -0
  358. package/dist/core/queue/middleware/priority.js +90 -0
  359. package/dist/core/queue/middleware/priority.js.map +1 -0
  360. package/dist/core/queue/middleware/rate-limit.d.ts +34 -0
  361. package/dist/core/queue/middleware/rate-limit.js +109 -0
  362. package/dist/core/queue/middleware/rate-limit.js.map +1 -0
  363. package/dist/core/queue/queue-adapter.d.ts +73 -0
  364. package/dist/core/queue/queue-adapter.js +20 -0
  365. package/dist/core/queue/queue-adapter.js.map +1 -0
  366. package/dist/core/queue/queue-manager.d.ts +92 -0
  367. package/dist/core/queue/queue-manager.js +327 -0
  368. package/dist/core/queue/queue-manager.js.map +1 -0
  369. package/dist/core/queue/types.d.ts +205 -0
  370. package/dist/core/queue/types.js +6 -0
  371. package/dist/core/queue/types.js.map +1 -0
  372. package/dist/core/routing/app-integration.d.ts +3 -3
  373. package/dist/core/routing/app-integration.js +1 -1
  374. package/dist/core/routing/app-integration.js.map +1 -1
  375. package/dist/core/routing/index.d.ts +1 -1
  376. package/dist/core/routing/index.js +42 -11
  377. package/dist/core/routing/index.js.map +1 -1
  378. package/dist/core/routing/radix-tree.d.ts +48 -0
  379. package/dist/core/routing/radix-tree.js +211 -0
  380. package/dist/core/routing/radix-tree.js.map +1 -0
  381. package/dist/core/routing/router.d.ts +10 -9
  382. package/dist/core/routing/router.js +3 -1
  383. package/dist/core/routing/router.js.map +1 -1
  384. package/dist/core/routing/unified-router.d.ts +18 -12
  385. package/dist/core/routing/unified-router.js +220 -163
  386. package/dist/core/routing/unified-router.js.map +1 -1
  387. package/dist/core/runtime/aws-lambda-adapter.js +21 -10
  388. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
  389. package/dist/core/runtime/base-adapter.js +18 -8
  390. package/dist/core/runtime/base-adapter.js.map +1 -1
  391. package/dist/core/runtime/cloudflare-workers-adapter.js +36 -13
  392. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
  393. package/dist/core/runtime/node-adapter.d.ts +1 -1
  394. package/dist/core/runtime/node-adapter.js +7 -4
  395. package/dist/core/runtime/node-adapter.js.map +1 -1
  396. package/dist/core/runtime/vercel-edge-adapter.js +17 -6
  397. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
  398. package/dist/core/utilities/circuit-breaker.d.ts +9 -2
  399. package/dist/core/utilities/circuit-breaker.js +32 -3
  400. package/dist/core/utilities/circuit-breaker.js.map +1 -1
  401. package/dist/core/utilities/container.js +9 -1
  402. package/dist/core/utilities/container.js.map +1 -1
  403. package/dist/core/utilities/hooks.js +4 -0
  404. package/dist/core/utilities/hooks.js.map +1 -1
  405. package/dist/core/validation/index.js +6 -1
  406. package/dist/core/validation/index.js.map +1 -1
  407. package/dist/core/workers/facade.d.ts +74 -0
  408. package/dist/core/workers/facade.js +98 -0
  409. package/dist/core/workers/facade.js.map +1 -0
  410. package/dist/core/workers/index.d.ts +2 -0
  411. package/dist/core/workers/index.js +6 -0
  412. package/dist/core/workers/index.js.map +1 -0
  413. package/dist/core/workers/worker-manager.d.ts +124 -0
  414. package/dist/core/workers/worker-manager.js +299 -0
  415. package/dist/core/workers/worker-manager.js.map +1 -0
  416. package/dist/core/workers/worker.d.ts +1 -0
  417. package/dist/core/workers/worker.js +225 -0
  418. package/dist/core/workers/worker.js.map +1 -0
  419. package/dist/index.d.ts +14 -1
  420. package/dist/index.js +11 -1
  421. package/dist/index.js.map +1 -1
  422. package/dist/moro.d.ts +486 -1
  423. package/dist/moro.js +1194 -28
  424. package/dist/moro.js.map +1 -1
  425. package/dist/types/cache.d.ts +4 -0
  426. package/dist/types/config.d.ts +70 -0
  427. package/dist/types/core.d.ts +19 -1
  428. package/dist/types/events.d.ts +1 -1
  429. package/dist/types/events.js +1 -0
  430. package/dist/types/events.js.map +1 -1
  431. package/dist/types/module.d.ts +2 -2
  432. package/package.json +110 -16
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Queue Manager
3
+ * Central manager for all queue operations in MoroJS
4
+ */
5
+ import type { IQueueManager, QueueOptions, Job, JobOptions, JobHandler, BulkJobData, QueueStatus } from './types.js';
6
+ import type { EventEmitter } from 'events';
7
+ /**
8
+ * Queue Manager
9
+ * Manages multiple queues with different adapters
10
+ */
11
+ export declare class QueueManager implements IQueueManager {
12
+ private queues;
13
+ private eventEmitter?;
14
+ private isShuttingDown;
15
+ constructor(eventEmitter?: EventEmitter);
16
+ /**
17
+ * Register a new queue
18
+ */
19
+ registerQueue(name: string, options: QueueOptions): Promise<void>;
20
+ /**
21
+ * Add a job to a queue
22
+ */
23
+ addToQueue<T = any>(queueName: string, data: T, options?: JobOptions): Promise<Job<T>>;
24
+ /**
25
+ * Add multiple jobs to a queue in bulk
26
+ */
27
+ addBulkToQueue<T = any>(queueName: string, jobs: BulkJobData<T>[]): Promise<Job<T>[]>;
28
+ /**
29
+ * Register a processor for a queue
30
+ */
31
+ processQueue<T = any, R = any>(queueName: string, concurrencyOrHandler: number | JobHandler<T, R>, handler?: JobHandler<T, R>): Promise<void>;
32
+ /**
33
+ * Get queue status
34
+ */
35
+ getQueueStatus(queueName: string): Promise<QueueStatus>;
36
+ /**
37
+ * Get a specific job
38
+ */
39
+ getJob(queueName: string, jobId: string): Promise<Job | null>;
40
+ /**
41
+ * Get jobs by status
42
+ */
43
+ getJobs(queueName: string, status?: 'waiting' | 'active' | 'completed' | 'failed' | 'delayed' | 'paused', start?: number, end?: number): Promise<Job[]>;
44
+ /**
45
+ * Remove a job
46
+ */
47
+ removeJob(queueName: string, jobId: string): Promise<void>;
48
+ /**
49
+ * Retry a failed job
50
+ */
51
+ retryJob(queueName: string, jobId: string): Promise<void>;
52
+ /**
53
+ * Pause a queue
54
+ */
55
+ pauseQueue(queueName: string): Promise<void>;
56
+ /**
57
+ * Resume a queue
58
+ */
59
+ resumeQueue(queueName: string): Promise<void>;
60
+ /**
61
+ * Clean old jobs from a queue
62
+ */
63
+ cleanQueue(queueName: string, gracePeriod: number, status?: 'waiting' | 'active' | 'completed' | 'failed' | 'delayed' | 'paused'): Promise<void>;
64
+ /**
65
+ * Obliterate a queue (delete all data)
66
+ */
67
+ obliterateQueue(queueName: string): Promise<void>;
68
+ /**
69
+ * Get all registered queues
70
+ */
71
+ getQueueNames(): string[];
72
+ /**
73
+ * Check if a queue is registered
74
+ */
75
+ hasQueue(queueName: string): boolean;
76
+ /**
77
+ * Shutdown all queues gracefully
78
+ */
79
+ shutdown(): Promise<void>;
80
+ /**
81
+ * Create an adapter instance based on options
82
+ */
83
+ private createAdapter;
84
+ /**
85
+ * Get a registered queue
86
+ */
87
+ private getQueue;
88
+ /**
89
+ * Emit a queue event
90
+ */
91
+ private emitEvent;
92
+ }
@@ -0,0 +1,327 @@
1
+ /**
2
+ * Queue Manager
3
+ * Central manager for all queue operations in MoroJS
4
+ */
5
+ import { MemoryAdapter } from './adapters/memory-adapter.js';
6
+ import { BullAdapter } from './adapters/bull-adapter.js';
7
+ import { RabbitMQAdapter } from './adapters/rabbitmq-adapter.js';
8
+ import { SQSAdapter } from './adapters/sqs-adapter.js';
9
+ import { KafkaAdapter } from './adapters/kafka-adapter.js';
10
+ import { createFrameworkLogger } from '../logger/index.js';
11
+ const logger = createFrameworkLogger('QueueManager');
12
+ /**
13
+ * Queue Manager
14
+ * Manages multiple queues with different adapters
15
+ */
16
+ export class QueueManager {
17
+ queues = new Map();
18
+ eventEmitter;
19
+ isShuttingDown = false;
20
+ constructor(eventEmitter) {
21
+ this.eventEmitter = eventEmitter;
22
+ }
23
+ /**
24
+ * Register a new queue
25
+ */
26
+ async registerQueue(name, options) {
27
+ if (this.queues.has(name)) {
28
+ throw new Error(`Queue "${name}" is already registered`);
29
+ }
30
+ // Create adapter based on type
31
+ const adapter = this.createAdapter(options);
32
+ // Initialize adapter
33
+ await adapter.initialize();
34
+ // Register queue
35
+ this.queues.set(name, {
36
+ name,
37
+ options,
38
+ adapter,
39
+ processors: new Map(),
40
+ });
41
+ this.emitEvent('queue:created', {
42
+ queueName: name,
43
+ timestamp: Date.now(),
44
+ });
45
+ }
46
+ /**
47
+ * Add a job to a queue
48
+ */
49
+ async addToQueue(queueName, data, options) {
50
+ const queue = this.getQueue(queueName);
51
+ // Merge with default options
52
+ const finalOptions = {
53
+ ...queue.options.defaultJobOptions,
54
+ ...options,
55
+ };
56
+ const job = await queue.adapter.addJob(queueName, data, finalOptions);
57
+ this.emitEvent('queue:job:added', {
58
+ queueName,
59
+ jobId: job.id,
60
+ job,
61
+ timestamp: Date.now(),
62
+ });
63
+ return job;
64
+ }
65
+ /**
66
+ * Add multiple jobs to a queue in bulk
67
+ */
68
+ async addBulkToQueue(queueName, jobs) {
69
+ const queue = this.getQueue(queueName);
70
+ // Merge with default options for each job
71
+ const jobsWithDefaults = jobs.map(job => ({
72
+ ...job,
73
+ options: {
74
+ ...queue.options.defaultJobOptions,
75
+ ...job.options,
76
+ },
77
+ }));
78
+ const addedJobs = await queue.adapter.addBulkJobs(queueName, jobsWithDefaults);
79
+ for (const job of addedJobs) {
80
+ this.emitEvent('queue:job:added', {
81
+ queueName,
82
+ jobId: job.id,
83
+ job,
84
+ timestamp: Date.now(),
85
+ });
86
+ }
87
+ return addedJobs;
88
+ }
89
+ /**
90
+ * Register a processor for a queue
91
+ */
92
+ async processQueue(queueName, concurrencyOrHandler, handler) {
93
+ const queue = this.getQueue(queueName);
94
+ // Parse arguments
95
+ let concurrency;
96
+ let actualHandler;
97
+ if (typeof concurrencyOrHandler === 'function') {
98
+ concurrency = queue.options.concurrency || 1;
99
+ actualHandler = concurrencyOrHandler;
100
+ }
101
+ else {
102
+ concurrency = concurrencyOrHandler;
103
+ if (!handler) {
104
+ throw new Error('Handler function is required when concurrency is specified');
105
+ }
106
+ actualHandler = handler;
107
+ }
108
+ // Wrap handler to emit events
109
+ const wrappedHandler = async (job) => {
110
+ try {
111
+ this.emitEvent('queue:job:active', {
112
+ queueName,
113
+ jobId: job.id,
114
+ job,
115
+ timestamp: Date.now(),
116
+ });
117
+ // Wrap updateProgress to emit events
118
+ const originalUpdateProgress = job.updateProgress;
119
+ job.updateProgress = async (progress) => {
120
+ await originalUpdateProgress.call(job, progress);
121
+ this.emitEvent('queue:job:progress', {
122
+ queueName,
123
+ jobId: job.id,
124
+ progress,
125
+ timestamp: Date.now(),
126
+ });
127
+ };
128
+ const result = await actualHandler(job);
129
+ this.emitEvent('queue:job:completed', {
130
+ queueName,
131
+ jobId: job.id,
132
+ job,
133
+ result,
134
+ timestamp: Date.now(),
135
+ });
136
+ return result;
137
+ }
138
+ catch (error) {
139
+ this.emitEvent('queue:job:failed', {
140
+ queueName,
141
+ jobId: job.id,
142
+ job,
143
+ error: error,
144
+ timestamp: Date.now(),
145
+ });
146
+ throw error;
147
+ }
148
+ };
149
+ // Store processor
150
+ queue.processors.set(queueName, wrappedHandler);
151
+ // Register with adapter
152
+ await queue.adapter.process(queueName, concurrency, wrappedHandler);
153
+ }
154
+ /**
155
+ * Get queue status
156
+ */
157
+ async getQueueStatus(queueName) {
158
+ const queue = this.getQueue(queueName);
159
+ const metrics = await queue.adapter.getMetrics(queueName);
160
+ return {
161
+ name: queueName,
162
+ adapter: queue.options.adapter,
163
+ isPaused: metrics.paused > 0,
164
+ metrics,
165
+ workers: queue.processors.size,
166
+ };
167
+ }
168
+ /**
169
+ * Get a specific job
170
+ */
171
+ async getJob(queueName, jobId) {
172
+ const queue = this.getQueue(queueName);
173
+ return await queue.adapter.getJob(queueName, jobId);
174
+ }
175
+ /**
176
+ * Get jobs by status
177
+ */
178
+ async getJobs(queueName, status, start = 0, end = -1) {
179
+ const queue = this.getQueue(queueName);
180
+ return await queue.adapter.getJobs(queueName, status, start, end);
181
+ }
182
+ /**
183
+ * Remove a job
184
+ */
185
+ async removeJob(queueName, jobId) {
186
+ const queue = this.getQueue(queueName);
187
+ await queue.adapter.removeJob(queueName, jobId);
188
+ this.emitEvent('queue:job:removed', {
189
+ queueName,
190
+ jobId,
191
+ timestamp: Date.now(),
192
+ });
193
+ }
194
+ /**
195
+ * Retry a failed job
196
+ */
197
+ async retryJob(queueName, jobId) {
198
+ const queue = this.getQueue(queueName);
199
+ await queue.adapter.retryJob(queueName, jobId);
200
+ }
201
+ /**
202
+ * Pause a queue
203
+ */
204
+ async pauseQueue(queueName) {
205
+ const queue = this.getQueue(queueName);
206
+ await queue.adapter.pauseQueue(queueName);
207
+ this.emitEvent('queue:paused', {
208
+ queueName,
209
+ timestamp: Date.now(),
210
+ });
211
+ }
212
+ /**
213
+ * Resume a queue
214
+ */
215
+ async resumeQueue(queueName) {
216
+ const queue = this.getQueue(queueName);
217
+ await queue.adapter.resumeQueue(queueName);
218
+ this.emitEvent('queue:resumed', {
219
+ queueName,
220
+ timestamp: Date.now(),
221
+ });
222
+ }
223
+ /**
224
+ * Clean old jobs from a queue
225
+ */
226
+ async cleanQueue(queueName, gracePeriod, status) {
227
+ const queue = this.getQueue(queueName);
228
+ await queue.adapter.clean(queueName, gracePeriod, status);
229
+ this.emitEvent('queue:cleaned', {
230
+ queueName,
231
+ timestamp: Date.now(),
232
+ });
233
+ }
234
+ /**
235
+ * Obliterate a queue (delete all data)
236
+ */
237
+ async obliterateQueue(queueName) {
238
+ const queue = this.getQueue(queueName);
239
+ await queue.adapter.obliterate(queueName);
240
+ this.emitEvent('queue:drained', {
241
+ queueName,
242
+ timestamp: Date.now(),
243
+ });
244
+ this.queues.delete(queueName);
245
+ }
246
+ /**
247
+ * Get all registered queues
248
+ */
249
+ getQueueNames() {
250
+ return Array.from(this.queues.keys());
251
+ }
252
+ /**
253
+ * Check if a queue is registered
254
+ */
255
+ hasQueue(queueName) {
256
+ return this.queues.has(queueName);
257
+ }
258
+ /**
259
+ * Shutdown all queues gracefully
260
+ */
261
+ async shutdown() {
262
+ if (this.isShuttingDown) {
263
+ return;
264
+ }
265
+ this.isShuttingDown = true;
266
+ // Close all adapters
267
+ const shutdownPromises = Array.from(this.queues.values()).map(async (queue) => {
268
+ try {
269
+ await queue.adapter.close();
270
+ }
271
+ catch (error) {
272
+ logger.error(`Error closing queue ${queue.name}: ${error}`);
273
+ }
274
+ });
275
+ await Promise.all(shutdownPromises);
276
+ this.queues.clear();
277
+ this.isShuttingDown = false;
278
+ }
279
+ /**
280
+ * Create an adapter instance based on options
281
+ */
282
+ createAdapter(options) {
283
+ switch (options.adapter) {
284
+ case 'memory':
285
+ return new MemoryAdapter();
286
+ case 'bull':
287
+ return new BullAdapter(options.connection);
288
+ case 'rabbitmq':
289
+ return new RabbitMQAdapter(options.connection);
290
+ case 'sqs':
291
+ return new SQSAdapter(options.connection);
292
+ case 'kafka':
293
+ return new KafkaAdapter(options.connection);
294
+ default:
295
+ throw new Error(`Unknown queue adapter: ${options.adapter}`);
296
+ }
297
+ }
298
+ /**
299
+ * Get a registered queue
300
+ */
301
+ getQueue(queueName) {
302
+ const queue = this.queues.get(queueName);
303
+ if (!queue) {
304
+ throw new Error(`Queue "${queueName}" is not registered. Call app.queue('${queueName}', options) first.`);
305
+ }
306
+ return queue;
307
+ }
308
+ /**
309
+ * Emit a queue event
310
+ */
311
+ emitEvent(eventType, payload) {
312
+ if (!this.eventEmitter) {
313
+ return;
314
+ }
315
+ const event = {
316
+ queueName: payload.queueName || '',
317
+ jobId: payload.jobId,
318
+ job: payload.job,
319
+ result: payload.result,
320
+ error: payload.error,
321
+ progress: payload.progress,
322
+ timestamp: payload.timestamp || Date.now(),
323
+ };
324
+ this.eventEmitter.emit(eventType, event);
325
+ }
326
+ }
327
+ //# sourceMappingURL=queue-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-manager.js","sourceRoot":"","sources":["../../../src/core/queue/queue-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Message Queue System - Type Definitions
3
+ * Pure ESM module with comprehensive types for queue operations
4
+ */
5
+ /**
6
+ * Supported queue adapter types
7
+ */
8
+ export type QueueAdapterType = 'bull' | 'rabbitmq' | 'sqs' | 'kafka' | 'memory';
9
+ /**
10
+ * Job status states
11
+ */
12
+ export type JobStatus = 'waiting' | 'active' | 'completed' | 'failed' | 'delayed' | 'paused';
13
+ /**
14
+ * Backoff strategy for job retries
15
+ */
16
+ export type BackoffStrategy = 'fixed' | 'exponential' | 'linear';
17
+ /**
18
+ * Queue adapter connection configuration
19
+ */
20
+ export interface QueueConnectionConfig {
21
+ host?: string;
22
+ port?: number;
23
+ username?: string;
24
+ password?: string;
25
+ database?: number;
26
+ brokers?: string[];
27
+ groupId?: string;
28
+ region?: string;
29
+ queueUrl?: string;
30
+ [key: string]: any;
31
+ }
32
+ /**
33
+ * Retry configuration
34
+ */
35
+ export interface RetryConfig {
36
+ maxAttempts: number;
37
+ backoff: BackoffStrategy;
38
+ initialDelay: number;
39
+ maxDelay?: number;
40
+ }
41
+ /**
42
+ * Dead letter queue configuration
43
+ */
44
+ export interface DeadLetterQueueConfig {
45
+ enabled: boolean;
46
+ maxRetries: number;
47
+ queueName?: string;
48
+ }
49
+ /**
50
+ * Job options for individual jobs
51
+ */
52
+ export interface JobOptions {
53
+ priority?: number;
54
+ delay?: number;
55
+ attempts?: number;
56
+ backoff?: {
57
+ type: BackoffStrategy;
58
+ delay: number;
59
+ };
60
+ timeout?: number;
61
+ removeOnComplete?: boolean | number;
62
+ removeOnFail?: boolean | number;
63
+ repeat?: {
64
+ cron?: string;
65
+ every?: number;
66
+ limit?: number;
67
+ endDate?: Date | string;
68
+ };
69
+ jobId?: string;
70
+ [key: string]: any;
71
+ }
72
+ /**
73
+ * Default job options for a queue
74
+ */
75
+ export interface DefaultJobOptions {
76
+ removeOnComplete?: boolean | number;
77
+ removeOnFail?: boolean | number;
78
+ attempts?: number;
79
+ backoff?: {
80
+ type: BackoffStrategy;
81
+ delay: number;
82
+ };
83
+ }
84
+ /**
85
+ * Queue configuration options
86
+ */
87
+ export interface QueueOptions {
88
+ adapter: QueueAdapterType;
89
+ connection?: QueueConnectionConfig;
90
+ concurrency?: number;
91
+ retry?: RetryConfig;
92
+ deadLetterQueue?: DeadLetterQueueConfig;
93
+ defaultJobOptions?: DefaultJobOptions;
94
+ prefix?: string;
95
+ limiter?: {
96
+ max: number;
97
+ duration: number;
98
+ };
99
+ }
100
+ /**
101
+ * Job data structure
102
+ */
103
+ export interface Job<T = any> {
104
+ id: string;
105
+ name: string;
106
+ data: T;
107
+ progress: number;
108
+ attemptsMade: number;
109
+ timestamp: number;
110
+ processedOn?: number;
111
+ finishedOn?: number;
112
+ failedReason?: string;
113
+ stacktrace?: string[];
114
+ returnvalue?: any;
115
+ opts: JobOptions;
116
+ }
117
+ /**
118
+ * Job context with helper methods
119
+ */
120
+ export interface JobContext<T = any> extends Job<T> {
121
+ updateProgress(progress: number): Promise<void>;
122
+ log(message: string): void;
123
+ }
124
+ /**
125
+ * Job handler function
126
+ */
127
+ export type JobHandler<T = any, R = any> = (job: JobContext<T>) => Promise<R>;
128
+ /**
129
+ * Bulk job data
130
+ */
131
+ export interface BulkJobData<T = any> {
132
+ data: T;
133
+ options?: JobOptions;
134
+ }
135
+ /**
136
+ * Queue metrics
137
+ */
138
+ export interface QueueMetrics {
139
+ waiting: number;
140
+ active: number;
141
+ completed: number;
142
+ failed: number;
143
+ delayed: number;
144
+ paused: number;
145
+ }
146
+ /**
147
+ * Queue event types
148
+ */
149
+ export type QueueEventType = 'queue:created' | 'queue:job:added' | 'queue:job:active' | 'queue:job:completed' | 'queue:job:failed' | 'queue:job:progress' | 'queue:job:stalled' | 'queue:job:removed' | 'queue:paused' | 'queue:resumed' | 'queue:cleaned' | 'queue:drained' | 'queue:error';
150
+ /**
151
+ * Queue event payload
152
+ */
153
+ export interface QueueEvent {
154
+ queueName: string;
155
+ jobId?: string;
156
+ job?: Job;
157
+ result?: any;
158
+ error?: Error;
159
+ progress?: number;
160
+ timestamp: number;
161
+ }
162
+ /**
163
+ * Queue status
164
+ */
165
+ export interface QueueStatus {
166
+ name: string;
167
+ adapter: QueueAdapterType;
168
+ isPaused: boolean;
169
+ metrics: QueueMetrics;
170
+ workers: number;
171
+ }
172
+ /**
173
+ * Base queue adapter interface
174
+ */
175
+ export interface IQueueAdapter {
176
+ name: string;
177
+ isReady: boolean;
178
+ initialize(): Promise<void>;
179
+ addJob<T = any>(queueName: string, data: T, options?: JobOptions): Promise<Job<T>>;
180
+ addBulkJobs<T = any>(queueName: string, jobs: BulkJobData<T>[]): Promise<Job<T>[]>;
181
+ process<T = any, R = any>(queueName: string, concurrency: number, handler: JobHandler<T, R>): Promise<void>;
182
+ getJob(queueName: string, jobId: string): Promise<Job | null>;
183
+ getJobs(queueName: string, status?: JobStatus, start?: number, end?: number): Promise<Job[]>;
184
+ removeJob(queueName: string, jobId: string): Promise<void>;
185
+ retryJob(queueName: string, jobId: string): Promise<void>;
186
+ pauseQueue(queueName: string): Promise<void>;
187
+ resumeQueue(queueName: string): Promise<void>;
188
+ getMetrics(queueName: string): Promise<QueueMetrics>;
189
+ clean(queueName: string, gracePeriod: number, status?: JobStatus): Promise<void>;
190
+ obliterate(queueName: string): Promise<void>;
191
+ close(): Promise<void>;
192
+ }
193
+ /**
194
+ * Queue manager interface
195
+ */
196
+ export interface IQueueManager {
197
+ registerQueue(name: string, options: QueueOptions): Promise<void>;
198
+ addToQueue<T = any>(queueName: string, data: T, options?: JobOptions): Promise<Job<T>>;
199
+ addBulkToQueue<T = any>(queueName: string, jobs: BulkJobData<T>[]): Promise<Job<T>[]>;
200
+ processQueue<T = any, R = any>(queueName: string, concurrencyOrHandler: number | JobHandler<T, R>, handler?: JobHandler<T, R>): Promise<void>;
201
+ getQueueStatus(queueName: string): Promise<QueueStatus>;
202
+ pauseQueue(queueName: string): Promise<void>;
203
+ resumeQueue(queueName: string): Promise<void>;
204
+ shutdown(): Promise<void>;
205
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Message Queue System - Type Definitions
3
+ * Pure ESM module with comprehensive types for queue operations
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/queue/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -6,7 +6,7 @@ import { HttpRequest, HttpResponse } from '../http/index.js';
6
6
  */
7
7
  export declare class RouteRegistry {
8
8
  private router;
9
- register(route: CompiledRoute): void;
9
+ register(_route: CompiledRoute): void;
10
10
  handleRequest(req: HttpRequest, res: HttpResponse): Promise<boolean>;
11
11
  getRoutes(): CompiledRoute[];
12
12
  }
@@ -20,7 +20,7 @@ export interface IntelligentApp {
20
20
  options(path: string): RouteBuilder;
21
21
  route(schema: RouteSchema): CompiledRoute;
22
22
  register(route: CompiledRoute): void;
23
- directRoute(method: string, path: string, handler: Function, options?: any): void;
23
+ directRoute(method: string, path: string, handler: (req: any, res: any) => any | Promise<any>, options?: any): void;
24
24
  }
25
25
  export declare class IntelligentRoutingManager implements IntelligentApp {
26
26
  private router;
@@ -35,7 +35,7 @@ export declare class IntelligentRoutingManager implements IntelligentApp {
35
35
  register(_route: CompiledRoute): void;
36
36
  handleIntelligentRoute(req: HttpRequest, res: HttpResponse): Promise<boolean>;
37
37
  getIntelligentRoutes(): CompiledRoute[];
38
- directRoute(method: string, path: string, handler: Function, options?: any): void;
38
+ directRoute(method: string, path: string, handler: (req: any, res: any) => any | Promise<any>, options?: any): void;
39
39
  private createChainableRoute;
40
40
  }
41
41
  export type AppWithIntelligentRouting = IntelligentApp & {
@@ -14,7 +14,7 @@ const logger = createFrameworkLogger('AppIntegration');
14
14
  */
15
15
  export class RouteRegistry {
16
16
  router = UnifiedRouter.getInstance();
17
- register(route) {
17
+ register(_route) {
18
18
  // Routes are automatically registered with UnifiedRouter when created
19
19
  // This is a no-op for API compatibility
20
20
  }