@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,89 +0,0 @@
1
- import { DynamicModule, OnApplicationShutdown } from '@nestjs/common';
2
- import type { JetstreamFeatureOptions, JetstreamModuleAsyncOptions, JetstreamModuleOptions } from './interfaces';
3
- import { JetstreamStrategy } from './server/strategy';
4
- import { ShutdownManager } from './shutdown';
5
- /**
6
- * Root module for the NestJS JetStream transport.
7
- *
8
- * - `forRoot()` / `forRootAsync()` — registers once in AppModule.
9
- * Creates shared NATS connection, codec, event bus, and optionally
10
- * the consumer infrastructure.
11
- *
12
- * - `forFeature()` — registers in feature modules.
13
- * Creates a lightweight client proxy targeting a specific service.
14
- *
15
- * @example
16
- * ```typescript
17
- * // AppModule — global setup
18
- * @Module({
19
- * imports: [
20
- * JetstreamModule.forRoot({
21
- * name: 'orders',
22
- * servers: ['nats://localhost:4222'],
23
- * }),
24
- * ],
25
- * })
26
- * export class AppModule {}
27
- *
28
- * // Feature module — per-service clients
29
- * @Module({
30
- * imports: [
31
- * JetstreamModule.forFeature({ name: 'users' }),
32
- * JetstreamModule.forFeature({ name: 'payments' }),
33
- * ],
34
- * })
35
- * export class OrdersModule {}
36
- * ```
37
- */
38
- export declare class JetstreamModule implements OnApplicationShutdown {
39
- private readonly shutdownManager?;
40
- private readonly strategy?;
41
- constructor(shutdownManager?: ShutdownManager | undefined, strategy?: (JetstreamStrategy | null) | undefined);
42
- /**
43
- * Register the JetStream transport globally.
44
- *
45
- * Creates a shared NATS connection, codec, event bus, and optionally
46
- * the full consumer infrastructure (streams, consumers, routers).
47
- *
48
- * @param options Module configuration.
49
- * @returns Dynamic module ready to be imported.
50
- */
51
- static forRoot(options: JetstreamModuleOptions): DynamicModule;
52
- /**
53
- * Register the JetStream transport globally with async configuration.
54
- *
55
- * Supports `useFactory`, `useExisting`, and `useClass` patterns
56
- * for loading configuration from ConfigService, environment, etc.
57
- *
58
- * @param asyncOptions Async configuration.
59
- * @returns Dynamic module ready to be imported.
60
- */
61
- static forRootAsync(asyncOptions: JetstreamModuleAsyncOptions): DynamicModule;
62
- /**
63
- * Register a lightweight client proxy for a target service.
64
- *
65
- * Reuses the shared NATS connection from `forRoot()`.
66
- * Import in each feature module that needs to communicate with a specific service.
67
- *
68
- * @param options Feature options with target service name.
69
- * @returns Dynamic module with the client provider.
70
- */
71
- static forFeature(options: JetstreamFeatureOptions): DynamicModule;
72
- /** Create all providers for synchronous forRoot(). */
73
- /**
74
- * Build a map of stream name -> max_deliver for dead letter detection.
75
- * Each stream kind (ev, broadcast) has its own consumer config with potentially
76
- * different max_deliver values.
77
- */
78
- private static buildMaxDeliverMap;
79
- private static createCoreProviders;
80
- /** Create providers that depend on JETSTREAM_OPTIONS (shared by sync and async). */
81
- private static createCoreDependentProviders;
82
- /** Create async options provider from useFactory/useExisting/useClass. */
83
- private static createAsyncOptionsProvider;
84
- /**
85
- * Gracefully shut down the transport on application termination.
86
- */
87
- onApplicationShutdown(): Promise<void>;
88
- }
89
- //# sourceMappingURL=jetstream.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jetstream.module.d.ts","sourceRoot":"","sources":["../src/jetstream.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAKb,qBAAqB,EAGtB,MAAM,gBAAgB,CAAC;AAOxB,OAAO,KAAK,EAEV,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAgBtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAEa,eAAgB,YAAW,qBAAqB;IAIzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IACM,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBADhD,eAAe,CAAC,EAAE,eAAe,YAAA,EACM,QAAQ,CAAC,GAAE,iBAAiB,GAAG,IAAI,aAAA;IAO7F;;;;;;;;OAQG;WACW,OAAO,CAAC,OAAO,EAAE,sBAAsB,GAAG,aAAa;IAuBrE;;;;;;;;OAQG;WACW,YAAY,CAAC,YAAY,EAAE,2BAA2B,GAAG,aAAa;IAyBpF;;;;;;;;OAQG;WACW,UAAU,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IA6BzE,sDAAsD;IACtD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAkBjC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAUlC,oFAAoF;IACpF,OAAO,CAAC,MAAM,CAAC,4BAA4B;IA8P3C,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAkDzC;;OAEG;IACU,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CAKpD"}
@@ -1,410 +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
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- var JetstreamModule_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.JetstreamModule = void 0;
17
- const common_1 = require("@nestjs/common");
18
- const client_1 = require("./client");
19
- const codec_1 = require("./codec");
20
- const connection_1 = require("./connection");
21
- const hooks_1 = require("./hooks");
22
- const health_1 = require("./health");
23
- const jetstream_constants_1 = require("./jetstream.constants");
24
- const core_rpc_server_1 = require("./server/core-rpc.server");
25
- const infrastructure_1 = require("./server/infrastructure");
26
- const routing_1 = require("./server/routing");
27
- const strategy_1 = require("./server/strategy");
28
- const shutdown_1 = require("./shutdown");
29
- /**
30
- * Root module for the NestJS JetStream transport.
31
- *
32
- * - `forRoot()` / `forRootAsync()` — registers once in AppModule.
33
- * Creates shared NATS connection, codec, event bus, and optionally
34
- * the consumer infrastructure.
35
- *
36
- * - `forFeature()` — registers in feature modules.
37
- * Creates a lightweight client proxy targeting a specific service.
38
- *
39
- * @example
40
- * ```typescript
41
- * // AppModule — global setup
42
- * @Module({
43
- * imports: [
44
- * JetstreamModule.forRoot({
45
- * name: 'orders',
46
- * servers: ['nats://localhost:4222'],
47
- * }),
48
- * ],
49
- * })
50
- * export class AppModule {}
51
- *
52
- * // Feature module — per-service clients
53
- * @Module({
54
- * imports: [
55
- * JetstreamModule.forFeature({ name: 'users' }),
56
- * JetstreamModule.forFeature({ name: 'payments' }),
57
- * ],
58
- * })
59
- * export class OrdersModule {}
60
- * ```
61
- */
62
- let JetstreamModule = JetstreamModule_1 = class JetstreamModule {
63
- constructor(shutdownManager, strategy) {
64
- this.shutdownManager = shutdownManager;
65
- this.strategy = strategy;
66
- }
67
- // -------------------------------------------------------------------
68
- // forRoot — global module registration
69
- // -------------------------------------------------------------------
70
- /**
71
- * Register the JetStream transport globally.
72
- *
73
- * Creates a shared NATS connection, codec, event bus, and optionally
74
- * the full consumer infrastructure (streams, consumers, routers).
75
- *
76
- * @param options Module configuration.
77
- * @returns Dynamic module ready to be imported.
78
- */
79
- static forRoot(options) {
80
- const providers = this.createCoreProviders(options);
81
- return {
82
- module: JetstreamModule_1,
83
- global: true,
84
- providers,
85
- exports: [
86
- jetstream_constants_1.JETSTREAM_CONNECTION,
87
- jetstream_constants_1.JETSTREAM_CODEC,
88
- jetstream_constants_1.JETSTREAM_EVENT_BUS,
89
- jetstream_constants_1.JETSTREAM_OPTIONS,
90
- shutdown_1.ShutdownManager,
91
- strategy_1.JetstreamStrategy,
92
- health_1.JetstreamHealthIndicator,
93
- ],
94
- };
95
- }
96
- // -------------------------------------------------------------------
97
- // forRootAsync — async global module registration
98
- // -------------------------------------------------------------------
99
- /**
100
- * Register the JetStream transport globally with async configuration.
101
- *
102
- * Supports `useFactory`, `useExisting`, and `useClass` patterns
103
- * for loading configuration from ConfigService, environment, etc.
104
- *
105
- * @param asyncOptions Async configuration.
106
- * @returns Dynamic module ready to be imported.
107
- */
108
- static forRootAsync(asyncOptions) {
109
- const asyncProviders = this.createAsyncOptionsProvider(asyncOptions);
110
- const coreProviders = this.createCoreDependentProviders();
111
- return {
112
- module: JetstreamModule_1,
113
- global: true,
114
- imports: asyncOptions.imports ?? [],
115
- providers: [...asyncProviders, ...coreProviders],
116
- exports: [
117
- jetstream_constants_1.JETSTREAM_CONNECTION,
118
- jetstream_constants_1.JETSTREAM_CODEC,
119
- jetstream_constants_1.JETSTREAM_EVENT_BUS,
120
- jetstream_constants_1.JETSTREAM_OPTIONS,
121
- shutdown_1.ShutdownManager,
122
- strategy_1.JetstreamStrategy,
123
- health_1.JetstreamHealthIndicator,
124
- ],
125
- };
126
- }
127
- // -------------------------------------------------------------------
128
- // forFeature — per-module client registration
129
- // -------------------------------------------------------------------
130
- /**
131
- * Register a lightweight client proxy for a target service.
132
- *
133
- * Reuses the shared NATS connection from `forRoot()`.
134
- * Import in each feature module that needs to communicate with a specific service.
135
- *
136
- * @param options Feature options with target service name.
137
- * @returns Dynamic module with the client provider.
138
- */
139
- static forFeature(options) {
140
- const clientToken = (0, jetstream_constants_1.getClientToken)(options.name);
141
- const clientProvider = {
142
- provide: clientToken,
143
- inject: [jetstream_constants_1.JETSTREAM_OPTIONS, jetstream_constants_1.JETSTREAM_CONNECTION, jetstream_constants_1.JETSTREAM_CODEC, jetstream_constants_1.JETSTREAM_EVENT_BUS],
144
- useFactory: (rootOptions, connection, rootCodec, eventBus) => {
145
- const codec = options.codec ?? rootCodec;
146
- return new client_1.JetstreamClient(rootOptions, options.name, connection, codec, eventBus);
147
- },
148
- };
149
- return {
150
- module: JetstreamModule_1,
151
- providers: [clientProvider],
152
- exports: [clientToken],
153
- };
154
- }
155
- // -------------------------------------------------------------------
156
- // Provider factories
157
- // -------------------------------------------------------------------
158
- /** Create all providers for synchronous forRoot(). */
159
- /**
160
- * Build a map of stream name -> max_deliver for dead letter detection.
161
- * Each stream kind (ev, broadcast) has its own consumer config with potentially
162
- * different max_deliver values.
163
- */
164
- static buildMaxDeliverMap(options) {
165
- const map = new Map();
166
- const defaultEventMax = jetstream_constants_1.DEFAULT_EVENT_CONSUMER_CONFIG.max_deliver ?? 3;
167
- const defaultBroadcastMax = jetstream_constants_1.DEFAULT_BROADCAST_CONSUMER_CONFIG.max_deliver ?? 3;
168
- map.set((0, jetstream_constants_1.streamName)(options.name, 'ev'), options.events?.consumer?.max_deliver ?? defaultEventMax);
169
- map.set((0, jetstream_constants_1.streamName)(options.name, 'broadcast'), options.broadcast?.consumer?.max_deliver ?? defaultBroadcastMax);
170
- return map;
171
- }
172
- static createCoreProviders(options) {
173
- return [
174
- {
175
- provide: jetstream_constants_1.JETSTREAM_OPTIONS,
176
- useValue: options,
177
- },
178
- ...this.createCoreDependentProviders(),
179
- ];
180
- }
181
- /** Create providers that depend on JETSTREAM_OPTIONS (shared by sync and async). */
182
- static createCoreDependentProviders() {
183
- return [
184
- // EventBus — hook system with Logger fallback
185
- {
186
- provide: jetstream_constants_1.JETSTREAM_EVENT_BUS,
187
- inject: [jetstream_constants_1.JETSTREAM_OPTIONS],
188
- useFactory: (options) => {
189
- const logger = new common_1.Logger('Jetstream:Module');
190
- return new hooks_1.EventBus(logger, options.hooks);
191
- },
192
- },
193
- // Codec — global encode/decode
194
- {
195
- provide: jetstream_constants_1.JETSTREAM_CODEC,
196
- inject: [jetstream_constants_1.JETSTREAM_OPTIONS],
197
- useFactory: (options) => {
198
- return options.codec ?? new codec_1.JsonCodec();
199
- },
200
- },
201
- // ConnectionProvider — single NATS connection
202
- {
203
- provide: jetstream_constants_1.JETSTREAM_CONNECTION,
204
- inject: [jetstream_constants_1.JETSTREAM_OPTIONS, jetstream_constants_1.JETSTREAM_EVENT_BUS],
205
- useFactory: (options, eventBus) => {
206
- return new connection_1.ConnectionProvider(options, eventBus);
207
- },
208
- },
209
- // JetstreamHealthIndicator — health check for NATS connection
210
- {
211
- provide: health_1.JetstreamHealthIndicator,
212
- inject: [jetstream_constants_1.JETSTREAM_CONNECTION],
213
- useFactory: (connection) => {
214
- return new health_1.JetstreamHealthIndicator(connection);
215
- },
216
- },
217
- // ShutdownManager — graceful shutdown orchestration
218
- {
219
- provide: shutdown_1.ShutdownManager,
220
- inject: [jetstream_constants_1.JETSTREAM_CONNECTION, jetstream_constants_1.JETSTREAM_EVENT_BUS, jetstream_constants_1.JETSTREAM_OPTIONS],
221
- useFactory: (connection, eventBus, options) => {
222
- return new shutdown_1.ShutdownManager(connection, eventBus, options.shutdownTimeout ?? jetstream_constants_1.DEFAULT_SHUTDOWN_TIMEOUT);
223
- },
224
- },
225
- // ---------------------------------------------------------------
226
- // Consumer infrastructure — only created when consumer !== false.
227
- // Providers return null when consumer is disabled (publisher-only mode).
228
- // ---------------------------------------------------------------
229
- // PatternRegistry — subject-to-handler mapping
230
- {
231
- provide: routing_1.PatternRegistry,
232
- inject: [jetstream_constants_1.JETSTREAM_OPTIONS],
233
- useFactory: (options) => {
234
- if (options.consumer === false)
235
- return null;
236
- return new routing_1.PatternRegistry(options);
237
- },
238
- },
239
- // StreamProvider — JetStream stream lifecycle
240
- {
241
- provide: infrastructure_1.StreamProvider,
242
- inject: [jetstream_constants_1.JETSTREAM_OPTIONS, jetstream_constants_1.JETSTREAM_CONNECTION],
243
- useFactory: (options, connection) => {
244
- if (options.consumer === false)
245
- return null;
246
- return new infrastructure_1.StreamProvider(options, connection);
247
- },
248
- },
249
- // ConsumerProvider — JetStream consumer lifecycle (receives PatternRegistry for broadcast filtering)
250
- {
251
- provide: infrastructure_1.ConsumerProvider,
252
- inject: [jetstream_constants_1.JETSTREAM_OPTIONS, jetstream_constants_1.JETSTREAM_CONNECTION, infrastructure_1.StreamProvider, routing_1.PatternRegistry],
253
- useFactory: (options, connection, streamProvider, patternRegistry) => {
254
- if (options.consumer === false)
255
- return null;
256
- return new infrastructure_1.ConsumerProvider(options, connection, streamProvider, patternRegistry);
257
- },
258
- },
259
- // MessageProvider — pull-based message consumption
260
- {
261
- provide: infrastructure_1.MessageProvider,
262
- inject: [jetstream_constants_1.JETSTREAM_OPTIONS, jetstream_constants_1.JETSTREAM_CONNECTION, jetstream_constants_1.JETSTREAM_EVENT_BUS],
263
- useFactory: (options, connection, eventBus) => {
264
- if (options.consumer === false)
265
- return null;
266
- return new infrastructure_1.MessageProvider(connection, eventBus);
267
- },
268
- },
269
- // EventRouter — routes event and broadcast messages to handlers
270
- {
271
- provide: routing_1.EventRouter,
272
- inject: [
273
- jetstream_constants_1.JETSTREAM_OPTIONS,
274
- infrastructure_1.MessageProvider,
275
- routing_1.PatternRegistry,
276
- jetstream_constants_1.JETSTREAM_CODEC,
277
- jetstream_constants_1.JETSTREAM_EVENT_BUS,
278
- ],
279
- useFactory: (options, messageProvider, patternRegistry, codec, eventBus) => {
280
- if (options.consumer === false)
281
- return null;
282
- const deadLetterConfig = options.onDeadLetter
283
- ? {
284
- maxDeliverByStream: JetstreamModule_1.buildMaxDeliverMap(options),
285
- onDeadLetter: options.onDeadLetter,
286
- }
287
- : undefined;
288
- return new routing_1.EventRouter(messageProvider, patternRegistry, codec, eventBus, deadLetterConfig);
289
- },
290
- },
291
- // RpcRouter — routes RPC command messages in JetStream mode
292
- {
293
- provide: routing_1.RpcRouter,
294
- inject: [
295
- jetstream_constants_1.JETSTREAM_OPTIONS,
296
- infrastructure_1.MessageProvider,
297
- routing_1.PatternRegistry,
298
- jetstream_constants_1.JETSTREAM_CONNECTION,
299
- jetstream_constants_1.JETSTREAM_CODEC,
300
- jetstream_constants_1.JETSTREAM_EVENT_BUS,
301
- ],
302
- useFactory: (options, messageProvider, patternRegistry, connection, codec, eventBus) => {
303
- if (options.consumer === false)
304
- return null;
305
- const timeout = options.rpc?.mode === 'jetstream' ? options.rpc.timeout : undefined;
306
- return new routing_1.RpcRouter(messageProvider, patternRegistry, connection, codec, eventBus, timeout);
307
- },
308
- },
309
- // CoreRpcServer — RPC via NATS Core request/reply
310
- {
311
- provide: core_rpc_server_1.CoreRpcServer,
312
- inject: [
313
- jetstream_constants_1.JETSTREAM_OPTIONS,
314
- jetstream_constants_1.JETSTREAM_CONNECTION,
315
- routing_1.PatternRegistry,
316
- jetstream_constants_1.JETSTREAM_CODEC,
317
- jetstream_constants_1.JETSTREAM_EVENT_BUS,
318
- ],
319
- useFactory: (options, connection, patternRegistry, codec, eventBus) => {
320
- if (options.consumer === false)
321
- return null;
322
- return new core_rpc_server_1.CoreRpcServer(options, connection, patternRegistry, codec, eventBus);
323
- },
324
- },
325
- // JetstreamStrategy — server-side transport (only when consumer enabled)
326
- {
327
- provide: strategy_1.JetstreamStrategy,
328
- inject: [
329
- jetstream_constants_1.JETSTREAM_OPTIONS,
330
- jetstream_constants_1.JETSTREAM_CONNECTION,
331
- routing_1.PatternRegistry,
332
- infrastructure_1.StreamProvider,
333
- infrastructure_1.ConsumerProvider,
334
- infrastructure_1.MessageProvider,
335
- routing_1.EventRouter,
336
- routing_1.RpcRouter,
337
- core_rpc_server_1.CoreRpcServer,
338
- ],
339
- useFactory: (options, connection, patternRegistry, streamProvider, consumerProvider, messageProvider, eventRouter, rpcRouter, coreRpcServer) => {
340
- if (options.consumer === false)
341
- return null;
342
- return new strategy_1.JetstreamStrategy(options, connection, patternRegistry, streamProvider, consumerProvider, messageProvider, eventRouter, rpcRouter, coreRpcServer);
343
- },
344
- },
345
- ];
346
- }
347
- /** Create async options provider from useFactory/useExisting/useClass. */
348
- static createAsyncOptionsProvider(asyncOptions) {
349
- if (asyncOptions.useFactory) {
350
- const factory = asyncOptions.useFactory;
351
- return [
352
- {
353
- provide: jetstream_constants_1.JETSTREAM_OPTIONS,
354
- useFactory: async (...args) => {
355
- const partial = await factory(...args);
356
- return { ...partial, name: asyncOptions.name };
357
- },
358
- inject: asyncOptions.inject ?? [],
359
- },
360
- ];
361
- }
362
- if (asyncOptions.useExisting) {
363
- return [
364
- {
365
- provide: jetstream_constants_1.JETSTREAM_OPTIONS,
366
- useFactory: (config) => ({
367
- ...config,
368
- name: asyncOptions.name,
369
- }),
370
- inject: [asyncOptions.useExisting],
371
- },
372
- ];
373
- }
374
- // useClass — guaranteed by the discriminated union after excluding useFactory and useExisting
375
- const useClass = asyncOptions.useClass;
376
- return [
377
- { provide: useClass, useClass },
378
- {
379
- provide: jetstream_constants_1.JETSTREAM_OPTIONS,
380
- useFactory: (config) => ({
381
- ...config,
382
- name: asyncOptions.name,
383
- }),
384
- inject: [useClass],
385
- },
386
- ];
387
- }
388
- // -------------------------------------------------------------------
389
- // Lifecycle hooks
390
- // -------------------------------------------------------------------
391
- /**
392
- * Gracefully shut down the transport on application termination.
393
- */
394
- async onApplicationShutdown() {
395
- if (this.shutdownManager) {
396
- await this.shutdownManager.shutdown(this.strategy ?? undefined);
397
- }
398
- }
399
- };
400
- exports.JetstreamModule = JetstreamModule;
401
- exports.JetstreamModule = JetstreamModule = JetstreamModule_1 = __decorate([
402
- (0, common_1.Global)(),
403
- (0, common_1.Module)({}),
404
- __param(0, (0, common_1.Optional)()),
405
- __param(0, (0, common_1.Inject)(shutdown_1.ShutdownManager)),
406
- __param(1, (0, common_1.Optional)()),
407
- __param(1, (0, common_1.Inject)(strategy_1.JetstreamStrategy)),
408
- __metadata("design:paramtypes", [shutdown_1.ShutdownManager, Object])
409
- ], JetstreamModule);
410
- //# sourceMappingURL=jetstream.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jetstream.module.js","sourceRoot":"","sources":["../src/jetstream.module.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import { ConnectionProvider } from '../connection';
2
- import { EventBus } from '../hooks';
3
- import type { Codec, JetstreamModuleOptions } from '../interfaces';
4
- import { PatternRegistry } from './routing/pattern-registry';
5
- /**
6
- * Handles RPC via NATS Core request/reply pattern.
7
- *
8
- * Subscribes to `{service}.cmd.>` with a queue group for load balancing.
9
- * Each request is processed and replied to directly via `msg.respond()`.
10
- *
11
- * This is the default RPC mode — lowest latency, no persistence overhead.
12
- */
13
- export declare class CoreRpcServer {
14
- private readonly options;
15
- private readonly connection;
16
- private readonly patternRegistry;
17
- private readonly codec;
18
- private readonly eventBus;
19
- private readonly logger;
20
- private subscription;
21
- constructor(options: JetstreamModuleOptions, connection: ConnectionProvider, patternRegistry: PatternRegistry, codec: Codec, eventBus: EventBus);
22
- /** Start listening for RPC requests on the command subject. */
23
- start(): Promise<void>;
24
- /** Stop listening and clean up the subscription. */
25
- stop(): void;
26
- /** Handle an incoming Core NATS request. */
27
- private handleRequest;
28
- /** Send an error response back to the caller with x-error header. */
29
- private respondWithError;
30
- }
31
- //# sourceMappingURL=core-rpc.server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-rpc.server.d.ts","sourceRoot":"","sources":["../../src/server/core-rpc.server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,OAAO,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAInE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;;;;;;GAOG;AACH,qBAAa,aAAa;IAKtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,OAAO,CAAC,YAAY,CAA6B;gBAG9B,OAAO,EAAE,sBAAsB,EAC/B,UAAU,EAAE,kBAAkB,EAC9B,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ;IAGrC,+DAA+D;IAClD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBnC,oDAAoD;IAC7C,IAAI,IAAI,IAAI;IAOnB,4CAA4C;YAC9B,aAAa;IAgC3B,qEAAqE;IACrE,OAAO,CAAC,gBAAgB;CAUzB"}
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CoreRpcServer = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const nats_1 = require("nats");
6
- const context_1 = require("../context");
7
- const interfaces_1 = require("../interfaces");
8
- const jetstream_constants_1 = require("../jetstream.constants");
9
- const utils_1 = require("../utils");
10
- /**
11
- * Handles RPC via NATS Core request/reply pattern.
12
- *
13
- * Subscribes to `{service}.cmd.>` with a queue group for load balancing.
14
- * Each request is processed and replied to directly via `msg.respond()`.
15
- *
16
- * This is the default RPC mode — lowest latency, no persistence overhead.
17
- */
18
- class CoreRpcServer {
19
- constructor(options, connection, patternRegistry, codec, eventBus) {
20
- this.options = options;
21
- this.connection = connection;
22
- this.patternRegistry = patternRegistry;
23
- this.codec = codec;
24
- this.eventBus = eventBus;
25
- this.logger = new common_1.Logger('Jetstream:CoreRpc');
26
- this.subscription = null;
27
- }
28
- /** Start listening for RPC requests on the command subject. */
29
- async start() {
30
- const nc = await this.connection.getConnection();
31
- const serviceName = (0, jetstream_constants_1.internalName)(this.options.name);
32
- const subject = `${serviceName}.cmd.>`;
33
- const queue = `${serviceName}_cmd_queue`;
34
- this.subscription = nc.subscribe(subject, {
35
- queue,
36
- callback: (err, msg) => {
37
- if (err) {
38
- this.logger.error('Core RPC subscription error:', err);
39
- return;
40
- }
41
- this.handleRequest(msg).catch((err) => {
42
- this.logger.error('Unhandled request error:', err);
43
- });
44
- },
45
- });
46
- this.logger.log(`Core RPC listening: ${subject} (queue: ${queue})`);
47
- }
48
- /** Stop listening and clean up the subscription. */
49
- stop() {
50
- if (this.subscription) {
51
- this.subscription.unsubscribe();
52
- this.subscription = null;
53
- }
54
- }
55
- /** Handle an incoming Core NATS request. */
56
- async handleRequest(msg) {
57
- const handler = this.patternRegistry.getHandler(msg.subject);
58
- if (!handler) {
59
- this.logger.warn(`No handler for Core RPC: ${msg.subject}`);
60
- return;
61
- }
62
- this.eventBus.emit(interfaces_1.TransportEvent.MessageRouted, msg.subject, 'rpc');
63
- let data;
64
- try {
65
- data = this.codec.decode(msg.data);
66
- }
67
- catch (err) {
68
- this.logger.error(`Decode error for Core RPC ${msg.subject}:`, err);
69
- this.respondWithError(msg, err);
70
- return;
71
- }
72
- const ctx = new context_1.RpcContext([msg]);
73
- try {
74
- const result = await (0, utils_1.unwrapResult)(handler(data, ctx));
75
- msg.respond(this.codec.encode(result));
76
- }
77
- catch (err) {
78
- this.logger.error(`Handler error for Core RPC ${msg.subject}:`, err);
79
- this.respondWithError(msg, err);
80
- }
81
- }
82
- /** Send an error response back to the caller with x-error header. */
83
- respondWithError(msg, error) {
84
- try {
85
- const hdrs = (0, nats_1.headers)();
86
- hdrs.set(jetstream_constants_1.JetstreamHeader.Error, 'true');
87
- msg.respond(this.codec.encode((0, utils_1.serializeError)(error)), { headers: hdrs });
88
- }
89
- catch {
90
- this.logger.error('Failed to encode error response');
91
- }
92
- }
93
- }
94
- exports.CoreRpcServer = CoreRpcServer;
95
- //# sourceMappingURL=core-rpc.server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-rpc.server.js","sourceRoot":"","sources":["../../src/server/core-rpc.server.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export { JetstreamStrategy } from './strategy';
2
- export { CoreRpcServer } from './core-rpc.server';
3
- export { ConsumerProvider, MessageProvider, StreamProvider } from './infrastructure';
4
- export { EventRouter, PatternRegistry, RpcRouter } from './routing';
5
- //# sourceMappingURL=index.d.ts.map