@zdavison/matador 3.0.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,7 +39,7 @@ export declare class ResumableContext implements SubscriberContext {
39
39
  string,
40
40
  () => Promise<JsonSerializable> | JsonSerializable
41
41
  ][]>(ops: T): Promise<{
42
- [K in keyof T]: T[K] extends [string, () => Promise<infer R> | infer R] ? R : never;
42
+ [K in keyof T]: T[K] extends [string, () => Promise<infer R>] ? R : T[K] extends [string, () => infer R] ? R : never;
43
43
  }>;
44
44
  /**
45
45
  * Clears the checkpoint from storage.
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/checkpoint/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,gBAAgB,CAAC,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;CACpD;AAED;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;gBAE9C,MAAM,EAAE,sBAAsB;IAa1C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAEK,EAAE,CAAC,CAAC,SAAS,gBAAgB,EACjC,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC;IA0CP,GAAG,CACP,CAAC,SAAS,SAAS;QACjB,MAAM;QACN,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;KACnD,EAAE,EAEH,GAAG,EAAE,CAAC,GACL,OAAO,CAAC;SACR,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GACnE,CAAC,GACD,KAAK;KACV,CAAC;IAoEF;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;OAGG;IACH,aAAa,IAAI,UAAU;IAI3B;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;CACF"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/checkpoint/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,CAAC,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,gBAAgB,CAAC,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;CACpD;AAED;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoC;gBAE9C,MAAM,EAAE,sBAAsB;IAa1C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAEK,EAAE,CAAC,CAAC,SAAS,gBAAgB,EACjC,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC;IA0CP,GAAG,CACP,CAAC,SAAS,SAAS;QACjB,MAAM;QACN,MAAM,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB;KACnD,EAAE,EAEH,GAAG,EAAE,CAAC,GACL,OAAO,CAAC;SACR,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GACzD,CAAC,GACD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,CAAC,GAClC,CAAC,GACD,KAAK;KACZ,CAAC;IAsEF;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;OAGG;IACH,aAAa,IAAI,UAAU;IAI3B;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;CACF"}
@@ -76,7 +76,7 @@ export interface SubscriberContext {
76
76
  string,
77
77
  () => Promise<JsonSerializable> | JsonSerializable
78
78
  ][]>(ops: T): Promise<{
79
- [K in keyof T]: T[K] extends [string, () => Promise<infer R> | infer R] ? R : never;
79
+ [K in keyof T]: T[K] extends [string, () => Promise<infer R>] ? R : T[K] extends [string, () => infer R] ? R : never;
80
80
  }>;
81
81
  /** Current attempt number (1-based) */
82
82
  readonly attempt: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/checkpoint/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/checkpoint/types.ts"],"names":[],"mappings":"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"}
@@ -38,26 +38,26 @@ export class JsonCodec {
38
38
  }
39
39
  const envelope = value;
40
40
  // Required top-level fields
41
- if (typeof envelope['id'] !== 'string')
41
+ if (typeof envelope.id !== 'string')
42
42
  return false;
43
43
  if (!('data' in envelope))
44
44
  return false;
45
- if (typeof envelope['docket'] !== 'object' || envelope['docket'] === null)
45
+ if (typeof envelope.docket !== 'object' || envelope.docket === null)
46
46
  return false;
47
47
  // Validate docket (routing, processing state, observability)
48
- const docket = envelope['docket'];
48
+ const docket = envelope.docket;
49
49
  // Routing
50
- if (typeof docket['eventKey'] !== 'string')
50
+ if (typeof docket.eventKey !== 'string')
51
51
  return false;
52
- if (typeof docket['targetSubscriber'] !== 'string')
52
+ if (typeof docket.targetSubscriber !== 'string')
53
53
  return false;
54
54
  // Processing state
55
- if (typeof docket['attempts'] !== 'number')
55
+ if (typeof docket.attempts !== 'number')
56
56
  return false;
57
- if (typeof docket['createdAt'] !== 'string')
57
+ if (typeof docket.createdAt !== 'string')
58
58
  return false;
59
59
  // Observability
60
- if (typeof docket['importance'] !== 'string')
60
+ if (typeof docket.importance !== 'string')
61
61
  return false;
62
62
  return true;
63
63
  }
@@ -105,8 +105,8 @@ export class RabbitMQCodec {
105
105
  if (typeof value !== 'object' || value === null)
106
106
  return false;
107
107
  const obj = value;
108
- return (typeof obj['key'] === 'string' &&
109
- typeof obj['targetSubscriber'] === 'string' &&
108
+ return (typeof obj.key === 'string' &&
109
+ typeof obj.targetSubscriber === 'string' &&
110
110
  'data' in obj &&
111
111
  !('payload' in obj));
112
112
  }
@@ -114,7 +114,7 @@ export class RabbitMQCodec {
114
114
  if (typeof value !== 'object' || value === null)
115
115
  return false;
116
116
  const obj = value;
117
- return (typeof obj['id'] === 'string' && 'data' in obj && !('key' in obj) // Distinguish from v1 which also has 'data'
117
+ return (typeof obj.id === 'string' && 'data' in obj && !('key' in obj) // Distinguish from v1 which also has 'data'
118
118
  );
119
119
  }
120
120
  decodeV2(body, headers) {
@@ -164,7 +164,7 @@ export class RabbitMQCodec {
164
164
  Object.assign(mergedMetadata, body.metadata);
165
165
  }
166
166
  if (user_id !== undefined && user_id !== null) {
167
- mergedMetadata['user_id'] = user_id;
167
+ mergedMetadata.user_id = user_id;
168
168
  }
169
169
  Object.assign(mergedMetadata, otherUniversal);
170
170
  // Try to get attempts from header (v1 also uses x-matador-attempts)
@@ -227,8 +227,8 @@ describe('FanoutEngine', () => {
227
227
  });
228
228
  await fanout.send(UserCreatedEvent, event);
229
229
  const calls = transport.send.mock.calls;
230
- const envelope1 = calls[0][1];
231
- const envelope2 = calls[1][1];
230
+ const envelope1 = calls[0]?.[1];
231
+ const envelope2 = calls[1]?.[1];
232
232
  expect(envelope1.id).not.toBe(envelope2.id);
233
233
  expect(envelope1.docket.targetSubscriber).toBe('subscriber-1');
234
234
  expect(envelope2.docket.targetSubscriber).toBe('subscriber-2');
@@ -254,8 +254,8 @@ describe('FanoutEngine', () => {
254
254
  });
255
255
  await fanout.send(UserCreatedEvent, event);
256
256
  const calls = transport.send.mock.calls;
257
- expect(calls[0][0]).toBe('test.queue-1');
258
- expect(calls[1][0]).toBe('test.queue-2');
257
+ expect(calls[0]?.[0]).toBe('test.queue-1');
258
+ expect(calls[1]?.[0]).toBe('test.queue-2');
259
259
  });
260
260
  it('should send to no subscribers when event is not registered', async () => {
261
261
  const event = new OrderPlacedEvent({
@@ -280,7 +280,7 @@ describe('FanoutEngine', () => {
280
280
  const event = new UserCreatedEventWithMetadata({ userId: '123', email: 'test@example.com' }, { source: 'api', version: 1 });
281
281
  await fanout.send(UserCreatedEventWithMetadata, event);
282
282
  const envelope = transport.send.mock
283
- .calls[0][1];
283
+ .calls[0]?.[1];
284
284
  expect(envelope.docket.metadata).toEqual({ source: 'api', version: 1 });
285
285
  });
286
286
  it('should include options metadata in envelope', async () => {
@@ -299,7 +299,7 @@ describe('FanoutEngine', () => {
299
299
  };
300
300
  await fanout.send(UserCreatedEvent, event, options);
301
301
  const envelope = transport.send.mock
302
- .calls[0][1];
302
+ .calls[0]?.[1];
303
303
  expect(envelope.docket.metadata).toEqual({ requestId: 'req-123' });
304
304
  });
305
305
  it('should merge event and options metadata with options taking precedence', async () => {
@@ -315,7 +315,7 @@ describe('FanoutEngine', () => {
315
315
  };
316
316
  await fanout.send(UserCreatedEventWithMetadata, event, options);
317
317
  const envelope = transport.send.mock
318
- .calls[0][1];
318
+ .calls[0]?.[1];
319
319
  expect(envelope.docket.metadata).toEqual({
320
320
  source: 'api',
321
321
  version: 2,
@@ -349,7 +349,7 @@ describe('FanoutEngine', () => {
349
349
  });
350
350
  await fanoutWithHooks.send(UserCreatedEvent, event);
351
351
  const envelope = transport.send.mock
352
- .calls[0][1];
352
+ .calls[0]?.[1];
353
353
  expect(envelope.docket.metadata).toEqual({
354
354
  environment: 'test',
355
355
  hostname: 'test-host',
@@ -368,7 +368,7 @@ describe('FanoutEngine', () => {
368
368
  });
369
369
  await fanout.send(UserCreatedEvent, event);
370
370
  const envelope = transport.send.mock
371
- .calls[0][1];
371
+ .calls[0]?.[1];
372
372
  expect(envelope.docket.metadata).toEqual({});
373
373
  });
374
374
  });
@@ -531,9 +531,9 @@ describe('FanoutEngine', () => {
531
531
  expect(result.subscribersSent).toBe(0);
532
532
  expect(result.subscribersSkipped).toBe(0);
533
533
  expect(result.errors).toHaveLength(1);
534
- expect(result.errors[0].subscriberName).toBe('handle-user');
535
- expect(result.errors[0].queue).toBe('test.events');
536
- expect(result.errors[0].error).toBeInstanceOf(TransportSendError);
534
+ expect(result.errors[0]?.subscriberName).toBe('handle-user');
535
+ expect(result.errors[0]?.queue).toBe('test.events');
536
+ expect(result.errors[0]?.error).toBeInstanceOf(TransportSendError);
537
537
  });
538
538
  it('should continue sending to other subscribers after one fails', async () => {
539
539
  const failingTransport = {
@@ -573,7 +573,7 @@ describe('FanoutEngine', () => {
573
573
  expect(result.subscribersSent).toBe(1);
574
574
  expect(result.subscribersSkipped).toBe(0);
575
575
  expect(result.errors).toHaveLength(1);
576
- expect(result.errors[0].subscriberName).toBe('subscriber-1');
576
+ expect(result.errors[0]?.subscriberName).toBe('subscriber-1');
577
577
  });
578
578
  it('should wrap non-Error throws as Error in TransportSendError', async () => {
579
579
  const failingTransport = {
@@ -601,8 +601,8 @@ describe('FanoutEngine', () => {
601
601
  });
602
602
  const result = await fanoutWithFailingTransport.send(UserCreatedEvent, event);
603
603
  expect(result.errors).toHaveLength(1);
604
- expect(result.errors[0].error).toBeInstanceOf(TransportSendError);
605
- expect(result.errors[0].error.message).toContain('test.events');
604
+ expect(result.errors[0]?.error).toBeInstanceOf(TransportSendError);
605
+ expect(result.errors[0]?.error.message).toContain('test.events');
606
606
  });
607
607
  });
608
608
  describe('eventsBeingEnqueuedCount tracking', () => {
@@ -741,7 +741,7 @@ describe('FanoutEngine', () => {
741
741
  };
742
742
  await fanout.send(UserCreatedEvent, event, options);
743
743
  const envelope = transport.send.mock
744
- .calls[0][1];
744
+ .calls[0]?.[1];
745
745
  expect(envelope.docket.correlationId).toBe('corr-123');
746
746
  });
747
747
  it('should propagate same correlation ID to all subscribers', async () => {
@@ -765,8 +765,8 @@ describe('FanoutEngine', () => {
765
765
  };
766
766
  await fanout.send(UserCreatedEvent, event, options);
767
767
  const calls = transport.send.mock.calls;
768
- const envelope1 = calls[0][1];
769
- const envelope2 = calls[1][1];
768
+ const envelope1 = calls[0]?.[1];
769
+ const envelope2 = calls[1]?.[1];
770
770
  expect(envelope1.docket.correlationId).toBe('corr-456');
771
771
  expect(envelope2.docket.correlationId).toBe('corr-456');
772
772
  });
@@ -783,7 +783,7 @@ describe('FanoutEngine', () => {
783
783
  });
784
784
  await fanout.send(UserCreatedEvent, event);
785
785
  const envelope = transport.send.mock
786
- .calls[0][1];
786
+ .calls[0]?.[1];
787
787
  expect(envelope.docket.correlationId).toBeUndefined();
788
788
  });
789
789
  });
@@ -992,7 +992,7 @@ describe('FanoutEngine', () => {
992
992
  };
993
993
  await fanout.send(UserCreatedEvent, event, options);
994
994
  const envelope = transport.send.mock
995
- .calls[0][1];
995
+ .calls[0]?.[1];
996
996
  expect(envelope.docket.scheduledFor).toBeDefined();
997
997
  if (envelope.docket.scheduledFor) {
998
998
  const scheduledTime = new Date(envelope.docket.scheduledFor).getTime();
@@ -1031,7 +1031,7 @@ describe('FanoutEngine', () => {
1031
1031
  });
1032
1032
  await fanout.send(UserCreatedEvent, event);
1033
1033
  const envelope = transport.send.mock
1034
- .calls[0][1];
1034
+ .calls[0]?.[1];
1035
1035
  expect(envelope.docket.importance).toBe('must-investigate');
1036
1036
  });
1037
1037
  it('should default to should-investigate when importance not specified', async () => {
@@ -1047,7 +1047,7 @@ describe('FanoutEngine', () => {
1047
1047
  });
1048
1048
  await fanout.send(UserCreatedEvent, event);
1049
1049
  const envelope = transport.send.mock
1050
- .calls[0][1];
1050
+ .calls[0]?.[1];
1051
1051
  expect(envelope.docket.importance).toBe('should-investigate');
1052
1052
  });
1053
1053
  });
@@ -1 +1 @@
1
- {"version":3,"file":"matador.d.ts","sourceRoot":"","sources":["../../src/core/matador.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAO/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,KAAK,EACL,UAAU,EACV,YAAY,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGnE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAE/B,sDAAsD;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAErD,sCAAsC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAEnC,0BAA0B;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAE/C,6BAA6B;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAE9D;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;;GASG;AACH,qBAAa,OAAQ,YAAW,UAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IACpD,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;;OAMG;gBACS,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,YAAY;IA4CvD;;OAEG;IACH,QAAQ,CAAC,CAAC,EACR,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,WAAW,EAAE,SAAS,aAAa,EAAE,GACpC,IAAI;IAKP;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAc3C;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+D5B;;;;;;;;;;;;OAYG;IACG,IAAI,CAAC,CAAC,EACV,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,UAAU,CAAC;IAChB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAkC3E;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACG,WAAW,CAAC,SAAS,SAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAatD;;;;;;;;;;;OAWG;IACG,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAQvC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B;;OAEG;IACH,WAAW,IAAI,OAAO;YAIR,cAAc;CAM7B"}
1
+ {"version":3,"file":"matador.d.ts","sourceRoot":"","sources":["../../src/core/matador.ts"],"names":[],"mappings":"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"}
@@ -170,13 +170,11 @@ export class Matador {
170
170
  const event = new eventClass(data);
171
171
  return this.fanout.send(eventClass, event, options);
172
172
  }
173
- else {
174
- // Called as: send(event, options?)
175
- const event = eventOrClass;
176
- const options = dataOrOptions;
177
- const eventClass = event.constructor;
178
- return this.fanout.send(eventClass, event, options);
179
- }
173
+ // Called as: send(event, options?)
174
+ const event = eventOrClass;
175
+ const options = dataOrOptions;
176
+ const eventClass = event.constructor;
177
+ return this.fanout.send(eventClass, event, options);
180
178
  }
181
179
  /**
182
180
  * Gets current handler state.
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint-errors.d.ts","sourceRoot":"","sources":["../../src/errors/checkpoint-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;aASjC,GAAG,EAAE,MAAM;aACX,cAAc,EAAE,MAAM;IATxC,QAAQ,CAAC,WAAW,SAKmB;gBAGrB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM;CAOzC;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;aAOlC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ;aACnC,UAAU,EAAE,MAAM;aAClB,KAAK,EAAE,KAAK;IAR9B,QAAQ,CAAC,WAAW,SAGsD;gBAGxD,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,EACnC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK;CAM/B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,mBAAmB,CAE9B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oBAAoB,CAE/B"}
1
+ {"version":3,"file":"checkpoint-errors.d.ts","sourceRoot":"","sources":["../../src/errors/checkpoint-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;aASjC,GAAG,EAAE,MAAM;aACX,cAAc,EAAE,MAAM;IATxC,QAAQ,CAAC,WAAW,SAKmB;gBAGrB,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM;CAMzC;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;aAOlC,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ;aACnC,UAAU,EAAE,MAAM;aAClB,KAAK,EAAE,KAAK;IAR9B,QAAQ,CAAC,WAAW,SAGsD;gBAGxD,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,EACnC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,KAAK;CAM/B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,mBAAmB,CAE9B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,oBAAoB,CAE/B"}
@@ -12,8 +12,7 @@ export class DuplicateIoKeyError extends MatadorError {
12
12
  'For dynamic operations (e.g., loops), include a unique identifier in the key ' +
13
13
  '(e.g., `process-item-${item.id}`).';
14
14
  constructor(key, subscriberName) {
15
- super(`Duplicate io key "${key}" in subscriber "${subscriberName}". ` +
16
- `Each io() call must have a unique key.`);
15
+ super(`Duplicate io key "${key}" in subscriber "${subscriberName}". Each io() call must have a unique key.`);
17
16
  this.key = key;
18
17
  this.subscriberName = subscriberName;
19
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"matador-errors.d.ts","sourceRoot":"","sources":["../../src/errors/matador-errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,8BAAsB,YAAa,SAAQ,KAAK;IAC9C;;;OAGG;IACH,SAAiB,IAAI,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAE1B,OAAO,EAAE,MAAM;IAY3B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQlC;AAMD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,QAAQ,CAAC,WAAW,SAGkD;gBAE1D,SAAS,SAAc;CAKpC;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;IACvD,QAAQ,CAAC,WAAW,SAI4C;;CAKjE;AAMD;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,YAAY;aAQxC,aAAa,EAAE,MAAM;IAPvC,QAAQ,CAAC,WAAW,SAI+C;gBAGjD,aAAa,EAAE,MAAM,EACrC,SAAS,SAAc;CAO1B;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;aAOxB,aAAa,EAAE,MAAM;IANjD,QAAQ,CAAC,WAAW,SAIkC;gBAE1B,aAAa,EAAE,MAAM;CAKlD;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,YAAY;aAStC,KAAK,EAAE,MAAM;aACb,MAAM,EAAE,SAAS,KAAK,EAAE;IAT1C,QAAQ,CAAC,WAAW,SAK4C;gBAG9C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,KAAK,EAAE;CAO3C;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;aAUhC,KAAK,EAAE,MAAM;aACb,KAAK,EAAE,KAAK;IAV9B,QAAQ,CAAC,WAAW,SAM+C;gBAGjD,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK;IAKrB,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAU3C;AAED;;GAEG;AACH,qBAAa,gCAAiC,SAAQ,YAAY;aAQpC,aAAa,EAAE,MAAM;IAPjD,QAAQ,CAAC,WAAW,SAKkE;gBAE1D,aAAa,EAAE,MAAM;CAMlD;AAMD;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;aAO3B,QAAQ,EAAE,MAAM;IAN5C,QAAQ,CAAC,WAAW,SAI0D;gBAElD,QAAQ,EAAE,MAAM;CAM7C;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,YAAY;aAU1C,cAAc,EAAE,MAAM;aACtB,QAAQ,CAAC,EAAE,MAAM;IAVnC,QAAQ,CAAC,WAAW,SAMmC;gBAGrC,cAAc,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,YAAA;CAQpC;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;aAO3B,QAAQ,EAAE,MAAM;IAN5C,QAAQ,CAAC,WAAW,SAIiE;gBAEzD,QAAQ,EAAE,MAAM;CAM7C;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;aAWhC,KAAK,CAAC,EAAE,MAAM;IAVhC,QAAQ,CAAC,WAAW,SAM+B;gBAGjD,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,MAAM,YAAA;CAIjC;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;aAQzB,cAAc,EAAE,MAAM;IAPlD,QAAQ,CAAC,WAAW,SAK4D;gBAEpD,cAAc,EAAE,MAAM;CAMnD;AAED;;GAEG;AACH,qBAAa,oCAAqC,SAAQ,YAAY;aAOxC,cAAc,EAAE,MAAM;IANlD,QAAQ,CAAC,WAAW,SAIuE;gBAE/D,cAAc,EAAE,MAAM;CAMnD;AAMD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;aAOtB,SAAS,EAAE,MAAM;IAN7C,QAAQ,CAAC,WAAW,SAI2C;gBAEnC,SAAS,EAAE,MAAM;CAM9C;AAMD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;aAU/B,KAAK,CAAC,EAAE,MAAM;IAThC,QAAQ,CAAC,WAAW,SAKqC;gBAGvD,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,MAAM,YAAA;CAIjC;AAMD;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,YAAY;aAWvC,OAAO,EAAE,MAAM;aACf,aAAa,EAAE,MAAM;aACrB,aAAa,EAAE,MAAM;IAZvC,QAAQ,CAAC,WAAW,SAOyC;gBAG3C,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM;CAOxC;AAED;;GAEG;AACH,qBAAa,iCAAkC,SAAQ,YAAY;aAU/C,OAAO,EAAE,MAAM;aACf,cAAc,EAAE,MAAM;IAVxC,QAAQ,CAAC,WAAW,SAMqD;gBAGvD,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM;CAOzC;AAMD;;GAEG;AACH,qBAAa,YAAa,SAAQ,YAAY;aAS1B,SAAS,EAAE,MAAM;aACjB,SAAS,EAAE,MAAM;IATnC,QAAQ,CAAC,WAAW,SAKyC;gBAG3C,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM;CAIpC;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAE1E;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,0BAA0B,CAErC;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,uBAAuB,CAElC;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,4BAA4B,CAEvC;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,yBAAyB,CAEpC;AAED,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,iCAAiC,CAE5C"}
1
+ {"version":3,"file":"matador-errors.d.ts","sourceRoot":"","sources":["../../src/errors/matador-errors.ts"],"names":[],"mappings":"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"}
@@ -69,8 +69,7 @@ export class TransportNotConnectedError extends MatadorError {
69
69
  'Check that the broker (e.g., RabbitMQ) is running and accessible. ' +
70
70
  'Verify connection settings (URL, credentials, network access).';
71
71
  constructor(transportName, operation = 'operation') {
72
- super(`Cannot perform ${operation}: Transport "${transportName}" is not connected. ` +
73
- `Ensure connect() was called and the broker is accessible.`);
72
+ super(`Cannot perform ${operation}: Transport "${transportName}" is not connected. Ensure connect() was called and the broker is accessible.`);
74
73
  this.transportName = transportName;
75
74
  }
76
75
  }
@@ -145,8 +144,8 @@ export class DelayedMessagesNotSupportedError extends MatadorError {
145
144
  'Then restart RabbitMQ and reconnect. ' +
146
145
  'Alternatively, remove delayMs from your event options if delays are not required.';
147
146
  constructor(transportName) {
148
- super(`Delayed messages require the RabbitMQ delayed message exchange plugin. ` +
149
- `Install rabbitmq_delayed_message_exchange or remove delayMs from event options.`);
147
+ super('Delayed messages require the RabbitMQ delayed message exchange plugin. ' +
148
+ 'Install rabbitmq_delayed_message_exchange or remove delayMs from event options.');
150
149
  this.transportName = transportName;
151
150
  }
152
151
  }
@@ -163,8 +162,7 @@ export class EventNotRegisteredError extends MatadorError {
163
162
  'If this occurs during message consumption, it may indicate schema drift between services. ' +
164
163
  'Ensure all services have matching schema registrations for shared events.';
165
164
  constructor(eventKey) {
166
- super(`Event "${eventKey}" is not registered in schema. ` +
167
- `Register it using matador.register(EventClass, subscribers).`);
165
+ super(`Event "${eventKey}" is not registered in schema. Register it using matador.register(EventClass, subscribers).`);
168
166
  this.eventKey = eventKey;
169
167
  }
170
168
  }
@@ -181,9 +179,7 @@ export class SubscriberNotRegisteredError extends MatadorError {
181
179
  '(3) A deployment is in progress with different schema versions. ' +
182
180
  'Check the dead-letter queue for affected messages.';
183
181
  constructor(subscriberName, eventKey) {
184
- super(`Subscriber "${subscriberName}" is not registered` +
185
- (eventKey ? ` for event "${eventKey}"` : '') +
186
- '. Check schema registration.');
182
+ super(`Subscriber "${subscriberName}" is not registered${eventKey ? ` for event "${eventKey}"` : ''}. Check schema registration.`);
187
183
  this.subscriberName = subscriberName;
188
184
  this.eventKey = eventKey;
189
185
  }
@@ -198,8 +194,7 @@ export class NoSubscribersExistError extends MatadorError {
198
194
  'If subscribers were intentionally removed, consider also removing the event dispatch. ' +
199
195
  'Events without subscribers are not useful and may indicate configuration issues.';
200
196
  constructor(eventKey) {
201
- super(`No subscribers registered for event "${eventKey}". ` +
202
- `Add subscribers using matador.register(EventClass, [subscriber1, subscriber2]).`);
197
+ super(`No subscribers registered for event "${eventKey}". Add subscribers using matador.register(EventClass, [subscriber1, subscriber2]).`);
203
198
  this.eventKey = eventKey;
204
199
  }
205
200
  }
@@ -215,7 +210,7 @@ export class InvalidSchemaError extends MatadorError {
215
210
  '(3) Invalid alias configuration. ' +
216
211
  'Check the cause property for specific details.';
217
212
  constructor(message, cause) {
218
- super(`Invalid schema: ${message}` + (cause ? `. Cause: ${cause}` : ''));
213
+ super(`Invalid schema: ${message}${cause ? `. Cause: ${cause}` : ''}`);
219
214
  this.cause = cause;
220
215
  }
221
216
  }
@@ -230,8 +225,7 @@ export class SubscriberIsStubError extends MatadorError {
230
225
  'In the consumer service, provide a full Subscriber with a callback function. ' +
231
226
  'Remove the stub from the consumer schema and add the actual implementation.';
232
227
  constructor(subscriberName) {
233
- super(`Subscriber "${subscriberName}" is a stub and cannot be processed locally. ` +
234
- `Replace with a full Subscriber implementation in the consumer schema.`);
228
+ super(`Subscriber "${subscriberName}" is a stub and cannot be processed locally. Replace with a full Subscriber implementation in the consumer schema.`);
235
229
  this.subscriberName = subscriberName;
236
230
  }
237
231
  }
@@ -245,8 +239,7 @@ export class LocalTransportCannotProcessStubError extends MatadorError {
245
239
  'If using LocalTransport for testing, provide mock implementations instead of stubs. ' +
246
240
  'For production fallback scenarios, be aware that stub-targeted events will be dropped.';
247
241
  constructor(subscriberName) {
248
- super(`LocalTransport cannot process stub subscriber "${subscriberName}". ` +
249
- `Stub subscribers require a distributed transport like RabbitMQ.`);
242
+ super(`LocalTransport cannot process stub subscriber "${subscriberName}". Stub subscribers require a distributed transport like RabbitMQ.`);
250
243
  this.subscriberName = subscriberName;
251
244
  }
252
245
  }
@@ -263,8 +256,7 @@ export class QueueNotFoundError extends MatadorError {
263
256
  'Call transport.applyTopology() or matador.start() to create queues. ' +
264
257
  'Check that the queue name matches the topology definition.';
265
258
  constructor(queueName) {
266
- super(`Queue "${queueName}" not found. ` +
267
- `Ensure it is defined in topology and applyTopology() was called.`);
259
+ super(`Queue "${queueName}" not found. Ensure it is defined in topology and applyTopology() was called.`);
268
260
  this.queueName = queueName;
269
261
  }
270
262
  }
@@ -282,7 +274,7 @@ export class InvalidEventError extends MatadorError {
282
274
  'null/undefined data when the event type requires data, ' +
283
275
  'malformed event structure from codec decode failure.';
284
276
  constructor(message, cause) {
285
- super(`Invalid event: ${message}` + (cause ? `. Cause: ${cause}` : ''));
277
+ super(`Invalid event: ${message}${cause ? `. Cause: ${cause}` : ''}`);
286
278
  this.cause = cause;
287
279
  }
288
280
  }
@@ -304,8 +296,7 @@ export class MessageMaybePoisonedError extends MatadorError {
304
296
  '(4) Consider increasing processing timeout if the operation is legitimately slow. ' +
305
297
  'This message will NOT be retried to prevent crash loops.';
306
298
  constructor(eventId, deliveryCount, maxDeliveries) {
307
- super(`Message "${eventId}" delivered ${deliveryCount} times (max: ${maxDeliveries}). ` +
308
- `Possible poison message - will not be retried.`);
299
+ super(`Message "${eventId}" delivered ${deliveryCount} times (max: ${maxDeliveries}). Possible poison message - will not be retried.`);
309
300
  this.eventId = eventId;
310
301
  this.deliveryCount = deliveryCount;
311
302
  this.maxDeliveries = maxDeliveries;
@@ -324,8 +315,7 @@ export class IdempotentMessageCannotRetryError extends MatadorError {
324
315
  '(3) Manually inspect and replay the message from the dead-letter queue after verification. ' +
325
316
  'The message will be sent to the dead-letter queue for manual review.';
326
317
  constructor(eventId, subscriberName) {
327
- super(`Non-idempotent subscriber "${subscriberName}" cannot retry redelivered message "${eventId}". ` +
328
- `Mark subscriber as idempotent='yes' or implement idempotency handling.`);
318
+ super(`Non-idempotent subscriber "${subscriberName}" cannot retry redelivered message "${eventId}". Mark subscriber as idempotent='yes' or implement idempotency handling.`);
329
319
  this.eventId = eventId;
330
320
  this.subscriberName = subscriberName;
331
321
  }
@@ -1,6 +1,6 @@
1
1
  import { describe, expect, it } from 'bun:test';
2
2
  import { createEnvelope } from '../types/envelope.js';
3
- import { assertEvent, DontRetry, DoRetry, EventAssertionError, isAssertionError, isDontRetry, isDoRetry, } from './retry-errors.js';
3
+ import { DoRetry, DontRetry, EventAssertionError, assertEvent, isAssertionError, isDoRetry, isDontRetry, } from './retry-errors.js';
4
4
  function createTestEnvelope(data = { foo: 'bar' }) {
5
5
  return createEnvelope({
6
6
  data,