@message-queue-toolkit/core 13.1.0 → 13.3.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.
@@ -1,5 +1,6 @@
1
+ import type { MessageMetadataType } from '../messages/baseMessageSchemas';
1
2
  import type { EventRegistry } from './EventRegistry';
2
- import type { AnyEventHandler, SingleEventHandler, CommonEventDefinition, CommonEventDefinitionSchemaType, EventTypeNames } from './eventTypes';
3
+ import type { AnyEventHandler, SingleEventHandler, CommonEventDefinition, EventTypeNames, CommonEventDefinitionPublisherSchemaType } from './eventTypes';
3
4
  export declare class DomainEventEmitter<SupportedEvents extends CommonEventDefinition[]> {
4
5
  private readonly eventRegistry;
5
6
  private readonly eventHandlerMap;
@@ -7,7 +8,7 @@ export declare class DomainEventEmitter<SupportedEvents extends CommonEventDefin
7
8
  constructor({ eventRegistry }: {
8
9
  eventRegistry: EventRegistry<SupportedEvents>;
9
10
  });
10
- emit<SupportedEvent extends SupportedEvents[number]>(supportedEvent: SupportedEvent, data: Omit<CommonEventDefinitionSchemaType<SupportedEvent>, 'type'>): Promise<void>;
11
+ emit<SupportedEvent extends SupportedEvents[number]>(supportedEvent: SupportedEvent, data: Omit<CommonEventDefinitionPublisherSchemaType<SupportedEvent>, 'type'>, metadata?: Partial<MessageMetadataType>): Promise<void>;
11
12
  /**
12
13
  * Register handler for a specific event
13
14
  */
@@ -9,8 +9,8 @@ class DomainEventEmitter {
9
9
  constructor({ eventRegistry }) {
10
10
  this.eventRegistry = eventRegistry;
11
11
  }
12
- async emit(supportedEvent, data) {
13
- const eventTypeName = supportedEvent.consumerSchema.shape.type.value;
12
+ async emit(supportedEvent, data, metadata) {
13
+ const eventTypeName = supportedEvent.publisherSchema.shape.type.value;
14
14
  if (!this.eventRegistry.isSupportedEvent(eventTypeName)) {
15
15
  throw new node_core_1.InternalError({
16
16
  errorCode: 'UNKNOWN_EVENT',
@@ -30,11 +30,11 @@ class DomainEventEmitter {
30
30
  });
31
31
  if (eventHandlers) {
32
32
  for (const handler of eventHandlers) {
33
- await handler.handleEvent(validatedEvent);
33
+ await handler.handleEvent(validatedEvent, metadata);
34
34
  }
35
35
  }
36
36
  for (const handler of this.anyHandlers) {
37
- await handler.handleEvent(validatedEvent);
37
+ await handler.handleEvent(validatedEvent, metadata);
38
38
  }
39
39
  }
40
40
  /**
@@ -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,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"}
1
+ {"version":3,"file":"DomainEventEmitter.js","sourceRoot":"","sources":["../../../lib/events/DomainEventEmitter.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AAenD,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,IAA4E,EAC5E,QAAuC;QAEvC,MAAM,aAAa,GAAG,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAA;QAErE,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,EAAE,QAAQ,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QACrD,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;AA3FD,gDA2FC"}
@@ -1,87 +1 @@
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
- }, "strip", z.ZodTypeAny, {
8
- id: string;
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;
43
- type: string;
44
- payload?: {} | undefined;
45
- }, {
46
- id: string;
47
- timestamp: string;
48
- type: string;
49
- payload?: {} | undefined;
50
- }>;
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
+ export { GENERATED_BASE_EVENT_SCHEMA, OPTIONAL_GENERATED_BASE_EVENT_SCHEMA, CORE_EVENT_SCHEMA, CONSUMER_BASE_EVENT_SCHEMA, PUBLISHER_BASE_EVENT_SCHEMA, ConsumerBaseEventType, PublisherBaseEventType, CoreEventType, GeneratedBaseEventType, enrichEventSchemaWithBase, } from '@message-queue-toolkit/schemas';
@@ -1,37 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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(),
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;
4
+ var schemas_1 = require("@message-queue-toolkit/schemas");
5
+ Object.defineProperty(exports, "GENERATED_BASE_EVENT_SCHEMA", { enumerable: true, get: function () { return schemas_1.GENERATED_BASE_EVENT_SCHEMA; } });
6
+ Object.defineProperty(exports, "OPTIONAL_GENERATED_BASE_EVENT_SCHEMA", { enumerable: true, get: function () { return schemas_1.OPTIONAL_GENERATED_BASE_EVENT_SCHEMA; } });
7
+ Object.defineProperty(exports, "CORE_EVENT_SCHEMA", { enumerable: true, get: function () { return schemas_1.CORE_EVENT_SCHEMA; } });
8
+ Object.defineProperty(exports, "CONSUMER_BASE_EVENT_SCHEMA", { enumerable: true, get: function () { return schemas_1.CONSUMER_BASE_EVENT_SCHEMA; } });
9
+ Object.defineProperty(exports, "PUBLISHER_BASE_EVENT_SCHEMA", { enumerable: true, get: function () { return schemas_1.PUBLISHER_BASE_EVENT_SCHEMA; } });
10
+ Object.defineProperty(exports, "enrichEventSchemaWithBase", { enumerable: true, get: function () { return schemas_1.enrichEventSchemaWithBase; } });
37
11
  //# sourceMappingURL=baseEventSchemas.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"baseEventSchemas.js","sourceRoot":"","sources":["../../../lib/events/baseEventSchemas.ts"],"names":[],"mappings":";;;AAAA,0DAWuC;AAVrC,sHAAA,2BAA2B,OAAA;AAC3B,+HAAA,oCAAoC,OAAA;AACpC,4GAAA,iBAAiB,OAAA;AACjB,qHAAA,0BAA0B,OAAA;AAC1B,sHAAA,2BAA2B,OAAA;AAK3B,oHAAA,yBAAyB,OAAA"}
@@ -1,23 +1 @@
1
- import type { ZodObject, ZodTypeAny } from 'zod';
2
- import type z from 'zod';
3
- import type { CONSUMER_BASE_EVENT_SCHEMA, PUBLISHER_BASE_EVENT_SCHEMA } from './baseEventSchemas';
4
- export type EventTypeNames<EventDefinition extends CommonEventDefinition> = CommonEventDefinitionSchemaType<EventDefinition>['type'];
5
- export type CommonEventDefinition = {
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'> & {
10
- payload: ZodTypeAny;
11
- }>;
12
- schemaVersion?: string;
13
- };
14
- export type CommonEventDefinitionSchemaType<T extends CommonEventDefinition> = z.infer<T['consumerSchema']>;
15
- export type EventHandler<EventDefinitionSchema extends CommonEventDefinitionSchemaType<CommonEventDefinition> = CommonEventDefinitionSchemaType<CommonEventDefinition>> = {
16
- handleEvent(event: EventDefinitionSchema): void | Promise<void>;
17
- };
18
- export type AnyEventHandler<EventDefinitions extends CommonEventDefinition[]> = EventHandler<CommonEventDefinitionSchemaType<EventDefinitions[number]>>;
19
- export type SingleEventHandler<EventDefinition extends CommonEventDefinition[], EventTypeName extends EventTypeNames<EventDefinition[number]>> = EventHandler<EventFromArrayByTypeName<EventDefinition, EventTypeName>>;
20
- type EventFromArrayByTypeName<EventDefinition extends CommonEventDefinition[], EventTypeName extends EventTypeNames<EventDefinition[number]>> = Extract<CommonEventDefinitionSchemaType<EventDefinition[number]>, {
21
- type: EventTypeName;
22
- }>;
23
- export {};
1
+ export { EventTypeNames, CommonEventDefinition, CommonEventDefinitionConsumerSchemaType, CommonEventDefinitionPublisherSchemaType, EventHandler, AnyEventHandler, SingleEventHandler, } from '@message-queue-toolkit/schemas';
@@ -1,6 +1,8 @@
1
+ import type { MessageMetadataType } from '../../messages/baseMessageSchemas';
1
2
  import type { AnyEventHandler, CommonEventDefinition } from '../eventTypes';
2
3
  export declare class FakeListener<SupportedEvents extends CommonEventDefinition[]> implements AnyEventHandler<SupportedEvents> {
3
4
  receivedEvents: SupportedEvents[number]['consumerSchema']['_output'][];
5
+ receivedMetadata: MessageMetadataType[];
4
6
  constructor(_supportedEvents: SupportedEvents);
5
- handleEvent(event: SupportedEvents[number]['consumerSchema']['_output']): void | Promise<void>;
7
+ handleEvent(event: SupportedEvents[number]['consumerSchema']['_output'], metadata: MessageMetadataType): void | Promise<void>;
6
8
  }
@@ -3,11 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FakeListener = void 0;
4
4
  class FakeListener {
5
5
  receivedEvents = [];
6
+ receivedMetadata = [];
6
7
  constructor(_supportedEvents) {
7
8
  this.receivedEvents = [];
8
9
  }
9
- handleEvent(event) {
10
+ handleEvent(event, metadata) {
10
11
  this.receivedEvents.push(event);
12
+ this.receivedMetadata.push(metadata);
11
13
  }
12
14
  }
13
15
  exports.FakeListener = FakeListener;
@@ -1 +1 @@
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
+ {"version":3,"file":"FakeListener.js","sourceRoot":"","sources":["../../../../lib/events/fakes/FakeListener.ts"],"names":[],"mappings":";;;AAGA,MAAa,YAAY;IAGhB,cAAc,GAA2D,EAAE,CAAA;IAC3E,gBAAgB,GAA0B,EAAE,CAAA;IAEnD,YAAY,gBAAiC;QAC3C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAA;IAC1B,CAAC;IAED,WAAW,CACT,KAA2D,EAC3D,QAA6B;QAE7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;CACF;AAjBD,oCAiBC"}
@@ -1,114 +1 @@
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';
4
- export declare const MESSAGE_METADATA_SCHEMA: z.ZodObject<{
5
- schemaVersion: z.ZodString;
6
- producedBy: z.ZodString;
7
- originatedFrom: z.ZodString;
8
- correlationId: z.ZodString;
9
- }, "strip", z.ZodTypeAny, {
10
- schemaVersion: string;
11
- producedBy: string;
12
- originatedFrom: string;
13
- correlationId: string;
14
- }, {
15
- schemaVersion: string;
16
- producedBy: string;
17
- originatedFrom: string;
18
- correlationId: string;
19
- }>;
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<{
39
- id: z.ZodString;
40
- timestamp: z.ZodString;
41
- }, {
42
- type: z.ZodLiteral<string>;
43
- payload: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>>;
44
- }>, {
45
- metadata: z.ZodOptional<z.ZodObject<{
46
- schemaVersion: z.ZodString;
47
- producedBy: z.ZodString;
48
- originatedFrom: z.ZodString;
49
- correlationId: z.ZodString;
50
- }, "strip", z.ZodTypeAny, {
51
- schemaVersion: string;
52
- producedBy: string;
53
- originatedFrom: string;
54
- correlationId: string;
55
- }, {
56
- schemaVersion: string;
57
- producedBy: string;
58
- originatedFrom: string;
59
- correlationId: string;
60
- }>>;
61
- }>, "strip", z.ZodTypeAny, {
62
- id: string;
63
- timestamp: string;
64
- type: string;
65
- payload?: {} | undefined;
66
- metadata?: {
67
- schemaVersion: string;
68
- producedBy: string;
69
- originatedFrom: string;
70
- correlationId: string;
71
- } | undefined;
72
- }, {
73
- id: string;
74
- timestamp: string;
75
- type: string;
76
- payload?: {} | undefined;
77
- metadata?: {
78
- schemaVersion: string;
79
- producedBy: string;
80
- originatedFrom: string;
81
- correlationId: string;
82
- } | undefined;
83
- }>;
84
- export type BaseMessageType = z.infer<typeof BASE_MESSAGE_SCHEMA>;
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
+ export { MESSAGE_METADATA_SCHEMA, MESSAGE_SCHEMA_EXTENSION, BASE_MESSAGE_SCHEMA, BaseMessageType, MessageMetadataType, CommonMessageDefinitionSchemaType, enrichMessageSchemaWithBase, } from '@message-queue-toolkit/schemas';
@@ -1,40 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.enrichMessageSchemaWithBase = exports.BASE_MESSAGE_SCHEMA = exports.MESSAGE_SCHEMA_EXTENSION = exports.MESSAGE_METADATA_SCHEMA = void 0;
4
- const tslib_1 = require("tslib");
5
- const zod_1 = tslib_1.__importDefault(require("zod"));
6
- const baseEventSchemas_1 = require("../events/baseEventSchemas");
7
- // External message metadata that describe the context in which the message was created, primarily used for debugging purposes
8
- exports.MESSAGE_METADATA_SCHEMA = zod_1.default
9
- .object({
10
- schemaVersion: zod_1.default.string().min(1).describe('message schema version'),
11
- // this is always set to a service that created the message
12
- producedBy: zod_1.default.string().min(1).describe('app/service that produced the message'),
13
- // this is always propagated within the message chain. For the first message in the chain it is equal to "producedBy"
14
- originatedFrom: zod_1.default
15
- .string()
16
- .min(1)
17
- .describe('app/service that initiated entire workflow that led to creating this message'),
18
- // this is always propagated within the message chain.
19
- correlationId: zod_1.default.string().describe('unique identifier passed to all events in workflow chain'),
20
- })
21
- .describe('external message metadata');
22
- exports.MESSAGE_SCHEMA_EXTENSION = {
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
- metadata: exports.MESSAGE_METADATA_SCHEMA.optional(),
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;
4
+ var schemas_1 = require("@message-queue-toolkit/schemas");
5
+ Object.defineProperty(exports, "MESSAGE_METADATA_SCHEMA", { enumerable: true, get: function () { return schemas_1.MESSAGE_METADATA_SCHEMA; } });
6
+ Object.defineProperty(exports, "MESSAGE_SCHEMA_EXTENSION", { enumerable: true, get: function () { return schemas_1.MESSAGE_SCHEMA_EXTENSION; } });
7
+ Object.defineProperty(exports, "BASE_MESSAGE_SCHEMA", { enumerable: true, get: function () { return schemas_1.BASE_MESSAGE_SCHEMA; } });
8
+ Object.defineProperty(exports, "enrichMessageSchemaWithBase", { enumerable: true, get: function () { return schemas_1.enrichMessageSchemaWithBase; } });
40
9
  //# sourceMappingURL=baseMessageSchemas.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"baseMessageSchemas.js","sourceRoot":"","sources":["../../../lib/messages/baseMessageSchemas.ts"],"names":[],"mappings":";;;AAAA,0DAQuC;AAPrC,kHAAA,uBAAuB,OAAA;AACvB,mHAAA,wBAAwB,OAAA;AACxB,8GAAA,mBAAmB,OAAA;AAInB,sHAAA,2BAA2B,OAAA"}
@@ -1 +1 @@
1
- export declare const toDatePreprocessor: (value: unknown) => unknown;
1
+ export { toDatePreprocessor } from '@message-queue-toolkit/schemas';
@@ -1,14 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toDatePreprocessor = void 0;
4
- const toDatePreprocessor = (value) => {
5
- switch (typeof value) {
6
- case 'string':
7
- case 'number':
8
- return new Date(value);
9
- default:
10
- return value; // could not coerce, return the original and face the consequences during validation
11
- }
12
- };
13
- exports.toDatePreprocessor = toDatePreprocessor;
4
+ var schemas_1 = require("@message-queue-toolkit/schemas");
5
+ Object.defineProperty(exports, "toDatePreprocessor", { enumerable: true, get: function () { return schemas_1.toDatePreprocessor; } });
14
6
  //# sourceMappingURL=toDateProcessor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toDateProcessor.js","sourceRoot":"","sources":["../../../lib/utils/toDateProcessor.ts"],"names":[],"mappings":";;;AAAO,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAE,EAAE;IACnD,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QAExB;YACE,OAAO,KAAK,CAAA,CAAC,oFAAoF;IACrG,CAAC;AACH,CAAC,CAAA;AATY,QAAA,kBAAkB,sBAS9B"}
1
+ {"version":3,"file":"toDateProcessor.js","sourceRoot":"","sources":["../../../lib/utils/toDateProcessor.ts"],"names":[],"mappings":";;;AAAA,0DAAmE;AAA1D,6GAAA,kBAAkB,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@message-queue-toolkit/core",
3
- "version": "13.1.0",
3
+ "version": "13.3.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",
@@ -26,6 +26,7 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@lokalise/node-core": "^9.17.0",
29
+ "@message-queue-toolkit/schemas": "^1.0.0",
29
30
  "fast-equals": "^5.0.1",
30
31
  "toad-cache": "^3.7.0",
31
32
  "zod": "^3.23.8"