@geekmidas/events 0.2.0 → 1.1.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 (257) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/{BasicConnection-BTRsXiuH.d.cts → BasicConnection-CQsJpx2J.d.cts} +2 -2
  3. package/dist/{BasicConnection-DIxtA7jK.d.mts.map → BasicConnection-CQsJpx2J.d.cts.map} +1 -1
  4. package/dist/{BasicConnection-C-Cg2FJT.cjs → BasicConnection-CxfNEvlb.cjs} +2 -2
  5. package/dist/{BasicConnection-C-Cg2FJT.cjs.map → BasicConnection-CxfNEvlb.cjs.map} +1 -1
  6. package/dist/{BasicConnection-DIxtA7jK.d.mts → BasicConnection-DcRelT64.d.mts} +2 -2
  7. package/dist/{BasicConnection-BTRsXiuH.d.cts.map → BasicConnection-DcRelT64.d.mts.map} +1 -1
  8. package/dist/{BasicConnection-CpwybcC9.mjs → BasicConnection-hl-Ogz3a.mjs} +2 -2
  9. package/dist/{BasicConnection-CpwybcC9.mjs.map → BasicConnection-hl-Ogz3a.mjs.map} +1 -1
  10. package/dist/{BasicPublisher-D1q0a2xp.d.cts → BasicPublisher-C-hMX2Hy.d.mts} +3 -3
  11. package/dist/{BasicPublisher-CpJFK2oS.d.mts.map → BasicPublisher-C-hMX2Hy.d.mts.map} +1 -1
  12. package/dist/{BasicPublisher-CpJFK2oS.d.mts → BasicPublisher-CGMXg2I2.d.cts} +3 -3
  13. package/dist/{BasicPublisher-D1q0a2xp.d.cts.map → BasicPublisher-CGMXg2I2.d.cts.map} +1 -1
  14. package/dist/{BasicSubscriber-6w0Af4DD.d.mts → BasicSubscriber-HzSJ_MbB.d.mts} +3 -3
  15. package/dist/{BasicSubscriber-6w0Af4DD.d.mts.map → BasicSubscriber-HzSJ_MbB.d.mts.map} +1 -1
  16. package/dist/{BasicSubscriber-DXxQewjc.d.cts → BasicSubscriber-uW3IOyBj.d.cts} +3 -3
  17. package/dist/{BasicSubscriber-DXxQewjc.d.cts.map → BasicSubscriber-uW3IOyBj.d.cts.map} +1 -1
  18. package/dist/{EventConnection-BaJRXdg7.d.cts → EventConnection-4niMI6D8.d.mts} +2 -2
  19. package/dist/{EventConnection-BaJRXdg7.d.cts.map → EventConnection-4niMI6D8.d.mts.map} +1 -1
  20. package/dist/{EventConnection-F_N81SXu.cjs → EventConnection-BkA9FSVL.cjs} +6 -2
  21. package/dist/{EventConnection-F_N81SXu.cjs.map → EventConnection-BkA9FSVL.cjs.map} +1 -1
  22. package/dist/{EventConnection-ClLMoIUU.mjs → EventConnection-Kr32GAzq.mjs} +6 -2
  23. package/dist/{EventConnection-ClLMoIUU.mjs.map → EventConnection-Kr32GAzq.mjs.map} +1 -1
  24. package/dist/{EventConnection-SOhtmxib.d.mts → EventConnection-dP42P87q.d.cts} +2 -2
  25. package/dist/{EventConnection-SOhtmxib.d.mts.map → EventConnection-dP42P87q.d.cts.map} +1 -1
  26. package/dist/EventConnection.cjs +2 -2
  27. package/dist/EventConnection.d.cts +2 -2
  28. package/dist/EventConnection.d.mts +2 -2
  29. package/dist/EventConnection.mjs +2 -2
  30. package/dist/PgBossConnection-BZUA7Is0.mjs +74 -0
  31. package/dist/PgBossConnection-BZUA7Is0.mjs.map +1 -0
  32. package/dist/PgBossConnection-Cd4x7NuY.d.mts +32 -0
  33. package/dist/PgBossConnection-Cd4x7NuY.d.mts.map +1 -0
  34. package/dist/PgBossConnection-YdhixTjL.d.cts +32 -0
  35. package/dist/PgBossConnection-YdhixTjL.d.cts.map +1 -0
  36. package/dist/PgBossConnection-wLwq2r13.cjs +80 -0
  37. package/dist/PgBossConnection-wLwq2r13.cjs.map +1 -0
  38. package/dist/PgBossPublisher-B6VE_5KT.mjs +31 -0
  39. package/dist/PgBossPublisher-B6VE_5KT.mjs.map +1 -0
  40. package/dist/PgBossPublisher-J6bY44Da.d.cts +20 -0
  41. package/dist/PgBossPublisher-J6bY44Da.d.cts.map +1 -0
  42. package/dist/PgBossPublisher-b0deuqhy.d.mts +20 -0
  43. package/dist/PgBossPublisher-b0deuqhy.d.mts.map +1 -0
  44. package/dist/PgBossPublisher-kFh3Mnbx.cjs +37 -0
  45. package/dist/PgBossPublisher-kFh3Mnbx.cjs.map +1 -0
  46. package/dist/PgBossSubscriber-2z82EaLF.d.mts +24 -0
  47. package/dist/PgBossSubscriber-2z82EaLF.d.mts.map +1 -0
  48. package/dist/PgBossSubscriber-BubVfuWm.cjs +52 -0
  49. package/dist/PgBossSubscriber-BubVfuWm.cjs.map +1 -0
  50. package/dist/PgBossSubscriber-CB6vm-LD.d.cts +24 -0
  51. package/dist/PgBossSubscriber-CB6vm-LD.d.cts.map +1 -0
  52. package/dist/PgBossSubscriber-DopATe80.mjs +46 -0
  53. package/dist/PgBossSubscriber-DopATe80.mjs.map +1 -0
  54. package/dist/{Publisher-ceu6OxCj.cjs → Publisher-CKloIGh6.cjs} +11 -2
  55. package/dist/{Publisher-ceu6OxCj.cjs.map → Publisher-CKloIGh6.cjs.map} +1 -1
  56. package/dist/{Publisher-DS0aOh8r.mjs → Publisher-ChLTrUeP.mjs} +11 -2
  57. package/dist/{Publisher-DS0aOh8r.mjs.map → Publisher-ChLTrUeP.mjs.map} +1 -1
  58. package/dist/{Publisher-1CfcYRnm.d.mts → Publisher-DDee6xau.d.cts} +2 -2
  59. package/dist/{Publisher-1CfcYRnm.d.mts.map → Publisher-DDee6xau.d.cts.map} +1 -1
  60. package/dist/{Publisher-BfNgvHwQ.d.cts → Publisher-VHumMkrP.d.mts} +2 -2
  61. package/dist/{Publisher-BfNgvHwQ.d.cts.map → Publisher-VHumMkrP.d.mts.map} +1 -1
  62. package/dist/Publisher.cjs +2 -2
  63. package/dist/Publisher.d.cts +2 -2
  64. package/dist/Publisher.d.mts +2 -2
  65. package/dist/Publisher.mjs +2 -2
  66. package/dist/{RabbitMQConnection-Co7f5Xsx.mjs → RabbitMQConnection-BtKZjtZY.mjs} +2 -2
  67. package/dist/{RabbitMQConnection-Co7f5Xsx.mjs.map → RabbitMQConnection-BtKZjtZY.mjs.map} +1 -1
  68. package/dist/{RabbitMQConnection-Bm8VCI2R.d.cts → RabbitMQConnection-DV9t3VYp.d.mts} +2 -2
  69. package/dist/{RabbitMQConnection-Bm8VCI2R.d.cts.map → RabbitMQConnection-DV9t3VYp.d.mts.map} +1 -1
  70. package/dist/{RabbitMQConnection-Blj9Lo05.cjs → RabbitMQConnection-DmMMosT4.cjs} +2 -2
  71. package/dist/{RabbitMQConnection-Blj9Lo05.cjs.map → RabbitMQConnection-DmMMosT4.cjs.map} +1 -1
  72. package/dist/{RabbitMQConnection-Ck-ktCp_.d.mts → RabbitMQConnection-jNME_eR7.d.cts} +2 -2
  73. package/dist/{RabbitMQConnection-Ck-ktCp_.d.mts.map → RabbitMQConnection-jNME_eR7.d.cts.map} +1 -1
  74. package/dist/{RabbitMQPublisher--DL6GM6g.cjs → RabbitMQPublisher-C94q6g8q.cjs} +1 -1
  75. package/dist/{RabbitMQPublisher--DL6GM6g.cjs.map → RabbitMQPublisher-C94q6g8q.cjs.map} +1 -1
  76. package/dist/{RabbitMQPublisher-COnxcWEZ.d.mts → RabbitMQPublisher-DKmgwqVj.d.mts} +3 -3
  77. package/dist/{RabbitMQPublisher-COnxcWEZ.d.mts.map → RabbitMQPublisher-DKmgwqVj.d.mts.map} +1 -1
  78. package/dist/{RabbitMQPublisher-qQT7-1-p.d.cts → RabbitMQPublisher-d257OHLa.d.cts} +3 -3
  79. package/dist/{RabbitMQPublisher-qQT7-1-p.d.cts.map → RabbitMQPublisher-d257OHLa.d.cts.map} +1 -1
  80. package/dist/{RabbitMQPublisher-o_oVI3wr.mjs → RabbitMQPublisher-yUqWNq-P.mjs} +1 -1
  81. package/dist/{RabbitMQPublisher-o_oVI3wr.mjs.map → RabbitMQPublisher-yUqWNq-P.mjs.map} +1 -1
  82. package/dist/{RabbitMQSubscriber-C_sZjDPU.d.mts → RabbitMQSubscriber-BF7JGfYm.d.cts} +3 -3
  83. package/dist/{RabbitMQSubscriber-C_sZjDPU.d.mts.map → RabbitMQSubscriber-BF7JGfYm.d.cts.map} +1 -1
  84. package/dist/{RabbitMQSubscriber-DlGL0pC2.mjs → RabbitMQSubscriber-BWniDtFs.mjs} +1 -1
  85. package/dist/{RabbitMQSubscriber-DlGL0pC2.mjs.map → RabbitMQSubscriber-BWniDtFs.mjs.map} +1 -1
  86. package/dist/{RabbitMQSubscriber-D12sssMb.d.cts → RabbitMQSubscriber-CdbUy5mB.d.mts} +3 -3
  87. package/dist/{RabbitMQSubscriber-D12sssMb.d.cts.map → RabbitMQSubscriber-CdbUy5mB.d.mts.map} +1 -1
  88. package/dist/{RabbitMQSubscriber-C8MYAihn.cjs → RabbitMQSubscriber-DGEO-clQ.cjs} +1 -1
  89. package/dist/{RabbitMQSubscriber-C8MYAihn.cjs.map → RabbitMQSubscriber-DGEO-clQ.cjs.map} +1 -1
  90. package/dist/{SNSConnection-DVsC_pbB.cjs → SNSConnection-CAcbLQOy.cjs} +2 -2
  91. package/dist/{SNSConnection-DVsC_pbB.cjs.map → SNSConnection-CAcbLQOy.cjs.map} +1 -1
  92. package/dist/{SNSConnection-BDfQrVBO.d.cts → SNSConnection-CG4iEwA8.d.mts} +2 -2
  93. package/dist/{SNSConnection-BDfQrVBO.d.cts.map → SNSConnection-CG4iEwA8.d.mts.map} +1 -1
  94. package/dist/{SNSConnection-D7wCf9Si.mjs → SNSConnection-CVjH93lb.mjs} +2 -2
  95. package/dist/{SNSConnection-D7wCf9Si.mjs.map → SNSConnection-CVjH93lb.mjs.map} +1 -1
  96. package/dist/{SNSConnection-mHb10nQ6.d.mts → SNSConnection-Dol9FuxA.d.cts} +2 -2
  97. package/dist/{SNSConnection-mHb10nQ6.d.mts.map → SNSConnection-Dol9FuxA.d.cts.map} +1 -1
  98. package/dist/{SNSPublisher-Drr4kHn6.mjs → SNSPublisher-CjlMS3Z2.mjs} +1 -1
  99. package/dist/{SNSPublisher-Drr4kHn6.mjs.map → SNSPublisher-CjlMS3Z2.mjs.map} +1 -1
  100. package/dist/{SNSPublisher-CM7UAWtf.d.mts → SNSPublisher-D50dPCEh.d.mts} +3 -3
  101. package/dist/{SNSPublisher-CM7UAWtf.d.mts.map → SNSPublisher-D50dPCEh.d.mts.map} +1 -1
  102. package/dist/{SNSPublisher-kpsSlGDn.d.cts → SNSPublisher-DQunY4NM.d.cts} +3 -3
  103. package/dist/{SNSPublisher-kpsSlGDn.d.cts.map → SNSPublisher-DQunY4NM.d.cts.map} +1 -1
  104. package/dist/{SNSPublisher-BoA8uLnw.cjs → SNSPublisher-DV_8GGsi.cjs} +1 -1
  105. package/dist/{SNSPublisher-BoA8uLnw.cjs.map → SNSPublisher-DV_8GGsi.cjs.map} +1 -1
  106. package/dist/{SNSSubscriber-CBIvQpqK.mjs → SNSSubscriber-BWaCQFl6.mjs} +3 -3
  107. package/dist/{SNSSubscriber-CBIvQpqK.mjs.map → SNSSubscriber-BWaCQFl6.mjs.map} +1 -1
  108. package/dist/{SNSSubscriber-DDB3--pm.d.cts → SNSSubscriber-CUgHK4W2.d.mts} +3 -3
  109. package/dist/{SNSSubscriber-DDB3--pm.d.cts.map → SNSSubscriber-CUgHK4W2.d.mts.map} +1 -1
  110. package/dist/{SNSSubscriber-CWiAJjpU.cjs → SNSSubscriber-ZE_-Hsps.cjs} +3 -3
  111. package/dist/{SNSSubscriber-CWiAJjpU.cjs.map → SNSSubscriber-ZE_-Hsps.cjs.map} +1 -1
  112. package/dist/{SNSSubscriber-Dwo8391f.d.mts → SNSSubscriber-ZGJjhXFQ.d.cts} +3 -3
  113. package/dist/{SNSSubscriber-Dwo8391f.d.mts.map → SNSSubscriber-ZGJjhXFQ.d.cts.map} +1 -1
  114. package/dist/{SQSConnection-B5Ep9Tma.d.cts → SQSConnection-BtEkDha8.d.cts} +2 -2
  115. package/dist/{SQSConnection-B5Ep9Tma.d.cts.map → SQSConnection-BtEkDha8.d.cts.map} +1 -1
  116. package/dist/{SQSConnection-Eleqqre3.mjs → SQSConnection-CT3S7_zP.mjs} +2 -2
  117. package/dist/{SQSConnection-Eleqqre3.mjs.map → SQSConnection-CT3S7_zP.mjs.map} +1 -1
  118. package/dist/{SQSConnection-BI_xOzyJ.d.mts → SQSConnection-DVy43GCV.d.mts} +2 -2
  119. package/dist/{SQSConnection-BI_xOzyJ.d.mts.map → SQSConnection-DVy43GCV.d.mts.map} +1 -1
  120. package/dist/{SQSConnection-BwNjUPr4.cjs → SQSConnection-Y0mdVTcB.cjs} +2 -2
  121. package/dist/{SQSConnection-BwNjUPr4.cjs.map → SQSConnection-Y0mdVTcB.cjs.map} +1 -1
  122. package/dist/{SQSPublisher-DG9o4ME3.mjs → SQSPublisher-B-32CC4G.mjs} +1 -1
  123. package/dist/{SQSPublisher-DG9o4ME3.mjs.map → SQSPublisher-B-32CC4G.mjs.map} +1 -1
  124. package/dist/{SQSPublisher-Dq5353oZ.cjs → SQSPublisher-CgUduk6H.cjs} +1 -1
  125. package/dist/{SQSPublisher-Dq5353oZ.cjs.map → SQSPublisher-CgUduk6H.cjs.map} +1 -1
  126. package/dist/{SQSPublisher-BN1ds6SN.d.mts → SQSPublisher-kyl5HW3N.d.cts} +3 -3
  127. package/dist/{SQSPublisher-BN1ds6SN.d.mts.map → SQSPublisher-kyl5HW3N.d.cts.map} +1 -1
  128. package/dist/{SQSPublisher-DFTqwzRW.d.cts → SQSPublisher-qDE5Fp-N.d.mts} +3 -3
  129. package/dist/{SQSPublisher-DFTqwzRW.d.cts.map → SQSPublisher-qDE5Fp-N.d.mts.map} +1 -1
  130. package/dist/{SQSSubscriber-B4sRXVl6.cjs → SQSSubscriber-C4UA2hKq.cjs} +1 -1
  131. package/dist/{SQSSubscriber-B4sRXVl6.cjs.map → SQSSubscriber-C4UA2hKq.cjs.map} +1 -1
  132. package/dist/{SQSSubscriber-BO2me_gs.d.cts → SQSSubscriber-CDvaG4ij.d.cts} +3 -3
  133. package/dist/{SQSSubscriber-BO2me_gs.d.cts.map → SQSSubscriber-CDvaG4ij.d.cts.map} +1 -1
  134. package/dist/{SQSSubscriber-CVGhZ8Nr.mjs → SQSSubscriber-CQdSFzpe.mjs} +1 -1
  135. package/dist/{SQSSubscriber-CVGhZ8Nr.mjs.map → SQSSubscriber-CQdSFzpe.mjs.map} +1 -1
  136. package/dist/{SQSSubscriber-FyZFfr2-.d.mts → SQSSubscriber-JfFuAAoP.d.mts} +3 -3
  137. package/dist/{SQSSubscriber-FyZFfr2-.d.mts.map → SQSSubscriber-JfFuAAoP.d.mts.map} +1 -1
  138. package/dist/{Subscriber-BxT-KzFJ.d.mts → Subscriber-CG_QUQZs.d.cts} +2 -2
  139. package/dist/{Subscriber-BxT-KzFJ.d.mts.map → Subscriber-CG_QUQZs.d.cts.map} +1 -1
  140. package/dist/{Subscriber-saVOWuMq.cjs → Subscriber-CghW0A02.cjs} +11 -2
  141. package/dist/Subscriber-CghW0A02.cjs.map +1 -0
  142. package/dist/{Subscriber-DDD_4Nlx.d.cts → Subscriber-DiYHmuF0.d.mts} +2 -2
  143. package/dist/{Subscriber-DDD_4Nlx.d.cts.map → Subscriber-DiYHmuF0.d.mts.map} +1 -1
  144. package/dist/{Subscriber-Bd9hb_jp.mjs → Subscriber-bnkFtSvt.mjs} +11 -2
  145. package/dist/Subscriber-bnkFtSvt.mjs.map +1 -0
  146. package/dist/Subscriber.cjs +2 -2
  147. package/dist/Subscriber.d.cts +2 -2
  148. package/dist/Subscriber.d.mts +2 -2
  149. package/dist/Subscriber.mjs +2 -2
  150. package/dist/basic/BasicConnection.cjs +2 -2
  151. package/dist/basic/BasicConnection.d.cts +2 -2
  152. package/dist/basic/BasicConnection.d.mts +2 -2
  153. package/dist/basic/BasicConnection.mjs +2 -2
  154. package/dist/basic/BasicPublisher.d.cts +3 -3
  155. package/dist/basic/BasicPublisher.d.mts +3 -3
  156. package/dist/basic/BasicSubscriber.d.cts +3 -3
  157. package/dist/basic/BasicSubscriber.d.mts +3 -3
  158. package/dist/basic/index.cjs +2 -2
  159. package/dist/basic/index.d.cts +4 -4
  160. package/dist/basic/index.d.mts +4 -4
  161. package/dist/basic/index.mjs +2 -2
  162. package/dist/index.cjs +4 -4
  163. package/dist/index.d.cts +4 -4
  164. package/dist/index.d.mts +4 -4
  165. package/dist/index.mjs +4 -4
  166. package/dist/pgboss/PgBossConnection.cjs +4 -0
  167. package/dist/pgboss/PgBossConnection.d.cts +3 -0
  168. package/dist/pgboss/PgBossConnection.d.mts +3 -0
  169. package/dist/pgboss/PgBossConnection.mjs +4 -0
  170. package/dist/pgboss/PgBossPublisher.cjs +3 -0
  171. package/dist/pgboss/PgBossPublisher.d.cts +4 -0
  172. package/dist/pgboss/PgBossPublisher.d.mts +4 -0
  173. package/dist/pgboss/PgBossPublisher.mjs +3 -0
  174. package/dist/pgboss/PgBossSubscriber.cjs +3 -0
  175. package/dist/pgboss/PgBossSubscriber.d.cts +4 -0
  176. package/dist/pgboss/PgBossSubscriber.d.mts +4 -0
  177. package/dist/pgboss/PgBossSubscriber.mjs +3 -0
  178. package/dist/pgboss/index.cjs +8 -0
  179. package/dist/pgboss/index.d.cts +5 -0
  180. package/dist/pgboss/index.d.mts +5 -0
  181. package/dist/pgboss/index.mjs +6 -0
  182. package/dist/rabbitmq/RabbitMQConnection.cjs +2 -2
  183. package/dist/rabbitmq/RabbitMQConnection.d.cts +2 -2
  184. package/dist/rabbitmq/RabbitMQConnection.d.mts +2 -2
  185. package/dist/rabbitmq/RabbitMQConnection.mjs +2 -2
  186. package/dist/rabbitmq/RabbitMQPublisher.cjs +1 -1
  187. package/dist/rabbitmq/RabbitMQPublisher.d.cts +3 -3
  188. package/dist/rabbitmq/RabbitMQPublisher.d.mts +3 -3
  189. package/dist/rabbitmq/RabbitMQPublisher.mjs +1 -1
  190. package/dist/rabbitmq/RabbitMQSubscriber.cjs +1 -1
  191. package/dist/rabbitmq/RabbitMQSubscriber.d.cts +3 -3
  192. package/dist/rabbitmq/RabbitMQSubscriber.d.mts +3 -3
  193. package/dist/rabbitmq/RabbitMQSubscriber.mjs +1 -1
  194. package/dist/rabbitmq/index.cjs +4 -4
  195. package/dist/rabbitmq/index.d.cts +4 -4
  196. package/dist/rabbitmq/index.d.mts +4 -4
  197. package/dist/rabbitmq/index.mjs +4 -4
  198. package/dist/sns/SNSConnection.cjs +2 -2
  199. package/dist/sns/SNSConnection.d.cts +2 -2
  200. package/dist/sns/SNSConnection.d.mts +2 -2
  201. package/dist/sns/SNSConnection.mjs +2 -2
  202. package/dist/sns/SNSPublisher.cjs +1 -1
  203. package/dist/sns/SNSPublisher.d.cts +3 -3
  204. package/dist/sns/SNSPublisher.d.mts +3 -3
  205. package/dist/sns/SNSPublisher.mjs +1 -1
  206. package/dist/sns/SNSSubscriber.cjs +4 -4
  207. package/dist/sns/SNSSubscriber.d.cts +3 -3
  208. package/dist/sns/SNSSubscriber.d.mts +3 -3
  209. package/dist/sns/SNSSubscriber.mjs +4 -4
  210. package/dist/sns/index.cjs +6 -6
  211. package/dist/sns/index.d.cts +4 -4
  212. package/dist/sns/index.d.mts +4 -4
  213. package/dist/sns/index.mjs +6 -6
  214. package/dist/sqs/SQSConnection.cjs +2 -2
  215. package/dist/sqs/SQSConnection.d.cts +2 -2
  216. package/dist/sqs/SQSConnection.d.mts +2 -2
  217. package/dist/sqs/SQSConnection.mjs +2 -2
  218. package/dist/sqs/SQSPublisher.cjs +1 -1
  219. package/dist/sqs/SQSPublisher.d.cts +3 -3
  220. package/dist/sqs/SQSPublisher.d.mts +3 -3
  221. package/dist/sqs/SQSPublisher.mjs +1 -1
  222. package/dist/sqs/SQSSubscriber.cjs +1 -1
  223. package/dist/sqs/SQSSubscriber.d.cts +3 -3
  224. package/dist/sqs/SQSSubscriber.d.mts +3 -3
  225. package/dist/sqs/SQSSubscriber.mjs +1 -1
  226. package/dist/sqs/index.cjs +4 -4
  227. package/dist/sqs/index.d.cts +4 -4
  228. package/dist/sqs/index.d.mts +4 -4
  229. package/dist/sqs/index.mjs +4 -4
  230. package/dist/{types-B63qHVOG.mjs → types-BrdcSEnd.mjs} +2 -1
  231. package/dist/types-BrdcSEnd.mjs.map +1 -0
  232. package/dist/{types-CvSMEO5z.cjs → types-Byv8N9ma.cjs} +2 -1
  233. package/dist/types-Byv8N9ma.cjs.map +1 -0
  234. package/dist/{types-DSVsPgKd.d.mts → types-Dh9Jyinx.d.mts} +2 -1
  235. package/dist/types-Dh9Jyinx.d.mts.map +1 -0
  236. package/dist/{types-Dmbp1U-6.d.cts → types-Dj23od3e.d.cts} +2 -1
  237. package/dist/types-Dj23od3e.d.cts.map +1 -0
  238. package/dist/types.cjs +1 -1
  239. package/dist/types.d.cts +1 -1
  240. package/dist/types.d.mts +1 -1
  241. package/dist/types.mjs +1 -1
  242. package/package.json +13 -3
  243. package/src/EventConnection.ts +4 -0
  244. package/src/Publisher.ts +11 -0
  245. package/src/Subscriber.ts +11 -0
  246. package/src/pgboss/PgBossConnection.ts +91 -0
  247. package/src/pgboss/PgBossPublisher.ts +45 -0
  248. package/src/pgboss/PgBossSubscriber.ts +81 -0
  249. package/src/pgboss/__tests__/pgboss.spec.ts +183 -0
  250. package/src/pgboss/index.ts +5 -0
  251. package/src/types.ts +1 -0
  252. package/dist/Subscriber-Bd9hb_jp.mjs.map +0 -1
  253. package/dist/Subscriber-saVOWuMq.cjs.map +0 -1
  254. package/dist/types-B63qHVOG.mjs.map +0 -1
  255. package/dist/types-CvSMEO5z.cjs.map +0 -1
  256. package/dist/types-DSVsPgKd.d.mts.map +0 -1
  257. package/dist/types-Dmbp1U-6.d.cts.map +0 -1
@@ -0,0 +1,20 @@
1
+ import { EventPublisher, PublishableMessage } from "./types-Dj23od3e.cjs";
2
+ import { PgBossConnection } from "./PgBossConnection-YdhixTjL.cjs";
3
+
4
+ //#region src/pgboss/PgBossPublisher.d.ts
5
+ declare class PgBossPublisher<TMessage extends PublishableMessage<string, any>> implements EventPublisher<TMessage> {
6
+ private connection;
7
+ constructor(connection: PgBossConnection);
8
+ /**
9
+ * Create a PgBossPublisher from a connection string.
10
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss
11
+ */
12
+ static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionString: string): Promise<PgBossPublisher<TMessage>>;
13
+ publish(messages: TMessage[]): Promise<void>;
14
+ close(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=PgBossPublisher.d.ts.map
17
+
18
+ //#endregion
19
+ export { PgBossPublisher };
20
+ //# sourceMappingURL=PgBossPublisher-J6bY44Da.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgBossPublisher-J6bY44Da.d.cts","names":[],"sources":["../src/pgboss/PgBossPublisher.ts"],"sourcesContent":[],"mappings":";;;;cAGa,iCAAiC,4CAClC,eAAe;;EADd,WAAA,CAAA,UAAe,EAGK,gBAHL;EAAA;;;;EAGqB,OAO9B,oBAAA,CAAA,iBAAA,kBAAA,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,EACW,OADX,CACmB,eADnB,CACmC,QADnC,CAAA,CAAA;EAAkB,OACiB,CAAA,QAAA,EAO7B,QAP6B,EAAA,CAAA,EAOhB,OAPgB,CAAA,IAAA,CAAA;EAAQ,KAAxB,CAAA,CAAA,EA2BtB,OA3BsB,CAAA,IAAA,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { EventPublisher, PublishableMessage } from "./types-Dh9Jyinx.mjs";
2
+ import { PgBossConnection } from "./PgBossConnection-Cd4x7NuY.mjs";
3
+
4
+ //#region src/pgboss/PgBossPublisher.d.ts
5
+ declare class PgBossPublisher<TMessage extends PublishableMessage<string, any>> implements EventPublisher<TMessage> {
6
+ private connection;
7
+ constructor(connection: PgBossConnection);
8
+ /**
9
+ * Create a PgBossPublisher from a connection string.
10
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss
11
+ */
12
+ static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionString: string): Promise<PgBossPublisher<TMessage>>;
13
+ publish(messages: TMessage[]): Promise<void>;
14
+ close(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=PgBossPublisher.d.ts.map
17
+
18
+ //#endregion
19
+ export { PgBossPublisher };
20
+ //# sourceMappingURL=PgBossPublisher-b0deuqhy.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgBossPublisher-b0deuqhy.d.mts","names":[],"sources":["../src/pgboss/PgBossPublisher.ts"],"sourcesContent":[],"mappings":";;;;cAGa,iCAAiC,4CAClC,eAAe;;EADd,WAAA,CAAA,UAAe,EAGK,gBAHL;EAAA;;;;EAGqB,OAO9B,oBAAA,CAAA,iBAAA,kBAAA,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,EACW,OADX,CACmB,eADnB,CACmC,QADnC,CAAA,CAAA;EAAkB,OACiB,CAAA,QAAA,EAO7B,QAP6B,EAAA,CAAA,EAOhB,OAPgB,CAAA,IAAA,CAAA;EAAQ,KAAxB,CAAA,CAAA,EA2BtB,OA3BsB,CAAA,IAAA,CAAA"}
@@ -0,0 +1,37 @@
1
+
2
+ //#region src/pgboss/PgBossPublisher.ts
3
+ var PgBossPublisher = class PgBossPublisher {
4
+ constructor(connection) {
5
+ this.connection = connection;
6
+ }
7
+ /**
8
+ * Create a PgBossPublisher from a connection string.
9
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss
10
+ */
11
+ static async fromConnectionString(connectionString) {
12
+ const { PgBossConnection } = await Promise.resolve().then(() => require("./pgboss/PgBossConnection.cjs"));
13
+ const connection = await PgBossConnection.fromConnectionString(connectionString);
14
+ return new PgBossPublisher(connection);
15
+ }
16
+ async publish(messages) {
17
+ if (!this.connection.isConnected()) await this.connection.connect();
18
+ const boss = this.connection.instance;
19
+ if (!boss) throw new Error("PgBoss instance not initialized");
20
+ const queueNames = [...new Set(messages.map((m) => m.type))];
21
+ for (const name of queueNames) await boss.createQueue(name);
22
+ await boss.insert(messages.map((m) => ({
23
+ name: m.type,
24
+ data: m.payload
25
+ })));
26
+ }
27
+ async close() {}
28
+ };
29
+
30
+ //#endregion
31
+ Object.defineProperty(exports, 'PgBossPublisher', {
32
+ enumerable: true,
33
+ get: function () {
34
+ return PgBossPublisher;
35
+ }
36
+ });
37
+ //# sourceMappingURL=PgBossPublisher-kFh3Mnbx.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgBossPublisher-kFh3Mnbx.cjs","names":["connection: PgBossConnection","connectionString: string","messages: TMessage[]"],"sources":["../src/pgboss/PgBossPublisher.ts"],"sourcesContent":["import type { EventPublisher, PublishableMessage } from '../types';\nimport type { PgBossConnection } from './PgBossConnection';\n\nexport class PgBossPublisher<TMessage extends PublishableMessage<string, any>>\n\timplements EventPublisher<TMessage>\n{\n\tconstructor(private connection: PgBossConnection) {}\n\n\t/**\n\t * Create a PgBossPublisher from a connection string.\n\t * Format: pgboss://user:pass@host:5432/database?schema=pgboss\n\t */\n\tstatic async fromConnectionString<\n\t\tTMessage extends PublishableMessage<string, any>,\n\t>(connectionString: string): Promise<PgBossPublisher<TMessage>> {\n\t\tconst { PgBossConnection } = await import('./PgBossConnection');\n\t\tconst connection =\n\t\t\tawait PgBossConnection.fromConnectionString(connectionString);\n\t\treturn new PgBossPublisher<TMessage>(connection);\n\t}\n\n\tasync publish(messages: TMessage[]): Promise<void> {\n\t\tif (!this.connection.isConnected()) {\n\t\t\tawait this.connection.connect();\n\t\t}\n\n\t\tconst boss = this.connection.instance;\n\t\tif (!boss) {\n\t\t\tthrow new Error('PgBoss instance not initialized');\n\t\t}\n\n\t\t// Ensure queues exist\n\t\tconst queueNames = [...new Set(messages.map((m) => m.type))];\n\t\tfor (const name of queueNames) {\n\t\t\tawait boss.createQueue(name);\n\t\t}\n\n\t\t// Batch insert — each JobInsert carries its queue name\n\t\tawait boss.insert(messages.map((m) => ({ name: m.type, data: m.payload })));\n\t}\n\n\tasync close(): Promise<void> {\n\t\t// Publisher doesn't own the connection\n\t}\n}\n"],"mappings":";;AAGA,IAAa,kBAAb,MAAa,gBAEb;CACC,YAAoBA,YAA8B;EAA9B;CAAgC;;;;;CAMpD,aAAa,qBAEXC,kBAA8D;EAC/D,MAAM,EAAE,kBAAkB,GAAG,2CAAM;EACnC,MAAM,aACL,MAAM,iBAAiB,qBAAqB,iBAAiB;AAC9D,SAAO,IAAI,gBAA0B;CACrC;CAED,MAAM,QAAQC,UAAqC;AAClD,OAAK,KAAK,WAAW,aAAa,CACjC,OAAM,KAAK,WAAW,SAAS;EAGhC,MAAM,OAAO,KAAK,WAAW;AAC7B,OAAK,KACJ,OAAM,IAAI,MAAM;EAIjB,MAAM,aAAa,CAAC,GAAG,IAAI,IAAI,SAAS,IAAI,CAAC,MAAM,EAAE,KAAK,CAAE;AAC5D,OAAK,MAAM,QAAQ,WAClB,OAAM,KAAK,YAAY,KAAK;AAI7B,QAAM,KAAK,OAAO,SAAS,IAAI,CAAC,OAAO;GAAE,MAAM,EAAE;GAAM,MAAM,EAAE;EAAS,GAAE,CAAC;CAC3E;CAED,MAAM,QAAuB,CAE5B;AACD"}
@@ -0,0 +1,24 @@
1
+ import { EventSubscriber, PublishableMessage } from "./types-Dh9Jyinx.mjs";
2
+ import { PgBossConnection } from "./PgBossConnection-Cd4x7NuY.mjs";
3
+
4
+ //#region src/pgboss/PgBossSubscriber.d.ts
5
+ interface PgBossSubscriberOptions {
6
+ batchSize?: number;
7
+ pollingIntervalSeconds?: number;
8
+ }
9
+ declare class PgBossSubscriber<TMessage extends PublishableMessage<string, any>> implements EventSubscriber<TMessage> {
10
+ private connection;
11
+ private options;
12
+ constructor(connection: PgBossConnection, options?: PgBossSubscriberOptions);
13
+ /**
14
+ * Create a PgBossSubscriber from a connection string.
15
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss&batchSize=5
16
+ */
17
+ static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionString: string): Promise<PgBossSubscriber<TMessage>>;
18
+ subscribe(messages: TMessage['type'][], listener: (payload: TMessage) => Promise<void>): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=PgBossSubscriber.d.ts.map
21
+
22
+ //#endregion
23
+ export { PgBossSubscriber, PgBossSubscriberOptions };
24
+ //# sourceMappingURL=PgBossSubscriber-2z82EaLF.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgBossSubscriber-2z82EaLF.d.mts","names":[],"sources":["../src/pgboss/PgBossSubscriber.ts"],"sourcesContent":[],"mappings":";;;;UAGiB,uBAAA;;EAAA,sBAAA,CAAA,EAAA,MAAuB;AAKxC;AAA6B,cAAhB,gBAAgB,CAAA,iBAAkB,kBAAlB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,YACjB,eADiB,CACD,QADC,CAAA,CAAA;EAAA,QAAkB,UAAA;EAAkB,QACrC,OAAA;EAAQ,WAGd,CAAA,UAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EACH,uBADG;EAAgB;;;;EAUgB,OAAxB,oBAAA,CAAA,iBADX,kBACW,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,EAAA,OAAA,CAAQ,gBAAR,CAAyB,QAAzB,CAAA,CAAA;EAAO,SAqBzB,CAAA,QAAA,EAAA,QAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,OAAA,EACU,QADV,EAAA,GACuB,OADvB,CAAA,IAAA,CAAA,CAAA,EAER,OAFQ,CAAA,IAAA,CAAA"}
@@ -0,0 +1,52 @@
1
+
2
+ //#region src/pgboss/PgBossSubscriber.ts
3
+ var PgBossSubscriber = class PgBossSubscriber {
4
+ constructor(connection, options = {}) {
5
+ this.connection = connection;
6
+ this.options = options;
7
+ }
8
+ /**
9
+ * Create a PgBossSubscriber from a connection string.
10
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss&batchSize=5
11
+ */
12
+ static async fromConnectionString(connectionString) {
13
+ const url = new URL(connectionString);
14
+ const params = url.searchParams;
15
+ const { PgBossConnection } = await Promise.resolve().then(() => require("./pgboss/PgBossConnection.cjs"));
16
+ const connection = await PgBossConnection.fromConnectionString(connectionString);
17
+ const options = {
18
+ batchSize: params.get("batchSize") ? Number.parseInt(params.get("batchSize"), 10) : void 0,
19
+ pollingIntervalSeconds: params.get("pollingIntervalSeconds") ? Number.parseInt(params.get("pollingIntervalSeconds"), 10) : void 0
20
+ };
21
+ return new PgBossSubscriber(connection, options);
22
+ }
23
+ async subscribe(messages, listener) {
24
+ if (!this.connection.isConnected()) await this.connection.connect();
25
+ const boss = this.connection.instance;
26
+ if (!boss) throw new Error("PgBoss instance not initialized");
27
+ for (const messageType of messages) {
28
+ await boss.createQueue(messageType);
29
+ await boss.work(messageType, {
30
+ ...this.options.batchSize && { batchSize: this.options.batchSize },
31
+ ...this.options.pollingIntervalSeconds && { pollingIntervalSeconds: this.options.pollingIntervalSeconds }
32
+ }, async (jobs) => {
33
+ for (const job of jobs) {
34
+ const fullMessage = {
35
+ type: job.name,
36
+ payload: job.data
37
+ };
38
+ await listener(fullMessage);
39
+ }
40
+ });
41
+ }
42
+ }
43
+ };
44
+
45
+ //#endregion
46
+ Object.defineProperty(exports, 'PgBossSubscriber', {
47
+ enumerable: true,
48
+ get: function () {
49
+ return PgBossSubscriber;
50
+ }
51
+ });
52
+ //# sourceMappingURL=PgBossSubscriber-BubVfuWm.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgBossSubscriber-BubVfuWm.cjs","names":["connection: PgBossConnection","options: PgBossSubscriberOptions","connectionString: string","messages: TMessage['type'][]","listener: (payload: TMessage) => Promise<void>"],"sources":["../src/pgboss/PgBossSubscriber.ts"],"sourcesContent":["import type { EventSubscriber, PublishableMessage } from '../types';\nimport type { PgBossConnection } from './PgBossConnection';\n\nexport interface PgBossSubscriberOptions {\n\tbatchSize?: number;\n\tpollingIntervalSeconds?: number;\n}\n\nexport class PgBossSubscriber<TMessage extends PublishableMessage<string, any>>\n\timplements EventSubscriber<TMessage>\n{\n\tconstructor(\n\t\tprivate connection: PgBossConnection,\n\t\tprivate options: PgBossSubscriberOptions = {},\n\t) {}\n\n\t/**\n\t * Create a PgBossSubscriber from a connection string.\n\t * Format: pgboss://user:pass@host:5432/database?schema=pgboss&batchSize=5\n\t */\n\tstatic async fromConnectionString<\n\t\tTMessage extends PublishableMessage<string, any>,\n\t>(connectionString: string): Promise<PgBossSubscriber<TMessage>> {\n\t\tconst url = new URL(connectionString);\n\t\tconst params = url.searchParams;\n\n\t\tconst { PgBossConnection } = await import('./PgBossConnection');\n\t\tconst connection =\n\t\t\tawait PgBossConnection.fromConnectionString(connectionString);\n\n\t\tconst options: PgBossSubscriberOptions = {\n\t\t\tbatchSize: params.get('batchSize')\n\t\t\t\t? Number.parseInt(params.get('batchSize')!, 10)\n\t\t\t\t: undefined,\n\t\t\tpollingIntervalSeconds: params.get('pollingIntervalSeconds')\n\t\t\t\t? Number.parseInt(params.get('pollingIntervalSeconds')!, 10)\n\t\t\t\t: undefined,\n\t\t};\n\n\t\treturn new PgBossSubscriber<TMessage>(connection, options);\n\t}\n\n\tasync subscribe(\n\t\tmessages: TMessage['type'][],\n\t\tlistener: (payload: TMessage) => Promise<void>,\n\t): Promise<void> {\n\t\tif (!this.connection.isConnected()) {\n\t\t\tawait this.connection.connect();\n\t\t}\n\n\t\tconst boss = this.connection.instance;\n\t\tif (!boss) {\n\t\t\tthrow new Error('PgBoss instance not initialized');\n\t\t}\n\n\t\tfor (const messageType of messages) {\n\t\t\tawait boss.createQueue(messageType);\n\t\t\tawait boss.work(\n\t\t\t\tmessageType,\n\t\t\t\t{\n\t\t\t\t\t...(this.options.batchSize && {\n\t\t\t\t\t\tbatchSize: this.options.batchSize,\n\t\t\t\t\t}),\n\t\t\t\t\t...(this.options.pollingIntervalSeconds && {\n\t\t\t\t\t\tpollingIntervalSeconds: this.options.pollingIntervalSeconds,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\tasync (jobs) => {\n\t\t\t\t\tfor (const job of jobs) {\n\t\t\t\t\t\tconst fullMessage = {\n\t\t\t\t\t\t\ttype: job.name,\n\t\t\t\t\t\t\tpayload: job.data,\n\t\t\t\t\t\t} as TMessage;\n\n\t\t\t\t\t\tawait listener(fullMessage);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n}\n"],"mappings":";;AAQA,IAAa,mBAAb,MAAa,iBAEb;CACC,YACSA,YACAC,UAAmC,CAAE,GAC5C;EAFO;EACA;CACL;;;;;CAMJ,aAAa,qBAEXC,kBAA+D;EAChE,MAAM,MAAM,IAAI,IAAI;EACpB,MAAM,SAAS,IAAI;EAEnB,MAAM,EAAE,kBAAkB,GAAG,2CAAM;EACnC,MAAM,aACL,MAAM,iBAAiB,qBAAqB,iBAAiB;EAE9D,MAAMD,UAAmC;GACxC,WAAW,OAAO,IAAI,YAAY,GAC/B,OAAO,SAAS,OAAO,IAAI,YAAY,EAAG,GAAG;GAEhD,wBAAwB,OAAO,IAAI,yBAAyB,GACzD,OAAO,SAAS,OAAO,IAAI,yBAAyB,EAAG,GAAG;EAE7D;AAED,SAAO,IAAI,iBAA2B,YAAY;CAClD;CAED,MAAM,UACLE,UACAC,UACgB;AAChB,OAAK,KAAK,WAAW,aAAa,CACjC,OAAM,KAAK,WAAW,SAAS;EAGhC,MAAM,OAAO,KAAK,WAAW;AAC7B,OAAK,KACJ,OAAM,IAAI,MAAM;AAGjB,OAAK,MAAM,eAAe,UAAU;AACnC,SAAM,KAAK,YAAY,YAAY;AACnC,SAAM,KAAK,KACV,aACA;IACC,GAAI,KAAK,QAAQ,aAAa,EAC7B,WAAW,KAAK,QAAQ,UACxB;IACD,GAAI,KAAK,QAAQ,0BAA0B,EAC1C,wBAAwB,KAAK,QAAQ,uBACrC;GACD,GACD,OAAO,SAAS;AACf,SAAK,MAAM,OAAO,MAAM;KACvB,MAAM,cAAc;MACnB,MAAM,IAAI;MACV,SAAS,IAAI;KACb;AAED,WAAM,SAAS,YAAY;IAC3B;GACD,EACD;EACD;CACD;AACD"}
@@ -0,0 +1,24 @@
1
+ import { EventSubscriber, PublishableMessage } from "./types-Dj23od3e.cjs";
2
+ import { PgBossConnection } from "./PgBossConnection-YdhixTjL.cjs";
3
+
4
+ //#region src/pgboss/PgBossSubscriber.d.ts
5
+ interface PgBossSubscriberOptions {
6
+ batchSize?: number;
7
+ pollingIntervalSeconds?: number;
8
+ }
9
+ declare class PgBossSubscriber<TMessage extends PublishableMessage<string, any>> implements EventSubscriber<TMessage> {
10
+ private connection;
11
+ private options;
12
+ constructor(connection: PgBossConnection, options?: PgBossSubscriberOptions);
13
+ /**
14
+ * Create a PgBossSubscriber from a connection string.
15
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss&batchSize=5
16
+ */
17
+ static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionString: string): Promise<PgBossSubscriber<TMessage>>;
18
+ subscribe(messages: TMessage['type'][], listener: (payload: TMessage) => Promise<void>): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=PgBossSubscriber.d.ts.map
21
+
22
+ //#endregion
23
+ export { PgBossSubscriber, PgBossSubscriberOptions };
24
+ //# sourceMappingURL=PgBossSubscriber-CB6vm-LD.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgBossSubscriber-CB6vm-LD.d.cts","names":[],"sources":["../src/pgboss/PgBossSubscriber.ts"],"sourcesContent":[],"mappings":";;;;UAGiB,uBAAA;;EAAA,sBAAA,CAAA,EAAA,MAAuB;AAKxC;AAA6B,cAAhB,gBAAgB,CAAA,iBAAkB,kBAAlB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,YACjB,eADiB,CACD,QADC,CAAA,CAAA;EAAA,QAAkB,UAAA;EAAkB,QACrC,OAAA;EAAQ,WAGd,CAAA,UAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EACH,uBADG;EAAgB;;;;EAUgB,OAAxB,oBAAA,CAAA,iBADX,kBACW,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,EAAA,OAAA,CAAQ,gBAAR,CAAyB,QAAzB,CAAA,CAAA;EAAO,SAqBzB,CAAA,QAAA,EAAA,QAAA,CAAA,MAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,OAAA,EACU,QADV,EAAA,GACuB,OADvB,CAAA,IAAA,CAAA,CAAA,EAER,OAFQ,CAAA,IAAA,CAAA"}
@@ -0,0 +1,46 @@
1
+ //#region src/pgboss/PgBossSubscriber.ts
2
+ var PgBossSubscriber = class PgBossSubscriber {
3
+ constructor(connection, options = {}) {
4
+ this.connection = connection;
5
+ this.options = options;
6
+ }
7
+ /**
8
+ * Create a PgBossSubscriber from a connection string.
9
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss&batchSize=5
10
+ */
11
+ static async fromConnectionString(connectionString) {
12
+ const url = new URL(connectionString);
13
+ const params = url.searchParams;
14
+ const { PgBossConnection } = await import("./pgboss/PgBossConnection.mjs");
15
+ const connection = await PgBossConnection.fromConnectionString(connectionString);
16
+ const options = {
17
+ batchSize: params.get("batchSize") ? Number.parseInt(params.get("batchSize"), 10) : void 0,
18
+ pollingIntervalSeconds: params.get("pollingIntervalSeconds") ? Number.parseInt(params.get("pollingIntervalSeconds"), 10) : void 0
19
+ };
20
+ return new PgBossSubscriber(connection, options);
21
+ }
22
+ async subscribe(messages, listener) {
23
+ if (!this.connection.isConnected()) await this.connection.connect();
24
+ const boss = this.connection.instance;
25
+ if (!boss) throw new Error("PgBoss instance not initialized");
26
+ for (const messageType of messages) {
27
+ await boss.createQueue(messageType);
28
+ await boss.work(messageType, {
29
+ ...this.options.batchSize && { batchSize: this.options.batchSize },
30
+ ...this.options.pollingIntervalSeconds && { pollingIntervalSeconds: this.options.pollingIntervalSeconds }
31
+ }, async (jobs) => {
32
+ for (const job of jobs) {
33
+ const fullMessage = {
34
+ type: job.name,
35
+ payload: job.data
36
+ };
37
+ await listener(fullMessage);
38
+ }
39
+ });
40
+ }
41
+ }
42
+ };
43
+
44
+ //#endregion
45
+ export { PgBossSubscriber };
46
+ //# sourceMappingURL=PgBossSubscriber-DopATe80.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PgBossSubscriber-DopATe80.mjs","names":["connection: PgBossConnection","options: PgBossSubscriberOptions","connectionString: string","messages: TMessage['type'][]","listener: (payload: TMessage) => Promise<void>"],"sources":["../src/pgboss/PgBossSubscriber.ts"],"sourcesContent":["import type { EventSubscriber, PublishableMessage } from '../types';\nimport type { PgBossConnection } from './PgBossConnection';\n\nexport interface PgBossSubscriberOptions {\n\tbatchSize?: number;\n\tpollingIntervalSeconds?: number;\n}\n\nexport class PgBossSubscriber<TMessage extends PublishableMessage<string, any>>\n\timplements EventSubscriber<TMessage>\n{\n\tconstructor(\n\t\tprivate connection: PgBossConnection,\n\t\tprivate options: PgBossSubscriberOptions = {},\n\t) {}\n\n\t/**\n\t * Create a PgBossSubscriber from a connection string.\n\t * Format: pgboss://user:pass@host:5432/database?schema=pgboss&batchSize=5\n\t */\n\tstatic async fromConnectionString<\n\t\tTMessage extends PublishableMessage<string, any>,\n\t>(connectionString: string): Promise<PgBossSubscriber<TMessage>> {\n\t\tconst url = new URL(connectionString);\n\t\tconst params = url.searchParams;\n\n\t\tconst { PgBossConnection } = await import('./PgBossConnection');\n\t\tconst connection =\n\t\t\tawait PgBossConnection.fromConnectionString(connectionString);\n\n\t\tconst options: PgBossSubscriberOptions = {\n\t\t\tbatchSize: params.get('batchSize')\n\t\t\t\t? Number.parseInt(params.get('batchSize')!, 10)\n\t\t\t\t: undefined,\n\t\t\tpollingIntervalSeconds: params.get('pollingIntervalSeconds')\n\t\t\t\t? Number.parseInt(params.get('pollingIntervalSeconds')!, 10)\n\t\t\t\t: undefined,\n\t\t};\n\n\t\treturn new PgBossSubscriber<TMessage>(connection, options);\n\t}\n\n\tasync subscribe(\n\t\tmessages: TMessage['type'][],\n\t\tlistener: (payload: TMessage) => Promise<void>,\n\t): Promise<void> {\n\t\tif (!this.connection.isConnected()) {\n\t\t\tawait this.connection.connect();\n\t\t}\n\n\t\tconst boss = this.connection.instance;\n\t\tif (!boss) {\n\t\t\tthrow new Error('PgBoss instance not initialized');\n\t\t}\n\n\t\tfor (const messageType of messages) {\n\t\t\tawait boss.createQueue(messageType);\n\t\t\tawait boss.work(\n\t\t\t\tmessageType,\n\t\t\t\t{\n\t\t\t\t\t...(this.options.batchSize && {\n\t\t\t\t\t\tbatchSize: this.options.batchSize,\n\t\t\t\t\t}),\n\t\t\t\t\t...(this.options.pollingIntervalSeconds && {\n\t\t\t\t\t\tpollingIntervalSeconds: this.options.pollingIntervalSeconds,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\tasync (jobs) => {\n\t\t\t\t\tfor (const job of jobs) {\n\t\t\t\t\t\tconst fullMessage = {\n\t\t\t\t\t\t\ttype: job.name,\n\t\t\t\t\t\t\tpayload: job.data,\n\t\t\t\t\t\t} as TMessage;\n\n\t\t\t\t\t\tawait listener(fullMessage);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n}\n"],"mappings":";AAQA,IAAa,mBAAb,MAAa,iBAEb;CACC,YACSA,YACAC,UAAmC,CAAE,GAC5C;EAFO;EACA;CACL;;;;;CAMJ,aAAa,qBAEXC,kBAA+D;EAChE,MAAM,MAAM,IAAI,IAAI;EACpB,MAAM,SAAS,IAAI;EAEnB,MAAM,EAAE,kBAAkB,GAAG,MAAM,OAAO;EAC1C,MAAM,aACL,MAAM,iBAAiB,qBAAqB,iBAAiB;EAE9D,MAAMD,UAAmC;GACxC,WAAW,OAAO,IAAI,YAAY,GAC/B,OAAO,SAAS,OAAO,IAAI,YAAY,EAAG,GAAG;GAEhD,wBAAwB,OAAO,IAAI,yBAAyB,GACzD,OAAO,SAAS,OAAO,IAAI,yBAAyB,EAAG,GAAG;EAE7D;AAED,SAAO,IAAI,iBAA2B,YAAY;CAClD;CAED,MAAM,UACLE,UACAC,UACgB;AAChB,OAAK,KAAK,WAAW,aAAa,CACjC,OAAM,KAAK,WAAW,SAAS;EAGhC,MAAM,OAAO,KAAK,WAAW;AAC7B,OAAK,KACJ,OAAM,IAAI,MAAM;AAGjB,OAAK,MAAM,eAAe,UAAU;AACnC,SAAM,KAAK,YAAY,YAAY;AACnC,SAAM,KAAK,KACV,aACA;IACC,GAAI,KAAK,QAAQ,aAAa,EAC7B,WAAW,KAAK,QAAQ,UACxB;IACD,GAAI,KAAK,QAAQ,0BAA0B,EAC1C,wBAAwB,KAAK,QAAQ,uBACrC;GACD,GACD,OAAO,SAAS;AACf,SAAK,MAAM,OAAO,MAAM;KACvB,MAAM,cAAc;MACnB,MAAM,IAAI;MACV,SAAS,IAAI;KACb;AAED,WAAM,SAAS,YAAY;IAC3B;GACD,EACD;EACD;CACD;AACD"}
@@ -1,4 +1,4 @@
1
- const require_types = require('./types-CvSMEO5z.cjs');
1
+ const require_types = require('./types-Byv8N9ma.cjs');
2
2
 
3
3
  //#region src/Publisher.ts
4
4
  var Publisher = class {
@@ -26,6 +26,10 @@ var Publisher = class {
26
26
  const { SNSPublisher } = await Promise.resolve().then(() => require("./sns/index.cjs"));
27
27
  return SNSPublisher.fromConnectionString(connectionStr);
28
28
  }
29
+ case require_types.EventPublisherType.PgBoss: {
30
+ const { PgBossPublisher } = await Promise.resolve().then(() => require("./pgboss/index.cjs"));
31
+ return PgBossPublisher.fromConnectionString(connectionStr);
32
+ }
29
33
  default: throw new Error(`Unsupported event publisher type: ${url.protocol}`);
30
34
  }
31
35
  }
@@ -55,6 +59,11 @@ var Publisher = class {
55
59
  const { SNSConnection } = await Promise.resolve().then(() => require("./sns/index.cjs"));
56
60
  return new SNSPublisher(connection);
57
61
  }
62
+ case require_types.EventPublisherType.PgBoss: {
63
+ const { PgBossPublisher } = await Promise.resolve().then(() => require("./pgboss/index.cjs"));
64
+ const { PgBossConnection } = await Promise.resolve().then(() => require("./pgboss/index.cjs"));
65
+ return new PgBossPublisher(connection);
66
+ }
58
67
  default: throw new Error(`Unsupported connection type: ${connection.type}`);
59
68
  }
60
69
  }
@@ -67,4 +76,4 @@ Object.defineProperty(exports, 'Publisher', {
67
76
  return Publisher;
68
77
  }
69
78
  });
70
- //# sourceMappingURL=Publisher-ceu6OxCj.cjs.map
79
+ //# sourceMappingURL=Publisher-CKloIGh6.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Publisher-ceu6OxCj.cjs","names":["connectionStr: EventPublisherConnectionString","EventPublisherType","connection: EventConnection"],"sources":["../src/Publisher.ts"],"sourcesContent":["import type {\n\tEventConnection,\n\tEventPublisher,\n\tPublishableMessage,\n} from './types';\nimport { EventPublisherType } from './types';\n\nexport class Publisher {\n\t/**\n\t * Create a publisher from a connection string\n\t * This creates both a connection and a publisher\n\t */\n\tstatic async fromConnectionString<\n\t\tTMessage extends PublishableMessage<string, any>,\n\t>(\n\t\tconnectionStr: EventPublisherConnectionString,\n\t): Promise<EventPublisher<TMessage>> {\n\t\tconst url = new URL(connectionStr);\n\t\tswitch (url.protocol.replace(':', '')) {\n\t\t\tcase EventPublisherType.Basic: {\n\t\t\t\tconst { BasicConnection, BasicPublisher } = await import('./basic');\n\t\t\t\tconst connection =\n\t\t\t\t\tawait BasicConnection.fromConnectionString(connectionStr);\n\t\t\t\treturn new BasicPublisher<TMessage>(connection);\n\t\t\t}\n\t\t\tcase EventPublisherType.RabbitMQ: {\n\t\t\t\tconst { RabbitMQPublisher } = await import('./rabbitmq');\n\t\t\t\treturn RabbitMQPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SQS: {\n\t\t\t\tconst { SQSPublisher } = await import('./sqs');\n\t\t\t\treturn SQSPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SNS: {\n\t\t\t\tconst { SNSPublisher } = await import('./sns');\n\t\t\t\treturn SNSPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\t// Future implementations for EventBridge, Kafka, etc.\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported event publisher type: ${url.protocol}`);\n\t\t}\n\t}\n\n\t/**\n\t * Create a publisher from an existing connection\n\t * This allows sharing connections between publishers and subscribers\n\t */\n\tstatic async fromConnection<TMessage extends PublishableMessage<string, any>>(\n\t\tconnection: EventConnection,\n\t): Promise<EventPublisher<TMessage>> {\n\t\tswitch (connection.type) {\n\t\t\tcase EventPublisherType.Basic: {\n\t\t\t\tconst { BasicPublisher } = await import('./basic');\n\t\t\t\tconst { BasicConnection } = await import('./basic');\n\t\t\t\treturn new BasicPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof BasicConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.RabbitMQ: {\n\t\t\t\tconst { RabbitMQPublisher } = await import('./rabbitmq');\n\t\t\t\tconst { RabbitMQConnection } = await import('./rabbitmq');\n\t\t\t\treturn new RabbitMQPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof RabbitMQConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.SQS: {\n\t\t\t\tconst { SQSPublisher } = await import('./sqs');\n\t\t\t\tconst { SQSConnection } = await import('./sqs');\n\t\t\t\treturn new SQSPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof SQSConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.SNS: {\n\t\t\t\tconst { SNSPublisher } = await import('./sns');\n\t\t\t\tconst { SNSConnection } = await import('./sns');\n\t\t\t\treturn new SNSPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof SNSConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported connection type: ${connection.type}`);\n\t\t}\n\t}\n}\n\nexport type EventPublisherConnectionString =\n\t`${EventPublisherType}://${string}`;\n"],"mappings":";;;AAOA,IAAa,YAAb,MAAuB;;;;;CAKtB,aAAa,qBAGZA,eACoC;EACpC,MAAM,MAAM,IAAI,IAAI;AACpB,UAAQ,IAAI,SAAS,QAAQ,KAAK,GAAG,EAArC;GACC,KAAKC,iCAAmB,OAAO;IAC9B,MAAM,EAAE,iBAAiB,gBAAgB,GAAG,2CAAM;IAClD,MAAM,aACL,MAAM,gBAAgB,qBAAqB,cAAc;AAC1D,WAAO,IAAI,eAAyB;GACpC;GACD,KAAKA,iCAAmB,UAAU;IACjC,MAAM,EAAE,mBAAmB,GAAG,2CAAM;AACpC,WAAO,kBAAkB,qBAA+B,cAAc;GACtE;GACD,KAAKA,iCAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,2CAAM;AAC/B,WAAO,aAAa,qBAA+B,cAAc;GACjE;GACD,KAAKA,iCAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,2CAAM;AAC/B,WAAO,aAAa,qBAA+B,cAAc;GACjE;GAED,QACC,OAAM,IAAI,OAAO,oCAAoC,IAAI,SAAS;EACnE;CACD;;;;;CAMD,aAAa,eACZC,YACoC;AACpC,UAAQ,WAAW,MAAnB;GACC,KAAKD,iCAAmB,OAAO;IAC9B,MAAM,EAAE,gBAAgB,GAAG,2CAAM;IACjC,MAAM,EAAE,iBAAiB,GAAG,2CAAM;AAClC,WAAO,IAAI,eACV;GAED;GACD,KAAKA,iCAAmB,UAAU;IACjC,MAAM,EAAE,mBAAmB,GAAG,2CAAM;IACpC,MAAM,EAAE,oBAAoB,GAAG,2CAAM;AACrC,WAAO,IAAI,kBACV;GAED;GACD,KAAKA,iCAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,2CAAM;IAC/B,MAAM,EAAE,eAAe,GAAG,2CAAM;AAChC,WAAO,IAAI,aACV;GAED;GACD,KAAKA,iCAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,2CAAM;IAC/B,MAAM,EAAE,eAAe,GAAG,2CAAM;AAChC,WAAO,IAAI,aACV;GAED;GACD,QACC,OAAM,IAAI,OAAO,+BAA+B,WAAW,KAAK;EACjE;CACD;AACD"}
1
+ {"version":3,"file":"Publisher-CKloIGh6.cjs","names":["connectionStr: EventPublisherConnectionString","EventPublisherType","connection: EventConnection"],"sources":["../src/Publisher.ts"],"sourcesContent":["import type {\n\tEventConnection,\n\tEventPublisher,\n\tPublishableMessage,\n} from './types';\nimport { EventPublisherType } from './types';\n\nexport class Publisher {\n\t/**\n\t * Create a publisher from a connection string\n\t * This creates both a connection and a publisher\n\t */\n\tstatic async fromConnectionString<\n\t\tTMessage extends PublishableMessage<string, any>,\n\t>(\n\t\tconnectionStr: EventPublisherConnectionString,\n\t): Promise<EventPublisher<TMessage>> {\n\t\tconst url = new URL(connectionStr);\n\t\tswitch (url.protocol.replace(':', '')) {\n\t\t\tcase EventPublisherType.Basic: {\n\t\t\t\tconst { BasicConnection, BasicPublisher } = await import('./basic');\n\t\t\t\tconst connection =\n\t\t\t\t\tawait BasicConnection.fromConnectionString(connectionStr);\n\t\t\t\treturn new BasicPublisher<TMessage>(connection);\n\t\t\t}\n\t\t\tcase EventPublisherType.RabbitMQ: {\n\t\t\t\tconst { RabbitMQPublisher } = await import('./rabbitmq');\n\t\t\t\treturn RabbitMQPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SQS: {\n\t\t\t\tconst { SQSPublisher } = await import('./sqs');\n\t\t\t\treturn SQSPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SNS: {\n\t\t\t\tconst { SNSPublisher } = await import('./sns');\n\t\t\t\treturn SNSPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.PgBoss: {\n\t\t\t\tconst { PgBossPublisher } = await import('./pgboss');\n\t\t\t\treturn PgBossPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\t// Future implementations for EventBridge, Kafka, etc.\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported event publisher type: ${url.protocol}`);\n\t\t}\n\t}\n\n\t/**\n\t * Create a publisher from an existing connection\n\t * This allows sharing connections between publishers and subscribers\n\t */\n\tstatic async fromConnection<TMessage extends PublishableMessage<string, any>>(\n\t\tconnection: EventConnection,\n\t): Promise<EventPublisher<TMessage>> {\n\t\tswitch (connection.type) {\n\t\t\tcase EventPublisherType.Basic: {\n\t\t\t\tconst { BasicPublisher } = await import('./basic');\n\t\t\t\tconst { BasicConnection } = await import('./basic');\n\t\t\t\treturn new BasicPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof BasicConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.RabbitMQ: {\n\t\t\t\tconst { RabbitMQPublisher } = await import('./rabbitmq');\n\t\t\t\tconst { RabbitMQConnection } = await import('./rabbitmq');\n\t\t\t\treturn new RabbitMQPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof RabbitMQConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.SQS: {\n\t\t\t\tconst { SQSPublisher } = await import('./sqs');\n\t\t\t\tconst { SQSConnection } = await import('./sqs');\n\t\t\t\treturn new SQSPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof SQSConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.SNS: {\n\t\t\t\tconst { SNSPublisher } = await import('./sns');\n\t\t\t\tconst { SNSConnection } = await import('./sns');\n\t\t\t\treturn new SNSPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof SNSConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.PgBoss: {\n\t\t\t\tconst { PgBossPublisher } = await import('./pgboss');\n\t\t\t\tconst { PgBossConnection } = await import('./pgboss');\n\t\t\t\treturn new PgBossPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof PgBossConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported connection type: ${connection.type}`);\n\t\t}\n\t}\n}\n\nexport type EventPublisherConnectionString =\n\t`${EventPublisherType}://${string}`;\n"],"mappings":";;;AAOA,IAAa,YAAb,MAAuB;;;;;CAKtB,aAAa,qBAGZA,eACoC;EACpC,MAAM,MAAM,IAAI,IAAI;AACpB,UAAQ,IAAI,SAAS,QAAQ,KAAK,GAAG,EAArC;GACC,KAAKC,iCAAmB,OAAO;IAC9B,MAAM,EAAE,iBAAiB,gBAAgB,GAAG,2CAAM;IAClD,MAAM,aACL,MAAM,gBAAgB,qBAAqB,cAAc;AAC1D,WAAO,IAAI,eAAyB;GACpC;GACD,KAAKA,iCAAmB,UAAU;IACjC,MAAM,EAAE,mBAAmB,GAAG,2CAAM;AACpC,WAAO,kBAAkB,qBAA+B,cAAc;GACtE;GACD,KAAKA,iCAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,2CAAM;AAC/B,WAAO,aAAa,qBAA+B,cAAc;GACjE;GACD,KAAKA,iCAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,2CAAM;AAC/B,WAAO,aAAa,qBAA+B,cAAc;GACjE;GACD,KAAKA,iCAAmB,QAAQ;IAC/B,MAAM,EAAE,iBAAiB,GAAG,2CAAM;AAClC,WAAO,gBAAgB,qBAA+B,cAAc;GACpE;GAED,QACC,OAAM,IAAI,OAAO,oCAAoC,IAAI,SAAS;EACnE;CACD;;;;;CAMD,aAAa,eACZC,YACoC;AACpC,UAAQ,WAAW,MAAnB;GACC,KAAKD,iCAAmB,OAAO;IAC9B,MAAM,EAAE,gBAAgB,GAAG,2CAAM;IACjC,MAAM,EAAE,iBAAiB,GAAG,2CAAM;AAClC,WAAO,IAAI,eACV;GAED;GACD,KAAKA,iCAAmB,UAAU;IACjC,MAAM,EAAE,mBAAmB,GAAG,2CAAM;IACpC,MAAM,EAAE,oBAAoB,GAAG,2CAAM;AACrC,WAAO,IAAI,kBACV;GAED;GACD,KAAKA,iCAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,2CAAM;IAC/B,MAAM,EAAE,eAAe,GAAG,2CAAM;AAChC,WAAO,IAAI,aACV;GAED;GACD,KAAKA,iCAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,2CAAM;IAC/B,MAAM,EAAE,eAAe,GAAG,2CAAM;AAChC,WAAO,IAAI,aACV;GAED;GACD,KAAKA,iCAAmB,QAAQ;IAC/B,MAAM,EAAE,iBAAiB,GAAG,2CAAM;IAClC,MAAM,EAAE,kBAAkB,GAAG,2CAAM;AACnC,WAAO,IAAI,gBACV;GAED;GACD,QACC,OAAM,IAAI,OAAO,+BAA+B,WAAW,KAAK;EACjE;CACD;AACD"}
@@ -1,4 +1,4 @@
1
- import { EventPublisherType } from "./types-B63qHVOG.mjs";
1
+ import { EventPublisherType } from "./types-BrdcSEnd.mjs";
2
2
 
3
3
  //#region src/Publisher.ts
4
4
  var Publisher = class {
@@ -26,6 +26,10 @@ var Publisher = class {
26
26
  const { SNSPublisher } = await import("./sns/index.mjs");
27
27
  return SNSPublisher.fromConnectionString(connectionStr);
28
28
  }
29
+ case EventPublisherType.PgBoss: {
30
+ const { PgBossPublisher } = await import("./pgboss/index.mjs");
31
+ return PgBossPublisher.fromConnectionString(connectionStr);
32
+ }
29
33
  default: throw new Error(`Unsupported event publisher type: ${url.protocol}`);
30
34
  }
31
35
  }
@@ -55,6 +59,11 @@ var Publisher = class {
55
59
  const { SNSConnection } = await import("./sns/index.mjs");
56
60
  return new SNSPublisher(connection);
57
61
  }
62
+ case EventPublisherType.PgBoss: {
63
+ const { PgBossPublisher } = await import("./pgboss/index.mjs");
64
+ const { PgBossConnection } = await import("./pgboss/index.mjs");
65
+ return new PgBossPublisher(connection);
66
+ }
58
67
  default: throw new Error(`Unsupported connection type: ${connection.type}`);
59
68
  }
60
69
  }
@@ -62,4 +71,4 @@ var Publisher = class {
62
71
 
63
72
  //#endregion
64
73
  export { Publisher };
65
- //# sourceMappingURL=Publisher-DS0aOh8r.mjs.map
74
+ //# sourceMappingURL=Publisher-ChLTrUeP.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Publisher-DS0aOh8r.mjs","names":["connectionStr: EventPublisherConnectionString","connection: EventConnection"],"sources":["../src/Publisher.ts"],"sourcesContent":["import type {\n\tEventConnection,\n\tEventPublisher,\n\tPublishableMessage,\n} from './types';\nimport { EventPublisherType } from './types';\n\nexport class Publisher {\n\t/**\n\t * Create a publisher from a connection string\n\t * This creates both a connection and a publisher\n\t */\n\tstatic async fromConnectionString<\n\t\tTMessage extends PublishableMessage<string, any>,\n\t>(\n\t\tconnectionStr: EventPublisherConnectionString,\n\t): Promise<EventPublisher<TMessage>> {\n\t\tconst url = new URL(connectionStr);\n\t\tswitch (url.protocol.replace(':', '')) {\n\t\t\tcase EventPublisherType.Basic: {\n\t\t\t\tconst { BasicConnection, BasicPublisher } = await import('./basic');\n\t\t\t\tconst connection =\n\t\t\t\t\tawait BasicConnection.fromConnectionString(connectionStr);\n\t\t\t\treturn new BasicPublisher<TMessage>(connection);\n\t\t\t}\n\t\t\tcase EventPublisherType.RabbitMQ: {\n\t\t\t\tconst { RabbitMQPublisher } = await import('./rabbitmq');\n\t\t\t\treturn RabbitMQPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SQS: {\n\t\t\t\tconst { SQSPublisher } = await import('./sqs');\n\t\t\t\treturn SQSPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SNS: {\n\t\t\t\tconst { SNSPublisher } = await import('./sns');\n\t\t\t\treturn SNSPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\t// Future implementations for EventBridge, Kafka, etc.\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported event publisher type: ${url.protocol}`);\n\t\t}\n\t}\n\n\t/**\n\t * Create a publisher from an existing connection\n\t * This allows sharing connections between publishers and subscribers\n\t */\n\tstatic async fromConnection<TMessage extends PublishableMessage<string, any>>(\n\t\tconnection: EventConnection,\n\t): Promise<EventPublisher<TMessage>> {\n\t\tswitch (connection.type) {\n\t\t\tcase EventPublisherType.Basic: {\n\t\t\t\tconst { BasicPublisher } = await import('./basic');\n\t\t\t\tconst { BasicConnection } = await import('./basic');\n\t\t\t\treturn new BasicPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof BasicConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.RabbitMQ: {\n\t\t\t\tconst { RabbitMQPublisher } = await import('./rabbitmq');\n\t\t\t\tconst { RabbitMQConnection } = await import('./rabbitmq');\n\t\t\t\treturn new RabbitMQPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof RabbitMQConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.SQS: {\n\t\t\t\tconst { SQSPublisher } = await import('./sqs');\n\t\t\t\tconst { SQSConnection } = await import('./sqs');\n\t\t\t\treturn new SQSPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof SQSConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.SNS: {\n\t\t\t\tconst { SNSPublisher } = await import('./sns');\n\t\t\t\tconst { SNSConnection } = await import('./sns');\n\t\t\t\treturn new SNSPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof SNSConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported connection type: ${connection.type}`);\n\t\t}\n\t}\n}\n\nexport type EventPublisherConnectionString =\n\t`${EventPublisherType}://${string}`;\n"],"mappings":";;;AAOA,IAAa,YAAb,MAAuB;;;;;CAKtB,aAAa,qBAGZA,eACoC;EACpC,MAAM,MAAM,IAAI,IAAI;AACpB,UAAQ,IAAI,SAAS,QAAQ,KAAK,GAAG,EAArC;GACC,KAAK,mBAAmB,OAAO;IAC9B,MAAM,EAAE,iBAAiB,gBAAgB,GAAG,MAAM,OAAO;IACzD,MAAM,aACL,MAAM,gBAAgB,qBAAqB,cAAc;AAC1D,WAAO,IAAI,eAAyB;GACpC;GACD,KAAK,mBAAmB,UAAU;IACjC,MAAM,EAAE,mBAAmB,GAAG,MAAM,OAAO;AAC3C,WAAO,kBAAkB,qBAA+B,cAAc;GACtE;GACD,KAAK,mBAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,MAAM,OAAO;AACtC,WAAO,aAAa,qBAA+B,cAAc;GACjE;GACD,KAAK,mBAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,MAAM,OAAO;AACtC,WAAO,aAAa,qBAA+B,cAAc;GACjE;GAED,QACC,OAAM,IAAI,OAAO,oCAAoC,IAAI,SAAS;EACnE;CACD;;;;;CAMD,aAAa,eACZC,YACoC;AACpC,UAAQ,WAAW,MAAnB;GACC,KAAK,mBAAmB,OAAO;IAC9B,MAAM,EAAE,gBAAgB,GAAG,MAAM,OAAO;IACxC,MAAM,EAAE,iBAAiB,GAAG,MAAM,OAAO;AACzC,WAAO,IAAI,eACV;GAED;GACD,KAAK,mBAAmB,UAAU;IACjC,MAAM,EAAE,mBAAmB,GAAG,MAAM,OAAO;IAC3C,MAAM,EAAE,oBAAoB,GAAG,MAAM,OAAO;AAC5C,WAAO,IAAI,kBACV;GAED;GACD,KAAK,mBAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,MAAM,OAAO;IACtC,MAAM,EAAE,eAAe,GAAG,MAAM,OAAO;AACvC,WAAO,IAAI,aACV;GAED;GACD,KAAK,mBAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,MAAM,OAAO;IACtC,MAAM,EAAE,eAAe,GAAG,MAAM,OAAO;AACvC,WAAO,IAAI,aACV;GAED;GACD,QACC,OAAM,IAAI,OAAO,+BAA+B,WAAW,KAAK;EACjE;CACD;AACD"}
1
+ {"version":3,"file":"Publisher-ChLTrUeP.mjs","names":["connectionStr: EventPublisherConnectionString","connection: EventConnection"],"sources":["../src/Publisher.ts"],"sourcesContent":["import type {\n\tEventConnection,\n\tEventPublisher,\n\tPublishableMessage,\n} from './types';\nimport { EventPublisherType } from './types';\n\nexport class Publisher {\n\t/**\n\t * Create a publisher from a connection string\n\t * This creates both a connection and a publisher\n\t */\n\tstatic async fromConnectionString<\n\t\tTMessage extends PublishableMessage<string, any>,\n\t>(\n\t\tconnectionStr: EventPublisherConnectionString,\n\t): Promise<EventPublisher<TMessage>> {\n\t\tconst url = new URL(connectionStr);\n\t\tswitch (url.protocol.replace(':', '')) {\n\t\t\tcase EventPublisherType.Basic: {\n\t\t\t\tconst { BasicConnection, BasicPublisher } = await import('./basic');\n\t\t\t\tconst connection =\n\t\t\t\t\tawait BasicConnection.fromConnectionString(connectionStr);\n\t\t\t\treturn new BasicPublisher<TMessage>(connection);\n\t\t\t}\n\t\t\tcase EventPublisherType.RabbitMQ: {\n\t\t\t\tconst { RabbitMQPublisher } = await import('./rabbitmq');\n\t\t\t\treturn RabbitMQPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SQS: {\n\t\t\t\tconst { SQSPublisher } = await import('./sqs');\n\t\t\t\treturn SQSPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SNS: {\n\t\t\t\tconst { SNSPublisher } = await import('./sns');\n\t\t\t\treturn SNSPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.PgBoss: {\n\t\t\t\tconst { PgBossPublisher } = await import('./pgboss');\n\t\t\t\treturn PgBossPublisher.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\t// Future implementations for EventBridge, Kafka, etc.\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported event publisher type: ${url.protocol}`);\n\t\t}\n\t}\n\n\t/**\n\t * Create a publisher from an existing connection\n\t * This allows sharing connections between publishers and subscribers\n\t */\n\tstatic async fromConnection<TMessage extends PublishableMessage<string, any>>(\n\t\tconnection: EventConnection,\n\t): Promise<EventPublisher<TMessage>> {\n\t\tswitch (connection.type) {\n\t\t\tcase EventPublisherType.Basic: {\n\t\t\t\tconst { BasicPublisher } = await import('./basic');\n\t\t\t\tconst { BasicConnection } = await import('./basic');\n\t\t\t\treturn new BasicPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof BasicConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.RabbitMQ: {\n\t\t\t\tconst { RabbitMQPublisher } = await import('./rabbitmq');\n\t\t\t\tconst { RabbitMQConnection } = await import('./rabbitmq');\n\t\t\t\treturn new RabbitMQPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof RabbitMQConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.SQS: {\n\t\t\t\tconst { SQSPublisher } = await import('./sqs');\n\t\t\t\tconst { SQSConnection } = await import('./sqs');\n\t\t\t\treturn new SQSPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof SQSConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.SNS: {\n\t\t\t\tconst { SNSPublisher } = await import('./sns');\n\t\t\t\tconst { SNSConnection } = await import('./sns');\n\t\t\t\treturn new SNSPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof SNSConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcase EventPublisherType.PgBoss: {\n\t\t\t\tconst { PgBossPublisher } = await import('./pgboss');\n\t\t\t\tconst { PgBossConnection } = await import('./pgboss');\n\t\t\t\treturn new PgBossPublisher<TMessage>(\n\t\t\t\t\tconnection as InstanceType<typeof PgBossConnection>,\n\t\t\t\t);\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported connection type: ${connection.type}`);\n\t\t}\n\t}\n}\n\nexport type EventPublisherConnectionString =\n\t`${EventPublisherType}://${string}`;\n"],"mappings":";;;AAOA,IAAa,YAAb,MAAuB;;;;;CAKtB,aAAa,qBAGZA,eACoC;EACpC,MAAM,MAAM,IAAI,IAAI;AACpB,UAAQ,IAAI,SAAS,QAAQ,KAAK,GAAG,EAArC;GACC,KAAK,mBAAmB,OAAO;IAC9B,MAAM,EAAE,iBAAiB,gBAAgB,GAAG,MAAM,OAAO;IACzD,MAAM,aACL,MAAM,gBAAgB,qBAAqB,cAAc;AAC1D,WAAO,IAAI,eAAyB;GACpC;GACD,KAAK,mBAAmB,UAAU;IACjC,MAAM,EAAE,mBAAmB,GAAG,MAAM,OAAO;AAC3C,WAAO,kBAAkB,qBAA+B,cAAc;GACtE;GACD,KAAK,mBAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,MAAM,OAAO;AACtC,WAAO,aAAa,qBAA+B,cAAc;GACjE;GACD,KAAK,mBAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,MAAM,OAAO;AACtC,WAAO,aAAa,qBAA+B,cAAc;GACjE;GACD,KAAK,mBAAmB,QAAQ;IAC/B,MAAM,EAAE,iBAAiB,GAAG,MAAM,OAAO;AACzC,WAAO,gBAAgB,qBAA+B,cAAc;GACpE;GAED,QACC,OAAM,IAAI,OAAO,oCAAoC,IAAI,SAAS;EACnE;CACD;;;;;CAMD,aAAa,eACZC,YACoC;AACpC,UAAQ,WAAW,MAAnB;GACC,KAAK,mBAAmB,OAAO;IAC9B,MAAM,EAAE,gBAAgB,GAAG,MAAM,OAAO;IACxC,MAAM,EAAE,iBAAiB,GAAG,MAAM,OAAO;AACzC,WAAO,IAAI,eACV;GAED;GACD,KAAK,mBAAmB,UAAU;IACjC,MAAM,EAAE,mBAAmB,GAAG,MAAM,OAAO;IAC3C,MAAM,EAAE,oBAAoB,GAAG,MAAM,OAAO;AAC5C,WAAO,IAAI,kBACV;GAED;GACD,KAAK,mBAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,MAAM,OAAO;IACtC,MAAM,EAAE,eAAe,GAAG,MAAM,OAAO;AACvC,WAAO,IAAI,aACV;GAED;GACD,KAAK,mBAAmB,KAAK;IAC5B,MAAM,EAAE,cAAc,GAAG,MAAM,OAAO;IACtC,MAAM,EAAE,eAAe,GAAG,MAAM,OAAO;AACvC,WAAO,IAAI,aACV;GAED;GACD,KAAK,mBAAmB,QAAQ;IAC/B,MAAM,EAAE,iBAAiB,GAAG,MAAM,OAAO;IACzC,MAAM,EAAE,kBAAkB,GAAG,MAAM,OAAO;AAC1C,WAAO,IAAI,gBACV;GAED;GACD,QACC,OAAM,IAAI,OAAO,+BAA+B,WAAW,KAAK;EACjE;CACD;AACD"}
@@ -1,4 +1,4 @@
1
- import { EventConnection, EventPublisher, EventPublisherType, PublishableMessage } from "./types-DSVsPgKd.mjs";
1
+ import { EventConnection, EventPublisher, EventPublisherType, PublishableMessage } from "./types-Dj23od3e.cjs";
2
2
 
3
3
  //#region src/Publisher.d.ts
4
4
  declare class Publisher {
@@ -18,4 +18,4 @@ type EventPublisherConnectionString = `${EventPublisherType}://${string}`;
18
18
 
19
19
  //#endregion
20
20
  export { EventPublisherConnectionString, Publisher };
21
- //# sourceMappingURL=Publisher-1CfcYRnm.d.mts.map
21
+ //# sourceMappingURL=Publisher-DDee6xau.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Publisher-1CfcYRnm.d.mts","names":[],"sources":["../src/Publisher.ts"],"sourcesContent":[],"mappings":";;;cAOa,SAAA;EAAA;;;;EAQkC,OACpB,oBAAA,CAAA,iBAHR,kBAGQ,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,aAAA,EADV,8BACU,CAAA,EAAvB,OAAuB,CAAf,cAAe,CAAA,QAAA,CAAA,CAAA;EAAQ;;;;EAgCN,OACF,cAAA,CAAA,iBAFmB,kBAEnB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,UAAA,EADb,eACa,CAAA,EAAvB,OAAuB,CAAf,cAAe,CAAA,QAAA,CAAA,CAAA;;AAAvB,KAoCQ,8BAAA,GApCR,GAqCA,kBArCA,MAAA,MAAA,EAAA;AAAO"}
1
+ {"version":3,"file":"Publisher-DDee6xau.d.cts","names":[],"sources":["../src/Publisher.ts"],"sourcesContent":[],"mappings":";;;cAOa,SAAA;EAAA;;;;EAQkC,OACpB,oBAAA,CAAA,iBAHR,kBAGQ,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,aAAA,EADV,8BACU,CAAA,EAAvB,OAAuB,CAAf,cAAe,CAAA,QAAA,CAAA,CAAA;EAAQ;;;;EAoCN,OACF,cAAA,CAAA,iBAFmB,kBAEnB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,UAAA,EADb,eACa,CAAA,EAAvB,OAAuB,CAAf,cAAe,CAAA,QAAA,CAAA,CAAA;;AAAvB,KA2CQ,8BAAA,GA3CR,GA4CA,kBA5CA,MAAA,MAAA,EAAA;AAAO"}
@@ -1,4 +1,4 @@
1
- import { EventConnection, EventPublisher, EventPublisherType, PublishableMessage } from "./types-Dmbp1U-6.cjs";
1
+ import { EventConnection, EventPublisher, EventPublisherType, PublishableMessage } from "./types-Dh9Jyinx.mjs";
2
2
 
3
3
  //#region src/Publisher.d.ts
4
4
  declare class Publisher {
@@ -18,4 +18,4 @@ type EventPublisherConnectionString = `${EventPublisherType}://${string}`;
18
18
 
19
19
  //#endregion
20
20
  export { EventPublisherConnectionString, Publisher };
21
- //# sourceMappingURL=Publisher-BfNgvHwQ.d.cts.map
21
+ //# sourceMappingURL=Publisher-VHumMkrP.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Publisher-BfNgvHwQ.d.cts","names":[],"sources":["../src/Publisher.ts"],"sourcesContent":[],"mappings":";;;cAOa,SAAA;EAAA;;;;EAQkC,OACpB,oBAAA,CAAA,iBAHR,kBAGQ,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,aAAA,EADV,8BACU,CAAA,EAAvB,OAAuB,CAAf,cAAe,CAAA,QAAA,CAAA,CAAA;EAAQ;;;;EAgCN,OACF,cAAA,CAAA,iBAFmB,kBAEnB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,UAAA,EADb,eACa,CAAA,EAAvB,OAAuB,CAAf,cAAe,CAAA,QAAA,CAAA,CAAA;;AAAvB,KAoCQ,8BAAA,GApCR,GAqCA,kBArCA,MAAA,MAAA,EAAA;AAAO"}
1
+ {"version":3,"file":"Publisher-VHumMkrP.d.mts","names":[],"sources":["../src/Publisher.ts"],"sourcesContent":[],"mappings":";;;cAOa,SAAA;EAAA;;;;EAQkC,OACpB,oBAAA,CAAA,iBAHR,kBAGQ,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,aAAA,EADV,8BACU,CAAA,EAAvB,OAAuB,CAAf,cAAe,CAAA,QAAA,CAAA,CAAA;EAAQ;;;;EAoCN,OACF,cAAA,CAAA,iBAFmB,kBAEnB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,UAAA,EADb,eACa,CAAA,EAAvB,OAAuB,CAAf,cAAe,CAAA,QAAA,CAAA,CAAA;;AAAvB,KA2CQ,8BAAA,GA3CR,GA4CA,kBA5CA,MAAA,MAAA,EAAA;AAAO"}
@@ -1,4 +1,4 @@
1
- require('./types-CvSMEO5z.cjs');
2
- const require_Publisher = require('./Publisher-ceu6OxCj.cjs');
1
+ require('./types-Byv8N9ma.cjs');
2
+ const require_Publisher = require('./Publisher-CKloIGh6.cjs');
3
3
 
4
4
  exports.Publisher = require_Publisher.Publisher;
@@ -1,3 +1,3 @@
1
- import "./types-Dmbp1U-6.cjs";
2
- import { EventPublisherConnectionString, Publisher } from "./Publisher-BfNgvHwQ.cjs";
1
+ import "./types-Dj23od3e.cjs";
2
+ import { EventPublisherConnectionString, Publisher } from "./Publisher-DDee6xau.cjs";
3
3
  export { EventPublisherConnectionString, Publisher };
@@ -1,3 +1,3 @@
1
- import "./types-DSVsPgKd.mjs";
2
- import { EventPublisherConnectionString, Publisher } from "./Publisher-1CfcYRnm.mjs";
1
+ import "./types-Dh9Jyinx.mjs";
2
+ import { EventPublisherConnectionString, Publisher } from "./Publisher-VHumMkrP.mjs";
3
3
  export { EventPublisherConnectionString, Publisher };
@@ -1,4 +1,4 @@
1
- import "./types-B63qHVOG.mjs";
2
- import { Publisher } from "./Publisher-DS0aOh8r.mjs";
1
+ import "./types-BrdcSEnd.mjs";
2
+ import { Publisher } from "./Publisher-ChLTrUeP.mjs";
3
3
 
4
4
  export { Publisher };
@@ -1,4 +1,4 @@
1
- import { EventPublisherType } from "./types-B63qHVOG.mjs";
1
+ import { EventPublisherType } from "./types-BrdcSEnd.mjs";
2
2
  import amqplib from "amqplib";
3
3
 
4
4
  //#region src/rabbitmq/RabbitMQConnection.ts
@@ -104,4 +104,4 @@ var RabbitMQConnection = class RabbitMQConnection {
104
104
 
105
105
  //#endregion
106
106
  export { RabbitMQConnection };
107
- //# sourceMappingURL=RabbitMQConnection-Co7f5Xsx.mjs.map
107
+ //# sourceMappingURL=RabbitMQConnection-BtKZjtZY.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RabbitMQConnection-Co7f5Xsx.mjs","names":["config: RabbitMQConnectionConfig","connectionString: string","_err: Error"],"sources":["../src/rabbitmq/RabbitMQConnection.ts"],"sourcesContent":["import amqplib from 'amqplib';\nimport type { EventConnection } from '../types';\nimport { EventPublisherType } from '../types';\n\nexport interface RabbitMQConnectionConfig {\n\turl: string;\n\texchange?: string;\n\texchangeType?: 'topic' | 'direct' | 'fanout' | 'headers';\n\texchangeOptions?: amqplib.Options.AssertExchange;\n\ttimeout?: number; // Connection timeout in milliseconds (default: 5000)\n}\n\nexport class RabbitMQConnection implements EventConnection {\n\treadonly type = EventPublisherType.RabbitMQ;\n\tprivate connection?: amqplib.ChannelModel;\n\tprivate channel?: amqplib.Channel;\n\tprivate connecting?: Promise<void>;\n\tprivate config: Required<\n\t\tPick<RabbitMQConnectionConfig, 'exchange' | 'exchangeType' | 'timeout'>\n\t> &\n\t\tRabbitMQConnectionConfig;\n\n\tconstructor(config: RabbitMQConnectionConfig) {\n\t\tthis.config = {\n\t\t\t...config,\n\t\t\texchange: config.exchange || 'geekmidas.events',\n\t\t\texchangeType: config.exchangeType || 'topic',\n\t\t\ttimeout: config.timeout ?? 5000,\n\t\t\texchangeOptions: {\n\t\t\t\tdurable: true,\n\t\t\t\t...config.exchangeOptions,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Create a RabbitMQConnection from a connection string\n\t * Format: rabbitmq://user:pass@host:port/vhost?exchange=name&type=topic&timeout=5000\n\t */\n\tstatic async fromConnectionString(\n\t\tconnectionString: string,\n\t): Promise<RabbitMQConnection> {\n\t\tconst url = new URL(connectionString);\n\t\tconst params = url.searchParams;\n\n\t\t// Extract connection URL without query params\n\t\tconst baseUrl = `amqp://${url.username ? `${url.username}:${url.password}@` : ''}${url.host}${url.pathname}`;\n\n\t\tconst timeoutParam = params.get('timeout');\n\t\tconst config: RabbitMQConnectionConfig = {\n\t\t\turl: baseUrl,\n\t\t\texchange: params.get('exchange') || 'geekmidas.events',\n\t\t\texchangeType: (params.get('type') as any) || 'topic',\n\t\t\ttimeout: timeoutParam ? Number.parseInt(timeoutParam, 10) : undefined,\n\t\t};\n\n\t\tconst connection = new RabbitMQConnection(config);\n\t\tawait connection.connect();\n\t\treturn connection;\n\t}\n\n\tasync connect(): Promise<void> {\n\t\tif (this.channel) return;\n\n\t\t// Prevent multiple simultaneous connection attempts\n\t\tif (this.connecting) {\n\t\t\tawait this.connecting;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.connecting = (async () => {\n\t\t\ttry {\n\t\t\t\tconst connection = await amqplib.connect(this.config.url, {\n\t\t\t\t\ttimeout: this.config.timeout,\n\t\t\t\t});\n\t\t\t\tconst channel = await connection.createChannel();\n\n\t\t\t\t// Assert the exchange exists\n\t\t\t\tawait channel.assertExchange(\n\t\t\t\t\tthis.config.exchange!,\n\t\t\t\t\tthis.config.exchangeType!,\n\t\t\t\t\tthis.config.exchangeOptions,\n\t\t\t\t);\n\n\t\t\t\t// Handle connection errors\n\t\t\t\tconnection.on('error', (_err: Error) => {\n\t\t\t\t\tthis.cleanup();\n\t\t\t\t});\n\n\t\t\t\tconnection.on('close', () => {\n\t\t\t\t\tthis.cleanup();\n\t\t\t\t});\n\n\t\t\t\t// Only set after successful setup\n\t\t\t\tthis.connection = connection;\n\t\t\t\tthis.channel = channel;\n\t\t\t} catch (error) {\n\t\t\t\tthis.cleanup();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t})();\n\n\t\tawait this.connecting;\n\t\tthis.connecting = undefined;\n\t}\n\n\tasync close(): Promise<void> {\n\t\ttry {\n\t\t\tawait this.channel?.close();\n\t\t\tawait this.connection?.close();\n\t\t} catch (_error) {\n\t\t\t// Ignore errors during close\n\t\t} finally {\n\t\t\tthis.cleanup();\n\t\t}\n\t}\n\n\tisConnected(): boolean {\n\t\treturn !!this.channel;\n\t}\n\n\tprivate cleanup(): void {\n\t\tthis.channel = undefined;\n\t\tthis.connection = undefined;\n\t\tthis.connecting = undefined;\n\t}\n\n\t/**\n\t * Get the underlying channel for publishing/subscribing\n\t */\n\tget amqpChannel(): amqplib.Channel | undefined {\n\t\treturn this.channel;\n\t}\n\n\t/**\n\t * Get the exchange name for this connection\n\t */\n\tget exchangeName(): string {\n\t\treturn this.config.exchange;\n\t}\n\n\t/**\n\t * Get the exchange type for this connection\n\t */\n\tget exchangeType(): string {\n\t\treturn this.config.exchangeType;\n\t}\n}\n"],"mappings":";;;;AAYA,IAAa,qBAAb,MAAa,mBAA8C;CAC1D,AAAS,OAAO,mBAAmB;CACnC,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CAKR,YAAYA,QAAkC;AAC7C,OAAK,SAAS;GACb,GAAG;GACH,UAAU,OAAO,YAAY;GAC7B,cAAc,OAAO,gBAAgB;GACrC,SAAS,OAAO,WAAW;GAC3B,iBAAiB;IAChB,SAAS;IACT,GAAG,OAAO;GACV;EACD;CACD;;;;;CAMD,aAAa,qBACZC,kBAC8B;EAC9B,MAAM,MAAM,IAAI,IAAI;EACpB,MAAM,SAAS,IAAI;EAGnB,MAAM,WAAW,SAAS,IAAI,YAAY,EAAE,IAAI,SAAS,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,IAAI,KAAK,EAAE,IAAI,SAAS;EAE3G,MAAM,eAAe,OAAO,IAAI,UAAU;EAC1C,MAAMD,SAAmC;GACxC,KAAK;GACL,UAAU,OAAO,IAAI,WAAW,IAAI;GACpC,cAAe,OAAO,IAAI,OAAO,IAAY;GAC7C,SAAS,eAAe,OAAO,SAAS,cAAc,GAAG;EACzD;EAED,MAAM,aAAa,IAAI,mBAAmB;AAC1C,QAAM,WAAW,SAAS;AAC1B,SAAO;CACP;CAED,MAAM,UAAyB;AAC9B,MAAI,KAAK,QAAS;AAGlB,MAAI,KAAK,YAAY;AACpB,SAAM,KAAK;AACX;EACA;AAED,OAAK,aAAa,CAAC,YAAY;AAC9B,OAAI;IACH,MAAM,aAAa,MAAM,QAAQ,QAAQ,KAAK,OAAO,KAAK,EACzD,SAAS,KAAK,OAAO,QACrB,EAAC;IACF,MAAM,UAAU,MAAM,WAAW,eAAe;AAGhD,UAAM,QAAQ,eACb,KAAK,OAAO,UACZ,KAAK,OAAO,cACZ,KAAK,OAAO,gBACZ;AAGD,eAAW,GAAG,SAAS,CAACE,SAAgB;AACvC,UAAK,SAAS;IACd,EAAC;AAEF,eAAW,GAAG,SAAS,MAAM;AAC5B,UAAK,SAAS;IACd,EAAC;AAGF,SAAK,aAAa;AAClB,SAAK,UAAU;GACf,SAAQ,OAAO;AACf,SAAK,SAAS;AACd,UAAM;GACN;EACD,IAAG;AAEJ,QAAM,KAAK;AACX,OAAK;CACL;CAED,MAAM,QAAuB;AAC5B,MAAI;AACH,SAAM,KAAK,SAAS,OAAO;AAC3B,SAAM,KAAK,YAAY,OAAO;EAC9B,SAAQ,QAAQ,CAEhB,UAAS;AACT,QAAK,SAAS;EACd;CACD;CAED,cAAuB;AACtB,WAAS,KAAK;CACd;CAED,AAAQ,UAAgB;AACvB,OAAK;AACL,OAAK;AACL,OAAK;CACL;;;;CAKD,IAAI,cAA2C;AAC9C,SAAO,KAAK;CACZ;;;;CAKD,IAAI,eAAuB;AAC1B,SAAO,KAAK,OAAO;CACnB;;;;CAKD,IAAI,eAAuB;AAC1B,SAAO,KAAK,OAAO;CACnB;AACD"}
1
+ {"version":3,"file":"RabbitMQConnection-BtKZjtZY.mjs","names":["config: RabbitMQConnectionConfig","connectionString: string","_err: Error"],"sources":["../src/rabbitmq/RabbitMQConnection.ts"],"sourcesContent":["import amqplib from 'amqplib';\nimport type { EventConnection } from '../types';\nimport { EventPublisherType } from '../types';\n\nexport interface RabbitMQConnectionConfig {\n\turl: string;\n\texchange?: string;\n\texchangeType?: 'topic' | 'direct' | 'fanout' | 'headers';\n\texchangeOptions?: amqplib.Options.AssertExchange;\n\ttimeout?: number; // Connection timeout in milliseconds (default: 5000)\n}\n\nexport class RabbitMQConnection implements EventConnection {\n\treadonly type = EventPublisherType.RabbitMQ;\n\tprivate connection?: amqplib.ChannelModel;\n\tprivate channel?: amqplib.Channel;\n\tprivate connecting?: Promise<void>;\n\tprivate config: Required<\n\t\tPick<RabbitMQConnectionConfig, 'exchange' | 'exchangeType' | 'timeout'>\n\t> &\n\t\tRabbitMQConnectionConfig;\n\n\tconstructor(config: RabbitMQConnectionConfig) {\n\t\tthis.config = {\n\t\t\t...config,\n\t\t\texchange: config.exchange || 'geekmidas.events',\n\t\t\texchangeType: config.exchangeType || 'topic',\n\t\t\ttimeout: config.timeout ?? 5000,\n\t\t\texchangeOptions: {\n\t\t\t\tdurable: true,\n\t\t\t\t...config.exchangeOptions,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Create a RabbitMQConnection from a connection string\n\t * Format: rabbitmq://user:pass@host:port/vhost?exchange=name&type=topic&timeout=5000\n\t */\n\tstatic async fromConnectionString(\n\t\tconnectionString: string,\n\t): Promise<RabbitMQConnection> {\n\t\tconst url = new URL(connectionString);\n\t\tconst params = url.searchParams;\n\n\t\t// Extract connection URL without query params\n\t\tconst baseUrl = `amqp://${url.username ? `${url.username}:${url.password}@` : ''}${url.host}${url.pathname}`;\n\n\t\tconst timeoutParam = params.get('timeout');\n\t\tconst config: RabbitMQConnectionConfig = {\n\t\t\turl: baseUrl,\n\t\t\texchange: params.get('exchange') || 'geekmidas.events',\n\t\t\texchangeType: (params.get('type') as any) || 'topic',\n\t\t\ttimeout: timeoutParam ? Number.parseInt(timeoutParam, 10) : undefined,\n\t\t};\n\n\t\tconst connection = new RabbitMQConnection(config);\n\t\tawait connection.connect();\n\t\treturn connection;\n\t}\n\n\tasync connect(): Promise<void> {\n\t\tif (this.channel) return;\n\n\t\t// Prevent multiple simultaneous connection attempts\n\t\tif (this.connecting) {\n\t\t\tawait this.connecting;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.connecting = (async () => {\n\t\t\ttry {\n\t\t\t\tconst connection = await amqplib.connect(this.config.url, {\n\t\t\t\t\ttimeout: this.config.timeout,\n\t\t\t\t});\n\t\t\t\tconst channel = await connection.createChannel();\n\n\t\t\t\t// Assert the exchange exists\n\t\t\t\tawait channel.assertExchange(\n\t\t\t\t\tthis.config.exchange!,\n\t\t\t\t\tthis.config.exchangeType!,\n\t\t\t\t\tthis.config.exchangeOptions,\n\t\t\t\t);\n\n\t\t\t\t// Handle connection errors\n\t\t\t\tconnection.on('error', (_err: Error) => {\n\t\t\t\t\tthis.cleanup();\n\t\t\t\t});\n\n\t\t\t\tconnection.on('close', () => {\n\t\t\t\t\tthis.cleanup();\n\t\t\t\t});\n\n\t\t\t\t// Only set after successful setup\n\t\t\t\tthis.connection = connection;\n\t\t\t\tthis.channel = channel;\n\t\t\t} catch (error) {\n\t\t\t\tthis.cleanup();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t})();\n\n\t\tawait this.connecting;\n\t\tthis.connecting = undefined;\n\t}\n\n\tasync close(): Promise<void> {\n\t\ttry {\n\t\t\tawait this.channel?.close();\n\t\t\tawait this.connection?.close();\n\t\t} catch (_error) {\n\t\t\t// Ignore errors during close\n\t\t} finally {\n\t\t\tthis.cleanup();\n\t\t}\n\t}\n\n\tisConnected(): boolean {\n\t\treturn !!this.channel;\n\t}\n\n\tprivate cleanup(): void {\n\t\tthis.channel = undefined;\n\t\tthis.connection = undefined;\n\t\tthis.connecting = undefined;\n\t}\n\n\t/**\n\t * Get the underlying channel for publishing/subscribing\n\t */\n\tget amqpChannel(): amqplib.Channel | undefined {\n\t\treturn this.channel;\n\t}\n\n\t/**\n\t * Get the exchange name for this connection\n\t */\n\tget exchangeName(): string {\n\t\treturn this.config.exchange;\n\t}\n\n\t/**\n\t * Get the exchange type for this connection\n\t */\n\tget exchangeType(): string {\n\t\treturn this.config.exchangeType;\n\t}\n}\n"],"mappings":";;;;AAYA,IAAa,qBAAb,MAAa,mBAA8C;CAC1D,AAAS,OAAO,mBAAmB;CACnC,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CAKR,YAAYA,QAAkC;AAC7C,OAAK,SAAS;GACb,GAAG;GACH,UAAU,OAAO,YAAY;GAC7B,cAAc,OAAO,gBAAgB;GACrC,SAAS,OAAO,WAAW;GAC3B,iBAAiB;IAChB,SAAS;IACT,GAAG,OAAO;GACV;EACD;CACD;;;;;CAMD,aAAa,qBACZC,kBAC8B;EAC9B,MAAM,MAAM,IAAI,IAAI;EACpB,MAAM,SAAS,IAAI;EAGnB,MAAM,WAAW,SAAS,IAAI,YAAY,EAAE,IAAI,SAAS,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,IAAI,KAAK,EAAE,IAAI,SAAS;EAE3G,MAAM,eAAe,OAAO,IAAI,UAAU;EAC1C,MAAMD,SAAmC;GACxC,KAAK;GACL,UAAU,OAAO,IAAI,WAAW,IAAI;GACpC,cAAe,OAAO,IAAI,OAAO,IAAY;GAC7C,SAAS,eAAe,OAAO,SAAS,cAAc,GAAG;EACzD;EAED,MAAM,aAAa,IAAI,mBAAmB;AAC1C,QAAM,WAAW,SAAS;AAC1B,SAAO;CACP;CAED,MAAM,UAAyB;AAC9B,MAAI,KAAK,QAAS;AAGlB,MAAI,KAAK,YAAY;AACpB,SAAM,KAAK;AACX;EACA;AAED,OAAK,aAAa,CAAC,YAAY;AAC9B,OAAI;IACH,MAAM,aAAa,MAAM,QAAQ,QAAQ,KAAK,OAAO,KAAK,EACzD,SAAS,KAAK,OAAO,QACrB,EAAC;IACF,MAAM,UAAU,MAAM,WAAW,eAAe;AAGhD,UAAM,QAAQ,eACb,KAAK,OAAO,UACZ,KAAK,OAAO,cACZ,KAAK,OAAO,gBACZ;AAGD,eAAW,GAAG,SAAS,CAACE,SAAgB;AACvC,UAAK,SAAS;IACd,EAAC;AAEF,eAAW,GAAG,SAAS,MAAM;AAC5B,UAAK,SAAS;IACd,EAAC;AAGF,SAAK,aAAa;AAClB,SAAK,UAAU;GACf,SAAQ,OAAO;AACf,SAAK,SAAS;AACd,UAAM;GACN;EACD,IAAG;AAEJ,QAAM,KAAK;AACX,OAAK;CACL;CAED,MAAM,QAAuB;AAC5B,MAAI;AACH,SAAM,KAAK,SAAS,OAAO;AAC3B,SAAM,KAAK,YAAY,OAAO;EAC9B,SAAQ,QAAQ,CAEhB,UAAS;AACT,QAAK,SAAS;EACd;CACD;CAED,cAAuB;AACtB,WAAS,KAAK;CACd;CAED,AAAQ,UAAgB;AACvB,OAAK;AACL,OAAK;AACL,OAAK;CACL;;;;CAKD,IAAI,cAA2C;AAC9C,SAAO,KAAK;CACZ;;;;CAKD,IAAI,eAAuB;AAC1B,SAAO,KAAK,OAAO;CACnB;;;;CAKD,IAAI,eAAuB;AAC1B,SAAO,KAAK,OAAO;CACnB;AACD"}
@@ -1,4 +1,4 @@
1
- import { EventConnection, EventPublisherType } from "./types-Dmbp1U-6.cjs";
1
+ import { EventConnection, EventPublisherType } from "./types-Dh9Jyinx.mjs";
2
2
  import amqplib from "amqplib";
3
3
 
4
4
  //#region src/rabbitmq/RabbitMQConnection.d.ts
@@ -41,4 +41,4 @@ declare class RabbitMQConnection implements EventConnection {
41
41
  //# sourceMappingURL=RabbitMQConnection.d.ts.map
42
42
  //#endregion
43
43
  export { RabbitMQConnection, RabbitMQConnectionConfig };
44
- //# sourceMappingURL=RabbitMQConnection-Bm8VCI2R.d.cts.map
44
+ //# sourceMappingURL=RabbitMQConnection-DV9t3VYp.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RabbitMQConnection-Bm8VCI2R.d.cts","names":[],"sources":["../src/rabbitmq/RabbitMQConnection.ts"],"sourcesContent":[],"mappings":";;;;UAIiB,wBAAA;EAAA,GAAA,EAAA,MAAA;EAQJ,QAAA,CAAA,EAAA,MAAA;EAAmB,YAAA,CAAA,EAAA,OAAA,GAAA,QAAA,GAAA,QAAA,GAAA,SAAA;EAAA,eAClB,CAAA,EALK,OAAA,CAAQ,OAAA,CAAQ,cAKrB;EAAA,OASO,CAAA,EAAA,MAAA;;AAmBjB,cA7BS,kBAAA,YAA8B,eA6BvC,CAAA;EAAO,SAoBO,IAAA,GAhDJ,kBAAA,CAAA,QAAA;EAgDW,QA6CT,UAAA;EAAO,QAwBH,OAAQ;EAAO,QAtHQ,UAAA;EAAe,QAAA,MAAA;sBAUrC;;;;;yDAmBjB,QAAQ;aAoBM;WA6CF;;;;;;qBAwBI,OAAA,CAAQ"}
1
+ {"version":3,"file":"RabbitMQConnection-DV9t3VYp.d.mts","names":[],"sources":["../src/rabbitmq/RabbitMQConnection.ts"],"sourcesContent":[],"mappings":";;;;UAIiB,wBAAA;EAAA,GAAA,EAAA,MAAA;EAQJ,QAAA,CAAA,EAAA,MAAA;EAAmB,YAAA,CAAA,EAAA,OAAA,GAAA,QAAA,GAAA,QAAA,GAAA,SAAA;EAAA,eAClB,CAAA,EALK,OAAA,CAAQ,OAAA,CAAQ,cAKrB;EAAA,OASO,CAAA,EAAA,MAAA;;AAmBjB,cA7BS,kBAAA,YAA8B,eA6BvC,CAAA;EAAO,SAoBO,IAAA,GAhDJ,kBAAA,CAAA,QAAA;EAgDW,QA6CT,UAAA;EAAO,QAwBH,OAAQ;EAAO,QAtHQ,UAAA;EAAe,QAAA,MAAA;sBAUrC;;;;;yDAmBjB,QAAQ;aAoBM;WA6CF;;;;;;qBAwBI,OAAA,CAAQ"}
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require('./chunk-CUT6urMc.cjs');
2
- const require_types = require('./types-CvSMEO5z.cjs');
2
+ const require_types = require('./types-Byv8N9ma.cjs');
3
3
  const amqplib = require_chunk.__toESM(require("amqplib"));
4
4
 
5
5
  //#region src/rabbitmq/RabbitMQConnection.ts
@@ -110,4 +110,4 @@ Object.defineProperty(exports, 'RabbitMQConnection', {
110
110
  return RabbitMQConnection;
111
111
  }
112
112
  });
113
- //# sourceMappingURL=RabbitMQConnection-Blj9Lo05.cjs.map
113
+ //# sourceMappingURL=RabbitMQConnection-DmMMosT4.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RabbitMQConnection-Blj9Lo05.cjs","names":["EventPublisherType","config: RabbitMQConnectionConfig","connectionString: string","_err: Error"],"sources":["../src/rabbitmq/RabbitMQConnection.ts"],"sourcesContent":["import amqplib from 'amqplib';\nimport type { EventConnection } from '../types';\nimport { EventPublisherType } from '../types';\n\nexport interface RabbitMQConnectionConfig {\n\turl: string;\n\texchange?: string;\n\texchangeType?: 'topic' | 'direct' | 'fanout' | 'headers';\n\texchangeOptions?: amqplib.Options.AssertExchange;\n\ttimeout?: number; // Connection timeout in milliseconds (default: 5000)\n}\n\nexport class RabbitMQConnection implements EventConnection {\n\treadonly type = EventPublisherType.RabbitMQ;\n\tprivate connection?: amqplib.ChannelModel;\n\tprivate channel?: amqplib.Channel;\n\tprivate connecting?: Promise<void>;\n\tprivate config: Required<\n\t\tPick<RabbitMQConnectionConfig, 'exchange' | 'exchangeType' | 'timeout'>\n\t> &\n\t\tRabbitMQConnectionConfig;\n\n\tconstructor(config: RabbitMQConnectionConfig) {\n\t\tthis.config = {\n\t\t\t...config,\n\t\t\texchange: config.exchange || 'geekmidas.events',\n\t\t\texchangeType: config.exchangeType || 'topic',\n\t\t\ttimeout: config.timeout ?? 5000,\n\t\t\texchangeOptions: {\n\t\t\t\tdurable: true,\n\t\t\t\t...config.exchangeOptions,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Create a RabbitMQConnection from a connection string\n\t * Format: rabbitmq://user:pass@host:port/vhost?exchange=name&type=topic&timeout=5000\n\t */\n\tstatic async fromConnectionString(\n\t\tconnectionString: string,\n\t): Promise<RabbitMQConnection> {\n\t\tconst url = new URL(connectionString);\n\t\tconst params = url.searchParams;\n\n\t\t// Extract connection URL without query params\n\t\tconst baseUrl = `amqp://${url.username ? `${url.username}:${url.password}@` : ''}${url.host}${url.pathname}`;\n\n\t\tconst timeoutParam = params.get('timeout');\n\t\tconst config: RabbitMQConnectionConfig = {\n\t\t\turl: baseUrl,\n\t\t\texchange: params.get('exchange') || 'geekmidas.events',\n\t\t\texchangeType: (params.get('type') as any) || 'topic',\n\t\t\ttimeout: timeoutParam ? Number.parseInt(timeoutParam, 10) : undefined,\n\t\t};\n\n\t\tconst connection = new RabbitMQConnection(config);\n\t\tawait connection.connect();\n\t\treturn connection;\n\t}\n\n\tasync connect(): Promise<void> {\n\t\tif (this.channel) return;\n\n\t\t// Prevent multiple simultaneous connection attempts\n\t\tif (this.connecting) {\n\t\t\tawait this.connecting;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.connecting = (async () => {\n\t\t\ttry {\n\t\t\t\tconst connection = await amqplib.connect(this.config.url, {\n\t\t\t\t\ttimeout: this.config.timeout,\n\t\t\t\t});\n\t\t\t\tconst channel = await connection.createChannel();\n\n\t\t\t\t// Assert the exchange exists\n\t\t\t\tawait channel.assertExchange(\n\t\t\t\t\tthis.config.exchange!,\n\t\t\t\t\tthis.config.exchangeType!,\n\t\t\t\t\tthis.config.exchangeOptions,\n\t\t\t\t);\n\n\t\t\t\t// Handle connection errors\n\t\t\t\tconnection.on('error', (_err: Error) => {\n\t\t\t\t\tthis.cleanup();\n\t\t\t\t});\n\n\t\t\t\tconnection.on('close', () => {\n\t\t\t\t\tthis.cleanup();\n\t\t\t\t});\n\n\t\t\t\t// Only set after successful setup\n\t\t\t\tthis.connection = connection;\n\t\t\t\tthis.channel = channel;\n\t\t\t} catch (error) {\n\t\t\t\tthis.cleanup();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t})();\n\n\t\tawait this.connecting;\n\t\tthis.connecting = undefined;\n\t}\n\n\tasync close(): Promise<void> {\n\t\ttry {\n\t\t\tawait this.channel?.close();\n\t\t\tawait this.connection?.close();\n\t\t} catch (_error) {\n\t\t\t// Ignore errors during close\n\t\t} finally {\n\t\t\tthis.cleanup();\n\t\t}\n\t}\n\n\tisConnected(): boolean {\n\t\treturn !!this.channel;\n\t}\n\n\tprivate cleanup(): void {\n\t\tthis.channel = undefined;\n\t\tthis.connection = undefined;\n\t\tthis.connecting = undefined;\n\t}\n\n\t/**\n\t * Get the underlying channel for publishing/subscribing\n\t */\n\tget amqpChannel(): amqplib.Channel | undefined {\n\t\treturn this.channel;\n\t}\n\n\t/**\n\t * Get the exchange name for this connection\n\t */\n\tget exchangeName(): string {\n\t\treturn this.config.exchange;\n\t}\n\n\t/**\n\t * Get the exchange type for this connection\n\t */\n\tget exchangeType(): string {\n\t\treturn this.config.exchangeType;\n\t}\n}\n"],"mappings":";;;;;AAYA,IAAa,qBAAb,MAAa,mBAA8C;CAC1D,AAAS,OAAOA,iCAAmB;CACnC,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CAKR,YAAYC,QAAkC;AAC7C,OAAK,SAAS;GACb,GAAG;GACH,UAAU,OAAO,YAAY;GAC7B,cAAc,OAAO,gBAAgB;GACrC,SAAS,OAAO,WAAW;GAC3B,iBAAiB;IAChB,SAAS;IACT,GAAG,OAAO;GACV;EACD;CACD;;;;;CAMD,aAAa,qBACZC,kBAC8B;EAC9B,MAAM,MAAM,IAAI,IAAI;EACpB,MAAM,SAAS,IAAI;EAGnB,MAAM,WAAW,SAAS,IAAI,YAAY,EAAE,IAAI,SAAS,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,IAAI,KAAK,EAAE,IAAI,SAAS;EAE3G,MAAM,eAAe,OAAO,IAAI,UAAU;EAC1C,MAAMD,SAAmC;GACxC,KAAK;GACL,UAAU,OAAO,IAAI,WAAW,IAAI;GACpC,cAAe,OAAO,IAAI,OAAO,IAAY;GAC7C,SAAS,eAAe,OAAO,SAAS,cAAc,GAAG;EACzD;EAED,MAAM,aAAa,IAAI,mBAAmB;AAC1C,QAAM,WAAW,SAAS;AAC1B,SAAO;CACP;CAED,MAAM,UAAyB;AAC9B,MAAI,KAAK,QAAS;AAGlB,MAAI,KAAK,YAAY;AACpB,SAAM,KAAK;AACX;EACA;AAED,OAAK,aAAa,CAAC,YAAY;AAC9B,OAAI;IACH,MAAM,aAAa,MAAM,gBAAQ,QAAQ,KAAK,OAAO,KAAK,EACzD,SAAS,KAAK,OAAO,QACrB,EAAC;IACF,MAAM,UAAU,MAAM,WAAW,eAAe;AAGhD,UAAM,QAAQ,eACb,KAAK,OAAO,UACZ,KAAK,OAAO,cACZ,KAAK,OAAO,gBACZ;AAGD,eAAW,GAAG,SAAS,CAACE,SAAgB;AACvC,UAAK,SAAS;IACd,EAAC;AAEF,eAAW,GAAG,SAAS,MAAM;AAC5B,UAAK,SAAS;IACd,EAAC;AAGF,SAAK,aAAa;AAClB,SAAK,UAAU;GACf,SAAQ,OAAO;AACf,SAAK,SAAS;AACd,UAAM;GACN;EACD,IAAG;AAEJ,QAAM,KAAK;AACX,OAAK;CACL;CAED,MAAM,QAAuB;AAC5B,MAAI;AACH,SAAM,KAAK,SAAS,OAAO;AAC3B,SAAM,KAAK,YAAY,OAAO;EAC9B,SAAQ,QAAQ,CAEhB,UAAS;AACT,QAAK,SAAS;EACd;CACD;CAED,cAAuB;AACtB,WAAS,KAAK;CACd;CAED,AAAQ,UAAgB;AACvB,OAAK;AACL,OAAK;AACL,OAAK;CACL;;;;CAKD,IAAI,cAA2C;AAC9C,SAAO,KAAK;CACZ;;;;CAKD,IAAI,eAAuB;AAC1B,SAAO,KAAK,OAAO;CACnB;;;;CAKD,IAAI,eAAuB;AAC1B,SAAO,KAAK,OAAO;CACnB;AACD"}
1
+ {"version":3,"file":"RabbitMQConnection-DmMMosT4.cjs","names":["EventPublisherType","config: RabbitMQConnectionConfig","connectionString: string","_err: Error"],"sources":["../src/rabbitmq/RabbitMQConnection.ts"],"sourcesContent":["import amqplib from 'amqplib';\nimport type { EventConnection } from '../types';\nimport { EventPublisherType } from '../types';\n\nexport interface RabbitMQConnectionConfig {\n\turl: string;\n\texchange?: string;\n\texchangeType?: 'topic' | 'direct' | 'fanout' | 'headers';\n\texchangeOptions?: amqplib.Options.AssertExchange;\n\ttimeout?: number; // Connection timeout in milliseconds (default: 5000)\n}\n\nexport class RabbitMQConnection implements EventConnection {\n\treadonly type = EventPublisherType.RabbitMQ;\n\tprivate connection?: amqplib.ChannelModel;\n\tprivate channel?: amqplib.Channel;\n\tprivate connecting?: Promise<void>;\n\tprivate config: Required<\n\t\tPick<RabbitMQConnectionConfig, 'exchange' | 'exchangeType' | 'timeout'>\n\t> &\n\t\tRabbitMQConnectionConfig;\n\n\tconstructor(config: RabbitMQConnectionConfig) {\n\t\tthis.config = {\n\t\t\t...config,\n\t\t\texchange: config.exchange || 'geekmidas.events',\n\t\t\texchangeType: config.exchangeType || 'topic',\n\t\t\ttimeout: config.timeout ?? 5000,\n\t\t\texchangeOptions: {\n\t\t\t\tdurable: true,\n\t\t\t\t...config.exchangeOptions,\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Create a RabbitMQConnection from a connection string\n\t * Format: rabbitmq://user:pass@host:port/vhost?exchange=name&type=topic&timeout=5000\n\t */\n\tstatic async fromConnectionString(\n\t\tconnectionString: string,\n\t): Promise<RabbitMQConnection> {\n\t\tconst url = new URL(connectionString);\n\t\tconst params = url.searchParams;\n\n\t\t// Extract connection URL without query params\n\t\tconst baseUrl = `amqp://${url.username ? `${url.username}:${url.password}@` : ''}${url.host}${url.pathname}`;\n\n\t\tconst timeoutParam = params.get('timeout');\n\t\tconst config: RabbitMQConnectionConfig = {\n\t\t\turl: baseUrl,\n\t\t\texchange: params.get('exchange') || 'geekmidas.events',\n\t\t\texchangeType: (params.get('type') as any) || 'topic',\n\t\t\ttimeout: timeoutParam ? Number.parseInt(timeoutParam, 10) : undefined,\n\t\t};\n\n\t\tconst connection = new RabbitMQConnection(config);\n\t\tawait connection.connect();\n\t\treturn connection;\n\t}\n\n\tasync connect(): Promise<void> {\n\t\tif (this.channel) return;\n\n\t\t// Prevent multiple simultaneous connection attempts\n\t\tif (this.connecting) {\n\t\t\tawait this.connecting;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.connecting = (async () => {\n\t\t\ttry {\n\t\t\t\tconst connection = await amqplib.connect(this.config.url, {\n\t\t\t\t\ttimeout: this.config.timeout,\n\t\t\t\t});\n\t\t\t\tconst channel = await connection.createChannel();\n\n\t\t\t\t// Assert the exchange exists\n\t\t\t\tawait channel.assertExchange(\n\t\t\t\t\tthis.config.exchange!,\n\t\t\t\t\tthis.config.exchangeType!,\n\t\t\t\t\tthis.config.exchangeOptions,\n\t\t\t\t);\n\n\t\t\t\t// Handle connection errors\n\t\t\t\tconnection.on('error', (_err: Error) => {\n\t\t\t\t\tthis.cleanup();\n\t\t\t\t});\n\n\t\t\t\tconnection.on('close', () => {\n\t\t\t\t\tthis.cleanup();\n\t\t\t\t});\n\n\t\t\t\t// Only set after successful setup\n\t\t\t\tthis.connection = connection;\n\t\t\t\tthis.channel = channel;\n\t\t\t} catch (error) {\n\t\t\t\tthis.cleanup();\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t})();\n\n\t\tawait this.connecting;\n\t\tthis.connecting = undefined;\n\t}\n\n\tasync close(): Promise<void> {\n\t\ttry {\n\t\t\tawait this.channel?.close();\n\t\t\tawait this.connection?.close();\n\t\t} catch (_error) {\n\t\t\t// Ignore errors during close\n\t\t} finally {\n\t\t\tthis.cleanup();\n\t\t}\n\t}\n\n\tisConnected(): boolean {\n\t\treturn !!this.channel;\n\t}\n\n\tprivate cleanup(): void {\n\t\tthis.channel = undefined;\n\t\tthis.connection = undefined;\n\t\tthis.connecting = undefined;\n\t}\n\n\t/**\n\t * Get the underlying channel for publishing/subscribing\n\t */\n\tget amqpChannel(): amqplib.Channel | undefined {\n\t\treturn this.channel;\n\t}\n\n\t/**\n\t * Get the exchange name for this connection\n\t */\n\tget exchangeName(): string {\n\t\treturn this.config.exchange;\n\t}\n\n\t/**\n\t * Get the exchange type for this connection\n\t */\n\tget exchangeType(): string {\n\t\treturn this.config.exchangeType;\n\t}\n}\n"],"mappings":";;;;;AAYA,IAAa,qBAAb,MAAa,mBAA8C;CAC1D,AAAS,OAAOA,iCAAmB;CACnC,AAAQ;CACR,AAAQ;CACR,AAAQ;CACR,AAAQ;CAKR,YAAYC,QAAkC;AAC7C,OAAK,SAAS;GACb,GAAG;GACH,UAAU,OAAO,YAAY;GAC7B,cAAc,OAAO,gBAAgB;GACrC,SAAS,OAAO,WAAW;GAC3B,iBAAiB;IAChB,SAAS;IACT,GAAG,OAAO;GACV;EACD;CACD;;;;;CAMD,aAAa,qBACZC,kBAC8B;EAC9B,MAAM,MAAM,IAAI,IAAI;EACpB,MAAM,SAAS,IAAI;EAGnB,MAAM,WAAW,SAAS,IAAI,YAAY,EAAE,IAAI,SAAS,GAAG,IAAI,SAAS,KAAK,GAAG,EAAE,IAAI,KAAK,EAAE,IAAI,SAAS;EAE3G,MAAM,eAAe,OAAO,IAAI,UAAU;EAC1C,MAAMD,SAAmC;GACxC,KAAK;GACL,UAAU,OAAO,IAAI,WAAW,IAAI;GACpC,cAAe,OAAO,IAAI,OAAO,IAAY;GAC7C,SAAS,eAAe,OAAO,SAAS,cAAc,GAAG;EACzD;EAED,MAAM,aAAa,IAAI,mBAAmB;AAC1C,QAAM,WAAW,SAAS;AAC1B,SAAO;CACP;CAED,MAAM,UAAyB;AAC9B,MAAI,KAAK,QAAS;AAGlB,MAAI,KAAK,YAAY;AACpB,SAAM,KAAK;AACX;EACA;AAED,OAAK,aAAa,CAAC,YAAY;AAC9B,OAAI;IACH,MAAM,aAAa,MAAM,gBAAQ,QAAQ,KAAK,OAAO,KAAK,EACzD,SAAS,KAAK,OAAO,QACrB,EAAC;IACF,MAAM,UAAU,MAAM,WAAW,eAAe;AAGhD,UAAM,QAAQ,eACb,KAAK,OAAO,UACZ,KAAK,OAAO,cACZ,KAAK,OAAO,gBACZ;AAGD,eAAW,GAAG,SAAS,CAACE,SAAgB;AACvC,UAAK,SAAS;IACd,EAAC;AAEF,eAAW,GAAG,SAAS,MAAM;AAC5B,UAAK,SAAS;IACd,EAAC;AAGF,SAAK,aAAa;AAClB,SAAK,UAAU;GACf,SAAQ,OAAO;AACf,SAAK,SAAS;AACd,UAAM;GACN;EACD,IAAG;AAEJ,QAAM,KAAK;AACX,OAAK;CACL;CAED,MAAM,QAAuB;AAC5B,MAAI;AACH,SAAM,KAAK,SAAS,OAAO;AAC3B,SAAM,KAAK,YAAY,OAAO;EAC9B,SAAQ,QAAQ,CAEhB,UAAS;AACT,QAAK,SAAS;EACd;CACD;CAED,cAAuB;AACtB,WAAS,KAAK;CACd;CAED,AAAQ,UAAgB;AACvB,OAAK;AACL,OAAK;AACL,OAAK;CACL;;;;CAKD,IAAI,cAA2C;AAC9C,SAAO,KAAK;CACZ;;;;CAKD,IAAI,eAAuB;AAC1B,SAAO,KAAK,OAAO;CACnB;;;;CAKD,IAAI,eAAuB;AAC1B,SAAO,KAAK,OAAO;CACnB;AACD"}
@@ -1,4 +1,4 @@
1
- import { EventConnection, EventPublisherType } from "./types-DSVsPgKd.mjs";
1
+ import { EventConnection, EventPublisherType } from "./types-Dj23od3e.cjs";
2
2
  import amqplib from "amqplib";
3
3
 
4
4
  //#region src/rabbitmq/RabbitMQConnection.d.ts
@@ -41,4 +41,4 @@ declare class RabbitMQConnection implements EventConnection {
41
41
  //# sourceMappingURL=RabbitMQConnection.d.ts.map
42
42
  //#endregion
43
43
  export { RabbitMQConnection, RabbitMQConnectionConfig };
44
- //# sourceMappingURL=RabbitMQConnection-Ck-ktCp_.d.mts.map
44
+ //# sourceMappingURL=RabbitMQConnection-jNME_eR7.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RabbitMQConnection-Ck-ktCp_.d.mts","names":[],"sources":["../src/rabbitmq/RabbitMQConnection.ts"],"sourcesContent":[],"mappings":";;;;UAIiB,wBAAA;EAAA,GAAA,EAAA,MAAA;EAQJ,QAAA,CAAA,EAAA,MAAA;EAAmB,YAAA,CAAA,EAAA,OAAA,GAAA,QAAA,GAAA,QAAA,GAAA,SAAA;EAAA,eAClB,CAAA,EALK,OAAA,CAAQ,OAAA,CAAQ,cAKrB;EAAA,OASO,CAAA,EAAA,MAAA;;AAmBjB,cA7BS,kBAAA,YAA8B,eA6BvC,CAAA;EAAO,SAoBO,IAAA,GAhDJ,kBAAA,CAAA,QAAA;EAgDW,QA6CT,UAAA;EAAO,QAwBH,OAAQ;EAAO,QAtHQ,UAAA;EAAe,QAAA,MAAA;sBAUrC;;;;;yDAmBjB,QAAQ;aAoBM;WA6CF;;;;;;qBAwBI,OAAA,CAAQ"}
1
+ {"version":3,"file":"RabbitMQConnection-jNME_eR7.d.cts","names":[],"sources":["../src/rabbitmq/RabbitMQConnection.ts"],"sourcesContent":[],"mappings":";;;;UAIiB,wBAAA;EAAA,GAAA,EAAA,MAAA;EAQJ,QAAA,CAAA,EAAA,MAAA;EAAmB,YAAA,CAAA,EAAA,OAAA,GAAA,QAAA,GAAA,QAAA,GAAA,SAAA;EAAA,eAClB,CAAA,EALK,OAAA,CAAQ,OAAA,CAAQ,cAKrB;EAAA,OASO,CAAA,EAAA,MAAA;;AAmBjB,cA7BS,kBAAA,YAA8B,eA6BvC,CAAA;EAAO,SAoBO,IAAA,GAhDJ,kBAAA,CAAA,QAAA;EAgDW,QA6CT,UAAA;EAAO,QAwBH,OAAQ;EAAO,QAtHQ,UAAA;EAAe,QAAA,MAAA;sBAUrC;;;;;yDAmBjB,QAAQ;aAoBM;WA6CF;;;;;;qBAwBI,OAAA,CAAQ"}
@@ -42,4 +42,4 @@ Object.defineProperty(exports, 'RabbitMQPublisher', {
42
42
  return RabbitMQPublisher;
43
43
  }
44
44
  });
45
- //# sourceMappingURL=RabbitMQPublisher--DL6GM6g.cjs.map
45
+ //# sourceMappingURL=RabbitMQPublisher-C94q6g8q.cjs.map