@geekmidas/events 9.0.2 → 10.0.0-alpha.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 (353) hide show
  1. package/dist/{PgBossConnection-B71ssr72.cjs → PgBossConnection-23soZ_aM.cjs} +2 -2
  2. package/dist/{PgBossConnection-B71ssr72.cjs.map → PgBossConnection-23soZ_aM.cjs.map} +1 -1
  3. package/dist/PgBossConnection-CCXhoNzb.cjs +4 -0
  4. package/dist/{PgBossConnection-Bj_Wo1lQ.mjs → PgBossConnection-DvNbd4Zk.mjs} +2 -2
  5. package/dist/{PgBossConnection-Bj_Wo1lQ.mjs.map → PgBossConnection-DvNbd4Zk.mjs.map} +1 -1
  6. package/dist/PgBossConnection-_gdM40JB.mjs +4 -0
  7. package/dist/{RabbitMQConnection-DmMMosT4.cjs → RabbitMQConnection-BKEdCUro.cjs} +2 -2
  8. package/dist/{RabbitMQConnection-DmMMosT4.cjs.map → RabbitMQConnection-BKEdCUro.cjs.map} +1 -1
  9. package/dist/RabbitMQConnection-CCOqDDnb.cjs +4 -0
  10. package/dist/RabbitMQConnection-DJEyM-Bu.mjs +4 -0
  11. package/dist/{RabbitMQConnection-BtKZjtZY.mjs → RabbitMQConnection-DJgUPc19.mjs} +2 -2
  12. package/dist/{RabbitMQConnection-BtKZjtZY.mjs.map → RabbitMQConnection-DJgUPc19.mjs.map} +1 -1
  13. package/dist/{SNSConnection-CAcbLQOy.cjs → SNSConnection-B2K86hpz.cjs} +7 -8
  14. package/dist/SNSConnection-B2K86hpz.cjs.map +1 -0
  15. package/dist/SNSConnection-BVo84FeW.mjs +5 -0
  16. package/dist/SNSConnection-DIHRjrQF.cjs +5 -0
  17. package/dist/{SNSConnection-CVjH93lb.mjs → SNSConnection-v9jjF99w.mjs} +7 -8
  18. package/dist/SNSConnection-v9jjF99w.mjs.map +1 -0
  19. package/dist/{SQSConnection-CT3S7_zP.mjs → SQSConnection-4tBMkVZE.mjs} +7 -8
  20. package/dist/SQSConnection-4tBMkVZE.mjs.map +1 -0
  21. package/dist/SQSConnection-BBLAvF-1.cjs +5 -0
  22. package/dist/{SQSConnection-Y0mdVTcB.cjs → SQSConnection-BaC7rGhI.cjs} +7 -8
  23. package/dist/SQSConnection-BaC7rGhI.cjs.map +1 -0
  24. package/dist/SQSConnection-DbavOq8_.mjs +5 -0
  25. package/dist/{SQSSubscriber-CQdSFzpe.mjs → SQSSubscriber-BMWZ3s5q.mjs} +1 -1
  26. package/dist/{SQSSubscriber-CQdSFzpe.mjs.map → SQSSubscriber-BMWZ3s5q.mjs.map} +1 -1
  27. package/dist/{SQSSubscriber-C4UA2hKq.cjs → SQSSubscriber-YXPlg2rm.cjs} +2 -2
  28. package/dist/{SQSSubscriber-C4UA2hKq.cjs.map → SQSSubscriber-YXPlg2rm.cjs.map} +1 -1
  29. package/dist/basic/index.cjs +71 -8
  30. package/dist/basic/index.cjs.map +1 -0
  31. package/dist/basic/index.d.cts +44 -5
  32. package/dist/basic/index.d.cts.map +1 -0
  33. package/dist/basic/index.d.mts +44 -5
  34. package/dist/basic/index.d.mts.map +1 -0
  35. package/dist/basic/index.mjs +67 -5
  36. package/dist/basic/index.mjs.map +1 -0
  37. package/dist/chunk-B9dir_RE.mjs +11 -0
  38. package/dist/{chunk-CUT6urMc.cjs → chunk-CsX-DzYB.cjs} +12 -0
  39. package/dist/index.cjs +189 -6
  40. package/dist/index.cjs.map +1 -0
  41. package/dist/index.d.cts +46 -5
  42. package/dist/index.d.cts.map +1 -0
  43. package/dist/index.d.mts +46 -5
  44. package/dist/index.d.mts.map +1 -0
  45. package/dist/index.mjs +188 -5
  46. package/dist/index.mjs.map +1 -0
  47. package/dist/pgboss/index.cjs +81 -5
  48. package/dist/pgboss/index.cjs.map +1 -0
  49. package/dist/pgboss/index.d.cts +65 -5
  50. package/dist/pgboss/index.d.cts.map +1 -0
  51. package/dist/pgboss/index.d.mts +65 -5
  52. package/dist/pgboss/index.d.mts.map +1 -0
  53. package/dist/pgboss/index.mjs +81 -5
  54. package/dist/pgboss/index.mjs.map +1 -0
  55. package/dist/rabbitmq/index.cjs +95 -5
  56. package/dist/rabbitmq/index.cjs.map +1 -0
  57. package/dist/rabbitmq/index.d.cts +83 -5
  58. package/dist/rabbitmq/index.d.cts.map +1 -0
  59. package/dist/rabbitmq/index.d.mts +83 -5
  60. package/dist/rabbitmq/index.d.mts.map +1 -0
  61. package/dist/rabbitmq/index.mjs +95 -5
  62. package/dist/rabbitmq/index.mjs.map +1 -0
  63. package/dist/sns/index.cjs +186 -7
  64. package/dist/sns/index.cjs.map +1 -0
  65. package/dist/sns/index.d.cts +109 -5
  66. package/dist/sns/index.d.cts.map +1 -0
  67. package/dist/sns/index.d.mts +109 -5
  68. package/dist/sns/index.d.mts.map +1 -0
  69. package/dist/sns/index.mjs +179 -7
  70. package/dist/sns/index.mjs.map +1 -0
  71. package/dist/sns/snsUrl.cjs +7 -0
  72. package/dist/sns/snsUrl.d.cts +2 -0
  73. package/dist/sns/snsUrl.d.mts +2 -0
  74. package/dist/sns/snsUrl.mjs +3 -0
  75. package/dist/snsUrl-ASdc0D1v.d.cts +61 -0
  76. package/dist/snsUrl-ASdc0D1v.d.cts.map +1 -0
  77. package/dist/snsUrl-CifYhPAa.mjs +79 -0
  78. package/dist/snsUrl-CifYhPAa.mjs.map +1 -0
  79. package/dist/snsUrl-FRbRcwF0.d.mts +61 -0
  80. package/dist/snsUrl-FRbRcwF0.d.mts.map +1 -0
  81. package/dist/snsUrl-f2gU3CzK.cjs +114 -0
  82. package/dist/snsUrl-f2gU3CzK.cjs.map +1 -0
  83. package/dist/sqs/index.cjs +67 -5
  84. package/dist/sqs/index.cjs.map +1 -0
  85. package/dist/sqs/index.d.cts +101 -5
  86. package/dist/sqs/index.d.cts.map +1 -0
  87. package/dist/sqs/index.d.mts +101 -5
  88. package/dist/sqs/index.d.mts.map +1 -0
  89. package/dist/sqs/index.mjs +60 -5
  90. package/dist/sqs/index.mjs.map +1 -0
  91. package/dist/sqs/sqsUrl.cjs +7 -0
  92. package/dist/sqs/sqsUrl.d.cts +2 -0
  93. package/dist/sqs/sqsUrl.d.mts +2 -0
  94. package/dist/sqs/sqsUrl.mjs +3 -0
  95. package/dist/sqsUrl-BV6zS-mi.d.mts +60 -0
  96. package/dist/sqsUrl-BV6zS-mi.d.mts.map +1 -0
  97. package/dist/sqsUrl-CbAsBFHI.mjs +80 -0
  98. package/dist/sqsUrl-CbAsBFHI.mjs.map +1 -0
  99. package/dist/sqsUrl-CdisN3GU.cjs +115 -0
  100. package/dist/sqsUrl-CdisN3GU.cjs.map +1 -0
  101. package/dist/sqsUrl-DZDPHxIk.d.cts +60 -0
  102. package/dist/sqsUrl-DZDPHxIk.d.cts.map +1 -0
  103. package/dist/{types-Dh9Jyinx.d.mts → types-BmixGrOD.d.cts} +1 -1
  104. package/dist/{types-Dh9Jyinx.d.mts.map → types-BmixGrOD.d.cts.map} +1 -1
  105. package/dist/{types-BrdcSEnd.mjs → types-CYDt-2RQ.mjs} +1 -1
  106. package/dist/{types-BrdcSEnd.mjs.map → types-CYDt-2RQ.mjs.map} +1 -1
  107. package/dist/{types-Dj23od3e.d.cts → types-DycjsYms.d.mts} +1 -1
  108. package/dist/{types-Dj23od3e.d.cts.map → types-DycjsYms.d.mts.map} +1 -1
  109. package/package.json +26 -3
  110. package/CHANGELOG.md +0 -109
  111. package/dist/BasicConnection-CQsJpx2J.d.cts +0 -27
  112. package/dist/BasicConnection-CQsJpx2J.d.cts.map +0 -1
  113. package/dist/BasicConnection-CxfNEvlb.cjs +0 -48
  114. package/dist/BasicConnection-CxfNEvlb.cjs.map +0 -1
  115. package/dist/BasicConnection-DcRelT64.d.mts +0 -27
  116. package/dist/BasicConnection-DcRelT64.d.mts.map +0 -1
  117. package/dist/BasicConnection-hl-Ogz3a.mjs +0 -42
  118. package/dist/BasicConnection-hl-Ogz3a.mjs.map +0 -1
  119. package/dist/BasicPublisher-C-hMX2Hy.d.mts +0 -14
  120. package/dist/BasicPublisher-C-hMX2Hy.d.mts.map +0 -1
  121. package/dist/BasicPublisher-CGMXg2I2.d.cts +0 -14
  122. package/dist/BasicPublisher-CGMXg2I2.d.cts.map +0 -1
  123. package/dist/BasicPublisher-CXAVKxgq.cjs +0 -20
  124. package/dist/BasicPublisher-CXAVKxgq.cjs.map +0 -1
  125. package/dist/BasicPublisher-DogbeHAH.mjs +0 -14
  126. package/dist/BasicPublisher-DogbeHAH.mjs.map +0 -1
  127. package/dist/BasicSubscriber-BJSZN22M.mjs +0 -16
  128. package/dist/BasicSubscriber-BJSZN22M.mjs.map +0 -1
  129. package/dist/BasicSubscriber-HzSJ_MbB.d.mts +0 -14
  130. package/dist/BasicSubscriber-HzSJ_MbB.d.mts.map +0 -1
  131. package/dist/BasicSubscriber-mVJRMXhZ.cjs +0 -22
  132. package/dist/BasicSubscriber-mVJRMXhZ.cjs.map +0 -1
  133. package/dist/BasicSubscriber-uW3IOyBj.d.cts +0 -14
  134. package/dist/BasicSubscriber-uW3IOyBj.d.cts.map +0 -1
  135. package/dist/EventConnection-4niMI6D8.d.mts +0 -13
  136. package/dist/EventConnection-4niMI6D8.d.mts.map +0 -1
  137. package/dist/EventConnection-BkA9FSVL.cjs +0 -45
  138. package/dist/EventConnection-BkA9FSVL.cjs.map +0 -1
  139. package/dist/EventConnection-Kr32GAzq.mjs +0 -40
  140. package/dist/EventConnection-Kr32GAzq.mjs.map +0 -1
  141. package/dist/EventConnection-dP42P87q.d.cts +0 -13
  142. package/dist/EventConnection-dP42P87q.d.cts.map +0 -1
  143. package/dist/EventConnection.cjs +0 -5
  144. package/dist/EventConnection.d.cts +0 -3
  145. package/dist/EventConnection.d.mts +0 -3
  146. package/dist/EventConnection.mjs +0 -4
  147. package/dist/PgBossConnection-DCfLGoHx.d.mts +0 -32
  148. package/dist/PgBossConnection-DCfLGoHx.d.mts.map +0 -1
  149. package/dist/PgBossConnection-oto_CAbP.d.cts +0 -32
  150. package/dist/PgBossConnection-oto_CAbP.d.cts.map +0 -1
  151. package/dist/PgBossPublisher-Bwo7qSoH.mjs +0 -35
  152. package/dist/PgBossPublisher-Bwo7qSoH.mjs.map +0 -1
  153. package/dist/PgBossPublisher-CqjigBVC.d.mts +0 -20
  154. package/dist/PgBossPublisher-CqjigBVC.d.mts.map +0 -1
  155. package/dist/PgBossPublisher-FTdYh58W.cjs +0 -41
  156. package/dist/PgBossPublisher-FTdYh58W.cjs.map +0 -1
  157. package/dist/PgBossPublisher-JIiB1zpA.d.cts +0 -20
  158. package/dist/PgBossPublisher-JIiB1zpA.d.cts.map +0 -1
  159. package/dist/PgBossSubscriber-BUiB1JKf.d.mts +0 -24
  160. package/dist/PgBossSubscriber-BUiB1JKf.d.mts.map +0 -1
  161. package/dist/PgBossSubscriber-BubVfuWm.cjs +0 -52
  162. package/dist/PgBossSubscriber-BubVfuWm.cjs.map +0 -1
  163. package/dist/PgBossSubscriber-Cozijfdj.d.cts +0 -24
  164. package/dist/PgBossSubscriber-Cozijfdj.d.cts.map +0 -1
  165. package/dist/PgBossSubscriber-DopATe80.mjs +0 -46
  166. package/dist/PgBossSubscriber-DopATe80.mjs.map +0 -1
  167. package/dist/Publisher-CKloIGh6.cjs +0 -79
  168. package/dist/Publisher-CKloIGh6.cjs.map +0 -1
  169. package/dist/Publisher-ChLTrUeP.mjs +0 -74
  170. package/dist/Publisher-ChLTrUeP.mjs.map +0 -1
  171. package/dist/Publisher-DDee6xau.d.cts +0 -21
  172. package/dist/Publisher-DDee6xau.d.cts.map +0 -1
  173. package/dist/Publisher-VHumMkrP.d.mts +0 -21
  174. package/dist/Publisher-VHumMkrP.d.mts.map +0 -1
  175. package/dist/Publisher.cjs +0 -4
  176. package/dist/Publisher.d.cts +0 -3
  177. package/dist/Publisher.d.mts +0 -3
  178. package/dist/Publisher.mjs +0 -4
  179. package/dist/RabbitMQConnection-DV9t3VYp.d.mts +0 -44
  180. package/dist/RabbitMQConnection-DV9t3VYp.d.mts.map +0 -1
  181. package/dist/RabbitMQConnection-jNME_eR7.d.cts +0 -44
  182. package/dist/RabbitMQConnection-jNME_eR7.d.cts.map +0 -1
  183. package/dist/RabbitMQPublisher-C94q6g8q.cjs +0 -45
  184. package/dist/RabbitMQPublisher-C94q6g8q.cjs.map +0 -1
  185. package/dist/RabbitMQPublisher-DKmgwqVj.d.mts +0 -25
  186. package/dist/RabbitMQPublisher-DKmgwqVj.d.mts.map +0 -1
  187. package/dist/RabbitMQPublisher-d257OHLa.d.cts +0 -25
  188. package/dist/RabbitMQPublisher-d257OHLa.d.cts.map +0 -1
  189. package/dist/RabbitMQPublisher-yUqWNq-P.mjs +0 -39
  190. package/dist/RabbitMQPublisher-yUqWNq-P.mjs.map +0 -1
  191. package/dist/RabbitMQSubscriber-BF7JGfYm.d.cts +0 -27
  192. package/dist/RabbitMQSubscriber-BF7JGfYm.d.cts.map +0 -1
  193. package/dist/RabbitMQSubscriber-BWniDtFs.mjs +0 -56
  194. package/dist/RabbitMQSubscriber-BWniDtFs.mjs.map +0 -1
  195. package/dist/RabbitMQSubscriber-CdbUy5mB.d.mts +0 -27
  196. package/dist/RabbitMQSubscriber-CdbUy5mB.d.mts.map +0 -1
  197. package/dist/RabbitMQSubscriber-DGEO-clQ.cjs +0 -62
  198. package/dist/RabbitMQSubscriber-DGEO-clQ.cjs.map +0 -1
  199. package/dist/SNSConnection-CAcbLQOy.cjs.map +0 -1
  200. package/dist/SNSConnection-CG4iEwA8.d.mts +0 -41
  201. package/dist/SNSConnection-CG4iEwA8.d.mts.map +0 -1
  202. package/dist/SNSConnection-CVjH93lb.mjs.map +0 -1
  203. package/dist/SNSConnection-Dol9FuxA.d.cts +0 -41
  204. package/dist/SNSConnection-Dol9FuxA.d.cts.map +0 -1
  205. package/dist/SNSPublisher-CjlMS3Z2.mjs +0 -41
  206. package/dist/SNSPublisher-CjlMS3Z2.mjs.map +0 -1
  207. package/dist/SNSPublisher-D50dPCEh.d.mts +0 -22
  208. package/dist/SNSPublisher-D50dPCEh.d.mts.map +0 -1
  209. package/dist/SNSPublisher-DQunY4NM.d.cts +0 -22
  210. package/dist/SNSPublisher-DQunY4NM.d.cts.map +0 -1
  211. package/dist/SNSPublisher-DV_8GGsi.cjs +0 -47
  212. package/dist/SNSPublisher-DV_8GGsi.cjs.map +0 -1
  213. package/dist/SNSSubscriber-BWaCQFl6.mjs +0 -139
  214. package/dist/SNSSubscriber-BWaCQFl6.mjs.map +0 -1
  215. package/dist/SNSSubscriber-CUgHK4W2.d.mts +0 -55
  216. package/dist/SNSSubscriber-CUgHK4W2.d.mts.map +0 -1
  217. package/dist/SNSSubscriber-ZE_-Hsps.cjs +0 -145
  218. package/dist/SNSSubscriber-ZE_-Hsps.cjs.map +0 -1
  219. package/dist/SNSSubscriber-ZGJjhXFQ.d.cts +0 -55
  220. package/dist/SNSSubscriber-ZGJjhXFQ.d.cts.map +0 -1
  221. package/dist/SQSConnection-BtEkDha8.d.cts +0 -41
  222. package/dist/SQSConnection-BtEkDha8.d.cts.map +0 -1
  223. package/dist/SQSConnection-CT3S7_zP.mjs.map +0 -1
  224. package/dist/SQSConnection-DVy43GCV.d.mts +0 -41
  225. package/dist/SQSConnection-DVy43GCV.d.mts.map +0 -1
  226. package/dist/SQSConnection-Y0mdVTcB.cjs.map +0 -1
  227. package/dist/SQSPublisher-B-32CC4G.mjs +0 -57
  228. package/dist/SQSPublisher-B-32CC4G.mjs.map +0 -1
  229. package/dist/SQSPublisher-CgUduk6H.cjs +0 -63
  230. package/dist/SQSPublisher-CgUduk6H.cjs.map +0 -1
  231. package/dist/SQSPublisher-kyl5HW3N.d.cts +0 -25
  232. package/dist/SQSPublisher-kyl5HW3N.d.cts.map +0 -1
  233. package/dist/SQSPublisher-qDE5Fp-N.d.mts +0 -25
  234. package/dist/SQSPublisher-qDE5Fp-N.d.mts.map +0 -1
  235. package/dist/SQSSubscriber-CDvaG4ij.d.cts +0 -44
  236. package/dist/SQSSubscriber-CDvaG4ij.d.cts.map +0 -1
  237. package/dist/SQSSubscriber-JfFuAAoP.d.mts +0 -44
  238. package/dist/SQSSubscriber-JfFuAAoP.d.mts.map +0 -1
  239. package/dist/Subscriber-CG_QUQZs.d.cts +0 -21
  240. package/dist/Subscriber-CG_QUQZs.d.cts.map +0 -1
  241. package/dist/Subscriber-CghW0A02.cjs +0 -88
  242. package/dist/Subscriber-CghW0A02.cjs.map +0 -1
  243. package/dist/Subscriber-DiYHmuF0.d.mts +0 -21
  244. package/dist/Subscriber-DiYHmuF0.d.mts.map +0 -1
  245. package/dist/Subscriber-bnkFtSvt.mjs +0 -83
  246. package/dist/Subscriber-bnkFtSvt.mjs.map +0 -1
  247. package/dist/Subscriber.cjs +0 -4
  248. package/dist/Subscriber.d.cts +0 -3
  249. package/dist/Subscriber.d.mts +0 -3
  250. package/dist/Subscriber.mjs +0 -4
  251. package/dist/basic/BasicConnection.cjs +0 -4
  252. package/dist/basic/BasicConnection.d.cts +0 -3
  253. package/dist/basic/BasicConnection.d.mts +0 -3
  254. package/dist/basic/BasicConnection.mjs +0 -4
  255. package/dist/basic/BasicPublisher.cjs +0 -3
  256. package/dist/basic/BasicPublisher.d.cts +0 -4
  257. package/dist/basic/BasicPublisher.d.mts +0 -4
  258. package/dist/basic/BasicPublisher.mjs +0 -3
  259. package/dist/basic/BasicSubscriber.cjs +0 -3
  260. package/dist/basic/BasicSubscriber.d.cts +0 -4
  261. package/dist/basic/BasicSubscriber.d.mts +0 -4
  262. package/dist/basic/BasicSubscriber.mjs +0 -3
  263. package/dist/pgboss/PgBossConnection.cjs +0 -4
  264. package/dist/pgboss/PgBossConnection.d.cts +0 -3
  265. package/dist/pgboss/PgBossConnection.d.mts +0 -3
  266. package/dist/pgboss/PgBossConnection.mjs +0 -4
  267. package/dist/pgboss/PgBossPublisher.cjs +0 -3
  268. package/dist/pgboss/PgBossPublisher.d.cts +0 -4
  269. package/dist/pgboss/PgBossPublisher.d.mts +0 -4
  270. package/dist/pgboss/PgBossPublisher.mjs +0 -3
  271. package/dist/pgboss/PgBossSubscriber.cjs +0 -3
  272. package/dist/pgboss/PgBossSubscriber.d.cts +0 -4
  273. package/dist/pgboss/PgBossSubscriber.d.mts +0 -4
  274. package/dist/pgboss/PgBossSubscriber.mjs +0 -3
  275. package/dist/rabbitmq/RabbitMQConnection.cjs +0 -4
  276. package/dist/rabbitmq/RabbitMQConnection.d.cts +0 -3
  277. package/dist/rabbitmq/RabbitMQConnection.d.mts +0 -3
  278. package/dist/rabbitmq/RabbitMQConnection.mjs +0 -4
  279. package/dist/rabbitmq/RabbitMQPublisher.cjs +0 -3
  280. package/dist/rabbitmq/RabbitMQPublisher.d.cts +0 -4
  281. package/dist/rabbitmq/RabbitMQPublisher.d.mts +0 -4
  282. package/dist/rabbitmq/RabbitMQPublisher.mjs +0 -3
  283. package/dist/rabbitmq/RabbitMQSubscriber.cjs +0 -3
  284. package/dist/rabbitmq/RabbitMQSubscriber.d.cts +0 -4
  285. package/dist/rabbitmq/RabbitMQSubscriber.d.mts +0 -4
  286. package/dist/rabbitmq/RabbitMQSubscriber.mjs +0 -3
  287. package/dist/sns/SNSConnection.cjs +0 -4
  288. package/dist/sns/SNSConnection.d.cts +0 -3
  289. package/dist/sns/SNSConnection.d.mts +0 -3
  290. package/dist/sns/SNSConnection.mjs +0 -4
  291. package/dist/sns/SNSPublisher.cjs +0 -3
  292. package/dist/sns/SNSPublisher.d.cts +0 -4
  293. package/dist/sns/SNSPublisher.d.mts +0 -4
  294. package/dist/sns/SNSPublisher.mjs +0 -3
  295. package/dist/sns/SNSSubscriber.cjs +0 -6
  296. package/dist/sns/SNSSubscriber.d.cts +0 -4
  297. package/dist/sns/SNSSubscriber.d.mts +0 -4
  298. package/dist/sns/SNSSubscriber.mjs +0 -6
  299. package/dist/sqs/SQSConnection.cjs +0 -4
  300. package/dist/sqs/SQSConnection.d.cts +0 -3
  301. package/dist/sqs/SQSConnection.d.mts +0 -3
  302. package/dist/sqs/SQSConnection.mjs +0 -4
  303. package/dist/sqs/SQSPublisher.cjs +0 -3
  304. package/dist/sqs/SQSPublisher.d.cts +0 -4
  305. package/dist/sqs/SQSPublisher.d.mts +0 -4
  306. package/dist/sqs/SQSPublisher.mjs +0 -3
  307. package/dist/sqs/SQSSubscriber.cjs +0 -3
  308. package/dist/sqs/SQSSubscriber.d.cts +0 -4
  309. package/dist/sqs/SQSSubscriber.d.mts +0 -4
  310. package/dist/sqs/SQSSubscriber.mjs +0 -3
  311. package/dist/types.cjs +0 -3
  312. package/dist/types.d.cts +0 -2
  313. package/dist/types.d.mts +0 -2
  314. package/dist/types.mjs +0 -3
  315. package/src/EventConnection.ts +0 -43
  316. package/src/Publisher.ts +0 -98
  317. package/src/Subscriber.ts +0 -113
  318. package/src/__tests__/EventConnection.spec.ts +0 -42
  319. package/src/__tests__/Publisher.spec.ts +0 -96
  320. package/src/__tests__/Subscriber.spec.ts +0 -109
  321. package/src/basic/BasicConnection.ts +0 -47
  322. package/src/basic/BasicPublisher.ts +0 -15
  323. package/src/basic/BasicSubscriber.ts +0 -21
  324. package/src/basic/__tests__/BasicSubscriber.spec.ts +0 -166
  325. package/src/basic/index.ts +0 -3
  326. package/src/index.ts +0 -25
  327. package/src/pgboss/PgBossConnection.ts +0 -91
  328. package/src/pgboss/PgBossPublisher.ts +0 -49
  329. package/src/pgboss/PgBossSubscriber.ts +0 -81
  330. package/src/pgboss/__tests__/pgboss.spec.ts +0 -196
  331. package/src/pgboss/__tests__/setup.ts +0 -21
  332. package/src/pgboss/index.ts +0 -5
  333. package/src/rabbitmq/RabbitMQConnection.ts +0 -148
  334. package/src/rabbitmq/RabbitMQPublisher.ts +0 -67
  335. package/src/rabbitmq/RabbitMQSubscriber.ts +0 -111
  336. package/src/rabbitmq/__tests__/RabbitMQPublisher.spec.ts +0 -378
  337. package/src/rabbitmq/__tests__/RabbitMQSubscriber.spec.ts +0 -292
  338. package/src/rabbitmq/index.ts +0 -6
  339. package/src/sns/SNSConnection.ts +0 -98
  340. package/src/sns/SNSPublisher.ts +0 -62
  341. package/src/sns/SNSSubscriber.ts +0 -218
  342. package/src/sns/__tests__/SNS-SQS-Integration.spec.ts +0 -389
  343. package/src/sns/__tests__/SNSPublisher.spec.ts +0 -449
  344. package/src/sns/__tests__/SNSSubscriber.spec.ts +0 -527
  345. package/src/sns/index.ts +0 -6
  346. package/src/sqs/SQSConnection.ts +0 -97
  347. package/src/sqs/SQSPublisher.ts +0 -105
  348. package/src/sqs/SQSSubscriber.ts +0 -181
  349. package/src/sqs/__tests__/SQSPublisher.spec.ts +0 -189
  350. package/src/sqs/index.ts +0 -6
  351. package/src/types.ts +0 -76
  352. package/tsconfig.json +0 -9
  353. package/tsdown.config.ts +0 -10
package/dist/index.mjs CHANGED
@@ -1,6 +1,189 @@
1
- import { EventPublisherType } from "./types-BrdcSEnd.mjs";
2
- import { EventConnectionFactory } from "./EventConnection-Kr32GAzq.mjs";
3
- import { Publisher } from "./Publisher-ChLTrUeP.mjs";
4
- import { Subscriber } from "./Subscriber-bnkFtSvt.mjs";
1
+ import { EventPublisherType } from "./types-CYDt-2RQ.mjs";
5
2
 
6
- export { EventConnectionFactory, EventPublisherType, Publisher, Subscriber };
3
+ //#region src/EventConnection.ts
4
+ var EventConnectionFactory = class {
5
+ /**
6
+ * Create an EventConnection from a connection string
7
+ * Dynamically imports the appropriate connection implementation
8
+ */
9
+ static async fromConnectionString(connectionStr) {
10
+ const url = new URL(connectionStr);
11
+ const protocol = url.protocol.replace(":", "");
12
+ switch (protocol) {
13
+ case EventPublisherType.Basic: {
14
+ const { BasicConnection } = await import("./basic/index.mjs");
15
+ return BasicConnection.fromConnectionString(connectionStr);
16
+ }
17
+ case EventPublisherType.RabbitMQ: {
18
+ const { RabbitMQConnection } = await import("./rabbitmq/index.mjs");
19
+ return RabbitMQConnection.fromConnectionString(connectionStr);
20
+ }
21
+ case EventPublisherType.SQS: {
22
+ const { SQSConnection } = await import("./sqs/index.mjs");
23
+ return SQSConnection.fromConnectionString(connectionStr);
24
+ }
25
+ case EventPublisherType.SNS: {
26
+ const { SNSConnection } = await import("./sns/index.mjs");
27
+ return SNSConnection.fromConnectionString(connectionStr);
28
+ }
29
+ case EventPublisherType.PgBoss: {
30
+ const { PgBossConnection } = await import("./pgboss/index.mjs");
31
+ return PgBossConnection.fromConnectionString(connectionStr);
32
+ }
33
+ default: throw new Error(`Unsupported connection type: ${protocol}`);
34
+ }
35
+ }
36
+ };
37
+
38
+ //#endregion
39
+ //#region src/Publisher.ts
40
+ var Publisher = class {
41
+ /**
42
+ * Create a publisher from a connection string
43
+ * This creates both a connection and a publisher
44
+ */
45
+ static async fromConnectionString(connectionStr) {
46
+ const url = new URL(connectionStr);
47
+ switch (url.protocol.replace(":", "")) {
48
+ case EventPublisherType.Basic: {
49
+ const { BasicConnection, BasicPublisher } = await import("./basic/index.mjs");
50
+ const connection = await BasicConnection.fromConnectionString(connectionStr);
51
+ return new BasicPublisher(connection);
52
+ }
53
+ case EventPublisherType.RabbitMQ: {
54
+ const { RabbitMQPublisher } = await import("./rabbitmq/index.mjs");
55
+ return RabbitMQPublisher.fromConnectionString(connectionStr);
56
+ }
57
+ case EventPublisherType.SQS: {
58
+ const { SQSPublisher } = await import("./sqs/index.mjs");
59
+ return SQSPublisher.fromConnectionString(connectionStr);
60
+ }
61
+ case EventPublisherType.SNS: {
62
+ const { SNSPublisher } = await import("./sns/index.mjs");
63
+ return SNSPublisher.fromConnectionString(connectionStr);
64
+ }
65
+ case EventPublisherType.PgBoss: {
66
+ const { PgBossPublisher } = await import("./pgboss/index.mjs");
67
+ return PgBossPublisher.fromConnectionString(connectionStr);
68
+ }
69
+ default: throw new Error(`Unsupported event publisher type: ${url.protocol}`);
70
+ }
71
+ }
72
+ /**
73
+ * Create a publisher from an existing connection
74
+ * This allows sharing connections between publishers and subscribers
75
+ */
76
+ static async fromConnection(connection) {
77
+ switch (connection.type) {
78
+ case EventPublisherType.Basic: {
79
+ const { BasicPublisher } = await import("./basic/index.mjs");
80
+ const { BasicConnection } = await import("./basic/index.mjs");
81
+ return new BasicPublisher(connection);
82
+ }
83
+ case EventPublisherType.RabbitMQ: {
84
+ const { RabbitMQPublisher } = await import("./rabbitmq/index.mjs");
85
+ const { RabbitMQConnection } = await import("./rabbitmq/index.mjs");
86
+ return new RabbitMQPublisher(connection);
87
+ }
88
+ case EventPublisherType.SQS: {
89
+ const { SQSPublisher } = await import("./sqs/index.mjs");
90
+ const { SQSConnection } = await import("./sqs/index.mjs");
91
+ return new SQSPublisher(connection);
92
+ }
93
+ case EventPublisherType.SNS: {
94
+ const { SNSPublisher } = await import("./sns/index.mjs");
95
+ const { SNSConnection } = await import("./sns/index.mjs");
96
+ return new SNSPublisher(connection);
97
+ }
98
+ case EventPublisherType.PgBoss: {
99
+ const { PgBossPublisher } = await import("./pgboss/index.mjs");
100
+ const { PgBossConnection } = await import("./pgboss/index.mjs");
101
+ return new PgBossPublisher(connection);
102
+ }
103
+ default: throw new Error(`Unsupported connection type: ${connection.type}`);
104
+ }
105
+ }
106
+ };
107
+
108
+ //#endregion
109
+ //#region src/Subscriber.ts
110
+ var Subscriber = class {
111
+ /**
112
+ * Create a subscriber from a connection string
113
+ * This creates both a connection and a subscriber
114
+ */
115
+ static async fromConnectionString(connectionStr) {
116
+ const url = new URL(connectionStr);
117
+ switch (url.protocol.replace(":", "")) {
118
+ case EventPublisherType.Basic: {
119
+ const { BasicConnection, BasicSubscriber } = await import("./basic/index.mjs");
120
+ const connection = await BasicConnection.fromConnectionString(connectionStr);
121
+ return new BasicSubscriber(connection);
122
+ }
123
+ case EventPublisherType.RabbitMQ: {
124
+ const { RabbitMQSubscriber } = await import("./rabbitmq/index.mjs");
125
+ return RabbitMQSubscriber.fromConnectionString(connectionStr);
126
+ }
127
+ case EventPublisherType.SNS: {
128
+ const { SNSSubscriber } = await import("./sns/index.mjs");
129
+ return SNSSubscriber.fromConnectionString(connectionStr);
130
+ }
131
+ case EventPublisherType.SQS: {
132
+ const url$1 = new URL(connectionStr);
133
+ const topicArn = url$1.searchParams.get("topicArn");
134
+ if (topicArn) {
135
+ const { SNSSubscriber } = await import("./sns/index.mjs");
136
+ const snsConnectionStr = connectionStr.replace("sqs://", "sns://");
137
+ return SNSSubscriber.fromConnectionString(snsConnectionStr);
138
+ }
139
+ const { SQSSubscriber } = await import("./sqs/index.mjs");
140
+ const { SQSConnection } = await import("./sqs/index.mjs");
141
+ const connection = await SQSConnection.fromConnectionString(connectionStr);
142
+ return new SQSSubscriber(connection);
143
+ }
144
+ case EventPublisherType.PgBoss: {
145
+ const { PgBossSubscriber } = await import("./pgboss/index.mjs");
146
+ return PgBossSubscriber.fromConnectionString(connectionStr);
147
+ }
148
+ default: throw new Error(`Unsupported event subscriber type: ${url.protocol}`);
149
+ }
150
+ }
151
+ /**
152
+ * Create a subscriber from an existing connection
153
+ * This allows sharing connections between publishers and subscribers
154
+ */
155
+ static async fromConnection(connection) {
156
+ switch (connection.type) {
157
+ case EventPublisherType.Basic: {
158
+ const { BasicSubscriber } = await import("./basic/index.mjs");
159
+ const { BasicConnection } = await import("./basic/index.mjs");
160
+ return new BasicSubscriber(connection);
161
+ }
162
+ case EventPublisherType.RabbitMQ: {
163
+ const { RabbitMQSubscriber } = await import("./rabbitmq/index.mjs");
164
+ const { RabbitMQConnection } = await import("./rabbitmq/index.mjs");
165
+ return new RabbitMQSubscriber(connection);
166
+ }
167
+ case EventPublisherType.SNS: {
168
+ const { SNSSubscriber } = await import("./sns/index.mjs");
169
+ const { SNSConnection } = await import("./sns/index.mjs");
170
+ return new SNSSubscriber(connection);
171
+ }
172
+ case EventPublisherType.SQS: {
173
+ const { SQSSubscriber } = await import("./sqs/index.mjs");
174
+ const { SQSConnection } = await import("./sqs/index.mjs");
175
+ return new SQSSubscriber(connection);
176
+ }
177
+ case EventPublisherType.PgBoss: {
178
+ const { PgBossSubscriber } = await import("./pgboss/index.mjs");
179
+ const { PgBossConnection } = await import("./pgboss/index.mjs");
180
+ return new PgBossSubscriber(connection);
181
+ }
182
+ default: throw new Error(`Unsupported connection type: ${connection.type}`);
183
+ }
184
+ }
185
+ };
186
+
187
+ //#endregion
188
+ export { EventConnectionFactory, EventPublisherType, Publisher, Subscriber };
189
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["connectionStr: string","connectionStr: EventPublisherConnectionString","connection: EventConnection","connectionStr: EventSubscriberConnectionString","url","connection: EventConnection"],"sources":["../src/EventConnection.ts","../src/Publisher.ts","../src/Subscriber.ts"],"sourcesContent":["import type { EventConnection } from './types';\nimport { EventPublisherType } from './types';\n\nexport class EventConnectionFactory {\n\t/**\n\t * Create an EventConnection from a connection string\n\t * Dynamically imports the appropriate connection implementation\n\t */\n\tstatic async fromConnectionString(\n\t\tconnectionStr: string,\n\t): Promise<EventConnection> {\n\t\tconst url = new URL(connectionStr);\n\t\tconst protocol = url.protocol.replace(':', '') as EventPublisherType;\n\n\t\tswitch (protocol) {\n\t\t\tcase EventPublisherType.Basic: {\n\t\t\t\tconst { BasicConnection } = await import('./basic');\n\t\t\t\treturn BasicConnection.fromConnectionString(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.RabbitMQ: {\n\t\t\t\tconst { RabbitMQConnection } = await import('./rabbitmq');\n\t\t\t\treturn RabbitMQConnection.fromConnectionString(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SQS: {\n\t\t\t\tconst { SQSConnection } = await import('./sqs');\n\t\t\t\treturn SQSConnection.fromConnectionString(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SNS: {\n\t\t\t\tconst { SNSConnection } = await import('./sns');\n\t\t\t\treturn SNSConnection.fromConnectionString(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.PgBoss: {\n\t\t\t\tconst { PgBossConnection } = await import('./pgboss');\n\t\t\t\treturn PgBossConnection.fromConnectionString(connectionStr);\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unsupported connection type: ${protocol}`);\n\t\t}\n\t}\n}\n\nexport type { EventConnection } from './types';\nexport { EventPublisherType } from './types';\n","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","import type {\n\tEventConnection,\n\tEventSubscriber,\n\tPublishableMessage,\n} from './types';\nimport { EventPublisherType } from './types';\n\nexport class Subscriber {\n\t/**\n\t * Create a subscriber from a connection string\n\t * This creates both a connection and a subscriber\n\t */\n\tstatic async fromConnectionString<\n\t\tTMessage extends PublishableMessage<string, any>,\n\t>(\n\t\tconnectionStr: EventSubscriberConnectionString,\n\t): Promise<EventSubscriber<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, BasicSubscriber } = await import('./basic');\n\t\t\t\tconst connection =\n\t\t\t\t\tawait BasicConnection.fromConnectionString(connectionStr);\n\t\t\t\treturn new BasicSubscriber<TMessage>(connection);\n\t\t\t}\n\t\t\tcase EventPublisherType.RabbitMQ: {\n\t\t\t\tconst { RabbitMQSubscriber } = await import('./rabbitmq');\n\t\t\t\treturn RabbitMQSubscriber.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SNS: {\n\t\t\t\tconst { SNSSubscriber } = await import('./sns');\n\t\t\t\treturn SNSSubscriber.fromConnectionString<TMessage>(connectionStr);\n\t\t\t}\n\t\t\tcase EventPublisherType.SQS: {\n\t\t\t\tconst url = new URL(connectionStr);\n\t\t\t\tconst topicArn = url.searchParams.get('topicArn');\n\n\t\t\t\t// If topicArn is present, use managed SNS→SQS subscription\n\t\t\t\tif (topicArn) {\n\t\t\t\t\tconst { SNSSubscriber } = await import('./sns');\n\t\t\t\t\t// Convert SQS connection string to SNS connection string\n\t\t\t\t\tconst snsConnectionStr = connectionStr.replace('sqs://', 'sns://');\n\t\t\t\t\treturn SNSSubscriber.fromConnectionString<TMessage>(snsConnectionStr);\n\t\t\t\t}\n\n\t\t\t\t// Direct SQS subscriber\n\t\t\t\tconst { SQSSubscriber } = await import('./sqs');\n\t\t\t\tconst { SQSConnection } = await import('./sqs');\n\t\t\t\tconst connection =\n\t\t\t\t\tawait SQSConnection.fromConnectionString(connectionStr);\n\t\t\t\treturn new SQSSubscriber<TMessage>(connection);\n\t\t\t}\n\t\t\tcase EventPublisherType.PgBoss: {\n\t\t\t\tconst { PgBossSubscriber } = await import('./pgboss');\n\t\t\t\treturn PgBossSubscriber.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 subscriber type: ${url.protocol}`);\n\t\t}\n\t}\n\n\t/**\n\t * Create a subscriber 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<EventSubscriber<TMessage>> {\n\t\tswitch (connection.type) {\n\t\t\tcase EventPublisherType.Basic: {\n\t\t\t\tconst { BasicSubscriber } = await import('./basic');\n\t\t\t\tconst { BasicConnection } = await import('./basic');\n\t\t\t\treturn new BasicSubscriber<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 { RabbitMQSubscriber } = await import('./rabbitmq');\n\t\t\t\tconst { RabbitMQConnection } = await import('./rabbitmq');\n\t\t\t\treturn new RabbitMQSubscriber<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.SNS: {\n\t\t\t\tconst { SNSSubscriber } = await import('./sns');\n\t\t\t\tconst { SNSConnection } = await import('./sns');\n\t\t\t\treturn new SNSSubscriber<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.SQS: {\n\t\t\t\tconst { SQSSubscriber } = await import('./sqs');\n\t\t\t\tconst { SQSConnection } = await import('./sqs');\n\t\t\t\treturn new SQSSubscriber<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.PgBoss: {\n\t\t\t\tconst { PgBossSubscriber } = await import('./pgboss');\n\t\t\t\tconst { PgBossConnection } = await import('./pgboss');\n\t\t\t\treturn new PgBossSubscriber<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 EventSubscriberConnectionString =\n\t`${EventPublisherType}://${string}`;\n"],"mappings":"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"}
@@ -1,8 +1,84 @@
1
1
  require('../types-Byv8N9ma.cjs');
2
- const require_PgBossConnection = require('../PgBossConnection-B71ssr72.cjs');
3
- const require_PgBossPublisher = require('../PgBossPublisher-FTdYh58W.cjs');
4
- const require_PgBossSubscriber = require('../PgBossSubscriber-BubVfuWm.cjs');
2
+ const require_PgBossConnection = require('../PgBossConnection-23soZ_aM.cjs');
5
3
 
4
+ //#region src/pgboss/PgBossPublisher.ts
5
+ var PgBossPublisher = class PgBossPublisher {
6
+ constructor(connection) {
7
+ this.connection = connection;
8
+ }
9
+ /**
10
+ * Create a PgBossPublisher from a connection string.
11
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss
12
+ */
13
+ static async fromConnectionString(connectionString) {
14
+ const { PgBossConnection: PgBossConnection$1 } = await Promise.resolve().then(() => require("../PgBossConnection-CCXhoNzb.cjs"));
15
+ const connection = await PgBossConnection$1.fromConnectionString(connectionString);
16
+ return new PgBossPublisher(connection);
17
+ }
18
+ async publish(messages) {
19
+ if (!this.connection.isConnected()) await this.connection.connect();
20
+ const boss = this.connection.instance;
21
+ if (!boss) throw new Error("PgBoss instance not initialized");
22
+ const groups = /* @__PURE__ */ new Map();
23
+ for (const m of messages) {
24
+ const list = groups.get(m.type) ?? [];
25
+ list.push({ data: m.payload });
26
+ groups.set(m.type, list);
27
+ }
28
+ for (const [name, jobs] of groups) {
29
+ await boss.createQueue(name);
30
+ await boss.insert(name, jobs);
31
+ }
32
+ }
33
+ async close() {}
34
+ };
35
+
36
+ //#endregion
37
+ //#region src/pgboss/PgBossSubscriber.ts
38
+ var PgBossSubscriber = class PgBossSubscriber {
39
+ constructor(connection, options = {}) {
40
+ this.connection = connection;
41
+ this.options = options;
42
+ }
43
+ /**
44
+ * Create a PgBossSubscriber from a connection string.
45
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss&batchSize=5
46
+ */
47
+ static async fromConnectionString(connectionString) {
48
+ const url = new URL(connectionString);
49
+ const params = url.searchParams;
50
+ const { PgBossConnection: PgBossConnection$1 } = await Promise.resolve().then(() => require("../PgBossConnection-CCXhoNzb.cjs"));
51
+ const connection = await PgBossConnection$1.fromConnectionString(connectionString);
52
+ const options = {
53
+ batchSize: params.get("batchSize") ? Number.parseInt(params.get("batchSize"), 10) : void 0,
54
+ pollingIntervalSeconds: params.get("pollingIntervalSeconds") ? Number.parseInt(params.get("pollingIntervalSeconds"), 10) : void 0
55
+ };
56
+ return new PgBossSubscriber(connection, options);
57
+ }
58
+ async subscribe(messages, listener) {
59
+ if (!this.connection.isConnected()) await this.connection.connect();
60
+ const boss = this.connection.instance;
61
+ if (!boss) throw new Error("PgBoss instance not initialized");
62
+ for (const messageType of messages) {
63
+ await boss.createQueue(messageType);
64
+ await boss.work(messageType, {
65
+ ...this.options.batchSize && { batchSize: this.options.batchSize },
66
+ ...this.options.pollingIntervalSeconds && { pollingIntervalSeconds: this.options.pollingIntervalSeconds }
67
+ }, async (jobs) => {
68
+ for (const job of jobs) {
69
+ const fullMessage = {
70
+ type: job.name,
71
+ payload: job.data
72
+ };
73
+ await listener(fullMessage);
74
+ }
75
+ });
76
+ }
77
+ }
78
+ };
79
+
80
+ //#endregion
6
81
  exports.PgBossConnection = require_PgBossConnection.PgBossConnection;
7
- exports.PgBossPublisher = require_PgBossPublisher.PgBossPublisher;
8
- exports.PgBossSubscriber = require_PgBossSubscriber.PgBossSubscriber;
82
+ exports.PgBossPublisher = PgBossPublisher;
83
+ exports.PgBossSubscriber = PgBossSubscriber;
84
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["connection: PgBossConnection","connectionString: string","messages: TMessage[]","connection: PgBossConnection","options: PgBossSubscriberOptions","connectionString: string","messages: TMessage['type'][]","listener: (payload: TMessage) => Promise<void>"],"sources":["../../src/pgboss/PgBossPublisher.ts","../../src/pgboss/PgBossSubscriber.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// Group jobs by queue name (v11+ requires per-queue insert calls)\n\t\tconst groups = new Map<string, { data: TMessage['payload'] }[]>();\n\t\tfor (const m of messages) {\n\t\t\tconst list = groups.get(m.type) ?? [];\n\t\t\tlist.push({ data: m.payload });\n\t\t\tgroups.set(m.type, list);\n\t\t}\n\n\t\tfor (const [name, jobs] of groups) {\n\t\t\tawait boss.createQueue(name);\n\t\t\tawait boss.insert(name, jobs);\n\t\t}\n\t}\n\n\tasync close(): Promise<void> {\n\t\t// Publisher doesn't own the connection\n\t}\n}\n","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":";;;;AAGA,IAAa,kBAAb,MAAa,gBAEb;CACC,YAAoBA,YAA8B;EAA9B;CAAgC;;;;;CAMpD,aAAa,qBAEXC,kBAA8D;EAC/D,MAAM,EAAE,sCAAkB,GAAG,2CAAM;EACnC,MAAM,aACL,MAAM,mBAAiB,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,yBAAS,IAAI;AACnB,OAAK,MAAM,KAAK,UAAU;GACzB,MAAM,OAAO,OAAO,IAAI,EAAE,KAAK,IAAI,CAAE;AACrC,QAAK,KAAK,EAAE,MAAM,EAAE,QAAS,EAAC;AAC9B,UAAO,IAAI,EAAE,MAAM,KAAK;EACxB;AAED,OAAK,MAAM,CAAC,MAAM,KAAK,IAAI,QAAQ;AAClC,SAAM,KAAK,YAAY,KAAK;AAC5B,SAAM,KAAK,OAAO,MAAM,KAAK;EAC7B;CACD;CAED,MAAM,QAAuB,CAE5B;AACD;;;;ACxCD,IAAa,mBAAb,MAAa,iBAEb;CACC,YACSC,YACAC,UAAmC,CAAE,GAC5C;EAFO;EACA;CACL;;;;;CAMJ,aAAa,qBAEXC,kBAA+D;EAChE,MAAM,MAAM,IAAI,IAAI;EACpB,MAAM,SAAS,IAAI;EAEnB,MAAM,EAAE,sCAAkB,GAAG,2CAAM;EACnC,MAAM,aACL,MAAM,mBAAiB,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,5 +1,65 @@
1
- import "../types-Dj23od3e.cjs";
2
- import { PgBossConnection, PgBossConnectionConfig } from "../PgBossConnection-oto_CAbP.cjs";
3
- import { PgBossPublisher } from "../PgBossPublisher-JIiB1zpA.cjs";
4
- import { PgBossSubscriber, PgBossSubscriberOptions } from "../PgBossSubscriber-Cozijfdj.cjs";
5
- export { PgBossConnection, PgBossConnectionConfig, PgBossPublisher, PgBossSubscriber, PgBossSubscriberOptions };
1
+ import { EventConnection, EventPublisher, EventPublisherType, EventSubscriber, PublishableMessage } from "../types-BmixGrOD.cjs";
2
+ import { PgBoss } from "pg-boss";
3
+
4
+ //#region src/pgboss/PgBossConnection.d.ts
5
+ interface PgBossConnectionConfig {
6
+ connectionString: string;
7
+ schema?: string;
8
+ }
9
+ declare class PgBossConnection implements EventConnection {
10
+ private config;
11
+ readonly type = EventPublisherType.PgBoss;
12
+ private boss?;
13
+ private connecting?;
14
+ constructor(config: PgBossConnectionConfig);
15
+ /**
16
+ * Create a PgBossConnection from a connection string.
17
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss
18
+ */
19
+ static fromConnectionString(connectionString: string): Promise<PgBossConnection>;
20
+ connect(): Promise<void>;
21
+ close(): Promise<void>;
22
+ isConnected(): boolean;
23
+ private cleanup;
24
+ /**
25
+ * Get the underlying pg-boss instance for publishing/subscribing
26
+ */
27
+ get instance(): PgBoss | undefined;
28
+ }
29
+ //# sourceMappingURL=PgBossConnection.d.ts.map
30
+ //#endregion
31
+ //#region src/pgboss/PgBossPublisher.d.ts
32
+ declare class PgBossPublisher<TMessage extends PublishableMessage<string, any>> implements EventPublisher<TMessage> {
33
+ private connection;
34
+ constructor(connection: PgBossConnection);
35
+ /**
36
+ * Create a PgBossPublisher from a connection string.
37
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss
38
+ */
39
+ static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionString: string): Promise<PgBossPublisher<TMessage>>;
40
+ publish(messages: TMessage[]): Promise<void>;
41
+ close(): Promise<void>;
42
+ }
43
+ //# sourceMappingURL=PgBossPublisher.d.ts.map
44
+ //#endregion
45
+ //#region src/pgboss/PgBossSubscriber.d.ts
46
+ interface PgBossSubscriberOptions {
47
+ batchSize?: number;
48
+ pollingIntervalSeconds?: number;
49
+ }
50
+ declare class PgBossSubscriber<TMessage extends PublishableMessage<string, any>> implements EventSubscriber<TMessage> {
51
+ private connection;
52
+ private options;
53
+ constructor(connection: PgBossConnection, options?: PgBossSubscriberOptions);
54
+ /**
55
+ * Create a PgBossSubscriber from a connection string.
56
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss&batchSize=5
57
+ */
58
+ static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionString: string): Promise<PgBossSubscriber<TMessage>>;
59
+ subscribe(messages: TMessage['type'][], listener: (payload: TMessage) => Promise<void>): Promise<void>;
60
+ }
61
+ //# sourceMappingURL=PgBossSubscriber.d.ts.map
62
+
63
+ //#endregion
64
+ export { PgBossConnection, PgBossConnectionConfig, PgBossPublisher, PgBossSubscriber, PgBossSubscriberOptions };
65
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/pgboss/PgBossConnection.ts","../../src/pgboss/PgBossPublisher.ts","../../src/pgboss/PgBossSubscriber.ts"],"sourcesContent":[],"mappings":";;;;UAIiB,sBAAA;EAAA,gBAAA,EAAA,MAAA;EAKJ,MAAA,CAAA,EAAA,MAAA;;AACC,cADD,gBAAA,YAA4B,eAC3B,CAAA;EAAA,QAIe,MAAA;EAAsB,SAQvC,IAAA,GAZE,kBAAA,CAAA,MAAA;EAYc,QAAxB,IAAA;EAAO,QAgBO,UAAA;EAAO,WA2BT,CAAA,MAAA,EAnDa,sBAmDb;EAAO;;AAxDiC;;yDAapD,QAAQ;aAgBM;ECnCL,KAAA,CAAA,CAAA,ED8DG,OC9DH,CAAA,IAAe,CAAA;EAAA,WAAA,CAAA,CAAA,EAAA,OAAA;EAAA,QAAkB,OAAA;EAAkB;;;EAU3B,IACiB,QAAA,CAAA,CAAA,EDyErC,MCzEqC,GAAA,SAAA;;;;;cAXzC,iCAAiC,4CAClC,eAAe;;EDAV,WAAA,CAAA,UAAA,ECEgB,gBDFM;EAK1B;;;;EAKsC,OAQvC,oBAAA,CAAA,iBCTO,kBDSP,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,ECRkB,ODQlB,CCR0B,eDQ1B,CCR0C,QDQ1C,CAAA,CAAA;EAAgB,OAAxB,CAAA,QAAA,ECDqB,QDCrB,EAAA,CAAA,ECDkC,ODClC,CAAA,IAAA,CAAA;EAAO,KAgBO,CAAA,CAAA,ECOF,ODPE,CAAA,IAAA,CAAA;;;;;UEnCD,uBAAA;;EFCA,sBAAA,CAAA,EAAsB,MAAA;AAKvC;AAA8B,cEDjB,gBFCiB,CAAA,iBEDiB,kBFCjB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,YEAlB,eFAkB,CEAF,QFAE,CAAA,CAAA;EAAA,QAChB,UAAA;EAAA,QAIe,OAAA;EAAsB,WAQvC,CAAA,UAAA,EEVU,gBFUV,EAAA,OAAA,CAAA,EETO,uBFSP;EAAgB;;;;EAiEL,OA9EkB,oBAAA,CAAA,iBEYtB,kBFZsB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,EEaX,OFbW,CEaH,gBFbG,CEac,QFbd,CAAA,CAAA;EAAe,SAAA,CAAA,QAAA,EEkC5C,QFlC4C,CAAA,MAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,OAAA,EEmClC,QFnCkC,EAAA,GEmCrB,OFnCqB,CAAA,IAAA,CAAA,CAAA,EEoCpD,OFpCoD,CAAA,IAAA,CAAA"}
@@ -1,5 +1,65 @@
1
- import "../types-Dh9Jyinx.mjs";
2
- import { PgBossConnection, PgBossConnectionConfig } from "../PgBossConnection-DCfLGoHx.mjs";
3
- import { PgBossPublisher } from "../PgBossPublisher-CqjigBVC.mjs";
4
- import { PgBossSubscriber, PgBossSubscriberOptions } from "../PgBossSubscriber-BUiB1JKf.mjs";
5
- export { PgBossConnection, PgBossConnectionConfig, PgBossPublisher, PgBossSubscriber, PgBossSubscriberOptions };
1
+ import { EventConnection, EventPublisher, EventPublisherType, EventSubscriber, PublishableMessage } from "../types-DycjsYms.mjs";
2
+ import { PgBoss } from "pg-boss";
3
+
4
+ //#region src/pgboss/PgBossConnection.d.ts
5
+ interface PgBossConnectionConfig {
6
+ connectionString: string;
7
+ schema?: string;
8
+ }
9
+ declare class PgBossConnection implements EventConnection {
10
+ private config;
11
+ readonly type = EventPublisherType.PgBoss;
12
+ private boss?;
13
+ private connecting?;
14
+ constructor(config: PgBossConnectionConfig);
15
+ /**
16
+ * Create a PgBossConnection from a connection string.
17
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss
18
+ */
19
+ static fromConnectionString(connectionString: string): Promise<PgBossConnection>;
20
+ connect(): Promise<void>;
21
+ close(): Promise<void>;
22
+ isConnected(): boolean;
23
+ private cleanup;
24
+ /**
25
+ * Get the underlying pg-boss instance for publishing/subscribing
26
+ */
27
+ get instance(): PgBoss | undefined;
28
+ }
29
+ //# sourceMappingURL=PgBossConnection.d.ts.map
30
+ //#endregion
31
+ //#region src/pgboss/PgBossPublisher.d.ts
32
+ declare class PgBossPublisher<TMessage extends PublishableMessage<string, any>> implements EventPublisher<TMessage> {
33
+ private connection;
34
+ constructor(connection: PgBossConnection);
35
+ /**
36
+ * Create a PgBossPublisher from a connection string.
37
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss
38
+ */
39
+ static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionString: string): Promise<PgBossPublisher<TMessage>>;
40
+ publish(messages: TMessage[]): Promise<void>;
41
+ close(): Promise<void>;
42
+ }
43
+ //# sourceMappingURL=PgBossPublisher.d.ts.map
44
+ //#endregion
45
+ //#region src/pgboss/PgBossSubscriber.d.ts
46
+ interface PgBossSubscriberOptions {
47
+ batchSize?: number;
48
+ pollingIntervalSeconds?: number;
49
+ }
50
+ declare class PgBossSubscriber<TMessage extends PublishableMessage<string, any>> implements EventSubscriber<TMessage> {
51
+ private connection;
52
+ private options;
53
+ constructor(connection: PgBossConnection, options?: PgBossSubscriberOptions);
54
+ /**
55
+ * Create a PgBossSubscriber from a connection string.
56
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss&batchSize=5
57
+ */
58
+ static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionString: string): Promise<PgBossSubscriber<TMessage>>;
59
+ subscribe(messages: TMessage['type'][], listener: (payload: TMessage) => Promise<void>): Promise<void>;
60
+ }
61
+ //# sourceMappingURL=PgBossSubscriber.d.ts.map
62
+
63
+ //#endregion
64
+ export { PgBossConnection, PgBossConnectionConfig, PgBossPublisher, PgBossSubscriber, PgBossSubscriberOptions };
65
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/pgboss/PgBossConnection.ts","../../src/pgboss/PgBossPublisher.ts","../../src/pgboss/PgBossSubscriber.ts"],"sourcesContent":[],"mappings":";;;;UAIiB,sBAAA;EAAA,gBAAA,EAAA,MAAA;EAKJ,MAAA,CAAA,EAAA,MAAA;;AACC,cADD,gBAAA,YAA4B,eAC3B,CAAA;EAAA,QAIe,MAAA;EAAsB,SAQvC,IAAA,GAZE,kBAAA,CAAA,MAAA;EAYc,QAAxB,IAAA;EAAO,QAgBO,UAAA;EAAO,WA2BT,CAAA,MAAA,EAnDa,sBAmDb;EAAO;;AAxDiC;;yDAapD,QAAQ;aAgBM;ECnCL,KAAA,CAAA,CAAA,ED8DG,OC9DH,CAAA,IAAe,CAAA;EAAA,WAAA,CAAA,CAAA,EAAA,OAAA;EAAA,QAAkB,OAAA;EAAkB;;;EAU3B,IACiB,QAAA,CAAA,CAAA,EDyErC,MCzEqC,GAAA,SAAA;;;;;cAXzC,iCAAiC,4CAClC,eAAe;;EDAV,WAAA,CAAA,UAAA,ECEgB,gBDFM;EAK1B;;;;EAKsC,OAQvC,oBAAA,CAAA,iBCTO,kBDSP,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,ECRkB,ODQlB,CCR0B,eDQ1B,CCR0C,QDQ1C,CAAA,CAAA;EAAgB,OAAxB,CAAA,QAAA,ECDqB,QDCrB,EAAA,CAAA,ECDkC,ODClC,CAAA,IAAA,CAAA;EAAO,KAgBO,CAAA,CAAA,ECOF,ODPE,CAAA,IAAA,CAAA;;;;;UEnCD,uBAAA;;EFCA,sBAAA,CAAA,EAAsB,MAAA;AAKvC;AAA8B,cEDjB,gBFCiB,CAAA,iBEDiB,kBFCjB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,YEAlB,eFAkB,CEAF,QFAE,CAAA,CAAA;EAAA,QAChB,UAAA;EAAA,QAIe,OAAA;EAAsB,WAQvC,CAAA,UAAA,EEVU,gBFUV,EAAA,OAAA,CAAA,EETO,uBFSP;EAAgB;;;;EAiEL,OA9EkB,oBAAA,CAAA,iBEYtB,kBFZsB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,EEaX,OFbW,CEaH,gBFbG,CEac,QFbd,CAAA,CAAA;EAAe,SAAA,CAAA,QAAA,EEkC5C,QFlC4C,CAAA,MAAA,CAAA,EAAA,EAAA,QAAA,EAAA,CAAA,OAAA,EEmClC,QFnCkC,EAAA,GEmCrB,OFnCqB,CAAA,IAAA,CAAA,CAAA,EEoCpD,OFpCoD,CAAA,IAAA,CAAA"}
@@ -1,6 +1,82 @@
1
- import "../types-BrdcSEnd.mjs";
2
- import { PgBossConnection } from "../PgBossConnection-Bj_Wo1lQ.mjs";
3
- import { PgBossPublisher } from "../PgBossPublisher-Bwo7qSoH.mjs";
4
- import { PgBossSubscriber } from "../PgBossSubscriber-DopATe80.mjs";
1
+ import "../types-CYDt-2RQ.mjs";
2
+ import { PgBossConnection } from "../PgBossConnection-DvNbd4Zk.mjs";
5
3
 
6
- export { PgBossConnection, PgBossPublisher, PgBossSubscriber };
4
+ //#region src/pgboss/PgBossPublisher.ts
5
+ var PgBossPublisher = class PgBossPublisher {
6
+ constructor(connection) {
7
+ this.connection = connection;
8
+ }
9
+ /**
10
+ * Create a PgBossPublisher from a connection string.
11
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss
12
+ */
13
+ static async fromConnectionString(connectionString) {
14
+ const { PgBossConnection: PgBossConnection$1 } = await import("../PgBossConnection-_gdM40JB.mjs");
15
+ const connection = await PgBossConnection$1.fromConnectionString(connectionString);
16
+ return new PgBossPublisher(connection);
17
+ }
18
+ async publish(messages) {
19
+ if (!this.connection.isConnected()) await this.connection.connect();
20
+ const boss = this.connection.instance;
21
+ if (!boss) throw new Error("PgBoss instance not initialized");
22
+ const groups = /* @__PURE__ */ new Map();
23
+ for (const m of messages) {
24
+ const list = groups.get(m.type) ?? [];
25
+ list.push({ data: m.payload });
26
+ groups.set(m.type, list);
27
+ }
28
+ for (const [name, jobs] of groups) {
29
+ await boss.createQueue(name);
30
+ await boss.insert(name, jobs);
31
+ }
32
+ }
33
+ async close() {}
34
+ };
35
+
36
+ //#endregion
37
+ //#region src/pgboss/PgBossSubscriber.ts
38
+ var PgBossSubscriber = class PgBossSubscriber {
39
+ constructor(connection, options = {}) {
40
+ this.connection = connection;
41
+ this.options = options;
42
+ }
43
+ /**
44
+ * Create a PgBossSubscriber from a connection string.
45
+ * Format: pgboss://user:pass@host:5432/database?schema=pgboss&batchSize=5
46
+ */
47
+ static async fromConnectionString(connectionString) {
48
+ const url = new URL(connectionString);
49
+ const params = url.searchParams;
50
+ const { PgBossConnection: PgBossConnection$1 } = await import("../PgBossConnection-_gdM40JB.mjs");
51
+ const connection = await PgBossConnection$1.fromConnectionString(connectionString);
52
+ const options = {
53
+ batchSize: params.get("batchSize") ? Number.parseInt(params.get("batchSize"), 10) : void 0,
54
+ pollingIntervalSeconds: params.get("pollingIntervalSeconds") ? Number.parseInt(params.get("pollingIntervalSeconds"), 10) : void 0
55
+ };
56
+ return new PgBossSubscriber(connection, options);
57
+ }
58
+ async subscribe(messages, listener) {
59
+ if (!this.connection.isConnected()) await this.connection.connect();
60
+ const boss = this.connection.instance;
61
+ if (!boss) throw new Error("PgBoss instance not initialized");
62
+ for (const messageType of messages) {
63
+ await boss.createQueue(messageType);
64
+ await boss.work(messageType, {
65
+ ...this.options.batchSize && { batchSize: this.options.batchSize },
66
+ ...this.options.pollingIntervalSeconds && { pollingIntervalSeconds: this.options.pollingIntervalSeconds }
67
+ }, async (jobs) => {
68
+ for (const job of jobs) {
69
+ const fullMessage = {
70
+ type: job.name,
71
+ payload: job.data
72
+ };
73
+ await listener(fullMessage);
74
+ }
75
+ });
76
+ }
77
+ }
78
+ };
79
+
80
+ //#endregion
81
+ export { PgBossConnection, PgBossPublisher, PgBossSubscriber };
82
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["connection: PgBossConnection","connectionString: string","messages: TMessage[]","connection: PgBossConnection","options: PgBossSubscriberOptions","connectionString: string","messages: TMessage['type'][]","listener: (payload: TMessage) => Promise<void>"],"sources":["../../src/pgboss/PgBossPublisher.ts","../../src/pgboss/PgBossSubscriber.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// Group jobs by queue name (v11+ requires per-queue insert calls)\n\t\tconst groups = new Map<string, { data: TMessage['payload'] }[]>();\n\t\tfor (const m of messages) {\n\t\t\tconst list = groups.get(m.type) ?? [];\n\t\t\tlist.push({ data: m.payload });\n\t\t\tgroups.set(m.type, list);\n\t\t}\n\n\t\tfor (const [name, jobs] of groups) {\n\t\t\tawait boss.createQueue(name);\n\t\t\tawait boss.insert(name, jobs);\n\t\t}\n\t}\n\n\tasync close(): Promise<void> {\n\t\t// Publisher doesn't own the connection\n\t}\n}\n","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":";;;;AAGA,IAAa,kBAAb,MAAa,gBAEb;CACC,YAAoBA,YAA8B;EAA9B;CAAgC;;;;;CAMpD,aAAa,qBAEXC,kBAA8D;EAC/D,MAAM,EAAE,sCAAkB,GAAG,MAAM,OAAO;EAC1C,MAAM,aACL,MAAM,mBAAiB,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,yBAAS,IAAI;AACnB,OAAK,MAAM,KAAK,UAAU;GACzB,MAAM,OAAO,OAAO,IAAI,EAAE,KAAK,IAAI,CAAE;AACrC,QAAK,KAAK,EAAE,MAAM,EAAE,QAAS,EAAC;AAC9B,UAAO,IAAI,EAAE,MAAM,KAAK;EACxB;AAED,OAAK,MAAM,CAAC,MAAM,KAAK,IAAI,QAAQ;AAClC,SAAM,KAAK,YAAY,KAAK;AAC5B,SAAM,KAAK,OAAO,MAAM,KAAK;EAC7B;CACD;CAED,MAAM,QAAuB,CAE5B;AACD;;;;ACxCD,IAAa,mBAAb,MAAa,iBAEb;CACC,YACSC,YACAC,UAAmC,CAAE,GAC5C;EAFO;EACA;CACL;;;;;CAMJ,aAAa,qBAEXC,kBAA+D;EAChE,MAAM,MAAM,IAAI,IAAI;EACpB,MAAM,SAAS,IAAI;EAEnB,MAAM,EAAE,sCAAkB,GAAG,MAAM,OAAO;EAC1C,MAAM,aACL,MAAM,mBAAiB,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"}