@horizon-republic/nestjs-jetstream 2.2.0 → 2.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.
Files changed (161) hide show
  1. package/README.md +39 -1
  2. package/dist/index.cjs +2015 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +993 -0
  5. package/dist/index.d.ts +993 -13
  6. package/dist/index.js +2012 -39
  7. package/dist/index.js.map +1 -1
  8. package/package.json +29 -19
  9. package/dist/client/index.d.ts +0 -3
  10. package/dist/client/index.d.ts.map +0 -1
  11. package/dist/client/index.js +0 -9
  12. package/dist/client/index.js.map +0 -1
  13. package/dist/client/jetstream.client.d.ts +0 -76
  14. package/dist/client/jetstream.client.d.ts.map +0 -1
  15. package/dist/client/jetstream.client.js +0 -325
  16. package/dist/client/jetstream.client.js.map +0 -1
  17. package/dist/client/jetstream.record.d.ts +0 -55
  18. package/dist/client/jetstream.record.d.ts.map +0 -1
  19. package/dist/client/jetstream.record.js +0 -84
  20. package/dist/client/jetstream.record.js.map +0 -1
  21. package/dist/codec/index.d.ts +0 -2
  22. package/dist/codec/index.d.ts.map +0 -1
  23. package/dist/codec/index.js +0 -6
  24. package/dist/codec/index.js.map +0 -1
  25. package/dist/codec/json.codec.d.ts +0 -20
  26. package/dist/codec/json.codec.d.ts.map +0 -1
  27. package/dist/codec/json.codec.js +0 -30
  28. package/dist/codec/json.codec.js.map +0 -1
  29. package/dist/connection/connection.provider.d.ts +0 -50
  30. package/dist/connection/connection.provider.d.ts.map +0 -1
  31. package/dist/connection/connection.provider.js +0 -141
  32. package/dist/connection/connection.provider.js.map +0 -1
  33. package/dist/connection/index.d.ts +0 -2
  34. package/dist/connection/index.d.ts.map +0 -1
  35. package/dist/connection/index.js +0 -6
  36. package/dist/connection/index.js.map +0 -1
  37. package/dist/context/index.d.ts +0 -2
  38. package/dist/context/index.d.ts.map +0 -1
  39. package/dist/context/index.js +0 -6
  40. package/dist/context/index.js.map +0 -1
  41. package/dist/context/rpc.context.d.ts +0 -35
  42. package/dist/context/rpc.context.d.ts.map +0 -1
  43. package/dist/context/rpc.context.js +0 -44
  44. package/dist/context/rpc.context.js.map +0 -1
  45. package/dist/health/index.d.ts +0 -3
  46. package/dist/health/index.d.ts.map +0 -1
  47. package/dist/health/index.js +0 -6
  48. package/dist/health/index.js.map +0 -1
  49. package/dist/health/jetstream.health-indicator.d.ts +0 -47
  50. package/dist/health/jetstream.health-indicator.d.ts.map +0 -1
  51. package/dist/health/jetstream.health-indicator.js +0 -85
  52. package/dist/health/jetstream.health-indicator.js.map +0 -1
  53. package/dist/hooks/event-bus.d.ts +0 -31
  54. package/dist/hooks/event-bus.d.ts.map +0 -1
  55. package/dist/hooks/event-bus.js +0 -79
  56. package/dist/hooks/event-bus.js.map +0 -1
  57. package/dist/hooks/index.d.ts +0 -2
  58. package/dist/hooks/index.d.ts.map +0 -1
  59. package/dist/hooks/index.js +0 -6
  60. package/dist/hooks/index.js.map +0 -1
  61. package/dist/index.d.ts.map +0 -1
  62. package/dist/interfaces/client.interface.d.ts +0 -14
  63. package/dist/interfaces/client.interface.d.ts.map +0 -1
  64. package/dist/interfaces/client.interface.js +0 -3
  65. package/dist/interfaces/client.interface.js.map +0 -1
  66. package/dist/interfaces/codec.interface.d.ts +0 -28
  67. package/dist/interfaces/codec.interface.d.ts.map +0 -1
  68. package/dist/interfaces/codec.interface.js +0 -3
  69. package/dist/interfaces/codec.interface.js.map +0 -1
  70. package/dist/interfaces/hooks.interface.d.ts +0 -71
  71. package/dist/interfaces/hooks.interface.d.ts.map +0 -1
  72. package/dist/interfaces/hooks.interface.js +0 -16
  73. package/dist/interfaces/hooks.interface.js.map +0 -1
  74. package/dist/interfaces/index.d.ts +0 -8
  75. package/dist/interfaces/index.d.ts.map +0 -1
  76. package/dist/interfaces/index.js +0 -6
  77. package/dist/interfaces/index.js.map +0 -1
  78. package/dist/interfaces/options.interface.d.ts +0 -142
  79. package/dist/interfaces/options.interface.d.ts.map +0 -1
  80. package/dist/interfaces/options.interface.js +0 -3
  81. package/dist/interfaces/options.interface.js.map +0 -1
  82. package/dist/interfaces/routing.interface.d.ts +0 -15
  83. package/dist/interfaces/routing.interface.d.ts.map +0 -1
  84. package/dist/interfaces/routing.interface.js +0 -3
  85. package/dist/interfaces/routing.interface.js.map +0 -1
  86. package/dist/interfaces/stream.interface.d.ts +0 -5
  87. package/dist/interfaces/stream.interface.d.ts.map +0 -1
  88. package/dist/interfaces/stream.interface.js +0 -3
  89. package/dist/interfaces/stream.interface.js.map +0 -1
  90. package/dist/jetstream.constants.d.ts +0 -58
  91. package/dist/jetstream.constants.d.ts.map +0 -1
  92. package/dist/jetstream.constants.js +0 -168
  93. package/dist/jetstream.constants.js.map +0 -1
  94. package/dist/jetstream.module.d.ts +0 -89
  95. package/dist/jetstream.module.d.ts.map +0 -1
  96. package/dist/jetstream.module.js +0 -410
  97. package/dist/jetstream.module.js.map +0 -1
  98. package/dist/server/core-rpc.server.d.ts +0 -31
  99. package/dist/server/core-rpc.server.d.ts.map +0 -1
  100. package/dist/server/core-rpc.server.js +0 -95
  101. package/dist/server/core-rpc.server.js.map +0 -1
  102. package/dist/server/index.d.ts +0 -5
  103. package/dist/server/index.d.ts.map +0 -1
  104. package/dist/server/index.js +0 -16
  105. package/dist/server/index.js.map +0 -1
  106. package/dist/server/infrastructure/consumer.provider.d.ts +0 -36
  107. package/dist/server/infrastructure/consumer.provider.d.ts.map +0 -1
  108. package/dist/server/infrastructure/consumer.provider.js +0 -123
  109. package/dist/server/infrastructure/consumer.provider.js.map +0 -1
  110. package/dist/server/infrastructure/index.d.ts +0 -4
  111. package/dist/server/infrastructure/index.d.ts.map +0 -1
  112. package/dist/server/infrastructure/index.js +0 -10
  113. package/dist/server/infrastructure/index.js.map +0 -1
  114. package/dist/server/infrastructure/message.provider.d.ts +0 -46
  115. package/dist/server/infrastructure/message.provider.d.ts.map +0 -1
  116. package/dist/server/infrastructure/message.provider.js +0 -100
  117. package/dist/server/infrastructure/message.provider.js.map +0 -1
  118. package/dist/server/infrastructure/stream.provider.d.ts +0 -38
  119. package/dist/server/infrastructure/stream.provider.d.ts.map +0 -1
  120. package/dist/server/infrastructure/stream.provider.js +0 -109
  121. package/dist/server/infrastructure/stream.provider.js.map +0 -1
  122. package/dist/server/routing/event.router.d.ts +0 -56
  123. package/dist/server/routing/event.router.d.ts.map +0 -1
  124. package/dist/server/routing/event.router.js +0 -132
  125. package/dist/server/routing/event.router.js.map +0 -1
  126. package/dist/server/routing/index.d.ts +0 -5
  127. package/dist/server/routing/index.d.ts.map +0 -1
  128. package/dist/server/routing/index.js +0 -10
  129. package/dist/server/routing/index.js.map +0 -1
  130. package/dist/server/routing/pattern-registry.d.ts +0 -39
  131. package/dist/server/routing/pattern-registry.d.ts.map +0 -1
  132. package/dist/server/routing/pattern-registry.js +0 -116
  133. package/dist/server/routing/pattern-registry.js.map +0 -1
  134. package/dist/server/routing/rpc.router.d.ts +0 -37
  135. package/dist/server/routing/rpc.router.d.ts.map +0 -1
  136. package/dist/server/routing/rpc.router.js +0 -121
  137. package/dist/server/routing/rpc.router.js.map +0 -1
  138. package/dist/server/strategy.d.ts +0 -55
  139. package/dist/server/strategy.d.ts.map +0 -1
  140. package/dist/server/strategy.js +0 -113
  141. package/dist/server/strategy.js.map +0 -1
  142. package/dist/shutdown/index.d.ts +0 -2
  143. package/dist/shutdown/index.d.ts.map +0 -1
  144. package/dist/shutdown/index.js +0 -6
  145. package/dist/shutdown/index.js.map +0 -1
  146. package/dist/shutdown/shutdown.manager.d.ts +0 -27
  147. package/dist/shutdown/shutdown.manager.d.ts.map +0 -1
  148. package/dist/shutdown/shutdown.manager.js +0 -45
  149. package/dist/shutdown/shutdown.manager.js.map +0 -1
  150. package/dist/utils/index.d.ts +0 -3
  151. package/dist/utils/index.d.ts.map +0 -1
  152. package/dist/utils/index.js +0 -8
  153. package/dist/utils/index.js.map +0 -1
  154. package/dist/utils/serialize-error.d.ts +0 -10
  155. package/dist/utils/serialize-error.d.ts.map +0 -1
  156. package/dist/utils/serialize-error.js +0 -21
  157. package/dist/utils/serialize-error.js.map +0 -1
  158. package/dist/utils/unwrap-result.d.ts +0 -15
  159. package/dist/utils/unwrap-result.d.ts.map +0 -1
  160. package/dist/utils/unwrap-result.js +0 -49
  161. package/dist/utils/unwrap-result.js.map +0 -1
@@ -1,141 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConnectionProvider = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const exceptions_1 = require("@nestjs/core/errors/exceptions");
6
- const nats_1 = require("nats");
7
- const rxjs_1 = require("rxjs");
8
- const interfaces_1 = require("../interfaces");
9
- const jetstream_constants_1 = require("../jetstream.constants");
10
- /**
11
- * Manages the lifecycle of a single NATS connection shared across the application.
12
- *
13
- * Provides both Promise-based and Observable-based access to the connection:
14
- * - `connect()` / `getConnection()` — async/await for one-time setup
15
- * - `nc$` — cached observable (shareReplay) for reactive consumers
16
- * - `status$` — live connection status event stream
17
- *
18
- * One instance per application, created by `JetstreamModule.forRoot()`.
19
- */
20
- class ConnectionProvider {
21
- constructor(options, eventBus) {
22
- this.options = options;
23
- this.eventBus = eventBus;
24
- this.logger = new common_1.Logger('Jetstream:Connection');
25
- this.connection = null;
26
- this.connectionPromise = null;
27
- this.jsmInstance = null;
28
- // Lazy observable — connects on first subscription, caches for all future subscribers
29
- this.nc$ = (0, rxjs_1.defer)(() => this.getConnection()).pipe((0, rxjs_1.shareReplay)({ bufferSize: 1, refCount: false }));
30
- this.status$ = this.nc$.pipe((0, rxjs_1.switchMap)((nc) => (0, rxjs_1.from)(nc.status())), (0, rxjs_1.share)());
31
- }
32
- /**
33
- * Establish NATS connection. Idempotent — returns cached connection on subsequent calls.
34
- *
35
- * @throws RuntimeException if connection is refused (fail fast).
36
- */
37
- async getConnection() {
38
- if (this.connection && !this.connection.isClosed()) {
39
- return this.connection;
40
- }
41
- if (this.connectionPromise) {
42
- return this.connectionPromise;
43
- }
44
- this.connectionPromise = this.establish();
45
- return this.connectionPromise;
46
- }
47
- /**
48
- * Get JetStream manager. Cached after first call.
49
- */
50
- async getJetStreamManager() {
51
- if (this.jsmInstance)
52
- return this.jsmInstance;
53
- const nc = await this.getConnection();
54
- this.jsmInstance = await nc.jetstreamManager();
55
- this.logger.log('JetStream manager initialized');
56
- return this.jsmInstance;
57
- }
58
- /** Direct access to the raw NATS connection (assumes already connected). */
59
- get unwrap() {
60
- return this.connection;
61
- }
62
- /**
63
- * Gracefully shut down the connection.
64
- *
65
- * Sequence: drain → wait for close. Falls back to force-close on error.
66
- */
67
- async shutdown() {
68
- if (!this.connection || this.connection.isClosed())
69
- return;
70
- try {
71
- await this.connection.drain();
72
- await this.connection.closed();
73
- }
74
- catch {
75
- try {
76
- await this.connection.close();
77
- }
78
- catch {
79
- // Best-effort — connection may already be gone
80
- }
81
- }
82
- finally {
83
- this.connection = null;
84
- this.connectionPromise = null;
85
- this.jsmInstance = null;
86
- }
87
- }
88
- /** Internal: establish the physical connection with reconnect monitoring. */
89
- async establish() {
90
- const name = (0, jetstream_constants_1.internalName)(this.options.name);
91
- try {
92
- const nc = await (0, nats_1.connect)({
93
- ...this.options.connectionOptions,
94
- servers: this.options.servers,
95
- name,
96
- });
97
- this.connection = nc;
98
- this.logger.log(`NATS connection established: ${nc.getServer()}`);
99
- this.eventBus.emit(interfaces_1.TransportEvent.Connect, nc.getServer());
100
- this.monitorStatus(nc);
101
- return nc;
102
- }
103
- catch (err) {
104
- const natsErr = err;
105
- if (natsErr.code === 'CONNECTION_REFUSED') {
106
- throw new exceptions_1.RuntimeException(`NATS connection refused: ${this.options.servers.join(', ')}`);
107
- }
108
- throw err;
109
- }
110
- }
111
- /** Subscribe to connection status events and emit hooks. */
112
- monitorStatus(nc) {
113
- (async () => {
114
- for await (const status of nc.status()) {
115
- switch (status.type) {
116
- case nats_1.Events.Disconnect:
117
- this.eventBus.emit(interfaces_1.TransportEvent.Disconnect);
118
- break;
119
- case nats_1.Events.Reconnect:
120
- this.jsmInstance = null; // Invalidate cached JSM
121
- this.eventBus.emit(interfaces_1.TransportEvent.Reconnect, nc.getServer());
122
- break;
123
- case nats_1.Events.Error:
124
- this.eventBus.emit(interfaces_1.TransportEvent.Error, new Error(String(status.data)), 'connection');
125
- break;
126
- case nats_1.Events.Update:
127
- case nats_1.Events.LDM:
128
- case nats_1.DebugEvents.Reconnecting:
129
- case nats_1.DebugEvents.PingTimer:
130
- case nats_1.DebugEvents.StaleConnection:
131
- case nats_1.DebugEvents.ClientInitiatedReconnect:
132
- break;
133
- }
134
- }
135
- })().catch((err) => {
136
- this.logger.error('Status monitor error', err);
137
- });
138
- }
139
- }
140
- exports.ConnectionProvider = ConnectionProvider;
141
- //# sourceMappingURL=connection.provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection.provider.js","sourceRoot":"","sources":["../../src/connection/connection.provider.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { ConnectionProvider } from './connection.provider';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConnectionProvider = void 0;
4
- var connection_provider_1 = require("./connection.provider");
5
- Object.defineProperty(exports, "ConnectionProvider", { enumerable: true, get: function () { return connection_provider_1.ConnectionProvider; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connection/index.ts"],"names":[],"mappings":";;;AAAA,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA"}
@@ -1,2 +0,0 @@
1
- export { RpcContext } from './rpc.context';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RpcContext = void 0;
4
- var rpc_context_1 = require("./rpc.context");
5
- Object.defineProperty(exports, "RpcContext", { enumerable: true, get: function () { return rpc_context_1.RpcContext; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAAlC,yGAAA,UAAU,OAAA"}
@@ -1,35 +0,0 @@
1
- import { BaseRpcContext } from '@nestjs/microservices/ctx-host/base-rpc.context';
2
- import { JsMsg, MsgHdrs, Msg } from 'nats';
3
- type NatsMessage = JsMsg | Msg;
4
- /**
5
- * Execution context for RPC and event handlers.
6
- *
7
- * Provides convenient accessors for the NATS message, subject,
8
- * and headers without needing to interact with the raw message directly.
9
- *
10
- * @example
11
- * ```typescript
12
- * @MessagePattern('get.user')
13
- * getUser(data: GetUserDto, @Ctx() ctx: RpcContext) {
14
- * const traceId = ctx.getHeader('x-trace-id');
15
- * const subject = ctx.getSubject();
16
- * return this.userService.findOne(data.id);
17
- * }
18
- * ```
19
- */
20
- export declare class RpcContext extends BaseRpcContext<[NatsMessage]> {
21
- /** Get the underlying NATS message (JsMsg for JetStream, Msg for Core). */
22
- getMessage(): NatsMessage;
23
- /** Get the NATS subject this message was published to. */
24
- getSubject(): string;
25
- /** Get all NATS message headers, or undefined if none are present. */
26
- getHeaders(): MsgHdrs | undefined;
27
- /** Get a single header value by key. Returns undefined if the header or headers object is missing. */
28
- getHeader(key: string): string | undefined;
29
- /** Type guard: narrows getMessage() return type to JsMsg when true. */
30
- isJetStream(): this is RpcContext & {
31
- getMessage(): JsMsg;
32
- };
33
- }
34
- export {};
35
- //# sourceMappingURL=rpc.context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc.context.d.ts","sourceRoot":"","sources":["../../src/context/rpc.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE3C,KAAK,WAAW,GAAG,KAAK,GAAG,GAAG,CAAC;AAE/B;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,UAAW,SAAQ,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC;IAC3D,2EAA2E;IACpE,UAAU,IAAI,WAAW;IAIhC,0DAA0D;IACnD,UAAU,IAAI,MAAM;IAI3B,sEAAsE;IAC/D,UAAU,IAAI,OAAO,GAAG,SAAS;IAIxC,sGAAsG;IAC/F,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIjD,uEAAuE;IAChE,WAAW,IAAI,IAAI,IAAI,UAAU,GAAG;QAAE,UAAU,IAAI,KAAK,CAAA;KAAE;CAGnE"}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RpcContext = void 0;
4
- const base_rpc_context_1 = require("@nestjs/microservices/ctx-host/base-rpc.context");
5
- /**
6
- * Execution context for RPC and event handlers.
7
- *
8
- * Provides convenient accessors for the NATS message, subject,
9
- * and headers without needing to interact with the raw message directly.
10
- *
11
- * @example
12
- * ```typescript
13
- * @MessagePattern('get.user')
14
- * getUser(data: GetUserDto, @Ctx() ctx: RpcContext) {
15
- * const traceId = ctx.getHeader('x-trace-id');
16
- * const subject = ctx.getSubject();
17
- * return this.userService.findOne(data.id);
18
- * }
19
- * ```
20
- */
21
- class RpcContext extends base_rpc_context_1.BaseRpcContext {
22
- /** Get the underlying NATS message (JsMsg for JetStream, Msg for Core). */
23
- getMessage() {
24
- return this.args[0];
25
- }
26
- /** Get the NATS subject this message was published to. */
27
- getSubject() {
28
- return this.args[0].subject;
29
- }
30
- /** Get all NATS message headers, or undefined if none are present. */
31
- getHeaders() {
32
- return this.args[0].headers;
33
- }
34
- /** Get a single header value by key. Returns undefined if the header or headers object is missing. */
35
- getHeader(key) {
36
- return this.args[0].headers?.get(key);
37
- }
38
- /** Type guard: narrows getMessage() return type to JsMsg when true. */
39
- isJetStream() {
40
- return 'ack' in this.args[0];
41
- }
42
- }
43
- exports.RpcContext = RpcContext;
44
- //# sourceMappingURL=rpc.context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc.context.js","sourceRoot":"","sources":["../../src/context/rpc.context.ts"],"names":[],"mappings":";;;AAAA,sFAAiF;AAKjF;;;;;;;;;;;;;;;GAeG;AACH,MAAa,UAAW,SAAQ,iCAA6B;IAC3D,2EAA2E;IACpE,UAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,0DAA0D;IACnD,UAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,sEAAsE;IAC/D,UAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,sGAAsG;IAC/F,SAAS,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,uEAAuE;IAChE,WAAW;QAChB,OAAO,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;CACF;AAzBD,gCAyBC"}
@@ -1,3 +0,0 @@
1
- export { JetstreamHealthIndicator } from './jetstream.health-indicator';
2
- export type { JetstreamHealthStatus } from './jetstream.health-indicator';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/health/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JetstreamHealthIndicator = void 0;
4
- var jetstream_health_indicator_1 = require("./jetstream.health-indicator");
5
- Object.defineProperty(exports, "JetstreamHealthIndicator", { enumerable: true, get: function () { return jetstream_health_indicator_1.JetstreamHealthIndicator; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/health/index.ts"],"names":[],"mappings":";;;AAAA,2EAAwE;AAA/D,sIAAA,wBAAwB,OAAA"}
@@ -1,47 +0,0 @@
1
- import { ConnectionProvider } from '../connection';
2
- /**
3
- * Health status returned by `check()`.
4
- */
5
- export interface JetstreamHealthStatus {
6
- connected: boolean;
7
- server: string | null;
8
- /** Round-trip latency in ms (null if disconnected). */
9
- latency: number | null;
10
- }
11
- /**
12
- * Health indicator result compatible with @nestjs/terminus.
13
- *
14
- * Follows the Terminus convention: returns status object on success,
15
- * throws on failure. Works with Terminus out of the box — no wrapper needed:
16
- *
17
- * @example
18
- * ```typescript
19
- * // With Terminus
20
- * this.health.check([() => this.jetstream.isHealthy()])
21
- *
22
- * // Standalone
23
- * const status = await this.jetstream.check();
24
- * ```
25
- */
26
- export declare class JetstreamHealthIndicator {
27
- private readonly connection;
28
- private readonly logger;
29
- constructor(connection: ConnectionProvider);
30
- /**
31
- * Plain health status check.
32
- *
33
- * Returns the current connection status without throwing.
34
- * Use this for custom health endpoints or monitoring integrations.
35
- */
36
- check(): Promise<JetstreamHealthStatus>;
37
- /**
38
- * Terminus-compatible health check.
39
- *
40
- * Returns `{ [key]: { status: 'up', ... } }` on success.
41
- * Throws an error with `{ [key]: { status: 'down', ... } }` on failure.
42
- *
43
- * @param key Health indicator key (default: 'jetstream')
44
- */
45
- isHealthy(key?: string): Promise<Record<string, Record<string, unknown>>>;
46
- }
47
- //# sourceMappingURL=jetstream.health-indicator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jetstream.health-indicator.d.ts","sourceRoot":"","sources":["../../src/health/jetstream.health-indicator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uDAAuD;IACvD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBACa,wBAAwB;IAGhB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAF9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;gBAErB,UAAU,EAAE,kBAAkB;IAElE;;;;;OAKG;IACU,KAAK,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAqBpD;;;;;;;OAOG;IACU,SAAS,CAAC,GAAG,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAiB5F"}
@@ -1,85 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.JetstreamHealthIndicator = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const connection_1 = require("../connection");
15
- /**
16
- * Health indicator result compatible with @nestjs/terminus.
17
- *
18
- * Follows the Terminus convention: returns status object on success,
19
- * throws on failure. Works with Terminus out of the box — no wrapper needed:
20
- *
21
- * @example
22
- * ```typescript
23
- * // With Terminus
24
- * this.health.check([() => this.jetstream.isHealthy()])
25
- *
26
- * // Standalone
27
- * const status = await this.jetstream.check();
28
- * ```
29
- */
30
- let JetstreamHealthIndicator = class JetstreamHealthIndicator {
31
- constructor(connection) {
32
- this.connection = connection;
33
- this.logger = new common_1.Logger('Jetstream:Health');
34
- }
35
- /**
36
- * Plain health status check.
37
- *
38
- * Returns the current connection status without throwing.
39
- * Use this for custom health endpoints or monitoring integrations.
40
- */
41
- async check() {
42
- const nc = this.connection.unwrap;
43
- if (!nc || nc.isClosed()) {
44
- return { connected: false, server: null, latency: null };
45
- }
46
- try {
47
- const start = performance.now();
48
- await nc.rtt();
49
- const latency = Math.round(performance.now() - start);
50
- return { connected: true, server: nc.getServer(), latency };
51
- }
52
- catch (err) {
53
- this.logger.warn(`Health check failed: ${err instanceof Error ? err.message : err}`);
54
- return { connected: false, server: nc.getServer(), latency: null };
55
- }
56
- }
57
- /**
58
- * Terminus-compatible health check.
59
- *
60
- * Returns `{ [key]: { status: 'up', ... } }` on success.
61
- * Throws an error with `{ [key]: { status: 'down', ... } }` on failure.
62
- *
63
- * @param key Health indicator key (default: 'jetstream')
64
- */
65
- async isHealthy(key = 'jetstream') {
66
- const status = await this.check();
67
- const details = {
68
- status: status.connected ? 'up' : 'down',
69
- server: status.server,
70
- latency: status.latency,
71
- };
72
- if (!status.connected) {
73
- throw Object.assign(new Error('Jetstream health check failed'), {
74
- [key]: details,
75
- });
76
- }
77
- return { [key]: details };
78
- }
79
- };
80
- exports.JetstreamHealthIndicator = JetstreamHealthIndicator;
81
- exports.JetstreamHealthIndicator = JetstreamHealthIndicator = __decorate([
82
- (0, common_1.Injectable)(),
83
- __metadata("design:paramtypes", [connection_1.ConnectionProvider])
84
- ], JetstreamHealthIndicator);
85
- //# sourceMappingURL=jetstream.health-indicator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jetstream.health-indicator.js","sourceRoot":"","sources":["../../src/health/jetstream.health-indicator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoD;AAEpD,8CAAmD;AAYnD;;;;;;;;;;;;;;GAcG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IAGnC,YAAoC,UAA8B;QAA9B,eAAU,GAAV,UAAU,CAAoB;QAFjD,WAAM,GAAG,IAAI,eAAM,CAAC,kBAAkB,CAAC,CAAC;IAEY,CAAC;IAEtE;;;;;OAKG;IACI,KAAK,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAElC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;YACzB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAEhC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;YAEf,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;YAEtD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACrF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACrE,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,WAAW;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAElC,MAAM,OAAO,GAA4B;YACvC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YACxC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,EAAE;gBAC9D,CAAC,GAAG,CAAC,EAAE,OAAO;aACf,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,CAAC;CACF,CAAA;AAzDY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAIqC,+BAAkB;GAHvD,wBAAwB,CAyDpC"}
@@ -1,31 +0,0 @@
1
- import { Logger } from '@nestjs/common';
2
- import type { TransportHooks } from '../interfaces';
3
- /**
4
- * Central event bus for transport lifecycle notifications.
5
- *
6
- * Dispatches events to user-provided hooks or falls back to
7
- * the NestJS Logger for each event type independently.
8
- *
9
- * @example
10
- * ```typescript
11
- * const bus = new EventBus(logger, {
12
- * [TransportEvent.Error]: (err) => sentry.captureException(err),
13
- * });
14
- *
15
- * bus.emit(TransportEvent.Error, new Error('timeout'), 'rpc-router');
16
- * // → calls sentry, not logger
17
- *
18
- * bus.emit(TransportEvent.Connect, 'nats://localhost:4222');
19
- * // → calls logger.log (no custom hook for connect)
20
- * ```
21
- */
22
- export declare class EventBus {
23
- private readonly hooks;
24
- private readonly logger;
25
- constructor(logger: Logger, hooks?: Partial<TransportHooks>);
26
- /** Emit a lifecycle event. Dispatches to custom hook or Logger fallback. */
27
- emit<K extends keyof TransportHooks>(event: K, ...args: Parameters<TransportHooks[K]>): void;
28
- /** Default Logger-based handlers for each event type. */
29
- private defaultHandler;
30
- }
31
- //# sourceMappingURL=event-bus.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventBus = void 0;
4
- const interfaces_1 = require("../interfaces");
5
- /**
6
- * Central event bus for transport lifecycle notifications.
7
- *
8
- * Dispatches events to user-provided hooks or falls back to
9
- * the NestJS Logger for each event type independently.
10
- *
11
- * @example
12
- * ```typescript
13
- * const bus = new EventBus(logger, {
14
- * [TransportEvent.Error]: (err) => sentry.captureException(err),
15
- * });
16
- *
17
- * bus.emit(TransportEvent.Error, new Error('timeout'), 'rpc-router');
18
- * // → calls sentry, not logger
19
- *
20
- * bus.emit(TransportEvent.Connect, 'nats://localhost:4222');
21
- * // → calls logger.log (no custom hook for connect)
22
- * ```
23
- */
24
- class EventBus {
25
- constructor(logger, hooks) {
26
- this.logger = logger;
27
- this.hooks = hooks ?? {};
28
- }
29
- /** Emit a lifecycle event. Dispatches to custom hook or Logger fallback. */
30
- emit(event, ...args) {
31
- const hook = this.hooks[event];
32
- if (hook) {
33
- try {
34
- hook(...args);
35
- }
36
- catch (err) {
37
- this.logger.error(`Hook "${event}" threw an error: ${err instanceof Error ? err.message : err}`);
38
- }
39
- return;
40
- }
41
- this.defaultHandler(event, args);
42
- }
43
- /** Default Logger-based handlers for each event type. */
44
- defaultHandler(event, args) {
45
- switch (event) {
46
- case interfaces_1.TransportEvent.Connect:
47
- this.logger.log(`Connected to NATS: ${args[0]}`);
48
- break;
49
- case interfaces_1.TransportEvent.Disconnect:
50
- this.logger.warn('NATS connection lost');
51
- break;
52
- case interfaces_1.TransportEvent.Reconnect:
53
- this.logger.log(`Reconnected to NATS: ${args[0]}`);
54
- break;
55
- case interfaces_1.TransportEvent.Error:
56
- this.logger.error(`Transport error: ${args[0]}`, args[1] ?? '');
57
- break;
58
- case interfaces_1.TransportEvent.RpcTimeout:
59
- this.logger.warn(`RPC timeout: ${args[0]} (cid: ${args[1]})`);
60
- break;
61
- case interfaces_1.TransportEvent.MessageRouted:
62
- this.logger.debug(`Message routed: ${args[0]} [${args[1]}]`);
63
- break;
64
- case interfaces_1.TransportEvent.ShutdownStart:
65
- this.logger.log('Graceful shutdown initiated');
66
- break;
67
- case interfaces_1.TransportEvent.ShutdownComplete:
68
- this.logger.log('Graceful shutdown complete');
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
- }
75
- }
76
- }
77
- }
78
- exports.EventBus = EventBus;
79
- //# sourceMappingURL=event-bus.js.map
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export { EventBus } from './event-bus';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventBus = void 0;
4
- var event_bus_1 = require("./event-bus");
5
- Object.defineProperty(exports, "EventBus", { enumerable: true, get: function () { return event_bus_1.EventBus; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";;;AAAA,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA"}
@@ -1 +0,0 @@
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"}
@@ -1,14 +0,0 @@
1
- /** Options for transport-controlled headers on outbound messages. */
2
- export interface TransportHeaderOptions {
3
- messageId: string;
4
- subject: string;
5
- correlationId?: string;
6
- replyTo?: string;
7
- }
8
- /** Normalized envelope extracted from raw payload or JetstreamRecord. */
9
- export interface ExtractedRecordData {
10
- data: unknown;
11
- hdrs: Map<string, string> | null;
12
- timeout: number | undefined;
13
- }
14
- //# sourceMappingURL=client.interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/client.interface.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yEAAyE;AACzE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=client.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.interface.js","sourceRoot":"","sources":["../../src/interfaces/client.interface.ts"],"names":[],"mappings":""}
@@ -1,28 +0,0 @@
1
- /**
2
- * Codec interface for encoding and decoding message payloads.
3
- *
4
- * Implementations handle serialization between application objects and
5
- * binary data transmitted over NATS. The transport uses a single global
6
- * codec — all messages (RPC and events) share the same format.
7
- *
8
- * @example
9
- * ```typescript
10
- * import { encode, decode } from '@msgpack/msgpack';
11
- *
12
- * class MsgPackCodec implements Codec {
13
- * encode(data: unknown): Uint8Array {
14
- * return encode(data);
15
- * }
16
- * decode(data: Uint8Array): unknown {
17
- * return decode(data);
18
- * }
19
- * }
20
- * ```
21
- */
22
- export interface Codec {
23
- /** Serialize application data to binary for NATS transmission. */
24
- encode(data: unknown): Uint8Array;
25
- /** Deserialize binary NATS payload back to application data. */
26
- decode(data: Uint8Array): unknown;
27
- }
28
- //# sourceMappingURL=codec.interface.d.ts.map