@nextage/era-lib 1.0.185 → 1.0.187
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/build/constants.d.ts +11 -0
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +11 -0
- package/build/constants.js.map +1 -1
- package/build/enums.d.ts +3 -0
- package/build/enums.d.ts.map +1 -1
- package/build/enums.js +3 -0
- package/build/enums.js.map +1 -1
- package/build/errors/app-error.d.ts +6 -0
- package/build/errors/app-error.d.ts.map +1 -1
- package/build/errors/app-error.js +6 -0
- package/build/errors/app-error.js.map +1 -1
- package/build/events/access-revoked-publisher.d.ts +1 -1
- package/build/events/access-revoked-publisher.d.ts.map +1 -1
- package/build/events/access-revoked-publisher.js +1 -1
- package/build/events/access-revoked-publisher.js.map +1 -1
- package/build/events/{base-event.controller.d.ts → base/base-event.controller.d.ts} +3 -3
- package/build/events/base/base-event.controller.d.ts.map +1 -0
- package/build/events/{base-event.controller.js → base/base-event.controller.js} +5 -5
- package/build/events/base/base-event.controller.js.map +1 -0
- package/build/events/{base-listener.d.ts → base/base-listener.d.ts} +17 -4
- package/build/events/base/base-listener.d.ts.map +1 -0
- package/build/events/base/base-listener.interfaces.d.ts.map +1 -0
- package/build/events/base/base-listener.interfaces.js.map +1 -0
- package/build/events/{base-listener.js → base/base-listener.js} +34 -10
- package/build/events/base/base-listener.js.map +1 -0
- package/build/events/{base-msg-listener.d.ts → base/base-msg-listener.d.ts} +15 -6
- package/build/events/base/base-msg-listener.d.ts.map +1 -0
- package/build/events/{base-msg-listener.js → base/base-msg-listener.js} +14 -5
- package/build/events/base/base-msg-listener.js.map +1 -0
- package/build/events/base/base-msg-publisher.d.ts +20 -0
- package/build/events/base/base-msg-publisher.d.ts.map +1 -0
- package/build/events/base/base-msg-publisher.js +24 -0
- package/build/events/base/base-msg-publisher.js.map +1 -0
- package/build/events/{base-nats-listener.d.ts → base/base-nats-listener.d.ts} +14 -9
- package/build/events/base/base-nats-listener.d.ts.map +1 -0
- package/build/events/{base-nats-listener.js → base/base-nats-listener.js} +15 -10
- package/build/events/base/base-nats-listener.js.map +1 -0
- package/build/events/base/base-nats-publisher.d.ts +23 -0
- package/build/events/base/base-nats-publisher.d.ts.map +1 -0
- package/build/events/base/base-nats-publisher.js +32 -0
- package/build/events/base/base-nats-publisher.js.map +1 -0
- package/build/events/base/base-publisher.d.ts +34 -0
- package/build/events/base/base-publisher.d.ts.map +1 -0
- package/build/events/base/base-publisher.js +41 -0
- package/build/events/base/base-publisher.js.map +1 -0
- package/build/events/dlq-manager.d.ts +1 -1
- package/build/events/dlq-manager.d.ts.map +1 -1
- package/build/events/event-subscription.d.ts +1 -1
- package/build/events/event-subscription.d.ts.map +1 -1
- package/build/events/event-subscription.js +2 -2
- package/build/events/event-subscription.js.map +1 -1
- package/build/events/index.d.ts +13 -11
- package/build/events/index.d.ts.map +1 -1
- package/build/events/index.js +14 -11
- package/build/events/index.js.map +1 -1
- package/build/events/interfaces.d.ts +9 -0
- package/build/events/interfaces.d.ts.map +1 -1
- package/build/events/revocation-listener.d.ts +1 -1
- package/build/events/revocation-listener.d.ts.map +1 -1
- package/build/events/transport/base-client-wrapper.d.ts +44 -0
- package/build/events/transport/base-client-wrapper.d.ts.map +1 -0
- package/build/events/transport/base-client-wrapper.js +47 -0
- package/build/events/transport/base-client-wrapper.js.map +1 -0
- package/build/events/transport/msg-client-manager.d.ts +37 -0
- package/build/events/transport/msg-client-manager.d.ts.map +1 -0
- package/build/events/{msg-client-manager.js → transport/msg-client-manager.js} +18 -39
- package/build/events/transport/msg-client-manager.js.map +1 -0
- package/build/events/transport/msg-wrapper.d.ts +15 -0
- package/build/events/transport/msg-wrapper.d.ts.map +1 -0
- package/build/events/transport/msg-wrapper.js +24 -0
- package/build/events/transport/msg-wrapper.js.map +1 -0
- package/build/events/{nats-client-manager.d.ts → transport/nats-client-manager.d.ts} +20 -18
- package/build/events/transport/nats-client-manager.d.ts.map +1 -0
- package/build/events/{nats-client-manager.js → transport/nats-client-manager.js} +20 -18
- package/build/events/transport/nats-client-manager.js.map +1 -0
- package/build/events/transport/nats-wrapper.d.ts +16 -0
- package/build/events/transport/nats-wrapper.d.ts.map +1 -0
- package/build/events/transport/nats-wrapper.js +30 -0
- package/build/events/transport/nats-wrapper.js.map +1 -0
- package/build/interfaces.d.ts +10 -0
- package/build/interfaces.d.ts.map +1 -1
- package/build/routes/validators.d.ts +4 -2
- package/build/routes/validators.d.ts.map +1 -1
- package/build/routes/validators.js +4 -2
- package/build/routes/validators.js.map +1 -1
- package/build/services/password.d.ts +19 -0
- package/build/services/password.d.ts.map +1 -1
- package/build/services/password.js +19 -0
- package/build/services/password.js.map +1 -1
- package/build/utils/functs.d.ts +54 -23
- package/build/utils/functs.d.ts.map +1 -1
- package/build/utils/functs.js +60 -25
- package/build/utils/functs.js.map +1 -1
- package/package.json +1 -1
- package/build/events/base-event.controller.d.ts.map +0 -1
- package/build/events/base-event.controller.js.map +0 -1
- package/build/events/base-listener.d.ts.map +0 -1
- package/build/events/base-listener.interfaces.d.ts.map +0 -1
- package/build/events/base-listener.interfaces.js.map +0 -1
- package/build/events/base-listener.js.map +0 -1
- package/build/events/base-msg-listener.d.ts.map +0 -1
- package/build/events/base-msg-listener.js.map +0 -1
- package/build/events/base-nats-listener.d.ts.map +0 -1
- package/build/events/base-nats-listener.js.map +0 -1
- package/build/events/base-nats-publisher.d.ts +0 -20
- package/build/events/base-nats-publisher.d.ts.map +0 -1
- package/build/events/base-nats-publisher.js +0 -35
- package/build/events/base-nats-publisher.js.map +0 -1
- package/build/events/base-publisher.d.ts +0 -18
- package/build/events/base-publisher.d.ts.map +0 -1
- package/build/events/base-publisher.js +0 -28
- package/build/events/base-publisher.js.map +0 -1
- package/build/events/msg-client-manager.d.ts +0 -38
- package/build/events/msg-client-manager.d.ts.map +0 -1
- package/build/events/msg-client-manager.js.map +0 -1
- package/build/events/msg-wrapper.d.ts +0 -10
- package/build/events/msg-wrapper.d.ts.map +0 -1
- package/build/events/msg-wrapper.js +0 -18
- package/build/events/msg-wrapper.js.map +0 -1
- package/build/events/nats-client-manager.d.ts.map +0 -1
- package/build/events/nats-client-manager.js.map +0 -1
- package/build/events/nats-client-manager.old.d.ts +0 -49
- package/build/events/nats-client-manager.old.d.ts.map +0 -1
- package/build/events/nats-client-manager.old.js +0 -108
- package/build/events/nats-client-manager.old.js.map +0 -1
- package/build/events/nats-wrapper.d.ts +0 -14
- package/build/events/nats-wrapper.d.ts.map +0 -1
- package/build/events/nats-wrapper.js +0 -24
- package/build/events/nats-wrapper.js.map +0 -1
- /package/build/events/{base-listener.interfaces.d.ts → base/base-listener.interfaces.d.ts} +0 -0
- /package/build/events/{base-listener.interfaces.js → base/base-listener.interfaces.js} +0 -0
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NatsListener = void 0;
|
|
4
4
|
const nx_frame_be_1 = require("@nextage/nx-frame-be");
|
|
5
|
-
const dlq_constants_1 = require("
|
|
5
|
+
const dlq_constants_1 = require("../types/dlq.constants");
|
|
6
6
|
const base_listener_1 = require("./base-listener");
|
|
7
|
-
const cascade_1 = require("
|
|
7
|
+
const cascade_1 = require("../cascade");
|
|
8
8
|
/**
|
|
9
9
|
* Durable inter-service listener (JetStream): owns the per-message ack/nak/term
|
|
10
10
|
* and DLQ policy. Keep `onMessage` idempotent so redelivery is always safe.
|
|
@@ -34,14 +34,17 @@ class NatsListener extends base_listener_1.Listener {
|
|
|
34
34
|
return this.provider.client;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
+
* Per-subject subscription tuning; override in a subclass to customise the
|
|
38
|
+
* JetStream consumer options. The base returns no overrides.
|
|
37
39
|
*
|
|
38
|
-
* @returns
|
|
40
|
+
* @returns the {@link EventSubOptions} for this consumer
|
|
39
41
|
*/
|
|
40
42
|
subscriptionOptions() {
|
|
41
43
|
return {};
|
|
42
44
|
}
|
|
43
45
|
/**
|
|
44
|
-
*
|
|
46
|
+
* Creates the JetStream durable consumer for this subject and starts the
|
|
47
|
+
* consume loop. Safe to call after the transport connects (finding B8).
|
|
45
48
|
*/
|
|
46
49
|
async listen() {
|
|
47
50
|
try {
|
|
@@ -166,8 +169,8 @@ class NatsListener extends base_listener_1.Listener {
|
|
|
166
169
|
}
|
|
167
170
|
}
|
|
168
171
|
/**
|
|
169
|
-
*
|
|
170
|
-
*
|
|
172
|
+
* Stops the consume loop and deletes the consumer, releasing its JetStream
|
|
173
|
+
* resources on shutdown. A best-effort unsubscribe never throws.
|
|
171
174
|
*/
|
|
172
175
|
async stop() {
|
|
173
176
|
this.isListening = false;
|
|
@@ -196,17 +199,19 @@ class NatsListener extends base_listener_1.Listener {
|
|
|
196
199
|
return this.nakBackoffMs[idx];
|
|
197
200
|
}
|
|
198
201
|
/**
|
|
202
|
+
* Decodes the raw message bytes to a UTF-8 string.
|
|
199
203
|
*
|
|
200
|
-
* @param msg
|
|
201
|
-
* @returns
|
|
204
|
+
* @param msg the JetStream message
|
|
205
|
+
* @returns the decoded payload string
|
|
202
206
|
*/
|
|
203
207
|
decode(msg) {
|
|
204
208
|
return new TextDecoder().decode(msg.data);
|
|
205
209
|
}
|
|
206
210
|
/**
|
|
211
|
+
* Decodes and JSON-parses a message into the in-band event envelope.
|
|
207
212
|
*
|
|
208
|
-
* @param msg
|
|
209
|
-
* @returns
|
|
213
|
+
* @param msg the JetStream message
|
|
214
|
+
* @returns the parsed {@link Event} envelope (unwrapped by the caller)
|
|
210
215
|
*/
|
|
211
216
|
parseMessage(msg) {
|
|
212
217
|
try {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-nats-listener.js","sourceRoot":"","sources":["../../../src/events/base/base-nats-listener.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { JetStreamPublishOptions } from 'nats';
|
|
2
|
+
import { Event, IPublisher } from '../interfaces';
|
|
3
|
+
import { EventMeta } from '../types/event-envelope.interfaces';
|
|
4
|
+
import { Publisher } from './base-publisher';
|
|
5
|
+
/**
|
|
6
|
+
* Durable (JetStream) publisher: inter-service delivery with retry/DLQ semantics
|
|
7
|
+
* on the consumer side.
|
|
8
|
+
*
|
|
9
|
+
* Emits the event wrapped in the shared in-band envelope (built by the abstract
|
|
10
|
+
* {@link Publisher}) and accepts optional JetStream publish options. The
|
|
11
|
+
* counterpart of {@link NatsListener}.
|
|
12
|
+
*/
|
|
13
|
+
export declare abstract class NatsPublisher<T extends Event> extends Publisher<T> implements IPublisher<T, Partial<JetStreamPublishOptions>> {
|
|
14
|
+
/**
|
|
15
|
+
* Publish the event on the durable JetStream bus.
|
|
16
|
+
*
|
|
17
|
+
* @param data the event payload
|
|
18
|
+
* @param meta optional cascade metadata (correlation / causation / depth)
|
|
19
|
+
* @param options optional JetStream publish options (msgID, expectations, ...)
|
|
20
|
+
*/
|
|
21
|
+
publish(data: T['data'], meta?: EventMeta, options?: Partial<JetStreamPublishOptions>): Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=base-nats-publisher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-nats-publisher.d.ts","sourceRoot":"","sources":["../../../src/events/base/base-nats-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAY,eAAe,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAoB,oCAAoC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAoB,kBAAkB,CAAC;AAE3D;;;;;;;GAOG;AACH,8BAAsB,aAAa,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAE,YAAW,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAElI;;;;;;OAMG;IACG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAW5G"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NatsPublisher = void 0;
|
|
4
|
+
const base_publisher_1 = require("./base-publisher");
|
|
5
|
+
/**
|
|
6
|
+
* Durable (JetStream) publisher: inter-service delivery with retry/DLQ semantics
|
|
7
|
+
* on the consumer side.
|
|
8
|
+
*
|
|
9
|
+
* Emits the event wrapped in the shared in-band envelope (built by the abstract
|
|
10
|
+
* {@link Publisher}) and accepts optional JetStream publish options. The
|
|
11
|
+
* counterpart of {@link NatsListener}.
|
|
12
|
+
*/
|
|
13
|
+
class NatsPublisher extends base_publisher_1.Publisher {
|
|
14
|
+
/**
|
|
15
|
+
* Publish the event on the durable JetStream bus.
|
|
16
|
+
*
|
|
17
|
+
* @param data the event payload
|
|
18
|
+
* @param meta optional cascade metadata (correlation / causation / depth)
|
|
19
|
+
* @param options optional JetStream publish options (msgID, expectations, ...)
|
|
20
|
+
*/
|
|
21
|
+
async publish(data, meta, options) {
|
|
22
|
+
try {
|
|
23
|
+
await this.client.publish(this.subject, JSON.stringify(this.envelope(data, meta)), options);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
console.error(`❌ Failed to publish to '${this.subject}':`, error);
|
|
27
|
+
throw error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.NatsPublisher = NatsPublisher;
|
|
32
|
+
//# sourceMappingURL=base-nats-publisher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-nats-publisher.js","sourceRoot":"","sources":["../../../src/events/base/base-nats-publisher.ts"],"names":[],"mappings":";;;AAGA,qDAA2D;AAE3D;;;;;;;GAOG;AACH,MAAsB,aAA+B,SAAQ,0BAAY;IAEvE;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,IAAe,EAAE,IAAgB,EAAE,OAA0C;QAEzF,IAAI,CAAC;YAEH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAE9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,OAAO,IAAI,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AApBD,sCAoBC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ClientProvider, Event, MsgClientInterface } from '../interfaces';
|
|
2
|
+
import { EventMeta, EventEnvelope } from '../types/event-envelope.interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Abstract base shared by every publisher, regardless of transport.
|
|
5
|
+
*
|
|
6
|
+
* It owns the transport-agnostic concerns:
|
|
7
|
+
* - identity (`subject`),
|
|
8
|
+
* - lazy client resolution (`client`), so the transport may be connected AFTER
|
|
9
|
+
* this publisher (and its owning controller) is constructed,
|
|
10
|
+
* - the shared in-band envelope construction (`envelope`), so both buses carry
|
|
11
|
+
* the same cascade metadata (transport-agnostic tracing).
|
|
12
|
+
*
|
|
13
|
+
* Transport-specific concerns (the concrete `publish` signature, JetStream
|
|
14
|
+
* options, error handling) live in the concrete subclasses:
|
|
15
|
+
* - `MsgPublisher` — in-memory, best-effort intra-service delivery,
|
|
16
|
+
* - `NatsPublisher` — durable inter-service delivery (JetStream) with options.
|
|
17
|
+
*/
|
|
18
|
+
export declare abstract class Publisher<T extends Event> {
|
|
19
|
+
private readonly provider;
|
|
20
|
+
abstract subject: T['subject'];
|
|
21
|
+
constructor(provider: ClientProvider);
|
|
22
|
+
/**
|
|
23
|
+
* Resolve the client only when actually publishing, so the transport may be
|
|
24
|
+
* connected AFTER this publisher (and its owning controller) is constructed.
|
|
25
|
+
*/
|
|
26
|
+
protected get client(): MsgClientInterface;
|
|
27
|
+
/**
|
|
28
|
+
* Wrap the event in the shared in-band envelope (id / subject / data /
|
|
29
|
+
* timestamp / cascade meta), so the metadata rides in the payload and loop-guard
|
|
30
|
+
* and causation tracing stay transport agnostic.
|
|
31
|
+
*/
|
|
32
|
+
protected envelope(data: T['data'], meta?: EventMeta): EventEnvelope;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=base-publisher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-publisher.d.ts","sourceRoot":"","sources":["../../../src/events/base/base-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAuB,oCAAoC,CAAC;AAG/F;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,SAAS,CAAC,CAAC,SAAS,KAAK;IAIjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;gBAEF,QAAQ,EAAE,cAAc;IAErD;;;OAGG;IACH,SAAS,KAAK,MAAM,IAAI,kBAAkB,CAGzC;IAED;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,aAAa;CAIrE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Publisher = void 0;
|
|
4
|
+
const cascade_1 = require("../cascade");
|
|
5
|
+
/**
|
|
6
|
+
* Abstract base shared by every publisher, regardless of transport.
|
|
7
|
+
*
|
|
8
|
+
* It owns the transport-agnostic concerns:
|
|
9
|
+
* - identity (`subject`),
|
|
10
|
+
* - lazy client resolution (`client`), so the transport may be connected AFTER
|
|
11
|
+
* this publisher (and its owning controller) is constructed,
|
|
12
|
+
* - the shared in-band envelope construction (`envelope`), so both buses carry
|
|
13
|
+
* the same cascade metadata (transport-agnostic tracing).
|
|
14
|
+
*
|
|
15
|
+
* Transport-specific concerns (the concrete `publish` signature, JetStream
|
|
16
|
+
* options, error handling) live in the concrete subclasses:
|
|
17
|
+
* - `MsgPublisher` — in-memory, best-effort intra-service delivery,
|
|
18
|
+
* - `NatsPublisher` — durable inter-service delivery (JetStream) with options.
|
|
19
|
+
*/
|
|
20
|
+
class Publisher {
|
|
21
|
+
constructor(provider) {
|
|
22
|
+
this.provider = provider;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolve the client only when actually publishing, so the transport may be
|
|
26
|
+
* connected AFTER this publisher (and its owning controller) is constructed.
|
|
27
|
+
*/
|
|
28
|
+
get client() {
|
|
29
|
+
return this.provider.client;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Wrap the event in the shared in-band envelope (id / subject / data /
|
|
33
|
+
* timestamp / cascade meta), so the metadata rides in the payload and loop-guard
|
|
34
|
+
* and causation tracing stay transport agnostic.
|
|
35
|
+
*/
|
|
36
|
+
envelope(data, meta) {
|
|
37
|
+
return (0, cascade_1.buildEnvelope)(this.subject, data, meta);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.Publisher = Publisher;
|
|
41
|
+
//# sourceMappingURL=base-publisher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-publisher.js","sourceRoot":"","sources":["../../../src/events/base/base-publisher.ts"],"names":[],"mappings":";;;AAEA,wCAAuE;AAEvE;;;;;;;;;;;;;;GAcG;AACH,MAAsB,SAAS;IAI7B,YAA6B,QAAwB;QAAxB,aAAQ,GAAR,QAAQ,CAAgB;IAAG,CAAC;IAEzD;;;OAGG;IACH,IAAc,MAAM;QAElB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACO,QAAQ,CAAC,IAAe,EAAE,IAAgB;QAElD,OAAO,IAAA,uBAAa,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;CACF;AAxBD,8BAwBC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NatsClientManager } from './nats-client-manager';
|
|
1
|
+
import { NatsClientManager } from './transport/nats-client-manager';
|
|
2
2
|
import { DlqDepth, DlqInspectItem } from './types/dlq.interfaces';
|
|
3
3
|
import { DlqInspectOptions, DlqManagerOptions } from './types/dlq.interfaces';
|
|
4
4
|
import { DlqReplayOptions, DlqReplayResult } from './types/dlq.interfaces';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dlq-manager.d.ts","sourceRoot":"","sources":["../../src/events/dlq-manager.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,iBAAiB,EAAE,MAAuC,
|
|
1
|
+
{"version":3,"file":"dlq-manager.d.ts","sourceRoot":"","sources":["../../src/events/dlq-manager.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,iBAAiB,EAAE,MAAuC,iCAAiC,CAAC;AACrG,OAAO,EAAsB,QAAQ,EAAE,cAAc,EAAE,MAAY,wBAAwB,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAoB,wBAAwB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAuB,wBAAwB,CAAC;AAM5F,qBAAa,UAAU;IAST,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAY;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuD;IAE/E,OAAO,CAAC,KAAK,CAAC,CAAmC;IACjD,OAAO,CAAC,QAAQ,CAAS;gBAEI,MAAM,EAAE,iBAAiB,EAAE,IAAI,GAAE,iBAAsB;IAQpF;;;;;;OAMG;IACG,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYhD;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAenC;;;OAGG;IACH,YAAY,IAAI,IAAI;IAapB,oDAAoD;IACpD,WAAW,IAAI,IAAI;IAOnB;;;;OAIG;IACG,OAAO,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsCtE;;;;;OAKG;IACG,MAAM,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAoDnE;;;;;OAKG;YACW,iBAAiB;YAkBjB,cAAc;IAQ5B,OAAO,CAAC,iBAAiB;CAM1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-subscription.d.ts","sourceRoot":"","sources":["../../src/events/event-subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAS,
|
|
1
|
+
{"version":3,"file":"event-subscription.d.ts","sourceRoot":"","sources":["../../src/events/event-subscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAS,aAAa,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,qBAAa,iBAAkB,SAAQ,YAAY;IAEjD,EAAE,EAAe,MAAM,CAAC;IACxB,OAAO,EAAU,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAU,eAAe,CAAC;gBAErB,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe;CAQjE"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EventSubscription = void 0;
|
|
4
|
-
const
|
|
4
|
+
const node_events_1 = require("node:events");
|
|
5
5
|
const nx_frame_be_1 = require("@nextage/nx-frame-be");
|
|
6
|
-
class EventSubscription extends
|
|
6
|
+
class EventSubscription extends node_events_1.EventEmitter {
|
|
7
7
|
constructor(sub, qgName, opts) {
|
|
8
8
|
super();
|
|
9
9
|
this.id = (0, nx_frame_be_1.uuid)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-subscription.js","sourceRoot":"","sources":["../../src/events/event-subscription.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"event-subscription.js","sourceRoot":"","sources":["../../src/events/event-subscription.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAC9C,sDAAuD;AAGvD,MAAa,iBAAkB,SAAQ,0BAAY;IAOjD,YAAY,GAAW,EAAE,MAAe,EAAE,IAAsB;QAE9D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAe,IAAA,kBAAI,GAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAU,GAAG,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAU,IAAI,IAAI,EAAE,CAAC;IACnC,CAAC;CACF;AAfD,8CAeC"}
|
package/build/events/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './types/enums';
|
|
2
2
|
export * from './interfaces';
|
|
3
3
|
export * from './types';
|
|
4
|
-
export * from './base-event.controller';
|
|
4
|
+
export * from './base/base-event.controller';
|
|
5
5
|
export * from './cascade';
|
|
6
6
|
export * from './event-relay';
|
|
7
7
|
export * from './field-map';
|
|
@@ -10,16 +10,18 @@ export * from './publisher-registry';
|
|
|
10
10
|
export * from './revocation-denylist';
|
|
11
11
|
export * from './revocation-listener';
|
|
12
12
|
export * from './access-revoked-publisher';
|
|
13
|
-
export * from './
|
|
14
|
-
export * from './msg-
|
|
15
|
-
export * from './
|
|
16
|
-
export * from './base-listener
|
|
17
|
-
export * from './base-
|
|
18
|
-
export * from './base-
|
|
19
|
-
export * from './
|
|
20
|
-
export * from './
|
|
21
|
-
export * from './
|
|
22
|
-
export * from './
|
|
13
|
+
export * from './transport/base-client-wrapper';
|
|
14
|
+
export * from './transport/msg-client-manager';
|
|
15
|
+
export * from './transport/msg-wrapper';
|
|
16
|
+
export * from './base/base-listener';
|
|
17
|
+
export * from './base/base-listener.interfaces';
|
|
18
|
+
export * from './base/base-msg-listener';
|
|
19
|
+
export * from './base/base-publisher';
|
|
20
|
+
export * from './base/base-msg-publisher';
|
|
21
|
+
export * from './transport/nats-client-manager';
|
|
22
|
+
export * from './transport/nats-wrapper';
|
|
23
|
+
export * from './base/base-nats-listener';
|
|
24
|
+
export * from './base/base-nats-publisher';
|
|
23
25
|
export * from './dlq-manager';
|
|
24
26
|
export * from './organization';
|
|
25
27
|
export * from './user';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AAExB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AAExB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAG9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AAGvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAGhC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
|
package/build/events/index.js
CHANGED
|
@@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./types/enums"), exports);
|
|
18
18
|
__exportStar(require("./interfaces"), exports);
|
|
19
19
|
__exportStar(require("./types"), exports);
|
|
20
|
-
__exportStar(require("./base-event.controller"), exports);
|
|
20
|
+
__exportStar(require("./base/base-event.controller"), exports);
|
|
21
21
|
__exportStar(require("./cascade"), exports);
|
|
22
22
|
__exportStar(require("./event-relay"), exports);
|
|
23
23
|
__exportStar(require("./field-map"), exports);
|
|
@@ -26,18 +26,21 @@ __exportStar(require("./publisher-registry"), exports);
|
|
|
26
26
|
__exportStar(require("./revocation-denylist"), exports);
|
|
27
27
|
__exportStar(require("./revocation-listener"), exports);
|
|
28
28
|
__exportStar(require("./access-revoked-publisher"), exports);
|
|
29
|
+
// shared transport-agnostic base
|
|
30
|
+
__exportStar(require("./transport/base-client-wrapper"), exports);
|
|
29
31
|
// messages on memory
|
|
30
|
-
__exportStar(require("./msg-client-manager"), exports);
|
|
31
|
-
__exportStar(require("./msg-wrapper"), exports);
|
|
32
|
-
__exportStar(require("./base-listener"), exports);
|
|
33
|
-
__exportStar(require("./base-listener.interfaces"), exports);
|
|
34
|
-
__exportStar(require("./base-msg-listener"), exports);
|
|
35
|
-
__exportStar(require("./base-publisher"), exports);
|
|
32
|
+
__exportStar(require("./transport/msg-client-manager"), exports);
|
|
33
|
+
__exportStar(require("./transport/msg-wrapper"), exports);
|
|
34
|
+
__exportStar(require("./base/base-listener"), exports);
|
|
35
|
+
__exportStar(require("./base/base-listener.interfaces"), exports);
|
|
36
|
+
__exportStar(require("./base/base-msg-listener"), exports);
|
|
37
|
+
__exportStar(require("./base/base-publisher"), exports);
|
|
38
|
+
__exportStar(require("./base/base-msg-publisher"), exports);
|
|
36
39
|
// messages on nats
|
|
37
|
-
__exportStar(require("./nats-client-manager"), exports);
|
|
38
|
-
__exportStar(require("./nats-wrapper"), exports);
|
|
39
|
-
__exportStar(require("./base-nats-listener"), exports);
|
|
40
|
-
__exportStar(require("./base-nats-publisher"), exports);
|
|
40
|
+
__exportStar(require("./transport/nats-client-manager"), exports);
|
|
41
|
+
__exportStar(require("./transport/nats-wrapper"), exports);
|
|
42
|
+
__exportStar(require("./base/base-nats-listener"), exports);
|
|
43
|
+
__exportStar(require("./base/base-nats-publisher"), exports);
|
|
41
44
|
__exportStar(require("./dlq-manager"), exports);
|
|
42
45
|
// admin-mng
|
|
43
46
|
__exportStar(require("./organization"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,0CAAwB;AAExB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,0CAAwB;AAExB,+DAA6C;AAC7C,4CAA0B;AAC1B,gDAA8B;AAC9B,8CAA4B;AAC5B,2CAAyB;AACzB,uDAAqC;AACrC,wDAAsC;AACtC,wDAAsC;AACtC,6DAA2C;AAE3C,iCAAiC;AACjC,kEAAgD;AAEhD,qBAAqB;AACrB,iEAA+C;AAC/C,0DAAwC;AACxC,uDAAqC;AACrC,kEAAgD;AAChD,2DAAyC;AACzC,wDAAsC;AACtC,4DAA0C;AAE1C,mBAAmB;AACnB,kEAAgD;AAChD,2DAAyC;AACzC,4DAA0C;AAC1C,6DAA2C;AAC3C,gDAA8B;AAE9B,YAAY;AACZ,iDAA+B;AAC/B,yCAAuB;AAEvB,aAAa;AACb,kDAAgC;AAChC,gDAA8B;AAC9B,6CAA2B;AAC3B,mDAAiC;AACjC,iDAA+B;AAC/B,4CAA0B;AAC1B,sDAAoC;AACpC,2CAAyB;AACzB,kDAAgC;AAEhC,cAAc;AACd,4CAA0B;AAC1B,kDAAgC;AAChC,oDAAkC;AAClC,qDAAmC;AACnC,qDAAmC;AACnC,oDAAkC;AAClC,iDAA+B;AAC/B,mDAAiC;AAEjC,oBAAoB;AACpB,kDAAgC;AAChC,+CAA6B;AAE7B,kBAAkB;AAClB,mCAAmC;AAEnC,cAAc"}
|
|
@@ -21,6 +21,15 @@ export interface EventSubOptions {
|
|
|
21
21
|
maxDeliver?: number;
|
|
22
22
|
ackWait?: number;
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Connection config consumed by the NATS wrapper. Centralised here (instead of
|
|
26
|
+
* an inline shape in `nats-wrapper.ts`) so the transport config lives beside the
|
|
27
|
+
* other event contracts.
|
|
28
|
+
*/
|
|
29
|
+
export interface NatsWrapperConfig {
|
|
30
|
+
servers: string[] | string;
|
|
31
|
+
clientName?: string;
|
|
32
|
+
}
|
|
24
33
|
export interface Event {
|
|
25
34
|
subject: Subjects;
|
|
26
35
|
data: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/events/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAO,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAO,sBAAsB,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACnF,SAAS,EAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IACrC,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAK,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,QAAQ,CAAC;IAClB,IAAI,EAAK,GAAG,CAAC;CACd;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,GAAG,SAAS;IACxD,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/events/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAO,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAO,sBAAsB,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACnF,SAAS,EAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IACrC,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAK,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAM,MAAM,EAAE,GAAG,MAAM,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,QAAQ,CAAC;IAClB,IAAI,EAAK,GAAG,CAAC;CACd;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,GAAG,SAAS;IACxD,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IACtB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ClientProvider } from './interfaces';
|
|
2
|
-
import { NatsClientManager } from './nats-client-manager';
|
|
2
|
+
import { NatsClientManager } from './transport/nats-client-manager';
|
|
3
3
|
import { RevocationListenerOptions } from './types/revocation.interfaces';
|
|
4
4
|
interface NatsProvider extends ClientProvider {
|
|
5
5
|
readonly client: NatsClientManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revocation-listener.d.ts","sourceRoot":"","sources":["../../src/events/revocation-listener.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAE,MAAoB,cAAc,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAiB,
|
|
1
|
+
{"version":3,"file":"revocation-listener.d.ts","sourceRoot":"","sources":["../../src/events/revocation-listener.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,cAAc,EAAE,MAAoB,cAAc,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAiB,iCAAiC,CAAC;AAI/E,OAAO,EAAE,yBAAyB,EAAE,MAAS,+BAA+B,CAAC;AAM7E,UAAU,YAAa,SAAQ,cAAc;IAC3C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACpC;AAED,qBAAa,kBAAkB;IAQjB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IANrC,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;gBAEvB,QAAQ,EAAE,YAAY,EAAE,IAAI,GAAE,yBAA8B;IAMzF;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;YAQf,OAAO;IA+BrB,OAAO,CAAC,MAAM;IAkBd,yDAAyD;IACnD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAc5B"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ClientProvider, MsgClientInterface } from '../interfaces';
|
|
2
|
+
/**
|
|
3
|
+
* Abstract base shared by every message-bus wrapper, regardless of transport.
|
|
4
|
+
*
|
|
5
|
+
* A wrapper is a lazy singleton holder for the underlying client manager: it is
|
|
6
|
+
* constructed at import time but only resolves a real client on `connect`, so
|
|
7
|
+
* publishers/listeners (and their controllers) can be built BEFORE the transport
|
|
8
|
+
* is connected without tripping the "client before connecting" guard (finding B8).
|
|
9
|
+
*
|
|
10
|
+
* By implementing {@link ClientProvider}, every concrete wrapper is a valid
|
|
11
|
+
* provider for publishers/listeners (compile-time check).
|
|
12
|
+
*
|
|
13
|
+
* Transport-specific concerns (how the client is built and connected) live in
|
|
14
|
+
* the concrete subclasses:
|
|
15
|
+
* - `MsgWrapper` — in-memory bus (best-effort intra-service delivery),
|
|
16
|
+
* - `NatsWrapper` — NATS JetStream (durable inter-service delivery).
|
|
17
|
+
*
|
|
18
|
+
* @typeParam TClient concrete client manager exposed by `client`
|
|
19
|
+
* @typeParam TConfig transport-specific connection config accepted by `connect`
|
|
20
|
+
*/
|
|
21
|
+
export declare abstract class ClientWrapper<TClient extends MsgClientInterface, TConfig> implements ClientProvider {
|
|
22
|
+
private readonly label;
|
|
23
|
+
protected _client?: TClient;
|
|
24
|
+
constructor(label: string);
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the client, guarding against access before `connect`. Concrete
|
|
27
|
+
* subclasses widen the return type to their client manager so callers keep
|
|
28
|
+
* access to transport-specific methods (e.g. `natsWrapper.client.createStream`).
|
|
29
|
+
*/
|
|
30
|
+
get client(): TClient;
|
|
31
|
+
/**
|
|
32
|
+
* Connect the transport and populate `client`. Concrete subclasses build the
|
|
33
|
+
* client manager from their own config shape. Reconnecting an already-connected
|
|
34
|
+
* wrapper first tears down the previous client (see the concrete guard) so we
|
|
35
|
+
* never orphan a live connection.
|
|
36
|
+
*/
|
|
37
|
+
abstract connect(config: TConfig): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Tear down the transport. Default is a no-op so shutdown stays symmetric
|
|
40
|
+
* across wrappers; transports with a real connection (NATS) override it.
|
|
41
|
+
*/
|
|
42
|
+
disconnect(): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=base-client-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-client-wrapper.d.ts","sourceRoot":"","sources":["../../../src/events/transport/base-client-wrapper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnE;;;;;;;;;;;;;;;;;;GAkBG;AACH,8BAAsB,aAAa,CAAC,OAAO,SAAS,kBAAkB,EAAE,OAAO,CAC7E,YAAW,cAAc;IAIb,OAAO,CAAC,QAAQ,CAAC,KAAK;IAFlC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEC,KAAK,EAAE,MAAM;IAE1C;;;;OAIG;IACH,IAAI,MAAM,IAAI,OAAO,CAMpB;IAED;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAEhD;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAIlC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClientWrapper = void 0;
|
|
4
|
+
const nx_frame_be_1 = require("@nextage/nx-frame-be");
|
|
5
|
+
/**
|
|
6
|
+
* Abstract base shared by every message-bus wrapper, regardless of transport.
|
|
7
|
+
*
|
|
8
|
+
* A wrapper is a lazy singleton holder for the underlying client manager: it is
|
|
9
|
+
* constructed at import time but only resolves a real client on `connect`, so
|
|
10
|
+
* publishers/listeners (and their controllers) can be built BEFORE the transport
|
|
11
|
+
* is connected without tripping the "client before connecting" guard (finding B8).
|
|
12
|
+
*
|
|
13
|
+
* By implementing {@link ClientProvider}, every concrete wrapper is a valid
|
|
14
|
+
* provider for publishers/listeners (compile-time check).
|
|
15
|
+
*
|
|
16
|
+
* Transport-specific concerns (how the client is built and connected) live in
|
|
17
|
+
* the concrete subclasses:
|
|
18
|
+
* - `MsgWrapper` — in-memory bus (best-effort intra-service delivery),
|
|
19
|
+
* - `NatsWrapper` — NATS JetStream (durable inter-service delivery).
|
|
20
|
+
*
|
|
21
|
+
* @typeParam TClient concrete client manager exposed by `client`
|
|
22
|
+
* @typeParam TConfig transport-specific connection config accepted by `connect`
|
|
23
|
+
*/
|
|
24
|
+
class ClientWrapper {
|
|
25
|
+
constructor(label) {
|
|
26
|
+
this.label = label;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolve the client, guarding against access before `connect`. Concrete
|
|
30
|
+
* subclasses widen the return type to their client manager so callers keep
|
|
31
|
+
* access to transport-specific methods (e.g. `natsWrapper.client.createStream`).
|
|
32
|
+
*/
|
|
33
|
+
get client() {
|
|
34
|
+
if (!this._client)
|
|
35
|
+
throw new Error(`Cannot access ${this.label} client before connecting`);
|
|
36
|
+
return this._client;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Tear down the transport. Default is a no-op so shutdown stays symmetric
|
|
40
|
+
* across wrappers; transports with a real connection (NATS) override it.
|
|
41
|
+
*/
|
|
42
|
+
async disconnect() {
|
|
43
|
+
nx_frame_be_1.APP.logger.info(`📪 ${this.label} client disconnected`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.ClientWrapper = ClientWrapper;
|
|
47
|
+
//# sourceMappingURL=base-client-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-client-wrapper.js","sourceRoot":"","sources":["../../../src/events/transport/base-client-wrapper.ts"],"names":[],"mappings":";;;AAAA,sDAAsE;AAGtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAsB,aAAa;IAKjC,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAE9C;;;;OAIG;IACH,IAAI,MAAM;QAER,IAAI,CAAC,IAAI,CAAC,OAAO;YACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,2BAA2B,CAAC,CAAC;QAE1E,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAUD;;;OAGG;IACH,KAAK,CAAC,UAAU;QAEd,iBAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,sBAAsB,CAAC,CAAC;IAC1D,CAAC;CACF;AApCD,sCAoCC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import { NxObject, NxTypeObject } from '@nextage/nx-frame-be';
|
|
3
|
+
import { EventSubscription } from '../event-subscription';
|
|
4
|
+
import { MsgClientInterface, EventSubOptions } from '../interfaces';
|
|
5
|
+
export declare class MsgClientManager extends EventEmitter implements MsgClientInterface {
|
|
6
|
+
subs: NxTypeObject<EventSubscription[]>;
|
|
7
|
+
private readonly clientId?;
|
|
8
|
+
constructor(clientId?: string);
|
|
9
|
+
/**
|
|
10
|
+
* No real connection to establish for the in-memory bus; logs readiness so the
|
|
11
|
+
* transport lifecycle stays symmetric with the NATS client.
|
|
12
|
+
*/
|
|
13
|
+
connect(): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Register a subscription for `subject` and return it so the caller can attach a
|
|
16
|
+
* `message` handler.
|
|
17
|
+
*
|
|
18
|
+
* @param subject subject to listen on
|
|
19
|
+
* @param queueGroupName optional group label (informational for the in-memory bus)
|
|
20
|
+
* @param options optional `maxDeliver` / `ackWait` (unused in-memory)
|
|
21
|
+
*/
|
|
22
|
+
subscribe(subject: string, queueGroupName?: string, options?: EventSubOptions): EventSubscription;
|
|
23
|
+
/**
|
|
24
|
+
* Fan out `data` to every subscriber of `subject`; a no-op (with a log) when
|
|
25
|
+
* there is no subscription — the in-memory bus is best-effort.
|
|
26
|
+
*/
|
|
27
|
+
publish(subject: string, data: string | Uint8Array<ArrayBufferLike>, options?: NxObject): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Detach `cb` from `sub` and drop it from the subscription list.
|
|
30
|
+
*/
|
|
31
|
+
unsubscribe(sub: EventSubscription, cb?: (...args: any[]) => void): void;
|
|
32
|
+
/**
|
|
33
|
+
* Return the subscription list for `subject`, throwing if none exists.
|
|
34
|
+
*/
|
|
35
|
+
private getSubscriptions;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=msg-client-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"msg-client-manager.d.ts","sourceRoot":"","sources":["../../../src/events/transport/msg-client-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAkC,aAAa,CAAC;AACvE,OAAO,EAAoB,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAA6B,uBAAuB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAW,eAAe,CAAC;AAEzE,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,kBAAkB;IAE9E,IAAI,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAM;IAE7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;gBAEvB,QAAQ,CAAC,EAAE,MAAM;IAM7B;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,iBAAiB;IAWjG;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7G;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,iBAAiB,EAAE,EAAE,GAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAe,GAAG,IAAI;IAWlF;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAOzB"}
|