@message-queue-toolkit/core 12.1.0 → 13.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@ export { isMessageError, MessageValidationError, MessageInvalidFormatError, } fr
5
5
  export { isShallowSubset, objectMatches } from './lib/utils/matchUtils';
6
6
  export { RetryMessageLaterError } from './lib/errors/RetryMessageLaterError';
7
7
  export { DoNotProcessMessageError } from './lib/errors/DoNotProcessError';
8
- export { HandlerContainer, MessageHandlerConfig, MessageHandlerConfigBuilder, } from './lib/queues/HandlerContainer';
8
+ export { PrehandlerResult, HandlerContainer, MessageHandlerConfig, MessageHandlerConfigBuilder, } from './lib/queues/HandlerContainer';
9
9
  export type { BarrierCallback, BarrierResult, BarrierResultPositive, BarrierResultNegative, HandlerContainerOptions, Handler, Prehandler, PreHandlingOutputs, } from './lib/queues/HandlerContainer';
10
10
  export { HandlerSpy } from './lib/queues/HandlerSpy';
11
11
  export type { SpyResult, HandlerSpyParams, PublicHandlerSpy } from './lib/queues/HandlerSpy';
@@ -24,3 +24,4 @@ export * from './lib/events/eventTypes';
24
24
  export * from './lib/events/baseEventSchemas';
25
25
  export * from './lib/messages/baseMessageSchemas';
26
26
  export * from './lib/messages/MetadataFiller';
27
+ export * from './lib/queues/AbstractPublisherManager';
package/dist/index.js CHANGED
@@ -47,4 +47,5 @@ tslib_1.__exportStar(require("./lib/events/eventTypes"), exports);
47
47
  tslib_1.__exportStar(require("./lib/events/baseEventSchemas"), exports);
48
48
  tslib_1.__exportStar(require("./lib/messages/baseMessageSchemas"), exports);
49
49
  tslib_1.__exportStar(require("./lib/messages/MetadataFiller"), exports);
50
+ tslib_1.__exportStar(require("./lib/queues/AbstractPublisherManager"), exports);
50
51
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAWA,0EAAsF;AAA7E,4HAAA,oBAAoB,OAAA;AAC7B,wEAA6C;AAE7C,8CAI4B;AAH1B,wGAAA,cAAc,OAAA;AACd,gHAAA,sBAAsB,OAAA;AACtB,mHAAA,yBAAyB,OAAA;AAG3B,qDAAuE;AAA9D,6GAAA,eAAe,OAAA;AAAE,2GAAA,aAAa,OAAA;AAEvC,8EAA4E;AAAnE,gIAAA,sBAAsB,OAAA;AAE/B,oEAAyE;AAAhE,6HAAA,wBAAwB,OAAA;AAEjC,kEAIsC;AAHpC,oHAAA,gBAAgB,OAAA;AAChB,wHAAA,oBAAoB,OAAA;AACpB,+HAAA,2BAA2B,OAAA;AAY7B,sDAAoD;AAA3C,wGAAA,UAAU,OAAA;AAGnB,8EAA4E;AAAnE,gIAAA,sBAAsB,OAAA;AAG/B,qDAAuD;AAA9C,4GAAA,cAAc,OAAA;AACvB,mDAAoD;AAA3C,yGAAA,YAAY,OAAA;AACrB,qDAA8E;AAA5C,0GAAA,YAAY,OAAA;AAC9C,mDAA2D;AAAlD,gHAAA,mBAAmB,OAAA;AAC5B,+DAAgE;AAAvD,qHAAA,kBAAkB,OAAA;AAE3B,iDAAiE;AAAxD,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA;AAEnC,sEAAoE;AAA3D,wHAAA,kBAAkB,OAAA;AAC3B,4DAA0D;AAAjD,8GAAA,aAAa,OAAA;AACtB,gEAA8D;AAArD,4GAAA,YAAY,OAAA;AAErB,kEAAuC;AACvC,wEAA6C;AAC7C,4EAAiD;AAEjD,wEAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAWA,0EAAsF;AAA7E,4HAAA,oBAAoB,OAAA;AAC7B,wEAA6C;AAE7C,8CAI4B;AAH1B,wGAAA,cAAc,OAAA;AACd,gHAAA,sBAAsB,OAAA;AACtB,mHAAA,yBAAyB,OAAA;AAG3B,qDAAuE;AAA9D,6GAAA,eAAe,OAAA;AAAE,2GAAA,aAAa,OAAA;AAEvC,8EAA4E;AAAnE,gIAAA,sBAAsB,OAAA;AAE/B,oEAAyE;AAAhE,6HAAA,wBAAwB,OAAA;AAEjC,kEAKsC;AAHpC,oHAAA,gBAAgB,OAAA;AAChB,wHAAA,oBAAoB,OAAA;AACpB,+HAAA,2BAA2B,OAAA;AAY7B,sDAAoD;AAA3C,wGAAA,UAAU,OAAA;AAGnB,8EAA4E;AAAnE,gIAAA,sBAAsB,OAAA;AAG/B,qDAAuD;AAA9C,4GAAA,cAAc,OAAA;AACvB,mDAAoD;AAA3C,yGAAA,YAAY,OAAA;AACrB,qDAA8E;AAA5C,0GAAA,YAAY,OAAA;AAC9C,mDAA2D;AAAlD,gHAAA,mBAAmB,OAAA;AAC5B,+DAAgE;AAAvD,qHAAA,kBAAkB,OAAA;AAE3B,iDAAiE;AAAxD,wGAAA,YAAY,OAAA;AAAE,wGAAA,YAAY,OAAA;AAEnC,sEAAoE;AAA3D,wHAAA,kBAAkB,OAAA;AAC3B,4DAA0D;AAAjD,8GAAA,aAAa,OAAA;AACtB,gEAA8D;AAArD,4GAAA,YAAY,OAAA;AAErB,kEAAuC;AACvC,wEAA6C;AAC7C,4EAAiD;AAEjD,wEAA6C;AAE7C,gFAAqD"}
@@ -10,7 +10,7 @@ class DomainEventEmitter {
10
10
  this.eventRegistry = eventRegistry;
11
11
  }
12
12
  async emit(supportedEvent, data) {
13
- const eventTypeName = supportedEvent.schema.shape.type.value;
13
+ const eventTypeName = supportedEvent.consumerSchema.shape.type.value;
14
14
  if (!this.eventRegistry.isSupportedEvent(eventTypeName)) {
15
15
  throw new node_core_1.InternalError({
16
16
  errorCode: 'UNKNOWN_EVENT',
@@ -24,7 +24,7 @@ class DomainEventEmitter {
24
24
  }
25
25
  const validatedEvent = this.eventRegistry
26
26
  .getEventDefinitionByTypeName(eventTypeName)
27
- .schema.parse({
27
+ .consumerSchema.parse({
28
28
  type: eventTypeName,
29
29
  ...data,
30
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DomainEventEmitter.js","sourceRoot":"","sources":["../../../lib/events/DomainEventEmitter.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AAYnD,MAAa,kBAAkB;IACZ,aAAa,CAAgC;IAE7C,eAAe,GAG5B,EAAE,CAAA;IACW,WAAW,GAAuC,EAAE,CAAA;IAErE,YAAY,EAAE,aAAa,EAAqD;QAC9E,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,cAA8B,EAC9B,IAAmE;QAEnE,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAA;QAE5D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,yBAAa,CAAC;gBACtB,SAAS,EAAE,eAAe;gBAC1B,OAAO,EAAE,iBAAiB,aAAa,EAAE;aAC1C,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;QAEzD,8DAA8D;QAC9D,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,OAAM;QACR,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa;aACtC,4BAA4B,CAAC,aAAa,CAAC;aAC3C,MAAM,CAAC,KAAK,CAAC;YACZ,IAAI,EAAE,aAAa;YACnB,GAAG,IAAI;SACR,CAAC,CAAA;QAEJ,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,EAAE,CACP,aAA4B,EAC5B,OAA2D;QAE3D,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACI,MAAM,CACX,cAA+B,EAC/B,OAA2D;QAE3D,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAyC;QACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;IAEO,YAAY,CAClB,aAAsD,EACtD,OAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,EAAE,CAAA;QAC1C,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;CACF;AA1FD,gDA0FC"}
1
+ {"version":3,"file":"DomainEventEmitter.js","sourceRoot":"","sources":["../../../lib/events/DomainEventEmitter.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AAYnD,MAAa,kBAAkB;IACZ,aAAa,CAAgC;IAE7C,eAAe,GAG5B,EAAE,CAAA;IACW,WAAW,GAAuC,EAAE,CAAA;IAErE,YAAY,EAAE,aAAa,EAAqD;QAC9E,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,cAA8B,EAC9B,IAAmE;QAEnE,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAA;QAEpE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,yBAAa,CAAC;gBACtB,SAAS,EAAE,eAAe;gBAC1B,OAAO,EAAE,iBAAiB,aAAa,EAAE;aAC1C,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;QAEzD,8DAA8D;QAC9D,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpD,OAAM;QACR,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa;aACtC,4BAA4B,CAAC,aAAa,CAAC;aAC3C,cAAc,CAAC,KAAK,CAAC;YACpB,IAAI,EAAE,aAAa;YACnB,GAAG,IAAI;SACR,CAAC,CAAA;QAEJ,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,EAAE,CACP,aAA4B,EAC5B,OAA2D;QAE3D,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;IAED;;OAEG;IACI,MAAM,CACX,cAA+B,EAC/B,OAA2D;QAE3D,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAyC;QACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;IAEO,YAAY,CAClB,aAAsD,EACtD,OAAqB;QAErB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,EAAE,CAAA;QAC1C,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACnD,CAAC;CACF;AA1FD,gDA0FC"}
@@ -9,8 +9,8 @@ class EventRegistry {
9
9
  this.supportedEvents = supportedEvents;
10
10
  this.supportedEventsSet = new Set();
11
11
  for (const supportedEvent of supportedEvents) {
12
- this.supportedEventMap[supportedEvent.schema.shape.type.value] = supportedEvent;
13
- this.supportedEventsSet.add(supportedEvent.schema.shape.type.value);
12
+ this.supportedEventMap[supportedEvent.consumerSchema.shape.type.value] = supportedEvent;
13
+ this.supportedEventsSet.add(supportedEvent.consumerSchema.shape.type.value);
14
14
  }
15
15
  }
16
16
  getEventDefinitionByTypeName = (eventTypeName) => {
@@ -1 +1 @@
1
- {"version":3,"file":"EventRegistry.js","sourceRoot":"","sources":["../../../lib/events/EventRegistry.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IACR,eAAe,CAAiB;IAC/B,kBAAkB,CAAa;IAC/B,iBAAiB,GAA0C,EAAE,CAAA;IAE9E,YAAY,eAAgC;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAA;QAE3C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,cAAc,CAAA;YAC/E,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAEM,4BAA4B,GAAG,CAGpC,aAA4B,EACL,EAAE;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAC9C,CAAC,CAAA;IAEM,gBAAgB,CAAC,aAAqB;QAC3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACnD,CAAC;CACF;AA1BD,sCA0BC"}
1
+ {"version":3,"file":"EventRegistry.js","sourceRoot":"","sources":["../../../lib/events/EventRegistry.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IACR,eAAe,CAAiB;IAC/B,kBAAkB,CAAa;IAC/B,iBAAiB,GAA0C,EAAE,CAAA;IAE9E,YAAY,eAAgC;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAA;QAE3C,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,cAAc,CAAA;YACvF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;IAEM,4BAA4B,GAAG,CAGpC,aAA4B,EACL,EAAE;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAC9C,CAAC,CAAA;IAEM,gBAAgB,CAAC,aAAqB;QAC3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACnD,CAAC;CACF;AA1BD,sCA0BC"}
@@ -1,12 +1,45 @@
1
- import { z } from 'zod';
2
- export declare const BASE_EVENT_SCHEMA: z.ZodObject<{
3
- id: z.ZodString;
4
- timestamp: z.ZodString;
5
- type: z.ZodLiteral<string>;
6
- payload: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
1
+ import type { ZodLiteral, ZodObject, ZodOptional, ZodString } from 'zod';
2
+ import z from 'zod';
3
+ import type { ZodRawShape } from 'zod/lib/types';
4
+ export declare const GENERATED_BASE_EVENT_SCHEMA: ZodObject<{
5
+ id: ZodString;
6
+ timestamp: ZodString;
7
7
  }, "strip", z.ZodTypeAny, {
8
8
  id: string;
9
9
  timestamp: string;
10
+ }, {
11
+ id: string;
12
+ timestamp: string;
13
+ }>;
14
+ export declare const OPTIONAL_GENERATED_BASE_EVENT_SCHEMA: ZodObject<{
15
+ id: ZodOptional<ZodString>;
16
+ timestamp: ZodOptional<ZodString>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ id?: string | undefined;
19
+ timestamp?: string | undefined;
20
+ }, {
21
+ id?: string | undefined;
22
+ timestamp?: string | undefined;
23
+ }>;
24
+ export declare const CORE_EVENT_SCHEMA: ZodObject<{
25
+ type: ZodLiteral<string>;
26
+ payload: ZodOptional<ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ type: string;
29
+ payload?: {} | undefined;
30
+ }, {
31
+ type: string;
32
+ payload?: {} | undefined;
33
+ }>;
34
+ export declare const CONSUMER_BASE_EVENT_SCHEMA: ZodObject<z.objectUtil.extendShape<{
35
+ id: ZodString;
36
+ timestamp: ZodString;
37
+ }, {
38
+ type: ZodLiteral<string>;
39
+ payload: ZodOptional<ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
40
+ }>, "strip", z.ZodTypeAny, {
41
+ id: string;
42
+ timestamp: string;
10
43
  type: string;
11
44
  payload?: {} | undefined;
12
45
  }, {
@@ -15,4 +48,40 @@ export declare const BASE_EVENT_SCHEMA: z.ZodObject<{
15
48
  type: string;
16
49
  payload?: {} | undefined;
17
50
  }>;
18
- export type BaseEventType = z.infer<typeof BASE_EVENT_SCHEMA>;
51
+ export declare const PUBLISHER_BASE_EVENT_SCHEMA: ZodObject<z.objectUtil.extendShape<{
52
+ id: ZodOptional<ZodString>;
53
+ timestamp: ZodOptional<ZodString>;
54
+ }, {
55
+ type: ZodLiteral<string>;
56
+ payload: ZodOptional<ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
57
+ }>, "strip", z.ZodTypeAny, {
58
+ type: string;
59
+ id?: string | undefined;
60
+ timestamp?: string | undefined;
61
+ payload?: {} | undefined;
62
+ }, {
63
+ type: string;
64
+ id?: string | undefined;
65
+ timestamp?: string | undefined;
66
+ payload?: {} | undefined;
67
+ }>;
68
+ export type ConsumerBaseEventType = z.infer<typeof CONSUMER_BASE_EVENT_SCHEMA>;
69
+ export type PublisherBaseEventType = z.infer<typeof PUBLISHER_BASE_EVENT_SCHEMA>;
70
+ export type CoreEventType = z.infer<typeof CORE_EVENT_SCHEMA>;
71
+ export type GeneratedBaseEventType = z.infer<typeof GENERATED_BASE_EVENT_SCHEMA>;
72
+ type ReturnType<T extends ZodObject<Y>, Y extends ZodRawShape, Z extends string> = {
73
+ consumerSchema: ZodObject<{
74
+ id: ZodString;
75
+ timestamp: ZodString;
76
+ type: ZodLiteral<Z>;
77
+ payload: T;
78
+ }>;
79
+ publisherSchema: ZodObject<{
80
+ id: ZodOptional<ZodString>;
81
+ timestamp: ZodOptional<ZodString>;
82
+ type: ZodLiteral<Z>;
83
+ payload: T;
84
+ }>;
85
+ };
86
+ export declare function enrichEventSchemaWithBase<T extends ZodObject<Y>, Y extends ZodRawShape, Z extends string>(type: Z, payloadSchema: T): ReturnType<T, Y, Z>;
87
+ export {};
@@ -1,12 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BASE_EVENT_SCHEMA = void 0;
4
- const zod_1 = require("zod");
5
- // Core fields that describe either internal event or external message
6
- exports.BASE_EVENT_SCHEMA = zod_1.z.object({
7
- id: zod_1.z.string().describe('event unique identifier'),
8
- timestamp: zod_1.z.string().datetime().describe('iso 8601 datetime'),
9
- type: zod_1.z.literal('<replace.me>').describe('event type name'),
10
- payload: zod_1.z.optional(zod_1.z.object({})).describe('event payload based on type'),
3
+ exports.enrichEventSchemaWithBase = exports.PUBLISHER_BASE_EVENT_SCHEMA = exports.CONSUMER_BASE_EVENT_SCHEMA = exports.CORE_EVENT_SCHEMA = exports.OPTIONAL_GENERATED_BASE_EVENT_SCHEMA = exports.GENERATED_BASE_EVENT_SCHEMA = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const zod_1 = tslib_1.__importDefault(require("zod"));
6
+ // Base event fields that are typically autogenerated
7
+ exports.GENERATED_BASE_EVENT_SCHEMA = zod_1.default.object({
8
+ id: zod_1.default.string().describe('event unique identifier'),
9
+ timestamp: zod_1.default.string().datetime().describe('iso 8601 datetime'),
10
+ });
11
+ // Base event fields that are typically autogenerated, marked as optional
12
+ exports.OPTIONAL_GENERATED_BASE_EVENT_SCHEMA = zod_1.default.object({
13
+ id: zod_1.default.string().describe('event unique identifier').optional(),
14
+ timestamp: zod_1.default.string().datetime().describe('iso 8601 datetime').optional(),
11
15
  });
16
+ // Base event fields that are always defined manually
17
+ exports.CORE_EVENT_SCHEMA = zod_1.default.object({
18
+ type: zod_1.default.literal('<replace.me>').describe('event type name'),
19
+ payload: zod_1.default.optional(zod_1.default.object({})).describe('event payload based on type'),
20
+ });
21
+ // Core fields that describe either internal event or external message
22
+ exports.CONSUMER_BASE_EVENT_SCHEMA = exports.GENERATED_BASE_EVENT_SCHEMA.extend(exports.CORE_EVENT_SCHEMA.shape);
23
+ exports.PUBLISHER_BASE_EVENT_SCHEMA = exports.OPTIONAL_GENERATED_BASE_EVENT_SCHEMA.extend(exports.CORE_EVENT_SCHEMA.shape);
24
+ function enrichEventSchemaWithBase(type, payloadSchema) {
25
+ const baseSchema = zod_1.default.object({
26
+ type: zod_1.default.literal(type),
27
+ payload: payloadSchema,
28
+ });
29
+ const consumerSchema = exports.GENERATED_BASE_EVENT_SCHEMA.merge(baseSchema);
30
+ const publisherSchema = exports.OPTIONAL_GENERATED_BASE_EVENT_SCHEMA.merge(baseSchema);
31
+ return {
32
+ consumerSchema: consumerSchema,
33
+ publisherSchema: publisherSchema,
34
+ };
35
+ }
36
+ exports.enrichEventSchemaWithBase = enrichEventSchemaWithBase;
12
37
  //# sourceMappingURL=baseEventSchemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseEventSchemas.js","sourceRoot":"","sources":["../../../lib/events/baseEventSchemas.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,sEAAsE;AACzD,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAClD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC9D,IAAI,EAAE,OAAC,CAAC,OAAO,CAAS,cAAc,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnE,OAAO,EAAE,OAAC,CAAC,QAAQ,CAAC,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CAC1E,CAAC,CAAA"}
1
+ {"version":3,"file":"baseEventSchemas.js","sourceRoot":"","sources":["../../../lib/events/baseEventSchemas.ts"],"names":[],"mappings":";;;;AACA,sDAAmB;AAGnB,qDAAqD;AACxC,QAAA,2BAA2B,GAAG,aAAC,CAAC,MAAM,CAAC;IAClD,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IAClD,SAAS,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CAC/D,CAAC,CAAA;AAEF,yEAAyE;AAC5D,QAAA,oCAAoC,GAAG,aAAC,CAAC,MAAM,CAAC;IAC3D,EAAE,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE;IAC7D,SAAS,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;CAC1E,CAAC,CAAA;AAEF,qDAAqD;AACxC,QAAA,iBAAiB,GAAG,aAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,aAAC,CAAC,OAAO,CAAS,cAAc,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IACnE,OAAO,EAAE,aAAC,CAAC,QAAQ,CAAC,aAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CAC1E,CAAC,CAAA;AAEF,sEAAsE;AACzD,QAAA,0BAA0B,GAAG,mCAA2B,CAAC,MAAM,CAC1E,yBAAiB,CAAC,KAAK,CACxB,CAAA;AACY,QAAA,2BAA2B,GAAG,4CAAoC,CAAC,MAAM,CACpF,yBAAiB,CAAC,KAAK,CACxB,CAAA;AAuBD,SAAgB,yBAAyB,CAIvC,IAAO,EAAE,aAAgB;IACzB,MAAM,UAAU,GAAG,aAAC,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACrB,OAAO,EAAE,aAAa;KACvB,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,mCAA2B,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACpE,MAAM,eAAe,GAAG,4CAAoC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAE9E,OAAO;QACL,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE,eAAe;KACjC,CAAA;AACH,CAAC;AAjBD,8DAiBC"}
@@ -1,14 +1,17 @@
1
1
  import type { ZodObject, ZodTypeAny } from 'zod';
2
2
  import type z from 'zod';
3
- import type { BASE_EVENT_SCHEMA } from './baseEventSchemas';
3
+ import type { CONSUMER_BASE_EVENT_SCHEMA, PUBLISHER_BASE_EVENT_SCHEMA } from './baseEventSchemas';
4
4
  export type EventTypeNames<EventDefinition extends CommonEventDefinition> = CommonEventDefinitionSchemaType<EventDefinition>['type'];
5
5
  export type CommonEventDefinition = {
6
- schema: ZodObject<Omit<(typeof BASE_EVENT_SCHEMA)['shape'], 'payload'> & {
6
+ consumerSchema: ZodObject<Omit<(typeof CONSUMER_BASE_EVENT_SCHEMA)['shape'], 'payload'> & {
7
+ payload: ZodTypeAny;
8
+ }>;
9
+ publisherSchema: ZodObject<Omit<(typeof PUBLISHER_BASE_EVENT_SCHEMA)['shape'], 'payload'> & {
7
10
  payload: ZodTypeAny;
8
11
  }>;
9
12
  schemaVersion?: string;
10
13
  };
11
- export type CommonEventDefinitionSchemaType<T extends CommonEventDefinition> = z.infer<T['schema']>;
14
+ export type CommonEventDefinitionSchemaType<T extends CommonEventDefinition> = z.infer<T['consumerSchema']>;
12
15
  export type EventHandler<EventDefinitionSchema extends CommonEventDefinitionSchemaType<CommonEventDefinition> = CommonEventDefinitionSchemaType<CommonEventDefinition>> = {
13
16
  handleEvent(event: EventDefinitionSchema): void | Promise<void>;
14
17
  };
@@ -1,6 +1,6 @@
1
1
  import type { AnyEventHandler, CommonEventDefinition } from '../eventTypes';
2
2
  export declare class FakeListener<SupportedEvents extends CommonEventDefinition[]> implements AnyEventHandler<SupportedEvents> {
3
- receivedEvents: SupportedEvents[number]['schema']['_output'][];
3
+ receivedEvents: SupportedEvents[number]['consumerSchema']['_output'][];
4
4
  constructor(_supportedEvents: SupportedEvents);
5
- handleEvent(event: SupportedEvents[number]['schema']['_output']): void | Promise<void>;
5
+ handleEvent(event: SupportedEvents[number]['consumerSchema']['_output']): void | Promise<void>;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FakeListener.js","sourceRoot":"","sources":["../../../../lib/events/fakes/FakeListener.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IAGhB,cAAc,GAAmD,EAAE,CAAA;IAE1E,YAAY,gBAAiC;QAC3C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;IAC1B,CAAC;IAED,WAAW,CAAC,KAAmD;QAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;CACF;AAZD,oCAYC"}
1
+ {"version":3,"file":"FakeListener.js","sourceRoot":"","sources":["../../../../lib/events/fakes/FakeListener.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IAGhB,cAAc,GAA2D,EAAE,CAAA;IAElF,YAAY,gBAAiC;QAC3C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;IAC1B,CAAC;IAED,WAAW,CAAC,KAA2D;QACrE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;CACF;AAZD,oCAYC"}
@@ -1,4 +1,4 @@
1
- import type { BaseEventType } from '../events/baseEventSchemas';
1
+ import type { PublisherBaseEventType } from '../events/baseEventSchemas';
2
2
  import type { CommonEventDefinition } from '../events/eventTypes';
3
3
  import type { MessageMetadataType } from './baseMessageSchemas';
4
4
  export type IdGenerator = () => string;
@@ -10,7 +10,7 @@ export type MetadataFillerOptions = {
10
10
  timestampGenerator?: TimestampGenerator;
11
11
  defaultVersion?: string;
12
12
  };
13
- export type MetadataFiller<T extends BaseEventType = BaseEventType, D = CommonEventDefinition, M = MessageMetadataType> = {
13
+ export type MetadataFiller<T extends PublisherBaseEventType = PublisherBaseEventType, D = CommonEventDefinition, M = MessageMetadataType> = {
14
14
  produceMetadata(currentMessage: T, eventDefinition: D, precedingMessageMetadata?: M): M;
15
15
  produceId(): string;
16
16
  produceTimestamp(): string;
@@ -21,5 +21,5 @@ export declare class CommonMetadataFiller implements MetadataFiller {
21
21
  readonly produceTimestamp: TimestampGenerator;
22
22
  private readonly defaultVersion;
23
23
  constructor(options: MetadataFillerOptions);
24
- produceMetadata(_currentMessage: BaseEventType, eventDefinition: CommonEventDefinition, precedingMessageMetadata?: MessageMetadataType): MessageMetadataType;
24
+ produceMetadata(_currentMessage: PublisherBaseEventType, eventDefinition: CommonEventDefinition, precedingMessageMetadata?: MessageMetadataType): MessageMetadataType;
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataFiller.js","sourceRoot":"","sources":["../../../lib/messages/MetadataFiller.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AA4BxC,MAAa,oBAAoB;IACd,SAAS,CAAQ;IAClB,SAAS,CAAa;IACtB,gBAAgB,CAAoB;IACnC,cAAc,CAAQ;IAEvC,YAAY,OAA8B;QACxC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,OAAO,CAAA;QACvD,IAAI,CAAC,SAAS;YACZ,OAAO,CAAC,WAAW;gBACnB,CAAC,GAAG,EAAE;oBACJ,OAAO,IAAA,wBAAU,GAAE,CAAA;gBACrB,CAAC,CAAC,CAAA;QACJ,IAAI,CAAC,gBAAgB;YACnB,OAAO,CAAC,kBAAkB;gBAC1B,CAAC,GAAG,EAAE;oBACJ,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;gBACjC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,eAAe,CACb,eAA8B,EAC9B,eAAsC,EACtC,wBAA8C;QAE9C,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,cAAc,EAAE,wBAAwB,EAAE,cAAc,IAAI,IAAI,CAAC,SAAS;YAC1E,aAAa,EAAE,eAAe,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc;YACnE,aAAa,EAAE,wBAAwB,EAAE,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;SAC3E,CAAA;IACH,CAAC;CACF;AAjCD,oDAiCC"}
1
+ {"version":3,"file":"MetadataFiller.js","sourceRoot":"","sources":["../../../lib/messages/MetadataFiller.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AA4BxC,MAAa,oBAAoB;IACd,SAAS,CAAQ;IAClB,SAAS,CAAa;IACtB,gBAAgB,CAAoB;IACnC,cAAc,CAAQ;IAEvC,YAAY,OAA8B;QACxC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,OAAO,CAAA;QACvD,IAAI,CAAC,SAAS;YACZ,OAAO,CAAC,WAAW;gBACnB,CAAC,GAAG,EAAE;oBACJ,OAAO,IAAA,wBAAU,GAAE,CAAA;gBACrB,CAAC,CAAC,CAAA;QACJ,IAAI,CAAC,gBAAgB;YACnB,OAAO,CAAC,kBAAkB;gBAC1B,CAAC,GAAG,EAAE;oBACJ,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;gBACjC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,eAAe,CACb,eAAuC,EACvC,eAAsC,EACtC,wBAA8C;QAE9C,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,cAAc,EAAE,wBAAwB,EAAE,cAAc,IAAI,IAAI,CAAC,SAAS;YAC1E,aAAa,EAAE,eAAe,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc;YACnE,aAAa,EAAE,wBAAwB,EAAE,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;SAC3E,CAAA;IACH,CAAC;CACF;AAjCD,oDAiCC"}
@@ -1,4 +1,6 @@
1
- import z from 'zod';
1
+ import z, { type ZodLiteral, type ZodObject, type ZodOptional, type ZodString } from 'zod';
2
+ import type { ZodRawShape } from 'zod/lib/types';
3
+ import type { CommonEventDefinition } from '../events/eventTypes';
2
4
  export declare const MESSAGE_METADATA_SCHEMA: z.ZodObject<{
3
5
  schemaVersion: z.ZodString;
4
6
  producedBy: z.ZodString;
@@ -15,12 +17,31 @@ export declare const MESSAGE_METADATA_SCHEMA: z.ZodObject<{
15
17
  originatedFrom: string;
16
18
  correlationId: string;
17
19
  }>;
18
- export declare const BASE_MESSAGE_SCHEMA: z.ZodObject<z.objectUtil.extendShape<{
20
+ export declare const MESSAGE_SCHEMA_EXTENSION: {
21
+ metadata: z.ZodOptional<z.ZodObject<{
22
+ schemaVersion: z.ZodString;
23
+ producedBy: z.ZodString;
24
+ originatedFrom: z.ZodString;
25
+ correlationId: z.ZodString;
26
+ }, "strip", z.ZodTypeAny, {
27
+ schemaVersion: string;
28
+ producedBy: string;
29
+ originatedFrom: string;
30
+ correlationId: string;
31
+ }, {
32
+ schemaVersion: string;
33
+ producedBy: string;
34
+ originatedFrom: string;
35
+ correlationId: string;
36
+ }>>;
37
+ };
38
+ export declare const BASE_MESSAGE_SCHEMA: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
19
39
  id: z.ZodString;
20
40
  timestamp: z.ZodString;
41
+ }, {
21
42
  type: z.ZodLiteral<string>;
22
43
  payload: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
23
- }, {
44
+ }>, {
24
45
  metadata: z.ZodOptional<z.ZodObject<{
25
46
  schemaVersion: z.ZodString;
26
47
  producedBy: z.ZodString;
@@ -62,3 +83,32 @@ export declare const BASE_MESSAGE_SCHEMA: z.ZodObject<z.objectUtil.extendShape<{
62
83
  }>;
63
84
  export type BaseMessageType = z.infer<typeof BASE_MESSAGE_SCHEMA>;
64
85
  export type MessageMetadataType = z.infer<typeof MESSAGE_METADATA_SCHEMA>;
86
+ export type CommonMessageDefinitionSchemaType<T extends CommonEventDefinition> = z.infer<T['consumerSchema']>;
87
+ type ReturnType<T extends ZodObject<Y>, Y extends ZodRawShape, Z extends string> = {
88
+ consumerSchema: ZodObject<{
89
+ id: ZodString;
90
+ timestamp: ZodString;
91
+ type: ZodLiteral<Z>;
92
+ payload: T;
93
+ metadata: ZodOptional<ZodObject<{
94
+ schemaVersion: ZodString;
95
+ producedBy: ZodString;
96
+ originatedFrom: ZodString;
97
+ correlationId: ZodString;
98
+ }>>;
99
+ }>;
100
+ publisherSchema: ZodObject<{
101
+ id: ZodOptional<ZodString>;
102
+ timestamp: ZodOptional<ZodString>;
103
+ type: ZodLiteral<Z>;
104
+ payload: T;
105
+ metadata: ZodOptional<ZodObject<{
106
+ schemaVersion: ZodString;
107
+ producedBy: ZodString;
108
+ originatedFrom: ZodString;
109
+ correlationId: ZodString;
110
+ }>>;
111
+ }>;
112
+ };
113
+ export declare function enrichMessageSchemaWithBase<T extends ZodObject<Y>, Y extends ZodRawShape, Z extends string>(type: Z, payloadSchema: T): ReturnType<T, Y, Z>;
114
+ export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BASE_MESSAGE_SCHEMA = exports.MESSAGE_METADATA_SCHEMA = void 0;
3
+ exports.enrichMessageSchemaWithBase = exports.BASE_MESSAGE_SCHEMA = exports.MESSAGE_SCHEMA_EXTENSION = exports.MESSAGE_METADATA_SCHEMA = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const zod_1 = tslib_1.__importDefault(require("zod"));
6
6
  const baseEventSchemas_1 = require("../events/baseEventSchemas");
@@ -19,8 +19,22 @@ exports.MESSAGE_METADATA_SCHEMA = zod_1.default
19
19
  correlationId: zod_1.default.string().describe('unique identifier passed to all events in workflow chain'),
20
20
  })
21
21
  .describe('external message metadata');
22
- exports.BASE_MESSAGE_SCHEMA = baseEventSchemas_1.BASE_EVENT_SCHEMA.extend({
22
+ exports.MESSAGE_SCHEMA_EXTENSION = {
23
23
  // For internal domain events that did not originate within a message chain metadata field can be omitted, producer should then assume it is initiating a new chain
24
24
  metadata: exports.MESSAGE_METADATA_SCHEMA.optional(),
25
- });
25
+ };
26
+ exports.BASE_MESSAGE_SCHEMA = baseEventSchemas_1.CONSUMER_BASE_EVENT_SCHEMA.extend(exports.MESSAGE_SCHEMA_EXTENSION);
27
+ function enrichMessageSchemaWithBase(type, payloadSchema) {
28
+ const baseSchema = zod_1.default.object({
29
+ type: zod_1.default.literal(type),
30
+ payload: payloadSchema,
31
+ });
32
+ const consumerSchema = baseEventSchemas_1.GENERATED_BASE_EVENT_SCHEMA.merge(baseSchema).extend(exports.MESSAGE_SCHEMA_EXTENSION);
33
+ const publisherSchema = baseEventSchemas_1.OPTIONAL_GENERATED_BASE_EVENT_SCHEMA.merge(baseSchema).extend(exports.MESSAGE_SCHEMA_EXTENSION);
34
+ return {
35
+ consumerSchema: consumerSchema,
36
+ publisherSchema: publisherSchema,
37
+ };
38
+ }
39
+ exports.enrichMessageSchemaWithBase = enrichMessageSchemaWithBase;
26
40
  //# sourceMappingURL=baseMessageSchemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseMessageSchemas.js","sourceRoot":"","sources":["../../../lib/messages/baseMessageSchemas.ts"],"names":[],"mappings":";;;;AAAA,sDAAmB;AAEnB,iEAA8D;AAE9D,8HAA8H;AACjH,QAAA,uBAAuB,GAAG,aAAC;KACrC,MAAM,CAAC;IACN,aAAa,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACnE,2DAA2D;IAC3D,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAC/E,qHAAqH;IACrH,cAAc,EAAE,aAAC;SACd,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,sDAAsD;IACtD,aAAa,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;CAC/F,CAAC;KACD,QAAQ,CAAC,2BAA2B,CAAC,CAAA;AAE3B,QAAA,mBAAmB,GAAG,oCAAiB,CAAC,MAAM,CAAC;IAC1D,mKAAmK;IACnK,QAAQ,EAAE,+BAAuB,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAA"}
1
+ {"version":3,"file":"baseMessageSchemas.js","sourceRoot":"","sources":["../../../lib/messages/baseMessageSchemas.ts"],"names":[],"mappings":";;;;AAAA,sDAA0F;AAG1F,iEAImC;AAGnC,8HAA8H;AACjH,QAAA,uBAAuB,GAAG,aAAC;KACrC,MAAM,CAAC;IACN,aAAa,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACnE,2DAA2D;IAC3D,UAAU,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAC/E,qHAAqH;IACrH,cAAc,EAAE,aAAC;SACd,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,sDAAsD;IACtD,aAAa,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;CAC/F,CAAC;KACD,QAAQ,CAAC,2BAA2B,CAAC,CAAA;AAE3B,QAAA,wBAAwB,GAAG;IACtC,mKAAmK;IACnK,QAAQ,EAAE,+BAAuB,CAAC,QAAQ,EAAE;CAC7C,CAAA;AAEY,QAAA,mBAAmB,GAAG,6CAA0B,CAAC,MAAM,CAAC,gCAAwB,CAAC,CAAA;AA0C9F,SAAgB,2BAA2B,CAIzC,IAAO,EAAE,aAAgB;IACzB,MAAM,UAAU,GAAG,aAAC,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,aAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACrB,OAAO,EAAE,aAAa;KACvB,CAAC,CAAA;IAEF,MAAM,cAAc,GAClB,8CAA2B,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,gCAAwB,CAAC,CAAA;IAChF,MAAM,eAAe,GACnB,uDAAoC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,gCAAwB,CAAC,CAAA;IAEzF,OAAO;QACL,cAAc,EAAE,cAAc;QAC9B,eAAe,EAAE,eAAe;KACjC,CAAA;AACH,CAAC;AAnBD,kEAmBC"}
@@ -0,0 +1,48 @@
1
+ import type { TypeOf, z } from 'zod';
2
+ import type { EventRegistry } from '../events/EventRegistry';
3
+ import type { PublisherBaseEventType } from '../events/baseEventSchemas';
4
+ import type { CommonEventDefinition } from '../events/eventTypes';
5
+ import type { MetadataFiller } from '../messages/MetadataFiller';
6
+ import type { AsyncPublisher, SyncPublisher } from '../types/MessageQueueTypes';
7
+ import type { CommonCreationConfigType, QueuePublisherOptions } from '../types/queueOptionsTypes';
8
+ export type MessagePublishType<T extends CommonEventDefinition> = z.infer<T['publisherSchema']>;
9
+ export type MessageSchemaType<T extends CommonEventDefinition> = z.infer<T['consumerSchema']>;
10
+ export type AbstractPublisherFactory<PublisherType extends AsyncPublisher<object, unknown> | SyncPublisher<object, unknown>, DependenciesType, CreationConfigType extends CommonCreationConfigType, QueueLocatorType extends object, EventType extends PublisherBaseEventType, OptionsType extends Omit<QueuePublisherOptions<CreationConfigType, QueueLocatorType, EventType>, 'messageSchemas' | 'creationConfig' | 'locatorConfig'>> = {
11
+ buildPublisher(dependencies: DependenciesType, options: OptionsType): PublisherType;
12
+ };
13
+ export declare abstract class AbstractPublisherManager<EventDefinitionType extends CommonEventDefinition, EventTargets extends string, PublisherType extends AsyncPublisher<object, unknown> | SyncPublisher<object, unknown>, DependenciesType, CreationConfigType extends CommonCreationConfigType, QueueLocatorType extends object, EventType extends PublisherBaseEventType, OptionsType extends Omit<QueuePublisherOptions<CreationConfigType, QueueLocatorType, EventType>, 'messageSchemas' | 'creationConfig' | 'locatorConfig'>, SupportedEventDefinitions extends EventDefinitionType[], MetadataType, MessageOptionsType> {
14
+ private readonly publisherFactory;
15
+ protected readonly newPublisherOptions: OptionsType;
16
+ protected readonly metadataFiller: MetadataFiller<z.infer<SupportedEventDefinitions[number]['consumerSchema']>, MetadataType>;
17
+ protected readonly metadataField: string;
18
+ protected readonly targetToEventMap: Record<EventTargets, EventDefinitionType[]>;
19
+ protected readonly isAsync: boolean;
20
+ protected targetToPublisherMap: Record<EventTargets, PublisherType>;
21
+ private readonly publisherDependencies;
22
+ protected constructor({ publisherFactory, newPublisherOptions, publisherDependencies, metadataFiller, eventRegistry, metadataField, isAsync, }: {
23
+ publisherFactory: AbstractPublisherFactory<PublisherType, DependenciesType, CreationConfigType, QueueLocatorType, EventType, OptionsType>;
24
+ newPublisherOptions: OptionsType;
25
+ publisherDependencies: DependenciesType;
26
+ metadataFiller: MetadataFiller<TypeOf<SupportedEventDefinitions[number]['consumerSchema']>, MetadataType>;
27
+ eventRegistry: EventRegistry<SupportedEventDefinitions>;
28
+ metadataField: string;
29
+ isAsync: boolean;
30
+ });
31
+ protected abstract resolveEventTarget(event: EventDefinitionType): EventTargets | undefined;
32
+ protected abstract resolveCreationConfig(eventTarget: string): CreationConfigType;
33
+ protected resolvePublisherConfigOverrides(_eventTarget: string): Partial<OptionsType>;
34
+ private registerEvents;
35
+ private registerPublishers;
36
+ injectPublisher(eventTarget: EventTargets, publisher: PublisherType): void;
37
+ injectEventDefinition(eventDefinition: EventDefinitionType): void;
38
+ publish(eventTarget: EventTargets, message: MessagePublishType<SupportedEventDefinitions[number]>, precedingEventMetadata?: Partial<MetadataType>, messageOptions?: MessageOptionsType): Promise<MessageSchemaType<SupportedEventDefinitions[number]>>;
39
+ protected resolveMessage(messageDefinition: EventDefinitionType | undefined, message: MessagePublishType<SupportedEventDefinitions[number]>, precedingEventMetadata?: Partial<MetadataType>): MessageSchemaType<SupportedEventDefinitions[number]>;
40
+ resolveBaseFields(): {
41
+ id: string;
42
+ timestamp: string;
43
+ };
44
+ /**
45
+ * @param eventTarget - topic or exchange
46
+ */
47
+ handlerSpy(eventTarget: EventTargets): import("./HandlerSpy").PublicHandlerSpy<object>;
48
+ }
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractPublisherManager = void 0;
4
+ class AbstractPublisherManager {
5
+ publisherFactory;
6
+ newPublisherOptions;
7
+ metadataFiller;
8
+ metadataField;
9
+ // In this context "target" can be a topic or an exchange, depending on the transport
10
+ targetToEventMap = {};
11
+ isAsync;
12
+ targetToPublisherMap = {};
13
+ publisherDependencies;
14
+ constructor({ publisherFactory, newPublisherOptions, publisherDependencies, metadataFiller, eventRegistry, metadataField, isAsync, }) {
15
+ this.publisherFactory = publisherFactory;
16
+ this.newPublisherOptions = newPublisherOptions;
17
+ this.metadataFiller = metadataFiller;
18
+ this.metadataField = metadataField;
19
+ this.isAsync = isAsync;
20
+ this.publisherDependencies = publisherDependencies;
21
+ this.registerEvents(eventRegistry.supportedEvents);
22
+ this.registerPublishers();
23
+ }
24
+ resolvePublisherConfigOverrides(_eventTarget) {
25
+ return {};
26
+ }
27
+ registerEvents(events) {
28
+ for (const supportedEvent of events) {
29
+ const eventTarget = this.resolveEventTarget(supportedEvent);
30
+ if (!eventTarget) {
31
+ continue;
32
+ }
33
+ if (!this.targetToEventMap[eventTarget]) {
34
+ this.targetToEventMap[eventTarget] = [];
35
+ }
36
+ this.targetToEventMap[eventTarget].push(supportedEvent);
37
+ }
38
+ }
39
+ registerPublishers() {
40
+ for (const eventTarget in this.targetToEventMap) {
41
+ if (this.targetToPublisherMap[eventTarget]) {
42
+ continue;
43
+ }
44
+ const messageSchemas = this.targetToEventMap[eventTarget].map((entry) => {
45
+ return entry.consumerSchema;
46
+ });
47
+ const creationConfig = this.resolveCreationConfig(eventTarget);
48
+ const configOverrides = this.resolvePublisherConfigOverrides(eventTarget);
49
+ this.targetToPublisherMap[eventTarget] = this.publisherFactory.buildPublisher(this.publisherDependencies, {
50
+ ...this.newPublisherOptions,
51
+ creationConfig,
52
+ messageSchemas,
53
+ ...configOverrides,
54
+ });
55
+ }
56
+ }
57
+ injectPublisher(eventTarget, publisher) {
58
+ this.targetToPublisherMap[eventTarget] = publisher;
59
+ }
60
+ injectEventDefinition(eventDefinition) {
61
+ const eventTarget = this.resolveEventTarget(eventDefinition);
62
+ if (!eventTarget) {
63
+ throw new Error('eventTarget could not be resolved for the event');
64
+ }
65
+ if (!this.targetToEventMap[eventTarget]) {
66
+ this.targetToEventMap[eventTarget] = [];
67
+ }
68
+ this.targetToEventMap[eventTarget].push(eventDefinition);
69
+ }
70
+ async publish(eventTarget, message, precedingEventMetadata, messageOptions) {
71
+ const publisher = this.targetToPublisherMap[eventTarget];
72
+ if (!publisher) {
73
+ throw new Error(`No publisher for target ${eventTarget}`);
74
+ }
75
+ // ToDo optimize the lookup
76
+ const messageDefinition = this.targetToEventMap[eventTarget].find((entry) => entry.consumerSchema.shape.type.value === message.type);
77
+ const resolvedMessage = this.resolveMessage(messageDefinition, message, precedingEventMetadata);
78
+ if (this.isAsync) {
79
+ await publisher.publish(resolvedMessage, messageOptions);
80
+ }
81
+ else {
82
+ publisher.publish(resolvedMessage, messageOptions);
83
+ }
84
+ return resolvedMessage;
85
+ }
86
+ resolveMessage(messageDefinition, message, precedingEventMetadata) {
87
+ // @ts-ignore
88
+ const resolvedMetadata = message[this.metadataField]
89
+ ? // @ts-ignore
90
+ message[this.metadataField]
91
+ : // @ts-ignore
92
+ this.metadataFiller.produceMetadata(message, messageDefinition, precedingEventMetadata);
93
+ // @ts-ignore
94
+ return {
95
+ id: this.metadataFiller.produceId(),
96
+ timestamp: this.metadataFiller.produceTimestamp(),
97
+ ...message,
98
+ metadata: resolvedMetadata,
99
+ };
100
+ }
101
+ resolveBaseFields() {
102
+ return {
103
+ id: this.metadataFiller.produceId(),
104
+ timestamp: this.metadataFiller.produceTimestamp(),
105
+ };
106
+ }
107
+ /**
108
+ * @param eventTarget - topic or exchange
109
+ */
110
+ handlerSpy(eventTarget) {
111
+ const publisher = this.targetToPublisherMap[eventTarget];
112
+ if (!publisher) {
113
+ throw new Error(`No publisher for target ${eventTarget}`);
114
+ }
115
+ return publisher.handlerSpy;
116
+ }
117
+ }
118
+ exports.AbstractPublisherManager = AbstractPublisherManager;
119
+ //# sourceMappingURL=AbstractPublisherManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractPublisherManager.js","sourceRoot":"","sources":["../../../lib/queues/AbstractPublisherManager.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export declare abstract class AbstractQueueService<MessagePayloadSchemas extends
20
20
  protected readonly locatorConfig?: QueueLocatorType;
21
21
  protected readonly deletionConfig?: DeletionConfig;
22
22
  protected readonly _handlerSpy?: HandlerSpy<MessagePayloadSchemas>;
23
+ protected isInitted: boolean;
23
24
  get handlerSpy(): PublicHandlerSpy<MessagePayloadSchemas>;
24
25
  constructor({ errorReporter, logger }: DependenciesType, options: OptionsType);
25
26
  protected abstract resolveSchema(message: MessagePayloadSchemas): Either<Error, ZodSchema<MessagePayloadSchemas>>;
@@ -16,6 +16,7 @@ class AbstractQueueService {
16
16
  locatorConfig;
17
17
  deletionConfig;
18
18
  _handlerSpy;
19
+ isInitted;
19
20
  get handlerSpy() {
20
21
  if (!this._handlerSpy) {
21
22
  throw new Error('HandlerSpy was not instantiated, please pass `handlerSpy` parameter during queue service creation.');
@@ -33,6 +34,7 @@ class AbstractQueueService {
33
34
  this.deletionConfig = options.deletionConfig;
34
35
  this.logMessages = options.logMessages ?? false;
35
36
  this._handlerSpy = (0, HandlerSpy_1.resolveHandlerSpy)(options);
37
+ this.isInitted = false;
36
38
  }
37
39
  /**
38
40
  * Format message for logging
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractQueueService.js","sourceRoot":"","sources":["../../../lib/queues/AbstractQueueService.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAGjC,mDAAiE;AAMjE,8DAA6D;AAU7D,6CAAgD;AAYhD,MAAsB,oBAAoB;IAarB,aAAa,CAAe;IAC/B,MAAM,CAAQ;IACX,cAAc,CAAQ;IACtB,gBAAgB,CAAQ;IACxB,qBAAqB,CAAQ;IAC7B,WAAW,CAAS;IACpB,cAAc,CAAqB;IACnC,aAAa,CAAmB;IAChC,cAAc,CAAiB;IAC/B,WAAW,CAAoC;IAElE,IAAI,UAAU;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,YAAY,EAAE,aAAa,EAAE,MAAM,EAAoB,EAAE,OAAoB;QAC3E,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAEpB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAA;QACpD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAA;QAChD,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,WAAW,CAAA;QACzE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC5C,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC1C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAE5C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAA;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAA,8BAAiB,EAAwB,OAAO,CAAC,CAAA;IACtE,CAAC;IAUD;;OAEG;IACO,iBAAiB,CAAC,OAA8B,EAAE,YAAoB;QAC9E,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;OAEG;IACO,UAAU,CAAC,eAAwB;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IACpC,CAAC;IAES,mBAAmB,CAC3B,QAAsC,EACtC,gBAAyC,EACzC,SAAkB;QAElB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf;YACE,gBAAgB;YAChB,SAAS;SACV,EACD,+BAA+B,SAAS,IAAI,cAAc,EAAE,CAC7D,CAAA;IACH,CAAC;IAES,WAAW,CAAC,GAAY,EAAE,OAAiC;QACnE,MAAM,SAAS,GAAG,IAAA,uCAA2B,EAAC,GAAG,CAAC,CAAA;QAClD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACvC,CAAC;aAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAChB,GAAG,SAAS;gBACZ,GAAG,OAAO;aACX,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,iBAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAES,sBAAsB,CAC9B,OAAqC,EACrC,gBAAyC,EACzC,SAAkB;QAElB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAClC;gBACE,OAAO;gBACP,gBAAgB;aACjB,EACD,SAAS,CACV,CAAA;QACH,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,aAAa;YACb,MAAM,iBAAiB,GAAuB,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,SAAS,CAAA;YAEzF,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;IAES,0BAA0B,CAClC,WAAoF,EACpF,OAA8B;QAE9B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAsB,CAAC,CAAA;QAChD,CAAC;QAED,OAAO,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,IAAI,CAAC;gBACH,MAAM,gBAAgB,GAAG,EAAsB,CAAA;gBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CACnC,WAAW,EACX,OAAO,EACP,CAAC,EACD,gBAAgB,EAChB,OAAO,EACP,MAAM,CACP,CAAA;gBACD,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;YAC7B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAY,CAAC,CAAA;YACtB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAES,KAAK,CAAC,yBAAyB,CACvC,OAEa,EACb,OAA8B,EAC9B,gBAAkC,EAClC,gBAAkC;QAElC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,aAAa;YACb,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,SAAS;aAClB,CAAA;QACH,CAAC;QAED,aAAa;QACb,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;IACnE,CAAC;IAES,qBAAqB,CAAC,OAA8B;QAC5D,aAAa;QACb,IAAI,IAAI,CAAC,qBAAqB,IAAI,OAAO,EAAE,CAAC;YAC1C,aAAa;YACb,MAAM,GAAG,GAAG,IAAA,oCAAkB,EAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAA;YACnE,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,qBAAqB,eAAe,CAAC,CAAA;YAC/D,CAAC;YAED,OAAO,GAAG,CAAA;QACZ,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAWD,sCAAsC;IAC5B,qCAAqC,CAC7C,WAAoF,EACpF,gBAAkC,EAClC,OAA8B,EAC9B,KAAa,EACb,gBAAkC,EAClC,OAA0E,EAC1E,MAA4B;QAE5B,OAAO,CAAC,gBAAkC,EAAE,EAAE;YAC5C,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC3B,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,gBAAgB,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,6DAA6D;gBAC7D,WAAW,CAAC,KAAK,CAAC,CAChB,OAAO,EACP,gBAAgB;gBAChB,aAAa;gBACb,gBAAgB,EAChB,IAAI,CAAC,qCAAqC,CACxC,WAAW,EACX,gBAAgB,EAChB,OAAO,EACP,KAAK,GAAG,CAAC,EACT,gBAAgB,EAChB,OAAO,EACP,MAAM,CACP,CACF,CAAA;YACH,CAAC;QACH,CAAC,CAAA;IACH,CAAC;CAqBF;AAxPD,oDAwPC"}
1
+ {"version":3,"file":"AbstractQueueService.js","sourceRoot":"","sources":["../../../lib/queues/AbstractQueueService.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,17 @@
1
1
  import type { TransactionObservabilityManager } from '@lokalise/node-core';
2
2
  import type { ZodSchema } from 'zod';
3
+ import type { PublicHandlerSpy } from '../queues/HandlerSpy';
3
4
  export interface QueueConsumer {
4
5
  start(): Promise<unknown>;
5
6
  close(): Promise<unknown>;
6
7
  }
7
8
  export type MessageProcessingResult = 'retryLater' | 'consumed' | 'published' | 'error' | 'invalid_message';
8
- export interface SyncPublisher<MessagePayloadType> {
9
- publish(message: MessagePayloadType): void;
9
+ export interface SyncPublisher<MessagePayloadType extends object, MessageOptions> {
10
+ handlerSpy: PublicHandlerSpy<MessagePayloadType>;
11
+ publish(message: MessagePayloadType, options: MessageOptions): void;
10
12
  }
11
- export interface AsyncPublisher<MessagePayloadType, MessageOptions> {
13
+ export interface AsyncPublisher<MessagePayloadType extends object, MessageOptions> {
14
+ handlerSpy: PublicHandlerSpy<MessagePayloadType>;
12
15
  publish(message: MessagePayloadType, options: MessageOptions): Promise<unknown>;
13
16
  }
14
17
  export { TransactionObservabilityManager };
@@ -19,7 +19,7 @@ export type CommonQueueOptions = {
19
19
  logMessages?: boolean;
20
20
  deletionConfig?: DeletionConfig;
21
21
  };
22
- type CommonCreationConfigType = {
22
+ export type CommonCreationConfigType = {
23
23
  updateAttributesIfExists?: boolean;
24
24
  };
25
25
  export type DeletionConfig = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@message-queue-toolkit/core",
3
- "version": "12.1.0",
3
+ "version": "13.1.0",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "description": "Useful utilities, interfaces and base classes for message queue handling. Supports AMQP and SQS with a common abstraction on top currently",
@@ -28,7 +28,7 @@
28
28
  "@lokalise/node-core": "^9.17.0",
29
29
  "fast-equals": "^5.0.1",
30
30
  "toad-cache": "^3.7.0",
31
- "zod": "^3.23.6"
31
+ "zod": "^3.23.8"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^20.12.8",