@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.
Files changed (236) hide show
  1. package/README.md +36 -33
  2. package/cjs/index.cjs +1355 -0
  3. package/cjs/index.cjs.map +1 -0
  4. package/esm/communicators/broker-registry.d.mts +157 -0
  5. package/esm/communicators/broker-registry.d.mts.map +1 -0
  6. package/esm/communicators/broker-registry.mjs +204 -0
  7. package/esm/communicators/broker-registry.mjs.map +1 -0
  8. package/esm/communicators/broker.d.mts +104 -0
  9. package/esm/communicators/broker.d.mts.map +1 -0
  10. package/esm/communicators/broker.mjs +104 -0
  11. package/esm/communicators/broker.mjs.map +1 -0
  12. package/esm/communicators/index.d.mts +2 -0
  13. package/esm/communicators/index.mjs +4 -0
  14. package/esm/contracts/broker-driver.contract.d.mts +200 -0
  15. package/esm/contracts/broker-driver.contract.d.mts.map +1 -0
  16. package/esm/contracts/channel.contract.d.mts +197 -0
  17. package/esm/contracts/channel.contract.d.mts.map +1 -0
  18. package/esm/contracts/index.d.mts +2 -0
  19. package/esm/decorators/consumable.d.mts +17 -0
  20. package/esm/decorators/consumable.d.mts.map +1 -0
  21. package/esm/decorators/consumable.mjs +36 -0
  22. package/esm/decorators/consumable.mjs.map +1 -0
  23. package/esm/decorators/index.d.mts +1 -0
  24. package/esm/decorators/index.mjs +3 -0
  25. package/esm/drivers/index.d.mts +2 -0
  26. package/esm/drivers/index.mjs +5 -0
  27. package/esm/drivers/rabbitmq/index.d.mts +2 -0
  28. package/esm/drivers/rabbitmq/index.mjs +4 -0
  29. package/esm/drivers/rabbitmq/rabbitmq-channel.d.mts +85 -0
  30. package/esm/drivers/rabbitmq/rabbitmq-channel.d.mts.map +1 -0
  31. package/esm/drivers/rabbitmq/rabbitmq-channel.mjs +352 -0
  32. package/esm/drivers/rabbitmq/rabbitmq-channel.mjs.map +1 -0
  33. package/esm/drivers/rabbitmq/rabbitmq-driver.d.mts +130 -0
  34. package/esm/drivers/rabbitmq/rabbitmq-driver.d.mts.map +1 -0
  35. package/esm/drivers/rabbitmq/rabbitmq-driver.mjs +291 -0
  36. package/esm/drivers/rabbitmq/rabbitmq-driver.mjs.map +1 -0
  37. package/esm/index.d.mts +20 -0
  38. package/esm/index.mjs +16 -0
  39. package/esm/message-managers/event-consumer.d.mts +61 -0
  40. package/esm/message-managers/event-consumer.d.mts.map +1 -0
  41. package/esm/message-managers/event-consumer.mjs +63 -0
  42. package/esm/message-managers/event-consumer.mjs.map +1 -0
  43. package/esm/message-managers/event-message.d.mts +87 -0
  44. package/esm/message-managers/event-message.d.mts.map +1 -0
  45. package/esm/message-managers/event-message.mjs +68 -0
  46. package/esm/message-managers/event-message.mjs.map +1 -0
  47. package/esm/message-managers/index.d.mts +3 -0
  48. package/esm/message-managers/index.mjs +4 -0
  49. package/esm/message-managers/prepare-consumer-subscription.mjs +42 -0
  50. package/esm/message-managers/prepare-consumer-subscription.mjs.map +1 -0
  51. package/esm/message-managers/types.d.mts +23 -0
  52. package/esm/message-managers/types.d.mts.map +1 -0
  53. package/esm/types/channel.types.d.mts +23 -0
  54. package/esm/types/channel.types.d.mts.map +1 -0
  55. package/esm/types/connection.types.d.mts +67 -0
  56. package/esm/types/connection.types.d.mts.map +1 -0
  57. package/esm/types/driver.types.d.mts +13 -0
  58. package/esm/types/driver.types.d.mts.map +1 -0
  59. package/esm/types/index.d.mts +7 -0
  60. package/esm/types/message.types.d.mts +37 -0
  61. package/esm/types/message.types.d.mts.map +1 -0
  62. package/esm/types/publish.types.d.mts +16 -0
  63. package/esm/types/publish.types.d.mts.map +1 -0
  64. package/esm/types/registry.types.d.mts +8 -0
  65. package/esm/types/registry.types.d.mts.map +1 -0
  66. package/esm/types/subscribe.types.d.mts +21 -0
  67. package/esm/types/subscribe.types.d.mts.map +1 -0
  68. package/esm/use-case-broadcast.d.mts +41 -0
  69. package/esm/use-case-broadcast.d.mts.map +1 -0
  70. package/esm/use-case-broadcast.mjs +30 -0
  71. package/esm/use-case-broadcast.mjs.map +1 -0
  72. package/esm/utils/{connect-to-broker.d.ts → connect-to-broker.d.mts} +15 -10
  73. package/esm/utils/connect-to-broker.d.mts.map +1 -0
  74. package/esm/utils/connect-to-broker.mjs +168 -0
  75. package/esm/utils/connect-to-broker.mjs.map +1 -0
  76. package/esm/utils/index.d.mts +1 -0
  77. package/esm/utils/index.mjs +3 -0
  78. package/llms-full.txt +581 -0
  79. package/llms.txt +12 -0
  80. package/package.json +46 -46
  81. package/skills/README.md +21 -0
  82. package/skills/consume-message/SKILL.md +217 -0
  83. package/skills/herald-basics/SKILL.md +96 -0
  84. package/skills/publish-message/SKILL.md +172 -0
  85. package/skills/request-and-respond/SKILL.md +74 -0
  86. package/cjs/communicators/broker-registry.d.ts +0 -155
  87. package/cjs/communicators/broker-registry.d.ts.map +0 -1
  88. package/cjs/communicators/broker-registry.js +0 -206
  89. package/cjs/communicators/broker-registry.js.map +0 -1
  90. package/cjs/communicators/broker.d.ts +0 -100
  91. package/cjs/communicators/broker.d.ts.map +0 -1
  92. package/cjs/communicators/broker.js +0 -105
  93. package/cjs/communicators/broker.js.map +0 -1
  94. package/cjs/communicators/index.d.ts +0 -3
  95. package/cjs/communicators/index.d.ts.map +0 -1
  96. package/cjs/contracts/broker-driver.contract.d.ts +0 -196
  97. package/cjs/contracts/broker-driver.contract.d.ts.map +0 -1
  98. package/cjs/contracts/channel.contract.d.ts +0 -191
  99. package/cjs/contracts/channel.contract.d.ts.map +0 -1
  100. package/cjs/contracts/index.d.ts +0 -3
  101. package/cjs/contracts/index.d.ts.map +0 -1
  102. package/cjs/decorators/consumable.d.ts +0 -13
  103. package/cjs/decorators/consumable.d.ts.map +0 -1
  104. package/cjs/decorators/consumable.js +0 -33
  105. package/cjs/decorators/consumable.js.map +0 -1
  106. package/cjs/decorators/index.d.ts +0 -2
  107. package/cjs/decorators/index.d.ts.map +0 -1
  108. package/cjs/drivers/index.d.ts +0 -2
  109. package/cjs/drivers/index.d.ts.map +0 -1
  110. package/cjs/drivers/rabbitmq/index.d.ts +0 -3
  111. package/cjs/drivers/rabbitmq/index.d.ts.map +0 -1
  112. package/cjs/drivers/rabbitmq/rabbitmq-channel.d.ts +0 -79
  113. package/cjs/drivers/rabbitmq/rabbitmq-channel.d.ts.map +0 -1
  114. package/cjs/drivers/rabbitmq/rabbitmq-channel.js +0 -414
  115. package/cjs/drivers/rabbitmq/rabbitmq-channel.js.map +0 -1
  116. package/cjs/drivers/rabbitmq/rabbitmq-driver.d.ts +0 -124
  117. package/cjs/drivers/rabbitmq/rabbitmq-driver.d.ts.map +0 -1
  118. package/cjs/drivers/rabbitmq/rabbitmq-driver.js +0 -347
  119. package/cjs/drivers/rabbitmq/rabbitmq-driver.js.map +0 -1
  120. package/cjs/index.d.ts +0 -47
  121. package/cjs/index.d.ts.map +0 -1
  122. package/cjs/index.js +0 -1
  123. package/cjs/index.js.map +0 -1
  124. package/cjs/message-managers/event-consumer.d.ts +0 -64
  125. package/cjs/message-managers/event-consumer.d.ts.map +0 -1
  126. package/cjs/message-managers/event-consumer.js +0 -71
  127. package/cjs/message-managers/event-consumer.js.map +0 -1
  128. package/cjs/message-managers/event-message.d.ts +0 -90
  129. package/cjs/message-managers/event-message.d.ts.map +0 -1
  130. package/cjs/message-managers/event-message.js +0 -84
  131. package/cjs/message-managers/event-message.js.map +0 -1
  132. package/cjs/message-managers/index.d.ts +0 -4
  133. package/cjs/message-managers/index.d.ts.map +0 -1
  134. package/cjs/message-managers/prepare-consumer-subscription.d.ts +0 -4
  135. package/cjs/message-managers/prepare-consumer-subscription.d.ts.map +0 -1
  136. package/cjs/message-managers/prepare-consumer-subscription.js +0 -40
  137. package/cjs/message-managers/prepare-consumer-subscription.js.map +0 -1
  138. package/cjs/message-managers/types.d.ts +0 -20
  139. package/cjs/message-managers/types.d.ts.map +0 -1
  140. package/cjs/types/channel.types.d.ts +0 -19
  141. package/cjs/types/channel.types.d.ts.map +0 -1
  142. package/cjs/types/connection.types.d.ts +0 -65
  143. package/cjs/types/connection.types.d.ts.map +0 -1
  144. package/cjs/types/driver.types.d.ts +0 -10
  145. package/cjs/types/driver.types.d.ts.map +0 -1
  146. package/cjs/types/index.d.ts +0 -8
  147. package/cjs/types/index.d.ts.map +0 -1
  148. package/cjs/types/message.types.d.ts +0 -34
  149. package/cjs/types/message.types.d.ts.map +0 -1
  150. package/cjs/types/publish.types.d.ts +0 -13
  151. package/cjs/types/publish.types.d.ts.map +0 -1
  152. package/cjs/types/registry.types.d.ts +0 -4
  153. package/cjs/types/registry.types.d.ts.map +0 -1
  154. package/cjs/types/subscribe.types.d.ts +0 -18
  155. package/cjs/types/subscribe.types.d.ts.map +0 -1
  156. package/cjs/utils/connect-to-broker.d.ts +0 -131
  157. package/cjs/utils/connect-to-broker.d.ts.map +0 -1
  158. package/cjs/utils/connect-to-broker.js +0 -171
  159. package/cjs/utils/connect-to-broker.js.map +0 -1
  160. package/cjs/utils/index.d.ts +0 -2
  161. package/cjs/utils/index.d.ts.map +0 -1
  162. package/esm/communicators/broker-registry.d.ts +0 -155
  163. package/esm/communicators/broker-registry.d.ts.map +0 -1
  164. package/esm/communicators/broker-registry.js +0 -206
  165. package/esm/communicators/broker-registry.js.map +0 -1
  166. package/esm/communicators/broker.d.ts +0 -100
  167. package/esm/communicators/broker.d.ts.map +0 -1
  168. package/esm/communicators/broker.js +0 -105
  169. package/esm/communicators/broker.js.map +0 -1
  170. package/esm/communicators/index.d.ts +0 -3
  171. package/esm/communicators/index.d.ts.map +0 -1
  172. package/esm/contracts/broker-driver.contract.d.ts +0 -196
  173. package/esm/contracts/broker-driver.contract.d.ts.map +0 -1
  174. package/esm/contracts/channel.contract.d.ts +0 -191
  175. package/esm/contracts/channel.contract.d.ts.map +0 -1
  176. package/esm/contracts/index.d.ts +0 -3
  177. package/esm/contracts/index.d.ts.map +0 -1
  178. package/esm/decorators/consumable.d.ts +0 -13
  179. package/esm/decorators/consumable.d.ts.map +0 -1
  180. package/esm/decorators/consumable.js +0 -33
  181. package/esm/decorators/consumable.js.map +0 -1
  182. package/esm/decorators/index.d.ts +0 -2
  183. package/esm/decorators/index.d.ts.map +0 -1
  184. package/esm/drivers/index.d.ts +0 -2
  185. package/esm/drivers/index.d.ts.map +0 -1
  186. package/esm/drivers/rabbitmq/index.d.ts +0 -3
  187. package/esm/drivers/rabbitmq/index.d.ts.map +0 -1
  188. package/esm/drivers/rabbitmq/rabbitmq-channel.d.ts +0 -79
  189. package/esm/drivers/rabbitmq/rabbitmq-channel.d.ts.map +0 -1
  190. package/esm/drivers/rabbitmq/rabbitmq-channel.js +0 -414
  191. package/esm/drivers/rabbitmq/rabbitmq-channel.js.map +0 -1
  192. package/esm/drivers/rabbitmq/rabbitmq-driver.d.ts +0 -124
  193. package/esm/drivers/rabbitmq/rabbitmq-driver.d.ts.map +0 -1
  194. package/esm/drivers/rabbitmq/rabbitmq-driver.js +0 -347
  195. package/esm/drivers/rabbitmq/rabbitmq-driver.js.map +0 -1
  196. package/esm/index.d.ts +0 -47
  197. package/esm/index.d.ts.map +0 -1
  198. package/esm/index.js +0 -1
  199. package/esm/index.js.map +0 -1
  200. package/esm/message-managers/event-consumer.d.ts +0 -64
  201. package/esm/message-managers/event-consumer.d.ts.map +0 -1
  202. package/esm/message-managers/event-consumer.js +0 -71
  203. package/esm/message-managers/event-consumer.js.map +0 -1
  204. package/esm/message-managers/event-message.d.ts +0 -90
  205. package/esm/message-managers/event-message.d.ts.map +0 -1
  206. package/esm/message-managers/event-message.js +0 -84
  207. package/esm/message-managers/event-message.js.map +0 -1
  208. package/esm/message-managers/index.d.ts +0 -4
  209. package/esm/message-managers/index.d.ts.map +0 -1
  210. package/esm/message-managers/prepare-consumer-subscription.d.ts +0 -4
  211. package/esm/message-managers/prepare-consumer-subscription.d.ts.map +0 -1
  212. package/esm/message-managers/prepare-consumer-subscription.js +0 -40
  213. package/esm/message-managers/prepare-consumer-subscription.js.map +0 -1
  214. package/esm/message-managers/types.d.ts +0 -20
  215. package/esm/message-managers/types.d.ts.map +0 -1
  216. package/esm/types/channel.types.d.ts +0 -19
  217. package/esm/types/channel.types.d.ts.map +0 -1
  218. package/esm/types/connection.types.d.ts +0 -65
  219. package/esm/types/connection.types.d.ts.map +0 -1
  220. package/esm/types/driver.types.d.ts +0 -10
  221. package/esm/types/driver.types.d.ts.map +0 -1
  222. package/esm/types/index.d.ts +0 -8
  223. package/esm/types/index.d.ts.map +0 -1
  224. package/esm/types/message.types.d.ts +0 -34
  225. package/esm/types/message.types.d.ts.map +0 -1
  226. package/esm/types/publish.types.d.ts +0 -13
  227. package/esm/types/publish.types.d.ts.map +0 -1
  228. package/esm/types/registry.types.d.ts +0 -4
  229. package/esm/types/registry.types.d.ts.map +0 -1
  230. package/esm/types/subscribe.types.d.ts +0 -18
  231. package/esm/types/subscribe.types.d.ts.map +0 -1
  232. package/esm/utils/connect-to-broker.d.ts.map +0 -1
  233. package/esm/utils/connect-to-broker.js +0 -171
  234. package/esm/utils/connect-to-broker.js.map +0 -1
  235. package/esm/utils/index.d.ts +0 -2
  236. 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,4 +0,0 @@
1
- export * from "./event-consumer";
2
- export * from "./event-message";
3
- export * from "./types";
4
- //# sourceMappingURL=index.d.ts.map
@@ -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":";AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,yBAAyB,CACnC,cAAc,SAAS,qBAAqB,GAAG,qBAAqB,IAClE,qBAAqB,GAAG;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE;QACN,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,IAC/F,qBAAqB,GAAG;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE;QACL,SAAS,EAAE,OAAO,GAAG,eAAe,GAAG,eAAe,CAAC;QACvD,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,aAAa,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAEJ,MAAM,MAAM,iBAAiB,GAAG,yBAAyB,GAAG,sBAAsB,CAAC;AAEnF,MAAM,MAAM,oBAAoB,CAAC,cAAc,GAAG,GAAG,IACjD,yBAAyB,CACvB,cAAc,SAAS,qBAAqB,GAAG,cAAc,GAAG,qBAAqB,CACtF,GACD,sBAAsB,CACpB,cAAc,SAAS,kBAAkB,GAAG,cAAc,GAAG,kBAAkB,CAChF,CAAC"}
@@ -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"}
@@ -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
@@ -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,4 +0,0 @@
1
- import type { Broker } from "../communicators/broker";
2
- export type BrokerRegistryEvent = "registered" | "default-registered" | "connected" | "disconnected";
3
- export type BrokerRegistryListener = (broker: Broker) => void;
4
- //# sourceMappingURL=registry.types.d.ts.map
@@ -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"}
@@ -1,2 +0,0 @@
1
- export * from "./connect-to-broker";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}