@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.
- package/dist/PgBossConnection-CywKoAZU.cjs +2 -0
- package/dist/PgBossConnection-DjoqT84r.mjs +2 -0
- package/dist/RabbitMQConnection-C9eccBL8.cjs +2 -0
- package/dist/RabbitMQConnection-CAp7VqyT.mjs +2 -0
- package/dist/SNSConnection-BWDC1wAF.cjs +2 -0
- package/dist/SNSConnection-ezQvVrDv.mjs +2 -0
- package/dist/{SQSSubscriber-BMWZ3s5q.mjs → SQSSubscriber-BXLE_1L3.mjs} +73 -7
- package/dist/SQSSubscriber-BXLE_1L3.mjs.map +1 -0
- package/dist/{SQSSubscriber-YXPlg2rm.cjs → SQSSubscriber-DtRUaZB3.cjs} +91 -14
- package/dist/SQSSubscriber-DtRUaZB3.cjs.map +1 -0
- package/dist/basic/index.cjs +7 -8
- package/dist/basic/index.cjs.map +1 -1
- package/dist/basic/index.d.cts +4 -10
- package/dist/basic/index.d.cts.map +1 -1
- package/dist/basic/index.d.mts +4 -10
- package/dist/basic/index.d.mts.map +1 -1
- package/dist/basic/index.mjs +5 -6
- package/dist/basic/index.mjs.map +1 -1
- package/dist/index.cjs +43 -50
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +26 -11
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +26 -11
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +42 -51
- package/dist/index.mjs.map +1 -1
- package/dist/pgboss/index.cjs +145 -28
- package/dist/pgboss/index.cjs.map +1 -1
- package/dist/pgboss/index.d.cts +39 -12
- package/dist/pgboss/index.d.cts.map +1 -1
- package/dist/pgboss/index.d.mts +39 -12
- package/dist/pgboss/index.d.mts.map +1 -1
- package/dist/pgboss/index.mjs +140 -28
- package/dist/pgboss/index.mjs.map +1 -1
- package/dist/rabbitmq/index.cjs +135 -22
- package/dist/rabbitmq/index.cjs.map +1 -1
- package/dist/rabbitmq/index.d.cts +11 -10
- package/dist/rabbitmq/index.d.cts.map +1 -1
- package/dist/rabbitmq/index.d.mts +11 -10
- package/dist/rabbitmq/index.d.mts.map +1 -1
- package/dist/rabbitmq/index.mjs +130 -22
- package/dist/rabbitmq/index.mjs.map +1 -1
- package/dist/{chunk-CsX-DzYB.cjs → rolldown-runtime-C0BPl7ul.cjs} +17 -16
- package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
- package/dist/sns/index.cjs +371 -34
- package/dist/sns/index.cjs.map +1 -1
- package/dist/sns/index.d.cts +167 -11
- package/dist/sns/index.d.cts.map +1 -1
- package/dist/sns/index.d.mts +167 -11
- package/dist/sns/index.d.mts.map +1 -1
- package/dist/sns/index.mjs +340 -18
- package/dist/sns/index.mjs.map +1 -1
- package/dist/sns/snsUrl.cjs +91 -6
- package/dist/sns/snsUrl.cjs.map +1 -0
- package/dist/sns/snsUrl.d.cts +57 -2
- package/dist/sns/snsUrl.d.cts.map +1 -0
- package/dist/sns/snsUrl.d.mts +57 -2
- package/dist/sns/snsUrl.d.mts.map +1 -0
- package/dist/sns/snsUrl.mjs +81 -2
- package/dist/sns/snsUrl.mjs.map +1 -0
- package/dist/sqs/index.cjs +34 -24
- package/dist/sqs/index.cjs.map +1 -1
- package/dist/sqs/index.d.cts +19 -11
- package/dist/sqs/index.d.cts.map +1 -1
- package/dist/sqs/index.d.mts +19 -11
- package/dist/sqs/index.d.mts.map +1 -1
- package/dist/sqs/index.mjs +22 -15
- package/dist/sqs/index.mjs.map +1 -1
- package/dist/sqs/sqsUrl.cjs +92 -6
- package/dist/sqs/sqsUrl.cjs.map +1 -0
- package/dist/sqs/sqsUrl.d.cts +56 -2
- package/dist/sqs/sqsUrl.d.cts.map +1 -0
- package/dist/sqs/sqsUrl.d.mts +56 -2
- package/dist/sqs/sqsUrl.d.mts.map +1 -0
- package/dist/sqs/sqsUrl.mjs +82 -2
- package/dist/sqs/sqsUrl.mjs.map +1 -0
- package/dist/types-BcZjLxVV.cjs +51 -0
- package/dist/types-BcZjLxVV.cjs.map +1 -0
- package/dist/types-Bk5JM6MP.mjs +40 -0
- package/dist/types-Bk5JM6MP.mjs.map +1 -0
- package/dist/types-gGaoT8qc.d.cts +149 -0
- package/dist/types-gGaoT8qc.d.cts.map +1 -0
- package/dist/types-gGaoT8qc.d.mts +149 -0
- package/dist/types-gGaoT8qc.d.mts.map +1 -0
- package/package.json +3 -3
- package/dist/PgBossConnection-C3qYNfm5.cjs +0 -80
- package/dist/PgBossConnection-C3qYNfm5.cjs.map +0 -1
- package/dist/PgBossConnection-Cvgv2l1G.mjs +0 -74
- package/dist/PgBossConnection-Cvgv2l1G.mjs.map +0 -1
- package/dist/PgBossConnection-DCUxQLZz.cjs +0 -4
- package/dist/PgBossConnection-DbO0ypJf.mjs +0 -4
- package/dist/RabbitMQConnection-8PbOD8hM.cjs +0 -4
- package/dist/RabbitMQConnection-Bpx3Lgij.mjs +0 -4
- package/dist/RabbitMQConnection-DGAk4aUb.cjs +0 -113
- package/dist/RabbitMQConnection-DGAk4aUb.cjs.map +0 -1
- package/dist/RabbitMQConnection-aE0dtb63.mjs +0 -107
- package/dist/RabbitMQConnection-aE0dtb63.mjs.map +0 -1
- package/dist/SNSConnection-B2K86hpz.cjs +0 -75
- package/dist/SNSConnection-B2K86hpz.cjs.map +0 -1
- package/dist/SNSConnection-BVo84FeW.mjs +0 -5
- package/dist/SNSConnection-DIHRjrQF.cjs +0 -5
- package/dist/SNSConnection-v9jjF99w.mjs +0 -69
- package/dist/SNSConnection-v9jjF99w.mjs.map +0 -1
- package/dist/SQSConnection-4tBMkVZE.mjs +0 -69
- package/dist/SQSConnection-4tBMkVZE.mjs.map +0 -1
- package/dist/SQSConnection-BBLAvF-1.cjs +0 -5
- package/dist/SQSConnection-BaC7rGhI.cjs +0 -75
- package/dist/SQSConnection-BaC7rGhI.cjs.map +0 -1
- package/dist/SQSConnection-DbavOq8_.mjs +0 -5
- package/dist/SQSSubscriber-BMWZ3s5q.mjs.map +0 -1
- package/dist/SQSSubscriber-YXPlg2rm.cjs.map +0 -1
- package/dist/chunk-B9dir_RE.mjs +0 -11
- package/dist/snsUrl-ASdc0D1v.d.cts +0 -61
- package/dist/snsUrl-ASdc0D1v.d.cts.map +0 -1
- package/dist/snsUrl-CifYhPAa.mjs +0 -79
- package/dist/snsUrl-CifYhPAa.mjs.map +0 -1
- package/dist/snsUrl-FRbRcwF0.d.mts +0 -61
- package/dist/snsUrl-FRbRcwF0.d.mts.map +0 -1
- package/dist/snsUrl-f2gU3CzK.cjs +0 -114
- package/dist/snsUrl-f2gU3CzK.cjs.map +0 -1
- package/dist/sqsUrl-BV6zS-mi.d.mts +0 -60
- package/dist/sqsUrl-BV6zS-mi.d.mts.map +0 -1
- package/dist/sqsUrl-CbAsBFHI.mjs +0 -80
- package/dist/sqsUrl-CbAsBFHI.mjs.map +0 -1
- package/dist/sqsUrl-CdisN3GU.cjs +0 -115
- package/dist/sqsUrl-CdisN3GU.cjs.map +0 -1
- package/dist/sqsUrl-DZDPHxIk.d.cts +0 -60
- package/dist/sqsUrl-DZDPHxIk.d.cts.map +0 -1
- package/dist/types-BmixGrOD.d.cts +0 -67
- package/dist/types-BmixGrOD.d.cts.map +0 -1
- package/dist/types-Byv8N9ma.cjs +0 -24
- package/dist/types-Byv8N9ma.cjs.map +0 -1
- package/dist/types-CYDt-2RQ.mjs +0 -18
- package/dist/types-CYDt-2RQ.mjs.map +0 -1
- package/dist/types-DycjsYms.d.mts +0 -67
- package/dist/types-DycjsYms.d.mts.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
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
|
|
11
|
-
const protocol = url.protocol.replace(":", "");
|
|
10
|
+
const protocol = new URL(connectionStr).protocol.replace(":", "");
|
|
12
11
|
switch (protocol) {
|
|
13
|
-
case
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
46
|
+
case "basic": {
|
|
49
47
|
const { BasicConnection, BasicPublisher } = await Promise.resolve().then(() => require("./basic/index.cjs"));
|
|
50
|
-
|
|
51
|
-
return new BasicPublisher(connection);
|
|
48
|
+
return new BasicPublisher(await BasicConnection.fromConnectionString(connectionStr));
|
|
52
49
|
}
|
|
53
|
-
case
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
114
|
+
case "basic": {
|
|
119
115
|
const { BasicConnection, BasicSubscriber } = await Promise.resolve().then(() => require("./basic/index.cjs"));
|
|
120
|
-
|
|
121
|
-
return new BasicSubscriber(connection);
|
|
116
|
+
return new BasicSubscriber(await BasicConnection.fromConnectionString(connectionStr));
|
|
122
117
|
}
|
|
123
|
-
case
|
|
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
|
|
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
|
|
132
|
-
|
|
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
|
-
|
|
142
|
-
return new SQSSubscriber(connection);
|
|
134
|
+
return new SQSSubscriber(await SQSConnection.fromConnectionString(connectionStr));
|
|
143
135
|
}
|
|
144
|
-
case
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
package/dist/index.cjs.map
CHANGED
|
@@ -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 {
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/EventConnection.ts","../src/Publisher.ts","../src/Subscriber.ts"],"
|
|
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 {
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/EventConnection.ts","../src/Publisher.ts","../src/Subscriber.ts"],"
|
|
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"}
|