@nextage/era-lib 1.0.164 → 1.0.166

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,83 @@
1
+ # @nextage/era-lib
2
+
3
+ Libreria backend condivisa del progetto **ERA**. Fornisce eventi, modelli, servizi,
4
+ utility e l'orchestratore di bootstrap dei servizi, costruita sopra
5
+ [`@nextage/nx-frame-be`](https://www.npmjs.com/package/@nextage/nx-frame-be).
6
+
7
+ È consumata dai microservizi Node del backend (`auth-srv`, `app-srv`, ...) tramite il
8
+ registry npm privato Nextage: `"@nextage/era-lib": "^1.0.x"`.
9
+
10
+ ## Contenuto
11
+
12
+ | Area | Cosa | Path |
13
+ | -- | -- | -- |
14
+ | **utils** | `initConfig`, `readEnv`, `startService`, `createHealthRouter`, helper express | `src/utils` |
15
+ | **events** | `BaseEventCtrl`, publisher/listener NATS + in-memory, entità di dominio | `src/events` |
16
+ | **services** | `Password` (hash/verify), ... | `src/services` |
17
+ | **routes** | validator/formatErrors REST | `src/routes` |
18
+ | **constants / enums / interfaces / types** | costanti e tipi condivisi | `src/*` |
19
+
20
+ ## Bootstrap dei servizi — `startService()`
21
+
22
+ Orchestratore di avvio deterministico (ADR-0001). Esegue le fasi in ordine, con
23
+ **fail-fast** e **readiness gate**, al posto del vecchio avvio su `setTimeout`.
24
+
25
+ ```ts
26
+ import { startService, createHealthRouter } from '@nextage/era-lib';
27
+ import { APP } from './core/config/app.config';
28
+
29
+ await startService({
30
+ app : APP,
31
+ phases: [
32
+ { label: 'database', run: () => initDB() },
33
+ { label: 'messaging', run: () => initMessages() },
34
+ { label: 'http wiring', run: () => initHttp() }, // express/routes, NO listen
35
+ { label: 'modules', run: () => loadModules() }, // registra listener/schema
36
+ { label: 'listen', run: () => startServer() } // createServer + apollo + listen
37
+ ],
38
+ shutdown: [
39
+ () => apollo.stop(),
40
+ () => natsWrapper.close(),
41
+ () => APP.mongoose?.disconnect()
42
+ ]
43
+ });
44
+ ```
45
+
46
+ - `APP.status` passa a `OK` **solo dopo** che tutte le fasi si sono concluse.
47
+ - `createHealthRouter(APP)` espone `GET /healthz` (liveness) e `GET /readyz`
48
+ (readiness = `APP.status === OK`). Montare **prima** del middleware JWT.
49
+
50
+ ## Sviluppo
51
+
52
+ ```bash
53
+ npm install
54
+ npm run build # clean + tsc → build/
55
+ npm test # vitest run
56
+ npm run test:watch # vitest (watch)
57
+ ```
58
+
59
+ Test framework: **Vitest** (standard di progetto). Gli spec vivono accanto al codice come
60
+ `*.spec.ts` / `*.test.ts` e sono esclusi dalla build (`tsconfig.json`).
61
+
62
+ ## Pubblicare / aggiornare la libreria
63
+
64
+ La procedura completa (con la distinzione **chi fa cosa**) è documentata in
65
+ [docs/architecture/era-lib.md](../../docs/architecture/era-lib.md).
66
+
67
+ In sintesi:
68
+
69
+ 1. Aggiorna il codice e **aggiorna `CHANGELOG.md`**.
70
+ 2. Commit del codice (l'albero git deve essere pulito: `npm version` lo richiede).
71
+ 3. Bump di versione + tag: `npm run release:patch` (o `release:minor` / `release:major`).
72
+ 4. Pubblica: `npm run pub` (esegue build e `npm publish`; `prepublishOnly` garantisce
73
+ comunque la build).
74
+ 5. Aggiorna la dipendenza nei servizi consumatori e reinstalla.
75
+
76
+ > ⚠️ Il `npm publish` è un'azione condivisa e non annullabile (richiede autenticazione al
77
+ > registry). Vedi il documento sopra per la regola operativa concordata.
78
+
79
+ ## Convenzioni di codice
80
+
81
+ Vedi le convenzioni backend TypeScript del progetto: formattazione a colonne allineate,
82
+ naming `kebab.concern`, layering interfaces → model → controller → graphql, comunicazione
83
+ via eventi.
@@ -1,6 +1,6 @@
1
1
  export declare const msgWrapper: {
2
2
  client: {
3
- publish: jest.Mock<any, any, any>;
3
+ publish: import("vitest").Mock<(...args: any[]) => any>;
4
4
  };
5
5
  };
6
6
  //# sourceMappingURL=msg-wrapper.d.ts.map
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.msgWrapper = void 0;
4
+ const vitest_1 = require("vitest");
4
5
  exports.msgWrapper = {
5
6
  client: {
6
- publish: jest.fn().mockImplementation((subject, data, options) => {
7
+ publish: vitest_1.vi.fn().mockImplementation((subject, data, options) => {
7
8
  })
8
9
  // publish: (subject: string, data: string, callback: () => void) => {
9
10
  // callback();
@@ -1 +1 @@
1
- {"version":3,"file":"msg-wrapper.js","sourceRoot":"","sources":["../../../src/events/__mocks__/msg-wrapper.ts"],"names":[],"mappings":";;;AAGa,QAAA,UAAU,GAAG;IAExB,MAAM,EAAE;QAEN,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CACnC,CAAC,OAAe,EAAE,IAAY,EAAE,OAAkB,EAAE,EAAE;QAEtD,CAAC,CACF;QACD,sEAAsE;QACtE,gBAAgB;QAChB,KAAK;KAEN;CACF,CAAC"}
1
+ {"version":3,"file":"msg-wrapper.js","sourceRoot":"","sources":["../../../src/events/__mocks__/msg-wrapper.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAGpB,QAAA,UAAU,GAAG;IAExB,MAAM,EAAE;QAEN,OAAO,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CACjC,CAAC,OAAe,EAAE,IAAY,EAAE,OAAkB,EAAE,EAAE;QAEtD,CAAC,CACF;QACD,sEAAsE;QACtE,gBAAgB;QAChB,KAAK;KAEN;CACF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  export declare const natsWrapper: {
2
2
  client: {
3
- publish: jest.Mock<any, any, any>;
3
+ publish: import("vitest").Mock<(...args: any[]) => any>;
4
4
  };
5
5
  };
6
6
  //# sourceMappingURL=nats-wrapper.d.ts.map
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.natsWrapper = void 0;
4
+ const vitest_1 = require("vitest");
4
5
  exports.natsWrapper = {
5
6
  client: {
6
- publish: jest.fn().mockImplementation((subject, payload, options) => {
7
+ publish: vitest_1.vi.fn().mockImplementation((subject, payload, options) => {
7
8
  })
8
9
  // publish: (subject: string, data: string, callback: () => void) => {
9
10
  // callback();
@@ -1 +1 @@
1
- {"version":3,"file":"nats-wrapper.js","sourceRoot":"","sources":["../../../src/events/__mocks__/nats-wrapper.ts"],"names":[],"mappings":";;;AAGa,QAAA,WAAW,GAAG;IAEzB,MAAM,EAAE;QAEN,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CACnC,CAAC,OAAe,EAAE,OAAe,EAAE,OAAkB,EAAE,EAAE;QAEzD,CAAC,CACF;QACD,sEAAsE;QACtE,gBAAgB;QAChB,KAAK;KAEN;CACF,CAAC"}
1
+ {"version":3,"file":"nats-wrapper.js","sourceRoot":"","sources":["../../../src/events/__mocks__/nats-wrapper.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAGpB,QAAA,WAAW,GAAG;IAEzB,MAAM,EAAE;QAEN,OAAO,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CACjC,CAAC,OAAe,EAAE,OAAe,EAAE,OAAkB,EAAE,EAAE;QAEzD,CAAC,CACF;QACD,sEAAsE;QACtE,gBAAgB;QAChB,KAAK;KAEN;CACF,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;AAEhF;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CA+DjF;AAkCD;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CA0B9D;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,QAuClC;AAED;;;;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;AAEhF;;GAEG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CA+DjF;AA6BD;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CA0B9D;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,QAsClC;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"}
@@ -114,21 +114,17 @@ async function initConfig(dir, appData) {
114
114
  * @returns
115
115
  */
116
116
  function buildMessagesConfig() {
117
- const servers = JSON.parse(process.env.NATS_SERVERS ?? '[]');
118
117
  const config = {
119
118
  servers: [],
120
119
  clientId: process.env.MSG_CLIENT_ID ?? '',
121
120
  clientName: process.env.MSG_CLIENT_NAME ?? ''
122
121
  };
122
+ // Note: `clientType` is intentionally not set here — it is never read by the
123
+ // transports (msgWrapper.connect uses only `clientId`, natsWrapper.connect uses
124
+ // `{servers, clientName}`). The service connects both wrappers explicitly in its
125
+ // messages.config, so the previous MSG_CLIENT_TYPE switch was dead code.
123
126
  try {
124
127
  config.servers = JSON.parse(process.env.MSG_NATS_SERVERS ?? '[]');
125
- switch (process.env.MSG_CLIENT_TYPE) {
126
- case 'nats':
127
- config.clientType = 'nats';
128
- case 'msg':
129
- default:
130
- config.clientType = 'msg';
131
- }
132
128
  }
133
129
  catch {
134
130
  config.servers = [process.env.MSG_NATS_SERVERS];
@@ -179,8 +175,6 @@ function readEnv(dir) {
179
175
  process.env.LOG_DIR = process.env.LOG_DIR ?? './logs';
180
176
  process.env.MORGAN_FORMAT = process.env.MORGAN_FORMAT ?? '';
181
177
  process.env.JWT_ALGORITHM = process.env.JWT_ALGORITHM ?? 'HS512';
182
- process.env.JWT_SECRET = process.env.JWT_SECRET ?? '0a6b944d-d2fb-46fc-a85e-0295c986cd9f';
183
- process.env.MONGO_SECRET = process.env.MONGO_SECRET ?? '0a6b944d-d2fb-46fc-a85e-0295c986cd9f';
184
178
  process.env.MONGO_HOST = process.env.MONGO_HOST ?? 'localhost';
185
179
  process.env.MONGO_DBNAME = process.env.MONGO_DBNAME ?? process.env.APP_NAME ?? 'nxapp';
186
180
  process.env.MONGO_AUTH = process.env.MONGO_AUTH ?? '';
@@ -202,6 +196,27 @@ function readEnv(dir) {
202
196
  process.env.GRAPHQL_WS_PORT = process.env.GRAPHQL_WS_PORT ?? '3001';
203
197
  process.env.I18N_FOLDER = process.env.I18N_FOLDER ?? `${dir}/assets/i18n`;
204
198
  process.env.ROOT_DIR = dir;
199
+ applySecrets();
200
+ }
201
+ /**
202
+ * Resolves the application secrets (finding S2).
203
+ *
204
+ * In production every secret is MANDATORY: if `JWT_SECRET` (token signing) or
205
+ * `SECRET` (field-level encryption, exposed as `APP.dataScr`) is missing the
206
+ * process fails fast instead of silently booting with a predictable value. In
207
+ * development/test a well-known fallback is used for convenience (tests also set
208
+ * `SECRET` explicitly in `src/test/env.ts`).
209
+ */
210
+ function applySecrets() {
211
+ const required = ['JWT_SECRET', 'SECRET'];
212
+ if (process.env.NODE_ENV === 'production') {
213
+ const missing = required.filter((k) => !process.env[k]);
214
+ if (missing.length)
215
+ throw new Error(`Missing required secret env in production: ${missing.join(', ')}`);
216
+ return;
217
+ }
218
+ // Development/test fallbacks (never used in production, see fail-fast above).
219
+ process.env.JWT_SECRET = process.env.JWT_SECRET ?? '0a6b944d-d2fb-46fc-a85e-0295c986cd9f';
205
220
  process.env.SECRET = process.env.SECRET ?? 'aaa';
206
221
  }
207
222
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"functs.js","sourceRoot":"","sources":["../../src/utils/functs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functs.js","sourceRoot":"","sources":["../../src/utils/functs.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './express';
2
2
  export * from './functs';
3
+ export * from './start-service';
3
4
  //# 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"}
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,iBAAiB,CAAC"}
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./express"), exports);
18
18
  __exportStar(require("./functs"), exports);
19
+ __exportStar(require("./start-service"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,2CAAyB;AACzB,kDAAgC"}
@@ -0,0 +1,55 @@
1
+ import { Router } from 'express';
2
+ import { AppData } from '@nextage/nx-frame-be';
3
+ /**
4
+ * A single ordered startup phase.
5
+ */
6
+ export interface BootstrapPhase {
7
+ label: string;
8
+ run: () => Promise<void> | void;
9
+ }
10
+ /**
11
+ * A graceful-shutdown handler (invoked on SIGTERM/SIGINT/... in reverse order).
12
+ */
13
+ export type ShutdownHandler = () => Promise<void> | void;
14
+ /**
15
+ * Parameters for {@link startService}.
16
+ */
17
+ export interface StartServiceParams {
18
+ /** Shared application singleton (APP). */
19
+ app: AppData;
20
+ /** Ordered phases; executed sequentially, each awaited before the next. */
21
+ phases: BootstrapPhase[];
22
+ /** Optional graceful-shutdown handlers (registered on the ShutdownManager). */
23
+ shutdown?: ShutdownHandler[];
24
+ /** Abort the process on the first failing phase. Default: `true`. */
25
+ failFast?: boolean;
26
+ /**
27
+ * Called on a fail-fast abort to terminate the process. Injectable for tests;
28
+ * defaults to `process.exit`.
29
+ */
30
+ onFatal?: (code: number) => never;
31
+ }
32
+ /**
33
+ * Orchestrates a service startup as an ordered, fail-fast phase sequence.
34
+ *
35
+ * The server should perform its `listen()` inside the LAST phase; `startService`
36
+ * flips `APP.status` to `AppStatus.OK` only after ALL phases have resolved, so
37
+ * `/readyz` (see {@link createHealthRouter}) reports "ready" only once the whole
38
+ * bootstrap has completed.
39
+ *
40
+ * @param params - see {@link StartServiceParams}
41
+ */
42
+ export declare function startService(params: StartServiceParams): Promise<void>;
43
+ /**
44
+ * Builds an Express router exposing liveness/readiness probes.
45
+ *
46
+ * - `GET /healthz` → 200 as long as the process is up (liveness)
47
+ * - `GET /readyz` → 200 only when `APP.status === OK`, else 503 (readiness)
48
+ *
49
+ * Mount BEFORE the JWT/auth middleware so probes stay unauthenticated.
50
+ *
51
+ * @param app - shared application singleton (APP)
52
+ * @param extra - optional async readiness check (e.g. db/nats connectivity)
53
+ */
54
+ export declare function createHealthRouter(app: AppData, extra?: () => Promise<boolean> | boolean): Router;
55
+ //# sourceMappingURL=start-service.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /*───────────────────────────────────────────────────────────────────────────*\
3
+ start-service — service bootstrap orchestrator (ADR-0001)
4
+
5
+ Runs the service startup as an ORDERED, AWAITED sequence of phases instead of
6
+ the previous timer-based (`setTimeout`) approach. Guarantees:
7
+
8
+ - deterministic ordering (no race between module loading and server listen)
9
+ - fail-fast: a throwing phase aborts startup with a non-zero exit code
10
+ - readiness gate: APP.status flips to OK only after every phase completed
11
+ - graceful shutdown handlers registered on the shared ShutdownManager
12
+
13
+ Transport-agnostic: each service composes its own phases (db, messaging, http
14
+ wiring, module loading, listen). See docs/architecture/adr/0001-*.
15
+ \*───────────────────────────────────────────────────────────────────────────*/
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.startService = startService;
18
+ exports.createHealthRouter = createHealthRouter;
19
+ const express_1 = require("express");
20
+ const nx_frame_be_1 = require("@nextage/nx-frame-be");
21
+ /**
22
+ * Orchestrates a service startup as an ordered, fail-fast phase sequence.
23
+ *
24
+ * The server should perform its `listen()` inside the LAST phase; `startService`
25
+ * flips `APP.status` to `AppStatus.OK` only after ALL phases have resolved, so
26
+ * `/readyz` (see {@link createHealthRouter}) reports "ready" only once the whole
27
+ * bootstrap has completed.
28
+ *
29
+ * @param params - see {@link StartServiceParams}
30
+ */
31
+ async function startService(params) {
32
+ const { app, phases } = params;
33
+ const failFast = params.failFast ?? true;
34
+ const logger = app.logger ?? console;
35
+ const onFatal = params.onFatal ?? ((code) => process.exit(code));
36
+ app.status = nx_frame_be_1.AppStatus.INIT;
37
+ logger.info(`⏳ [${app.appName}] starting service (${phases.length} phases)`);
38
+ for (let i = 0; i < phases.length; i++) {
39
+ const phase = phases[i];
40
+ const step = `${i + 1}/${phases.length}`;
41
+ try {
42
+ logger.info(`▶ [${app.appName}] (${step}) ${phase.label}`);
43
+ await phase.run();
44
+ }
45
+ catch (err) {
46
+ logger.error(`✖ [${app.appName}] (${step}) ${phase.label} failed: ${errMessage(err)}`);
47
+ if (failFast) {
48
+ await runShutdown(params.shutdown, logger);
49
+ // Non-zero exit → the orchestrator (ECS/compose) restarts the service.
50
+ onFatal(1);
51
+ return;
52
+ }
53
+ throw err;
54
+ }
55
+ }
56
+ // Register graceful-shutdown handlers AFTER a successful startup.
57
+ registerShutdown(app, params.shutdown, logger);
58
+ app.status = nx_frame_be_1.AppStatus.OK;
59
+ logger.info(`✅ [${app.appName}] service ready`);
60
+ }
61
+ /**
62
+ * Builds an Express router exposing liveness/readiness probes.
63
+ *
64
+ * - `GET /healthz` → 200 as long as the process is up (liveness)
65
+ * - `GET /readyz` → 200 only when `APP.status === OK`, else 503 (readiness)
66
+ *
67
+ * Mount BEFORE the JWT/auth middleware so probes stay unauthenticated.
68
+ *
69
+ * @param app - shared application singleton (APP)
70
+ * @param extra - optional async readiness check (e.g. db/nats connectivity)
71
+ */
72
+ function createHealthRouter(app, extra) {
73
+ const router = (0, express_1.Router)();
74
+ router.get('/healthz', (_req, res) => {
75
+ res.status(200).json({ status: 'up', service: app.appName });
76
+ });
77
+ router.get('/readyz', async (_req, res) => {
78
+ const statusReady = app.status === nx_frame_be_1.AppStatus.OK;
79
+ const extraReady = extra ? await safeCheck(extra) : true;
80
+ const ready = statusReady && extraReady;
81
+ res.status(ready ? 200 : 503).json({
82
+ status: ready ? 'ready' : 'not-ready',
83
+ service: app.appName
84
+ });
85
+ });
86
+ return router;
87
+ }
88
+ /*── internals ───────────────────────────────────────────────────────────────*/
89
+ /**
90
+ * Registers shutdown handlers on the shared ShutdownManager (reverse order so
91
+ * resources are torn down opposite to how they were created).
92
+ */
93
+ function registerShutdown(app, handlers, logger) {
94
+ if (!handlers?.length || !app.shutdownMng)
95
+ return;
96
+ for (const handler of [...handlers].reverse()) {
97
+ app.shutdownMng.addShutdownHandler(async () => {
98
+ try {
99
+ await handler();
100
+ }
101
+ catch (err) {
102
+ logger.error(`✖ [${app.appName}] shutdown handler failed: ${errMessage(err)}`);
103
+ }
104
+ });
105
+ }
106
+ }
107
+ /**
108
+ * Runs shutdown handlers inline (used on fail-fast, before the manager exists).
109
+ */
110
+ async function runShutdown(handlers, logger) {
111
+ if (!handlers?.length)
112
+ return;
113
+ for (const handler of [...handlers].reverse()) {
114
+ try {
115
+ await handler();
116
+ }
117
+ catch (err) {
118
+ logger.error(`✖ shutdown handler failed during fail-fast: ${errMessage(err)}`);
119
+ }
120
+ }
121
+ }
122
+ /**
123
+ * Runs a readiness check, swallowing errors as "not ready".
124
+ */
125
+ async function safeCheck(check) {
126
+ try {
127
+ return await check();
128
+ }
129
+ catch {
130
+ return false;
131
+ }
132
+ }
133
+ /**
134
+ * Normalises an unknown thrown value into a readable message.
135
+ */
136
+ function errMessage(err) {
137
+ if (err instanceof Error)
138
+ return err.stack ?? err.message;
139
+ if (typeof err === 'string')
140
+ return err;
141
+ try {
142
+ return JSON.stringify(err);
143
+ }
144
+ catch {
145
+ return 'unknown error';
146
+ }
147
+ }
148
+ //# sourceMappingURL=start-service.js.map
@@ -0,0 +1 @@
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.164",
3
+ "version": "1.0.166",
4
4
  "main": "./build/index.js",
5
5
  "types": "./build/index.d.ts",
6
6
  "files": [
@@ -9,12 +9,18 @@
9
9
  "scripts": {
10
10
  "clean": "del ./build/*",
11
11
  "build": "npm run clean && tsc",
12
- "pub": "git add . && git commit -m \"App Library updates\" && npm version patch && npm run build && npm publish"
12
+ "test": "vitest run",
13
+ "test:watch": "vitest",
14
+ "prepublishOnly": "npm run build",
15
+ "release:patch": "npm version patch -m \"era-lib v%s\"",
16
+ "release:minor": "npm version minor -m \"era-lib v%s\"",
17
+ "release:major": "npm version major -m \"era-lib v%s\"",
18
+ "pub": "npm run build && npm publish"
13
19
  },
14
20
  "keywords": [],
15
- "author": "",
21
+ "author": "Nextage",
16
22
  "license": "ISC",
17
- "description": "",
23
+ "description": "ERA shared backend library (@nextage/era-lib): events, models, services, bootstrap orchestrator and utils on top of @nextage/nx-frame-be. See README.md and CHANGELOG.md.",
18
24
  "dependencies": {
19
25
  "@nextage/nx-frame-be": "^1.0.37",
20
26
  "@types/express-jwt": "^7.4.2",
@@ -47,9 +53,8 @@
47
53
  "ws": "^8.18.0"
48
54
  },
49
55
  "devDependencies": {
50
- "@types/jest": "^30.0.0",
51
56
  "del-cli": "^6.0.0",
52
- "jest": "^30.0.5",
53
- "mongodb-memory-server": "^10.1.4"
57
+ "mongodb-memory-server": "^10.1.4",
58
+ "vitest": "^2.1.9"
54
59
  }
55
60
  }