@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.
- package/README.md +39 -1
- package/dist/index.cjs +2015 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +993 -0
- package/dist/index.d.ts +993 -13
- package/dist/index.js +2012 -39
- package/dist/index.js.map +1 -1
- package/package.json +29 -19
- package/dist/client/index.d.ts +0 -3
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js +0 -9
- package/dist/client/index.js.map +0 -1
- package/dist/client/jetstream.client.d.ts +0 -76
- package/dist/client/jetstream.client.d.ts.map +0 -1
- package/dist/client/jetstream.client.js +0 -325
- package/dist/client/jetstream.client.js.map +0 -1
- package/dist/client/jetstream.record.d.ts +0 -55
- package/dist/client/jetstream.record.d.ts.map +0 -1
- package/dist/client/jetstream.record.js +0 -84
- package/dist/client/jetstream.record.js.map +0 -1
- package/dist/codec/index.d.ts +0 -2
- package/dist/codec/index.d.ts.map +0 -1
- package/dist/codec/index.js +0 -6
- package/dist/codec/index.js.map +0 -1
- package/dist/codec/json.codec.d.ts +0 -20
- package/dist/codec/json.codec.d.ts.map +0 -1
- package/dist/codec/json.codec.js +0 -30
- package/dist/codec/json.codec.js.map +0 -1
- package/dist/connection/connection.provider.d.ts +0 -50
- package/dist/connection/connection.provider.d.ts.map +0 -1
- package/dist/connection/connection.provider.js +0 -141
- package/dist/connection/connection.provider.js.map +0 -1
- package/dist/connection/index.d.ts +0 -2
- package/dist/connection/index.d.ts.map +0 -1
- package/dist/connection/index.js +0 -6
- package/dist/connection/index.js.map +0 -1
- package/dist/context/index.d.ts +0 -2
- package/dist/context/index.d.ts.map +0 -1
- package/dist/context/index.js +0 -6
- package/dist/context/index.js.map +0 -1
- package/dist/context/rpc.context.d.ts +0 -35
- package/dist/context/rpc.context.d.ts.map +0 -1
- package/dist/context/rpc.context.js +0 -44
- package/dist/context/rpc.context.js.map +0 -1
- package/dist/health/index.d.ts +0 -3
- package/dist/health/index.d.ts.map +0 -1
- package/dist/health/index.js +0 -6
- package/dist/health/index.js.map +0 -1
- package/dist/health/jetstream.health-indicator.d.ts +0 -47
- package/dist/health/jetstream.health-indicator.d.ts.map +0 -1
- package/dist/health/jetstream.health-indicator.js +0 -85
- package/dist/health/jetstream.health-indicator.js.map +0 -1
- package/dist/hooks/event-bus.d.ts +0 -31
- package/dist/hooks/event-bus.d.ts.map +0 -1
- package/dist/hooks/event-bus.js +0 -79
- package/dist/hooks/event-bus.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -2
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js +0 -6
- package/dist/hooks/index.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/interfaces/client.interface.d.ts +0 -14
- package/dist/interfaces/client.interface.d.ts.map +0 -1
- package/dist/interfaces/client.interface.js +0 -3
- package/dist/interfaces/client.interface.js.map +0 -1
- package/dist/interfaces/codec.interface.d.ts +0 -28
- package/dist/interfaces/codec.interface.d.ts.map +0 -1
- package/dist/interfaces/codec.interface.js +0 -3
- package/dist/interfaces/codec.interface.js.map +0 -1
- package/dist/interfaces/hooks.interface.d.ts +0 -71
- package/dist/interfaces/hooks.interface.d.ts.map +0 -1
- package/dist/interfaces/hooks.interface.js +0 -16
- package/dist/interfaces/hooks.interface.js.map +0 -1
- package/dist/interfaces/index.d.ts +0 -8
- package/dist/interfaces/index.d.ts.map +0 -1
- package/dist/interfaces/index.js +0 -6
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/options.interface.d.ts +0 -142
- package/dist/interfaces/options.interface.d.ts.map +0 -1
- package/dist/interfaces/options.interface.js +0 -3
- package/dist/interfaces/options.interface.js.map +0 -1
- package/dist/interfaces/routing.interface.d.ts +0 -15
- package/dist/interfaces/routing.interface.d.ts.map +0 -1
- package/dist/interfaces/routing.interface.js +0 -3
- package/dist/interfaces/routing.interface.js.map +0 -1
- package/dist/interfaces/stream.interface.d.ts +0 -5
- package/dist/interfaces/stream.interface.d.ts.map +0 -1
- package/dist/interfaces/stream.interface.js +0 -3
- package/dist/interfaces/stream.interface.js.map +0 -1
- package/dist/jetstream.constants.d.ts +0 -58
- package/dist/jetstream.constants.d.ts.map +0 -1
- package/dist/jetstream.constants.js +0 -168
- package/dist/jetstream.constants.js.map +0 -1
- package/dist/jetstream.module.d.ts +0 -89
- package/dist/jetstream.module.d.ts.map +0 -1
- package/dist/jetstream.module.js +0 -410
- package/dist/jetstream.module.js.map +0 -1
- package/dist/server/core-rpc.server.d.ts +0 -31
- package/dist/server/core-rpc.server.d.ts.map +0 -1
- package/dist/server/core-rpc.server.js +0 -95
- package/dist/server/core-rpc.server.js.map +0 -1
- package/dist/server/index.d.ts +0 -5
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js +0 -16
- package/dist/server/index.js.map +0 -1
- package/dist/server/infrastructure/consumer.provider.d.ts +0 -36
- package/dist/server/infrastructure/consumer.provider.d.ts.map +0 -1
- package/dist/server/infrastructure/consumer.provider.js +0 -123
- package/dist/server/infrastructure/consumer.provider.js.map +0 -1
- package/dist/server/infrastructure/index.d.ts +0 -4
- package/dist/server/infrastructure/index.d.ts.map +0 -1
- package/dist/server/infrastructure/index.js +0 -10
- package/dist/server/infrastructure/index.js.map +0 -1
- package/dist/server/infrastructure/message.provider.d.ts +0 -46
- package/dist/server/infrastructure/message.provider.d.ts.map +0 -1
- package/dist/server/infrastructure/message.provider.js +0 -100
- package/dist/server/infrastructure/message.provider.js.map +0 -1
- package/dist/server/infrastructure/stream.provider.d.ts +0 -38
- package/dist/server/infrastructure/stream.provider.d.ts.map +0 -1
- package/dist/server/infrastructure/stream.provider.js +0 -109
- package/dist/server/infrastructure/stream.provider.js.map +0 -1
- package/dist/server/routing/event.router.d.ts +0 -56
- package/dist/server/routing/event.router.d.ts.map +0 -1
- package/dist/server/routing/event.router.js +0 -132
- package/dist/server/routing/event.router.js.map +0 -1
- package/dist/server/routing/index.d.ts +0 -5
- package/dist/server/routing/index.d.ts.map +0 -1
- package/dist/server/routing/index.js +0 -10
- package/dist/server/routing/index.js.map +0 -1
- package/dist/server/routing/pattern-registry.d.ts +0 -39
- package/dist/server/routing/pattern-registry.d.ts.map +0 -1
- package/dist/server/routing/pattern-registry.js +0 -116
- package/dist/server/routing/pattern-registry.js.map +0 -1
- package/dist/server/routing/rpc.router.d.ts +0 -37
- package/dist/server/routing/rpc.router.d.ts.map +0 -1
- package/dist/server/routing/rpc.router.js +0 -121
- package/dist/server/routing/rpc.router.js.map +0 -1
- package/dist/server/strategy.d.ts +0 -55
- package/dist/server/strategy.d.ts.map +0 -1
- package/dist/server/strategy.js +0 -113
- package/dist/server/strategy.js.map +0 -1
- package/dist/shutdown/index.d.ts +0 -2
- package/dist/shutdown/index.d.ts.map +0 -1
- package/dist/shutdown/index.js +0 -6
- package/dist/shutdown/index.js.map +0 -1
- package/dist/shutdown/shutdown.manager.d.ts +0 -27
- package/dist/shutdown/shutdown.manager.d.ts.map +0 -1
- package/dist/shutdown/shutdown.manager.js +0 -45
- package/dist/shutdown/shutdown.manager.js.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -8
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/serialize-error.d.ts +0 -10
- package/dist/utils/serialize-error.d.ts.map +0 -1
- package/dist/utils/serialize-error.js +0 -21
- package/dist/utils/serialize-error.js.map +0 -1
- package/dist/utils/unwrap-result.d.ts +0 -15
- package/dist/utils/unwrap-result.d.ts.map +0 -1
- package/dist/utils/unwrap-result.js +0 -49
- package/dist/utils/unwrap-result.js.map +0 -1
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JetstreamClient = void 0;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
|
-
const microservices_1 = require("@nestjs/microservices");
|
|
6
|
-
const nats_1 = require("nats");
|
|
7
|
-
const interfaces_1 = require("../interfaces");
|
|
8
|
-
const jetstream_constants_1 = require("../jetstream.constants");
|
|
9
|
-
const jetstream_record_1 = require("./jetstream.record");
|
|
10
|
-
/**
|
|
11
|
-
* NestJS ClientProxy implementation for the JetStream transport.
|
|
12
|
-
*
|
|
13
|
-
* Supports two operational modes:
|
|
14
|
-
* - **Core mode** (default): Uses `nc.request()` for RPC, `nc.publish()` for events.
|
|
15
|
-
* - **JetStream mode**: Uses `js.publish()` for RPC commands + inbox for responses.
|
|
16
|
-
*
|
|
17
|
-
* Events always go through JetStream publish for guaranteed delivery.
|
|
18
|
-
* The mode only affects RPC (request/reply) behavior.
|
|
19
|
-
*
|
|
20
|
-
* Clients are lightweight — they share the NATS connection from `forRoot()`.
|
|
21
|
-
*/
|
|
22
|
-
class JetstreamClient extends microservices_1.ClientProxy {
|
|
23
|
-
constructor(rootOptions, targetServiceName, connection, codec, eventBus) {
|
|
24
|
-
super();
|
|
25
|
-
this.rootOptions = rootOptions;
|
|
26
|
-
this.connection = connection;
|
|
27
|
-
this.codec = codec;
|
|
28
|
-
this.eventBus = eventBus;
|
|
29
|
-
this.logger = new common_1.Logger('Jetstream:Client');
|
|
30
|
-
/** Shared inbox for JetStream-mode RPC responses. */
|
|
31
|
-
this.inbox = null;
|
|
32
|
-
this.inboxSubscription = null;
|
|
33
|
-
/** Pending JetStream-mode RPC callbacks, keyed by correlation ID. */
|
|
34
|
-
this.pendingMessages = new Map();
|
|
35
|
-
/** Pending JetStream-mode RPC timeouts, keyed by correlation ID. */
|
|
36
|
-
this.pendingTimeouts = new Map();
|
|
37
|
-
/** Subscription to connection status events for disconnect handling. */
|
|
38
|
-
this.statusSubscription = null;
|
|
39
|
-
this.targetName = targetServiceName;
|
|
40
|
-
}
|
|
41
|
-
/** Establish connection. Called automatically by NestJS on first use. */
|
|
42
|
-
async connect() {
|
|
43
|
-
const nc = await this.connection.getConnection();
|
|
44
|
-
// Setup inbox for JetStream RPC mode
|
|
45
|
-
if (this.isJetStreamRpcMode() && !this.inboxSubscription) {
|
|
46
|
-
this.setupInbox(nc);
|
|
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
|
-
});
|
|
54
|
-
return nc;
|
|
55
|
-
}
|
|
56
|
-
/** Clean up resources. */
|
|
57
|
-
async close() {
|
|
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
|
-
}
|
|
65
|
-
for (const timeoutId of this.pendingTimeouts.values()) {
|
|
66
|
-
clearTimeout(timeoutId);
|
|
67
|
-
}
|
|
68
|
-
this.pendingMessages.clear();
|
|
69
|
-
this.pendingTimeouts.clear();
|
|
70
|
-
this.inboxSubscription?.unsubscribe();
|
|
71
|
-
this.inboxSubscription = null;
|
|
72
|
-
}
|
|
73
|
-
/** Direct access to the raw NATS connection. */
|
|
74
|
-
unwrap() {
|
|
75
|
-
return this.connection.unwrap;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Publish a fire-and-forget event to JetStream.
|
|
79
|
-
*
|
|
80
|
-
* Events are published to either the workqueue stream or broadcast stream
|
|
81
|
-
* depending on the subject prefix.
|
|
82
|
-
*/
|
|
83
|
-
async dispatchEvent(packet) {
|
|
84
|
-
const nc = await this.connect();
|
|
85
|
-
const { data, hdrs } = this.extractRecordData(packet.data);
|
|
86
|
-
// Determine if this is a broadcast event
|
|
87
|
-
// Broadcast subjects start with 'broadcast:'
|
|
88
|
-
const subject = this.buildEventSubject(packet.pattern);
|
|
89
|
-
const messageId = crypto.randomUUID();
|
|
90
|
-
const msgHeaders = this.buildHeaders(hdrs, { messageId, subject });
|
|
91
|
-
await nc.jetstream().publish(subject, this.codec.encode(data), {
|
|
92
|
-
headers: msgHeaders,
|
|
93
|
-
});
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Publish an RPC command and register callback for response.
|
|
98
|
-
*
|
|
99
|
-
* Core mode: uses nc.request() with timeout.
|
|
100
|
-
* JetStream mode: publishes to stream + waits for inbox response.
|
|
101
|
-
*/
|
|
102
|
-
publish(packet, callback) {
|
|
103
|
-
const subject = (0, jetstream_constants_1.buildSubject)(this.targetName, 'cmd', packet.pattern);
|
|
104
|
-
const { data, hdrs, timeout } = this.extractRecordData(packet.data);
|
|
105
|
-
const onUnhandled = (err) => {
|
|
106
|
-
this.logger.error('Unhandled publish error:', err);
|
|
107
|
-
callback({ err: new Error('Internal transport error'), response: null, isDisposed: true });
|
|
108
|
-
};
|
|
109
|
-
// Track correlation ID for cleanup in JetStream mode
|
|
110
|
-
let jetStreamCorrelationId = null;
|
|
111
|
-
if (this.isCoreRpcMode()) {
|
|
112
|
-
this.publishCoreRpc(subject, data, hdrs, timeout, callback).catch(onUnhandled);
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
jetStreamCorrelationId = crypto.randomUUID();
|
|
116
|
-
this.publishJetStreamRpc(subject, data, hdrs, timeout, callback, jetStreamCorrelationId).catch(onUnhandled);
|
|
117
|
-
}
|
|
118
|
-
return () => {
|
|
119
|
-
// Cleanup for JetStream mode pending messages
|
|
120
|
-
// Core mode cleanup is handled by NATS internally
|
|
121
|
-
if (jetStreamCorrelationId) {
|
|
122
|
-
const timeoutId = this.pendingTimeouts.get(jetStreamCorrelationId);
|
|
123
|
-
if (timeoutId) {
|
|
124
|
-
clearTimeout(timeoutId);
|
|
125
|
-
this.pendingTimeouts.delete(jetStreamCorrelationId);
|
|
126
|
-
}
|
|
127
|
-
this.pendingMessages.delete(jetStreamCorrelationId);
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
/** Core mode: nc.request() with timeout. */
|
|
132
|
-
async publishCoreRpc(subject, data, customHeaders, timeout, callback) {
|
|
133
|
-
try {
|
|
134
|
-
const nc = await this.connect();
|
|
135
|
-
const effectiveTimeout = timeout ?? this.getRpcTimeout();
|
|
136
|
-
const messageId = crypto.randomUUID();
|
|
137
|
-
const hdrs = this.buildHeaders(customHeaders, { messageId, subject });
|
|
138
|
-
const response = await nc.request(subject, this.codec.encode(data), {
|
|
139
|
-
timeout: effectiveTimeout,
|
|
140
|
-
headers: hdrs,
|
|
141
|
-
});
|
|
142
|
-
const decoded = this.codec.decode(response.data);
|
|
143
|
-
if (response.headers?.get(jetstream_constants_1.JetstreamHeader.Error)) {
|
|
144
|
-
callback({ err: decoded, response: null, isDisposed: true });
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
callback({ err: null, response: decoded, isDisposed: true });
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
catch (err) {
|
|
151
|
-
const error = err instanceof Error ? err : new Error('Unknown error');
|
|
152
|
-
this.logger.error(`Core RPC error (${subject}):`, err);
|
|
153
|
-
this.eventBus.emit(interfaces_1.TransportEvent.Error, error, 'client-rpc');
|
|
154
|
-
callback({ err: error, response: null, isDisposed: true });
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
/** JetStream mode: publish to stream + wait for inbox response. */
|
|
158
|
-
async publishJetStreamRpc(subject, data, customHeaders, timeout, callback, correlationId = crypto.randomUUID()) {
|
|
159
|
-
const messageId = crypto.randomUUID();
|
|
160
|
-
const effectiveTimeout = timeout ?? this.getRpcTimeout();
|
|
161
|
-
this.pendingMessages.set(correlationId, callback);
|
|
162
|
-
const timeoutId = setTimeout(() => {
|
|
163
|
-
if (!this.pendingMessages.has(correlationId))
|
|
164
|
-
return;
|
|
165
|
-
this.pendingTimeouts.delete(correlationId);
|
|
166
|
-
this.pendingMessages.delete(correlationId);
|
|
167
|
-
this.logger.error(`JetStream RPC timeout (${effectiveTimeout}ms): ${subject}`);
|
|
168
|
-
this.eventBus.emit(interfaces_1.TransportEvent.RpcTimeout, subject, correlationId);
|
|
169
|
-
callback({ err: new Error('RPC timeout'), response: null, isDisposed: true });
|
|
170
|
-
}, effectiveTimeout);
|
|
171
|
-
this.pendingTimeouts.set(correlationId, timeoutId);
|
|
172
|
-
try {
|
|
173
|
-
const nc = await this.connect();
|
|
174
|
-
if (!this.inbox) {
|
|
175
|
-
throw new Error('Inbox not initialized — JetStream RPC mode requires a connected inbox');
|
|
176
|
-
}
|
|
177
|
-
const hdrs = this.buildHeaders(customHeaders, {
|
|
178
|
-
messageId,
|
|
179
|
-
subject,
|
|
180
|
-
correlationId,
|
|
181
|
-
replyTo: this.inbox,
|
|
182
|
-
});
|
|
183
|
-
await nc.jetstream().publish(subject, this.codec.encode(data), {
|
|
184
|
-
headers: hdrs,
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
catch (err) {
|
|
188
|
-
clearTimeout(timeoutId);
|
|
189
|
-
this.pendingTimeouts.delete(correlationId);
|
|
190
|
-
if (!this.pendingMessages.has(correlationId))
|
|
191
|
-
return;
|
|
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);
|
|
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;
|
|
215
|
-
}
|
|
216
|
-
/** Setup shared inbox subscription for JetStream RPC responses. */
|
|
217
|
-
setupInbox(nc) {
|
|
218
|
-
this.inbox = (0, nats_1.createInbox)((0, jetstream_constants_1.internalName)(this.rootOptions.name));
|
|
219
|
-
this.inboxSubscription = nc.subscribe(this.inbox, {
|
|
220
|
-
callback: (err, msg) => {
|
|
221
|
-
if (err) {
|
|
222
|
-
this.logger.error('Inbox subscription error:', err);
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
this.routeInboxReply(msg);
|
|
226
|
-
},
|
|
227
|
-
});
|
|
228
|
-
this.logger.debug(`Inbox subscription: ${this.inbox}`);
|
|
229
|
-
}
|
|
230
|
-
/** Route an inbox reply to the matching pending callback. */
|
|
231
|
-
routeInboxReply(msg) {
|
|
232
|
-
const correlationId = msg.headers?.get(jetstream_constants_1.JetstreamHeader.CorrelationId);
|
|
233
|
-
if (!correlationId) {
|
|
234
|
-
this.logger.warn('Inbox reply without correlation-id, ignoring');
|
|
235
|
-
return;
|
|
236
|
-
}
|
|
237
|
-
const callback = this.pendingMessages.get(correlationId);
|
|
238
|
-
if (!callback) {
|
|
239
|
-
this.logger.warn(`No pending handler for correlation-id: ${correlationId}`);
|
|
240
|
-
return;
|
|
241
|
-
}
|
|
242
|
-
const timeoutId = this.pendingTimeouts.get(correlationId);
|
|
243
|
-
if (timeoutId) {
|
|
244
|
-
clearTimeout(timeoutId);
|
|
245
|
-
this.pendingTimeouts.delete(correlationId);
|
|
246
|
-
}
|
|
247
|
-
try {
|
|
248
|
-
const decoded = this.codec.decode(msg.data);
|
|
249
|
-
if (msg.headers?.get(jetstream_constants_1.JetstreamHeader.Error)) {
|
|
250
|
-
callback({ err: decoded, response: null, isDisposed: true });
|
|
251
|
-
}
|
|
252
|
-
else {
|
|
253
|
-
callback({ err: null, response: decoded, isDisposed: true });
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
catch (err) {
|
|
257
|
-
callback({
|
|
258
|
-
err: err instanceof Error ? err : new Error('Decode error'),
|
|
259
|
-
response: null,
|
|
260
|
-
isDisposed: true,
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
finally {
|
|
264
|
-
this.pendingMessages.delete(correlationId);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
/** Build event subject — workqueue or broadcast. */
|
|
268
|
-
buildEventSubject(pattern) {
|
|
269
|
-
// Convention: 'broadcast:' prefix routes to the shared broadcast stream.
|
|
270
|
-
// The prefix is stripped and the pattern is published to broadcast.{pattern}.
|
|
271
|
-
// Example: 'broadcast:user.created' → 'broadcast.user.created'
|
|
272
|
-
if (pattern.startsWith('broadcast:')) {
|
|
273
|
-
return (0, jetstream_constants_1.buildBroadcastSubject)(pattern.slice('broadcast:'.length));
|
|
274
|
-
}
|
|
275
|
-
return (0, jetstream_constants_1.buildSubject)(this.targetName, 'ev', pattern);
|
|
276
|
-
}
|
|
277
|
-
/** Build NATS headers merging custom headers with transport headers. */
|
|
278
|
-
buildHeaders(customHeaders, transport) {
|
|
279
|
-
const hdrs = (0, nats_1.headers)();
|
|
280
|
-
// Set transport headers
|
|
281
|
-
hdrs.set(jetstream_constants_1.JetstreamHeader.MessageId, transport.messageId);
|
|
282
|
-
hdrs.set(jetstream_constants_1.JetstreamHeader.Subject, transport.subject);
|
|
283
|
-
hdrs.set(jetstream_constants_1.JetstreamHeader.CallerName, (0, jetstream_constants_1.internalName)(this.rootOptions.name));
|
|
284
|
-
if (transport.correlationId) {
|
|
285
|
-
hdrs.set(jetstream_constants_1.JetstreamHeader.CorrelationId, transport.correlationId);
|
|
286
|
-
}
|
|
287
|
-
if (transport.replyTo) {
|
|
288
|
-
hdrs.set(jetstream_constants_1.JetstreamHeader.ReplyTo, transport.replyTo);
|
|
289
|
-
}
|
|
290
|
-
// Merge user headers (reserved headers already validated by JetstreamRecordBuilder)
|
|
291
|
-
if (customHeaders) {
|
|
292
|
-
for (const [key, value] of customHeaders) {
|
|
293
|
-
hdrs.set(key, value);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
return hdrs;
|
|
297
|
-
}
|
|
298
|
-
/** Extract data, headers, and timeout from raw packet data or JetstreamRecord. */
|
|
299
|
-
extractRecordData(rawData) {
|
|
300
|
-
if (rawData instanceof jetstream_record_1.JetstreamRecord) {
|
|
301
|
-
return {
|
|
302
|
-
data: rawData.data,
|
|
303
|
-
hdrs: rawData.headers.size > 0 ? new Map(rawData.headers) : null,
|
|
304
|
-
timeout: rawData.timeout,
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
return { data: rawData, hdrs: null, timeout: undefined };
|
|
308
|
-
}
|
|
309
|
-
isCoreRpcMode() {
|
|
310
|
-
return !this.rootOptions.rpc || this.rootOptions.rpc.mode === 'core';
|
|
311
|
-
}
|
|
312
|
-
isJetStreamRpcMode() {
|
|
313
|
-
return this.rootOptions.rpc?.mode === 'jetstream';
|
|
314
|
-
}
|
|
315
|
-
getRpcTimeout() {
|
|
316
|
-
if (!this.rootOptions.rpc)
|
|
317
|
-
return jetstream_constants_1.DEFAULT_RPC_TIMEOUT;
|
|
318
|
-
const defaultTimeout = this.isJetStreamRpcMode()
|
|
319
|
-
? jetstream_constants_1.DEFAULT_JETSTREAM_RPC_TIMEOUT
|
|
320
|
-
: jetstream_constants_1.DEFAULT_RPC_TIMEOUT;
|
|
321
|
-
return this.rootOptions.rpc.timeout ?? defaultTimeout;
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
exports.JetstreamClient = JetstreamClient;
|
|
325
|
-
//# sourceMappingURL=jetstream.client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream.client.js","sourceRoot":"","sources":["../../src/client/jetstream.client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Immutable message record for JetStream transport.
|
|
3
|
-
*
|
|
4
|
-
* Compatible with NestJS record builder pattern (like RmqRecord, NatsRecord).
|
|
5
|
-
* Pass as the second argument to `client.send()` or `client.emit()`.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* const record = new JetstreamRecordBuilder({ id: 1 })
|
|
10
|
-
* .setHeader('x-tenant', 'acme')
|
|
11
|
-
* .setTimeout(5000)
|
|
12
|
-
* .build();
|
|
13
|
-
*
|
|
14
|
-
* client.send('get.user', record);
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export declare class JetstreamRecord<TData = unknown> {
|
|
18
|
-
readonly data: TData;
|
|
19
|
-
readonly headers: ReadonlyMap<string, string>;
|
|
20
|
-
readonly timeout?: number | undefined;
|
|
21
|
-
constructor(data: TData, headers: ReadonlyMap<string, string>, timeout?: number | undefined);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Fluent builder for constructing JetstreamRecord instances.
|
|
25
|
-
*
|
|
26
|
-
* Protected headers (`correlation-id`, `reply-to`, `message-id`) cannot be
|
|
27
|
-
* set by the user — attempting to do so throws an error at build time.
|
|
28
|
-
*/
|
|
29
|
-
export declare class JetstreamRecordBuilder<TData = unknown> {
|
|
30
|
-
private data;
|
|
31
|
-
private readonly headers;
|
|
32
|
-
private timeout;
|
|
33
|
-
constructor(data?: TData);
|
|
34
|
-
/** Set the message payload. */
|
|
35
|
-
setData(data: TData): this;
|
|
36
|
-
/**
|
|
37
|
-
* Set a single custom header.
|
|
38
|
-
*
|
|
39
|
-
* @throws Error if the header name is reserved by the transport.
|
|
40
|
-
*/
|
|
41
|
-
setHeader(key: string, value: string): this;
|
|
42
|
-
/**
|
|
43
|
-
* Set multiple custom headers at once.
|
|
44
|
-
*
|
|
45
|
-
* @throws Error if any header name is reserved by the transport.
|
|
46
|
-
*/
|
|
47
|
-
setHeaders(headers: Record<string, string>): this;
|
|
48
|
-
/** Set RPC request timeout in milliseconds. */
|
|
49
|
-
setTimeout(ms: number): this;
|
|
50
|
-
/** Build the immutable JetstreamRecord. */
|
|
51
|
-
build(): JetstreamRecord<TData>;
|
|
52
|
-
/** Validate that a header key is not reserved. */
|
|
53
|
-
private validateHeaderKey;
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=jetstream.record.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream.record.d.ts","sourceRoot":"","sources":["../../src/client/jetstream.record.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe,CAAC,KAAK,GAAG,OAAO;aAExB,IAAI,EAAE,KAAK;aACX,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;aACpC,OAAO,CAAC,EAAE,MAAM;gBAFhB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,OAAO,CAAC,EAAE,MAAM,YAAA;CAEnC;AAED;;;;;GAKG;AACH,qBAAa,sBAAsB,CAAC,KAAK,GAAG,OAAO;IACjD,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,OAAO,CAAqB;gBAEjB,IAAI,CAAC,EAAE,KAAK;IAI/B,+BAA+B;IACxB,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAKjC;;;;OAIG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMlD;;;;OAIG;IACI,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAQxD,+CAA+C;IACxC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKnC,2CAA2C;IACpC,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC;IAItC,kDAAkD;IAClD,OAAO,CAAC,iBAAiB;CAQ1B"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JetstreamRecordBuilder = exports.JetstreamRecord = void 0;
|
|
4
|
-
const jetstream_constants_1 = require("../jetstream.constants");
|
|
5
|
-
/**
|
|
6
|
-
* Immutable message record for JetStream transport.
|
|
7
|
-
*
|
|
8
|
-
* Compatible with NestJS record builder pattern (like RmqRecord, NatsRecord).
|
|
9
|
-
* Pass as the second argument to `client.send()` or `client.emit()`.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const record = new JetstreamRecordBuilder({ id: 1 })
|
|
14
|
-
* .setHeader('x-tenant', 'acme')
|
|
15
|
-
* .setTimeout(5000)
|
|
16
|
-
* .build();
|
|
17
|
-
*
|
|
18
|
-
* client.send('get.user', record);
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
class JetstreamRecord {
|
|
22
|
-
constructor(data, headers, timeout) {
|
|
23
|
-
this.data = data;
|
|
24
|
-
this.headers = headers;
|
|
25
|
-
this.timeout = timeout;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.JetstreamRecord = JetstreamRecord;
|
|
29
|
-
/**
|
|
30
|
-
* Fluent builder for constructing JetstreamRecord instances.
|
|
31
|
-
*
|
|
32
|
-
* Protected headers (`correlation-id`, `reply-to`, `message-id`) cannot be
|
|
33
|
-
* set by the user — attempting to do so throws an error at build time.
|
|
34
|
-
*/
|
|
35
|
-
class JetstreamRecordBuilder {
|
|
36
|
-
constructor(data) {
|
|
37
|
-
this.headers = new Map();
|
|
38
|
-
this.data = data;
|
|
39
|
-
}
|
|
40
|
-
/** Set the message payload. */
|
|
41
|
-
setData(data) {
|
|
42
|
-
this.data = data;
|
|
43
|
-
return this;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Set a single custom header.
|
|
47
|
-
*
|
|
48
|
-
* @throws Error if the header name is reserved by the transport.
|
|
49
|
-
*/
|
|
50
|
-
setHeader(key, value) {
|
|
51
|
-
this.validateHeaderKey(key);
|
|
52
|
-
this.headers.set(key, value);
|
|
53
|
-
return this;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Set multiple custom headers at once.
|
|
57
|
-
*
|
|
58
|
-
* @throws Error if any header name is reserved by the transport.
|
|
59
|
-
*/
|
|
60
|
-
setHeaders(headers) {
|
|
61
|
-
for (const [key, value] of Object.entries(headers)) {
|
|
62
|
-
this.setHeader(key, value);
|
|
63
|
-
}
|
|
64
|
-
return this;
|
|
65
|
-
}
|
|
66
|
-
/** Set RPC request timeout in milliseconds. */
|
|
67
|
-
setTimeout(ms) {
|
|
68
|
-
this.timeout = ms;
|
|
69
|
-
return this;
|
|
70
|
-
}
|
|
71
|
-
/** Build the immutable JetstreamRecord. */
|
|
72
|
-
build() {
|
|
73
|
-
return new JetstreamRecord(this.data, new Map(this.headers), this.timeout);
|
|
74
|
-
}
|
|
75
|
-
/** Validate that a header key is not reserved. */
|
|
76
|
-
validateHeaderKey(key) {
|
|
77
|
-
if (jetstream_constants_1.RESERVED_HEADERS.has(key)) {
|
|
78
|
-
throw new Error(`Header "${key}" is reserved by the JetStream transport and cannot be set manually. ` +
|
|
79
|
-
`Reserved headers: ${[...jetstream_constants_1.RESERVED_HEADERS].join(', ')}`);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.JetstreamRecordBuilder = JetstreamRecordBuilder;
|
|
84
|
-
//# sourceMappingURL=jetstream.record.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream.record.js","sourceRoot":"","sources":["../../src/client/jetstream.record.ts"],"names":[],"mappings":";;;AAAA,gEAA0D;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,MAAa,eAAe;IAC1B,YACkB,IAAW,EACX,OAAoC,EACpC,OAAgB;QAFhB,SAAI,GAAJ,IAAI,CAAO;QACX,YAAO,GAAP,OAAO,CAA6B;QACpC,YAAO,GAAP,OAAO,CAAS;IAC/B,CAAC;CACL;AAND,0CAMC;AAED;;;;;GAKG;AACH,MAAa,sBAAsB;IAKjC,YAAmB,IAAY;QAHd,YAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAInD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,+BAA+B;IACxB,OAAO,CAAC,IAAW;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,GAAW,EAAE,KAAa;QACzC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,OAA+B;QAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+CAA+C;IACxC,UAAU,CAAC,EAAU;QAC1B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2CAA2C;IACpC,KAAK;QACV,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,IAAa,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IAED,kDAAkD;IAC1C,iBAAiB,CAAC,GAAW;QACnC,IAAI,sCAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,WAAW,GAAG,uEAAuE;gBACnF,qBAAqB,CAAC,GAAG,sCAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA3DD,wDA2DC"}
|
package/dist/codec/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codec/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/codec/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JsonCodec = void 0;
|
|
4
|
-
var json_codec_1 = require("./json.codec");
|
|
5
|
-
Object.defineProperty(exports, "JsonCodec", { enumerable: true, get: function () { return json_codec_1.JsonCodec; } });
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
package/dist/codec/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codec/index.ts"],"names":[],"mappings":";;;AAAA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Codec } from '../interfaces';
|
|
2
|
-
/**
|
|
3
|
-
* Default JSON codec wrapping the nats.js JSONCodec.
|
|
4
|
-
*
|
|
5
|
-
* Serializes to/from JSON using the native NATS implementation
|
|
6
|
-
* which handles `TextEncoder`/`TextDecoder` internally.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const codec = new JsonCodec();
|
|
11
|
-
* const bytes = codec.encode({ hello: 'world' });
|
|
12
|
-
* const data = codec.decode(bytes); // { hello: 'world' }
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
export declare class JsonCodec implements Codec {
|
|
16
|
-
private readonly inner;
|
|
17
|
-
encode(data: unknown): Uint8Array;
|
|
18
|
-
decode(data: Uint8Array): unknown;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=json.codec.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json.codec.d.ts","sourceRoot":"","sources":["../../src/codec/json.codec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,qBAAa,SAAU,YAAW,KAAK;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IAElC,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU;IAIjC,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;CAGzC"}
|
package/dist/codec/json.codec.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JsonCodec = void 0;
|
|
4
|
-
const nats_1 = require("nats");
|
|
5
|
-
/**
|
|
6
|
-
* Default JSON codec wrapping the nats.js JSONCodec.
|
|
7
|
-
*
|
|
8
|
-
* Serializes to/from JSON using the native NATS implementation
|
|
9
|
-
* which handles `TextEncoder`/`TextDecoder` internally.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const codec = new JsonCodec();
|
|
14
|
-
* const bytes = codec.encode({ hello: 'world' });
|
|
15
|
-
* const data = codec.decode(bytes); // { hello: 'world' }
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
class JsonCodec {
|
|
19
|
-
constructor() {
|
|
20
|
-
this.inner = (0, nats_1.JSONCodec)();
|
|
21
|
-
}
|
|
22
|
-
encode(data) {
|
|
23
|
-
return this.inner.encode(data);
|
|
24
|
-
}
|
|
25
|
-
decode(data) {
|
|
26
|
-
return this.inner.decode(data);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
exports.JsonCodec = JsonCodec;
|
|
30
|
-
//# sourceMappingURL=json.codec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json.codec.js","sourceRoot":"","sources":["../../src/codec/json.codec.ts"],"names":[],"mappings":";;;AAAA,+BAAkD;AAIlD;;;;;;;;;;;;GAYG;AACH,MAAa,SAAS;IAAtB;QACmB,UAAK,GAAG,IAAA,gBAAa,GAAE,CAAC;IAS3C,CAAC;IAPQ,MAAM,CAAC,IAAa;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,IAAgB;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACF;AAVD,8BAUC"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { JetStreamManager, NatsConnection, Status } from 'nats';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { EventBus } from '../hooks';
|
|
4
|
-
import type { JetstreamModuleOptions } from '../interfaces';
|
|
5
|
-
/**
|
|
6
|
-
* Manages the lifecycle of a single NATS connection shared across the application.
|
|
7
|
-
*
|
|
8
|
-
* Provides both Promise-based and Observable-based access to the connection:
|
|
9
|
-
* - `connect()` / `getConnection()` — async/await for one-time setup
|
|
10
|
-
* - `nc$` — cached observable (shareReplay) for reactive consumers
|
|
11
|
-
* - `status$` — live connection status event stream
|
|
12
|
-
*
|
|
13
|
-
* One instance per application, created by `JetstreamModule.forRoot()`.
|
|
14
|
-
*/
|
|
15
|
-
export declare class ConnectionProvider {
|
|
16
|
-
private readonly options;
|
|
17
|
-
private readonly eventBus;
|
|
18
|
-
/** Cached observable that replays the established connection to new subscribers. */
|
|
19
|
-
readonly nc$: Observable<NatsConnection>;
|
|
20
|
-
/** Live stream of connection status events (no replay). */
|
|
21
|
-
readonly status$: Observable<Status>;
|
|
22
|
-
private readonly logger;
|
|
23
|
-
private connection;
|
|
24
|
-
private connectionPromise;
|
|
25
|
-
private jsmInstance;
|
|
26
|
-
constructor(options: JetstreamModuleOptions, eventBus: EventBus);
|
|
27
|
-
/**
|
|
28
|
-
* Establish NATS connection. Idempotent — returns cached connection on subsequent calls.
|
|
29
|
-
*
|
|
30
|
-
* @throws RuntimeException if connection is refused (fail fast).
|
|
31
|
-
*/
|
|
32
|
-
getConnection(): Promise<NatsConnection>;
|
|
33
|
-
/**
|
|
34
|
-
* Get JetStream manager. Cached after first call.
|
|
35
|
-
*/
|
|
36
|
-
getJetStreamManager(): Promise<JetStreamManager>;
|
|
37
|
-
/** Direct access to the raw NATS connection (assumes already connected). */
|
|
38
|
-
get unwrap(): NatsConnection | null;
|
|
39
|
-
/**
|
|
40
|
-
* Gracefully shut down the connection.
|
|
41
|
-
*
|
|
42
|
-
* Sequence: drain → wait for close. Falls back to force-close on error.
|
|
43
|
-
*/
|
|
44
|
-
shutdown(): Promise<void>;
|
|
45
|
-
/** Internal: establish the physical connection with reconnect monitoring. */
|
|
46
|
-
private establish;
|
|
47
|
-
/** Subscribe to connection status events and emit hooks. */
|
|
48
|
-
private monitorStatus;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=connection.provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connection.provider.d.ts","sourceRoot":"","sources":["../../src/connection/connection.provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,gBAAgB,EAChB,cAAc,EAEd,MAAM,EACP,MAAM,MAAM,CAAC;AACd,OAAO,EAAe,UAAU,EAAiC,MAAM,MAAM,CAAC;AAE9E,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAG5D;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAc3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAd3B,oFAAoF;IACpF,SAAgB,GAAG,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAEhD,2DAA2D;IAC3D,SAAgB,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAE5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAE7D,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,iBAAiB,CAAwC;IACjE,OAAO,CAAC,WAAW,CAAiC;gBAGjC,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,QAAQ;IAarC;;;;OAIG;IACU,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAarD;;OAEG;IACU,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAU7D,4EAA4E;IAC5E,IAAW,MAAM,IAAI,cAAc,GAAG,IAAI,CAEzC;IAED;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBtC,6EAA6E;YAC/D,SAAS;IA4BvB,4DAA4D;IAC5D,OAAO,CAAC,aAAa;CA2BtB"}
|