@nextage/era-lib 1.0.170 → 1.0.172

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/build/events/base-nats-listener.d.ts +35 -2
  2. package/build/events/base-nats-listener.d.ts.map +1 -1
  3. package/build/events/base-nats-listener.js +93 -18
  4. package/build/events/base-nats-listener.js.map +1 -1
  5. package/build/events/dlq.d.ts +23 -0
  6. package/build/events/dlq.d.ts.map +1 -0
  7. package/build/events/dlq.js +16 -0
  8. package/build/events/dlq.js.map +1 -0
  9. package/build/events/event-message.d.ts.map +1 -1
  10. package/build/events/event-message.js +2 -1
  11. package/build/events/event-message.js.map +1 -1
  12. package/build/events/index.d.ts +1 -0
  13. package/build/events/index.d.ts.map +1 -1
  14. package/build/events/index.js +1 -0
  15. package/build/events/index.js.map +1 -1
  16. package/build/events/nats-client-manager.d.ts +7 -1
  17. package/build/events/nats-client-manager.d.ts.map +1 -1
  18. package/build/events/nats-client-manager.js +10 -5
  19. package/build/events/nats-client-manager.js.map +1 -1
  20. package/build/utils/env.constants.js +1 -1
  21. package/build/utils/env.constants.js.map +1 -1
  22. package/build/utils/functs.d.ts.map +1 -1
  23. package/build/utils/functs.js +5 -1
  24. package/build/utils/functs.js.map +1 -1
  25. package/build/utils/index.d.ts +2 -0
  26. package/build/utils/index.d.ts.map +1 -1
  27. package/build/utils/index.js +2 -0
  28. package/build/utils/index.js.map +1 -1
  29. package/build/utils/jwt.constants.d.ts +33 -0
  30. package/build/utils/jwt.constants.d.ts.map +1 -1
  31. package/build/utils/jwt.constants.js +34 -1
  32. package/build/utils/jwt.constants.js.map +1 -1
  33. package/build/utils/jwt.d.ts +19 -12
  34. package/build/utils/jwt.d.ts.map +1 -1
  35. package/build/utils/jwt.interfaces.d.ts +23 -0
  36. package/build/utils/jwt.interfaces.d.ts.map +1 -0
  37. package/build/utils/jwt.interfaces.js +10 -0
  38. package/build/utils/jwt.interfaces.js.map +1 -0
  39. package/build/utils/jwt.js +60 -9
  40. package/build/utils/jwt.js.map +1 -1
  41. package/build/utils/start-service.constants.d.ts +20 -0
  42. package/build/utils/start-service.constants.d.ts.map +1 -0
  43. package/build/utils/start-service.constants.js +23 -0
  44. package/build/utils/start-service.constants.js.map +1 -0
  45. package/build/utils/start-service.d.ts.map +1 -1
  46. package/build/utils/start-service.js +22 -1
  47. package/build/utils/start-service.js.map +1 -1
  48. package/package.json +1 -1
@@ -9,6 +9,7 @@ export declare abstract class NatsListener<T extends Event> {
9
9
  private isListening;
10
10
  protected ackWait: number;
11
11
  protected maxDeliver: number;
12
+ protected nakBackoffMs: number[];
12
13
  abstract onMessage(data: T['data'], msg: JsMsg): Promise<void>;
13
14
  constructor(client: MsgClientInterface);
14
15
  /**
@@ -21,15 +22,47 @@ export declare abstract class NatsListener<T extends Event> {
21
22
  */
22
23
  listen(): Promise<void>;
23
24
  /**
24
- *
25
- * @returns
25
+ * Consume loop. Owns the message iteration and lifecycle; the per-message
26
+ * ack/nak/term decision lives in `handleMessage` so it can be unit-tested in
27
+ * isolation and so subclasses never have to ack again (that was E6).
26
28
  */
27
29
  private processMessages;
30
+ /**
31
+ * Processes a single message with durable failure handling:
32
+ * - success → `ack()`
33
+ * - failure, retriable → `nak(backoff)` (redelivery until maxDeliver)
34
+ * - failure, exhausted → park on DLQ then `term()` (drop from source stream)
35
+ *
36
+ * If the DLQ publish itself fails we deliberately fall back to `nak()` rather
37
+ * than `term()`, so an unreachable DLQ never causes silent message loss.
38
+ */
39
+ protected handleMessage(msg: JsMsg): Promise<void>;
40
+ /**
41
+ * Parks a failed message on the DLQ stream. Returns `true` on success so the
42
+ * caller can safely `term()` the original; returns `false` if the DLQ could
43
+ * not be reached (caller must then keep the message via `nak`).
44
+ */
45
+ protected sendToDeadLetter(msg: JsMsg, error: unknown): Promise<boolean>;
28
46
  /**
29
47
  *
30
48
  * @returns
31
49
  */
32
50
  stop(): Promise<void>;
51
+ /**
52
+ * Current delivery attempt (1 on first delivery). Defaults to 1 when the
53
+ * transport does not expose `info` (e.g. tests with a minimal mock).
54
+ */
55
+ private deliveryCount;
56
+ /**
57
+ * Backoff (ms) for the given attempt, clamped to the last table entry.
58
+ */
59
+ private backoffFor;
60
+ /**
61
+ *
62
+ * @param msg
63
+ * @returns
64
+ */
65
+ private decode;
33
66
  /**
34
67
  *
35
68
  * @param msg
@@ -1 +1 @@
1
- {"version":3,"file":"base-nats-listener.d.ts","sourceRoot":"","sources":["../../src/events/base-nats-listener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAY,KAAK,EAAE,MAAiC,MAAM,CAAC;AAElE,8BAAsB,YAAY,CAAC,CAAC,SAAS,KAAK;IAenC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAbpC,QAAQ,CAAC,OAAO,EAAS,CAAC,CAAC,SAAS,CAAC,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAM,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,WAAW,CAAsB;IAEzC,SAAS,CAAC,OAAO,EAAQ,MAAM,CAAuB;IACtD,SAAS,CAAC,UAAU,EAAK,MAAM,CAAK;IAGpC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;gBAEhC,MAAM,EAAE,kBAAkB;IAExD;;;OAGG;IACH,mBAAmB,IAAI,eAAe;IAKtC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB7B;;;OAGG;YACW,eAAe;IAiC7B;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAarB"}
1
+ {"version":3,"file":"base-nats-listener.d.ts","sourceRoot":"","sources":["../../src/events/base-nats-listener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAY,KAAK,EAAE,MAAiC,MAAM,CAAC;AAElE,8BAAsB,YAAY,CAAC,CAAC,SAAS,KAAK;IAqBnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAnBpC,QAAQ,CAAC,OAAO,EAAS,CAAC,CAAC,SAAS,CAAC,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAM,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,WAAW,CAAsB;IAEzC,SAAS,CAAC,OAAO,EAAQ,MAAM,CAAuB;IACtD,SAAS,CAAC,UAAU,EAAK,MAAM,CAAK;IAMpC,SAAS,CAAC,YAAY,EAAG,MAAM,EAAE,CAAuB;IAGxD,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;gBAEhC,MAAM,EAAE,kBAAkB;IAExD;;;OAGG;IACH,mBAAmB,IAAI,eAAe;IAKtC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB7B;;;;OAIG;YACW,eAAe;IAqB7B;;;;;;;;OAQG;cACa,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCxD;;;;OAIG;cACa,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB9E;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAKd;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAYrB"}
@@ -2,12 +2,18 @@
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_1 = require("./dlq");
5
6
  class NatsListener {
6
7
  constructor(client) {
7
8
  this.client = client;
8
9
  this.isListening = false;
9
10
  this.ackWait = 30 * 1000 * 1000000; // 30 secondi in nanosecondi;
10
11
  this.maxDeliver = 3;
12
+ // Redelivery backoff (ms) indexed by delivery attempt. Bounded well under
13
+ // `ackWait` so a nak never races the ack-wait expiry. The last entry is
14
+ // reused if attempts ever exceed the table (defensive; cannot happen with
15
+ // maxDeliver = 3).
16
+ this.nakBackoffMs = [1000, 5000, 15000];
11
17
  }
12
18
  /**
13
19
  *
@@ -29,13 +35,14 @@ class NatsListener {
29
35
  this.processMessages();
30
36
  }
31
37
  catch (error) {
32
- console.error(`❌ Failed to setup consumer for '${this.subject}':`, error);
38
+ nx_frame_be_1.APP.logger.error(`❌ Failed to setup consumer for '${this.subject}': %o`, error);
33
39
  throw error;
34
40
  }
35
41
  }
36
42
  /**
37
- *
38
- * @returns
43
+ * Consume loop. Owns the message iteration and lifecycle; the per-message
44
+ * ack/nak/term decision lives in `handleMessage` so it can be unit-tested in
45
+ * isolation and so subclasses never have to ack again (that was E6).
39
46
  */
40
47
  async processMessages() {
41
48
  if (!this.consumer)
@@ -45,27 +52,74 @@ class NatsListener {
45
52
  for await (const msg of messages) {
46
53
  if (!this.isListening)
47
54
  break;
48
- try {
49
- nx_frame_be_1.APP.logger.info(`📥 Received message on '${this.subject}'`);
50
- const parsedData = this.parseMessage(msg);
51
- await this.onMessage(parsedData.data, msg);
52
- msg.ack();
53
- nx_frame_be_1.APP.logger.info(`✅ Message acknowledged on '${this.subject}'`);
54
- }
55
- catch (error) {
56
- console.error(`❌ Error processing message on '${this.subject}':`, error);
57
- msg.nak();
58
- }
55
+ await this.handleMessage(msg);
59
56
  }
60
57
  }
61
58
  catch (error) {
62
59
  if (this.isListening) {
63
- console.error(`❌ Consumer error on '${this.subject}':`, error);
60
+ nx_frame_be_1.APP.logger.error(`❌ Consumer error on '${this.subject}': %o`, error);
64
61
  // Riprova dopo un breve delay
65
62
  setTimeout(() => this.processMessages(), 5000);
66
63
  }
67
64
  }
68
65
  }
66
+ /**
67
+ * Processes a single message with durable failure handling:
68
+ * - success → `ack()`
69
+ * - failure, retriable → `nak(backoff)` (redelivery until maxDeliver)
70
+ * - failure, exhausted → park on DLQ then `term()` (drop from source stream)
71
+ *
72
+ * If the DLQ publish itself fails we deliberately fall back to `nak()` rather
73
+ * than `term()`, so an unreachable DLQ never causes silent message loss.
74
+ */
75
+ async handleMessage(msg) {
76
+ try {
77
+ nx_frame_be_1.APP.logger.info(`📥 Received message on '${this.subject}'`);
78
+ const parsed = this.parseMessage(msg);
79
+ await this.onMessage(parsed.data, msg);
80
+ msg.ack();
81
+ nx_frame_be_1.APP.logger.info(`✅ Message acknowledged on '${this.subject}'`);
82
+ }
83
+ catch (error) {
84
+ const deliveries = this.deliveryCount(msg);
85
+ nx_frame_be_1.APP.logger.error(`❌ Error processing '${this.subject}' (delivery ${deliveries}/${this.maxDeliver}): %o`, error);
86
+ if (deliveries >= this.maxDeliver) {
87
+ const parked = await this.sendToDeadLetter(msg, error);
88
+ if (parked)
89
+ msg.term();
90
+ else
91
+ msg.nak(this.backoffFor(deliveries)); // could not park → retry, never lose
92
+ }
93
+ else {
94
+ msg.nak(this.backoffFor(deliveries));
95
+ }
96
+ }
97
+ }
98
+ /**
99
+ * Parks a failed message on the DLQ stream. Returns `true` on success so the
100
+ * caller can safely `term()` the original; returns `false` if the DLQ could
101
+ * not be reached (caller must then keep the message via `nak`).
102
+ */
103
+ async sendToDeadLetter(msg, error) {
104
+ const envelope = {
105
+ originalSubject: this.subject,
106
+ streamName: this.streamName,
107
+ queueGroupName: this.queueGroupName,
108
+ redeliveryCount: this.deliveryCount(msg),
109
+ error: error instanceof Error ? error.message : String(error),
110
+ data: this.decode(msg),
111
+ timestamp: new Date().toISOString(),
112
+ };
113
+ try {
114
+ await this.client.publish(`${dlq_1.DLQ_SUBJECT_PREFIX}${this.subject}`, JSON.stringify(envelope));
115
+ nx_frame_be_1.APP.logger.warn(`☠️ Message dead-lettered from '${this.subject}' after ${envelope.redeliveryCount} deliveries`);
116
+ return true;
117
+ }
118
+ catch (dlqError) {
119
+ nx_frame_be_1.APP.logger.error(`❌ Failed to dead-letter message from '${this.subject}': %o`, dlqError);
120
+ return false;
121
+ }
122
+ }
69
123
  /**
70
124
  *
71
125
  * @returns
@@ -82,6 +136,28 @@ class NatsListener {
82
136
  nx_frame_be_1.APP.logger.info(`🛑 Stopped listening on '${this.subject}' (consumer may have been already deleted)`);
83
137
  }
84
138
  }
139
+ /**
140
+ * Current delivery attempt (1 on first delivery). Defaults to 1 when the
141
+ * transport does not expose `info` (e.g. tests with a minimal mock).
142
+ */
143
+ deliveryCount(msg) {
144
+ return msg.info?.redeliveryCount ?? 1;
145
+ }
146
+ /**
147
+ * Backoff (ms) for the given attempt, clamped to the last table entry.
148
+ */
149
+ backoffFor(deliveries) {
150
+ const idx = Math.min(Math.max(deliveries - 1, 0), this.nakBackoffMs.length - 1);
151
+ return this.nakBackoffMs[idx];
152
+ }
153
+ /**
154
+ *
155
+ * @param msg
156
+ * @returns
157
+ */
158
+ decode(msg) {
159
+ return new TextDecoder().decode(msg.data);
160
+ }
85
161
  /**
86
162
  *
87
163
  * @param msg
@@ -89,11 +165,10 @@ class NatsListener {
89
165
  */
90
166
  parseMessage(msg) {
91
167
  try {
92
- const decoded = new TextDecoder().decode(msg.data);
93
- return JSON.parse(decoded);
168
+ return JSON.parse(this.decode(msg));
94
169
  }
95
170
  catch (error) {
96
- console.error('❌ Failed to parse message:', error);
171
+ nx_frame_be_1.APP.logger.error(`❌ Failed to parse message on '${this.subject}': %o`, error);
97
172
  throw new Error('Invalid message format');
98
173
  }
99
174
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-nats-listener.js","sourceRoot":"","sources":["../../src/events/base-nats-listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-nats-listener.js","sourceRoot":"","sources":["../../src/events/base-nats-listener.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Dead-letter queue (DLQ) constants shared between the NATS transport layer
3
+ * (base listener that parks poison/failed messages) and the app bootstrap that
4
+ * provisions the DLQ stream. Keeping them in one place prevents the producer
5
+ * (`NatsListener.sendToDeadLetter`) and the stream config from drifting apart.
6
+ */
7
+ export declare const DLQ_STREAM = "DLQ_EVENTS";
8
+ export declare const DLQ_SUBJECT_PREFIX = "dlq.";
9
+ export declare const DLQ_SUBJECT_FILTER = "dlq.>";
10
+ /**
11
+ * Envelope stored on the DLQ stream. Carries enough context to diagnose the
12
+ * failure and, later (step 3.9), to replay the original message.
13
+ */
14
+ export interface DeadLetterEnvelope {
15
+ originalSubject: string;
16
+ streamName: string;
17
+ queueGroupName: string;
18
+ redeliveryCount: number;
19
+ error: string;
20
+ data: string;
21
+ timestamp: string;
22
+ }
23
+ //# sourceMappingURL=dlq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dlq.d.ts","sourceRoot":"","sources":["../../src/events/dlq.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,eAAO,MAAM,UAAU,eAAe,CAAC;AAGvC,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAGzC,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAO,MAAM,CAAC;IACxB,cAAc,EAAG,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAY,MAAM,CAAC;IACxB,IAAI,EAAa,MAAM,CAAC;IACxB,SAAS,EAAQ,MAAM,CAAC;CACzB"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ /**
3
+ * Dead-letter queue (DLQ) constants shared between the NATS transport layer
4
+ * (base listener that parks poison/failed messages) and the app bootstrap that
5
+ * provisions the DLQ stream. Keeping them in one place prevents the producer
6
+ * (`NatsListener.sendToDeadLetter`) and the stream config from drifting apart.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DLQ_SUBJECT_FILTER = exports.DLQ_SUBJECT_PREFIX = exports.DLQ_STREAM = void 0;
10
+ // JetStream stream that durably retains dead-lettered messages.
11
+ exports.DLQ_STREAM = 'DLQ_EVENTS';
12
+ // Subject prefix; a failed message on `<subject>` is parked on `dlq.<subject>`.
13
+ exports.DLQ_SUBJECT_PREFIX = 'dlq.';
14
+ // Wildcard filter that binds every `dlq.*` subject to the DLQ stream.
15
+ exports.DLQ_SUBJECT_FILTER = 'dlq.>';
16
+ //# sourceMappingURL=dlq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dlq.js","sourceRoot":"","sources":["../../src/events/dlq.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,gEAAgE;AACnD,QAAA,UAAU,GAAG,YAAY,CAAC;AAEvC,gFAAgF;AACnE,QAAA,kBAAkB,GAAG,MAAM,CAAC;AAEzC,sEAAsE;AACzD,QAAA,kBAAkB,GAAG,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"event-message.d.ts","sourceRoot":"","sources":["../../src/events/event-message.ts"],"names":[],"mappings":"AAAA,qBAAa,OAAO;IAElB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;gBAEd,IAAI,EAAE,GAAG;IAKtB,OAAO,IAAI,GAAG;IAId,GAAG,IAAI,IAAI;CAIZ"}
1
+ {"version":3,"file":"event-message.d.ts","sourceRoot":"","sources":["../../src/events/event-message.ts"],"names":[],"mappings":"AAAA,qBAAa,OAAO;IAElB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;gBAEd,IAAI,EAAE,GAAG;IAKtB,OAAO,IAAI,GAAG;IAId,GAAG,IAAI,IAAI;CAKZ"}
@@ -9,7 +9,8 @@ class Message {
9
9
  return this.data;
10
10
  }
11
11
  ack() {
12
- console.log('ack!');
12
+ // No-op: the in-memory transport is fire-and-forget (no delivery guarantee).
13
+ // Durable ack/nak/DLQ semantics live in the NATS transport (NatsListener).
13
14
  }
14
15
  }
15
16
  exports.Message = Message;
@@ -1 +1 @@
1
- {"version":3,"file":"event-message.js","sourceRoot":"","sources":["../../src/events/event-message.ts"],"names":[],"mappings":";;;AAAA,MAAa,OAAO;IAIlB,YAAa,IAAS;QAEpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,GAAG;QAED,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;CACF;AAjBD,0BAiBC"}
1
+ {"version":3,"file":"event-message.js","sourceRoot":"","sources":["../../src/events/event-message.ts"],"names":[],"mappings":";;;AAAA,MAAa,OAAO;IAIlB,YAAa,IAAS;QAEpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,GAAG;QAED,6EAA6E;QAC7E,2EAA2E;IAC7E,CAAC;CACF;AAlBD,0BAkBC"}
@@ -2,6 +2,7 @@ export * from './types/enums';
2
2
  export * from './interfaces';
3
3
  export * from './types';
4
4
  export * from './base-event.controller';
5
+ export * from './dlq';
5
6
  export * from './msg-client-manager';
6
7
  export * from './msg-wrapper';
7
8
  export * from './base-listener';
@@ -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,yBAAyB,CAAC;AAGxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,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"}
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,yBAAyB,CAAC;AAExC,cAAc,OAAO,CAAC;AAGtB,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,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"}
@@ -18,6 +18,7 @@ __exportStar(require("./types/enums"), exports);
18
18
  __exportStar(require("./interfaces"), exports);
19
19
  __exportStar(require("./types"), exports);
20
20
  __exportStar(require("./base-event.controller"), exports);
21
+ __exportStar(require("./dlq"), exports);
21
22
  // messages on memory
22
23
  __exportStar(require("./msg-client-manager"), exports);
23
24
  __exportStar(require("./msg-wrapper"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,0CAAwB;AAExB,0DAAwC;AAExC,qBAAqB;AACrB,uDAAqC;AACrC,gDAA8B;AAC9B,kDAAgC;AAChC,mDAAiC;AAEjC,mBAAmB;AACnB,wDAAsC;AACtC,iDAA+B;AAC/B,uDAAqC;AACrC,wDAAsC;AAEtC,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,+CAA6B;AAC7B,0CAAwB;AAExB,0DAAwC;AAExC,wCAAsB;AAEtB,qBAAqB;AACrB,uDAAqC;AACrC,gDAA8B;AAC9B,kDAAgC;AAChC,mDAAiC;AAEjC,mBAAmB;AACnB,wDAAsC;AACtC,iDAA+B;AAC/B,uDAAqC;AACrC,wDAAsC;AAEtC,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"}
@@ -30,8 +30,14 @@ export declare class NatsClientManager extends EventEmitter implements MsgClient
30
30
  *
31
31
  * @param streamName
32
32
  * @param subjects
33
+ * @param opts optional retention overrides (defaults: 24h / 1000 msgs).
34
+ * The DLQ stream uses a longer retention so parked messages
35
+ * survive long enough to be inspected and replayed.
33
36
  */
34
- createStream(streamName: string, subjects: string[]): Promise<void>;
37
+ createStream(streamName: string, subjects: string[], opts?: {
38
+ maxAgeMs?: number;
39
+ maxMsgs?: number;
40
+ }): Promise<void>;
35
41
  /**
36
42
  *
37
43
  * @param {*} key
@@ -1 +1 @@
1
- {"version":3,"file":"nats-client-manager.d.ts","sourceRoot":"","sources":["../../src/events/nats-client-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAmD,IAAI,CAAC;AAC/E,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,cAAc,CAAC;AAEzF,qBAAa,iBAAkB,SAAQ,YAAa,YAAW,kBAAkB;IAWnE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAVxC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAM;IAEhD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IAGrC,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,CAAC,OAAO,GAAE,MAAM,EAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC3E;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;;;OAIG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCzE;;;;OAIG;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;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlF;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7F;;;OAGG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM;IAqB1C;;OAEG;IACG,yBAAyB;CAwBhC"}
1
+ {"version":3,"file":"nats-client-manager.d.ts","sourceRoot":"","sources":["../../src/events/nats-client-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAmD,IAAI,CAAC;AAC/E,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,cAAc,CAAC;AAEzF,qBAAa,iBAAkB,SAAQ,YAAa,YAAW,kBAAkB;IAWnE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAVxC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAM;IAEhD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IAGrC,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,CAAC,OAAO,GAAE,MAAM,EAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC3E;;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;;;;OAIG;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;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlF;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7F;;;OAGG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM;IAqB1C;;OAEG;IACG,yBAAyB;CAwBhC"}
@@ -75,15 +75,20 @@ class NatsClientManager extends ws_1.EventEmitter {
75
75
  *
76
76
  * @param streamName
77
77
  * @param subjects
78
+ * @param opts optional retention overrides (defaults: 24h / 1000 msgs).
79
+ * The DLQ stream uses a longer retention so parked messages
80
+ * survive long enough to be inspected and replayed.
78
81
  */
79
- async createStream(streamName, subjects) {
82
+ async createStream(streamName, subjects, opts) {
83
+ const maxAgeNs = (opts?.maxAgeMs ?? 24 * 60 * 60 * 1000) * 1000000; // ms → nanoseconds
84
+ const maxMsgs = opts?.maxMsgs ?? 1000;
80
85
  try {
81
86
  await this.jsm.streams.add({
82
87
  name: streamName,
83
88
  subjects,
84
89
  retention: nats_2.RetentionPolicy.Limits,
85
- max_age: 24 * 60 * 60 * 1000 * 1000000, // 24 ore in nanosecondi
86
- max_msgs: 1000,
90
+ max_age: maxAgeNs,
91
+ max_msgs: maxMsgs,
87
92
  storage: nats_1.StorageType.File,
88
93
  });
89
94
  nx_frame_be_1.APP.logger.info(`✅ Stream '${streamName}' created/updated`);
@@ -94,8 +99,8 @@ class NatsClientManager extends ws_1.EventEmitter {
94
99
  // UPDATE: ora aggiorni realmente lo stream
95
100
  await this.jsm.streams.update(streamName, {
96
101
  subjects,
97
- max_age: 24 * 60 * 60 * 1000 * 1000000,
98
- max_msgs: 1000
102
+ max_age: maxAgeNs,
103
+ max_msgs: maxMsgs
99
104
  });
100
105
  nx_frame_be_1.APP.logger.info(`🔄 Stream '${streamName}' updated`);
101
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nats-client-manager.js","sourceRoot":"","sources":["../../src/events/nats-client-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nats-client-manager.js","sourceRoot":"","sources":["../../src/events/nats-client-manager.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ exports.ENV_DEFAULTS = {
22
22
  SERVER_PORT: '5000',
23
23
  LOG_DIR: './logs',
24
24
  MORGAN_FORMAT: '',
25
- JWT_ALGORITHM: 'HS512',
25
+ JWT_ALGORITHM: jwt_constants_1.DEFAULT_ACCESS_ALGORITHM,
26
26
  JWT_VALIDITY: jwt_constants_1.DEFAULT_ACCESS_VALIDITY, // 15m — was missing (fell back to TOKEN_VALIDITY_DAYS = 6 days)
27
27
  REFRESH_VALIDITY: jwt_constants_1.DEFAULT_REFRESH_VALIDITY, // 7d
28
28
  MONGO_HOST: 'localhost',
@@ -1 +1 @@
1
- {"version":3,"file":"env.constants.js","sourceRoot":"","sources":["../../src/utils/env.constants.ts"],"names":[],"mappings":";;;AAAA,mDAAoF;AAEpF;;;;;;GAMG;AAEH;;;;;;;GAOG;AACU,QAAA,YAAY,GAA2B;IAClD,QAAQ,EAAa,OAAO;IAC5B,WAAW,EAAU,MAAM;IAC3B,OAAO,EAAc,QAAQ;IAC7B,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,OAAO;IAC5B,YAAY,EAAS,uCAAuB,EAAI,gEAAgE;IAChH,gBAAgB,EAAK,wCAAwB,EAAG,KAAK;IACrD,UAAU,EAAW,WAAW;IAChC,UAAU,EAAW,IAAI,EAAuB,sDAAsD;IACtG,UAAU,EAAW,IAAI;IACzB,SAAS,EAAY,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,QAAQ,EAAa,uBAAuB;IAC5C,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAc,EAAE;IACvB,cAAc,EAAO,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,WAAW;IAChC,gBAAgB,EAAK,cAAc;IACnC,iBAAiB,EAAI,eAAe,EAAY,mCAAmC;IACnF,mBAAmB,EAAE,gBAAgB;IACrC,eAAe,EAAM,MAAM;CAC5B,CAAC;AAEF,mFAAmF;AACtE,QAAA,WAAW,GAAG,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAE9D,uFAAuF;AAC1E,QAAA,QAAQ,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"env.constants.js","sourceRoot":"","sources":["../../src/utils/env.constants.ts"],"names":[],"mappings":";;;AAAA,mDAA8G;AAE9G;;;;;;GAMG;AAEH;;;;;;;GAOG;AACU,QAAA,YAAY,GAA2B;IAClD,QAAQ,EAAa,OAAO;IAC5B,WAAW,EAAU,MAAM;IAC3B,OAAO,EAAc,QAAQ;IAC7B,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,wCAAwB;IAC7C,YAAY,EAAS,uCAAuB,EAAI,gEAAgE;IAChH,gBAAgB,EAAK,wCAAwB,EAAG,KAAK;IACrD,UAAU,EAAW,WAAW;IAChC,UAAU,EAAW,IAAI,EAAuB,sDAAsD;IACtG,UAAU,EAAW,IAAI;IACzB,SAAS,EAAY,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,QAAQ,EAAa,uBAAuB;IAC5C,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,IAAI;IACzB,OAAO,EAAc,EAAE;IACvB,cAAc,EAAO,EAAE;IACvB,aAAa,EAAQ,EAAE;IACvB,aAAa,EAAQ,WAAW;IAChC,gBAAgB,EAAK,cAAc;IACnC,iBAAiB,EAAI,eAAe,EAAY,mCAAmC;IACnF,mBAAmB,EAAE,gBAAgB;IACrC,eAAe,EAAM,MAAM;CAC5B,CAAC;AAEF,mFAAmF;AACtE,QAAA,WAAW,GAAG,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AAE9D,uFAAuF;AAC1E,QAAA,QAAQ,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC"}
@@ -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;AAGhF;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAgEjF;AA6BD;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CA0B9D;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAgBzC;AA8BD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,OAAc,GAAG,QAAQ,GAAG,IAAI,CASvF;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAYpE;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,GAAE,MAAiB,EAAE,KAAK,GAAE,MAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3G;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBvE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAOvF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAMvF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAS9F;AAED;;;;;GAKG;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;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAShE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAM7D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBjD"}
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;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAmEjF;AA6BD;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CA0B9D;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAgBzC;AA8BD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,OAAc,GAAG,QAAQ,GAAG,IAAI,CASvF;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAYpE;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,GAAE,MAAiB,EAAE,KAAK,GAAE,MAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3G;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBvE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAOvF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAMvF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAS9F;AAED;;;;;GAKG;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;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAShE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAM7D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAmBjD"}
@@ -58,6 +58,7 @@ const dotenv_1 = require("dotenv");
58
58
  const nx_frame_be_1 = require("@nextage/nx-frame-be");
59
59
  const constants_1 = require("../constants");
60
60
  const env_constants_1 = require("./env.constants");
61
+ const jwt_1 = require("./jwt");
61
62
  /**
62
63
  * Init main application configuration stored in NxFrame APP Singleton
63
64
  */
@@ -77,8 +78,11 @@ async function initConfig(dir, appData) {
77
78
  port: parseInt(process.env.SERVER_PORT)
78
79
  };
79
80
  // JWT management parameters (defaults resolved in readEnv()).
81
+ // `secret` holds the VERIFICATION key: the PUBLIC key for asymmetric algorithms
82
+ // (ES256 — Step 2.7 / S10) or the shared symmetric secret for HS*. It is what
83
+ // every `express-jwt` middleware and the WS `validateJwt` call verifies against.
80
84
  APP.config.jwt = {
81
- secret: process.env.JWT_SECRET,
85
+ secret: (0, jwt_1.accessVerificationKey)(),
82
86
  algorithm: process.env.JWT_ALGORITHM,
83
87
  duration: process.env.JWT_VALIDITY
84
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"functs.js","sourceRoot":"","sources":["../../src/utils/functs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,gCAgEC;AAgCD,gDA0BC;AAuCD,0BAgBC;AAmCD,gCASC;AAOD,gCAYC;AAMD,wDAgBC;AAMD,gDAgBC;AAQD,oDAOC;AAQD,oDAMC;AAQD,kDASC;AAQD,kDASC;AASD,8BAcC;AAOD,0CASC;AAOD,8BAMC;AAOD,kCAmBC;AAzbD,4CAAqE;AACrE,gDAAuE;AACvE,0DAA4E;AAE5E,mCAAyE;AAGzE,sDAAuF;AAEvF,4CAA+E;AAE/E,mDAAkF;AAElF;;GAEG;AACI,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,OAAiB;IAE7D,OAAO,CAAC,GAAG,CAAC,CAAC;IAEb,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,wDAAa,6CAA6C,GAAC,CAAC;IAElF,MAAM,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC;IAE9B,sDAAsD;IACtD,2EAA2E;IAC3E,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG;QACpB,MAAM,EAAK,OAAO,CAAC,GAAG,CAAC,UAAU,IAAO,uBAAuB;QAC/D,MAAM,EAAK,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE;QAC1C,IAAI,EAAO,OAAO,CAAC,GAAG,CAAC,aAAc;QACrC,OAAO,EAAI,OAAO,CAAC,GAAG,CAAC,gBAAiB;QACxC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAoB;QAC3C,EAAE,EAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;QACnC,IAAI,EAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAY,CAAC;KAC9C,CAAC;IAEF,8DAA8D;IAC9D,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG;QACf,MAAM,EAAK,OAAO,CAAC,GAAG,CAAC,UAAU;QACjC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,aAAqC;QAC5D,QAAQ,EAAG,OAAO,CAAC,GAAG,CAAC,YAAa;KACrC,CAAC;IAEF,sBAAsB;IACtB,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG;QACjB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;QAC/B,GAAG,EAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;KACjC,CAAC;IAEF,eAAe;IACf,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG;QACf,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;KAC/B,CAAC;IAEF,mCAAmC;IACnC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAE9C,uEAAuE;IACvE,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG;QAClB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAoB;KAC3C,CAAC;IAEF,0DAA0D;IAC1D,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG;QACnB,MAAM,EAAI,OAAO,CAAC,GAAG,CAAC,aAAc;QACpC,GAAG,EAAO,OAAO,CAAC,GAAG,CAAC,OAAQ;QAC9B,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE;KAClD,CAAC;IAEF,6DAA6D;IAC7D,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,mBAAmB,EAAE,CAAC;IAEvC,uEAAuE;IACvE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;IAEjC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/B,GAAG,CAAC,SAAS,GAAG,IAAI,2BAAa,EAAE,CAAC;IAEpC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB;IAE1B,MAAM,MAAM,GAAgB;QAC1B,OAAO,EAAK,EAAE;QACd,QAAQ,EAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAM,EAAE;QAC7C,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE;KAC9C,CAAA;IAED,6EAA6E;IAC7E,gFAAgF;IAChF,iFAAiF;IACjF,yEAAyE;IACzE,IAAI,CAAC;QAEH,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,CAAC;QACL,MAAM,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAiB,CAAC,CAAA;IAClD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB;IAEtC,MAAM,MAAM,GAAe;QACzB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,SAAS;QACjD,MAAM,EAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAK,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,OAAO;QACxE,IAAI,EAAM,OAAO,CAAC,GAAG,CAAC,UAAU,IAAQ,WAAW;QACnD,IAAI,EAAM,OAAO,CAAC,GAAG,CAAC,UAAU;QAChC,IAAI,EAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,EAAC;QAC1D,OAAO,EAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC;QACpD,GAAG,EAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa;QACrC,OAAO,EAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB;QACxC,OAAO,EAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI;QAChD,OAAO,EAAG;YACR,EAAE,EAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB;YACnC,EAAE,EAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB;YACjC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;SACpC;KACF,CAAC;IAEF,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;QAAM,MAAM,CAAC,IAAI,GAAO,YAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACzG,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;QAAM,MAAM,CAAC,IAAI,GAAO,YAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACzG,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QAAI,MAAM,CAAC,MAAM,GAAK,YAAE,CAAC,YAAY,CAAC,MAAM,CAAC,MAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3G,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAAE,MAAM,CAAC,IAAK,CAAC,EAAE,GAAG,YAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5G,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAAE,MAAM,CAAC,IAAK,CAAC,EAAE,GAAG,YAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAE5G,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW;IAElB,KAAK,MAAM,GAAG,IAAI,2BAAW,EAAE,CAAC;QAE9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,KAAK,IAAI,CAAC,mBAAS,CAAC,KAAK,CAAC,KAAK,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,KAAK,KAAK,wBAAwB,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,wBAAQ,EAAE,CAAC;QAE3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;QAEvC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAAC,SAAS;QAAC,CAAC;QAElD,IAAI,CAAC;YAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAC1B,MAAM,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,+BAA+B,KAAK,GAAG,CAAC,CAAC;QAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,OAAO,CAAC,GAAW;IAEjC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;IAE7D,IAAA,qBAAY,EAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,EAAE,CAAC,CAAC;IAEzG,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,4BAAY,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;IAE/C,uEAAuE;IACvE,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC;IACvF,OAAO,CAAC,GAAG,CAAC,WAAW,GAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAK,GAAG,GAAG,cAAc,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAO,GAAG,CAAC;IAE/B,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY;IAEnB,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAE1C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAE1C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,IAAI,OAAO,CAAC,MAAM;YAChB,MAAM,IAAI,KAAK,CAAC,8CAA8C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtF,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,sCAAsC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,MAAM,GAAO,OAAO,CAAC,GAAG,CAAC,MAAM,IAAQ,KAAK,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,IAAkB,EAAE,UAAmB,IAAI;IAEpE,MAAM,GAAG,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAExC,IAAI,CAAC,GAAG;QACN,OAAO,IAAI,CAAC;IAEd,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE;IAEhD,IAAI,CAAC,IAAI;QACP,OAAO,KAAK,CAAC;IAEf,IAAI,CAAC;QACH,MAAM,YAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,sBAAsB,CAAC,MAAc,QAAQ,EAAE,QAAgB,OAAO;IAE1F,sBAAsB;IACtB,MAAM,SAAS,GAAa,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE3D,MAAM,EAAE,GAAG,EAAE,GAAG,wDAAa,6CAA6C,GAAC,CAAC;IAE5E,gCAAgC;IAChC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,yBAAa,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uCAAC,CAAC;YACxD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,GAAW,EAAE,KAAa;IAE3D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAiB,YAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAEzB,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEtC,IAAI,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;YACrC,SAAS,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,gCAAgC;aACrF,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClF,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;IAC1C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,IAAoB,EAAE,IAAY;IAErE,IAAI,CAAC,IAAI;QAAa,OAAO,IAAI,CAAC;IAClC,IAAI,IAAI,CAAC,IAAI;QAAS,IAAI,CAAC,IAAI,GAAU,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAS,IAAI,CAAC,CAAC;IACrF,IAAI,IAAI,CAAC,WAAW;QAAE,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAErF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,IAAoB,EAAE,IAAY;IAErE,IAAI,IAAI,CAAC,IAAI;QAAS,IAAI,CAAC,IAAI,GAAU,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAS,IAAI,CAAC,CAAC;IACrF,IAAI,IAAI,CAAC,WAAW;QAAE,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAErF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,KAAoC,EAAE,IAAY;IAEpF,IAAI,CAAC,KAAK;QACR,OAAO,EAAE,CAAC;IAEZ,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,OAAO,KAAK,CAAC;IAEf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,KAAoC,EAAE,IAAY;IAEpF,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,OAAO,KAAK,CAAC;IAEf,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,GAAG,CAAC,IAAI,CAAC,GAAyB,KAAe,CAAC;IAElD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,IAAc,EAAE,IAAe,EAAE,oBAAoB,GAAG,KAAK;IAErF,MAAM,OAAO,GAAI,IAAI,EAAE,OAAO,CAAC,wBAAY,CAAC,CAAC;IAE7C,2EAA2E;IAC3E,IAAI,OAAO,IAAI,CAAC,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,CAAC;QACrD,OAAO;IAET,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM;QAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE1D,2DAA2D;IAC3D,kCAAkC;IAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,IAAS,EAAE,IAAe;IAExD,IAAI,IAAI,EAAE,OAAO,CAAC,wBAAY,CAAC;QAC7B,OAAO;IAET,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM;QAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,IAAe;IAEvC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM;QAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAE1D,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,KAAa;IAEvC,IAAI,CAAC,mBAAS,CAAC,KAAK,CAAC,KAAK,EAAE;QAC1B,SAAS,EAAqB,CAAC,MAAM,EAAE,OAAO,CAAC;QAC/C,gBAAgB,EAAc,IAAI;QAClC,sBAAsB,EAAQ,IAAI;QAClC,iBAAiB,EAAa,KAAK;QACnC,kBAAkB,EAAY,KAAK;QACnC,4BAA4B,EAAE,KAAK;KACpC,CAAC,EAAE,CAAC;QACH,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW;QACpE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAEnC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"functs.js","sourceRoot":"","sources":["../../src/utils/functs.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,7 @@ export * from './express';
2
2
  export * from './functs';
3
3
  export * from './jwt';
4
4
  export * from './jwt.constants';
5
+ export * from './jwt.interfaces';
5
6
  export * from './start-service';
7
+ export * from './start-service.constants';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC"}
@@ -18,5 +18,7 @@ __exportStar(require("./express"), exports);
18
18
  __exportStar(require("./functs"), exports);
19
19
  __exportStar(require("./jwt"), exports);
20
20
  __exportStar(require("./jwt.constants"), exports);
21
+ __exportStar(require("./jwt.interfaces"), exports);
21
22
  __exportStar(require("./start-service"), exports);
23
+ __exportStar(require("./start-service.constants"), exports);
22
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,2CAAyB;AACzB,wCAAsB;AACtB,kDAAgC;AAChC,kDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,2CAAyB;AACzB,wCAAsB;AACtB,kDAAgC;AAChC,mDAAiC;AACjC,kDAAgC;AAChC,4DAA0C"}
@@ -6,7 +6,40 @@
6
6
  */
7
7
  /** Marker claim distinguishing a refresh token from an access token. */
8
8
  export declare const REFRESH_TOKEN_TYPE = "refresh";
9
+ /**
10
+ * Known JWT signing algorithms used by the platform.
11
+ *
12
+ * Declared as a `const` object (not a TS `enum`) so each value is a string
13
+ * literal directly assignable to `jsonwebtoken`'s `Algorithm` union — no casts,
14
+ * with autocomplete. `HS*` are symmetric (shared secret); `ES*`/`RS*`/`PS*` and
15
+ * `EdDSA` are asymmetric (private key signs, public key verifies).
16
+ */
17
+ export declare const JWT_ALG: {
18
+ readonly HS256: "HS256";
19
+ readonly HS512: "HS512";
20
+ readonly ES256: "ES256";
21
+ readonly ES384: "ES384";
22
+ readonly RS256: "RS256";
23
+ readonly PS256: "PS256";
24
+ readonly EdDSA: "EdDSA";
25
+ };
9
26
  /** Default validity used when the matching env var is not set. */
10
27
  export declare const DEFAULT_ACCESS_VALIDITY = "15m";
11
28
  export declare const DEFAULT_REFRESH_VALIDITY = "7d";
29
+ /**
30
+ * Default ACCESS token algorithm when `JWT_ALGORITHM` is unset. Kept symmetric
31
+ * (HS512) for backward compatibility; production uses ES256 (asymmetric) via env
32
+ * so that only auth-srv (holding the private key) can sign — see Step 2.7 / S10.
33
+ */
34
+ export declare const DEFAULT_ACCESS_ALGORITHM: "HS512";
35
+ /**
36
+ * Default signing algorithm for the REFRESH token.
37
+ *
38
+ * The refresh token is symmetric (HMAC) and NEVER leaves auth-srv, so it stays
39
+ * on HS512 regardless of the ACCESS token algorithm. This is DECOUPLED from
40
+ * `JWT_ALGORITHM` on purpose: when the access token moves to an asymmetric
41
+ * algorithm (Step 2.7, ES256), signing the refresh with an EC key would fail —
42
+ * the refresh keeps using a symmetric secret. Override with `REFRESH_ALGORITHM`.
43
+ */
44
+ export declare const DEFAULT_REFRESH_ALGORITHM: "HS512";
12
45
  //# sourceMappingURL=jwt.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.constants.d.ts","sourceRoot":"","sources":["../../src/utils/jwt.constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,YAAkB,CAAC;AAElD,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAC9C,eAAO,MAAM,wBAAwB,OAAO,CAAC"}
1
+ {"version":3,"file":"jwt.constants.d.ts","sourceRoot":"","sources":["../../src/utils/jwt.constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,YAAmB,CAAC;AAEnD;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO;;;;;;;;CAQV,CAAC;AAEX,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,QAAU,CAAC;AAC/C,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,SAAiB,CAAC;AAEvD;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,SAAgB,CAAC"}
@@ -6,10 +6,43 @@
6
6
  * (type marker, default validities) can be reviewed and changed in one place.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.DEFAULT_REFRESH_VALIDITY = exports.DEFAULT_ACCESS_VALIDITY = exports.REFRESH_TOKEN_TYPE = void 0;
9
+ exports.DEFAULT_REFRESH_ALGORITHM = exports.DEFAULT_ACCESS_ALGORITHM = exports.DEFAULT_REFRESH_VALIDITY = exports.DEFAULT_ACCESS_VALIDITY = exports.JWT_ALG = exports.REFRESH_TOKEN_TYPE = void 0;
10
10
  /** Marker claim distinguishing a refresh token from an access token. */
11
11
  exports.REFRESH_TOKEN_TYPE = 'refresh';
12
+ /**
13
+ * Known JWT signing algorithms used by the platform.
14
+ *
15
+ * Declared as a `const` object (not a TS `enum`) so each value is a string
16
+ * literal directly assignable to `jsonwebtoken`'s `Algorithm` union — no casts,
17
+ * with autocomplete. `HS*` are symmetric (shared secret); `ES*`/`RS*`/`PS*` and
18
+ * `EdDSA` are asymmetric (private key signs, public key verifies).
19
+ */
20
+ exports.JWT_ALG = {
21
+ HS256: 'HS256',
22
+ HS512: 'HS512',
23
+ ES256: 'ES256',
24
+ ES384: 'ES384',
25
+ RS256: 'RS256',
26
+ PS256: 'PS256',
27
+ EdDSA: 'EdDSA'
28
+ };
12
29
  /** Default validity used when the matching env var is not set. */
13
30
  exports.DEFAULT_ACCESS_VALIDITY = '15m';
14
31
  exports.DEFAULT_REFRESH_VALIDITY = '7d';
32
+ /**
33
+ * Default ACCESS token algorithm when `JWT_ALGORITHM` is unset. Kept symmetric
34
+ * (HS512) for backward compatibility; production uses ES256 (asymmetric) via env
35
+ * so that only auth-srv (holding the private key) can sign — see Step 2.7 / S10.
36
+ */
37
+ exports.DEFAULT_ACCESS_ALGORITHM = exports.JWT_ALG.HS512;
38
+ /**
39
+ * Default signing algorithm for the REFRESH token.
40
+ *
41
+ * The refresh token is symmetric (HMAC) and NEVER leaves auth-srv, so it stays
42
+ * on HS512 regardless of the ACCESS token algorithm. This is DECOUPLED from
43
+ * `JWT_ALGORITHM` on purpose: when the access token moves to an asymmetric
44
+ * algorithm (Step 2.7, ES256), signing the refresh with an EC key would fail —
45
+ * the refresh keeps using a symmetric secret. Override with `REFRESH_ALGORITHM`.
46
+ */
47
+ exports.DEFAULT_REFRESH_ALGORITHM = exports.JWT_ALG.HS512;
15
48
  //# sourceMappingURL=jwt.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.constants.js","sourceRoot":"","sources":["../../src/utils/jwt.constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,wEAAwE;AAC3D,QAAA,kBAAkB,GAAS,SAAS,CAAC;AAElD,kEAAkE;AACrD,QAAA,uBAAuB,GAAI,KAAK,CAAC;AACjC,QAAA,wBAAwB,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"jwt.constants.js","sourceRoot":"","sources":["../../src/utils/jwt.constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,wEAAwE;AAC3D,QAAA,kBAAkB,GAAU,SAAS,CAAC;AAEnD;;;;;;;GAOG;AACU,QAAA,OAAO,GAAG;IACrB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACN,CAAC;AAEX,kEAAkE;AACrD,QAAA,uBAAuB,GAAK,KAAK,CAAC;AAClC,QAAA,wBAAwB,GAAI,IAAI,CAAC;AAE9C;;;;GAIG;AACU,QAAA,wBAAwB,GAAI,eAAO,CAAC,KAAK,CAAC;AAEvD;;;;;;;;GAQG;AACU,QAAA,yBAAyB,GAAG,eAAO,CAAC,KAAK,CAAC"}
@@ -1,15 +1,5 @@
1
- import { JwtPayload, SignOptions } from 'jsonwebtoken';
2
- import { REFRESH_TOKEN_TYPE } from './jwt.constants';
3
- export interface RefreshTokenPayload extends JwtPayload {
4
- /** Subject — the user id. */
5
- sub: string;
6
- /** JWT id — the `accesses` record id (session id). Mirrors the access token jti. */
7
- jti: string;
8
- /** Token type marker. */
9
- typ: typeof REFRESH_TOKEN_TYPE;
10
- /** Per-issuance nonce — guarantees each rotation yields a distinct token/hash. */
11
- rti: string;
12
- }
1
+ import { SignOptions } from 'jsonwebtoken';
2
+ import { RefreshTokenPayload } from './jwt.interfaces';
13
3
  /**
14
4
  * Sign a long-lived REFRESH token for a session.
15
5
  *
@@ -40,4 +30,21 @@ export declare function tokenExpiry(token: string): Date | undefined;
40
30
  * side-channels when validating a presented refresh token.
41
31
  */
42
32
  export declare function verifyTokenHash(token: string, hash?: string | null): boolean;
33
+ /**
34
+ * Resolve the ACCESS token SIGNING key (auth-srv only).
35
+ *
36
+ * Asymmetric algorithms sign with the PRIVATE key (`JWT_PRIVATE_KEY`); symmetric
37
+ * ones use the shared `JWT_SECRET`. Passed explicitly to `generateJwt()` so the
38
+ * signer never depends on `JWT_SECRET` being (mis)used as the private key.
39
+ */
40
+ export declare function accessSigningKey(): string | undefined;
41
+ /**
42
+ * Resolve the ACCESS token VERIFICATION key (every service).
43
+ *
44
+ * Asymmetric algorithms verify with the PUBLIC key (`JWT_PUBLIC_KEY`, which
45
+ * cannot forge tokens); symmetric ones use the shared `JWT_SECRET`. This value
46
+ * is what `initConfig` stores in `APP.config.jwt.secret`, consumed by every
47
+ * `express-jwt` middleware and the WS `validateJwt` call.
48
+ */
49
+ export declare function accessVerificationKey(): string | undefined;
43
50
  //# sourceMappingURL=jwt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/utils/jwt.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAA4B,MAAM,iBAAiB,CAAC;AAE/E,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,oFAAoF;IACpF,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,GAAG,EAAE,OAAO,kBAAkB,CAAC;IAC/B,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;CACb;AAyBD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB1G;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAQtF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAK3D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAS5E"}
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/utils/jwt.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAc,WAAW,EAAE,MAAM,cAAc,CAAC;AAGvD,OAAO,EAAE,mBAAmB,EAAE,MAAU,kBAAkB,CAAC;AA+B3D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAgB1G;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAQtF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAK3D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAS5E;AA2BD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAKrD;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,SAAS,CAK1D"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * JWT token types & interfaces.
3
+ *
4
+ * Kept separate from the token helper logic in `jwt.ts` and from the values in
5
+ * `jwt.constants.ts` (house-style: types live in a dedicated `*.interfaces.ts`,
6
+ * never mixed with the logic that consumes them).
7
+ */
8
+ import { JwtPayload } from 'jsonwebtoken';
9
+ import { JWT_ALG, REFRESH_TOKEN_TYPE } from './jwt.constants';
10
+ /** Union of the known JWT algorithms, derived from the `JWT_ALG` const object. */
11
+ export type JwtAlg = (typeof JWT_ALG)[keyof typeof JWT_ALG];
12
+ /** Decoded payload of a REFRESH token (ADR-0002). */
13
+ export interface RefreshTokenPayload extends JwtPayload {
14
+ /** Subject — the user id. */
15
+ sub: string;
16
+ /** JWT id — the `accesses` record id (session id). Mirrors the access token jti. */
17
+ jti: string;
18
+ /** Token type marker. */
19
+ typ: typeof REFRESH_TOKEN_TYPE;
20
+ /** Per-issuance nonce — guarantees each rotation yields a distinct token/hash. */
21
+ rti: string;
22
+ }
23
+ //# sourceMappingURL=jwt.interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.interfaces.d.ts","sourceRoot":"","sources":["../../src/utils/jwt.interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAO,cAAc,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE9D,kFAAkF;AAClF,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAE5D,qDAAqD;AACrD,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,oFAAoF;IACpF,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,GAAG,EAAE,OAAO,kBAAkB,CAAC;IAC/B,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;CACb"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * JWT token types & interfaces.
4
+ *
5
+ * Kept separate from the token helper logic in `jwt.ts` and from the values in
6
+ * `jwt.constants.ts` (house-style: types live in a dedicated `*.interfaces.ts`,
7
+ * never mixed with the logic that consumes them).
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=jwt.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.interfaces.js","sourceRoot":"","sources":["../../src/utils/jwt.interfaces.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
@@ -10,10 +10,11 @@
10
10
  // │ • hashToken() → sha256 hex, stored on the `accesses` record so the │
11
11
  // │ refresh can be rotated / revoked server-side. │
12
12
  // │ │
13
- // │ The ACCESS token is still signed by nx-frame-be `generateJwt()` (it already │
14
- // │ honours JWT_VALIDITY). See ADR-0002: the target architecture (Step 2.7) is │
15
- // │ asymmetric signing (EdDSA/Ed25519 via `jose`, auth-srv sole signer). These │
16
- // │ helpers keep HS* now with a clean, functional surface to swap later. │
13
+ // │ The ACCESS token is signed by nx-frame-be `generateJwt()`. As of Step 2.7 it │
14
+ // │ uses ASYMMETRIC ES256 (auth-srv signs with the private key, every service │
15
+ // │ verifies with the public key). The REFRESH token below stays SYMMETRIC │
16
+ // │ (HS512): it never leaves auth-srv, so its algorithm is deliberately decoupled │
17
+ // │ from `JWT_ALGORITHM` (see DEFAULT_REFRESH_ALGORITHM in jwt.constants). │
17
18
  // └────────────────────────────────────────────────────────────────────────────┘
18
19
  var __importDefault = (this && this.__importDefault) || function (mod) {
19
20
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -24,6 +25,8 @@ exports.verifyRefreshToken = verifyRefreshToken;
24
25
  exports.hashToken = hashToken;
25
26
  exports.tokenExpiry = tokenExpiry;
26
27
  exports.verifyTokenHash = verifyTokenHash;
28
+ exports.accessSigningKey = accessSigningKey;
29
+ exports.accessVerificationKey = accessVerificationKey;
27
30
  const node_crypto_1 = __importDefault(require("node:crypto"));
28
31
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
29
32
  const jwt_constants_1 = require("./jwt.constants");
@@ -40,9 +43,15 @@ function refreshSecret(secret) {
40
43
  throw new Error('Missing refresh token secret (REFRESH_SECRET / JWT_SECRET)');
41
44
  return resolved;
42
45
  }
43
- /** Resolve the signing algorithm (defaults to HS512, matching the access token). */
44
- function signAlgorithm() {
45
- return (process.env.JWT_ALGORITHM ?? 'HS512');
46
+ /**
47
+ * Resolve the REFRESH token algorithm. Symmetric (HS512) and DECOUPLED from the
48
+ * ACCESS token's `JWT_ALGORITHM`: the refresh never leaves auth-srv, so it keeps
49
+ * a symmetric secret even after the access token moves to ES256 (Step 2.7).
50
+ * Override with `REFRESH_ALGORITHM` (must stay symmetric — the refresh secret is
51
+ * a string, not a key pair).
52
+ */
53
+ function refreshAlgorithm() {
54
+ return (process.env.REFRESH_ALGORITHM ?? jwt_constants_1.DEFAULT_REFRESH_ALGORITHM);
46
55
  }
47
56
  /**
48
57
  * Sign a long-lived REFRESH token for a session.
@@ -53,7 +62,7 @@ function signAlgorithm() {
53
62
  */
54
63
  function signRefreshToken(sub, jti, opts = {}, secret) {
55
64
  const signOpts = {
56
- algorithm: signAlgorithm(),
65
+ algorithm: refreshAlgorithm(),
57
66
  expiresIn: (process.env.REFRESH_VALIDITY ?? jwt_constants_1.DEFAULT_REFRESH_VALIDITY),
58
67
  ...opts
59
68
  };
@@ -70,7 +79,7 @@ function signRefreshToken(sub, jti, opts = {}, secret) {
70
79
  * TokenExpiredError) when the token is malformed, expired or not a refresh token.
71
80
  */
72
81
  function verifyRefreshToken(token, secret) {
73
- const payload = jsonwebtoken_1.default.verify(token, refreshSecret(secret), { algorithms: [signAlgorithm()] });
82
+ const payload = jsonwebtoken_1.default.verify(token, refreshSecret(secret), { algorithms: [refreshAlgorithm()] });
74
83
  if (payload?.typ !== jwt_constants_1.REFRESH_TOKEN_TYPE)
75
84
  throw new Error('Not a refresh token');
76
85
  return payload;
@@ -103,4 +112,46 @@ function verifyTokenHash(token, hash) {
103
112
  const b = Buffer.from(hash);
104
113
  return a.length === b.length && node_crypto_1.default.timingSafeEqual(a, b);
105
114
  }
115
+ // ── ACCESS token key resolution (asymmetric ES256 — Step 2.7 / S10) ──────────────
116
+ /**
117
+ * True when the ACCESS token algorithm uses an asymmetric key pair (private key
118
+ * to sign, public key to verify): the `ES`, `RS`, `PS` families and `EdDSA`.
119
+ * Everything else is treated as a symmetric HMAC secret.
120
+ */
121
+ function isAsymmetricAlgorithm(alg) {
122
+ return /^(ES|RS|PS)\d{3}$/.test(alg) || alg === jwt_constants_1.JWT_ALG.EdDSA;
123
+ }
124
+ /**
125
+ * Decode a PEM key provided via env. Accepts either a base64-encoded PEM (the
126
+ * recommended single-line form for `app.env`) or a raw PEM whose newlines are
127
+ * escaped as `\n`. Returns `undefined` when the variable is unset.
128
+ */
129
+ function readPemEnv(value) {
130
+ if (!value)
131
+ return undefined;
132
+ return value.includes('BEGIN') ? value.replace(/\\n/g, '\n') : Buffer.from(value, 'base64').toString('utf8');
133
+ }
134
+ /**
135
+ * Resolve the ACCESS token SIGNING key (auth-srv only).
136
+ *
137
+ * Asymmetric algorithms sign with the PRIVATE key (`JWT_PRIVATE_KEY`); symmetric
138
+ * ones use the shared `JWT_SECRET`. Passed explicitly to `generateJwt()` so the
139
+ * signer never depends on `JWT_SECRET` being (mis)used as the private key.
140
+ */
141
+ function accessSigningKey() {
142
+ const alg = process.env.JWT_ALGORITHM ?? jwt_constants_1.DEFAULT_ACCESS_ALGORITHM;
143
+ return isAsymmetricAlgorithm(alg) ? readPemEnv(process.env.JWT_PRIVATE_KEY) : process.env.JWT_SECRET;
144
+ }
145
+ /**
146
+ * Resolve the ACCESS token VERIFICATION key (every service).
147
+ *
148
+ * Asymmetric algorithms verify with the PUBLIC key (`JWT_PUBLIC_KEY`, which
149
+ * cannot forge tokens); symmetric ones use the shared `JWT_SECRET`. This value
150
+ * is what `initConfig` stores in `APP.config.jwt.secret`, consumed by every
151
+ * `express-jwt` middleware and the WS `validateJwt` call.
152
+ */
153
+ function accessVerificationKey() {
154
+ const alg = process.env.JWT_ALGORITHM ?? jwt_constants_1.DEFAULT_ACCESS_ALGORITHM;
155
+ return isAsymmetricAlgorithm(alg) ? readPemEnv(process.env.JWT_PUBLIC_KEY) : process.env.JWT_SECRET;
156
+ }
106
157
  //# sourceMappingURL=jwt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/utils/jwt.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,mFAAmF;AACnF,mFAAmF;AACnF,mFAAmF;AACnF,mFAAmF;AACnF,mFAAmF;AACnF,mFAAmF;AACnF,mFAAmF;AACnF,oFAAoF;AACpF,oFAAoF;AACpF,mFAAmF;AACnF,mFAAmF;AACnF,oFAAoF;AACpF,mFAAmF;AACnF,mFAAmF;AACnF,iFAAiF;;;;;AAiDjF,4CAgBC;AAMD,gDAQC;AAOD,8BAGC;AAOD,kCAKC;AAMD,0CASC;AAlHD,8DAAsD;AACtD,gEAAuD;AAGvD,mDAA+E;AAa/E;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,MAAe;IAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEhF,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAEhF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,oFAAoF;AACpF,SAAS,aAAa;IAEpB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAc,CAAC;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,GAAW,EAAE,GAAW,EAAE,OAAoB,EAAE,EAAE,MAAe;IAEhG,MAAM,QAAQ,GAAgB;QAC5B,SAAS,EAAE,aAAa,EAAE;QAC1B,SAAS,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,wCAAwB,CAA6B;QACjG,GAAG,IAAI;KACR,CAAC;IAEF,MAAM,OAAO,GAA6D;QACxE,GAAG;QACH,GAAG;QACH,GAAG,EAAE,kCAAkB;QACvB,GAAG,EAAE,qBAAM,CAAC,UAAU,EAAE;KACzB,CAAC;IAEF,OAAO,sBAAG,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,KAAa,EAAE,MAAe;IAE/D,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,CAAwB,CAAC;IAEnH,IAAI,OAAO,EAAE,GAAG,KAAK,kCAAkB;QACrC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEzC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,KAAa;IAErC,OAAO,qBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,KAAa;IAEvC,MAAM,OAAO,GAAG,sBAAG,CAAC,MAAM,CAAC,KAAK,CAAsB,CAAC;IAEvD,OAAO,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,KAAa,EAAE,IAAoB;IAEjE,IAAI,CAAC,IAAI;QACP,OAAO,KAAK,CAAC;IAEf,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5B,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,qBAAM,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/utils/jwt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Constants for the service bootstrap orchestrator (see `start-service.ts`).
3
+ *
4
+ * Kept separate from the orchestration logic so bootstrap tunables can be
5
+ * reviewed and changed in one place. Reusable across services / scaffolds.
6
+ */
7
+ /**
8
+ * Env var that overrides the graceful-shutdown timeout (in milliseconds).
9
+ *
10
+ * When set to a positive integer, `startService` applies it to the shared
11
+ * `ShutdownManager` (whose framework default is {@link DEFAULT_SHUTDOWN_TIMEOUT}).
12
+ * Leave it unset to keep the default — no service code change required.
13
+ */
14
+ export declare const SHUTDOWN_TIMEOUT_ENV = "SHUTDOWN_TIMEOUT";
15
+ /**
16
+ * Framework default graceful-shutdown timeout (ms). Mirrors the value hardcoded
17
+ * in `@nextage/nx-frame-be`'s `ShutdownManager`; used only as a log reference.
18
+ */
19
+ export declare const DEFAULT_SHUTDOWN_TIMEOUT = 3000;
20
+ //# sourceMappingURL=start-service.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-service.constants.d.ts","sourceRoot":"","sources":["../../src/utils/start-service.constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Constants for the service bootstrap orchestrator (see `start-service.ts`).
4
+ *
5
+ * Kept separate from the orchestration logic so bootstrap tunables can be
6
+ * reviewed and changed in one place. Reusable across services / scaffolds.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DEFAULT_SHUTDOWN_TIMEOUT = exports.SHUTDOWN_TIMEOUT_ENV = void 0;
10
+ /**
11
+ * Env var that overrides the graceful-shutdown timeout (in milliseconds).
12
+ *
13
+ * When set to a positive integer, `startService` applies it to the shared
14
+ * `ShutdownManager` (whose framework default is {@link DEFAULT_SHUTDOWN_TIMEOUT}).
15
+ * Leave it unset to keep the default — no service code change required.
16
+ */
17
+ exports.SHUTDOWN_TIMEOUT_ENV = 'SHUTDOWN_TIMEOUT';
18
+ /**
19
+ * Framework default graceful-shutdown timeout (ms). Mirrors the value hardcoded
20
+ * in `@nextage/nx-frame-be`'s `ShutdownManager`; used only as a log reference.
21
+ */
22
+ exports.DEFAULT_SHUTDOWN_TIMEOUT = 3000;
23
+ //# sourceMappingURL=start-service.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-service.constants.js","sourceRoot":"","sources":["../../src/utils/start-service.constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;;;;;GAMG;AACU,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAEvD;;;GAGG;AACU,QAAA,wBAAwB,GAAG,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"start-service.d.ts","sourceRoot":"","sources":["../../src/utils/start-service.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,EAAE,MAAyB,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAa,MAAa,sBAAsB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAG,MAAM,CAAC;IACf,GAAG,EAAK,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,GAAG,EAAS,OAAO,CAAC;IACpB,2EAA2E;IAC3E,MAAM,EAAM,cAAc,EAAE,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,EAAG,eAAe,EAAE,CAAC;IAC9B,qEAAqE;IACrE,QAAQ,CAAC,EAAG,OAAO,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAI,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CACrC;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM,CAsBjG"}
1
+ {"version":3,"file":"start-service.d.ts","sourceRoot":"","sources":["../../src/utils/start-service.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,EAAE,MAAoB,SAAS,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAa,MAAQ,sBAAsB,CAAC;AAI5D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAG,MAAM,CAAC;IACf,GAAG,EAAK,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,GAAG,EAAS,OAAO,CAAC;IACpB,2EAA2E;IAC3E,MAAM,EAAM,cAAc,EAAE,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,EAAG,eAAe,EAAE,CAAC;IAC9B,qEAAqE;IACrE,QAAQ,CAAC,EAAG,OAAO,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAI,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC;CACrC;AAED;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM,CAsBjG"}
@@ -18,6 +18,7 @@ exports.startService = startService;
18
18
  exports.createHealthRouter = createHealthRouter;
19
19
  const express_1 = require("express");
20
20
  const nx_frame_be_1 = require("@nextage/nx-frame-be");
21
+ const start_service_constants_1 = require("./start-service.constants");
21
22
  /**
22
23
  * Orchestrates a service startup as an ordered, fail-fast phase sequence.
23
24
  *
@@ -91,7 +92,10 @@ function createHealthRouter(app, extra) {
91
92
  * resources are torn down opposite to how they were created).
92
93
  */
93
94
  function registerShutdown(app, handlers, logger) {
94
- if (!handlers?.length || !app.shutdownMng)
95
+ if (!app.shutdownMng)
96
+ return;
97
+ applyShutdownTimeout(app, logger);
98
+ if (!handlers?.length)
95
99
  return;
96
100
  for (const handler of [...handlers].reverse()) {
97
101
  app.shutdownMng.addShutdownHandler(async () => {
@@ -104,6 +108,23 @@ function registerShutdown(app, handlers, logger) {
104
108
  });
105
109
  }
106
110
  }
111
+ /**
112
+ * Applies the optional `SHUTDOWN_TIMEOUT` env override to the shared
113
+ * ShutdownManager. Ignored (framework default kept) when the var is unset,
114
+ * non-numeric or not a positive integer.
115
+ */
116
+ function applyShutdownTimeout(app, logger) {
117
+ const raw = process.env[start_service_constants_1.SHUTDOWN_TIMEOUT_ENV];
118
+ if (raw === undefined || raw === '')
119
+ return;
120
+ const ms = Number(raw);
121
+ if (!Number.isInteger(ms) || ms <= 0) {
122
+ logger.warn(`⚠ [${app.appName}] ignoring invalid ${start_service_constants_1.SHUTDOWN_TIMEOUT_ENV}="${raw}" (expected a positive integer)`);
123
+ return;
124
+ }
125
+ app.shutdownMng.shutdownTimeout = ms;
126
+ logger.info(`⚙ [${app.appName}] shutdown timeout set to ${ms}ms (via ${start_service_constants_1.SHUTDOWN_TIMEOUT_ENV})`);
127
+ }
107
128
  /**
108
129
  * Runs shutdown handlers inline (used on fail-fast, before the manager exists).
109
130
  */
@@ -1 +1 @@
1
- {"version":3,"file":"start-service.js","sourceRoot":"","sources":["../../src/utils/start-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start-service.js","sourceRoot":"","sources":["../../src/utils/start-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nextage/era-lib",
3
- "version": "1.0.170",
3
+ "version": "1.0.172",
4
4
  "main": "./build/index.js",
5
5
  "types": "./build/index.d.ts",
6
6
  "files": [