@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codec.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/codec.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,KAAK;IACpB,kEAAkE;IAClE,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAElC,gEAAgE;IAChE,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;CACnC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codec.interface.js","sourceRoot":"","sources":["../../src/interfaces/codec.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import type { MsgHdrs } from 'nats';
|
|
2
|
-
export declare enum TransportEvent {
|
|
3
|
-
Connect = "connect",
|
|
4
|
-
Disconnect = "disconnect",
|
|
5
|
-
Reconnect = "reconnect",
|
|
6
|
-
Error = "error",
|
|
7
|
-
RpcTimeout = "rpcTimeout",
|
|
8
|
-
MessageRouted = "messageRouted",
|
|
9
|
-
ShutdownStart = "shutdownStart",
|
|
10
|
-
ShutdownComplete = "shutdownComplete",
|
|
11
|
-
DeadLetter = "deadLetter"
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Hook callbacks for transport lifecycle and operational events.
|
|
15
|
-
*
|
|
16
|
-
* Each hook has a default implementation that logs via NestJS Logger.
|
|
17
|
-
* Providing a custom hook replaces the default for that specific event.
|
|
18
|
-
* Hooks that are not overridden continue using the Logger fallback.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* JetstreamModule.forRoot({
|
|
23
|
-
* hooks: {
|
|
24
|
-
* [TransportEvent.Error]: (error, context) => sentry.captureException(error),
|
|
25
|
-
* [TransportEvent.RpcTimeout]: (subject) => metrics.increment('rpc.timeout'),
|
|
26
|
-
* },
|
|
27
|
-
* })
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export interface TransportHooks {
|
|
31
|
-
/** Fired when NATS connection is established. */
|
|
32
|
-
[TransportEvent.Connect](server: string): void;
|
|
33
|
-
/** Fired when NATS connection is lost. */
|
|
34
|
-
[TransportEvent.Disconnect](): void;
|
|
35
|
-
/** Fired when NATS connection is re-established after a disconnect. */
|
|
36
|
-
[TransportEvent.Reconnect](server: string): void;
|
|
37
|
-
/** Fired on any transport-level error. */
|
|
38
|
-
[TransportEvent.Error](error: Error, context?: string): void;
|
|
39
|
-
/** Fired when an RPC handler exceeds its timeout. */
|
|
40
|
-
[TransportEvent.RpcTimeout](subject: string, correlationId: string): void;
|
|
41
|
-
/** Fired after a message is successfully routed to its handler. */
|
|
42
|
-
[TransportEvent.MessageRouted](subject: string, kind: 'rpc' | 'event'): void;
|
|
43
|
-
/** Fired at the start of the graceful shutdown sequence. */
|
|
44
|
-
[TransportEvent.ShutdownStart](): void;
|
|
45
|
-
/** Fired after graceful shutdown completes. */
|
|
46
|
-
[TransportEvent.ShutdownComplete](): void;
|
|
47
|
-
/** Fired when a message exhausts all delivery attempts (dead letter). */
|
|
48
|
-
[TransportEvent.DeadLetter](info: DeadLetterInfo): void;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Context passed to the onDeadLetter callback when a message exhausts all delivery attempts.
|
|
52
|
-
*/
|
|
53
|
-
export interface DeadLetterInfo {
|
|
54
|
-
/** The NATS subject the message was published to. */
|
|
55
|
-
subject: string;
|
|
56
|
-
/** Decoded message payload. */
|
|
57
|
-
data: unknown;
|
|
58
|
-
/** Message headers (raw NATS MsgHdrs). */
|
|
59
|
-
headers: MsgHdrs | undefined;
|
|
60
|
-
/** The error that caused the last handler failure. */
|
|
61
|
-
error: unknown;
|
|
62
|
-
/** How many times this message was delivered. */
|
|
63
|
-
deliveryCount: number;
|
|
64
|
-
/** The stream this message belongs to. */
|
|
65
|
-
stream: string;
|
|
66
|
-
/** The stream sequence number. */
|
|
67
|
-
streamSequence: number;
|
|
68
|
-
/** ISO timestamp of the message (derived from msg.info.timestampNanos). */
|
|
69
|
-
timestamp: string;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=hooks.interface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/hooks.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;CAC1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/C,0CAA0C;IAC1C,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAEpC,uEAAuE;IACvE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjD,0CAA0C;IAC1C,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7D,qDAAqD;IACrD,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1E,mEAAmE;IACnE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;IAE7E,4DAA4D;IAC5D,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IAEvC,+CAA+C;IAC/C,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAE1C,yEAAyE;IACzE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,0CAA0C;IAC1C,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,sDAAsD;IACtD,KAAK,EAAE,OAAO,CAAC;IACf,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TransportEvent = void 0;
|
|
4
|
-
var TransportEvent;
|
|
5
|
-
(function (TransportEvent) {
|
|
6
|
-
TransportEvent["Connect"] = "connect";
|
|
7
|
-
TransportEvent["Disconnect"] = "disconnect";
|
|
8
|
-
TransportEvent["Reconnect"] = "reconnect";
|
|
9
|
-
TransportEvent["Error"] = "error";
|
|
10
|
-
TransportEvent["RpcTimeout"] = "rpcTimeout";
|
|
11
|
-
TransportEvent["MessageRouted"] = "messageRouted";
|
|
12
|
-
TransportEvent["ShutdownStart"] = "shutdownStart";
|
|
13
|
-
TransportEvent["ShutdownComplete"] = "shutdownComplete";
|
|
14
|
-
TransportEvent["DeadLetter"] = "deadLetter";
|
|
15
|
-
})(TransportEvent || (exports.TransportEvent = TransportEvent = {}));
|
|
16
|
-
//# sourceMappingURL=hooks.interface.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.interface.js","sourceRoot":"","sources":["../../src/interfaces/hooks.interface.ts"],"names":[],"mappings":";;;AAEA,IAAY,cAUX;AAVD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,2CAAyB,CAAA;IACzB,yCAAuB,CAAA;IACvB,iCAAe,CAAA;IACf,2CAAyB,CAAA;IACzB,iDAA+B,CAAA;IAC/B,iDAA+B,CAAA;IAC/B,uDAAqC,CAAA;IACrC,2CAAyB,CAAA;AAC3B,CAAC,EAVW,cAAc,8BAAd,cAAc,QAUzB"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export type { Codec } from './codec.interface';
|
|
2
|
-
export { TransportEvent } from './hooks.interface';
|
|
3
|
-
export type { DeadLetterInfo, TransportHooks } from './hooks.interface';
|
|
4
|
-
export type { JetstreamFeatureOptions, JetstreamModuleAsyncOptions, JetstreamModuleOptions, RpcConfig, StreamConsumerOverrides, } from './options.interface';
|
|
5
|
-
export type { StreamKind, SubjectKind } from './stream.interface';
|
|
6
|
-
export type { TransportHeaderOptions, ExtractedRecordData } from './client.interface';
|
|
7
|
-
export type { RegisteredHandler, PatternsByKind } from './routing.interface';
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExE,YAAY,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,SAAS,EACT,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEtF,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/interfaces/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TransportEvent = void 0;
|
|
4
|
-
var hooks_interface_1 = require("./hooks.interface");
|
|
5
|
-
Object.defineProperty(exports, "TransportEvent", { enumerable: true, get: function () { return hooks_interface_1.TransportEvent; } });
|
|
6
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;AAEA,qDAAmD;AAA1C,iHAAA,cAAc,OAAA"}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { FactoryProvider, ModuleMetadata, Type } from '@nestjs/common';
|
|
2
|
-
import { ConnectionOptions, ConsumerConfig, StreamConfig } from 'nats';
|
|
3
|
-
import { Codec } from './codec.interface';
|
|
4
|
-
import type { DeadLetterInfo } from './hooks.interface';
|
|
5
|
-
import { TransportHooks } from './hooks.interface';
|
|
6
|
-
/**
|
|
7
|
-
* RPC transport configuration.
|
|
8
|
-
*
|
|
9
|
-
* Discriminated union on `mode`:
|
|
10
|
-
* - `'core'` — NATS native request/reply. Lowest latency.
|
|
11
|
-
* - `'jetstream'` — Commands persisted in JetStream. Responses via Core NATS inbox.
|
|
12
|
-
*
|
|
13
|
-
* When `mode` is `'core'`, only `timeout` is available.
|
|
14
|
-
* When `mode` is `'jetstream'`, additional stream/consumer overrides are exposed.
|
|
15
|
-
*/
|
|
16
|
-
export type RpcConfig = {
|
|
17
|
-
mode: 'core';
|
|
18
|
-
/** Request timeout in ms. Default: 30_000. */
|
|
19
|
-
timeout?: number;
|
|
20
|
-
} | {
|
|
21
|
-
mode: 'jetstream';
|
|
22
|
-
/** Handler timeout in ms. Default: 180_000 (3 min). */
|
|
23
|
-
timeout?: number;
|
|
24
|
-
/** Raw NATS StreamConfig overrides for the command stream. */
|
|
25
|
-
stream?: Partial<StreamConfig>;
|
|
26
|
-
/** Raw NATS ConsumerConfig overrides for the command consumer. */
|
|
27
|
-
consumer?: Partial<ConsumerConfig>;
|
|
28
|
-
};
|
|
29
|
-
/** Overrides for JetStream stream and consumer configuration. */
|
|
30
|
-
export interface StreamConsumerOverrides {
|
|
31
|
-
stream?: Partial<StreamConfig>;
|
|
32
|
-
consumer?: Partial<ConsumerConfig>;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Root module configuration for `JetstreamModule.forRoot()`.
|
|
36
|
-
*
|
|
37
|
-
* Minimal usage requires only `name` and `servers`.
|
|
38
|
-
* All other fields have production-ready defaults.
|
|
39
|
-
*/
|
|
40
|
-
export interface JetstreamModuleOptions {
|
|
41
|
-
/** Service name. Used for stream/consumer/subject naming. */
|
|
42
|
-
name: string;
|
|
43
|
-
/** NATS server URLs. */
|
|
44
|
-
servers: string[];
|
|
45
|
-
/**
|
|
46
|
-
* Global message codec.
|
|
47
|
-
* @default JsonCodec
|
|
48
|
-
*/
|
|
49
|
-
codec?: Codec;
|
|
50
|
-
/**
|
|
51
|
-
* RPC transport mode and configuration.
|
|
52
|
-
* @default { mode: 'core' }
|
|
53
|
-
*/
|
|
54
|
-
rpc?: RpcConfig;
|
|
55
|
-
/**
|
|
56
|
-
* Enable consumer infrastructure (streams, consumers, message routing).
|
|
57
|
-
* Set to `false` for publisher-only services (e.g., API gateways).
|
|
58
|
-
* @default true
|
|
59
|
-
*/
|
|
60
|
-
consumer?: boolean;
|
|
61
|
-
/** Workqueue event stream/consumer overrides. */
|
|
62
|
-
events?: StreamConsumerOverrides;
|
|
63
|
-
/** Broadcast event stream/consumer overrides. */
|
|
64
|
-
broadcast?: StreamConsumerOverrides;
|
|
65
|
-
/**
|
|
66
|
-
* Transport lifecycle hook handlers.
|
|
67
|
-
* Unset hooks fall back to NestJS Logger.
|
|
68
|
-
*/
|
|
69
|
-
hooks?: Partial<TransportHooks>;
|
|
70
|
-
/**
|
|
71
|
-
* Async callback invoked when an event message exhausts all delivery attempts.
|
|
72
|
-
* Called before msg.term(). If it throws, the message is nak'd for retry.
|
|
73
|
-
*
|
|
74
|
-
* Use this to persist dead letters to an external store (DB, S3, another queue).
|
|
75
|
-
* The NATS connection is available via `JETSTREAM_CONNECTION` token in forRootAsync.
|
|
76
|
-
*
|
|
77
|
-
* @example
|
|
78
|
-
* ```typescript
|
|
79
|
-
* JetstreamModule.forRootAsync({
|
|
80
|
-
* name: 'my-service',
|
|
81
|
-
* imports: [DlqModule],
|
|
82
|
-
* inject: [DlqService, JETSTREAM_CONNECTION],
|
|
83
|
-
* useFactory: (dlqService, connection) => ({
|
|
84
|
-
* servers: ['nats://localhost:4222'],
|
|
85
|
-
* onDeadLetter: async (info) => {
|
|
86
|
-
* await dlqService.persist(info);
|
|
87
|
-
* },
|
|
88
|
-
* }),
|
|
89
|
-
* })
|
|
90
|
-
* ```
|
|
91
|
-
*/
|
|
92
|
-
onDeadLetter?(info: DeadLetterInfo): Promise<void>;
|
|
93
|
-
/**
|
|
94
|
-
* Graceful shutdown timeout in ms.
|
|
95
|
-
* Handlers exceeding this are abandoned.
|
|
96
|
-
* @default 10_000
|
|
97
|
-
*/
|
|
98
|
-
shutdownTimeout?: number;
|
|
99
|
-
/**
|
|
100
|
-
* Raw NATS ConnectionOptions pass-through for advanced connection config.
|
|
101
|
-
* Allows setting tls, auth, reconnect behavior, maxReconnectAttempts, etc.
|
|
102
|
-
* Merged with `name` and `servers` — those take precedence.
|
|
103
|
-
*/
|
|
104
|
-
connectionOptions?: Partial<ConnectionOptions>;
|
|
105
|
-
}
|
|
106
|
-
/** Options for `JetstreamModule.forFeature()`. */
|
|
107
|
-
export interface JetstreamFeatureOptions {
|
|
108
|
-
/** Target service name for subject construction. */
|
|
109
|
-
name: string;
|
|
110
|
-
/**
|
|
111
|
-
* Override the global codec for this client.
|
|
112
|
-
* Falls back to the root codec from `forRoot()` when omitted.
|
|
113
|
-
*/
|
|
114
|
-
codec?: Codec;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Async configuration for `JetstreamModule.forRootAsync()`.
|
|
118
|
-
*
|
|
119
|
-
* Supports three patterns: `useFactory`, `useExisting`, `useClass`.
|
|
120
|
-
*/
|
|
121
|
-
export type JetstreamModuleAsyncOptions = {
|
|
122
|
-
/** Service name — required upfront for DI token generation. */
|
|
123
|
-
name: string;
|
|
124
|
-
/** Additional module imports (e.g., ConfigModule). */
|
|
125
|
-
imports?: ModuleMetadata['imports'];
|
|
126
|
-
} & ({
|
|
127
|
-
useFactory(...args: unknown[]): Promise<Omit<JetstreamModuleOptions, 'name'>> | Omit<JetstreamModuleOptions, 'name'>;
|
|
128
|
-
inject?: FactoryProvider['inject'];
|
|
129
|
-
useExisting?: never;
|
|
130
|
-
useClass?: never;
|
|
131
|
-
} | {
|
|
132
|
-
useExisting: Type<Omit<JetstreamModuleOptions, 'name'>>;
|
|
133
|
-
useFactory?: never;
|
|
134
|
-
inject?: never;
|
|
135
|
-
useClass?: never;
|
|
136
|
-
} | {
|
|
137
|
-
useClass: Type<Omit<JetstreamModuleOptions, 'name'>>;
|
|
138
|
-
useFactory?: never;
|
|
139
|
-
inject?: never;
|
|
140
|
-
useExisting?: never;
|
|
141
|
-
});
|
|
142
|
-
//# sourceMappingURL=options.interface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"options.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/options.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"options.interface.js","sourceRoot":"","sources":["../../src/interfaces/options.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { MessageHandler } from '@nestjs/microservices';
|
|
2
|
-
/** Entry stored in the pattern registry. */
|
|
3
|
-
export interface RegisteredHandler {
|
|
4
|
-
handler: MessageHandler;
|
|
5
|
-
pattern: string;
|
|
6
|
-
isEvent: boolean;
|
|
7
|
-
isBroadcast: boolean;
|
|
8
|
-
}
|
|
9
|
-
/** Grouped pattern lists by stream kind. */
|
|
10
|
-
export interface PatternsByKind {
|
|
11
|
-
events: string[];
|
|
12
|
-
commands: string[];
|
|
13
|
-
broadcasts: string[];
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=routing.interface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routing.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/routing.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routing.interface.js","sourceRoot":"","sources":["../../src/interfaces/routing.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/** Identifies a JetStream stream/consumer kind. */
|
|
2
|
-
export type StreamKind = 'ev' | 'cmd' | 'broadcast';
|
|
3
|
-
/** Subset of StreamKind used for direct subject building (excludes broadcast). */
|
|
4
|
-
export type SubjectKind = Exclude<StreamKind, 'broadcast'>;
|
|
5
|
-
//# sourceMappingURL=stream.interface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/stream.interface.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,KAAK,GAAG,WAAW,CAAC;AAEpD,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stream.interface.js","sourceRoot":"","sources":["../../src/interfaces/stream.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { ConsumerConfig, StreamConfig } from 'nats';
|
|
2
|
-
import type { StreamKind, SubjectKind } from './interfaces';
|
|
3
|
-
/** Token for the resolved JetstreamModuleOptions. */
|
|
4
|
-
export declare const JETSTREAM_OPTIONS: unique symbol;
|
|
5
|
-
/** Token for the shared ConnectionProvider instance. */
|
|
6
|
-
export declare const JETSTREAM_CONNECTION: unique symbol;
|
|
7
|
-
/** Token for the global Codec instance. */
|
|
8
|
-
export declare const JETSTREAM_CODEC: unique symbol;
|
|
9
|
-
/** Token for the EventBus instance. */
|
|
10
|
-
export declare const JETSTREAM_EVENT_BUS: unique symbol;
|
|
11
|
-
/**
|
|
12
|
-
* Generate a unique injection token for a forFeature client.
|
|
13
|
-
* This is what users inject with `@Inject('service-name')`.
|
|
14
|
-
*/
|
|
15
|
-
export declare const getClientToken: (name: string) => string;
|
|
16
|
-
/** Convert milliseconds to nanoseconds (NATS JetStream format). */
|
|
17
|
-
export declare const nanos: (ms: number) => number;
|
|
18
|
-
/** Default config for workqueue event streams. */
|
|
19
|
-
export declare const DEFAULT_EVENT_STREAM_CONFIG: Partial<StreamConfig>;
|
|
20
|
-
/** Default config for RPC command streams (jetstream mode only). */
|
|
21
|
-
export declare const DEFAULT_COMMAND_STREAM_CONFIG: Partial<StreamConfig>;
|
|
22
|
-
/** Default config for broadcast event streams. */
|
|
23
|
-
export declare const DEFAULT_BROADCAST_STREAM_CONFIG: Partial<StreamConfig>;
|
|
24
|
-
/** Default config for workqueue event consumers. */
|
|
25
|
-
export declare const DEFAULT_EVENT_CONSUMER_CONFIG: Partial<ConsumerConfig>;
|
|
26
|
-
/** Default config for RPC command consumers (jetstream mode only). */
|
|
27
|
-
export declare const DEFAULT_COMMAND_CONSUMER_CONFIG: Partial<ConsumerConfig>;
|
|
28
|
-
/** Default config for broadcast event consumers. */
|
|
29
|
-
export declare const DEFAULT_BROADCAST_CONSUMER_CONFIG: Partial<ConsumerConfig>;
|
|
30
|
-
export declare const DEFAULT_RPC_TIMEOUT = 30000;
|
|
31
|
-
export declare const DEFAULT_JETSTREAM_RPC_TIMEOUT = 180000;
|
|
32
|
-
export declare const DEFAULT_SHUTDOWN_TIMEOUT = 10000;
|
|
33
|
-
/** NATS headers managed by the transport. Users cannot overwrite these. */
|
|
34
|
-
export declare enum JetstreamHeader {
|
|
35
|
-
CorrelationId = "x-correlation-id",
|
|
36
|
-
ReplyTo = "x-reply-to",
|
|
37
|
-
MessageId = "x-message-id",
|
|
38
|
-
Subject = "x-subject",
|
|
39
|
-
CallerName = "x-caller-name",
|
|
40
|
-
RequestId = "x-request-id",
|
|
41
|
-
TraceId = "x-trace-id",
|
|
42
|
-
SpanId = "x-span-id",
|
|
43
|
-
/** Set to 'true' on error responses so the client can distinguish success from failure. */
|
|
44
|
-
Error = "x-error"
|
|
45
|
-
}
|
|
46
|
-
/** Set of header names that are reserved and cannot be set by users. */
|
|
47
|
-
export declare const RESERVED_HEADERS: Set<string>;
|
|
48
|
-
/** Internal service name with microservice suffix. */
|
|
49
|
-
export declare const internalName: (name: string) => string;
|
|
50
|
-
/** Build a fully-qualified NATS subject. */
|
|
51
|
-
export declare const buildSubject: (serviceName: string, kind: SubjectKind, pattern: string) => string;
|
|
52
|
-
/** Build a broadcast subject. */
|
|
53
|
-
export declare const buildBroadcastSubject: (pattern: string) => string;
|
|
54
|
-
/** Stream name for a given service and kind. */
|
|
55
|
-
export declare const streamName: (serviceName: string, kind: StreamKind) => string;
|
|
56
|
-
/** Consumer name for a given service and kind. */
|
|
57
|
-
export declare const consumerName: (serviceName: string, kind: StreamKind) => string;
|
|
58
|
-
//# sourceMappingURL=jetstream.constants.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream.constants.d.ts","sourceRoot":"","sources":["../src/jetstream.constants.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAM5D,qDAAqD;AACrD,eAAO,MAAM,iBAAiB,eAA8B,CAAC;AAE7D,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AAEnE,2CAA2C;AAC3C,eAAO,MAAM,eAAe,eAA4B,CAAC;AAEzD,uCAAuC;AACvC,eAAO,MAAM,mBAAmB,eAAgC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,KAAG,MAAc,CAAC;AAU7D,mEAAmE;AACnE,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,MAAwB,CAAC;AAkB5D,kDAAkD;AAClD,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAAC,YAAY,CAU7D,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,6BAA6B,EAAE,OAAO,CAAC,YAAY,CAU/D,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,+BAA+B,EAAE,OAAO,CAAC,YAAY,CAWjE,CAAC;AAMF,oDAAoD;AACpD,eAAO,MAAM,6BAA6B,EAAE,OAAO,CAAC,cAAc,CAOjE,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,+BAA+B,EAAE,OAAO,CAAC,cAAc,CAOnE,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,iCAAiC,EAAE,OAAO,CAAC,cAAc,CAOrE,CAAC;AAQF,eAAO,MAAM,mBAAmB,QAAS,CAAC;AAE1C,eAAO,MAAM,6BAA6B,SAAU,CAAC;AAErD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAM/C,2EAA2E;AAC3E,oBAAY,eAAe;IACzB,aAAa,qBAAqB;IAClC,OAAO,eAAe;IACtB,SAAS,iBAAiB;IAC1B,OAAO,cAAc;IACrB,UAAU,kBAAkB;IAC5B,SAAS,iBAAiB;IAC1B,OAAO,eAAe;IACtB,MAAM,cAAc;IACpB,2FAA2F;IAC3F,KAAK,YAAY;CAClB;AAED,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,aAK3B,CAAC;AAMH,sDAAsD;AACtD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAAiC,CAAC;AAE9E,4CAA4C;AAC5C,eAAO,MAAM,YAAY,GAAI,aAAa,MAAM,EAAE,MAAM,WAAW,EAAE,SAAS,MAAM,KAAG,MACpC,CAAC;AAEpD,iCAAiC;AACjC,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,MAAgC,CAAC;AAEzF,gDAAgD;AAChD,eAAO,MAAM,UAAU,GAAI,aAAa,MAAM,EAAE,MAAM,UAAU,KAAG,MAGlE,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,YAAY,GAAI,aAAa,MAAM,EAAE,MAAM,UAAU,KAAG,MAGpE,CAAC"}
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.consumerName = exports.streamName = exports.buildBroadcastSubject = exports.buildSubject = exports.internalName = exports.RESERVED_HEADERS = exports.JetstreamHeader = exports.DEFAULT_SHUTDOWN_TIMEOUT = exports.DEFAULT_JETSTREAM_RPC_TIMEOUT = exports.DEFAULT_RPC_TIMEOUT = exports.DEFAULT_BROADCAST_CONSUMER_CONFIG = exports.DEFAULT_COMMAND_CONSUMER_CONFIG = exports.DEFAULT_EVENT_CONSUMER_CONFIG = exports.DEFAULT_BROADCAST_STREAM_CONFIG = exports.DEFAULT_COMMAND_STREAM_CONFIG = exports.DEFAULT_EVENT_STREAM_CONFIG = exports.nanos = exports.getClientToken = exports.JETSTREAM_EVENT_BUS = exports.JETSTREAM_CODEC = exports.JETSTREAM_CONNECTION = exports.JETSTREAM_OPTIONS = void 0;
|
|
4
|
-
const nats_1 = require("nats");
|
|
5
|
-
// ---------------------------------------------------------------------------
|
|
6
|
-
// Injection Tokens
|
|
7
|
-
// ---------------------------------------------------------------------------
|
|
8
|
-
/** Token for the resolved JetstreamModuleOptions. */
|
|
9
|
-
exports.JETSTREAM_OPTIONS = Symbol('JETSTREAM_OPTIONS');
|
|
10
|
-
/** Token for the shared ConnectionProvider instance. */
|
|
11
|
-
exports.JETSTREAM_CONNECTION = Symbol('JETSTREAM_CONNECTION');
|
|
12
|
-
/** Token for the global Codec instance. */
|
|
13
|
-
exports.JETSTREAM_CODEC = Symbol('JETSTREAM_CODEC');
|
|
14
|
-
/** Token for the EventBus instance. */
|
|
15
|
-
exports.JETSTREAM_EVENT_BUS = Symbol('JETSTREAM_EVENT_BUS');
|
|
16
|
-
/**
|
|
17
|
-
* Generate a unique injection token for a forFeature client.
|
|
18
|
-
* This is what users inject with `@Inject('service-name')`.
|
|
19
|
-
*/
|
|
20
|
-
const getClientToken = (name) => name;
|
|
21
|
-
exports.getClientToken = getClientToken;
|
|
22
|
-
// ---------------------------------------------------------------------------
|
|
23
|
-
// Size & Time Helpers
|
|
24
|
-
// ---------------------------------------------------------------------------
|
|
25
|
-
const KB = 1024;
|
|
26
|
-
const MB = 1024 * KB;
|
|
27
|
-
const GB = 1024 * MB;
|
|
28
|
-
/** Convert milliseconds to nanoseconds (NATS JetStream format). */
|
|
29
|
-
const nanos = (ms) => ms * 1_000_000;
|
|
30
|
-
exports.nanos = nanos;
|
|
31
|
-
// ---------------------------------------------------------------------------
|
|
32
|
-
// Default Stream Configurations
|
|
33
|
-
// ---------------------------------------------------------------------------
|
|
34
|
-
/* eslint-disable @typescript-eslint/naming-convention -- NATS API uses snake_case property names */
|
|
35
|
-
/** Base stream config shared by all stream types. */
|
|
36
|
-
const baseStreamConfig = {
|
|
37
|
-
retention: nats_1.RetentionPolicy.Workqueue,
|
|
38
|
-
storage: nats_1.StorageType.File,
|
|
39
|
-
num_replicas: 1,
|
|
40
|
-
discard: nats_1.DiscardPolicy.Old,
|
|
41
|
-
allow_direct: true,
|
|
42
|
-
compression: nats_1.StoreCompression.None,
|
|
43
|
-
};
|
|
44
|
-
/** Default config for workqueue event streams. */
|
|
45
|
-
exports.DEFAULT_EVENT_STREAM_CONFIG = {
|
|
46
|
-
...baseStreamConfig,
|
|
47
|
-
allow_rollup_hdrs: true,
|
|
48
|
-
max_consumers: 100,
|
|
49
|
-
max_msg_size: 10 * MB,
|
|
50
|
-
max_msgs_per_subject: 5_000_000,
|
|
51
|
-
max_msgs: 50_000_000,
|
|
52
|
-
max_bytes: 5 * GB,
|
|
53
|
-
max_age: (0, exports.nanos)(7 * 24 * 60 * 60 * 1000), // 7 days
|
|
54
|
-
duplicate_window: (0, exports.nanos)(2 * 60 * 1000), // 2 min
|
|
55
|
-
};
|
|
56
|
-
/** Default config for RPC command streams (jetstream mode only). */
|
|
57
|
-
exports.DEFAULT_COMMAND_STREAM_CONFIG = {
|
|
58
|
-
...baseStreamConfig,
|
|
59
|
-
allow_rollup_hdrs: false,
|
|
60
|
-
max_consumers: 50,
|
|
61
|
-
max_msg_size: 5 * MB,
|
|
62
|
-
max_msgs_per_subject: 100_000,
|
|
63
|
-
max_msgs: 1_000_000,
|
|
64
|
-
max_bytes: 100 * MB,
|
|
65
|
-
max_age: (0, exports.nanos)(3 * 60 * 1000), // 3 min
|
|
66
|
-
duplicate_window: (0, exports.nanos)(30 * 1000), // 30s
|
|
67
|
-
};
|
|
68
|
-
/** Default config for broadcast event streams. */
|
|
69
|
-
exports.DEFAULT_BROADCAST_STREAM_CONFIG = {
|
|
70
|
-
...baseStreamConfig,
|
|
71
|
-
retention: nats_1.RetentionPolicy.Limits,
|
|
72
|
-
allow_rollup_hdrs: true,
|
|
73
|
-
max_consumers: 200,
|
|
74
|
-
max_msg_size: 10 * MB,
|
|
75
|
-
max_msgs_per_subject: 1_000_000,
|
|
76
|
-
max_msgs: 10_000_000,
|
|
77
|
-
max_bytes: 2 * GB,
|
|
78
|
-
max_age: (0, exports.nanos)(24 * 60 * 60 * 1000), // 1 day
|
|
79
|
-
duplicate_window: (0, exports.nanos)(2 * 60 * 1000), // 2 min
|
|
80
|
-
};
|
|
81
|
-
// ---------------------------------------------------------------------------
|
|
82
|
-
// Default Consumer Configurations
|
|
83
|
-
// ---------------------------------------------------------------------------
|
|
84
|
-
/** Default config for workqueue event consumers. */
|
|
85
|
-
exports.DEFAULT_EVENT_CONSUMER_CONFIG = {
|
|
86
|
-
ack_wait: (0, exports.nanos)(10 * 1000), // 10s
|
|
87
|
-
max_deliver: 3,
|
|
88
|
-
max_ack_pending: 100,
|
|
89
|
-
ack_policy: nats_1.AckPolicy.Explicit,
|
|
90
|
-
deliver_policy: nats_1.DeliverPolicy.All,
|
|
91
|
-
replay_policy: nats_1.ReplayPolicy.Instant,
|
|
92
|
-
};
|
|
93
|
-
/** Default config for RPC command consumers (jetstream mode only). */
|
|
94
|
-
exports.DEFAULT_COMMAND_CONSUMER_CONFIG = {
|
|
95
|
-
ack_wait: (0, exports.nanos)(5 * 60 * 1000), // 5 min
|
|
96
|
-
max_deliver: 1,
|
|
97
|
-
max_ack_pending: 100,
|
|
98
|
-
ack_policy: nats_1.AckPolicy.Explicit,
|
|
99
|
-
deliver_policy: nats_1.DeliverPolicy.All,
|
|
100
|
-
replay_policy: nats_1.ReplayPolicy.Instant,
|
|
101
|
-
};
|
|
102
|
-
/** Default config for broadcast event consumers. */
|
|
103
|
-
exports.DEFAULT_BROADCAST_CONSUMER_CONFIG = {
|
|
104
|
-
ack_wait: (0, exports.nanos)(10 * 1000), // 10s
|
|
105
|
-
max_deliver: 3,
|
|
106
|
-
max_ack_pending: 100,
|
|
107
|
-
ack_policy: nats_1.AckPolicy.Explicit,
|
|
108
|
-
deliver_policy: nats_1.DeliverPolicy.All,
|
|
109
|
-
replay_policy: nats_1.ReplayPolicy.Instant,
|
|
110
|
-
};
|
|
111
|
-
/* eslint-enable @typescript-eslint/naming-convention */
|
|
112
|
-
// ---------------------------------------------------------------------------
|
|
113
|
-
// Default Module Options
|
|
114
|
-
// ---------------------------------------------------------------------------
|
|
115
|
-
exports.DEFAULT_RPC_TIMEOUT = 30_000; // 30s for core mode
|
|
116
|
-
exports.DEFAULT_JETSTREAM_RPC_TIMEOUT = 180_000; // 3 min for jetstream mode
|
|
117
|
-
exports.DEFAULT_SHUTDOWN_TIMEOUT = 10_000; // 10s
|
|
118
|
-
// ---------------------------------------------------------------------------
|
|
119
|
-
// Reserved Headers
|
|
120
|
-
// ---------------------------------------------------------------------------
|
|
121
|
-
/** NATS headers managed by the transport. Users cannot overwrite these. */
|
|
122
|
-
var JetstreamHeader;
|
|
123
|
-
(function (JetstreamHeader) {
|
|
124
|
-
JetstreamHeader["CorrelationId"] = "x-correlation-id";
|
|
125
|
-
JetstreamHeader["ReplyTo"] = "x-reply-to";
|
|
126
|
-
JetstreamHeader["MessageId"] = "x-message-id";
|
|
127
|
-
JetstreamHeader["Subject"] = "x-subject";
|
|
128
|
-
JetstreamHeader["CallerName"] = "x-caller-name";
|
|
129
|
-
JetstreamHeader["RequestId"] = "x-request-id";
|
|
130
|
-
JetstreamHeader["TraceId"] = "x-trace-id";
|
|
131
|
-
JetstreamHeader["SpanId"] = "x-span-id";
|
|
132
|
-
/** Set to 'true' on error responses so the client can distinguish success from failure. */
|
|
133
|
-
JetstreamHeader["Error"] = "x-error";
|
|
134
|
-
})(JetstreamHeader || (exports.JetstreamHeader = JetstreamHeader = {}));
|
|
135
|
-
/** Set of header names that are reserved and cannot be set by users. */
|
|
136
|
-
exports.RESERVED_HEADERS = new Set([
|
|
137
|
-
JetstreamHeader.CorrelationId,
|
|
138
|
-
JetstreamHeader.ReplyTo,
|
|
139
|
-
JetstreamHeader.MessageId,
|
|
140
|
-
JetstreamHeader.Error,
|
|
141
|
-
]);
|
|
142
|
-
// ---------------------------------------------------------------------------
|
|
143
|
-
// Naming Helpers
|
|
144
|
-
// ---------------------------------------------------------------------------
|
|
145
|
-
/** Internal service name with microservice suffix. */
|
|
146
|
-
const internalName = (name) => `${name}__microservice`;
|
|
147
|
-
exports.internalName = internalName;
|
|
148
|
-
/** Build a fully-qualified NATS subject. */
|
|
149
|
-
const buildSubject = (serviceName, kind, pattern) => `${(0, exports.internalName)(serviceName)}.${kind}.${pattern}`;
|
|
150
|
-
exports.buildSubject = buildSubject;
|
|
151
|
-
/** Build a broadcast subject. */
|
|
152
|
-
const buildBroadcastSubject = (pattern) => `broadcast.${pattern}`;
|
|
153
|
-
exports.buildBroadcastSubject = buildBroadcastSubject;
|
|
154
|
-
/** Stream name for a given service and kind. */
|
|
155
|
-
const streamName = (serviceName, kind) => {
|
|
156
|
-
if (kind === 'broadcast')
|
|
157
|
-
return 'broadcast-stream';
|
|
158
|
-
return `${(0, exports.internalName)(serviceName)}_${kind}-stream`;
|
|
159
|
-
};
|
|
160
|
-
exports.streamName = streamName;
|
|
161
|
-
/** Consumer name for a given service and kind. */
|
|
162
|
-
const consumerName = (serviceName, kind) => {
|
|
163
|
-
if (kind === 'broadcast')
|
|
164
|
-
return `${(0, exports.internalName)(serviceName)}_broadcast-consumer`;
|
|
165
|
-
return `${(0, exports.internalName)(serviceName)}_${kind}-consumer`;
|
|
166
|
-
};
|
|
167
|
-
exports.consumerName = consumerName;
|
|
168
|
-
//# sourceMappingURL=jetstream.constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream.constants.js","sourceRoot":"","sources":["../src/jetstream.constants.ts"],"names":[],"mappings":"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"}
|