@warlock.js/herald 4.0.174 → 4.1.2
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
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import {randomUUID}from'crypto';class EventMessage {
|
|
2
|
-
data;
|
|
3
|
-
/**
|
|
4
|
-
* Event version
|
|
5
|
-
*/
|
|
6
|
-
version;
|
|
7
|
-
/**
|
|
8
|
-
* Additional metadata (if any)
|
|
9
|
-
*/
|
|
10
|
-
metadata;
|
|
11
|
-
/**
|
|
12
|
-
* Event Message id
|
|
13
|
-
*/
|
|
14
|
-
messageId;
|
|
15
|
-
/**
|
|
16
|
-
* Schema of payload that will be used to determine whether this event should be published
|
|
17
|
-
*/
|
|
18
|
-
schema;
|
|
19
|
-
/**
|
|
20
|
-
* Data that will be sent with the event (Payload)
|
|
21
|
-
*/
|
|
22
|
-
toJSON() {
|
|
23
|
-
if (!this.data) {
|
|
24
|
-
throw new Error(`no Data is defined for Event: ${this.eventName}`);
|
|
25
|
-
}
|
|
26
|
-
return this.data;
|
|
27
|
-
}
|
|
28
|
-
constructor(data) {
|
|
29
|
-
this.data = data;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Serialize the event to be ready for publishing.
|
|
33
|
-
* Delegates payload resolution to toJSON() — override toJSON() to customize.
|
|
34
|
-
*
|
|
35
|
-
* @throws Error if toJSON() throws (e.g. no data provided)
|
|
36
|
-
*/
|
|
37
|
-
serialize() {
|
|
38
|
-
const payload = this.toJSON();
|
|
39
|
-
return {
|
|
40
|
-
payload,
|
|
41
|
-
metadata: this.metadata,
|
|
42
|
-
messageId: this.messageId ?? randomUUID(),
|
|
43
|
-
eventName: this.eventName,
|
|
44
|
-
version: this.version,
|
|
45
|
-
occurredAt: new Date(),
|
|
46
|
-
__through: "EventMessage",
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* A shorthand to define an event without declaring an entire class.
|
|
52
|
-
*
|
|
53
|
-
* This factory function creates an EventMessage subclass that transforms
|
|
54
|
-
* input data (IncomingData) into a different output format (OutgoingData).
|
|
55
|
-
*
|
|
56
|
-
* @template IncomingData - The type of data passed to the constructor
|
|
57
|
-
* @template OutgoingData - The type of data returned by toJSON()
|
|
58
|
-
*
|
|
59
|
-
* @example
|
|
60
|
-
* ```typescript
|
|
61
|
-
* const UserCreatedEvent = defineEvent<User, { id: number; name: string }>(
|
|
62
|
-
* "user.created",
|
|
63
|
-
* { toJSON: (user) => user.only(["id", "name"]) }
|
|
64
|
-
* );
|
|
65
|
-
*
|
|
66
|
-
* publishEvent(new UserCreatedEvent(user));
|
|
67
|
-
* ```
|
|
68
|
-
*/
|
|
69
|
-
function defineEvent(eventName, options = {}) {
|
|
70
|
-
// We need to use `any` here to bridge the IncomingData -> OutgoingData transformation
|
|
71
|
-
// The class accepts IncomingData in constructor but outputs OutgoingData via toJSON()
|
|
72
|
-
return class AnnouncedEvent extends EventMessage {
|
|
73
|
-
eventName = eventName;
|
|
74
|
-
schema = options.schema;
|
|
75
|
-
constructor(data) {
|
|
76
|
-
super(data);
|
|
77
|
-
}
|
|
78
|
-
toJSON() {
|
|
79
|
-
if (!options.toJSON)
|
|
80
|
-
return this.data;
|
|
81
|
-
return options.toJSON(this.data);
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
}export{EventMessage,defineEvent};//# sourceMappingURL=event-message.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-message.js","sources":["../../src/message-managers/event-message.ts"],"sourcesContent":[null],"names":[],"mappings":"sCAUsB,YAAY,CAAA;AAqCH,IAAA,IAAA,CAAA;AA/B7B;;AAEG;AACI,IAAA,OAAO,CAAU;AAExB;;AAEG;AACI,IAAA,QAAQ,CAAuB;AAEtC;;AAEG;AACI,IAAA,SAAS,CAAU;AAE1B;;AAEG;AACI,IAAA,MAAM,CAAmB;AAEhC;;AAEG;IACI,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,CAAA,8BAAA,EAAiC,IAAI,CAAC,SAAS,CAAE,CAAA,CAAC,CAAC;AACpE,SAAA;QAED,OAAO,IAAI,CAAC,IAAgB,CAAC;KAC9B;AAED,IAAA,WAAA,CAA6B,IAAe,EAAA;QAAf,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;KAAI;AAEhD;;;;;AAKG;IACI,SAAS,GAAA;AACd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE9B,OAAO;YACL,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE;YACzC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,IAAI,EAAE;AACtB,YAAA,SAAS,EAAE,cAAc;SAC1B,CAAC;KACH;AACF,CAAA;AAuBD;;;;;;;;;;;;;;;;;;AAkBG;SACa,WAAW,CACzB,SAAiB,EACjB,UAAsC,EAAE,EAAA;;;IAIxC,OAAO,MAAM,cAAe,SAAQ,YAA0B,CAAA;QACrD,SAAS,GAAG,SAAS,CAAC;AACtB,QAAA,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AAE/B,QAAA,WAAA,CAAmB,IAAmB,EAAA;YACpC,KAAK,CAAC,IAAW,CAAC,CAAC;SACpB;QAEM,MAAM,GAAA;YACX,IAAI,CAAC,OAAO,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC,IAAoB,CAAC;YAEtD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAoB,CAAiB,CAAC;SAClE;KACF,CAAC;AACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/message-managers/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { MessageHandler } from "./../types";
|
|
2
|
-
import { EventConsumerClass } from "./types";
|
|
3
|
-
export declare function prepareConsumerSubscription(Consumer: EventConsumerClass, onError?: (error: unknown, consumerName: string) => void): MessageHandler<any>;
|
|
4
|
-
//# sourceMappingURL=prepare-consumer-subscription.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-consumer-subscription.d.ts","sourceRoot":"","sources":["../../src/message-managers/prepare-consumer-subscription.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,uBA4CzD"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
function prepareConsumerSubscription(Consumer, onError) {
|
|
2
|
-
const callback = async (message, ctx) => {
|
|
3
|
-
const envelope = message.payload;
|
|
4
|
-
let eventPayload = envelope.payload;
|
|
5
|
-
if (envelope.version) {
|
|
6
|
-
if (!Consumer.isAcceptedVersion(Number(envelope.version))) {
|
|
7
|
-
ctx.ack(); // Acknowledge but don't process
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
const consumer = new Consumer();
|
|
12
|
-
if (consumer.schema) {
|
|
13
|
-
const result = await consumer.validate(eventPayload);
|
|
14
|
-
if (!result || result.isValid === false) {
|
|
15
|
-
ctx.nack();
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
eventPayload = result.data;
|
|
19
|
-
}
|
|
20
|
-
try {
|
|
21
|
-
await consumer.handle(eventPayload, {
|
|
22
|
-
payload: eventPayload,
|
|
23
|
-
eventName: Consumer.eventName,
|
|
24
|
-
messageId: message.metadata.messageId,
|
|
25
|
-
occurredAt: envelope.occurredAt ? new Date(envelope.occurredAt) : undefined,
|
|
26
|
-
metadata: envelope.metadata,
|
|
27
|
-
version: envelope.version,
|
|
28
|
-
message,
|
|
29
|
-
});
|
|
30
|
-
ctx.ack(); // Auto-ack on success?
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
ctx.nack(true); // Requeue on failure
|
|
34
|
-
if (onError) {
|
|
35
|
-
onError(error, Consumer.eventName);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
return callback;
|
|
40
|
-
}export{prepareConsumerSubscription};//# sourceMappingURL=prepare-consumer-subscription.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-consumer-subscription.js","sources":["../../src/message-managers/prepare-consumer-subscription.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGgB,SAAA,2BAA2B,CACzC,QAA4B,EAC5B,OAAwD,EAAA;IAExD,MAAM,QAAQ,GAAwB,OAAO,OAAO,EAAE,GAAG,KAAI;AAC3D,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;AACjC,QAAA,IAAI,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC;QAEpC,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE;AACzD,gBAAA,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;AACR,aAAA;AACF,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAEhC,IAAI,QAAQ,CAAC,MAAM,EAAE;YACnB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE;gBACvC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACX,OAAO;AACR,aAAA;AAED,YAAA,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;AAC5B,SAAA;QACD,IAAI;AACF,YAAA,MAAM,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE;AAClC,gBAAA,OAAO,EAAE,YAAY;gBACrB,SAAS,EAAE,QAAQ,CAAC,SAAS;AAC7B,gBAAA,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAU;AACtC,gBAAA,UAAU,EAAE,QAAQ,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS;gBAC3E,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,OAAO;AACR,aAAA,CAAC,CAAC;AACH,YAAA,GAAG,CAAC,GAAG,EAAE,CAAC;AACX,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,YAAA,IAAI,OAAO,EAAE;AACX,gBAAA,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;AACpC,aAAA;AACF,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,OAAO,QAAQ,CAAC;AAClB"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Message } from "../types";
|
|
2
|
-
import { type EventConsumer } from "./event-consumer";
|
|
3
|
-
export type ConsumedEventMessage = {
|
|
4
|
-
version?: number;
|
|
5
|
-
occurredAt?: Date;
|
|
6
|
-
metadata?: Record<string, any>;
|
|
7
|
-
messageId: string;
|
|
8
|
-
eventName: string;
|
|
9
|
-
payload: Record<string, any>;
|
|
10
|
-
message: Message<any>;
|
|
11
|
-
};
|
|
12
|
-
export type EventConsumerClass<P = Record<string, any>> = {
|
|
13
|
-
new (): EventConsumer<P>;
|
|
14
|
-
eventName: string;
|
|
15
|
-
consumerId: string;
|
|
16
|
-
minVersion?: number;
|
|
17
|
-
maxVersion?: number;
|
|
18
|
-
isAcceptedVersion(version: number): boolean;
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/message-managers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI;IACxD,QAAQ,aAAa,CAAC,CAAC,CAAC,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CAC7C,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { BaseValidator } from "@warlock.js/seal";
|
|
2
|
-
import type { DeadLetterOptions } from "./subscribe.types";
|
|
3
|
-
export type ChannelOptions<TPayload = unknown> = {
|
|
4
|
-
type?: "queue" | "topic" | "fanout";
|
|
5
|
-
durable?: boolean;
|
|
6
|
-
autoDelete?: boolean;
|
|
7
|
-
exclusive?: boolean;
|
|
8
|
-
deadLetter?: DeadLetterOptions;
|
|
9
|
-
maxMessageSize?: number;
|
|
10
|
-
messageTtl?: number;
|
|
11
|
-
maxLength?: number;
|
|
12
|
-
schema?: BaseValidator;
|
|
13
|
-
};
|
|
14
|
-
export type ChannelStats = {
|
|
15
|
-
messageCount: number;
|
|
16
|
-
consumerCount: number;
|
|
17
|
-
name: string;
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=channel.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channel.types.d.ts","sourceRoot":"","sources":["../../src/types/channel.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,MAAM,cAAc,CAAC,QAAQ,GAAG,OAAO,IAAI;IAC/C,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
export type BaseConnectionOptions = {
|
|
3
|
-
name?: string;
|
|
4
|
-
isDefault?: boolean;
|
|
5
|
-
};
|
|
6
|
-
export type RabbitMQSocketOptions = {
|
|
7
|
-
keepAlive?: boolean | number;
|
|
8
|
-
noDelay?: boolean;
|
|
9
|
-
timeout?: number;
|
|
10
|
-
ca?: string | Buffer | Array<string | Buffer>;
|
|
11
|
-
cert?: string | Buffer;
|
|
12
|
-
key?: string | Buffer;
|
|
13
|
-
passphrase?: string;
|
|
14
|
-
servername?: string;
|
|
15
|
-
rejectUnauthorized?: boolean;
|
|
16
|
-
};
|
|
17
|
-
export type RabbitMQClientOptions = {
|
|
18
|
-
frameMax?: number;
|
|
19
|
-
channelMax?: number;
|
|
20
|
-
locale?: string;
|
|
21
|
-
socket?: RabbitMQSocketOptions;
|
|
22
|
-
};
|
|
23
|
-
export type RabbitMQConnectionOptions<TClientOptions extends RabbitMQClientOptions = RabbitMQClientOptions> = BaseConnectionOptions & {
|
|
24
|
-
driver: "rabbitmq";
|
|
25
|
-
host?: string;
|
|
26
|
-
port?: number;
|
|
27
|
-
username?: string;
|
|
28
|
-
password?: string;
|
|
29
|
-
vhost?: string;
|
|
30
|
-
uri?: string;
|
|
31
|
-
heartbeat?: number;
|
|
32
|
-
connectionTimeout?: number;
|
|
33
|
-
reconnect?: boolean;
|
|
34
|
-
reconnectDelay?: number;
|
|
35
|
-
prefetch?: number;
|
|
36
|
-
clientOptions?: TClientOptions;
|
|
37
|
-
};
|
|
38
|
-
export type KafkaClientOptions = {
|
|
39
|
-
retry?: {
|
|
40
|
-
initialRetryTime?: number;
|
|
41
|
-
retries?: number;
|
|
42
|
-
maxRetryTime?: number;
|
|
43
|
-
factor?: number;
|
|
44
|
-
multiplier?: number;
|
|
45
|
-
};
|
|
46
|
-
logLevel?: number;
|
|
47
|
-
logCreator?: any;
|
|
48
|
-
};
|
|
49
|
-
export type KafkaConnectionOptions<TClientOptions extends KafkaClientOptions = KafkaClientOptions> = BaseConnectionOptions & {
|
|
50
|
-
driver: "kafka";
|
|
51
|
-
brokers: string[];
|
|
52
|
-
clientId?: string;
|
|
53
|
-
connectionTimeout?: number;
|
|
54
|
-
requestTimeout?: number;
|
|
55
|
-
ssl?: boolean | object;
|
|
56
|
-
sasl?: {
|
|
57
|
-
mechanism: "plain" | "scram-sha-256" | "scram-sha-512";
|
|
58
|
-
username: string;
|
|
59
|
-
password: string;
|
|
60
|
-
};
|
|
61
|
-
clientOptions?: TClientOptions;
|
|
62
|
-
};
|
|
63
|
-
export type ConnectionOptions = RabbitMQConnectionOptions | KafkaConnectionOptions;
|
|
64
|
-
export type BrokerConfigurations<TClientOptions = any> = RabbitMQConnectionOptions<TClientOptions extends RabbitMQClientOptions ? TClientOptions : RabbitMQClientOptions> | KafkaConnectionOptions<TClientOptions extends KafkaClientOptions ? TClientOptions : KafkaClientOptions>;
|
|
65
|
-
//# sourceMappingURL=connection.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection.types.d.ts","sourceRoot":"","sources":["../../src/types/connection.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export type BrokerDriverType = "rabbitmq" | "kafka" | "redis-streams" | "sqs";
|
|
2
|
-
export type BrokerEvent = "connected" | "disconnected" | "error" | "reconnecting";
|
|
3
|
-
export type BrokerEventListener = (...args: unknown[]) => void;
|
|
4
|
-
export type HealthCheckResult = {
|
|
5
|
-
healthy: boolean;
|
|
6
|
-
latency?: number;
|
|
7
|
-
error?: string;
|
|
8
|
-
details?: Record<string, unknown>;
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=driver.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"driver.types.d.ts","sourceRoot":"","sources":["../../src/types/driver.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,eAAe,GAAG,KAAK,CAAC;AAE9E,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,GAAG,cAAc,CAAC;AAElF,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAE/D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC"}
|
package/esm/types/index.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from "./channel.types";
|
|
2
|
-
export * from "./connection.types";
|
|
3
|
-
export * from "./driver.types";
|
|
4
|
-
export * from "./message.types";
|
|
5
|
-
export * from "./publish.types";
|
|
6
|
-
export * from "./registry.types";
|
|
7
|
-
export * from "./subscribe.types";
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
package/esm/types/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
export type MessageMetadata = {
|
|
2
|
-
messageId: string;
|
|
3
|
-
correlationId?: string;
|
|
4
|
-
replyTo?: string;
|
|
5
|
-
priority?: number;
|
|
6
|
-
timestamp: Date;
|
|
7
|
-
headers?: Record<string, string>;
|
|
8
|
-
retryCount?: number;
|
|
9
|
-
originalChannel?: string;
|
|
10
|
-
};
|
|
11
|
-
export type Message<TPayload = unknown> = {
|
|
12
|
-
readonly metadata: MessageMetadata;
|
|
13
|
-
readonly payload: TPayload;
|
|
14
|
-
readonly raw?: unknown;
|
|
15
|
-
};
|
|
16
|
-
export type MessageContext = {
|
|
17
|
-
ack(): Promise<void>;
|
|
18
|
-
nack(requeue?: boolean): Promise<void>;
|
|
19
|
-
reject(): Promise<void>;
|
|
20
|
-
reply<T>(payload: T): Promise<void>;
|
|
21
|
-
retry(delay?: number): Promise<void>;
|
|
22
|
-
};
|
|
23
|
-
export type Subscription = {
|
|
24
|
-
readonly id: string;
|
|
25
|
-
readonly channel: string;
|
|
26
|
-
readonly consumerTag?: string;
|
|
27
|
-
unsubscribe(): Promise<void>;
|
|
28
|
-
pause(): Promise<void>;
|
|
29
|
-
resume(): Promise<void>;
|
|
30
|
-
isActive(): boolean;
|
|
31
|
-
};
|
|
32
|
-
export type MessageHandler<TPayload = unknown> = (message: Message<TPayload>, ctx: MessageContext) => Promise<void> | void;
|
|
33
|
-
export type ResponseHandler<TPayload = unknown, TResponse = unknown> = (message: Message<TPayload>, ctx: MessageContext) => Promise<TResponse> | TResponse;
|
|
34
|
-
//# sourceMappingURL=message.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message.types.d.ts","sourceRoot":"","sources":["../../src/types/message.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,QAAQ,GAAG,OAAO,IAAI;IACxC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,QAAQ,IAAI,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,QAAQ,GAAG,OAAO,IAAI,CAC/C,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1B,MAAM,MAAM,eAAe,CAAC,QAAQ,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,IAAI,CACrE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC1B,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export type PublishOptions = {
|
|
2
|
-
priority?: number;
|
|
3
|
-
ttl?: number;
|
|
4
|
-
delay?: number;
|
|
5
|
-
headers?: Record<string, string>;
|
|
6
|
-
persistent?: boolean;
|
|
7
|
-
correlationId?: string;
|
|
8
|
-
expiration?: number;
|
|
9
|
-
};
|
|
10
|
-
export type RequestOptions = PublishOptions & {
|
|
11
|
-
timeout?: number;
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=publish.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"publish.types.d.ts","sourceRoot":"","sources":["../../src/types/publish.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.types.d.ts","sourceRoot":"","sources":["../../src/types/registry.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAC3B,YAAY,GACZ,oBAAoB,GACpB,WAAW,GACX,cAAc,CAAC;AAEnB,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export type RetryOptions = {
|
|
2
|
-
maxRetries: number;
|
|
3
|
-
delay: number | ((attempt: number) => number);
|
|
4
|
-
};
|
|
5
|
-
export type DeadLetterOptions = {
|
|
6
|
-
channel: string;
|
|
7
|
-
preserveOriginal?: boolean;
|
|
8
|
-
};
|
|
9
|
-
export type SubscribeOptions = {
|
|
10
|
-
consumerId?: string;
|
|
11
|
-
group?: string;
|
|
12
|
-
prefetch?: number;
|
|
13
|
-
autoAck?: boolean;
|
|
14
|
-
retry?: RetryOptions;
|
|
15
|
-
deadLetter?: DeadLetterOptions;
|
|
16
|
-
exclusive?: boolean;
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=subscribe.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subscribe.types.d.ts","sourceRoot":"","sources":["../../src/types/subscribe.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connect-to-broker.d.ts","sourceRoot":"","sources":["../../src/utils/connect-to-broker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAwB,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAA6B,MAAM,UAAU,CAAC;AAE7F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+CjF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,QAAQ,GAAG,OAAO,EAC9C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GACjC,eAAe,CAAC,QAAQ,CAAC,CAE3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAE/F;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACpE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,uBAGvC"}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import {brokerRegistry}from'../communicators/broker-registry.js';/**
|
|
2
|
-
* Connect to a message broker and register it.
|
|
3
|
-
*
|
|
4
|
-
* This is a high-level utility function that simplifies connection setup
|
|
5
|
-
* for most projects. It handles driver instantiation, connection,
|
|
6
|
-
* broker creation, and automatic registration.
|
|
7
|
-
*
|
|
8
|
-
* **Supported Drivers:**
|
|
9
|
-
* - `rabbitmq` (default) - RabbitMQ/AMQP driver
|
|
10
|
-
* - `kafka` - Apache Kafka driver (coming soon)
|
|
11
|
-
*
|
|
12
|
-
* @param options - Connection configuration options
|
|
13
|
-
* @returns A connected and registered Broker instance
|
|
14
|
-
* @throws {Error} If connection fails or driver is not implemented
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* // RabbitMQ connection
|
|
19
|
-
* const broker = await connectToBroker({
|
|
20
|
-
* driver: "rabbitmq",
|
|
21
|
-
* host: "localhost",
|
|
22
|
-
* port: 5672,
|
|
23
|
-
* username: "guest",
|
|
24
|
-
* password: "guest",
|
|
25
|
-
* });
|
|
26
|
-
*
|
|
27
|
-
* // Use the broker
|
|
28
|
-
* await broker.channel("user.created").publish({ userId: 1 });
|
|
29
|
-
* ```
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```typescript
|
|
33
|
-
* // Multiple brokers
|
|
34
|
-
* await connectToBroker({
|
|
35
|
-
* driver: "rabbitmq",
|
|
36
|
-
* name: "notifications",
|
|
37
|
-
* isDefault: true,
|
|
38
|
-
* host: process.env.RABBITMQ_HOST,
|
|
39
|
-
* });
|
|
40
|
-
*
|
|
41
|
-
* await connectToBroker({
|
|
42
|
-
* driver: "rabbitmq",
|
|
43
|
-
* name: "analytics",
|
|
44
|
-
* host: process.env.ANALYTICS_RABBITMQ_HOST,
|
|
45
|
-
* });
|
|
46
|
-
*
|
|
47
|
-
* // Use default broker
|
|
48
|
-
* herald().channel("notifications").publish({ ... });
|
|
49
|
-
*
|
|
50
|
-
* // Use specific broker
|
|
51
|
-
* herald("analytics").channel("events").publish({ ... });
|
|
52
|
-
* ```
|
|
53
|
-
*/
|
|
54
|
-
async function connectToBroker(options) {
|
|
55
|
-
// Default values
|
|
56
|
-
const driverType = options.driver ?? "rabbitmq";
|
|
57
|
-
const brokerName = options.name ?? "default";
|
|
58
|
-
const isDefault = options.isDefault ?? true;
|
|
59
|
-
// Create driver based on type
|
|
60
|
-
let driver;
|
|
61
|
-
switch (driverType) {
|
|
62
|
-
case "rabbitmq": {
|
|
63
|
-
const rabbitOptions = options;
|
|
64
|
-
// Dynamic import to avoid requiring amqplib if not used
|
|
65
|
-
const { RabbitMQDriver } = await import('../drivers/rabbitmq/rabbitmq-driver.js');
|
|
66
|
-
driver = new RabbitMQDriver(rabbitOptions);
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
case "kafka": {
|
|
70
|
-
// const kafkaOptions = options as KafkaConnectionOptions;
|
|
71
|
-
// Dynamic import to avoid requiring kafkajs if not used
|
|
72
|
-
throw new Error("Kafka driver is not yet implemented. Coming soon! For now, please use RabbitMQ.");
|
|
73
|
-
}
|
|
74
|
-
default:
|
|
75
|
-
throw new Error(`Unknown driver: "${driverType}". Supported drivers: rabbitmq, kafka`);
|
|
76
|
-
}
|
|
77
|
-
// Create broker
|
|
78
|
-
const broker = brokerRegistry.register({
|
|
79
|
-
name: brokerName,
|
|
80
|
-
driver,
|
|
81
|
-
isDefault,
|
|
82
|
-
});
|
|
83
|
-
// Connect to the message broker
|
|
84
|
-
try {
|
|
85
|
-
await driver.connect();
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
throw new Error(`Failed to connect to ${driverType}: ${error instanceof Error ? error.message : String(error)}`);
|
|
89
|
-
}
|
|
90
|
-
return broker;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Get a broker by name or the default one.
|
|
94
|
-
*
|
|
95
|
-
* This is the main entry point for using brokers in your application.
|
|
96
|
-
* Named after the package — `herald()` carries your messages!
|
|
97
|
-
*
|
|
98
|
-
* @param name - Optional broker name (uses default if not provided)
|
|
99
|
-
* @returns Broker instance
|
|
100
|
-
* @throws MissingBrokerError if broker not found
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
* // Get default broker
|
|
104
|
-
* const channel = herald().channel("user.created");
|
|
105
|
-
* await channel.publish({ userId: 1 });
|
|
106
|
-
*
|
|
107
|
-
* // Get specific broker
|
|
108
|
-
* const analyticsChannel = herald("analytics").channel("events");
|
|
109
|
-
* await analyticsChannel.publish({ event: "page_view" });
|
|
110
|
-
*
|
|
111
|
-
* // Subscribe to messages
|
|
112
|
-
* herald()
|
|
113
|
-
* .channel<UserPayload>("user.created")
|
|
114
|
-
* .subscribe(async (message, ctx) => {
|
|
115
|
-
* console.log("User created:", message.payload);
|
|
116
|
-
* await ctx.ack();
|
|
117
|
-
* });
|
|
118
|
-
* ```
|
|
119
|
-
*/
|
|
120
|
-
function herald(name) {
|
|
121
|
-
return brokerRegistry.get(name);
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Get channel instance for the given name from default broker.
|
|
125
|
-
*
|
|
126
|
-
* Shorthand for `herald().channel(name, options)`.
|
|
127
|
-
*
|
|
128
|
-
* @param name - Channel name
|
|
129
|
-
* @param options - Optional channel options
|
|
130
|
-
* @returns Channel instance
|
|
131
|
-
* @throws MissingBrokerError if broker not found
|
|
132
|
-
*
|
|
133
|
-
* @example
|
|
134
|
-
* ```typescript
|
|
135
|
-
* const channel = heraldChannel("user.created");
|
|
136
|
-
* await channel.publish({ userId: 1 });
|
|
137
|
-
* ```
|
|
138
|
-
*/
|
|
139
|
-
function heraldChannel(name, options) {
|
|
140
|
-
return herald().channel(name, options);
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Publish an EventMessage to the default broker.
|
|
144
|
-
*
|
|
145
|
-
* @param event - Event message to publish
|
|
146
|
-
* @returns Promise that resolves when the event is published
|
|
147
|
-
* @throws Error if the broker is not connected
|
|
148
|
-
*
|
|
149
|
-
* @example
|
|
150
|
-
* ```typescript
|
|
151
|
-
* await publishEvent(new UserUpdatedEvent({ id: 1, name: "John Doe" }));
|
|
152
|
-
* ```
|
|
153
|
-
*/
|
|
154
|
-
async function publishEvent(event) {
|
|
155
|
-
return herald().publish(event);
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Subscribe an EventConsumer class to the default broker.
|
|
159
|
-
*
|
|
160
|
-
* @param Consumer - Event consumer class
|
|
161
|
-
* @returns Unsubscribe function
|
|
162
|
-
* @throws MissingBrokerError if broker not found
|
|
163
|
-
*
|
|
164
|
-
* @example
|
|
165
|
-
* ```typescript
|
|
166
|
-
* await subscribeConsumer(UserUpdatedConsumer);
|
|
167
|
-
* ```
|
|
168
|
-
*/
|
|
169
|
-
async function subscribeConsumer(Consumer) {
|
|
170
|
-
return herald().subscribe(Consumer);
|
|
171
|
-
}export{connectToBroker,herald,heraldChannel,publishEvent,subscribeConsumer};//# sourceMappingURL=connect-to-broker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connect-to-broker.js","sources":["../../src/utils/connect-to-broker.ts"],"sourcesContent":[null],"names":[],"mappings":"iEAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDG;AACI,eAAe,eAAe,CAAC,OAA0B,EAAA;;AAE9D,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;AAChD,IAAA,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;AAC7C,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;;AAG5C,IAAA,IAAI,MAA4B,CAAC;AAEjC,IAAA,QAAQ,UAAU;QAChB,KAAK,UAAU,EAAE;YACf,MAAM,aAAa,GAAG,OAAoC,CAAC;;YAE3D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,OAAO,wCAAqC,CAAC,CAAC;AAC/E,YAAA,MAAM,GAAG,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;YAC3C,MAAM;AACP,SAAA;QAED,KAAK,OAAO,EAAE;;;AAGZ,YAAA,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;AACH,SAAA;AAED,QAAA;AACE,YAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,CAAA,qCAAA,CAAuC,CAAC,CAAC;AAC1F,KAAA;;AAGD,IAAA,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC;AACrC,QAAA,IAAI,EAAE,UAAU;QAChB,MAAM;QACN,SAAS;AACV,KAAA,CAAC,CAAC;;IAGH,IAAI;AACF,QAAA,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;AACxB,KAAA;AAAC,IAAA,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CACb,CAAwB,qBAAA,EAAA,UAAU,KAAK,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAE,CAAA,CAChG,CAAC;AACH,KAAA;AAED,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACG,SAAU,MAAM,CAAC,IAAa,EAAA;AAClC,IAAA,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;;;;;AAeG;AACa,SAAA,aAAa,CAC3B,IAAY,EACZ,OAAkC,EAAA;IAElC,OAAO,MAAM,EAAE,CAAC,OAAO,CAAW,IAAI,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;AAWG;AACI,eAAe,YAAY,CAAiC,KAA6B,EAAA;AAC9F,IAAA,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;AAWG;AACI,eAAe,iBAAiB,CACrC,QAAsC,EAAA;AAEtC,IAAA,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtC"}
|
package/esm/utils/index.d.ts
DELETED
package/esm/utils/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|