@nextage/era-lib 1.0.186 → 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} +2 -2
- 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/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
- /package/build/events/{base-listener.js → base/base-listener.js} +0 -0
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { EventEmitter } from '
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
2
|
import { Consumer } from 'nats';
|
|
3
3
|
import { NatsConnection } from 'nats';
|
|
4
4
|
import { JetStreamClient, JetStreamManager } from 'nats';
|
|
5
5
|
import { NxObject, NxTypeObject } from '@nextage/nx-frame-be';
|
|
6
|
-
import { MsgClientInterface, EventSubOptions } from '
|
|
6
|
+
import { MsgClientInterface, EventSubOptions } from '../interfaces';
|
|
7
7
|
export declare class NatsClientManager extends EventEmitter implements MsgClientInterface {
|
|
8
8
|
private readonly servers;
|
|
9
9
|
private readonly clientName?;
|
|
10
10
|
subs: NxTypeObject<NxTypeObject<Consumer>>;
|
|
11
|
-
private readonly opts;
|
|
12
11
|
private nc;
|
|
13
12
|
private js;
|
|
14
13
|
private jsm;
|
|
@@ -17,13 +16,13 @@ export declare class NatsClientManager extends EventEmitter implements MsgClient
|
|
|
17
16
|
get jetStream(): JetStreamClient;
|
|
18
17
|
get jetStreamManager(): JetStreamManager;
|
|
19
18
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
19
|
+
* Connect to NATS and initialise the JetStream client + manager from the
|
|
20
|
+
* `servers`/`clientName` passed at construction. No-op when no server is
|
|
21
|
+
* configured (msg-only mode), so the transport can stay optional.
|
|
23
22
|
*/
|
|
24
|
-
connect(
|
|
23
|
+
connect(): Promise<void>;
|
|
25
24
|
/**
|
|
26
|
-
*
|
|
25
|
+
* Close the NATS connection, if open.
|
|
27
26
|
*/
|
|
28
27
|
disconnect(): Promise<void>;
|
|
29
28
|
/**
|
|
@@ -39,9 +38,14 @@ export declare class NatsClientManager extends EventEmitter implements MsgClient
|
|
|
39
38
|
maxMsgs?: number;
|
|
40
39
|
}): Promise<void>;
|
|
41
40
|
/**
|
|
41
|
+
* Create (or reuse) a durable, shared-name consumer on `streamName` filtered to
|
|
42
|
+
* `subject`, load-balancing one copy of each message across service instances
|
|
43
|
+
* (work-queue). Recreates the consumer if an existing one has a stale filter.
|
|
42
44
|
*
|
|
43
|
-
* @param
|
|
44
|
-
* @param
|
|
45
|
+
* @param subject concrete subject filter
|
|
46
|
+
* @param streamName stream carrying that subject
|
|
47
|
+
* @param queueGroupName shared consumer name (durable) → work-queue group
|
|
48
|
+
* @param options optional `maxDeliver` / `ackWait` overrides
|
|
45
49
|
*/
|
|
46
50
|
subscribe(subject: string, streamName: string, queueGroupName: string, options?: EventSubOptions): Promise<Consumer>;
|
|
47
51
|
/**
|
|
@@ -64,23 +68,21 @@ export declare class NatsClientManager extends EventEmitter implements MsgClient
|
|
|
64
68
|
lookbackMs?: number;
|
|
65
69
|
}): Promise<Consumer>;
|
|
66
70
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* @param {*} data
|
|
71
|
+
* Publish `payload` on `subject` via JetStream (default timeout 5s, overridable
|
|
72
|
+
* through `options`), awaiting the server ack.
|
|
70
73
|
*/
|
|
71
74
|
publish(subject: string, payload: string, options?: NxObject): Promise<void>;
|
|
72
75
|
/**
|
|
73
|
-
*
|
|
74
|
-
* @param {*} id
|
|
76
|
+
* Delete the consumer for `subject` locally and from the JetStream manager.
|
|
75
77
|
*/
|
|
76
78
|
unsubscribe(subject: string, streamName: string, queueGroupName: string): Promise<void>;
|
|
77
79
|
/**
|
|
78
|
-
*
|
|
79
|
-
* @param streamName
|
|
80
|
+
* Delete every consumer on `streamName` (best-effort, logs per-consumer errors).
|
|
80
81
|
*/
|
|
81
82
|
cleanAllConsumers(streamName: string): Promise<void>;
|
|
82
83
|
/**
|
|
83
|
-
*
|
|
84
|
+
* Delete all consumers across all streams (maintenance helper); consumers are
|
|
85
|
+
* recreated on the next app start.
|
|
84
86
|
*/
|
|
85
87
|
resetAndRecreateConsumers(): Promise<void>;
|
|
86
88
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nats-client-manager.d.ts","sourceRoot":"","sources":["../../../src/events/transport/nats-client-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAmD,aAAa,CAAC;AACxF,OAAO,EAAsB,QAAQ,EAA+B,MAAM,MAAM,CAAC;AACjF,OAAO,EAA2B,cAAc,EAAmB,MAAO,MAAM,CAAC;AACjF,OAAO,EAAiB,eAAe,EAAE,gBAAgB,EAAE,MAAe,MAAM,CAAC;AACjF,OAAO,EAAO,QAAQ,EAAE,YAAY,EAAE,MAAoC,sBAAsB,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAA4B,eAAe,CAAC;AAE1F,qBAAa,iBAAkB,SAAQ,YAAa,YAAW,kBAAkB;IAQnE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAPxC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAM;IAEhD,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,GAAG,CAAoB;gBAEF,OAAO,EAAM,MAAM,EAAE,GAAG,MAAM,EAC9B,UAAU,CAAC,EAAE,MAAM,YAAA;IAKhD,IAAI,UAAU,IAAI,cAAc,CAM/B;IAGD,IAAI,SAAS,IAAI,eAAe,CAM/B;IAED,IAAI,gBAAgB,IAAI,gBAAgB,CAEvC;IAED;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC9B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;;;;;;OAOG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCzH;;;;;;;;;OASG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuD1H;;;;;;;;;;;;;;;OAeG;IACG,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoChH;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlF;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7F;;OAEG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM;IAqB1C;;;OAGG;IACG,yBAAyB;CAwBhC"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NatsClientManager = void 0;
|
|
4
|
-
const
|
|
4
|
+
const node_events_1 = require("node:events");
|
|
5
5
|
const nats_1 = require("nats");
|
|
6
6
|
const nats_2 = require("nats");
|
|
7
7
|
const nats_3 = require("nats");
|
|
8
8
|
const nx_frame_be_1 = require("@nextage/nx-frame-be");
|
|
9
|
-
class NatsClientManager extends
|
|
9
|
+
class NatsClientManager extends node_events_1.EventEmitter {
|
|
10
10
|
constructor(servers, clientName) {
|
|
11
11
|
super();
|
|
12
12
|
this.servers = servers;
|
|
13
13
|
this.clientName = clientName;
|
|
14
14
|
this.subs = {};
|
|
15
|
-
this.opts = {};
|
|
16
15
|
}
|
|
17
16
|
get connection() {
|
|
18
17
|
if (!this.nc)
|
|
@@ -29,11 +28,11 @@ class NatsClientManager extends ws_1.EventEmitter {
|
|
|
29
28
|
return this.jsm;
|
|
30
29
|
}
|
|
31
30
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
31
|
+
* Connect to NATS and initialise the JetStream client + manager from the
|
|
32
|
+
* `servers`/`clientName` passed at construction. No-op when no server is
|
|
33
|
+
* configured (msg-only mode), so the transport can stay optional.
|
|
35
34
|
*/
|
|
36
|
-
async connect(
|
|
35
|
+
async connect() {
|
|
37
36
|
if (!this.servers.length) {
|
|
38
37
|
nx_frame_be_1.APP.logger.info('📪 NATS not defined');
|
|
39
38
|
return;
|
|
@@ -63,7 +62,7 @@ class NatsClientManager extends ws_1.EventEmitter {
|
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
/**
|
|
66
|
-
*
|
|
65
|
+
* Close the NATS connection, if open.
|
|
67
66
|
*/
|
|
68
67
|
async disconnect() {
|
|
69
68
|
if (this.nc) {
|
|
@@ -111,9 +110,14 @@ class NatsClientManager extends ws_1.EventEmitter {
|
|
|
111
110
|
}
|
|
112
111
|
}
|
|
113
112
|
/**
|
|
113
|
+
* Create (or reuse) a durable, shared-name consumer on `streamName` filtered to
|
|
114
|
+
* `subject`, load-balancing one copy of each message across service instances
|
|
115
|
+
* (work-queue). Recreates the consumer if an existing one has a stale filter.
|
|
114
116
|
*
|
|
115
|
-
* @param
|
|
116
|
-
* @param
|
|
117
|
+
* @param subject concrete subject filter
|
|
118
|
+
* @param streamName stream carrying that subject
|
|
119
|
+
* @param queueGroupName shared consumer name (durable) → work-queue group
|
|
120
|
+
* @param options optional `maxDeliver` / `ackWait` overrides
|
|
117
121
|
*/
|
|
118
122
|
async subscribe(subject, streamName, queueGroupName, options) {
|
|
119
123
|
var _a;
|
|
@@ -202,9 +206,8 @@ class NatsClientManager extends ws_1.EventEmitter {
|
|
|
202
206
|
}
|
|
203
207
|
}
|
|
204
208
|
/**
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
* @param {*} data
|
|
209
|
+
* Publish `payload` on `subject` via JetStream (default timeout 5s, overridable
|
|
210
|
+
* through `options`), awaiting the server ack.
|
|
208
211
|
*/
|
|
209
212
|
async publish(subject, payload, options) {
|
|
210
213
|
try {
|
|
@@ -219,8 +222,7 @@ class NatsClientManager extends ws_1.EventEmitter {
|
|
|
219
222
|
}
|
|
220
223
|
}
|
|
221
224
|
/**
|
|
222
|
-
*
|
|
223
|
-
* @param {*} id
|
|
225
|
+
* Delete the consumer for `subject` locally and from the JetStream manager.
|
|
224
226
|
*/
|
|
225
227
|
async unsubscribe(subject, streamName, queueGroupName) {
|
|
226
228
|
try {
|
|
@@ -235,8 +237,7 @@ class NatsClientManager extends ws_1.EventEmitter {
|
|
|
235
237
|
}
|
|
236
238
|
}
|
|
237
239
|
/**
|
|
238
|
-
*
|
|
239
|
-
* @param streamName
|
|
240
|
+
* Delete every consumer on `streamName` (best-effort, logs per-consumer errors).
|
|
240
241
|
*/
|
|
241
242
|
async cleanAllConsumers(streamName) {
|
|
242
243
|
try {
|
|
@@ -257,7 +258,8 @@ class NatsClientManager extends ws_1.EventEmitter {
|
|
|
257
258
|
}
|
|
258
259
|
}
|
|
259
260
|
/**
|
|
260
|
-
*
|
|
261
|
+
* Delete all consumers across all streams (maintenance helper); consumers are
|
|
262
|
+
* recreated on the next app start.
|
|
261
263
|
*/
|
|
262
264
|
async resetAndRecreateConsumers() {
|
|
263
265
|
try {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nats-client-manager.js","sourceRoot":"","sources":["../../../src/events/transport/nats-client-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NatsClientManager } from './nats-client-manager';
|
|
2
|
+
import { ClientWrapper } from './base-client-wrapper';
|
|
3
|
+
import { NatsWrapperConfig } from '../interfaces';
|
|
4
|
+
/**
|
|
5
|
+
* NATS JetStream wrapper. Durable inter-service delivery: exposes the concrete
|
|
6
|
+
* {@link NatsClientManager} so callers reach transport-specific methods
|
|
7
|
+
* (`createStream`, `subscribeBroadcast`, …).
|
|
8
|
+
*/
|
|
9
|
+
declare class NatsWrapper extends ClientWrapper<NatsClientManager, NatsWrapperConfig> {
|
|
10
|
+
constructor();
|
|
11
|
+
connect({ servers, clientName }: NatsWrapperConfig): Promise<void>;
|
|
12
|
+
disconnect(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export declare const natsWrapper: NatsWrapper;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=nats-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nats-wrapper.d.ts","sourceRoot":"","sources":["../../../src/events/transport/nats-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAU,uBAAuB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;;;;GAIG;AACH,cAAM,WAAY,SAAQ,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;;IAQrE,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAazD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAI3C;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.natsWrapper = void 0;
|
|
4
|
+
const nats_client_manager_1 = require("./nats-client-manager");
|
|
5
|
+
const base_client_wrapper_1 = require("./base-client-wrapper");
|
|
6
|
+
/**
|
|
7
|
+
* NATS JetStream wrapper. Durable inter-service delivery: exposes the concrete
|
|
8
|
+
* {@link NatsClientManager} so callers reach transport-specific methods
|
|
9
|
+
* (`createStream`, `subscribeBroadcast`, …).
|
|
10
|
+
*/
|
|
11
|
+
class NatsWrapper extends base_client_wrapper_1.ClientWrapper {
|
|
12
|
+
constructor() {
|
|
13
|
+
super('NATS');
|
|
14
|
+
}
|
|
15
|
+
// Connessione a NATS + JetStream
|
|
16
|
+
async connect({ servers, clientName }) {
|
|
17
|
+
// Reconnect guard: close a previous connection before replacing it, so we
|
|
18
|
+
// never orphan a live NATS connection.
|
|
19
|
+
if (this._client)
|
|
20
|
+
await this.disconnect();
|
|
21
|
+
this._client = new nats_client_manager_1.NatsClientManager(servers, clientName);
|
|
22
|
+
await this._client.connect();
|
|
23
|
+
}
|
|
24
|
+
// Disconnessione pulita
|
|
25
|
+
async disconnect() {
|
|
26
|
+
await this._client?.disconnect();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.natsWrapper = new NatsWrapper();
|
|
30
|
+
//# sourceMappingURL=nats-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nats-wrapper.js","sourceRoot":"","sources":["../../../src/events/transport/nats-wrapper.ts"],"names":[],"mappings":";;;AAAA,+DAA0D;AAC1D,+DAA0D;AAG1D;;;;GAIG;AACH,MAAM,WAAY,SAAQ,mCAAmD;IAE3E;QAEE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,EAAqB;QAEtD,0EAA0E;QAC1E,uCAAuC;QACvC,IAAI,IAAI,CAAC,OAAO;YACd,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAE1B,IAAI,CAAC,OAAO,GAAG,IAAI,uCAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE1D,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED,wBAAwB;IACf,KAAK,CAAC,UAAU;QAEvB,MAAM,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;IACnC,CAAC;CACF;AAEY,QAAA,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}
|
package/build/interfaces.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { BaseDBItem, BaseUser, ModelCrudEventType, NxTypeObject } from '@nextage/nx-frame-be';
|
|
2
2
|
import { SecurityLogLevel, UserCrudEventType } from './enums';
|
|
3
3
|
export type NxCallback<T> = (err: Error | null, res?: T) => void;
|
|
4
|
+
/**
|
|
5
|
+
* Payload recorded by the security logger for an auditable event.
|
|
6
|
+
*/
|
|
4
7
|
export interface SecurityLogData {
|
|
5
8
|
userId: string;
|
|
6
9
|
module: string;
|
|
@@ -13,11 +16,18 @@ export interface EmailResult {
|
|
|
13
16
|
success: boolean;
|
|
14
17
|
statusCode?: number;
|
|
15
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Base shape for a versioned MongoDB entity with a plain-string `name`.
|
|
21
|
+
*/
|
|
16
22
|
export interface BaseEntity extends BaseDBItem {
|
|
17
23
|
code?: string;
|
|
18
24
|
name?: string;
|
|
19
25
|
version?: number;
|
|
20
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Base shape for a versioned MongoDB entity whose `name`/`description` are
|
|
29
|
+
* internationalised (per-language map or plain string).
|
|
30
|
+
*/
|
|
21
31
|
export interface BaseI18nEntity extends BaseDBItem {
|
|
22
32
|
code?: string;
|
|
23
33
|
name?: NxTypeObject<string> | string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAyB,SAAS,CAAC;AAEjF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;AAEhE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAI,MAAM,CAAC;IACjB,MAAM,EAAI,MAAM,CAAC;IACjB,MAAM,EAAI,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAI,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,OAAO,EAAM,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,IAAI,CAAC,EAAK,MAAM,CAAC;IACjB,IAAI,CAAC,EAAK,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,IAAI,CAAC,EAAS,MAAM,CAAC;IACrB,IAAI,CAAC,EAAS,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5C,WAAW,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5C,OAAO,CAAC,EAAM,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAM,MAAM,CAAC;IACnB,IAAI,EAAQ,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAK,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAW,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAa,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,OAAO,CAAC,EAAS,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAG,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAW,QAAQ,CAAC;IACzB,OAAO,CAAC,EAAQ,GAAG,CAAC;IACpB,OAAO,CAAC,EAAQ,kBAAkB,GAAG,iBAAiB,CAAC;IACvD,SAAS,CAAC,EAAM,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAyB,SAAS,CAAC;AAEjF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;AAEhE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAI,MAAM,CAAC;IACjB,MAAM,EAAI,MAAM,CAAC;IACjB,MAAM,EAAI,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAI,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,OAAO,EAAM,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,IAAI,CAAC,EAAK,MAAM,CAAC;IACjB,IAAI,CAAC,EAAK,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,IAAI,CAAC,EAAS,MAAM,CAAC;IACrB,IAAI,CAAC,EAAS,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5C,WAAW,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5C,OAAO,CAAC,EAAM,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAM,MAAM,CAAC;IACnB,IAAI,EAAQ,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAK,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAW,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAa,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,MAAM,CAAC,EAAU,MAAM,CAAC;IACxB,OAAO,CAAC,EAAS,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAG,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAOD,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAW,QAAQ,CAAC;IACzB,OAAO,CAAC,EAAQ,GAAG,CAAC;IACpB,OAAO,CAAC,EAAQ,kBAAkB,GAAG,iBAAiB,CAAC;IACvD,SAAS,CAAC,EAAM,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -3,9 +3,11 @@ import { Result, Schema, ValidationError } from 'express-validator';
|
|
|
3
3
|
import { DefaultSchemaKeys } from 'express-validator/lib/middlewares/schema';
|
|
4
4
|
export declare const idSchema: Schema<DefaultSchemaKeys>;
|
|
5
5
|
/**
|
|
6
|
+
* Formats express-validator errors into the app's standard error result.
|
|
6
7
|
*
|
|
7
|
-
* @param
|
|
8
|
-
* @returns
|
|
8
|
+
* @param errors the express-validator result set
|
|
9
|
+
* @returns an {@link ExpressErrorResult} carrying the offending fields plus the
|
|
10
|
+
* `INCORRECT_DATA` response code
|
|
9
11
|
*/
|
|
10
12
|
export declare function formatErrors(errors: Result<ValidationError>): ExpressErrorResult;
|
|
11
13
|
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/routes/validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAmB,sBAAsB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAoB,0CAA0C,CAAC;AAG3F,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAE9C,CAAC;AAIF
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/routes/validators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAmB,sBAAsB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAoB,0CAA0C,CAAC;AAG3F,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAE9C,CAAC;AAIF;;;;;;GAMG;AACF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,kBAAkB,CAGjF"}
|
|
@@ -7,9 +7,11 @@ exports.idSchema = {
|
|
|
7
7
|
id: { in: ['body', 'params', 'query'], isMongoId: true }
|
|
8
8
|
};
|
|
9
9
|
/**
|
|
10
|
+
* Formats express-validator errors into the app's standard error result.
|
|
10
11
|
*
|
|
11
|
-
* @param
|
|
12
|
-
* @returns
|
|
12
|
+
* @param errors the express-validator result set
|
|
13
|
+
* @returns an {@link ExpressErrorResult} carrying the offending fields plus the
|
|
14
|
+
* `INCORRECT_DATA` response code
|
|
13
15
|
*/
|
|
14
16
|
function formatErrors(errors) {
|
|
15
17
|
return { result: Object.assign({ fields: errors.array().map((e) => e.params) }, constants_1.RES_CODE.INCORRECT_DATA) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/routes/validators.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/routes/validators.ts"],"names":[],"mappings":";;;AAmBC,oCAGA;AAlBD,4CAA+D;AAElD,QAAA,QAAQ,GAA8B;IACjD,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;CACzD,CAAC;AAIF;;;;;;GAMG;AACF,SAAgB,YAAY,CAAC,MAA+B;IAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,oBAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;AAClH,CAAC"}
|
|
@@ -1,5 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Password hashing helper (scrypt with a per-password random salt).
|
|
3
|
+
*
|
|
4
|
+
* Stored form is `<hashHex>.<saltHex>`; {@link Password.compare} re-derives the
|
|
5
|
+
* hash with the embedded salt to verify a candidate.
|
|
6
|
+
*/
|
|
1
7
|
export declare class Password {
|
|
8
|
+
/**
|
|
9
|
+
* Hashes a plaintext password with a fresh random salt.
|
|
10
|
+
*
|
|
11
|
+
* @param password the plaintext password
|
|
12
|
+
* @returns the stored representation `<hashHex>.<saltHex>`
|
|
13
|
+
*/
|
|
2
14
|
static toHash(password: string): Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Verifies a candidate password against a stored `<hash>.<salt>` value.
|
|
17
|
+
*
|
|
18
|
+
* @param storedPassword the stored `<hashHex>.<saltHex>` value
|
|
19
|
+
* @param suppliedPassword the plaintext candidate to check
|
|
20
|
+
* @returns `true` when the candidate matches
|
|
21
|
+
*/
|
|
3
22
|
static compare(storedPassword: string, suppliedPassword: string): Promise<boolean>;
|
|
4
23
|
}
|
|
5
24
|
//# sourceMappingURL=password.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/services/password.ts"],"names":[],"mappings":"AAKA,qBAAa,QAAQ;
|
|
1
|
+
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/services/password.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,qBAAa,QAAQ;IAEnB;;;;;OAKG;WACU,MAAM,CAAC,QAAQ,EAAE,MAAM;IAQpC;;;;;;OAMG;WACU,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;CAMtE"}
|
|
@@ -4,12 +4,31 @@ exports.Password = void 0;
|
|
|
4
4
|
const crypto_1 = require("crypto");
|
|
5
5
|
const util_1 = require("util");
|
|
6
6
|
const scriptAsync = (0, util_1.promisify)(crypto_1.scrypt);
|
|
7
|
+
/**
|
|
8
|
+
* Password hashing helper (scrypt with a per-password random salt).
|
|
9
|
+
*
|
|
10
|
+
* Stored form is `<hashHex>.<saltHex>`; {@link Password.compare} re-derives the
|
|
11
|
+
* hash with the embedded salt to verify a candidate.
|
|
12
|
+
*/
|
|
7
13
|
class Password {
|
|
14
|
+
/**
|
|
15
|
+
* Hashes a plaintext password with a fresh random salt.
|
|
16
|
+
*
|
|
17
|
+
* @param password the plaintext password
|
|
18
|
+
* @returns the stored representation `<hashHex>.<saltHex>`
|
|
19
|
+
*/
|
|
8
20
|
static async toHash(password) {
|
|
9
21
|
const salt = (0, crypto_1.randomBytes)(8).toString('hex');
|
|
10
22
|
const buf = (await scriptAsync(password, salt, 64));
|
|
11
23
|
return `${buf.toString('hex')}.${salt}`;
|
|
12
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Verifies a candidate password against a stored `<hash>.<salt>` value.
|
|
27
|
+
*
|
|
28
|
+
* @param storedPassword the stored `<hashHex>.<saltHex>` value
|
|
29
|
+
* @param suppliedPassword the plaintext candidate to check
|
|
30
|
+
* @returns `true` when the candidate matches
|
|
31
|
+
*/
|
|
13
32
|
static async compare(storedPassword, suppliedPassword) {
|
|
14
33
|
const [hashedPassword, salt] = storedPassword.split('.');
|
|
15
34
|
const buf = (await scriptAsync(suppliedPassword, salt, 64));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/services/password.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAC7C,+BAA2C;AAE3C,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAC,eAAM,CAAC,CAAC;AAEtC,MAAa,QAAQ;IAEnB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAgB;QAElC,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAI,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAW,CAAC;QAE/D,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAAsB,EAAE,gBAAwB;QACnE,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,GAAG,GAAsB,CAAC,MAAM,WAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAW,CAAC;QAEzF,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC;IAChD,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/services/password.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAC7C,+BAA2C;AAE3C,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAC,eAAM,CAAC,CAAC;AAEtC;;;;;GAKG;AACH,MAAa,QAAQ;IAEnB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAgB;QAElC,MAAM,IAAI,GAAG,IAAA,oBAAW,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAI,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAW,CAAC;QAE/D,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAAsB,EAAE,gBAAwB;QACnE,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,GAAG,GAAsB,CAAC,MAAM,WAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAW,CAAC;QAEzF,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC;IAChD,CAAC;CACF;AA7BD,4BA6BC"}
|
package/build/utils/functs.d.ts
CHANGED
|
@@ -28,15 +28,21 @@ export declare function buildMongoDBConfig(): Promise<AppMongoDB>;
|
|
|
28
28
|
*/
|
|
29
29
|
export declare function readEnv(dir: string): void;
|
|
30
30
|
/**
|
|
31
|
+
* Converts a Mongoose document to a plain attributes object.
|
|
31
32
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
33
|
+
* Runs `toObject` (applying schema getters by default, e.g. field decryption),
|
|
34
|
+
* then exposes the `_id` as a string `id`. Returns `null` when `item` is nullish.
|
|
35
|
+
*
|
|
36
|
+
* @param item the Mongoose document to flatten
|
|
37
|
+
* @param getters whether to apply schema getters (default `true`)
|
|
38
|
+
* @returns the plain object with a string `id`, or `null`
|
|
34
39
|
*/
|
|
35
40
|
export declare function docToAttrs(item: BaseMongoDoc, getters?: boolean): NxObject | null;
|
|
36
41
|
/**
|
|
42
|
+
* Checks whether a filesystem path exists and is accessible.
|
|
37
43
|
*
|
|
38
|
-
* @param path
|
|
39
|
-
* @returns
|
|
44
|
+
* @param path absolute or relative path (an empty string returns `false`)
|
|
45
|
+
* @returns `true` if the path can be accessed, `false` otherwise
|
|
40
46
|
*/
|
|
41
47
|
export declare function pathExists(path?: string): Promise<boolean>;
|
|
42
48
|
/**
|
|
@@ -49,8 +55,14 @@ export declare function pathExists(path?: string): Promise<boolean>;
|
|
|
49
55
|
*/
|
|
50
56
|
export declare function parseDurationMs(input?: string | number): number | undefined;
|
|
51
57
|
/**
|
|
58
|
+
* Discovers and imports the nx-app module init files at bootstrap.
|
|
59
|
+
*
|
|
60
|
+
* Recursively scans `dir` for files whose name contains `fname` and imports each
|
|
61
|
+
* one so its side effects (model/listener/publisher registration) run. Import
|
|
62
|
+
* failures are logged but do not abort the scan.
|
|
52
63
|
*
|
|
53
|
-
* @param dir
|
|
64
|
+
* @param dir root directory to scan (default `'nx-app'`)
|
|
65
|
+
* @param fname init filename fragment to match (default `'init.'`)
|
|
54
66
|
*/
|
|
55
67
|
export declare function findAndImportInitFiles(dir?: string, fname?: string): Promise<void>;
|
|
56
68
|
/**
|
|
@@ -73,31 +85,38 @@ export declare function findAndImportGraphqlSchemas(dir?: string): Promise<void>
|
|
|
73
85
|
*/
|
|
74
86
|
export declare function findFilesRecursive(dir: string, fname: string): string[];
|
|
75
87
|
/**
|
|
88
|
+
* Resolves an entity's i18n `name`/`description` to plain strings for a language.
|
|
76
89
|
*
|
|
77
|
-
* @param item
|
|
78
|
-
* @param lang
|
|
79
|
-
* @returns
|
|
90
|
+
* @param item the entity whose i18n fields are collapsed in place
|
|
91
|
+
* @param lang target language code (e.g. `'it'`, `'en'`)
|
|
92
|
+
* @returns the same entity with `name`/`description` as plain strings
|
|
80
93
|
*/
|
|
81
94
|
export declare function getI18nEntityStrings(item: BaseI18nEntity, lang: string): BaseI18nEntity;
|
|
82
95
|
/**
|
|
96
|
+
* Wraps an entity's plain `name`/`description` into the i18n map for a language.
|
|
97
|
+
*
|
|
98
|
+
* Inverse of {@link getI18nEntityStrings}: used before persisting so a plain
|
|
99
|
+
* string becomes `{ [lang]: value }`.
|
|
83
100
|
*
|
|
84
|
-
* @param item
|
|
85
|
-
* @param lang
|
|
86
|
-
* @returns
|
|
101
|
+
* @param item the entity whose fields are wrapped in place
|
|
102
|
+
* @param lang language code to key the values under
|
|
103
|
+
* @returns the same entity with i18n `name`/`description`
|
|
87
104
|
*/
|
|
88
105
|
export declare function setI18nEntityStrings(item: BaseI18nEntity, lang: string): BaseI18nEntity;
|
|
89
106
|
/**
|
|
107
|
+
* Reads a single i18n value for a language from an i18n map or plain string.
|
|
90
108
|
*
|
|
91
|
-
* @param
|
|
92
|
-
* @param lang
|
|
93
|
-
* @returns
|
|
109
|
+
* @param input the i18n map (`{ lang: value }`) or an already-plain string
|
|
110
|
+
* @param lang target language code
|
|
111
|
+
* @returns the value for `lang`, the plain string as-is, or `''` when absent
|
|
94
112
|
*/
|
|
95
113
|
export declare function getEntityI18nString(input: NxTypeObject<string> | string, lang: string): string;
|
|
96
114
|
/**
|
|
115
|
+
* Wraps a plain string into an i18n map keyed by language.
|
|
97
116
|
*
|
|
98
|
-
* @param input
|
|
99
|
-
* @param lang
|
|
100
|
-
* @returns
|
|
117
|
+
* @param input a plain string, or an already-i18n map (returned unchanged)
|
|
118
|
+
* @param lang language code to key the value under
|
|
119
|
+
* @returns the i18n map `{ [lang]: value }`
|
|
101
120
|
*/
|
|
102
121
|
export declare function setEntityI18nString(input: NxTypeObject<string> | string, lang: string): NxTypeObject<string>;
|
|
103
122
|
/**
|
|
@@ -109,21 +128,33 @@ export declare function setEntityI18nString(input: NxTypeObject<string> | string
|
|
|
109
128
|
*/
|
|
110
129
|
export declare function setTenant(item: NxObject, user?: BaseUser, applyDefaultForAdmin?: boolean): void;
|
|
111
130
|
/**
|
|
131
|
+
* Scopes a query filter to the user's tenant (multi-tenancy guard).
|
|
112
132
|
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
133
|
+
* Config/admin roles (`CONFIG_ROLES`) are left unscoped so they can query across
|
|
134
|
+
* tenants; every other user gets `tenantId` forced to their first organization.
|
|
135
|
+
* Throws when a non-admin user has no organization.
|
|
136
|
+
*
|
|
137
|
+
* @param item the query filter object, mutated in place
|
|
138
|
+
* @param user the authenticated user (roles + organizations)
|
|
115
139
|
*/
|
|
116
140
|
export declare function setTenantFilter(item: any, user?: BaseUser): void;
|
|
117
141
|
/**
|
|
142
|
+
* Returns the user's tenant id (their first organization).
|
|
118
143
|
*
|
|
119
|
-
* @param user
|
|
120
|
-
* @returns
|
|
144
|
+
* @param user the authenticated user
|
|
145
|
+
* @returns the tenant id
|
|
146
|
+
* @throws if the user has no organization
|
|
121
147
|
*/
|
|
122
148
|
export declare function getTenant(user?: BaseUser): string | undefined;
|
|
123
149
|
/**
|
|
150
|
+
* Validates and normalises an absolute http(s) URL (SSRF guard).
|
|
151
|
+
*
|
|
152
|
+
* Requires an explicit `http`/`https` protocol and rejects loopback hosts
|
|
153
|
+
* (`localhost`/`127.0.0.1`) to prevent server-side request forgery.
|
|
124
154
|
*
|
|
125
|
-
* @param input
|
|
126
|
-
* @returns
|
|
155
|
+
* @param input the URL to validate
|
|
156
|
+
* @returns the parsed, normalised URL string
|
|
157
|
+
* @throws `Invalid URL` when malformed, `Forbidden URL` when pointing at loopback
|
|
127
158
|
*/
|
|
128
159
|
export declare function validateUrl(input: string): string;
|
|
129
160
|
//# sourceMappingURL=functs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functs.d.ts","sourceRoot":"","sources":["../../src/utils/functs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAe,UAAU,EAAE,MAAqB,sBAAsB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAiB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAyC,wDAAwD,CAAC;AAEzH,OAAO,EAAE,cAAc,EAAE,MAAuC,eAAe,CAAC;AAIhF;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwH9D;
|
|
1
|
+
{"version":3,"file":"functs.d.ts","sourceRoot":"","sources":["../../src/utils/functs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAe,UAAU,EAAE,MAAqB,sBAAsB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAiB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAyC,wDAAwD,CAAC;AAEzH,OAAO,EAAE,cAAc,EAAE,MAAuC,eAAe,CAAC;AAIhF;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwH9D;AAiCD;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CA0B9D;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAgBzC;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,OAAc,GAAG,QAAQ,GAAG,IAAI,CASvF;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAYpE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAmB3E;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,GAAE,MAAiB,EAAE,KAAK,GAAE,MAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3G;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,2BAA2B,CAAC,GAAG,GAAE,MAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCvF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBvE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAOvF;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAMvF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAS9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAS5G;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,oBAAoB,UAAQ,GAAG,IAAI,CAc7F;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAShE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAM7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBjD"}
|