@geekmidas/events 10.0.0-alpha.4 → 10.0.0-alpha.41

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 (136) hide show
  1. package/dist/PgBossConnection-CywKoAZU.cjs +2 -0
  2. package/dist/PgBossConnection-DjoqT84r.mjs +2 -0
  3. package/dist/RabbitMQConnection-C9eccBL8.cjs +2 -0
  4. package/dist/RabbitMQConnection-CAp7VqyT.mjs +2 -0
  5. package/dist/SNSConnection-BWDC1wAF.cjs +2 -0
  6. package/dist/SNSConnection-ezQvVrDv.mjs +2 -0
  7. package/dist/{SQSSubscriber-BMWZ3s5q.mjs → SQSSubscriber-BXLE_1L3.mjs} +73 -7
  8. package/dist/SQSSubscriber-BXLE_1L3.mjs.map +1 -0
  9. package/dist/{SQSSubscriber-YXPlg2rm.cjs → SQSSubscriber-DtRUaZB3.cjs} +91 -14
  10. package/dist/SQSSubscriber-DtRUaZB3.cjs.map +1 -0
  11. package/dist/basic/index.cjs +7 -8
  12. package/dist/basic/index.cjs.map +1 -1
  13. package/dist/basic/index.d.cts +4 -10
  14. package/dist/basic/index.d.cts.map +1 -1
  15. package/dist/basic/index.d.mts +4 -10
  16. package/dist/basic/index.d.mts.map +1 -1
  17. package/dist/basic/index.mjs +5 -6
  18. package/dist/basic/index.mjs.map +1 -1
  19. package/dist/index.cjs +43 -50
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +26 -11
  22. package/dist/index.d.cts.map +1 -1
  23. package/dist/index.d.mts +26 -11
  24. package/dist/index.d.mts.map +1 -1
  25. package/dist/index.mjs +42 -51
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/pgboss/index.cjs +145 -28
  28. package/dist/pgboss/index.cjs.map +1 -1
  29. package/dist/pgboss/index.d.cts +39 -12
  30. package/dist/pgboss/index.d.cts.map +1 -1
  31. package/dist/pgboss/index.d.mts +39 -12
  32. package/dist/pgboss/index.d.mts.map +1 -1
  33. package/dist/pgboss/index.mjs +140 -28
  34. package/dist/pgboss/index.mjs.map +1 -1
  35. package/dist/rabbitmq/index.cjs +135 -22
  36. package/dist/rabbitmq/index.cjs.map +1 -1
  37. package/dist/rabbitmq/index.d.cts +11 -10
  38. package/dist/rabbitmq/index.d.cts.map +1 -1
  39. package/dist/rabbitmq/index.d.mts +11 -10
  40. package/dist/rabbitmq/index.d.mts.map +1 -1
  41. package/dist/rabbitmq/index.mjs +130 -22
  42. package/dist/rabbitmq/index.mjs.map +1 -1
  43. package/dist/{chunk-CsX-DzYB.cjs → rolldown-runtime-C0BPl7ul.cjs} +17 -16
  44. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  45. package/dist/sns/index.cjs +371 -34
  46. package/dist/sns/index.cjs.map +1 -1
  47. package/dist/sns/index.d.cts +167 -11
  48. package/dist/sns/index.d.cts.map +1 -1
  49. package/dist/sns/index.d.mts +167 -11
  50. package/dist/sns/index.d.mts.map +1 -1
  51. package/dist/sns/index.mjs +340 -18
  52. package/dist/sns/index.mjs.map +1 -1
  53. package/dist/sns/snsUrl.cjs +91 -6
  54. package/dist/sns/snsUrl.cjs.map +1 -0
  55. package/dist/sns/snsUrl.d.cts +57 -2
  56. package/dist/sns/snsUrl.d.cts.map +1 -0
  57. package/dist/sns/snsUrl.d.mts +57 -2
  58. package/dist/sns/snsUrl.d.mts.map +1 -0
  59. package/dist/sns/snsUrl.mjs +81 -2
  60. package/dist/sns/snsUrl.mjs.map +1 -0
  61. package/dist/sqs/index.cjs +34 -24
  62. package/dist/sqs/index.cjs.map +1 -1
  63. package/dist/sqs/index.d.cts +19 -11
  64. package/dist/sqs/index.d.cts.map +1 -1
  65. package/dist/sqs/index.d.mts +19 -11
  66. package/dist/sqs/index.d.mts.map +1 -1
  67. package/dist/sqs/index.mjs +22 -15
  68. package/dist/sqs/index.mjs.map +1 -1
  69. package/dist/sqs/sqsUrl.cjs +92 -6
  70. package/dist/sqs/sqsUrl.cjs.map +1 -0
  71. package/dist/sqs/sqsUrl.d.cts +56 -2
  72. package/dist/sqs/sqsUrl.d.cts.map +1 -0
  73. package/dist/sqs/sqsUrl.d.mts +56 -2
  74. package/dist/sqs/sqsUrl.d.mts.map +1 -0
  75. package/dist/sqs/sqsUrl.mjs +82 -2
  76. package/dist/sqs/sqsUrl.mjs.map +1 -0
  77. package/dist/types-BcZjLxVV.cjs +51 -0
  78. package/dist/types-BcZjLxVV.cjs.map +1 -0
  79. package/dist/types-Bk5JM6MP.mjs +40 -0
  80. package/dist/types-Bk5JM6MP.mjs.map +1 -0
  81. package/dist/types-gGaoT8qc.d.cts +149 -0
  82. package/dist/types-gGaoT8qc.d.cts.map +1 -0
  83. package/dist/types-gGaoT8qc.d.mts +149 -0
  84. package/dist/types-gGaoT8qc.d.mts.map +1 -0
  85. package/package.json +3 -3
  86. package/dist/PgBossConnection-C3qYNfm5.cjs +0 -80
  87. package/dist/PgBossConnection-C3qYNfm5.cjs.map +0 -1
  88. package/dist/PgBossConnection-Cvgv2l1G.mjs +0 -74
  89. package/dist/PgBossConnection-Cvgv2l1G.mjs.map +0 -1
  90. package/dist/PgBossConnection-DCUxQLZz.cjs +0 -4
  91. package/dist/PgBossConnection-DbO0ypJf.mjs +0 -4
  92. package/dist/RabbitMQConnection-8PbOD8hM.cjs +0 -4
  93. package/dist/RabbitMQConnection-Bpx3Lgij.mjs +0 -4
  94. package/dist/RabbitMQConnection-DGAk4aUb.cjs +0 -113
  95. package/dist/RabbitMQConnection-DGAk4aUb.cjs.map +0 -1
  96. package/dist/RabbitMQConnection-aE0dtb63.mjs +0 -107
  97. package/dist/RabbitMQConnection-aE0dtb63.mjs.map +0 -1
  98. package/dist/SNSConnection-B2K86hpz.cjs +0 -75
  99. package/dist/SNSConnection-B2K86hpz.cjs.map +0 -1
  100. package/dist/SNSConnection-BVo84FeW.mjs +0 -5
  101. package/dist/SNSConnection-DIHRjrQF.cjs +0 -5
  102. package/dist/SNSConnection-v9jjF99w.mjs +0 -69
  103. package/dist/SNSConnection-v9jjF99w.mjs.map +0 -1
  104. package/dist/SQSConnection-4tBMkVZE.mjs +0 -69
  105. package/dist/SQSConnection-4tBMkVZE.mjs.map +0 -1
  106. package/dist/SQSConnection-BBLAvF-1.cjs +0 -5
  107. package/dist/SQSConnection-BaC7rGhI.cjs +0 -75
  108. package/dist/SQSConnection-BaC7rGhI.cjs.map +0 -1
  109. package/dist/SQSConnection-DbavOq8_.mjs +0 -5
  110. package/dist/SQSSubscriber-BMWZ3s5q.mjs.map +0 -1
  111. package/dist/SQSSubscriber-YXPlg2rm.cjs.map +0 -1
  112. package/dist/chunk-B9dir_RE.mjs +0 -11
  113. package/dist/snsUrl-ASdc0D1v.d.cts +0 -61
  114. package/dist/snsUrl-ASdc0D1v.d.cts.map +0 -1
  115. package/dist/snsUrl-CifYhPAa.mjs +0 -79
  116. package/dist/snsUrl-CifYhPAa.mjs.map +0 -1
  117. package/dist/snsUrl-FRbRcwF0.d.mts +0 -61
  118. package/dist/snsUrl-FRbRcwF0.d.mts.map +0 -1
  119. package/dist/snsUrl-f2gU3CzK.cjs +0 -114
  120. package/dist/snsUrl-f2gU3CzK.cjs.map +0 -1
  121. package/dist/sqsUrl-BV6zS-mi.d.mts +0 -60
  122. package/dist/sqsUrl-BV6zS-mi.d.mts.map +0 -1
  123. package/dist/sqsUrl-CbAsBFHI.mjs +0 -80
  124. package/dist/sqsUrl-CbAsBFHI.mjs.map +0 -1
  125. package/dist/sqsUrl-CdisN3GU.cjs +0 -115
  126. package/dist/sqsUrl-CdisN3GU.cjs.map +0 -1
  127. package/dist/sqsUrl-DZDPHxIk.d.cts +0 -60
  128. package/dist/sqsUrl-DZDPHxIk.d.cts.map +0 -1
  129. package/dist/types-BmixGrOD.d.cts +0 -67
  130. package/dist/types-BmixGrOD.d.cts.map +0 -1
  131. package/dist/types-Byv8N9ma.cjs +0 -24
  132. package/dist/types-Byv8N9ma.cjs.map +0 -1
  133. package/dist/types-CYDt-2RQ.mjs +0 -18
  134. package/dist/types-CYDt-2RQ.mjs.map +0 -1
  135. package/dist/types-DycjsYms.d.mts +0 -67
  136. package/dist/types-DycjsYms.d.mts.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- const require_types = require('./types-Byv8N9ma.cjs');
2
-
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_types = require("./types-BcZjLxVV.cjs");
3
3
  //#region src/EventConnection.ts
4
4
  var EventConnectionFactory = class {
5
5
  /**
@@ -7,34 +7,32 @@ var EventConnectionFactory = class {
7
7
  * Dynamically imports the appropriate connection implementation
8
8
  */
9
9
  static async fromConnectionString(connectionStr) {
10
- const url = new URL(connectionStr);
11
- const protocol = url.protocol.replace(":", "");
10
+ const protocol = new URL(connectionStr).protocol.replace(":", "");
12
11
  switch (protocol) {
13
- case require_types.EventPublisherType.Basic: {
12
+ case "basic": {
14
13
  const { BasicConnection } = await Promise.resolve().then(() => require("./basic/index.cjs"));
15
14
  return BasicConnection.fromConnectionString(connectionStr);
16
15
  }
17
- case require_types.EventPublisherType.RabbitMQ: {
16
+ case "rabbitmq": {
18
17
  const { RabbitMQConnection } = await Promise.resolve().then(() => require("./rabbitmq/index.cjs"));
19
18
  return RabbitMQConnection.fromConnectionString(connectionStr);
20
19
  }
21
- case require_types.EventPublisherType.SQS: {
20
+ case "sqs": {
22
21
  const { SQSConnection } = await Promise.resolve().then(() => require("./sqs/index.cjs"));
23
22
  return SQSConnection.fromConnectionString(connectionStr);
24
23
  }
25
- case require_types.EventPublisherType.SNS: {
24
+ case "sns": {
26
25
  const { SNSConnection } = await Promise.resolve().then(() => require("./sns/index.cjs"));
27
26
  return SNSConnection.fromConnectionString(connectionStr);
28
27
  }
29
- case require_types.EventPublisherType.PgBoss: {
28
+ case "pgboss": {
30
29
  const { PgBossConnection } = await Promise.resolve().then(() => require("./pgboss/index.cjs"));
31
30
  return PgBossConnection.fromConnectionString(connectionStr);
32
31
  }
33
- default: throw new Error(`Unsupported connection type: ${protocol}`);
32
+ default: throw new require_types.UnsupportedEventTransport(protocol, "connection");
34
33
  }
35
34
  }
36
35
  };
37
-
38
36
  //#endregion
39
37
  //#region src/Publisher.ts
40
38
  var Publisher = class {
@@ -42,31 +40,30 @@ var Publisher = class {
42
40
  * Create a publisher from a connection string
43
41
  * This creates both a connection and a publisher
44
42
  */
45
- static async fromConnectionString(connectionStr) {
43
+ static async fromConnectionString(connectionStr, options = {}) {
46
44
  const url = new URL(connectionStr);
47
45
  switch (url.protocol.replace(":", "")) {
48
- case require_types.EventPublisherType.Basic: {
46
+ case "basic": {
49
47
  const { BasicConnection, BasicPublisher } = await Promise.resolve().then(() => require("./basic/index.cjs"));
50
- const connection = await BasicConnection.fromConnectionString(connectionStr);
51
- return new BasicPublisher(connection);
48
+ return new BasicPublisher(await BasicConnection.fromConnectionString(connectionStr));
52
49
  }
53
- case require_types.EventPublisherType.RabbitMQ: {
50
+ case "rabbitmq": {
54
51
  const { RabbitMQPublisher } = await Promise.resolve().then(() => require("./rabbitmq/index.cjs"));
55
52
  return RabbitMQPublisher.fromConnectionString(connectionStr);
56
53
  }
57
- case require_types.EventPublisherType.SQS: {
54
+ case "sqs": {
58
55
  const { SQSPublisher } = await Promise.resolve().then(() => require("./sqs/index.cjs"));
59
56
  return SQSPublisher.fromConnectionString(connectionStr);
60
57
  }
61
- case require_types.EventPublisherType.SNS: {
58
+ case "sns": {
62
59
  const { SNSPublisher } = await Promise.resolve().then(() => require("./sns/index.cjs"));
63
60
  return SNSPublisher.fromConnectionString(connectionStr);
64
61
  }
65
- case require_types.EventPublisherType.PgBoss: {
62
+ case "pgboss": {
66
63
  const { PgBossPublisher } = await Promise.resolve().then(() => require("./pgboss/index.cjs"));
67
- return PgBossPublisher.fromConnectionString(connectionStr);
64
+ return PgBossPublisher.fromConnectionString(connectionStr, options);
68
65
  }
69
- default: throw new Error(`Unsupported event publisher type: ${url.protocol}`);
66
+ default: throw new require_types.UnsupportedEventTransport(url.protocol.replace(":", ""), "publisher");
70
67
  }
71
68
  }
72
69
  /**
@@ -75,36 +72,35 @@ var Publisher = class {
75
72
  */
76
73
  static async fromConnection(connection) {
77
74
  switch (connection.type) {
78
- case require_types.EventPublisherType.Basic: {
75
+ case "basic": {
79
76
  const { BasicPublisher } = await Promise.resolve().then(() => require("./basic/index.cjs"));
80
77
  const { BasicConnection } = await Promise.resolve().then(() => require("./basic/index.cjs"));
81
78
  return new BasicPublisher(connection);
82
79
  }
83
- case require_types.EventPublisherType.RabbitMQ: {
80
+ case "rabbitmq": {
84
81
  const { RabbitMQPublisher } = await Promise.resolve().then(() => require("./rabbitmq/index.cjs"));
85
82
  const { RabbitMQConnection } = await Promise.resolve().then(() => require("./rabbitmq/index.cjs"));
86
83
  return new RabbitMQPublisher(connection);
87
84
  }
88
- case require_types.EventPublisherType.SQS: {
85
+ case "sqs": {
89
86
  const { SQSPublisher } = await Promise.resolve().then(() => require("./sqs/index.cjs"));
90
87
  const { SQSConnection } = await Promise.resolve().then(() => require("./sqs/index.cjs"));
91
88
  return new SQSPublisher(connection);
92
89
  }
93
- case require_types.EventPublisherType.SNS: {
90
+ case "sns": {
94
91
  const { SNSPublisher } = await Promise.resolve().then(() => require("./sns/index.cjs"));
95
92
  const { SNSConnection } = await Promise.resolve().then(() => require("./sns/index.cjs"));
96
93
  return new SNSPublisher(connection);
97
94
  }
98
- case require_types.EventPublisherType.PgBoss: {
95
+ case "pgboss": {
99
96
  const { PgBossPublisher } = await Promise.resolve().then(() => require("./pgboss/index.cjs"));
100
97
  const { PgBossConnection } = await Promise.resolve().then(() => require("./pgboss/index.cjs"));
101
98
  return new PgBossPublisher(connection);
102
99
  }
103
- default: throw new Error(`Unsupported connection type: ${connection.type}`);
100
+ default: throw new require_types.UnsupportedEventTransport(connection.type, "publisher");
104
101
  }
105
102
  }
106
103
  };
107
-
108
104
  //#endregion
109
105
  //#region src/Subscriber.ts
110
106
  var Subscriber = class {
@@ -115,78 +111,75 @@ var Subscriber = class {
115
111
  static async fromConnectionString(connectionStr) {
116
112
  const url = new URL(connectionStr);
117
113
  switch (url.protocol.replace(":", "")) {
118
- case require_types.EventPublisherType.Basic: {
114
+ case "basic": {
119
115
  const { BasicConnection, BasicSubscriber } = await Promise.resolve().then(() => require("./basic/index.cjs"));
120
- const connection = await BasicConnection.fromConnectionString(connectionStr);
121
- return new BasicSubscriber(connection);
116
+ return new BasicSubscriber(await BasicConnection.fromConnectionString(connectionStr));
122
117
  }
123
- case require_types.EventPublisherType.RabbitMQ: {
118
+ case "rabbitmq": {
124
119
  const { RabbitMQSubscriber } = await Promise.resolve().then(() => require("./rabbitmq/index.cjs"));
125
120
  return RabbitMQSubscriber.fromConnectionString(connectionStr);
126
121
  }
127
- case require_types.EventPublisherType.SNS: {
122
+ case "sns": {
128
123
  const { SNSSubscriber } = await Promise.resolve().then(() => require("./sns/index.cjs"));
129
124
  return SNSSubscriber.fromConnectionString(connectionStr);
130
125
  }
131
- case require_types.EventPublisherType.SQS: {
132
- const url$1 = new URL(connectionStr);
133
- const topicArn = url$1.searchParams.get("topicArn");
134
- if (topicArn) {
126
+ case "sqs": {
127
+ if (new URL(connectionStr).searchParams.get("topicArn")) {
135
128
  const { SNSSubscriber } = await Promise.resolve().then(() => require("./sns/index.cjs"));
136
129
  const snsConnectionStr = connectionStr.replace("sqs://", "sns://");
137
130
  return SNSSubscriber.fromConnectionString(snsConnectionStr);
138
131
  }
139
132
  const { SQSSubscriber } = await Promise.resolve().then(() => require("./sqs/index.cjs"));
140
133
  const { SQSConnection } = await Promise.resolve().then(() => require("./sqs/index.cjs"));
141
- const connection = await SQSConnection.fromConnectionString(connectionStr);
142
- return new SQSSubscriber(connection);
134
+ return new SQSSubscriber(await SQSConnection.fromConnectionString(connectionStr));
143
135
  }
144
- case require_types.EventPublisherType.PgBoss: {
136
+ case "pgboss": {
145
137
  const { PgBossSubscriber } = await Promise.resolve().then(() => require("./pgboss/index.cjs"));
146
138
  return PgBossSubscriber.fromConnectionString(connectionStr);
147
139
  }
148
- default: throw new Error(`Unsupported event subscriber type: ${url.protocol}`);
140
+ default: throw new require_types.UnsupportedEventTransport(url.protocol.replace(":", ""), "subscriber");
149
141
  }
150
142
  }
151
143
  /**
152
144
  * Create a subscriber from an existing connection
153
145
  * This allows sharing connections between publishers and subscribers
154
146
  */
155
- static async fromConnection(connection) {
147
+ static async fromConnection(connection, options = {}) {
156
148
  switch (connection.type) {
157
- case require_types.EventPublisherType.Basic: {
149
+ case "basic": {
158
150
  const { BasicSubscriber } = await Promise.resolve().then(() => require("./basic/index.cjs"));
159
151
  const { BasicConnection } = await Promise.resolve().then(() => require("./basic/index.cjs"));
160
152
  return new BasicSubscriber(connection);
161
153
  }
162
- case require_types.EventPublisherType.RabbitMQ: {
154
+ case "rabbitmq": {
163
155
  const { RabbitMQSubscriber } = await Promise.resolve().then(() => require("./rabbitmq/index.cjs"));
164
156
  const { RabbitMQConnection } = await Promise.resolve().then(() => require("./rabbitmq/index.cjs"));
165
157
  return new RabbitMQSubscriber(connection);
166
158
  }
167
- case require_types.EventPublisherType.SNS: {
159
+ case "sns": {
168
160
  const { SNSSubscriber } = await Promise.resolve().then(() => require("./sns/index.cjs"));
169
161
  const { SNSConnection } = await Promise.resolve().then(() => require("./sns/index.cjs"));
170
162
  return new SNSSubscriber(connection);
171
163
  }
172
- case require_types.EventPublisherType.SQS: {
164
+ case "sqs": {
173
165
  const { SQSSubscriber } = await Promise.resolve().then(() => require("./sqs/index.cjs"));
174
166
  const { SQSConnection } = await Promise.resolve().then(() => require("./sqs/index.cjs"));
175
167
  return new SQSSubscriber(connection);
176
168
  }
177
- case require_types.EventPublisherType.PgBoss: {
169
+ case "pgboss": {
178
170
  const { PgBossSubscriber } = await Promise.resolve().then(() => require("./pgboss/index.cjs"));
179
171
  const { PgBossConnection } = await Promise.resolve().then(() => require("./pgboss/index.cjs"));
180
- return new PgBossSubscriber(connection);
172
+ return new PgBossSubscriber(connection, options);
181
173
  }
182
- default: throw new Error(`Unsupported connection type: ${connection.type}`);
174
+ default: throw new require_types.UnsupportedEventTransport(connection.type, "subscriber");
183
175
  }
184
176
  }
185
177
  };
186
-
187
178
  //#endregion
188
179
  exports.EventConnectionFactory = EventConnectionFactory;
189
180
  exports.EventPublisherType = require_types.EventPublisherType;
190
181
  exports.Publisher = Publisher;
191
182
  exports.Subscriber = Subscriber;
183
+ exports.UnsupportedEventTransport = require_types.UnsupportedEventTransport;
184
+
192
185
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["connectionStr: string","EventPublisherType","connectionStr: EventPublisherConnectionString","EventPublisherType","connection: EventConnection","connectionStr: EventSubscriberConnectionString","EventPublisherType","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
+ {"version":3,"file":"index.cjs","names":["UnsupportedEventTransport","UnsupportedEventTransport","UnsupportedEventTransport"],"sources":["../src/EventConnection.ts","../src/Publisher.ts","../src/Subscriber.ts"],"sourcesContent":["import type { EventConnection } from './types';\nimport { EventPublisherType, UnsupportedEventTransport } 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 UnsupportedEventTransport(protocol, 'connection');\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, UnsupportedEventTransport } from './types';\n\n/** How a publisher is used, beyond the address it reaches. */\nexport interface PublisherOptions {\n\t/**\n\t * The topic this publisher fans out to. SNS and RabbitMQ name the topic in\n\t * their address already; pg-boss has one address for every topic and queue,\n\t * so it is told here that a message goes to every subscriber rather than to\n\t * one queue.\n\t */\n\ttopic?: string;\n}\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\toptions: PublisherOptions = {},\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>(\n\t\t\t\t\tconnectionStr,\n\t\t\t\t\toptions,\n\t\t\t\t);\n\t\t\t}\n\t\t\t// Future implementations for EventBridge, Kafka, etc.\n\t\t\tdefault:\n\t\t\t\tthrow new UnsupportedEventTransport(\n\t\t\t\t\turl.protocol.replace(':', ''),\n\t\t\t\t\t'publisher',\n\t\t\t\t);\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 UnsupportedEventTransport(connection.type, 'publisher');\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, UnsupportedEventTransport } 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 UnsupportedEventTransport(\n\t\t\t\t\turl.protocol.replace(':', ''),\n\t\t\t\t\t'subscriber',\n\t\t\t\t);\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\t/**\n\t\t * Subscribing to a topic as a named subscriber. pg-boss needs both to\n\t\t * give each subscriber its own queue; the other transports carry the\n\t\t * topic in their address and ignore it.\n\t\t */\n\t\toptions: { topic?: string; subscription?: string } = {},\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\toptions,\n\t\t\t\t);\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tthrow new UnsupportedEventTransport(connection.type, 'subscriber');\n\t\t}\n\t}\n}\n\nexport type EventSubscriberConnectionString =\n\t`${EventPublisherType}://${string}`;\n"],"mappings":"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"}
package/dist/index.d.cts CHANGED
@@ -1,7 +1,6 @@
1
- import { EventConnection, EventPublisher, EventPublisherType, EventSubscriber, ExtractPublisherMessage, MappedEvent, PublishableMessage } from "./types-BmixGrOD.cjs";
2
-
1
+ import { a as ExtractPublisherMessage, c as UnsupportedEventTransport, i as EventSubscriber, n as EventPublisher, o as MappedEvent, r as EventPublisherType, s as PublishableMessage, t as EventConnection } from "./types-gGaoT8qc.cjs";
3
2
  //#region src/EventConnection.d.ts
4
- declare class EventConnectionFactory {
3
+ export declare class EventConnectionFactory {
5
4
  /**
6
5
  * Create an EventConnection from a connection string
7
6
  * Dynamically imports the appropriate connection implementation
@@ -10,12 +9,22 @@ declare class EventConnectionFactory {
10
9
  }
11
10
  //#endregion
12
11
  //#region src/Publisher.d.ts
13
- declare class Publisher {
12
+ /** How a publisher is used, beyond the address it reaches. */
13
+ interface PublisherOptions {
14
+ /**
15
+ * The topic this publisher fans out to. SNS and RabbitMQ name the topic in
16
+ * their address already; pg-boss has one address for every topic and queue,
17
+ * so it is told here that a message goes to every subscriber rather than to
18
+ * one queue.
19
+ */
20
+ topic?: string;
21
+ }
22
+ export declare class Publisher {
14
23
  /**
15
24
  * Create a publisher from a connection string
16
25
  * This creates both a connection and a publisher
17
26
  */
18
- static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionStr: EventPublisherConnectionString): Promise<EventPublisher<TMessage>>;
27
+ static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionStr: EventPublisherConnectionString, options?: PublisherOptions): Promise<EventPublisher<TMessage>>;
19
28
  /**
20
29
  * Create a publisher from an existing connection
21
30
  * This allows sharing connections between publishers and subscribers
@@ -23,10 +32,9 @@ declare class Publisher {
23
32
  static fromConnection<TMessage extends PublishableMessage<string, any>>(connection: EventConnection): Promise<EventPublisher<TMessage>>;
24
33
  }
25
34
  type EventPublisherConnectionString = `${EventPublisherType}://${string}`;
26
- //# sourceMappingURL=Publisher.d.ts.map
27
35
  //#endregion
28
36
  //#region src/Subscriber.d.ts
29
- declare class Subscriber {
37
+ export declare class Subscriber {
30
38
  /**
31
39
  * Create a subscriber from a connection string
32
40
  * This creates both a connection and a subscriber
@@ -36,11 +44,18 @@ declare class Subscriber {
36
44
  * Create a subscriber from an existing connection
37
45
  * This allows sharing connections between publishers and subscribers
38
46
  */
39
- static fromConnection<TMessage extends PublishableMessage<string, any>>(connection: EventConnection): Promise<EventSubscriber<TMessage>>;
47
+ static fromConnection<TMessage extends PublishableMessage<string, any>>(connection: EventConnection,
48
+ /**
49
+ * Subscribing to a topic as a named subscriber. pg-boss needs both to
50
+ * give each subscriber its own queue; the other transports carry the
51
+ * topic in their address and ignore it.
52
+ */
53
+ options?: {
54
+ topic?: string;
55
+ subscription?: string;
56
+ }): Promise<EventSubscriber<TMessage>>;
40
57
  }
41
58
  type EventSubscriberConnectionString = `${EventPublisherType}://${string}`;
42
- //# sourceMappingURL=Subscriber.d.ts.map
43
-
44
59
  //#endregion
45
- export { EventConnection, EventConnectionFactory, EventPublisher, EventPublisherConnectionString, EventPublisherType, EventSubscriber, EventSubscriberConnectionString, ExtractPublisherMessage, MappedEvent, PublishableMessage, Publisher, Subscriber };
60
+ export { type EventConnection, type EventPublisher, type EventPublisherConnectionString, EventPublisherType, type EventSubscriber, type EventSubscriberConnectionString, type ExtractPublisherMessage, type MappedEvent, type PublishableMessage, type PublisherOptions, UnsupportedEventTransport };
46
61
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/EventConnection.ts","../src/Publisher.ts","../src/Subscriber.ts"],"sourcesContent":[],"mappings":";;;cAGa,sBAAA;;AAAb;;;EAO2B,OAAvB,oBAAA,CAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,CAAQ,eAAR,CAAA;AAAO;;;cCHE,SAAA;EDJA;;;;EAOF,OAAA,oBAAA,CAAA,iBCGQ,kBDHR,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,aAAA,ECKM,8BDLN,CAAA,ECMP,ODNO,CCMC,cDND,CCMgB,QDNhB,CAAA,CAAA;;;;ACHX;EAAsB,OAAA,cAAA,CAAA,iBA4CwB,kBA5CxB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,UAAA,EA6CR,eA7CQ,CAAA,EA8ClB,OA9CkB,CA8CV,cA9CU,CA8CK,QA9CL,CAAA,CAAA;;AAQL,KAiFL,8BAAA,GAjFK,GAkFb,kBAlFa,MAAA,MAAA,EAAA;;;;cCRJ,UAAA;EFJA;;;;EAOF,OAAA,oBAAA,CAAA,iBEGQ,kBFHR,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,aAAA,EEKM,+BFLN,CAAA,EEMP,OFNO,CEMC,eFND,CEMiB,QFNjB,CAAA,CAAA;;;;ACHX;EAAsB,OAAA,cAAA,CAAA,iBC2DwB,kBD3DxB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,UAAA,EC4DR,eD5DQ,CAAA,EC6DlB,OD7DkB,CC6DV,eD7DU,CC6DM,QD7DN,CAAA,CAAA;;AAQL,KCgGL,+BAAA,GDhGK,GCiGb,kBDjGa,MAAA,MAAA,EAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/EventConnection.ts","../src/Publisher.ts","../src/Subscriber.ts"],"mappings":";;qBAGa;;;;;SAKC,qBACZ,wBACE,QAAQ;;;;;UCFK;;;;;;;EAOhB;;qBAGY;;;;;SAKC,qBACZ,iBAAiB,iCAEjB,eAAe,gCACf,UAAS,mBACP,QAAQ,eAAe;;;;;SAyCb,eAAe,iBAAiB,iCAC5C,YAAY,kBACV,QAAQ,eAAe;;KA2Cf,oCACR;;;qBC5GS;;;;;SAKC,qBACZ,iBAAiB,iCAEjB,eAAe,kCACb,QAAQ,gBAAgB;;;;;SAqDd,eAAe,iBAAiB,iCAC5C,YAAY,iBAMZ;;;;;;EAAA;IAAW;IAAgB;MACzB,QAAQ,gBAAgB;;KA4ChB,qCACR"}
package/dist/index.d.mts CHANGED
@@ -1,7 +1,6 @@
1
- import { EventConnection, EventPublisher, EventPublisherType, EventSubscriber, ExtractPublisherMessage, MappedEvent, PublishableMessage } from "./types-DycjsYms.mjs";
2
-
1
+ import { a as ExtractPublisherMessage, c as UnsupportedEventTransport, i as EventSubscriber, n as EventPublisher, o as MappedEvent, r as EventPublisherType, s as PublishableMessage, t as EventConnection } from "./types-gGaoT8qc.mjs";
3
2
  //#region src/EventConnection.d.ts
4
- declare class EventConnectionFactory {
3
+ export declare class EventConnectionFactory {
5
4
  /**
6
5
  * Create an EventConnection from a connection string
7
6
  * Dynamically imports the appropriate connection implementation
@@ -10,12 +9,22 @@ declare class EventConnectionFactory {
10
9
  }
11
10
  //#endregion
12
11
  //#region src/Publisher.d.ts
13
- declare class Publisher {
12
+ /** How a publisher is used, beyond the address it reaches. */
13
+ interface PublisherOptions {
14
+ /**
15
+ * The topic this publisher fans out to. SNS and RabbitMQ name the topic in
16
+ * their address already; pg-boss has one address for every topic and queue,
17
+ * so it is told here that a message goes to every subscriber rather than to
18
+ * one queue.
19
+ */
20
+ topic?: string;
21
+ }
22
+ export declare class Publisher {
14
23
  /**
15
24
  * Create a publisher from a connection string
16
25
  * This creates both a connection and a publisher
17
26
  */
18
- static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionStr: EventPublisherConnectionString): Promise<EventPublisher<TMessage>>;
27
+ static fromConnectionString<TMessage extends PublishableMessage<string, any>>(connectionStr: EventPublisherConnectionString, options?: PublisherOptions): Promise<EventPublisher<TMessage>>;
19
28
  /**
20
29
  * Create a publisher from an existing connection
21
30
  * This allows sharing connections between publishers and subscribers
@@ -23,10 +32,9 @@ declare class Publisher {
23
32
  static fromConnection<TMessage extends PublishableMessage<string, any>>(connection: EventConnection): Promise<EventPublisher<TMessage>>;
24
33
  }
25
34
  type EventPublisherConnectionString = `${EventPublisherType}://${string}`;
26
- //# sourceMappingURL=Publisher.d.ts.map
27
35
  //#endregion
28
36
  //#region src/Subscriber.d.ts
29
- declare class Subscriber {
37
+ export declare class Subscriber {
30
38
  /**
31
39
  * Create a subscriber from a connection string
32
40
  * This creates both a connection and a subscriber
@@ -36,11 +44,18 @@ declare class Subscriber {
36
44
  * Create a subscriber from an existing connection
37
45
  * This allows sharing connections between publishers and subscribers
38
46
  */
39
- static fromConnection<TMessage extends PublishableMessage<string, any>>(connection: EventConnection): Promise<EventSubscriber<TMessage>>;
47
+ static fromConnection<TMessage extends PublishableMessage<string, any>>(connection: EventConnection,
48
+ /**
49
+ * Subscribing to a topic as a named subscriber. pg-boss needs both to
50
+ * give each subscriber its own queue; the other transports carry the
51
+ * topic in their address and ignore it.
52
+ */
53
+ options?: {
54
+ topic?: string;
55
+ subscription?: string;
56
+ }): Promise<EventSubscriber<TMessage>>;
40
57
  }
41
58
  type EventSubscriberConnectionString = `${EventPublisherType}://${string}`;
42
- //# sourceMappingURL=Subscriber.d.ts.map
43
-
44
59
  //#endregion
45
- export { EventConnection, EventConnectionFactory, EventPublisher, EventPublisherConnectionString, EventPublisherType, EventSubscriber, EventSubscriberConnectionString, ExtractPublisherMessage, MappedEvent, PublishableMessage, Publisher, Subscriber };
60
+ export { type EventConnection, type EventPublisher, type EventPublisherConnectionString, EventPublisherType, type EventSubscriber, type EventSubscriberConnectionString, type ExtractPublisherMessage, type MappedEvent, type PublishableMessage, type PublisherOptions, UnsupportedEventTransport };
46
61
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/EventConnection.ts","../src/Publisher.ts","../src/Subscriber.ts"],"sourcesContent":[],"mappings":";;;cAGa,sBAAA;;AAAb;;;EAO2B,OAAvB,oBAAA,CAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,CAAQ,eAAR,CAAA;AAAO;;;cCHE,SAAA;EDJA;;;;EAOF,OAAA,oBAAA,CAAA,iBCGQ,kBDHR,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,aAAA,ECKM,8BDLN,CAAA,ECMP,ODNO,CCMC,cDND,CCMgB,QDNhB,CAAA,CAAA;;;;ACHX;EAAsB,OAAA,cAAA,CAAA,iBA4CwB,kBA5CxB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,UAAA,EA6CR,eA7CQ,CAAA,EA8ClB,OA9CkB,CA8CV,cA9CU,CA8CK,QA9CL,CAAA,CAAA;;AAQL,KAiFL,8BAAA,GAjFK,GAkFb,kBAlFa,MAAA,MAAA,EAAA;;;;cCRJ,UAAA;EFJA;;;;EAOF,OAAA,oBAAA,CAAA,iBEGQ,kBFHR,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,aAAA,EEKM,+BFLN,CAAA,EEMP,OFNO,CEMC,eFND,CEMiB,QFNjB,CAAA,CAAA;;;;ACHX;EAAsB,OAAA,cAAA,CAAA,iBC2DwB,kBD3DxB,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA,CAAA,UAAA,EC4DR,eD5DQ,CAAA,EC6DlB,OD7DkB,CC6DV,eD7DU,CC6DM,QD7DN,CAAA,CAAA;;AAQL,KCgGL,+BAAA,GDhGK,GCiGb,kBDjGa,MAAA,MAAA,EAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/EventConnection.ts","../src/Publisher.ts","../src/Subscriber.ts"],"mappings":";;qBAGa;;;;;SAKC,qBACZ,wBACE,QAAQ;;;;;UCFK;;;;;;;EAOhB;;qBAGY;;;;;SAKC,qBACZ,iBAAiB,iCAEjB,eAAe,gCACf,UAAS,mBACP,QAAQ,eAAe;;;;;SAyCb,eAAe,iBAAiB,iCAC5C,YAAY,kBACV,QAAQ,eAAe;;KA2Cf,oCACR;;;qBC5GS;;;;;SAKC,qBACZ,iBAAiB,iCAEjB,eAAe,kCACb,QAAQ,gBAAgB;;;;;SAqDd,eAAe,iBAAiB,iCAC5C,YAAY,iBAMZ;;;;;;EAAA;IAAW;IAAgB;MACzB,QAAQ,gBAAgB;;KA4ChB,qCACR"}