@warlock.js/herald 4.0.171 β 4.1.1
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/README.md +36 -33
- package/cjs/index.cjs +1355 -0
- package/cjs/index.cjs.map +1 -0
- package/esm/communicators/broker-registry.d.mts +157 -0
- package/esm/communicators/broker-registry.d.mts.map +1 -0
- package/esm/communicators/broker-registry.mjs +204 -0
- package/esm/communicators/broker-registry.mjs.map +1 -0
- package/esm/communicators/broker.d.mts +104 -0
- package/esm/communicators/broker.d.mts.map +1 -0
- package/esm/communicators/broker.mjs +104 -0
- package/esm/communicators/broker.mjs.map +1 -0
- package/esm/communicators/index.d.mts +2 -0
- package/esm/communicators/index.mjs +4 -0
- package/esm/contracts/broker-driver.contract.d.mts +200 -0
- package/esm/contracts/broker-driver.contract.d.mts.map +1 -0
- package/esm/contracts/channel.contract.d.mts +197 -0
- package/esm/contracts/channel.contract.d.mts.map +1 -0
- package/esm/contracts/index.d.mts +2 -0
- package/esm/decorators/consumable.d.mts +17 -0
- package/esm/decorators/consumable.d.mts.map +1 -0
- package/esm/decorators/consumable.mjs +36 -0
- package/esm/decorators/consumable.mjs.map +1 -0
- package/esm/decorators/index.d.mts +1 -0
- package/esm/decorators/index.mjs +3 -0
- package/esm/drivers/index.d.mts +2 -0
- package/esm/drivers/index.mjs +5 -0
- package/esm/drivers/rabbitmq/index.d.mts +2 -0
- package/esm/drivers/rabbitmq/index.mjs +4 -0
- package/esm/drivers/rabbitmq/rabbitmq-channel.d.mts +85 -0
- package/esm/drivers/rabbitmq/rabbitmq-channel.d.mts.map +1 -0
- package/esm/drivers/rabbitmq/rabbitmq-channel.mjs +352 -0
- package/esm/drivers/rabbitmq/rabbitmq-channel.mjs.map +1 -0
- package/esm/drivers/rabbitmq/rabbitmq-driver.d.mts +130 -0
- package/esm/drivers/rabbitmq/rabbitmq-driver.d.mts.map +1 -0
- package/esm/drivers/rabbitmq/rabbitmq-driver.mjs +291 -0
- package/esm/drivers/rabbitmq/rabbitmq-driver.mjs.map +1 -0
- package/esm/index.d.mts +20 -0
- package/esm/index.mjs +16 -0
- package/esm/message-managers/event-consumer.d.mts +61 -0
- package/esm/message-managers/event-consumer.d.mts.map +1 -0
- package/esm/message-managers/event-consumer.mjs +63 -0
- package/esm/message-managers/event-consumer.mjs.map +1 -0
- package/esm/message-managers/event-message.d.mts +87 -0
- package/esm/message-managers/event-message.d.mts.map +1 -0
- package/esm/message-managers/event-message.mjs +68 -0
- package/esm/message-managers/event-message.mjs.map +1 -0
- package/esm/message-managers/index.d.mts +3 -0
- package/esm/message-managers/index.mjs +4 -0
- package/esm/message-managers/prepare-consumer-subscription.mjs +42 -0
- package/esm/message-managers/prepare-consumer-subscription.mjs.map +1 -0
- package/esm/message-managers/types.d.mts +23 -0
- package/esm/message-managers/types.d.mts.map +1 -0
- package/esm/types/channel.types.d.mts +23 -0
- package/esm/types/channel.types.d.mts.map +1 -0
- package/esm/types/connection.types.d.mts +67 -0
- package/esm/types/connection.types.d.mts.map +1 -0
- package/esm/types/driver.types.d.mts +13 -0
- package/esm/types/driver.types.d.mts.map +1 -0
- package/esm/types/index.d.mts +7 -0
- package/esm/types/message.types.d.mts +37 -0
- package/esm/types/message.types.d.mts.map +1 -0
- package/esm/types/publish.types.d.mts +16 -0
- package/esm/types/publish.types.d.mts.map +1 -0
- package/esm/types/registry.types.d.mts +8 -0
- package/esm/types/registry.types.d.mts.map +1 -0
- package/esm/types/subscribe.types.d.mts +21 -0
- package/esm/types/subscribe.types.d.mts.map +1 -0
- package/esm/use-case-broadcast.d.mts +41 -0
- package/esm/use-case-broadcast.d.mts.map +1 -0
- package/esm/use-case-broadcast.mjs +30 -0
- package/esm/use-case-broadcast.mjs.map +1 -0
- package/esm/utils/{connect-to-broker.d.ts β connect-to-broker.d.mts} +15 -10
- package/esm/utils/connect-to-broker.d.mts.map +1 -0
- package/esm/utils/connect-to-broker.mjs +168 -0
- package/esm/utils/connect-to-broker.mjs.map +1 -0
- package/esm/utils/index.d.mts +1 -0
- package/esm/utils/index.mjs +3 -0
- package/llms-full.txt +581 -0
- package/llms.txt +12 -0
- package/package.json +46 -46
- package/skills/README.md +21 -0
- package/skills/consume-message/SKILL.md +217 -0
- package/skills/herald-basics/SKILL.md +96 -0
- package/skills/publish-message/SKILL.md +172 -0
- package/skills/request-and-respond/SKILL.md +74 -0
- package/cjs/communicators/broker-registry.d.ts +0 -155
- package/cjs/communicators/broker-registry.d.ts.map +0 -1
- package/cjs/communicators/broker-registry.js +0 -206
- package/cjs/communicators/broker-registry.js.map +0 -1
- package/cjs/communicators/broker.d.ts +0 -100
- package/cjs/communicators/broker.d.ts.map +0 -1
- package/cjs/communicators/broker.js +0 -105
- package/cjs/communicators/broker.js.map +0 -1
- package/cjs/communicators/index.d.ts +0 -3
- package/cjs/communicators/index.d.ts.map +0 -1
- package/cjs/contracts/broker-driver.contract.d.ts +0 -196
- package/cjs/contracts/broker-driver.contract.d.ts.map +0 -1
- package/cjs/contracts/channel.contract.d.ts +0 -191
- package/cjs/contracts/channel.contract.d.ts.map +0 -1
- package/cjs/contracts/index.d.ts +0 -3
- package/cjs/contracts/index.d.ts.map +0 -1
- package/cjs/decorators/consumable.d.ts +0 -13
- package/cjs/decorators/consumable.d.ts.map +0 -1
- package/cjs/decorators/consumable.js +0 -33
- package/cjs/decorators/consumable.js.map +0 -1
- package/cjs/decorators/index.d.ts +0 -2
- package/cjs/decorators/index.d.ts.map +0 -1
- package/cjs/drivers/index.d.ts +0 -2
- package/cjs/drivers/index.d.ts.map +0 -1
- package/cjs/drivers/rabbitmq/index.d.ts +0 -3
- package/cjs/drivers/rabbitmq/index.d.ts.map +0 -1
- package/cjs/drivers/rabbitmq/rabbitmq-channel.d.ts +0 -79
- package/cjs/drivers/rabbitmq/rabbitmq-channel.d.ts.map +0 -1
- package/cjs/drivers/rabbitmq/rabbitmq-channel.js +0 -414
- package/cjs/drivers/rabbitmq/rabbitmq-channel.js.map +0 -1
- package/cjs/drivers/rabbitmq/rabbitmq-driver.d.ts +0 -124
- package/cjs/drivers/rabbitmq/rabbitmq-driver.d.ts.map +0 -1
- package/cjs/drivers/rabbitmq/rabbitmq-driver.js +0 -347
- package/cjs/drivers/rabbitmq/rabbitmq-driver.js.map +0 -1
- package/cjs/index.d.ts +0 -47
- package/cjs/index.d.ts.map +0 -1
- package/cjs/index.js +0 -1
- package/cjs/index.js.map +0 -1
- package/cjs/message-managers/event-consumer.d.ts +0 -64
- package/cjs/message-managers/event-consumer.d.ts.map +0 -1
- package/cjs/message-managers/event-consumer.js +0 -71
- package/cjs/message-managers/event-consumer.js.map +0 -1
- package/cjs/message-managers/event-message.d.ts +0 -90
- package/cjs/message-managers/event-message.d.ts.map +0 -1
- package/cjs/message-managers/event-message.js +0 -84
- package/cjs/message-managers/event-message.js.map +0 -1
- package/cjs/message-managers/index.d.ts +0 -4
- package/cjs/message-managers/index.d.ts.map +0 -1
- package/cjs/message-managers/prepare-consumer-subscription.d.ts +0 -4
- package/cjs/message-managers/prepare-consumer-subscription.d.ts.map +0 -1
- package/cjs/message-managers/prepare-consumer-subscription.js +0 -40
- package/cjs/message-managers/prepare-consumer-subscription.js.map +0 -1
- package/cjs/message-managers/types.d.ts +0 -20
- package/cjs/message-managers/types.d.ts.map +0 -1
- package/cjs/types/channel.types.d.ts +0 -19
- package/cjs/types/channel.types.d.ts.map +0 -1
- package/cjs/types/connection.types.d.ts +0 -65
- package/cjs/types/connection.types.d.ts.map +0 -1
- package/cjs/types/driver.types.d.ts +0 -10
- package/cjs/types/driver.types.d.ts.map +0 -1
- package/cjs/types/index.d.ts +0 -8
- package/cjs/types/index.d.ts.map +0 -1
- package/cjs/types/message.types.d.ts +0 -34
- package/cjs/types/message.types.d.ts.map +0 -1
- package/cjs/types/publish.types.d.ts +0 -13
- package/cjs/types/publish.types.d.ts.map +0 -1
- package/cjs/types/registry.types.d.ts +0 -4
- package/cjs/types/registry.types.d.ts.map +0 -1
- package/cjs/types/subscribe.types.d.ts +0 -18
- package/cjs/types/subscribe.types.d.ts.map +0 -1
- package/cjs/utils/connect-to-broker.d.ts +0 -131
- package/cjs/utils/connect-to-broker.d.ts.map +0 -1
- package/cjs/utils/connect-to-broker.js +0 -171
- package/cjs/utils/connect-to-broker.js.map +0 -1
- package/cjs/utils/index.d.ts +0 -2
- package/cjs/utils/index.d.ts.map +0 -1
- package/esm/communicators/broker-registry.d.ts +0 -155
- package/esm/communicators/broker-registry.d.ts.map +0 -1
- package/esm/communicators/broker-registry.js +0 -206
- package/esm/communicators/broker-registry.js.map +0 -1
- package/esm/communicators/broker.d.ts +0 -100
- package/esm/communicators/broker.d.ts.map +0 -1
- package/esm/communicators/broker.js +0 -105
- package/esm/communicators/broker.js.map +0 -1
- package/esm/communicators/index.d.ts +0 -3
- package/esm/communicators/index.d.ts.map +0 -1
- package/esm/contracts/broker-driver.contract.d.ts +0 -196
- package/esm/contracts/broker-driver.contract.d.ts.map +0 -1
- package/esm/contracts/channel.contract.d.ts +0 -191
- package/esm/contracts/channel.contract.d.ts.map +0 -1
- package/esm/contracts/index.d.ts +0 -3
- package/esm/contracts/index.d.ts.map +0 -1
- package/esm/decorators/consumable.d.ts +0 -13
- package/esm/decorators/consumable.d.ts.map +0 -1
- package/esm/decorators/consumable.js +0 -33
- package/esm/decorators/consumable.js.map +0 -1
- package/esm/decorators/index.d.ts +0 -2
- package/esm/decorators/index.d.ts.map +0 -1
- package/esm/drivers/index.d.ts +0 -2
- package/esm/drivers/index.d.ts.map +0 -1
- package/esm/drivers/rabbitmq/index.d.ts +0 -3
- package/esm/drivers/rabbitmq/index.d.ts.map +0 -1
- package/esm/drivers/rabbitmq/rabbitmq-channel.d.ts +0 -79
- package/esm/drivers/rabbitmq/rabbitmq-channel.d.ts.map +0 -1
- package/esm/drivers/rabbitmq/rabbitmq-channel.js +0 -414
- package/esm/drivers/rabbitmq/rabbitmq-channel.js.map +0 -1
- package/esm/drivers/rabbitmq/rabbitmq-driver.d.ts +0 -124
- package/esm/drivers/rabbitmq/rabbitmq-driver.d.ts.map +0 -1
- package/esm/drivers/rabbitmq/rabbitmq-driver.js +0 -347
- package/esm/drivers/rabbitmq/rabbitmq-driver.js.map +0 -1
- package/esm/index.d.ts +0 -47
- package/esm/index.d.ts.map +0 -1
- package/esm/index.js +0 -1
- package/esm/index.js.map +0 -1
- package/esm/message-managers/event-consumer.d.ts +0 -64
- package/esm/message-managers/event-consumer.d.ts.map +0 -1
- package/esm/message-managers/event-consumer.js +0 -71
- package/esm/message-managers/event-consumer.js.map +0 -1
- package/esm/message-managers/event-message.d.ts +0 -90
- package/esm/message-managers/event-message.d.ts.map +0 -1
- package/esm/message-managers/event-message.js +0 -84
- package/esm/message-managers/event-message.js.map +0 -1
- package/esm/message-managers/index.d.ts +0 -4
- package/esm/message-managers/index.d.ts.map +0 -1
- package/esm/message-managers/prepare-consumer-subscription.d.ts +0 -4
- package/esm/message-managers/prepare-consumer-subscription.d.ts.map +0 -1
- package/esm/message-managers/prepare-consumer-subscription.js +0 -40
- package/esm/message-managers/prepare-consumer-subscription.js.map +0 -1
- package/esm/message-managers/types.d.ts +0 -20
- package/esm/message-managers/types.d.ts.map +0 -1
- package/esm/types/channel.types.d.ts +0 -19
- package/esm/types/channel.types.d.ts.map +0 -1
- package/esm/types/connection.types.d.ts +0 -65
- package/esm/types/connection.types.d.ts.map +0 -1
- package/esm/types/driver.types.d.ts +0 -10
- package/esm/types/driver.types.d.ts.map +0 -1
- package/esm/types/index.d.ts +0 -8
- package/esm/types/index.d.ts.map +0 -1
- package/esm/types/message.types.d.ts +0 -34
- package/esm/types/message.types.d.ts.map +0 -1
- package/esm/types/publish.types.d.ts +0 -13
- package/esm/types/publish.types.d.ts.map +0 -1
- package/esm/types/registry.types.d.ts +0 -4
- package/esm/types/registry.types.d.ts.map +0 -1
- package/esm/types/subscribe.types.d.ts +0 -18
- package/esm/types/subscribe.types.d.ts.map +0 -1
- package/esm/utils/connect-to-broker.d.ts.map +0 -1
- package/esm/utils/connect-to-broker.js +0 -171
- package/esm/utils/connect-to-broker.js.map +0 -1
- package/esm/utils/index.d.ts +0 -2
- package/esm/utils/index.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -43,10 +43,10 @@ npm install kafkajs
|
|
|
43
43
|
## π Quick Start
|
|
44
44
|
|
|
45
45
|
```typescript
|
|
46
|
-
import {
|
|
46
|
+
import { connectToBroker, herald } from "@warlock.js/herald";
|
|
47
47
|
|
|
48
48
|
// Connect to RabbitMQ
|
|
49
|
-
await
|
|
49
|
+
await connectToBroker({
|
|
50
50
|
driver: "rabbitmq",
|
|
51
51
|
host: "localhost",
|
|
52
52
|
port: 5672,
|
|
@@ -55,13 +55,13 @@ await connectToCommunicator({
|
|
|
55
55
|
});
|
|
56
56
|
|
|
57
57
|
// Publish a message
|
|
58
|
-
await
|
|
58
|
+
await herald().channel("user.created").publish({
|
|
59
59
|
userId: 1,
|
|
60
60
|
email: "user@example.com",
|
|
61
61
|
});
|
|
62
62
|
|
|
63
63
|
// Subscribe to messages
|
|
64
|
-
|
|
64
|
+
herald()
|
|
65
65
|
.channel<{ userId: number; email: string }>("user.created")
|
|
66
66
|
.subscribe(async (message, ctx) => {
|
|
67
67
|
console.log("User created:", message.payload.userId);
|
|
@@ -71,45 +71,45 @@ communicators()
|
|
|
71
71
|
|
|
72
72
|
## π― Core Concepts
|
|
73
73
|
|
|
74
|
-
###
|
|
74
|
+
### Brokers
|
|
75
75
|
|
|
76
|
-
A
|
|
76
|
+
A broker wraps a message broker connection (e.g. RabbitMQ, Kafka). You can have multiple brokers for different clusters or purposes.
|
|
77
77
|
|
|
78
78
|
```typescript
|
|
79
|
-
// Single
|
|
80
|
-
await
|
|
79
|
+
// Single broker (default)
|
|
80
|
+
await connectToBroker({
|
|
81
81
|
driver: "rabbitmq",
|
|
82
82
|
host: "localhost",
|
|
83
83
|
});
|
|
84
84
|
|
|
85
|
-
// Multiple
|
|
86
|
-
await
|
|
85
|
+
// Multiple brokers
|
|
86
|
+
await connectToBroker({
|
|
87
87
|
driver: "rabbitmq",
|
|
88
88
|
name: "notifications",
|
|
89
89
|
isDefault: true,
|
|
90
90
|
host: process.env.NOTIFICATIONS_HOST,
|
|
91
91
|
});
|
|
92
92
|
|
|
93
|
-
await
|
|
93
|
+
await connectToBroker({
|
|
94
94
|
driver: "rabbitmq",
|
|
95
95
|
name: "analytics",
|
|
96
96
|
host: process.env.ANALYTICS_HOST,
|
|
97
97
|
});
|
|
98
98
|
|
|
99
99
|
// Use default
|
|
100
|
-
|
|
100
|
+
herald().channel("notifications").publish({ ... });
|
|
101
101
|
|
|
102
|
-
// Use specific
|
|
103
|
-
|
|
102
|
+
// Use specific broker
|
|
103
|
+
herald("analytics").channel("events").publish({ ... });
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
### Channels
|
|
107
107
|
|
|
108
|
-
Channels represent queues (RabbitMQ) or topics (Kafka). They provide a unified pub/sub interface
|
|
108
|
+
Channels represent queues (RabbitMQ) or topics (Kafka). They provide a unified pub/sub interface via `herald()`.
|
|
109
109
|
|
|
110
110
|
```typescript
|
|
111
111
|
// Get a channel
|
|
112
|
-
const userChannel =
|
|
112
|
+
const userChannel = herald().channel("user.created");
|
|
113
113
|
|
|
114
114
|
// Publish
|
|
115
115
|
await userChannel.publish({ userId: 1 });
|
|
@@ -132,7 +132,7 @@ interface UserPayload {
|
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
// Typed channel
|
|
135
|
-
const channel =
|
|
135
|
+
const channel = herald().channel<UserPayload>("user.created");
|
|
136
136
|
|
|
137
137
|
// TypeScript knows the payload type
|
|
138
138
|
await channel.publish({ userId: 1, email: "test@example.com" });
|
|
@@ -157,7 +157,7 @@ const UserSchema = v.object({
|
|
|
157
157
|
});
|
|
158
158
|
|
|
159
159
|
// Channel with validation
|
|
160
|
-
const channel =
|
|
160
|
+
const channel = herald().channel("user.created", {
|
|
161
161
|
schema: UserSchema,
|
|
162
162
|
});
|
|
163
163
|
|
|
@@ -173,12 +173,12 @@ channel.subscribe(async (message, ctx) => {
|
|
|
173
173
|
|
|
174
174
|
## π API Reference
|
|
175
175
|
|
|
176
|
-
###
|
|
176
|
+
### connectToBroker
|
|
177
177
|
|
|
178
|
-
Connect to a message broker and register
|
|
178
|
+
Connect to a message broker and register it:
|
|
179
179
|
|
|
180
180
|
```typescript
|
|
181
|
-
const
|
|
181
|
+
const broker = await connectToBroker({
|
|
182
182
|
driver: "rabbitmq",
|
|
183
183
|
name: "default", // Optional, defaults to "default"
|
|
184
184
|
isDefault: true, // Optional, defaults to true
|
|
@@ -195,22 +195,22 @@ const communicator = await connectToCommunicator({
|
|
|
195
195
|
});
|
|
196
196
|
```
|
|
197
197
|
|
|
198
|
-
###
|
|
198
|
+
### herald(name?)
|
|
199
199
|
|
|
200
|
-
Get a
|
|
200
|
+
Get a broker by name or the default one:
|
|
201
201
|
|
|
202
202
|
```typescript
|
|
203
|
-
// Default
|
|
204
|
-
|
|
203
|
+
// Default broker
|
|
204
|
+
herald().channel("events");
|
|
205
205
|
|
|
206
|
-
// Named
|
|
207
|
-
|
|
206
|
+
// Named broker
|
|
207
|
+
herald("analytics").channel("events");
|
|
208
208
|
```
|
|
209
209
|
|
|
210
210
|
### Channel Methods
|
|
211
211
|
|
|
212
212
|
```typescript
|
|
213
|
-
const channel =
|
|
213
|
+
const channel = herald().channel<MyPayload>("channel.name");
|
|
214
214
|
|
|
215
215
|
// Publishing
|
|
216
216
|
await channel.publish(payload, options?);
|
|
@@ -293,7 +293,10 @@ await channel.publish(payload, {
|
|
|
293
293
|
### RabbitMQ
|
|
294
294
|
|
|
295
295
|
```typescript
|
|
296
|
-
|
|
296
|
+
### RabbitMQ
|
|
297
|
+
|
|
298
|
+
```typescript
|
|
299
|
+
await connectToBroker({
|
|
297
300
|
driver: "rabbitmq",
|
|
298
301
|
host: "localhost",
|
|
299
302
|
port: 5672,
|
|
@@ -308,7 +311,7 @@ await connectToCommunicator({
|
|
|
308
311
|
### Kafka (Coming Soon)
|
|
309
312
|
|
|
310
313
|
```typescript
|
|
311
|
-
await
|
|
314
|
+
await connectToBroker({
|
|
312
315
|
driver: "kafka",
|
|
313
316
|
brokers: ["localhost:9092"],
|
|
314
317
|
clientId: "my-app",
|
|
@@ -327,10 +330,10 @@ await connectToCommunicator({
|
|
|
327
330
|
βββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
328
331
|
β Your Application β
|
|
329
332
|
βββββββββββββββββββββββββββββββββββββββββββββββββββ€
|
|
330
|
-
β
|
|
331
|
-
β
|
|
333
|
+
β herald() β channel() β publish() β
|
|
334
|
+
β subscribe() β
|
|
332
335
|
βββββββββββββββββββββββββββββββββββββββββββββββββββ€
|
|
333
|
-
β
|
|
336
|
+
β Broker Registry β
|
|
334
337
|
β ββββββββββββ ββββββββββββ ββββββββββββ β
|
|
335
338
|
β β default β βanalytics β β events β β
|
|
336
339
|
β ββββββ¬ββββββ ββββββ¬ββββββ ββββββ¬ββββββ β
|