@horizon-republic/nestjs-jetstream 2.7.0 → 2.8.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/dist/index.cjs +213 -85
- package/dist/index.d.cts +90 -9
- package/dist/index.d.ts +90 -9
- package/dist/index.js +191 -71
- package/package.json +8 -3
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ModuleMetadata, FactoryProvider, Type, Logger, OnApplicationShutdown, DynamicModule } from '@nestjs/common';
|
|
2
|
-
import { MsgHdrs,
|
|
2
|
+
import { MsgHdrs, ConnectionOptions, NatsConnection, Status, Msg } from '@nats-io/transport-node';
|
|
3
|
+
import { StreamConfig, ConsumerConfig, ConsumeOptions, DeliverPolicy, ReplayPolicy, JetStreamManager, JetStreamClient, ConsumerInfo, JsMsg } from '@nats-io/jetstream';
|
|
3
4
|
import { MessageHandler, Server, CustomTransportStrategy, ClientProxy, ReadPacket, WritePacket, BaseRpcContext } from '@nestjs/microservices';
|
|
4
5
|
import { Observable } from 'rxjs';
|
|
5
6
|
|
|
@@ -346,6 +347,19 @@ declare enum StreamKind {
|
|
|
346
347
|
Broadcast = "broadcast",
|
|
347
348
|
Ordered = "ordered"
|
|
348
349
|
}
|
|
350
|
+
/**
|
|
351
|
+
* Subset of {@link StreamKind} used for direct subject building.
|
|
352
|
+
*
|
|
353
|
+
* Excludes `Broadcast` because broadcast subjects use a different
|
|
354
|
+
* naming convention (`broadcast.{pattern}` instead of `{service}.{kind}.{pattern}`).
|
|
355
|
+
*/
|
|
356
|
+
type SubjectKind = Exclude<StreamKind, StreamKind.Broadcast>;
|
|
357
|
+
|
|
358
|
+
/** Options for one-shot delayed delivery via NATS 2.12 message scheduling. */
|
|
359
|
+
interface ScheduleRecordOptions {
|
|
360
|
+
/** When to deliver the message. Must be in the future. */
|
|
361
|
+
at: Date;
|
|
362
|
+
}
|
|
349
363
|
|
|
350
364
|
/** @internal Grouped pattern lists by stream kind, used for stream/consumer setup. */
|
|
351
365
|
interface PatternsByKind {
|
|
@@ -478,6 +492,7 @@ declare class ConnectionProvider {
|
|
|
478
492
|
* Sequence: drain → wait for close. Falls back to force-close on error.
|
|
479
493
|
*/
|
|
480
494
|
shutdown(): Promise<void>;
|
|
495
|
+
private initJetStreamManager;
|
|
481
496
|
/** Internal: establish the physical connection with reconnect monitoring. */
|
|
482
497
|
private establish;
|
|
483
498
|
/** Subscribe to connection status events and emit hooks. */
|
|
@@ -585,6 +600,8 @@ declare class StreamProvider {
|
|
|
585
600
|
private buildConfig;
|
|
586
601
|
/** Get default config for a stream kind. */
|
|
587
602
|
private getDefaults;
|
|
603
|
+
/** Check if scheduling is enabled for a stream kind via `allow_msg_schedules` override. */
|
|
604
|
+
private isSchedulingEnabled;
|
|
588
605
|
/** Get user-provided overrides for a stream kind. */
|
|
589
606
|
private getOverrides;
|
|
590
607
|
}
|
|
@@ -990,7 +1007,9 @@ declare class JetstreamClient extends ClientProxy {
|
|
|
990
1007
|
* Publish a fire-and-forget event to JetStream.
|
|
991
1008
|
*
|
|
992
1009
|
* Events are published to either the workqueue stream or broadcast stream
|
|
993
|
-
* depending on the subject prefix.
|
|
1010
|
+
* depending on the subject prefix. When a schedule is present the message
|
|
1011
|
+
* is published to a `_sch` subject within the same stream, with the target
|
|
1012
|
+
* set to the original event subject.
|
|
994
1013
|
*/
|
|
995
1014
|
protected dispatchEvent<T = unknown>(packet: ReadPacket): Promise<T>;
|
|
996
1015
|
/**
|
|
@@ -1016,8 +1035,20 @@ declare class JetstreamClient extends ClientProxy {
|
|
|
1016
1035
|
private buildEventSubject;
|
|
1017
1036
|
/** Build NATS headers merging custom headers with transport headers. */
|
|
1018
1037
|
private buildHeaders;
|
|
1019
|
-
/** Extract data, headers, and
|
|
1038
|
+
/** Extract data, headers, timeout, and schedule from raw packet data or JetstreamRecord. */
|
|
1020
1039
|
private extractRecordData;
|
|
1040
|
+
/**
|
|
1041
|
+
* Build a schedule-holder subject for NATS message scheduling.
|
|
1042
|
+
*
|
|
1043
|
+
* The schedule-holder subject resides in the same stream as the target but
|
|
1044
|
+
* uses a separate `_sch` namespace that is NOT matched by any consumer filter.
|
|
1045
|
+
* NATS holds the message and publishes it to the target subject after the delay.
|
|
1046
|
+
*
|
|
1047
|
+
* Examples:
|
|
1048
|
+
* - `{svc}__microservice.ev.order.reminder` → `{svc}__microservice._sch.order.reminder`
|
|
1049
|
+
* - `broadcast.config.updated` → `broadcast._sch.config.updated`
|
|
1050
|
+
*/
|
|
1051
|
+
private buildScheduleSubject;
|
|
1021
1052
|
private getRpcTimeout;
|
|
1022
1053
|
}
|
|
1023
1054
|
|
|
@@ -1046,6 +1077,8 @@ declare class JetstreamRecord<TData = unknown> {
|
|
|
1046
1077
|
readonly timeout?: number | undefined;
|
|
1047
1078
|
/** Custom message ID for JetStream deduplication. */
|
|
1048
1079
|
readonly messageId?: string | undefined;
|
|
1080
|
+
/** Schedule options for delayed delivery. */
|
|
1081
|
+
readonly schedule?: ScheduleRecordOptions | undefined;
|
|
1049
1082
|
constructor(
|
|
1050
1083
|
/** Message payload. */
|
|
1051
1084
|
data: TData,
|
|
@@ -1054,7 +1087,9 @@ declare class JetstreamRecord<TData = unknown> {
|
|
|
1054
1087
|
/** Per-request RPC timeout override in ms. */
|
|
1055
1088
|
timeout?: number | undefined,
|
|
1056
1089
|
/** Custom message ID for JetStream deduplication. */
|
|
1057
|
-
messageId?: string | undefined
|
|
1090
|
+
messageId?: string | undefined,
|
|
1091
|
+
/** Schedule options for delayed delivery. */
|
|
1092
|
+
schedule?: ScheduleRecordOptions | undefined);
|
|
1058
1093
|
}
|
|
1059
1094
|
/**
|
|
1060
1095
|
* Fluent builder for constructing JetstreamRecord instances.
|
|
@@ -1067,6 +1102,7 @@ declare class JetstreamRecordBuilder<TData = unknown> {
|
|
|
1067
1102
|
private readonly headers;
|
|
1068
1103
|
private timeout;
|
|
1069
1104
|
private messageId;
|
|
1105
|
+
private scheduleOptions;
|
|
1070
1106
|
constructor(data?: TData);
|
|
1071
1107
|
/**
|
|
1072
1108
|
* Set the message payload.
|
|
@@ -1114,6 +1150,20 @@ declare class JetstreamRecordBuilder<TData = unknown> {
|
|
|
1114
1150
|
* @param ms - Timeout in milliseconds. Overrides the global RPC timeout for this request only.
|
|
1115
1151
|
*/
|
|
1116
1152
|
setTimeout(ms: number): this;
|
|
1153
|
+
/**
|
|
1154
|
+
* Schedule one-shot delayed delivery.
|
|
1155
|
+
*
|
|
1156
|
+
* The message is held by NATS and delivered to the event consumer
|
|
1157
|
+
* at the specified time. Requires NATS >= 2.12 and `allow_msg_schedules: true`
|
|
1158
|
+
* on the event stream (via `events: { stream: { allow_msg_schedules: true } }`).
|
|
1159
|
+
*
|
|
1160
|
+
* Only meaningful for events (`client.emit()`). If used with RPC
|
|
1161
|
+
* (`client.send()`), a warning is logged and the schedule is ignored.
|
|
1162
|
+
*
|
|
1163
|
+
* @param date - Delivery time. Must be in the future.
|
|
1164
|
+
* @throws Error if the date is not in the future.
|
|
1165
|
+
*/
|
|
1166
|
+
scheduleAt(date: Date): this;
|
|
1117
1167
|
/**
|
|
1118
1168
|
* Build the immutable {@link JetstreamRecord}.
|
|
1119
1169
|
*
|
|
@@ -1125,10 +1175,10 @@ declare class JetstreamRecordBuilder<TData = unknown> {
|
|
|
1125
1175
|
}
|
|
1126
1176
|
|
|
1127
1177
|
/**
|
|
1128
|
-
* Default JSON codec
|
|
1178
|
+
* Default JSON codec using native `TextEncoder`/`TextDecoder`.
|
|
1129
1179
|
*
|
|
1130
|
-
* Serializes to
|
|
1131
|
-
*
|
|
1180
|
+
* Serializes values to JSON via `JSON.stringify` and encodes the
|
|
1181
|
+
* resulting string into a `Uint8Array`. Decoding reverses the process.
|
|
1132
1182
|
*
|
|
1133
1183
|
* @example
|
|
1134
1184
|
* ```typescript
|
|
@@ -1138,7 +1188,6 @@ declare class JetstreamRecordBuilder<TData = unknown> {
|
|
|
1138
1188
|
* ```
|
|
1139
1189
|
*/
|
|
1140
1190
|
declare class JsonCodec implements Codec {
|
|
1141
|
-
private readonly inner;
|
|
1142
1191
|
encode(data: unknown): Uint8Array;
|
|
1143
1192
|
decode(data: Uint8Array): unknown;
|
|
1144
1193
|
}
|
|
@@ -1347,6 +1396,38 @@ declare enum JetstreamHeader {
|
|
|
1347
1396
|
/** Set to `'true'` on error responses so the client can distinguish success from failure. */
|
|
1348
1397
|
Error = "x-error"
|
|
1349
1398
|
}
|
|
1399
|
+
/**
|
|
1400
|
+
* Build the internal service name with microservice suffix.
|
|
1401
|
+
*
|
|
1402
|
+
* @param name - Service name from `forRoot({ name })`.
|
|
1403
|
+
* @returns `{name}__microservice`
|
|
1404
|
+
*/
|
|
1405
|
+
declare const internalName: (name: string) => string;
|
|
1406
|
+
/**
|
|
1407
|
+
* Build a fully-qualified NATS subject for workqueue events, RPC commands, or ordered events.
|
|
1408
|
+
*
|
|
1409
|
+
* @param serviceName - Target service name.
|
|
1410
|
+
* @param kind - Subject kind ({@link StreamKind.Event}, {@link StreamKind.Command}, or {@link StreamKind.Ordered}).
|
|
1411
|
+
* @param pattern - The message pattern (e.g. `'user.created'`).
|
|
1412
|
+
* @returns `{serviceName}__microservice.{kind}.{pattern}`
|
|
1413
|
+
*/
|
|
1414
|
+
declare const buildSubject: (serviceName: string, kind: SubjectKind, pattern: string) => string;
|
|
1415
|
+
/**
|
|
1416
|
+
* Build the JetStream stream name for a given service and kind.
|
|
1417
|
+
*
|
|
1418
|
+
* @param serviceName - Service name from `forRoot({ name })`.
|
|
1419
|
+
* @param kind - Stream kind ({@link StreamKind}).
|
|
1420
|
+
* @returns Stream name (e.g. `orders__microservice_ev-stream` or `broadcast-stream`).
|
|
1421
|
+
*/
|
|
1422
|
+
declare const streamName: (serviceName: string, kind: StreamKind) => string;
|
|
1423
|
+
/**
|
|
1424
|
+
* Build the JetStream consumer name for a given service and kind.
|
|
1425
|
+
*
|
|
1426
|
+
* @param serviceName - Service name from `forRoot({ name })`.
|
|
1427
|
+
* @param kind - Stream kind ({@link StreamKind}).
|
|
1428
|
+
* @returns Consumer name (e.g. `orders__microservice_ev-consumer`).
|
|
1429
|
+
*/
|
|
1430
|
+
declare const consumerName: (serviceName: string, kind: StreamKind) => string;
|
|
1350
1431
|
/**
|
|
1351
1432
|
* Prefixes used in event patterns to route to specific stream types.
|
|
1352
1433
|
* Applied by the user when emitting events (e.g. `client.emit('broadcast:config.updated', data)`).
|
|
@@ -1362,4 +1443,4 @@ declare const isJetStreamRpcMode: (rpc: RpcConfig | undefined) => boolean;
|
|
|
1362
1443
|
/** Check if the RPC config specifies Core mode (default). */
|
|
1363
1444
|
declare const isCoreRpcMode: (rpc: RpcConfig | undefined) => boolean;
|
|
1364
1445
|
|
|
1365
|
-
export { type Codec, type DeadLetterInfo, EventBus, JETSTREAM_CODEC, JETSTREAM_CONNECTION, JETSTREAM_EVENT_BUS, JETSTREAM_OPTIONS, JetstreamClient, type JetstreamFeatureOptions, JetstreamHeader, JetstreamHealthIndicator, type JetstreamHealthStatus, JetstreamModule, type JetstreamModuleAsyncOptions, type JetstreamModuleOptions, JetstreamRecord, JetstreamRecordBuilder, JetstreamStrategy, JsonCodec, MessageKind, type OrderedEventOverrides, PatternPrefix, type RpcConfig, RpcContext, type StreamConsumerOverrides, StreamKind, TransportEvent, type TransportHooks, getClientToken, isCoreRpcMode, isJetStreamRpcMode, toNanos };
|
|
1446
|
+
export { type Codec, type DeadLetterInfo, EventBus, JETSTREAM_CODEC, JETSTREAM_CONNECTION, JETSTREAM_EVENT_BUS, JETSTREAM_OPTIONS, JetstreamClient, type JetstreamFeatureOptions, JetstreamHeader, JetstreamHealthIndicator, type JetstreamHealthStatus, JetstreamModule, type JetstreamModuleAsyncOptions, type JetstreamModuleOptions, JetstreamRecord, JetstreamRecordBuilder, JetstreamStrategy, JsonCodec, MessageKind, type OrderedEventOverrides, PatternPrefix, type RpcConfig, RpcContext, type ScheduleRecordOptions, type StreamConsumerOverrides, StreamKind, TransportEvent, type TransportHooks, buildSubject, consumerName, getClientToken, internalName, isCoreRpcMode, isJetStreamRpcMode, streamName, toNanos };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ModuleMetadata, FactoryProvider, Type, Logger, OnApplicationShutdown, DynamicModule } from '@nestjs/common';
|
|
2
|
-
import { MsgHdrs,
|
|
2
|
+
import { MsgHdrs, ConnectionOptions, NatsConnection, Status, Msg } from '@nats-io/transport-node';
|
|
3
|
+
import { StreamConfig, ConsumerConfig, ConsumeOptions, DeliverPolicy, ReplayPolicy, JetStreamManager, JetStreamClient, ConsumerInfo, JsMsg } from '@nats-io/jetstream';
|
|
3
4
|
import { MessageHandler, Server, CustomTransportStrategy, ClientProxy, ReadPacket, WritePacket, BaseRpcContext } from '@nestjs/microservices';
|
|
4
5
|
import { Observable } from 'rxjs';
|
|
5
6
|
|
|
@@ -346,6 +347,19 @@ declare enum StreamKind {
|
|
|
346
347
|
Broadcast = "broadcast",
|
|
347
348
|
Ordered = "ordered"
|
|
348
349
|
}
|
|
350
|
+
/**
|
|
351
|
+
* Subset of {@link StreamKind} used for direct subject building.
|
|
352
|
+
*
|
|
353
|
+
* Excludes `Broadcast` because broadcast subjects use a different
|
|
354
|
+
* naming convention (`broadcast.{pattern}` instead of `{service}.{kind}.{pattern}`).
|
|
355
|
+
*/
|
|
356
|
+
type SubjectKind = Exclude<StreamKind, StreamKind.Broadcast>;
|
|
357
|
+
|
|
358
|
+
/** Options for one-shot delayed delivery via NATS 2.12 message scheduling. */
|
|
359
|
+
interface ScheduleRecordOptions {
|
|
360
|
+
/** When to deliver the message. Must be in the future. */
|
|
361
|
+
at: Date;
|
|
362
|
+
}
|
|
349
363
|
|
|
350
364
|
/** @internal Grouped pattern lists by stream kind, used for stream/consumer setup. */
|
|
351
365
|
interface PatternsByKind {
|
|
@@ -478,6 +492,7 @@ declare class ConnectionProvider {
|
|
|
478
492
|
* Sequence: drain → wait for close. Falls back to force-close on error.
|
|
479
493
|
*/
|
|
480
494
|
shutdown(): Promise<void>;
|
|
495
|
+
private initJetStreamManager;
|
|
481
496
|
/** Internal: establish the physical connection with reconnect monitoring. */
|
|
482
497
|
private establish;
|
|
483
498
|
/** Subscribe to connection status events and emit hooks. */
|
|
@@ -585,6 +600,8 @@ declare class StreamProvider {
|
|
|
585
600
|
private buildConfig;
|
|
586
601
|
/** Get default config for a stream kind. */
|
|
587
602
|
private getDefaults;
|
|
603
|
+
/** Check if scheduling is enabled for a stream kind via `allow_msg_schedules` override. */
|
|
604
|
+
private isSchedulingEnabled;
|
|
588
605
|
/** Get user-provided overrides for a stream kind. */
|
|
589
606
|
private getOverrides;
|
|
590
607
|
}
|
|
@@ -990,7 +1007,9 @@ declare class JetstreamClient extends ClientProxy {
|
|
|
990
1007
|
* Publish a fire-and-forget event to JetStream.
|
|
991
1008
|
*
|
|
992
1009
|
* Events are published to either the workqueue stream or broadcast stream
|
|
993
|
-
* depending on the subject prefix.
|
|
1010
|
+
* depending on the subject prefix. When a schedule is present the message
|
|
1011
|
+
* is published to a `_sch` subject within the same stream, with the target
|
|
1012
|
+
* set to the original event subject.
|
|
994
1013
|
*/
|
|
995
1014
|
protected dispatchEvent<T = unknown>(packet: ReadPacket): Promise<T>;
|
|
996
1015
|
/**
|
|
@@ -1016,8 +1035,20 @@ declare class JetstreamClient extends ClientProxy {
|
|
|
1016
1035
|
private buildEventSubject;
|
|
1017
1036
|
/** Build NATS headers merging custom headers with transport headers. */
|
|
1018
1037
|
private buildHeaders;
|
|
1019
|
-
/** Extract data, headers, and
|
|
1038
|
+
/** Extract data, headers, timeout, and schedule from raw packet data or JetstreamRecord. */
|
|
1020
1039
|
private extractRecordData;
|
|
1040
|
+
/**
|
|
1041
|
+
* Build a schedule-holder subject for NATS message scheduling.
|
|
1042
|
+
*
|
|
1043
|
+
* The schedule-holder subject resides in the same stream as the target but
|
|
1044
|
+
* uses a separate `_sch` namespace that is NOT matched by any consumer filter.
|
|
1045
|
+
* NATS holds the message and publishes it to the target subject after the delay.
|
|
1046
|
+
*
|
|
1047
|
+
* Examples:
|
|
1048
|
+
* - `{svc}__microservice.ev.order.reminder` → `{svc}__microservice._sch.order.reminder`
|
|
1049
|
+
* - `broadcast.config.updated` → `broadcast._sch.config.updated`
|
|
1050
|
+
*/
|
|
1051
|
+
private buildScheduleSubject;
|
|
1021
1052
|
private getRpcTimeout;
|
|
1022
1053
|
}
|
|
1023
1054
|
|
|
@@ -1046,6 +1077,8 @@ declare class JetstreamRecord<TData = unknown> {
|
|
|
1046
1077
|
readonly timeout?: number | undefined;
|
|
1047
1078
|
/** Custom message ID for JetStream deduplication. */
|
|
1048
1079
|
readonly messageId?: string | undefined;
|
|
1080
|
+
/** Schedule options for delayed delivery. */
|
|
1081
|
+
readonly schedule?: ScheduleRecordOptions | undefined;
|
|
1049
1082
|
constructor(
|
|
1050
1083
|
/** Message payload. */
|
|
1051
1084
|
data: TData,
|
|
@@ -1054,7 +1087,9 @@ declare class JetstreamRecord<TData = unknown> {
|
|
|
1054
1087
|
/** Per-request RPC timeout override in ms. */
|
|
1055
1088
|
timeout?: number | undefined,
|
|
1056
1089
|
/** Custom message ID for JetStream deduplication. */
|
|
1057
|
-
messageId?: string | undefined
|
|
1090
|
+
messageId?: string | undefined,
|
|
1091
|
+
/** Schedule options for delayed delivery. */
|
|
1092
|
+
schedule?: ScheduleRecordOptions | undefined);
|
|
1058
1093
|
}
|
|
1059
1094
|
/**
|
|
1060
1095
|
* Fluent builder for constructing JetstreamRecord instances.
|
|
@@ -1067,6 +1102,7 @@ declare class JetstreamRecordBuilder<TData = unknown> {
|
|
|
1067
1102
|
private readonly headers;
|
|
1068
1103
|
private timeout;
|
|
1069
1104
|
private messageId;
|
|
1105
|
+
private scheduleOptions;
|
|
1070
1106
|
constructor(data?: TData);
|
|
1071
1107
|
/**
|
|
1072
1108
|
* Set the message payload.
|
|
@@ -1114,6 +1150,20 @@ declare class JetstreamRecordBuilder<TData = unknown> {
|
|
|
1114
1150
|
* @param ms - Timeout in milliseconds. Overrides the global RPC timeout for this request only.
|
|
1115
1151
|
*/
|
|
1116
1152
|
setTimeout(ms: number): this;
|
|
1153
|
+
/**
|
|
1154
|
+
* Schedule one-shot delayed delivery.
|
|
1155
|
+
*
|
|
1156
|
+
* The message is held by NATS and delivered to the event consumer
|
|
1157
|
+
* at the specified time. Requires NATS >= 2.12 and `allow_msg_schedules: true`
|
|
1158
|
+
* on the event stream (via `events: { stream: { allow_msg_schedules: true } }`).
|
|
1159
|
+
*
|
|
1160
|
+
* Only meaningful for events (`client.emit()`). If used with RPC
|
|
1161
|
+
* (`client.send()`), a warning is logged and the schedule is ignored.
|
|
1162
|
+
*
|
|
1163
|
+
* @param date - Delivery time. Must be in the future.
|
|
1164
|
+
* @throws Error if the date is not in the future.
|
|
1165
|
+
*/
|
|
1166
|
+
scheduleAt(date: Date): this;
|
|
1117
1167
|
/**
|
|
1118
1168
|
* Build the immutable {@link JetstreamRecord}.
|
|
1119
1169
|
*
|
|
@@ -1125,10 +1175,10 @@ declare class JetstreamRecordBuilder<TData = unknown> {
|
|
|
1125
1175
|
}
|
|
1126
1176
|
|
|
1127
1177
|
/**
|
|
1128
|
-
* Default JSON codec
|
|
1178
|
+
* Default JSON codec using native `TextEncoder`/`TextDecoder`.
|
|
1129
1179
|
*
|
|
1130
|
-
* Serializes to
|
|
1131
|
-
*
|
|
1180
|
+
* Serializes values to JSON via `JSON.stringify` and encodes the
|
|
1181
|
+
* resulting string into a `Uint8Array`. Decoding reverses the process.
|
|
1132
1182
|
*
|
|
1133
1183
|
* @example
|
|
1134
1184
|
* ```typescript
|
|
@@ -1138,7 +1188,6 @@ declare class JetstreamRecordBuilder<TData = unknown> {
|
|
|
1138
1188
|
* ```
|
|
1139
1189
|
*/
|
|
1140
1190
|
declare class JsonCodec implements Codec {
|
|
1141
|
-
private readonly inner;
|
|
1142
1191
|
encode(data: unknown): Uint8Array;
|
|
1143
1192
|
decode(data: Uint8Array): unknown;
|
|
1144
1193
|
}
|
|
@@ -1347,6 +1396,38 @@ declare enum JetstreamHeader {
|
|
|
1347
1396
|
/** Set to `'true'` on error responses so the client can distinguish success from failure. */
|
|
1348
1397
|
Error = "x-error"
|
|
1349
1398
|
}
|
|
1399
|
+
/**
|
|
1400
|
+
* Build the internal service name with microservice suffix.
|
|
1401
|
+
*
|
|
1402
|
+
* @param name - Service name from `forRoot({ name })`.
|
|
1403
|
+
* @returns `{name}__microservice`
|
|
1404
|
+
*/
|
|
1405
|
+
declare const internalName: (name: string) => string;
|
|
1406
|
+
/**
|
|
1407
|
+
* Build a fully-qualified NATS subject for workqueue events, RPC commands, or ordered events.
|
|
1408
|
+
*
|
|
1409
|
+
* @param serviceName - Target service name.
|
|
1410
|
+
* @param kind - Subject kind ({@link StreamKind.Event}, {@link StreamKind.Command}, or {@link StreamKind.Ordered}).
|
|
1411
|
+
* @param pattern - The message pattern (e.g. `'user.created'`).
|
|
1412
|
+
* @returns `{serviceName}__microservice.{kind}.{pattern}`
|
|
1413
|
+
*/
|
|
1414
|
+
declare const buildSubject: (serviceName: string, kind: SubjectKind, pattern: string) => string;
|
|
1415
|
+
/**
|
|
1416
|
+
* Build the JetStream stream name for a given service and kind.
|
|
1417
|
+
*
|
|
1418
|
+
* @param serviceName - Service name from `forRoot({ name })`.
|
|
1419
|
+
* @param kind - Stream kind ({@link StreamKind}).
|
|
1420
|
+
* @returns Stream name (e.g. `orders__microservice_ev-stream` or `broadcast-stream`).
|
|
1421
|
+
*/
|
|
1422
|
+
declare const streamName: (serviceName: string, kind: StreamKind) => string;
|
|
1423
|
+
/**
|
|
1424
|
+
* Build the JetStream consumer name for a given service and kind.
|
|
1425
|
+
*
|
|
1426
|
+
* @param serviceName - Service name from `forRoot({ name })`.
|
|
1427
|
+
* @param kind - Stream kind ({@link StreamKind}).
|
|
1428
|
+
* @returns Consumer name (e.g. `orders__microservice_ev-consumer`).
|
|
1429
|
+
*/
|
|
1430
|
+
declare const consumerName: (serviceName: string, kind: StreamKind) => string;
|
|
1350
1431
|
/**
|
|
1351
1432
|
* Prefixes used in event patterns to route to specific stream types.
|
|
1352
1433
|
* Applied by the user when emitting events (e.g. `client.emit('broadcast:config.updated', data)`).
|
|
@@ -1362,4 +1443,4 @@ declare const isJetStreamRpcMode: (rpc: RpcConfig | undefined) => boolean;
|
|
|
1362
1443
|
/** Check if the RPC config specifies Core mode (default). */
|
|
1363
1444
|
declare const isCoreRpcMode: (rpc: RpcConfig | undefined) => boolean;
|
|
1364
1445
|
|
|
1365
|
-
export { type Codec, type DeadLetterInfo, EventBus, JETSTREAM_CODEC, JETSTREAM_CONNECTION, JETSTREAM_EVENT_BUS, JETSTREAM_OPTIONS, JetstreamClient, type JetstreamFeatureOptions, JetstreamHeader, JetstreamHealthIndicator, type JetstreamHealthStatus, JetstreamModule, type JetstreamModuleAsyncOptions, type JetstreamModuleOptions, JetstreamRecord, JetstreamRecordBuilder, JetstreamStrategy, JsonCodec, MessageKind, type OrderedEventOverrides, PatternPrefix, type RpcConfig, RpcContext, type StreamConsumerOverrides, StreamKind, TransportEvent, type TransportHooks, getClientToken, isCoreRpcMode, isJetStreamRpcMode, toNanos };
|
|
1446
|
+
export { type Codec, type DeadLetterInfo, EventBus, JETSTREAM_CODEC, JETSTREAM_CONNECTION, JETSTREAM_EVENT_BUS, JETSTREAM_OPTIONS, JetstreamClient, type JetstreamFeatureOptions, JetstreamHeader, JetstreamHealthIndicator, type JetstreamHealthStatus, JetstreamModule, type JetstreamModuleAsyncOptions, type JetstreamModuleOptions, JetstreamRecord, JetstreamRecordBuilder, JetstreamStrategy, JsonCodec, MessageKind, type OrderedEventOverrides, PatternPrefix, type RpcConfig, RpcContext, type ScheduleRecordOptions, type StreamConsumerOverrides, StreamKind, TransportEvent, type TransportHooks, buildSubject, consumerName, getClientToken, internalName, isCoreRpcMode, isJetStreamRpcMode, streamName, toNanos };
|