@warlock.js/herald 4.0.111 → 4.0.113

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/cjs/index.js CHANGED
@@ -1 +1 @@
1
- 'use strict';var communicator=require('./communicators/communicator.js'),communicatorRegistry=require('./communicators/communicator-registry.js'),rabbitmqDriver=require('./drivers/rabbitmq/rabbitmq-driver.js'),rabbitmqChannel=require('./drivers/rabbitmq/rabbitmq-channel.js'),connectToCommunicator=require('./utils/connect-to-communicator.js'),eventConsumer=require('./message-managers/event-consumer.js'),eventMessage=require('./message-managers/event-message.js'),consumable=require('./decorators/consumable.js');exports.Communicator=communicator.Communicator;exports.MissingCommunicatorError=communicatorRegistry.MissingCommunicatorError;exports.communicatorRegistry=communicatorRegistry.communicatorRegistry;exports.RabbitMQDriver=rabbitmqDriver.RabbitMQDriver;exports.RabbitMQChannel=rabbitmqChannel.RabbitMQChannel;exports.communicatorChannel=connectToCommunicator.communicatorChannel;exports.communicators=connectToCommunicator.communicators;exports.connectToCommunicator=connectToCommunicator.connectToCommunicator;exports.publishEvent=connectToCommunicator.publishEvent;exports.subscribeConsumer=connectToCommunicator.subscribeConsumer;exports.EventConsumer=eventConsumer.EventConsumer;exports.EventMessage=eventMessage.EventMessage;exports.Consumable=consumable.Consumable;exports.pendingSubscribers=consumable.pendingSubscribers;//# sourceMappingURL=index.js.map
1
+ 'use strict';var communicator=require('./communicators/communicator.js'),communicatorRegistry=require('./communicators/communicator-registry.js'),rabbitmqDriver=require('./drivers/rabbitmq/rabbitmq-driver.js'),rabbitmqChannel=require('./drivers/rabbitmq/rabbitmq-channel.js'),connectToCommunicator=require('./utils/connect-to-communicator.js'),eventConsumer=require('./message-managers/event-consumer.js'),eventMessage=require('./message-managers/event-message.js'),consumable=require('./decorators/consumable.js');exports.Communicator=communicator.Communicator;exports.MissingCommunicatorError=communicatorRegistry.MissingCommunicatorError;exports.communicatorRegistry=communicatorRegistry.communicatorRegistry;exports.RabbitMQDriver=rabbitmqDriver.RabbitMQDriver;exports.RabbitMQChannel=rabbitmqChannel.RabbitMQChannel;exports.communicatorChannel=connectToCommunicator.communicatorChannel;exports.communicators=connectToCommunicator.communicators;exports.connectToCommunicator=connectToCommunicator.connectToCommunicator;exports.publishEvent=connectToCommunicator.publishEvent;exports.subscribeConsumer=connectToCommunicator.subscribeConsumer;exports.EventConsumer=eventConsumer.EventConsumer;exports.defineConsumer=eventConsumer.defineConsumer;exports.EventMessage=eventMessage.EventMessage;exports.defineEvent=eventMessage.defineEvent;exports.Consumable=consumable.Consumable;exports.pendingSubscribers=consumable.pendingSubscribers;//# sourceMappingURL=index.js.map
@@ -5,7 +5,7 @@
5
5
  * It's highly recommended using it instead of declaring manual channel namd and subscribing to event
6
6
  */
7
7
  import { ValidationResult, type ObjectValidator } from "@warlock.js/seal";
8
- import { ConsumedEventMessage } from "./types";
8
+ import { ConsumedEventMessage, EventConsumerClass } from "./types";
9
9
  export declare abstract class EventConsumer<Payload = Record<string, any>> {
10
10
  /**
11
11
  * Event name
@@ -38,4 +38,22 @@ export declare abstract class EventConsumer<Payload = Record<string, any>> {
38
38
  */
39
39
  validate(data: Payload): Promise<ValidationResult | void>;
40
40
  }
41
+ /**
42
+ * Define Consumer options
43
+ */
44
+ type ConsumerOptions<Payload> = {
45
+ /**
46
+ * Payload validation to auto reject the received event before accessing it in the handle method
47
+ */
48
+ schema?: ObjectValidator;
49
+ /**
50
+ * Handle data
51
+ */
52
+ handle: (payload: Payload, event: ConsumedEventMessage) => Promise<void>;
53
+ };
54
+ /**
55
+ * A shorthand to define an event consumer without declaring an entire class
56
+ */
57
+ export declare function defineConsumer<Payload = Record<string, any>>(eventName: string, options: ConsumerOptions<Payload>): EventConsumerClass;
58
+ export {};
41
59
  //# sourceMappingURL=event-consumer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-consumer.d.ts","sourceRoot":"","sources":["../../src/message-managers/event-consumer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,8BAAsB,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC/D;;OAEG;IACH,OAAc,SAAS,EAAE,MAAM,CAAC;IAEhC,OAAc,UAAU,sDAAgB;IAExC,IAAW,SAAS,WAEnB;IAED;;OAEG;IACH,OAAc,UAAU,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,OAAc,UAAU,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACI,MAAM,CAAC,EAAE,eAAe,CAAC;IAEhC;;OAEG;aACa,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpF;;OAEG;WACW,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOzD;;OAEG;IACU,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAKvE"}
1
+ {"version":3,"file":"event-consumer.d.ts","sourceRoot":"","sources":["../../src/message-managers/event-consumer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG7E,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEnE,8BAAsB,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC/D;;OAEG;IACH,OAAc,SAAS,EAAE,MAAM,CAAC;IAEhC,OAAc,UAAU,sDAAgB;IAExC,IAAW,SAAS,WAEnB;IAED;;OAEG;IACH,OAAc,UAAU,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,OAAc,UAAU,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACI,MAAM,CAAC,EAAE,eAAe,CAAC;IAEhC;;OAEG;aACa,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpF;;OAEG;WACW,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOzD;;OAEG;IACU,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAKvE;AAED;;GAEG;AACH,KAAK,eAAe,CAAC,OAAO,IAAI;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1D,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,GAChC,kBAAkB,CAapB"}
@@ -1,4 +1,4 @@
1
- 'use strict';var seal=require('@warlock.js/seal'),crypto=require('crypto');/**
1
+ 'use strict';var seal=require('@warlock.js/seal'),crypto=require('crypto'),consumable=require('../decorators/consumable.js');/**
2
2
  * This class is used to be part of the Herald Event Consumer Manager.
3
3
  * It should be used to consume events from Either RabbitMQ or Kafka through Herald
4
4
  *
@@ -43,4 +43,18 @@ class EventConsumer {
43
43
  return;
44
44
  return await seal.v.validate(this.schema, data);
45
45
  }
46
- }exports.EventConsumer=EventConsumer;//# sourceMappingURL=event-consumer.js.map
46
+ }
47
+ /**
48
+ * A shorthand to define an event consumer without declaring an entire class
49
+ */
50
+ function defineConsumer(eventName, options) {
51
+ const Class = class AnnouncedConsumer extends EventConsumer {
52
+ static eventName = eventName;
53
+ schema = options.schema;
54
+ handle(payload, event) {
55
+ return options.handle(payload, event);
56
+ }
57
+ };
58
+ consumable.Consumable()(Class);
59
+ return Class;
60
+ }exports.EventConsumer=EventConsumer;exports.defineConsumer=defineConsumer;//# sourceMappingURL=event-consumer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-consumer.js","sources":["../../src/message-managers/event-consumer.ts"],"sourcesContent":[null],"names":["randomUUID","v"],"mappings":"2EAAA;;;;;AAKG;MAKmB,aAAa,CAAA;AACjC;;AAEG;IACI,OAAO,SAAS,CAAS;AAEzB,IAAA,OAAO,UAAU,GAAGA,iBAAU,EAAE,CAAC;AAExC,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAQ,IAAI,CAAC,WAAoC,CAAC,SAAS,CAAC;KAC7D;AAED;;AAEG;IACI,OAAO,UAAU,CAAU;AAElC;;AAEG;IACI,OAAO,UAAU,CAAU;AAElC;;AAEG;AACI,IAAA,MAAM,CAAmB;AAOhC;;AAEG;IACI,OAAO,iBAAiB,CAAC,OAAe,EAAA;QAC7C,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,KAAK,CAAC;QAC/D,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,KAAK,CAAC;AAE/D,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,QAAQ,CAAC,IAAa,EAAA;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,OAAO,MAAMC,MAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC5C;"}
1
+ {"version":3,"file":"event-consumer.js","sources":["../../src/message-managers/event-consumer.ts"],"sourcesContent":[null],"names":["randomUUID","v","Consumable"],"mappings":"6HAAA;;;;;AAKG;MAMmB,aAAa,CAAA;AACjC;;AAEG;IACI,OAAO,SAAS,CAAS;AAEzB,IAAA,OAAO,UAAU,GAAGA,iBAAU,EAAE,CAAC;AAExC,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAQ,IAAI,CAAC,WAAoC,CAAC,SAAS,CAAC;KAC7D;AAED;;AAEG;IACI,OAAO,UAAU,CAAU;AAElC;;AAEG;IACI,OAAO,UAAU,CAAU;AAElC;;AAEG;AACI,IAAA,MAAM,CAAmB;AAOhC;;AAEG;IACI,OAAO,iBAAiB,CAAC,OAAe,EAAA;QAC7C,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,KAAK,CAAC;QAC/D,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,KAAK,CAAC;AAE/D,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,QAAQ,CAAC,IAAa,EAAA;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,OAAO,MAAMC,MAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC5C;;AAiBH;;AAEG;AACa,SAAA,cAAc,CAC5B,SAAiB,EACjB,OAAiC,EAAA;AAEjC,IAAA,MAAM,KAAK,GAAG,MAAM,iBAAkB,SAAQ,aAAsB,CAAA;AAC3D,QAAA,OAAO,SAAS,GAAG,SAAS,CAAC;AAC7B,QAAA,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAExB,MAAM,CAAC,OAAgB,EAAE,KAA2B,EAAA;YACzD,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACvC;KACF,CAAC;AAEF,IAAAC,qBAAU,EAAE,CAAC,KAA2B,CAAC,CAAC;AAE1C,IAAA,OAAO,KAA2B,CAAC;AACrC"}
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * It's highly recommended using it instead of declaring manual channel namd and publishing data
6
6
  */
7
+ import { GenericObject } from "@mongez/reinforcements";
7
8
  import { type ObjectValidator } from "@warlock.js/seal";
8
9
  export declare abstract class EventMessage<TPayload = Record<string, any>> {
9
10
  protected data?: TPayload;
@@ -45,4 +46,42 @@ export declare abstract class EventMessage<TPayload = Record<string, any>> {
45
46
  __through: string;
46
47
  };
47
48
  }
49
+ type EventOptions<T> = {
50
+ /**
51
+ * Shapen the data that will be used
52
+ */
53
+ toJSON?: (data: T) => GenericObject;
54
+ /**
55
+ * Validation schema
56
+ */
57
+ schema?: ObjectValidator;
58
+ };
59
+ /**
60
+ * Represents an EventMessage class constructor.
61
+ *
62
+ * @template TIncoming - The type of data accepted by the constructor
63
+ * @template TOutgoing - The type of data returned by toJSON() (defaults to TIncoming)
64
+ */
65
+ type EventMessageClass<TIncoming = Record<string, any>, TOutgoing = TIncoming> = new (data?: TIncoming) => EventMessage<TOutgoing>;
66
+ /**
67
+ * A shorthand to define an event without declaring an entire class.
68
+ *
69
+ * This factory function creates an EventMessage subclass that transforms
70
+ * input data (IncomingData) into a different output format (OutcomingData).
71
+ *
72
+ * @template IncomingData - The type of data passed to the constructor
73
+ * @template OutcomingData - The type of data returned by toJSON()
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const UserCreatedEvent = defineEvent<User, { id: number; name: string }>(
78
+ * "user.created",
79
+ * { toJSON: (user) => user.only(["id", "name"]) }
80
+ * );
81
+ *
82
+ * publishEvent(new UserCreatedEvent(user));
83
+ * ```
84
+ */
85
+ export declare function defineEvent<IncomingData = unknown, OutcomingData = unknown>(eventName: string, options?: EventOptions<IncomingData>): EventMessageClass<IncomingData, OutcomingData>;
86
+ export {};
48
87
  //# sourceMappingURL=event-message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-message.d.ts","sourceRoot":"","sources":["../../src/message-managers/event-message.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,8BAAsB,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAiC5C,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ;IAhC5C;;OAEG;IACH,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtC;;OAEG;IACI,SAAS,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACI,MAAM,CAAC,EAAE,eAAe,CAAC;IAEhC;;OAEG;IACI,MAAM,IAAI,QAAQ;gBAII,IAAI,CAAC,EAAE,QAAQ;IAE5C;;OAEG;IACI,SAAS;;;;;;;;;CAiBjB"}
1
+ {"version":3,"file":"event-message.d.ts","sourceRoot":"","sources":["../../src/message-managers/event-message.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,8BAAsB,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAqC5C,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ;IApC5C;;OAEG;IACH,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtC;;OAEG;IACI,SAAS,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACI,MAAM,CAAC,EAAE,eAAe,CAAC;IAEhC;;OAEG;IACI,MAAM,IAAI,QAAQ;gBAQI,IAAI,CAAC,EAAE,QAAQ;IAE5C;;OAEG;IACI,SAAS;;;;;;;;;CAiBjB;AAED,KAAK,YAAY,CAAC,CAAC,IAAI;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,aAAa,CAAC;IACpC;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,KAAK,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,IAAI,KAC/E,IAAI,CAAC,EAAE,SAAS,KACb,YAAY,CAAC,SAAS,CAAC,CAAC;AAE7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,YAAY,GAAG,OAAO,EAAE,aAAa,GAAG,OAAO,EACzE,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAY,CAAC,YAAY,CAAM,GACvC,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAiBhD"}
@@ -20,6 +20,9 @@
20
20
  * Data that will be sent with the event (Payload)
21
21
  */
22
22
  toJSON() {
23
+ if (!this.data) {
24
+ throw new Error(`no Data is defined for Event: ${this.eventName}`);
25
+ }
23
26
  return this.data;
24
27
  }
25
28
  constructor(data) {
@@ -43,4 +46,39 @@
43
46
  __through: "EventMessage",
44
47
  };
45
48
  }
46
- }exports.EventMessage=EventMessage;//# sourceMappingURL=event-message.js.map
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 (OutcomingData).
55
+ *
56
+ * @template IncomingData - The type of data passed to the constructor
57
+ * @template OutcomingData - 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 -> OutcomingData transformation
71
+ // The class accepts IncomingData in constructor but outputs OutcomingData 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
+ }exports.EventMessage=EventMessage;exports.defineEvent=defineEvent;//# sourceMappingURL=event-message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-message.js","sources":["../../src/message-managers/event-message.ts"],"sourcesContent":[null],"names":["randomUUID"],"mappings":"gDASsB,YAAY,CAAA;AAiCH,IAAA,IAAA,CAAA;AA3B7B;;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;QACX,OAAO,IAAI,CAAC,IAAgB,CAAC;KAC9B;AAED,IAAA,WAAA,CAA6B,IAAe,EAAA;QAAf,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;KAAI;AAEhD;;AAEG;IACI,SAAS,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACtD,SAAA;AAED,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,IAAIA,iBAAU,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"}
1
+ {"version":3,"file":"event-message.js","sources":["../../src/message-managers/event-message.ts"],"sourcesContent":[null],"names":["randomUUID"],"mappings":"gDAUsB,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;;AAEG;IACI,SAAS,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACtD,SAAA;AAED,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,IAAIA,iBAAU,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,YAA2B,CAAA;QACtD,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,IAAqB,CAAC;YAEvD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAoB,CAAkB,CAAC;SACnE;KACF,CAAC;AACJ"}
package/esm/index.js CHANGED
@@ -1 +1 @@
1
- export{Communicator}from'./communicators/communicator.js';export{MissingCommunicatorError,communicatorRegistry}from'./communicators/communicator-registry.js';export{RabbitMQDriver}from'./drivers/rabbitmq/rabbitmq-driver.js';export{RabbitMQChannel}from'./drivers/rabbitmq/rabbitmq-channel.js';export{communicatorChannel,communicators,connectToCommunicator,publishEvent,subscribeConsumer}from'./utils/connect-to-communicator.js';export{EventConsumer}from'./message-managers/event-consumer.js';export{EventMessage}from'./message-managers/event-message.js';export{Consumable,pendingSubscribers}from'./decorators/consumable.js';//# sourceMappingURL=index.js.map
1
+ export{Communicator}from'./communicators/communicator.js';export{MissingCommunicatorError,communicatorRegistry}from'./communicators/communicator-registry.js';export{RabbitMQDriver}from'./drivers/rabbitmq/rabbitmq-driver.js';export{RabbitMQChannel}from'./drivers/rabbitmq/rabbitmq-channel.js';export{communicatorChannel,communicators,connectToCommunicator,publishEvent,subscribeConsumer}from'./utils/connect-to-communicator.js';export{EventConsumer,defineConsumer}from'./message-managers/event-consumer.js';export{EventMessage,defineEvent}from'./message-managers/event-message.js';export{Consumable,pendingSubscribers}from'./decorators/consumable.js';//# sourceMappingURL=index.js.map
@@ -5,7 +5,7 @@
5
5
  * It's highly recommended using it instead of declaring manual channel namd and subscribing to event
6
6
  */
7
7
  import { ValidationResult, type ObjectValidator } from "@warlock.js/seal";
8
- import { ConsumedEventMessage } from "./types";
8
+ import { ConsumedEventMessage, EventConsumerClass } from "./types";
9
9
  export declare abstract class EventConsumer<Payload = Record<string, any>> {
10
10
  /**
11
11
  * Event name
@@ -38,4 +38,22 @@ export declare abstract class EventConsumer<Payload = Record<string, any>> {
38
38
  */
39
39
  validate(data: Payload): Promise<ValidationResult | void>;
40
40
  }
41
+ /**
42
+ * Define Consumer options
43
+ */
44
+ type ConsumerOptions<Payload> = {
45
+ /**
46
+ * Payload validation to auto reject the received event before accessing it in the handle method
47
+ */
48
+ schema?: ObjectValidator;
49
+ /**
50
+ * Handle data
51
+ */
52
+ handle: (payload: Payload, event: ConsumedEventMessage) => Promise<void>;
53
+ };
54
+ /**
55
+ * A shorthand to define an event consumer without declaring an entire class
56
+ */
57
+ export declare function defineConsumer<Payload = Record<string, any>>(eventName: string, options: ConsumerOptions<Payload>): EventConsumerClass;
58
+ export {};
41
59
  //# sourceMappingURL=event-consumer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-consumer.d.ts","sourceRoot":"","sources":["../../src/message-managers/event-consumer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,8BAAsB,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC/D;;OAEG;IACH,OAAc,SAAS,EAAE,MAAM,CAAC;IAEhC,OAAc,UAAU,sDAAgB;IAExC,IAAW,SAAS,WAEnB;IAED;;OAEG;IACH,OAAc,UAAU,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,OAAc,UAAU,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACI,MAAM,CAAC,EAAE,eAAe,CAAC;IAEhC;;OAEG;aACa,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpF;;OAEG;WACW,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOzD;;OAEG;IACU,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAKvE"}
1
+ {"version":3,"file":"event-consumer.d.ts","sourceRoot":"","sources":["../../src/message-managers/event-consumer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG7E,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEnE,8BAAsB,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC/D;;OAEG;IACH,OAAc,SAAS,EAAE,MAAM,CAAC;IAEhC,OAAc,UAAU,sDAAgB;IAExC,IAAW,SAAS,WAEnB;IAED;;OAEG;IACH,OAAc,UAAU,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,OAAc,UAAU,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACI,MAAM,CAAC,EAAE,eAAe,CAAC;IAEhC;;OAEG;aACa,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpF;;OAEG;WACW,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOzD;;OAEG;IACU,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAKvE;AAED;;GAEG;AACH,KAAK,eAAe,CAAC,OAAO,IAAI;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1D,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,GAChC,kBAAkB,CAapB"}
@@ -1,4 +1,4 @@
1
- import {v}from'@warlock.js/seal';import {randomUUID}from'crypto';/**
1
+ import {v}from'@warlock.js/seal';import {randomUUID}from'crypto';import {Consumable}from'../decorators/consumable.js';/**
2
2
  * This class is used to be part of the Herald Event Consumer Manager.
3
3
  * It should be used to consume events from Either RabbitMQ or Kafka through Herald
4
4
  *
@@ -43,4 +43,18 @@ class EventConsumer {
43
43
  return;
44
44
  return await v.validate(this.schema, data);
45
45
  }
46
- }export{EventConsumer};//# sourceMappingURL=event-consumer.js.map
46
+ }
47
+ /**
48
+ * A shorthand to define an event consumer without declaring an entire class
49
+ */
50
+ function defineConsumer(eventName, options) {
51
+ const Class = class AnnouncedConsumer extends EventConsumer {
52
+ static eventName = eventName;
53
+ schema = options.schema;
54
+ handle(payload, event) {
55
+ return options.handle(payload, event);
56
+ }
57
+ };
58
+ Consumable()(Class);
59
+ return Class;
60
+ }export{EventConsumer,defineConsumer};//# sourceMappingURL=event-consumer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-consumer.js","sources":["../../src/message-managers/event-consumer.ts"],"sourcesContent":[null],"names":[],"mappings":"iEAAA;;;;;AAKG;MAKmB,aAAa,CAAA;AACjC;;AAEG;IACI,OAAO,SAAS,CAAS;AAEzB,IAAA,OAAO,UAAU,GAAG,UAAU,EAAE,CAAC;AAExC,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAQ,IAAI,CAAC,WAAoC,CAAC,SAAS,CAAC;KAC7D;AAED;;AAEG;IACI,OAAO,UAAU,CAAU;AAElC;;AAEG;IACI,OAAO,UAAU,CAAU;AAElC;;AAEG;AACI,IAAA,MAAM,CAAmB;AAOhC;;AAEG;IACI,OAAO,iBAAiB,CAAC,OAAe,EAAA;QAC7C,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,KAAK,CAAC;QAC/D,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,KAAK,CAAC;AAE/D,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,QAAQ,CAAC,IAAa,EAAA;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,OAAO,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC5C;"}
1
+ {"version":3,"file":"event-consumer.js","sources":["../../src/message-managers/event-consumer.ts"],"sourcesContent":[null],"names":[],"mappings":"sHAAA;;;;;AAKG;MAMmB,aAAa,CAAA;AACjC;;AAEG;IACI,OAAO,SAAS,CAAS;AAEzB,IAAA,OAAO,UAAU,GAAG,UAAU,EAAE,CAAC;AAExC,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAQ,IAAI,CAAC,WAAoC,CAAC,SAAS,CAAC;KAC7D;AAED;;AAEG;IACI,OAAO,UAAU,CAAU;AAElC;;AAEG;IACI,OAAO,UAAU,CAAU;AAElC;;AAEG;AACI,IAAA,MAAM,CAAmB;AAOhC;;AAEG;IACI,OAAO,iBAAiB,CAAC,OAAe,EAAA;QAC7C,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,KAAK,CAAC;QAC/D,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,KAAK,CAAC;AAE/D,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,QAAQ,CAAC,IAAa,EAAA;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,OAAO,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC5C;;AAiBH;;AAEG;AACa,SAAA,cAAc,CAC5B,SAAiB,EACjB,OAAiC,EAAA;AAEjC,IAAA,MAAM,KAAK,GAAG,MAAM,iBAAkB,SAAQ,aAAsB,CAAA;AAC3D,QAAA,OAAO,SAAS,GAAG,SAAS,CAAC;AAC7B,QAAA,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAExB,MAAM,CAAC,OAAgB,EAAE,KAA2B,EAAA;YACzD,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACvC;KACF,CAAC;AAEF,IAAA,UAAU,EAAE,CAAC,KAA2B,CAAC,CAAC;AAE1C,IAAA,OAAO,KAA2B,CAAC;AACrC"}
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * It's highly recommended using it instead of declaring manual channel namd and publishing data
6
6
  */
7
+ import { GenericObject } from "@mongez/reinforcements";
7
8
  import { type ObjectValidator } from "@warlock.js/seal";
8
9
  export declare abstract class EventMessage<TPayload = Record<string, any>> {
9
10
  protected data?: TPayload;
@@ -45,4 +46,42 @@ export declare abstract class EventMessage<TPayload = Record<string, any>> {
45
46
  __through: string;
46
47
  };
47
48
  }
49
+ type EventOptions<T> = {
50
+ /**
51
+ * Shapen the data that will be used
52
+ */
53
+ toJSON?: (data: T) => GenericObject;
54
+ /**
55
+ * Validation schema
56
+ */
57
+ schema?: ObjectValidator;
58
+ };
59
+ /**
60
+ * Represents an EventMessage class constructor.
61
+ *
62
+ * @template TIncoming - The type of data accepted by the constructor
63
+ * @template TOutgoing - The type of data returned by toJSON() (defaults to TIncoming)
64
+ */
65
+ type EventMessageClass<TIncoming = Record<string, any>, TOutgoing = TIncoming> = new (data?: TIncoming) => EventMessage<TOutgoing>;
66
+ /**
67
+ * A shorthand to define an event without declaring an entire class.
68
+ *
69
+ * This factory function creates an EventMessage subclass that transforms
70
+ * input data (IncomingData) into a different output format (OutcomingData).
71
+ *
72
+ * @template IncomingData - The type of data passed to the constructor
73
+ * @template OutcomingData - The type of data returned by toJSON()
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const UserCreatedEvent = defineEvent<User, { id: number; name: string }>(
78
+ * "user.created",
79
+ * { toJSON: (user) => user.only(["id", "name"]) }
80
+ * );
81
+ *
82
+ * publishEvent(new UserCreatedEvent(user));
83
+ * ```
84
+ */
85
+ export declare function defineEvent<IncomingData = unknown, OutcomingData = unknown>(eventName: string, options?: EventOptions<IncomingData>): EventMessageClass<IncomingData, OutcomingData>;
86
+ export {};
48
87
  //# sourceMappingURL=event-message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-message.d.ts","sourceRoot":"","sources":["../../src/message-managers/event-message.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,8BAAsB,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAiC5C,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ;IAhC5C;;OAEG;IACH,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtC;;OAEG;IACI,SAAS,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACI,MAAM,CAAC,EAAE,eAAe,CAAC;IAEhC;;OAEG;IACI,MAAM,IAAI,QAAQ;gBAII,IAAI,CAAC,EAAE,QAAQ;IAE5C;;OAEG;IACI,SAAS;;;;;;;;;CAiBjB"}
1
+ {"version":3,"file":"event-message.d.ts","sourceRoot":"","sources":["../../src/message-managers/event-message.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,8BAAsB,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAqC5C,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ;IApC5C;;OAEG;IACH,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtC;;OAEG;IACI,SAAS,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACI,MAAM,CAAC,EAAE,eAAe,CAAC;IAEhC;;OAEG;IACI,MAAM,IAAI,QAAQ;gBAQI,IAAI,CAAC,EAAE,QAAQ;IAE5C;;OAEG;IACI,SAAS;;;;;;;;;CAiBjB;AAED,KAAK,YAAY,CAAC,CAAC,IAAI;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,aAAa,CAAC;IACpC;;OAEG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,KAAK,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,GAAG,SAAS,IAAI,KAC/E,IAAI,CAAC,EAAE,SAAS,KACb,YAAY,CAAC,SAAS,CAAC,CAAC;AAE7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,YAAY,GAAG,OAAO,EAAE,aAAa,GAAG,OAAO,EACzE,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,YAAY,CAAC,YAAY,CAAM,GACvC,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAiBhD"}
@@ -20,6 +20,9 @@ import {randomUUID}from'crypto';class EventMessage {
20
20
  * Data that will be sent with the event (Payload)
21
21
  */
22
22
  toJSON() {
23
+ if (!this.data) {
24
+ throw new Error(`no Data is defined for Event: ${this.eventName}`);
25
+ }
23
26
  return this.data;
24
27
  }
25
28
  constructor(data) {
@@ -43,4 +46,39 @@ import {randomUUID}from'crypto';class EventMessage {
43
46
  __through: "EventMessage",
44
47
  };
45
48
  }
46
- }export{EventMessage};//# sourceMappingURL=event-message.js.map
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 (OutcomingData).
55
+ *
56
+ * @template IncomingData - The type of data passed to the constructor
57
+ * @template OutcomingData - 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 -> OutcomingData transformation
71
+ // The class accepts IncomingData in constructor but outputs OutcomingData 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 +1 @@
1
- {"version":3,"file":"event-message.js","sources":["../../src/message-managers/event-message.ts"],"sourcesContent":[null],"names":[],"mappings":"sCASsB,YAAY,CAAA;AAiCH,IAAA,IAAA,CAAA;AA3B7B;;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;QACX,OAAO,IAAI,CAAC,IAAgB,CAAC;KAC9B;AAED,IAAA,WAAA,CAA6B,IAAe,EAAA;QAAf,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;KAAI;AAEhD;;AAEG;IACI,SAAS,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACtD,SAAA;AAED,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"}
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;;AAEG;IACI,SAAS,GAAA;QACd,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACtD,SAAA;AAED,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,YAA2B,CAAA;QACtD,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,IAAqB,CAAC;YAEvD,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAoB,CAAkB,CAAC;SACnE;KACF,CAAC;AACJ"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@warlock.js/herald",
3
- "version": "4.0.111",
3
+ "version": "4.0.113",
4
4
  "description": "Message bus/communicators for RabbitMQ, Kafka, and more",
5
5
  "main": "./cjs/index.js",
6
6
  "dependencies": {
7
7
  "@mongez/copper": "^1.0.1",
8
8
  "@mongez/events": "^2.1.0",
9
9
  "@mongez/reinforcements": "^2.3.17",
10
- "@warlock.js/logger": "4.0.111",
11
- "@warlock.js/seal": "4.0.111"
10
+ "@warlock.js/logger": "4.0.113",
11
+ "@warlock.js/seal": "4.0.113"
12
12
  },
13
13
  "scripts": {
14
14
  "update": "npx ncu -u",