@horizon-republic/nestjs-jetstream 2.1.0 → 2.2.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.
Files changed (35) hide show
  1. package/README.md +54 -3
  2. package/dist/client/jetstream.client.d.ts +4 -0
  3. package/dist/client/jetstream.client.d.ts.map +1 -1
  4. package/dist/client/jetstream.client.js +49 -18
  5. package/dist/client/jetstream.client.js.map +1 -1
  6. package/dist/hooks/event-bus.d.ts.map +1 -1
  7. package/dist/hooks/event-bus.js +5 -0
  8. package/dist/hooks/event-bus.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/interfaces/hooks.interface.d.ts +26 -1
  13. package/dist/interfaces/hooks.interface.d.ts.map +1 -1
  14. package/dist/interfaces/hooks.interface.js +1 -0
  15. package/dist/interfaces/hooks.interface.js.map +1 -1
  16. package/dist/interfaces/index.d.ts +1 -1
  17. package/dist/interfaces/index.d.ts.map +1 -1
  18. package/dist/interfaces/options.interface.d.ts +24 -0
  19. package/dist/interfaces/options.interface.d.ts.map +1 -1
  20. package/dist/jetstream.module.d.ts +6 -0
  21. package/dist/jetstream.module.d.ts.map +1 -1
  22. package/dist/jetstream.module.js +20 -1
  23. package/dist/jetstream.module.js.map +1 -1
  24. package/dist/server/routing/event.router.d.ts +19 -3
  25. package/dist/server/routing/event.router.d.ts.map +1 -1
  26. package/dist/server/routing/event.router.js +42 -2
  27. package/dist/server/routing/event.router.js.map +1 -1
  28. package/dist/server/routing/index.d.ts +1 -0
  29. package/dist/server/routing/index.d.ts.map +1 -1
  30. package/dist/server/routing/index.js.map +1 -1
  31. package/dist/utils/unwrap-result.d.ts +8 -4
  32. package/dist/utils/unwrap-result.d.ts.map +1 -1
  33. package/dist/utils/unwrap-result.js +34 -22
  34. package/dist/utils/unwrap-result.js.map +1 -1
  35. package/package.json +3 -2
package/README.md CHANGED
@@ -252,6 +252,9 @@ interface JetstreamModuleOptions {
252
252
  /** Transport lifecycle hook handlers. Unset hooks fall back to NestJS Logger. */
253
253
  hooks?: Partial<TransportHooks>;
254
254
 
255
+ /** Async callback for dead letter handling. See Dead Letter Queue section below. */
256
+ onDeadLetter?: (info: DeadLetterInfo) => Promise<void>;
257
+
255
258
  /**
256
259
  * Graceful shutdown timeout in ms.
257
260
  * @default 10_000
@@ -610,6 +613,53 @@ JetstreamModule.forRoot({
610
613
  | `messageRouted` | `(subject: string, kind: 'rpc' \| 'event')` | `Logger.debug` |
611
614
  | `shutdownStart` | `()` | `Logger.log` |
612
615
  | `shutdownComplete` | `()` | `Logger.log` |
616
+ | `deadLetter` | `(info: DeadLetterInfo)` | `Logger.warn` |
617
+
618
+ ### Dead Letter Queue (DLQ)
619
+
620
+ When an event handler fails on every delivery attempt (`max_deliver`), the message becomes a "dead letter." By default, NATS terminates it silently. Configure `onDeadLetter` to intercept these messages:
621
+
622
+ ```typescript
623
+ JetstreamModule.forRoot({
624
+ name: 'my-service',
625
+ servers: ['nats://localhost:4222'],
626
+ onDeadLetter: async (info) => {
627
+ // Persist to your DLQ store (database, S3, another queue, etc.)
628
+ await dlqRepository.save({
629
+ subject: info.subject,
630
+ data: info.data,
631
+ error: String(info.error),
632
+ deliveryCount: info.deliveryCount,
633
+ stream: info.stream,
634
+ timestamp: info.timestamp,
635
+ });
636
+ },
637
+ });
638
+ ```
639
+
640
+ **Behavior:**
641
+ - Hook is awaited before `msg.term()` — if it succeeds, the message is terminated
642
+ - If the hook throws, the message is `nak()`'d for retry (NATS redelivers it)
643
+ - `TransportEvent.DeadLetter` is emitted for observability regardless of the hook
644
+ - Applies only to events (workqueue + broadcast), not RPC
645
+
646
+ **With dependency injection (`forRootAsync`):**
647
+
648
+ ```typescript
649
+ import { JETSTREAM_CONNECTION } from '@horizon-republic/nestjs-jetstream';
650
+
651
+ JetstreamModule.forRootAsync({
652
+ name: 'my-service',
653
+ imports: [DlqModule],
654
+ inject: [DlqService, JETSTREAM_CONNECTION],
655
+ useFactory: (dlqService: DlqService, connection: ConnectionProvider) => ({
656
+ servers: ['nats://localhost:4222'],
657
+ onDeadLetter: async (info) => {
658
+ await dlqService.persist(info);
659
+ },
660
+ }),
661
+ });
662
+ ```
613
663
 
614
664
  ## Health Checks
615
665
 
@@ -646,9 +696,9 @@ const status = await this.jetstream.check();
646
696
  // { connected: true, server: 'nats://localhost:4222', latency: 2 }
647
697
  ```
648
698
 
649
- | Method | Returns | Throws |
650
- |--------|---------|--------|
651
- | `check()` | `JetstreamHealthStatus` | Never |
699
+ | Method | Returns | Throws |
700
+ |-------------------|------------------------------------|------------------------------------|
701
+ | `check()` | `JetstreamHealthStatus` | Never |
652
702
  | `isHealthy(key?)` | `{ [key]: { status: 'up', ... } }` | On unhealthy (Terminus convention) |
653
703
 
654
704
  ## Graceful Shutdown
@@ -891,6 +941,7 @@ nanos
891
941
 
892
942
  // Types
893
943
  Codec
944
+ DeadLetterInfo
894
945
  JetstreamModuleOptions
895
946
  JetstreamModuleAsyncOptions
896
947
  JetstreamFeatureOptions
@@ -30,6 +30,8 @@ export declare class JetstreamClient extends ClientProxy {
30
30
  private readonly pendingMessages;
31
31
  /** Pending JetStream-mode RPC timeouts, keyed by correlation ID. */
32
32
  private readonly pendingTimeouts;
33
+ /** Subscription to connection status events for disconnect handling. */
34
+ private statusSubscription;
33
35
  constructor(rootOptions: JetstreamModuleOptions, targetServiceName: string, connection: ConnectionProvider, codec: Codec, eventBus: EventBus);
34
36
  /** Establish connection. Called automatically by NestJS on first use. */
35
37
  connect(): Promise<NatsConnection>;
@@ -55,6 +57,8 @@ export declare class JetstreamClient extends ClientProxy {
55
57
  private publishCoreRpc;
56
58
  /** JetStream mode: publish to stream + wait for inbox response. */
57
59
  private publishJetStreamRpc;
60
+ /** Fail-fast all pending JetStream RPC callbacks on connection loss. */
61
+ private handleDisconnect;
58
62
  /** Setup shared inbox subscription for JetStream RPC responses. */
59
63
  private setupInbox;
60
64
  /** Route an inbox reply to the matching pending callback. */
@@ -1 +1 @@
1
- {"version":3,"file":"jetstream.client.d.ts","sourceRoot":"","sources":["../../src/client/jetstream.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAKL,cAAc,EAEf,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,KAAK,EACV,KAAK,EAEL,sBAAsB,EAEvB,MAAM,eAAe,CAAC;AAYvB;;;;;;;;;;;GAWG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAiB5C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IApB3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IAEzD,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,qDAAqD;IACrD,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,iBAAiB,CAA6B;IAEtD,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+C;IAE/E,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoD;gBAGjE,WAAW,EAAE,sBAAsB,EACpD,iBAAiB,EAAE,MAAM,EACR,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ;IAMrC,yEAAyE;IAC5D,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAW/C,0BAA0B;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYnC,gDAAgD;IAChC,MAAM,CAAC,CAAC,GAAG,cAAc,KAAK,CAAC;IAI/C;;;;;OAKG;cACa,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;IAkB1E;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;IA0CrF,4CAA4C;YAC9B,cAAc;IAyC5B,mEAAmE;YACrD,mBAAmB;IAqDjC,mEAAmE;IACnE,OAAO,CAAC,UAAU;IAiBlB,6DAA6D;IAC7D,OAAO,CAAC,eAAe;IAyCvB,oDAAoD;IACpD,OAAO,CAAC,iBAAiB;IAWzB,wEAAwE;IACxE,OAAO,CAAC,YAAY;IA6BpB,kFAAkF;IAClF,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,aAAa;CAStB"}
1
+ {"version":3,"file":"jetstream.client.d.ts","sourceRoot":"","sources":["../../src/client/jetstream.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAML,cAAc,EAEf,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,KAAK,EACV,KAAK,EAEL,sBAAsB,EAEvB,MAAM,eAAe,CAAC;AAYvB;;;;;;;;;;;GAWG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAoB5C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAvB3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IAEzD,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC,qDAAqD;IACrD,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,iBAAiB,CAA6B;IAEtD,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+C;IAE/E,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoD;IAEpF,wEAAwE;IACxE,OAAO,CAAC,kBAAkB,CAA+B;gBAGtC,WAAW,EAAE,sBAAsB,EACpD,iBAAiB,EAAE,MAAM,EACR,UAAU,EAAE,kBAAkB,EAC9B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ;IAMrC,yEAAyE;IAC5D,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAkB/C,0BAA0B;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBnC,gDAAgD;IAChC,MAAM,CAAC,CAAC,GAAG,cAAc,KAAK,CAAC;IAI/C;;;;;OAKG;cACa,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;IAkB1E;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI;IA0CrF,4CAA4C;YAC9B,cAAc;IAmC5B,mEAAmE;YACrD,mBAAmB;IAwDjC,wEAAwE;IACxE,OAAO,CAAC,gBAAgB;IAsBxB,mEAAmE;IACnE,OAAO,CAAC,UAAU;IAiBlB,6DAA6D;IAC7D,OAAO,CAAC,eAAe;IAyCvB,oDAAoD;IACpD,OAAO,CAAC,iBAAiB;IAWzB,wEAAwE;IACxE,OAAO,CAAC,YAAY;IA6BpB,kFAAkF;IAClF,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,aAAa;CAStB"}
@@ -34,6 +34,8 @@ class JetstreamClient extends microservices_1.ClientProxy {
34
34
  this.pendingMessages = new Map();
35
35
  /** Pending JetStream-mode RPC timeouts, keyed by correlation ID. */
36
36
  this.pendingTimeouts = new Map();
37
+ /** Subscription to connection status events for disconnect handling. */
38
+ this.statusSubscription = null;
37
39
  this.targetName = targetServiceName;
38
40
  }
39
41
  /** Establish connection. Called automatically by NestJS on first use. */
@@ -43,17 +45,30 @@ class JetstreamClient extends microservices_1.ClientProxy {
43
45
  if (this.isJetStreamRpcMode() && !this.inboxSubscription) {
44
46
  this.setupInbox(nc);
45
47
  }
48
+ // Subscribe to disconnect events (once)
49
+ this.statusSubscription ??= this.connection.status$.subscribe((status) => {
50
+ if (status.type === nats_1.Events.Disconnect) {
51
+ this.handleDisconnect();
52
+ }
53
+ });
46
54
  return nc;
47
55
  }
48
56
  /** Clean up resources. */
49
57
  async close() {
50
- this.inboxSubscription?.unsubscribe();
51
- this.inboxSubscription = null;
58
+ this.statusSubscription?.unsubscribe();
59
+ this.statusSubscription = null;
60
+ // Reject all pending JetStream RPC callbacks before clearing
61
+ const error = new Error('Client closed');
62
+ for (const callback of this.pendingMessages.values()) {
63
+ callback({ err: error, response: null, isDisposed: true });
64
+ }
52
65
  for (const timeoutId of this.pendingTimeouts.values()) {
53
66
  clearTimeout(timeoutId);
54
67
  }
55
- this.pendingTimeouts.clear();
56
68
  this.pendingMessages.clear();
69
+ this.pendingTimeouts.clear();
70
+ this.inboxSubscription?.unsubscribe();
71
+ this.inboxSubscription = null;
57
72
  }
58
73
  /** Direct access to the raw NATS connection. */
59
74
  unwrap() {
@@ -89,7 +104,7 @@ class JetstreamClient extends microservices_1.ClientProxy {
89
104
  const { data, hdrs, timeout } = this.extractRecordData(packet.data);
90
105
  const onUnhandled = (err) => {
91
106
  this.logger.error('Unhandled publish error:', err);
92
- callback({ err: 'Internal transport error', response: null, isDisposed: true });
107
+ callback({ err: new Error('Internal transport error'), response: null, isDisposed: true });
93
108
  };
94
109
  // Track correlation ID for cleanup in JetStream mode
95
110
  let jetStreamCorrelationId = null;
@@ -133,13 +148,10 @@ class JetstreamClient extends microservices_1.ClientProxy {
133
148
  }
134
149
  }
135
150
  catch (err) {
151
+ const error = err instanceof Error ? err : new Error('Unknown error');
136
152
  this.logger.error(`Core RPC error (${subject}):`, err);
137
- this.eventBus.emit(interfaces_1.TransportEvent.Error, err instanceof Error ? err : new Error(String(err)), 'client-rpc');
138
- callback({
139
- err: err instanceof Error ? err.message : 'Unknown error',
140
- response: null,
141
- isDisposed: true,
142
- });
153
+ this.eventBus.emit(interfaces_1.TransportEvent.Error, error, 'client-rpc');
154
+ callback({ err: error, response: null, isDisposed: true });
143
155
  }
144
156
  }
145
157
  /** JetStream mode: publish to stream + wait for inbox response. */
@@ -148,11 +160,13 @@ class JetstreamClient extends microservices_1.ClientProxy {
148
160
  const effectiveTimeout = timeout ?? this.getRpcTimeout();
149
161
  this.pendingMessages.set(correlationId, callback);
150
162
  const timeoutId = setTimeout(() => {
163
+ if (!this.pendingMessages.has(correlationId))
164
+ return;
151
165
  this.pendingTimeouts.delete(correlationId);
152
166
  this.pendingMessages.delete(correlationId);
153
167
  this.logger.error(`JetStream RPC timeout (${effectiveTimeout}ms): ${subject}`);
154
168
  this.eventBus.emit(interfaces_1.TransportEvent.RpcTimeout, subject, correlationId);
155
- callback({ err: 'RPC timeout', response: null, isDisposed: true });
169
+ callback({ err: new Error('RPC timeout'), response: null, isDisposed: true });
156
170
  }, effectiveTimeout);
157
171
  this.pendingTimeouts.set(correlationId, timeoutId);
158
172
  try {
@@ -173,14 +187,31 @@ class JetstreamClient extends microservices_1.ClientProxy {
173
187
  catch (err) {
174
188
  clearTimeout(timeoutId);
175
189
  this.pendingTimeouts.delete(correlationId);
176
- this.logger.error(`JetStream RPC publish error (${subject}):`, err);
177
- callback({
178
- err: err instanceof Error ? err.message : 'Unknown error',
179
- response: null,
180
- isDisposed: true,
181
- });
190
+ if (!this.pendingMessages.has(correlationId))
191
+ return;
182
192
  this.pendingMessages.delete(correlationId);
193
+ const error = err instanceof Error ? err : new Error('Unknown error');
194
+ this.logger.error(`JetStream RPC publish error (${subject}):`, err);
195
+ callback({ err: error, response: null, isDisposed: true });
196
+ }
197
+ }
198
+ /** Fail-fast all pending JetStream RPC callbacks on connection loss. */
199
+ handleDisconnect() {
200
+ const error = new Error('Connection lost');
201
+ // Reject all pending callbacks
202
+ for (const callback of this.pendingMessages.values()) {
203
+ callback({ err: error, response: null, isDisposed: true });
204
+ }
205
+ // Clear timeouts
206
+ for (const timeoutId of this.pendingTimeouts.values()) {
207
+ clearTimeout(timeoutId);
183
208
  }
209
+ this.pendingMessages.clear();
210
+ this.pendingTimeouts.clear();
211
+ // Reset inbox — will be recreated on next connect()
212
+ this.inboxSubscription?.unsubscribe();
213
+ this.inboxSubscription = null;
214
+ this.inbox = null;
184
215
  }
185
216
  /** Setup shared inbox subscription for JetStream RPC responses. */
186
217
  setupInbox(nc) {
@@ -224,7 +255,7 @@ class JetstreamClient extends microservices_1.ClientProxy {
224
255
  }
225
256
  catch (err) {
226
257
  callback({
227
- err: err instanceof Error ? err.message : 'Decode error',
258
+ err: err instanceof Error ? err : new Error('Decode error'),
228
259
  response: null,
229
260
  isDisposed: true,
230
261
  });
@@ -1 +1 @@
1
- {"version":3,"file":"jetstream.client.js","sourceRoot":"","sources":["../../src/client/jetstream.client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jetstream.client.js","sourceRoot":"","sources":["../../src/client/jetstream.client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/hooks/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEb,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAKlE,4EAA4E;IACrE,IAAI,CAAC,CAAC,SAAS,MAAM,cAAc,EACxC,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GACrC,IAAI;IAkBP,yDAAyD;IACzD,OAAO,CAAC,cAAc;CA4BvB"}
1
+ {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/hooks/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEb,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAKlE,4EAA4E;IACrE,IAAI,CAAC,CAAC,SAAS,MAAM,cAAc,EACxC,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GACrC,IAAI;IAkBP,yDAAyD;IACzD,OAAO,CAAC,cAAc;CAmCvB"}
@@ -67,6 +67,11 @@ class EventBus {
67
67
  case interfaces_1.TransportEvent.ShutdownComplete:
68
68
  this.logger.log('Graceful shutdown complete');
69
69
  break;
70
+ case interfaces_1.TransportEvent.DeadLetter: {
71
+ const info = args[0];
72
+ this.logger.warn(`Dead letter: ${info?.subject ?? 'unknown'}`);
73
+ break;
74
+ }
70
75
  }
71
76
  }
72
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/hooks/event-bus.ts"],"names":[],"mappings":";;;AAEA,8CAA+C;AAG/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,QAAQ;IAInB,YAAmB,MAAc,EAAE,KAA+B;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,4EAA4E;IACrE,IAAI,CACT,KAAQ,EACR,GAAG,IAAmC;QAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACF,IAAkC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,SAAS,KAAK,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAC9E,CAAC;YACJ,CAAC;YAED,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,yDAAyD;IACjD,cAAc,CAAC,KAA2B,EAAE,IAAe;QACjE,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,2BAAc,CAAC,OAAO;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,2BAAc,CAAC,UAAU;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,2BAAc,CAAC,SAAS;gBAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,2BAAc,CAAC,KAAK;gBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,2BAAc,CAAC,UAAU;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9D,MAAM;YACR,KAAK,2BAAc,CAAC,aAAa;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,2BAAc,CAAC,aAAa;gBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,2BAAc,CAAC,gBAAgB;gBAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC9C,MAAM;QACV,CAAC;IACH,CAAC;CACF;AA5DD,4BA4DC"}
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/hooks/event-bus.ts"],"names":[],"mappings":";;;AAEA,8CAA+C;AAG/C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,QAAQ;IAInB,YAAmB,MAAc,EAAE,KAA+B;QAChE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,4EAA4E;IACrE,IAAI,CACT,KAAQ,EACR,GAAG,IAAmC;QAEtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACF,IAAkC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,SAAS,KAAK,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAC9E,CAAC;YACJ,CAAC;YAED,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,yDAAyD;IACjD,cAAc,CAAC,KAA2B,EAAE,IAAe;QACjE,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,2BAAc,CAAC,OAAO;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,2BAAc,CAAC,UAAU;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,2BAAc,CAAC,SAAS;gBAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,2BAAc,CAAC,KAAK;gBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChE,MAAM;YACR,KAAK,2BAAc,CAAC,UAAU;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9D,MAAM;YACR,KAAK,2BAAc,CAAC,aAAa;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM;YACR,KAAK,2BAAc,CAAC,aAAa;gBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,2BAAc,CAAC,gBAAgB;gBAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC9C,MAAM;YAER,KAAK,2BAAc,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAqC,CAAC;gBAEzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;gBAC/D,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAnED,4BAmEC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { JetstreamModule } from './jetstream.module';
2
2
  export { TransportEvent } from './interfaces';
3
- export type { Codec, JetstreamFeatureOptions, JetstreamModuleAsyncOptions, JetstreamModuleOptions, RpcConfig, StreamConsumerOverrides, TransportHooks, } from './interfaces';
3
+ export type { Codec, DeadLetterInfo, JetstreamFeatureOptions, JetstreamModuleAsyncOptions, JetstreamModuleOptions, RpcConfig, StreamConsumerOverrides, TransportHooks, } from './interfaces';
4
4
  export { JetstreamClient } from './client';
5
5
  export { JetstreamRecord, JetstreamRecordBuilder } from './client';
6
6
  export { JsonCodec } from './codec';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,YAAY,EACV,KAAK,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,SAAS,EACT,uBAAuB,EACvB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtD,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,GACN,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,YAAY,EACV,KAAK,EACL,cAAc,EACd,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,SAAS,EACT,uBAAuB,EACvB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAEpD,YAAY,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtD,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,GACN,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,SAAS;AACT,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,aAAa;AACb,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAYvB,SAAS;AACT,mCAA2C;AAAlC,yGAAA,eAAe,OAAA;AAExB,mCAAmE;AAA1D,yGAAA,eAAe,OAAA;AAAE,gHAAA,sBAAsB,OAAA;AAEhD,QAAQ;AACR,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,UAAU;AACV,qCAAuC;AAA9B,qGAAA,UAAU,OAAA;AAEnB,SAAS;AACT,mCAAoD;AAA3C,kHAAA,wBAAwB,OAAA;AAIjC,+CAA+C;AAC/C,6DAQ+B;AAP7B,qHAAA,cAAc,OAAA;AACd,sHAAA,eAAe,OAAA;AACf,sHAAA,eAAe,OAAA;AACf,2HAAA,oBAAoB,OAAA;AACpB,0HAAA,mBAAmB,OAAA;AACnB,wHAAA,iBAAiB,OAAA;AACjB,4GAAA,KAAK,OAAA;AAGP,QAAQ;AACR,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AAEjB,kCAAkC;AAClC,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,SAAS;AACT,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,aAAa;AACb,2CAA8C;AAArC,4GAAA,cAAc,OAAA;AAavB,SAAS;AACT,mCAA2C;AAAlC,yGAAA,eAAe,OAAA;AAExB,mCAAmE;AAA1D,yGAAA,eAAe,OAAA;AAAE,gHAAA,sBAAsB,OAAA;AAEhD,QAAQ;AACR,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,UAAU;AACV,qCAAuC;AAA9B,qGAAA,UAAU,OAAA;AAEnB,SAAS;AACT,mCAAoD;AAA3C,kHAAA,wBAAwB,OAAA;AAIjC,+CAA+C;AAC/C,6DAQ+B;AAP7B,qHAAA,cAAc,OAAA;AACd,sHAAA,eAAe,OAAA;AACf,sHAAA,eAAe,OAAA;AACf,2HAAA,oBAAoB,OAAA;AACpB,0HAAA,mBAAmB,OAAA;AACnB,wHAAA,iBAAiB,OAAA;AACjB,4GAAA,KAAK,OAAA;AAGP,QAAQ;AACR,iCAAmC;AAA1B,iGAAA,QAAQ,OAAA;AAEjB,kCAAkC;AAClC,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA"}
@@ -1,3 +1,4 @@
1
+ import type { MsgHdrs } from 'nats';
1
2
  export declare enum TransportEvent {
2
3
  Connect = "connect",
3
4
  Disconnect = "disconnect",
@@ -6,7 +7,8 @@ export declare enum TransportEvent {
6
7
  RpcTimeout = "rpcTimeout",
7
8
  MessageRouted = "messageRouted",
8
9
  ShutdownStart = "shutdownStart",
9
- ShutdownComplete = "shutdownComplete"
10
+ ShutdownComplete = "shutdownComplete",
11
+ DeadLetter = "deadLetter"
10
12
  }
11
13
  /**
12
14
  * Hook callbacks for transport lifecycle and operational events.
@@ -42,5 +44,28 @@ export interface TransportHooks {
42
44
  [TransportEvent.ShutdownStart](): void;
43
45
  /** Fired after graceful shutdown completes. */
44
46
  [TransportEvent.ShutdownComplete](): void;
47
+ /** Fired when a message exhausts all delivery attempts (dead letter). */
48
+ [TransportEvent.DeadLetter](info: DeadLetterInfo): void;
49
+ }
50
+ /**
51
+ * Context passed to the onDeadLetter callback when a message exhausts all delivery attempts.
52
+ */
53
+ export interface DeadLetterInfo {
54
+ /** The NATS subject the message was published to. */
55
+ subject: string;
56
+ /** Decoded message payload. */
57
+ data: unknown;
58
+ /** Message headers (raw NATS MsgHdrs). */
59
+ headers: MsgHdrs | undefined;
60
+ /** The error that caused the last handler failure. */
61
+ error: unknown;
62
+ /** How many times this message was delivered. */
63
+ deliveryCount: number;
64
+ /** The stream this message belongs to. */
65
+ stream: string;
66
+ /** The stream sequence number. */
67
+ streamSequence: number;
68
+ /** ISO timestamp of the message (derived from msg.info.timestampNanos). */
69
+ timestamp: string;
45
70
  }
46
71
  //# sourceMappingURL=hooks.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/hooks.interface.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;CACtC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/C,0CAA0C;IAC1C,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAEpC,uEAAuE;IACvE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjD,0CAA0C;IAC1C,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7D,qDAAqD;IACrD,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1E,mEAAmE;IACnE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;IAE7E,4DAA4D;IAC5D,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IAEvC,+CAA+C;IAC/C,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC;CAC3C"}
1
+ {"version":3,"file":"hooks.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/hooks.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;CAC1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/C,0CAA0C;IAC1C,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAEpC,uEAAuE;IACvE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjD,0CAA0C;IAC1C,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7D,qDAAqD;IACrD,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1E,mEAAmE;IACnE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;IAE7E,4DAA4D;IAC5D,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IAEvC,+CAA+C;IAC/C,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAE1C,yEAAyE;IACzE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,0CAA0C;IAC1C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,sDAAsD;IACtD,KAAK,EAAE,OAAO,CAAC;IACf,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -11,5 +11,6 @@ var TransportEvent;
11
11
  TransportEvent["MessageRouted"] = "messageRouted";
12
12
  TransportEvent["ShutdownStart"] = "shutdownStart";
13
13
  TransportEvent["ShutdownComplete"] = "shutdownComplete";
14
+ TransportEvent["DeadLetter"] = "deadLetter";
14
15
  })(TransportEvent || (exports.TransportEvent = TransportEvent = {}));
15
16
  //# sourceMappingURL=hooks.interface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.interface.js","sourceRoot":"","sources":["../../src/interfaces/hooks.interface.ts"],"names":[],"mappings":";;;AAAA,IAAY,cASX;AATD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,iCAAe,CAAA;IACf,2CAAyB,CAAA;IACzB,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,uDAAqC,CAAA;AACvC,CAAC,EATW,cAAc,8BAAd,cAAc,QASzB"}
1
+ {"version":3,"file":"hooks.interface.js","sourceRoot":"","sources":["../../src/interfaces/hooks.interface.ts"],"names":[],"mappings":";;;AAEA,IAAY,cAUX;AAVD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,iCAAe,CAAA;IACf,2CAAyB,CAAA;IACzB,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,uDAAqC,CAAA;IACrC,2CAAyB,CAAA;AAC3B,CAAC,EAVW,cAAc,8BAAd,cAAc,QAUzB"}
@@ -1,6 +1,6 @@
1
1
  export type { Codec } from './codec.interface';
2
2
  export { TransportEvent } from './hooks.interface';
3
- export type { TransportHooks } from './hooks.interface';
3
+ export type { DeadLetterInfo, TransportHooks } from './hooks.interface';
4
4
  export type { JetstreamFeatureOptions, JetstreamModuleAsyncOptions, JetstreamModuleOptions, RpcConfig, StreamConsumerOverrides, } from './options.interface';
5
5
  export type { StreamKind, SubjectKind } from './stream.interface';
6
6
  export type { TransportHeaderOptions, ExtractedRecordData } from './client.interface';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,YAAY,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,SAAS,EACT,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEtF,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExE,YAAY,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,SAAS,EACT,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEtF,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { FactoryProvider, ModuleMetadata, Type } from '@nestjs/common';
2
2
  import { ConnectionOptions, ConsumerConfig, StreamConfig } from 'nats';
3
3
  import { Codec } from './codec.interface';
4
+ import type { DeadLetterInfo } from './hooks.interface';
4
5
  import { TransportHooks } from './hooks.interface';
5
6
  /**
6
7
  * RPC transport configuration.
@@ -66,6 +67,29 @@ export interface JetstreamModuleOptions {
66
67
  * Unset hooks fall back to NestJS Logger.
67
68
  */
68
69
  hooks?: Partial<TransportHooks>;
70
+ /**
71
+ * Async callback invoked when an event message exhausts all delivery attempts.
72
+ * Called before msg.term(). If it throws, the message is nak'd for retry.
73
+ *
74
+ * Use this to persist dead letters to an external store (DB, S3, another queue).
75
+ * The NATS connection is available via `JETSTREAM_CONNECTION` token in forRootAsync.
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * JetstreamModule.forRootAsync({
80
+ * name: 'my-service',
81
+ * imports: [DlqModule],
82
+ * inject: [DlqService, JETSTREAM_CONNECTION],
83
+ * useFactory: (dlqService, connection) => ({
84
+ * servers: ['nats://localhost:4222'],
85
+ * onDeadLetter: async (info) => {
86
+ * await dlqService.persist(info);
87
+ * },
88
+ * }),
89
+ * })
90
+ * ```
91
+ */
92
+ onDeadLetter?(info: DeadLetterInfo): Promise<void>;
69
93
  /**
70
94
  * Graceful shutdown timeout in ms.
71
95
  * Handlers exceeding this are abandoned.
@@ -1 +1 @@
1
- {"version":3,"file":"options.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEvE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GACjB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACpC,CAAC;AAEN,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IAEb,wBAAwB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,EAAE,SAAS,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iDAAiD;IACjD,MAAM,CAAC,EAAE,uBAAuB,CAAC;IAEjC,iDAAiD;IACjD,SAAS,CAAC,EAAE,uBAAuB,CAAC;IAEpC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAEhC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChD;AAED,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IAEb,sDAAsD;IACtD,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;CACrC,GAAG,CACA;IACE,UAAU,CACR,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IACxF,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB,CACJ,CAAC"}
1
+ {"version":3,"file":"options.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEvE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GACjB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACpC,CAAC;AAEN,iEAAiE;AACjE,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IAEb,wBAAwB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;OAGG;IACH,GAAG,CAAC,EAAE,SAAS,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,iDAAiD;IACjD,MAAM,CAAC,EAAE,uBAAuB,CAAC;IAEjC,iDAAiD;IACjD,SAAS,CAAC,EAAE,uBAAuB,CAAC;IAEpC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,YAAY,CAAC,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChD;AAED,kDAAkD;AAClD,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IAEb,sDAAsD;IACtD,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;CACrC,GAAG,CACA;IACE,UAAU,CACR,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IACxF,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB,CACJ,CAAC"}
@@ -70,6 +70,12 @@ export declare class JetstreamModule implements OnApplicationShutdown {
70
70
  */
71
71
  static forFeature(options: JetstreamFeatureOptions): DynamicModule;
72
72
  /** Create all providers for synchronous forRoot(). */
73
+ /**
74
+ * Build a map of stream name -> max_deliver for dead letter detection.
75
+ * Each stream kind (ev, broadcast) has its own consumer config with potentially
76
+ * different max_deliver values.
77
+ */
78
+ private static buildMaxDeliverMap;
73
79
  private static createCoreProviders;
74
80
  /** Create providers that depend on JETSTREAM_OPTIONS (shared by sync and async). */
75
81
  private static createCoreDependentProviders;
@@ -1 +1 @@
1
- {"version":3,"file":"jetstream.module.d.ts","sourceRoot":"","sources":["../src/jetstream.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAKb,qBAAqB,EAGtB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,KAAK,EAEV,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAYtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAEa,eAAgB,YAAW,qBAAqB;IAIzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IACM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBADhD,eAAe,CAAC,EAAE,eAAe,YAAA,EACM,QAAQ,CAAC,GAAE,iBAAiB,GAAG,IAAI,aAAA;IAO7F;;;;;;;;OAQG;WACW,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,aAAa;IAuBrE;;;;;;;;OAQG;WACW,YAAY,CAAC,YAAY,EAAE,2BAA2B,GAAG,aAAa;IAyBpF;;;;;;;;OAQG;WACW,UAAU,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IA6BzE,sDAAsD;IACtD,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC,oFAAoF;IACpF,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAiP3C,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAkDzC;;OAEG;IACU,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CAKpD"}
1
+ {"version":3,"file":"jetstream.module.d.ts","sourceRoot":"","sources":["../src/jetstream.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAKb,qBAAqB,EAGtB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,KAAK,EAEV,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAgBtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAEa,eAAgB,YAAW,qBAAqB;IAIzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IACM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBADhD,eAAe,CAAC,EAAE,eAAe,YAAA,EACM,QAAQ,CAAC,GAAE,iBAAiB,GAAG,IAAI,aAAA;IAO7F;;;;;;;;OAQG;WACW,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,aAAa;IAuBrE;;;;;;;;OAQG;WACW,YAAY,CAAC,YAAY,EAAE,2BAA2B,GAAG,aAAa;IAyBpF;;;;;;;;OAQG;WACW,UAAU,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IA6BzE,sDAAsD;IACtD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAkBjC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC,oFAAoF;IACpF,OAAO,CAAC,MAAM,CAAC,4BAA4B;IA8P3C,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAkDzC;;OAEG;IACU,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CAKpD"}
@@ -156,6 +156,19 @@ let JetstreamModule = JetstreamModule_1 = class JetstreamModule {
156
156
  // Provider factories
157
157
  // -------------------------------------------------------------------
158
158
  /** Create all providers for synchronous forRoot(). */
159
+ /**
160
+ * Build a map of stream name -> max_deliver for dead letter detection.
161
+ * Each stream kind (ev, broadcast) has its own consumer config with potentially
162
+ * different max_deliver values.
163
+ */
164
+ static buildMaxDeliverMap(options) {
165
+ const map = new Map();
166
+ const defaultEventMax = jetstream_constants_1.DEFAULT_EVENT_CONSUMER_CONFIG.max_deliver ?? 3;
167
+ const defaultBroadcastMax = jetstream_constants_1.DEFAULT_BROADCAST_CONSUMER_CONFIG.max_deliver ?? 3;
168
+ map.set((0, jetstream_constants_1.streamName)(options.name, 'ev'), options.events?.consumer?.max_deliver ?? defaultEventMax);
169
+ map.set((0, jetstream_constants_1.streamName)(options.name, 'broadcast'), options.broadcast?.consumer?.max_deliver ?? defaultBroadcastMax);
170
+ return map;
171
+ }
159
172
  static createCoreProviders(options) {
160
173
  return [
161
174
  {
@@ -266,7 +279,13 @@ let JetstreamModule = JetstreamModule_1 = class JetstreamModule {
266
279
  useFactory: (options, messageProvider, patternRegistry, codec, eventBus) => {
267
280
  if (options.consumer === false)
268
281
  return null;
269
- return new routing_1.EventRouter(messageProvider, patternRegistry, codec, eventBus);
282
+ const deadLetterConfig = options.onDeadLetter
283
+ ? {
284
+ maxDeliverByStream: JetstreamModule_1.buildMaxDeliverMap(options),
285
+ onDeadLetter: options.onDeadLetter,
286
+ }
287
+ : undefined;
288
+ return new routing_1.EventRouter(messageProvider, patternRegistry, codec, eventBus, deadLetterConfig);
270
289
  },
271
290
  },
272
291
  // RpcRouter — routes RPC command messages in JetStream mode
@@ -1 +1 @@
1
- {"version":3,"file":"jetstream.module.js","sourceRoot":"","sources":["../src/jetstream.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jetstream.module.js","sourceRoot":"","sources":["../src/jetstream.module.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,17 @@
1
1
  import { EventBus } from '../../hooks';
2
- import type { Codec } from '../../interfaces';
2
+ import type { Codec, DeadLetterInfo } from '../../interfaces';
3
3
  import { MessageProvider } from '../infrastructure/message.provider';
4
4
  import { PatternRegistry } from './pattern-registry';
5
+ /** Options for dead letter queue handling. */
6
+ export interface DeadLetterConfig {
7
+ /**
8
+ * Map of stream name -> max_deliver value.
9
+ * Used to detect when a message from a given stream has exhausted all delivery attempts.
10
+ */
11
+ maxDeliverByStream: Map<string, number>;
12
+ /** Async callback invoked when a message exhausts all deliveries. */
13
+ onDeadLetter(info: DeadLetterInfo): Promise<void>;
14
+ }
5
15
  /**
6
16
  * Routes incoming event messages (workqueue and broadcast) to NestJS handlers.
7
17
  *
@@ -9,6 +19,7 @@ import { PatternRegistry } from './pattern-registry';
9
19
  * - Handler executes first
10
20
  * - Success -> ack (message consumed)
11
21
  * - Handler error -> nak (NATS redelivers, up to `max_deliver` times)
22
+ * - Dead letter (max_deliver reached) -> onDeadLetter hook -> term or nak
12
23
  * - Decode error -> term (no retry for malformed payloads)
13
24
  * - No handler found -> term (configuration error)
14
25
  *
@@ -23,9 +34,10 @@ export declare class EventRouter {
23
34
  private readonly patternRegistry;
24
35
  private readonly codec;
25
36
  private readonly eventBus;
37
+ private readonly deadLetterConfig?;
26
38
  private readonly logger;
27
39
  private readonly subscriptions;
28
- constructor(messageProvider: MessageProvider, patternRegistry: PatternRegistry, codec: Codec, eventBus: EventBus);
40
+ constructor(messageProvider: MessageProvider, patternRegistry: PatternRegistry, codec: Codec, eventBus: EventBus, deadLetterConfig?: DeadLetterConfig | undefined);
29
41
  /** Start routing event and broadcast messages to handlers. */
30
42
  start(): void;
31
43
  /** Stop routing and unsubscribe from all streams. */
@@ -34,7 +46,11 @@ export declare class EventRouter {
34
46
  private subscribeToStream;
35
47
  /** Handle a single event message: decode -> execute handler -> ack/nak. */
36
48
  private handle;
37
- /** Execute handler, then ack on success or nak on failure. */
49
+ /** Execute handler, then ack on success or nak/dead-letter on failure. */
38
50
  private executeHandler;
51
+ /** Check if the message has exhausted all delivery attempts. */
52
+ private isDeadLetter;
53
+ /** Handle a dead letter: invoke callback, then term or nak based on result. */
54
+ private handleDeadLetter;
39
55
  }
40
56
  //# sourceMappingURL=event.router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.router.d.ts","sourceRoot":"","sources":["../../../src/server/routing/event.router.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAGjC,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ;IAGrC,8DAA8D;IACvD,KAAK,IAAI,IAAI;IAKpB,qDAAqD;IAC9C,OAAO,IAAI,IAAI;IAQtB,4DAA4D;IAC5D,OAAO,CAAC,iBAAiB;IAczB,2EAA2E;IAC3E,OAAO,CAAC,MAAM;IA0Bd,8DAA8D;YAChD,cAAc;CAmB7B"}
1
+ {"version":3,"file":"event.router.d.ts","sourceRoot":"","sources":["../../../src/server/routing/event.router.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,qEAAqE;IACrE,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IARpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAGjC,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,CAAC,EAAE,gBAAgB,YAAA;IAGtD,8DAA8D;IACvD,KAAK,IAAI,IAAI;IAKpB,qDAAqD;IAC9C,OAAO,IAAI,IAAI;IAQtB,4DAA4D;IAC5D,OAAO,CAAC,iBAAiB;IAczB,2EAA2E;IAC3E,OAAO,CAAC,MAAM;IA0Bd,0EAA0E;YAC5D,cAAc;IAyB5B,gEAAgE;IAChE,OAAO,CAAC,YAAY;IAUpB,+EAA+E;YACjE,gBAAgB;CAwB/B"}
@@ -12,6 +12,7 @@ const interfaces_1 = require("../../interfaces");
12
12
  * - Handler executes first
13
13
  * - Success -> ack (message consumed)
14
14
  * - Handler error -> nak (NATS redelivers, up to `max_deliver` times)
15
+ * - Dead letter (max_deliver reached) -> onDeadLetter hook -> term or nak
15
16
  * - Decode error -> term (no retry for malformed payloads)
16
17
  * - No handler found -> term (configuration error)
17
18
  *
@@ -22,11 +23,12 @@ const interfaces_1 = require("../../interfaces");
22
23
  * Handlers must be idempotent — NATS may redeliver on failure or timeout.
23
24
  */
24
25
  class EventRouter {
25
- constructor(messageProvider, patternRegistry, codec, eventBus) {
26
+ constructor(messageProvider, patternRegistry, codec, eventBus, deadLetterConfig) {
26
27
  this.messageProvider = messageProvider;
27
28
  this.patternRegistry = patternRegistry;
28
29
  this.codec = codec;
29
30
  this.eventBus = eventBus;
31
+ this.deadLetterConfig = deadLetterConfig;
30
32
  this.logger = new common_1.Logger('Jetstream:EventRouter');
31
33
  this.subscriptions = [];
32
34
  }
@@ -73,7 +75,7 @@ class EventRouter {
73
75
  const ctx = new context_1.RpcContext([msg]);
74
76
  return (0, rxjs_1.from)(this.executeHandler(handler, data, ctx, msg));
75
77
  }
76
- /** Execute handler, then ack on success or nak on failure. */
78
+ /** Execute handler, then ack on success or nak/dead-letter on failure. */
77
79
  async executeHandler(handler, data, ctx, msg) {
78
80
  try {
79
81
  const result = await handler(data, ctx);
@@ -84,6 +86,44 @@ class EventRouter {
84
86
  }
85
87
  catch (err) {
86
88
  this.logger.error(`Event handler error (${msg.subject}):`, err);
89
+ if (this.isDeadLetter(msg)) {
90
+ await this.handleDeadLetter(msg, data, err);
91
+ }
92
+ else {
93
+ msg.nak();
94
+ }
95
+ }
96
+ }
97
+ /** Check if the message has exhausted all delivery attempts. */
98
+ isDeadLetter(msg) {
99
+ if (!this.deadLetterConfig)
100
+ return false;
101
+ const maxDeliver = this.deadLetterConfig.maxDeliverByStream.get(msg.info.stream);
102
+ if (maxDeliver === undefined)
103
+ return false;
104
+ return msg.info.deliveryCount >= maxDeliver;
105
+ }
106
+ /** Handle a dead letter: invoke callback, then term or nak based on result. */
107
+ async handleDeadLetter(msg, data, error) {
108
+ const info = {
109
+ subject: msg.subject,
110
+ data,
111
+ headers: msg.headers,
112
+ error,
113
+ deliveryCount: msg.info.deliveryCount,
114
+ stream: msg.info.stream,
115
+ streamSequence: msg.info.streamSequence,
116
+ timestamp: new Date(msg.info.timestampNanos / 1_000_000).toISOString(),
117
+ };
118
+ this.eventBus.emit(interfaces_1.TransportEvent.DeadLetter, info);
119
+ if (!this.deadLetterConfig)
120
+ return;
121
+ try {
122
+ await this.deadLetterConfig.onDeadLetter(info);
123
+ msg.term('Dead letter processed');
124
+ }
125
+ catch (hookErr) {
126
+ this.logger.error(`onDeadLetter callback failed for ${msg.subject}, nak for retry:`, hookErr);
87
127
  msg.nak();
88
128
  }
89
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event.router.js","sourceRoot":"","sources":["../../../src/server/routing/event.router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event.router.js","sourceRoot":"","sources":["../../../src/server/routing/event.router.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { PatternRegistry } from './pattern-registry';
2
2
  export { EventRouter } from './event.router';
3
+ export type { DeadLetterConfig } from './event.router';
3
4
  export { RpcRouter } from './rpc.router';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/routing/index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/routing/index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAIpB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA"}
@@ -1,9 +1,13 @@
1
1
  /**
2
- * Unwrap a handler result that may be a Promise, Observable, or plain value.
2
+ * Unwrap a handler result that may be a Promise, Observable, or nested combination.
3
3
  *
4
- * - Observable resolves with the first emitted value
5
- * - Promise awaits it
6
- * - Plain value → returns as-is
4
+ * NestJS-wrapped handlers may return Promise<Observable> (e.g. when exception
5
+ * filters convert errors to throwError() Observables). This function handles:
6
+ *
7
+ * - Observable → subscribe immediately (no await — preserves sync emissions)
8
+ * - Promise<Observable> → await Promise, then subscribe
9
+ * - Promise<value> → await
10
+ * - Plain value → return as-is
7
11
  *
8
12
  * Used by both CoreRpcServer and RpcRouter to normalize handler output.
9
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"unwrap-result.d.ts","sourceRoot":"","sources":["../../src/utils/unwrap-result.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAU,QAAQ,OAAO,KAAG,OAAO,CAAC,OAAO,CAsBnE,CAAC"}
1
+ {"version":3,"file":"unwrap-result.d.ts","sourceRoot":"","sources":["../../src/utils/unwrap-result.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,GAAU,QAAQ,OAAO,KAAG,OAAO,CAAC,OAAO,CAenE,CAAC"}
@@ -3,35 +3,47 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.unwrapResult = void 0;
4
4
  const rxjs_1 = require("rxjs");
5
5
  /**
6
- * Unwrap a handler result that may be a Promise, Observable, or plain value.
6
+ * Unwrap a handler result that may be a Promise, Observable, or nested combination.
7
7
  *
8
- * - Observable resolves with the first emitted value
9
- * - Promise awaits it
10
- * - Plain value → returns as-is
8
+ * NestJS-wrapped handlers may return Promise<Observable> (e.g. when exception
9
+ * filters convert errors to throwError() Observables). This function handles:
10
+ *
11
+ * - Observable → subscribe immediately (no await — preserves sync emissions)
12
+ * - Promise<Observable> → await Promise, then subscribe
13
+ * - Promise<value> → await
14
+ * - Plain value → return as-is
11
15
  *
12
16
  * Used by both CoreRpcServer and RpcRouter to normalize handler output.
13
17
  */
14
18
  const unwrapResult = async (result) => {
15
- // Unwrap Observable (take first value)
19
+ // Direct Observable — subscribe immediately (no microtask yield)
16
20
  if ((0, rxjs_1.isObservable)(result)) {
17
- return new Promise((resolve, reject) => {
18
- let resolved = false;
19
- result.subscribe({
20
- next: (val) => {
21
- if (!resolved) {
22
- resolved = true;
23
- resolve(val);
24
- }
25
- },
26
- error: reject,
27
- complete: () => {
28
- if (!resolved)
29
- resolve(undefined);
30
- },
31
- });
32
- });
21
+ return subscribeToFirst(result);
22
+ }
23
+ // Await Promise, then check if it resolved to an Observable
24
+ // (NestJS-wrapped handlers return Promise<Observable> when exception filters fire)
25
+ const resolved = await result;
26
+ if ((0, rxjs_1.isObservable)(resolved)) {
27
+ return subscribeToFirst(resolved);
33
28
  }
34
- return result;
29
+ return resolved;
35
30
  };
36
31
  exports.unwrapResult = unwrapResult;
32
+ /** Subscribe to an Observable and resolve with its first emitted value. */
33
+ const subscribeToFirst = (obs) => new Promise((resolve, reject) => {
34
+ let done = false;
35
+ obs.subscribe({
36
+ next: (val) => {
37
+ if (!done) {
38
+ done = true;
39
+ resolve(val);
40
+ }
41
+ },
42
+ error: reject,
43
+ complete: () => {
44
+ if (!done)
45
+ resolve(undefined);
46
+ },
47
+ });
48
+ });
37
49
  //# sourceMappingURL=unwrap-result.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unwrap-result.js","sourceRoot":"","sources":["../../src/utils/unwrap-result.ts"],"names":[],"mappings":";;;AAAA,+BAAgD;AAEhD;;;;;;;;GAQG;AACI,MAAM,YAAY,GAAG,KAAK,EAAE,MAAe,EAAoB,EAAE;IACtE,uCAAuC;IACvC,IAAI,IAAA,mBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,QAAQ,GAAG,KAAK,CAAC;YAEpB,MAA8B,CAAC,SAAS,CAAC;gBACxC,IAAI,EAAE,CAAC,GAAY,EAAE,EAAE;oBACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,QAAQ,GAAG,IAAI,CAAC;wBAChB,OAAO,CAAC,GAAG,CAAC,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,GAAG,EAAE;oBACb,IAAI,CAAC,QAAQ;wBAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBACpC,CAAC;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAtBW,QAAA,YAAY,gBAsBvB"}
1
+ {"version":3,"file":"unwrap-result.js","sourceRoot":"","sources":["../../src/utils/unwrap-result.ts"],"names":[],"mappings":";;;AAAA,+BAAgD;AAEhD;;;;;;;;;;;;GAYG;AACI,MAAM,YAAY,GAAG,KAAK,EAAE,MAAe,EAAoB,EAAE;IACtE,iEAAiE;IACjE,IAAI,IAAA,mBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,MAA6B,CAAC,CAAC;IACzD,CAAC;IAED,4DAA4D;IAC5D,mFAAmF;IACnF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;IAE9B,IAAI,IAAA,mBAAY,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,QAA+B,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB;AAEF,2EAA2E;AAC3E,MAAM,gBAAgB,GAAG,CAAC,GAAwB,EAAoB,EAAE,CACtE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,GAAG,CAAC,SAAS,CAAC;QACZ,IAAI,EAAE,CAAC,GAAY,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,GAAG,IAAI,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QACD,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,GAAG,EAAE;YACb,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@horizon-republic/nestjs-jetstream",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "A NestJS transport for NATS with JetStream events, broadcast fan-out, and Core/JetStream RPC.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -79,6 +79,7 @@
79
79
  "test": "jest",
80
80
  "test:watch": "jest --watch",
81
81
  "test:cov": "jest --coverage",
82
- "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand"
82
+ "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
83
+ "test:integration": "jest --config jest.integration.config.ts --runInBand"
83
84
  }
84
85
  }