@bluealba/pae-bootstrap-lib 3.2.5-pillar-v4.1 → 3.2.6
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/dist/src/bootstrap/apply-service-local.d.ts.map +1 -1
- package/dist/src/bootstrap/apply-service-local.js +2 -3
- package/dist/src/bootstrap/apply-service-local.js.map +1 -1
- package/dist/src/bootstrap/bootstrap-platform.d.ts +0 -10
- package/dist/src/bootstrap/bootstrap-platform.d.ts.map +1 -1
- package/dist/src/bootstrap/bootstrap-platform.js +13 -15
- package/dist/src/bootstrap/bootstrap-platform.js.map +1 -1
- package/dist/src/bootstrap/domain/domain-validation.test.js +1286 -302
- package/dist/src/bootstrap/domain/domain-validation.test.js.map +1 -1
- package/dist/src/bootstrap/entity-synchronizer.test.js +24 -0
- package/dist/src/bootstrap/entity-synchronizer.test.js.map +1 -1
- package/dist/src/bootstrap/read-bootstrap-applications.d.ts.map +1 -1
- package/dist/src/bootstrap/read-bootstrap-applications.js +343 -39
- package/dist/src/bootstrap/read-bootstrap-applications.js.map +1 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +0 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/utils/format-diff.d.ts.map +1 -1
- package/dist/src/utils/format-diff.js +1 -2
- package/dist/src/utils/format-diff.js.map +1 -1
- package/package.json +2 -2
- package/dist/src/logger.d.ts +0 -27
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -37
- package/dist/src/logger.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-service-local.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/apply-service-local.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"apply-service-local.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/apply-service-local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAEhG,eAAO,MAAM,WAAW,QAAO,OACI,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,KAAG,IAAI,CAAC,eAAe,EAAE,cAAc,CAa/F,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,KAAG,IAAI,CAAC,eAAe,EAAE,cAAc,CAG/F,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,iBAAiB,KAAG,iBAoBjE,CAAC"}
|
|
@@ -12,7 +12,6 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.processServiceLocal = exports.stripServiceLocal = exports.applyServiceLocal = exports.isLocalMode = void 0;
|
|
15
|
-
const logger_1 = require("../logger");
|
|
16
15
|
const isLocalMode = () => process.env.LOCAL_MODE === 'true';
|
|
17
16
|
exports.isLocalMode = isLocalMode;
|
|
18
17
|
/**
|
|
@@ -23,7 +22,7 @@ const applyServiceLocal = (module) => {
|
|
|
23
22
|
if (!serviceLocal) {
|
|
24
23
|
return rest;
|
|
25
24
|
}
|
|
26
|
-
|
|
25
|
+
console.log(`[Bootstrap] Applying serviceLocal override for module: ${module.name}`);
|
|
27
26
|
return Object.assign(Object.assign({}, rest), { service: Object.assign(Object.assign({}, rest.service), serviceLocal) });
|
|
28
27
|
};
|
|
29
28
|
exports.applyServiceLocal = applyServiceLocal;
|
|
@@ -43,7 +42,7 @@ exports.stripServiceLocal = stripServiceLocal;
|
|
|
43
42
|
const processServiceLocal = (platform) => {
|
|
44
43
|
const local = (0, exports.isLocalMode)();
|
|
45
44
|
if (local) {
|
|
46
|
-
|
|
45
|
+
console.log('[Bootstrap] LOCAL_MODE=true: applying serviceLocal overrides');
|
|
47
46
|
}
|
|
48
47
|
const processModule = local ? exports.applyServiceLocal : exports.stripServiceLocal;
|
|
49
48
|
return Object.assign(Object.assign({}, platform), { applications: Object.fromEntries(Object.entries(platform.applications).map(([appName, app]) => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-service-local.js","sourceRoot":"","sources":["../../../src/bootstrap/apply-service-local.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"apply-service-local.js","sourceRoot":"","sources":["../../../src/bootstrap/apply-service-local.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEO,MAAM,WAAW,GAAG,GAAY,EAAE,CACvC,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC;AADvB,QAAA,WAAW,eACY;AAEpC;;GAEG;AACI,MAAM,iBAAiB,GAAG,CAAC,MAAuB,EAAyC,EAAE;IAClG,MAAM,EAAE,YAAY,KAAc,MAAM,EAAf,IAAI,UAAK,MAAM,EAAlC,gBAAyB,CAAS,CAAC;IACzC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,0DAA0D,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACrF,uCACK,IAAI,KACP,OAAO,kCACF,IAAI,CAAC,OAAO,GACZ,YAAY,KAEjB;AACJ,CAAC,CAAC;AAbW,QAAA,iBAAiB,qBAa5B;AAEF;;GAEG;AACI,MAAM,iBAAiB,GAAG,CAAC,MAAuB,EAAyC,EAAE;IAClG,MAAM,EAAE,YAAY,EAAE,CAAC,KAAc,MAAM,EAAf,IAAI,UAAK,MAAM,EAArC,gBAA4B,CAAS,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAHW,QAAA,iBAAiB,qBAG5B;AAEF;;;;GAIG;AACI,MAAM,mBAAmB,GAAG,CAAC,QAA2B,EAAqB,EAAE;IACpF,MAAM,KAAK,GAAG,IAAA,mBAAW,GAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,yBAAiB,CAAC,CAAC,CAAC,yBAAiB,CAAC;IAEpE,uCACK,QAAQ,KACX,YAAY,EAAE,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAC5D,OAAO;4CAEF,GAAG,KACN,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;SAE1C,CAAC,CACH,IACD;AACJ,CAAC,CAAC;AApBW,QAAA,mBAAmB,uBAoB9B"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { BootstrapLogger } from "../logger";
|
|
2
1
|
import { BootstrapModule } from "./domain/bootstrap-sync-metadata.interface";
|
|
3
2
|
/**
|
|
4
3
|
* Optional properties to customize the bootstrapPlatform process.
|
|
@@ -50,15 +49,6 @@ export type BootstrapOptions = {
|
|
|
50
49
|
* the initial delay value.
|
|
51
50
|
*/
|
|
52
51
|
initialDelay?: number;
|
|
53
|
-
/**
|
|
54
|
-
* Where bootstrap reports progress and failures.
|
|
55
|
-
*
|
|
56
|
-
* Defaults to `console` with a `[Bootstrap]` prefix. Pass a structured
|
|
57
|
-
* logger (e.g. `@bluealba/pillar-logger`) so bootstrap output is NDJSON like
|
|
58
|
-
* the rest of the service's — it shares stdout with every other process in
|
|
59
|
-
* the Pillar container.
|
|
60
|
-
*/
|
|
61
|
-
logger?: BootstrapLogger;
|
|
62
52
|
};
|
|
63
53
|
/**
|
|
64
54
|
* Reads the current application src/data folder assembles all the platform definitions
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-platform.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/bootstrap-platform.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bootstrap-platform.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/bootstrap-platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAG7E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,CAAC;IAErE;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAA;AAgBD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAU,SAAS,gBAAgB,KAAG,OAAO,CAAC,IAAI,CA8G/E,CAAC"}
|
|
@@ -10,7 +10,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.bootstrapPlatform = void 0;
|
|
13
|
-
const logger_1 = require("../logger");
|
|
14
13
|
const pae_core_1 = require("@bluealba/pae-core");
|
|
15
14
|
const read_bootstrap_applications_1 = require("./read-bootstrap-applications");
|
|
16
15
|
const apply_service_local_1 = require("./apply-service-local");
|
|
@@ -32,23 +31,22 @@ const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
|
32
31
|
const bootstrapPlatform = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
32
|
var _a, _b, _c, _d;
|
|
34
33
|
const { throwOnError = false, retries = 0, initialDelay = 0, scopedTo } = options;
|
|
35
|
-
(0, logger_1.setBootstrapLogger)(options.logger);
|
|
36
34
|
if (!scopedTo) {
|
|
37
35
|
const err = new Error('No options.scopedTo was provider neither the env var SERVICE_ACCESS_NAME is present ! Set one to identify the bootstrap as author for creating/updating entities in the platform');
|
|
38
|
-
(
|
|
36
|
+
console.error('[Bootstrap]', err.message);
|
|
39
37
|
if (throwOnError)
|
|
40
38
|
throw err;
|
|
41
39
|
return;
|
|
42
40
|
}
|
|
43
41
|
let processedPlatform;
|
|
44
42
|
try {
|
|
45
|
-
|
|
43
|
+
console.log('[Bootstrap] Reading platform data from:', (_a = options.path) !== null && _a !== void 0 ? _a : process.cwd());
|
|
46
44
|
const platform = (0, read_bootstrap_applications_1.readPlatformBootstrapFolder)((_b = options.path) !== null && _b !== void 0 ? _b : process.cwd(), options);
|
|
47
45
|
const applications = Object.values(platform.applications);
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
console.log(`[Bootstrap] Found ${applications.length} applications`);
|
|
47
|
+
console.log(`[Bootstrap] Found ${(_d = (_c = platform.sharedLibraries) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0} shared libraries`);
|
|
50
48
|
if (options.transformModules) {
|
|
51
|
-
|
|
49
|
+
console.warn('[DEPRECATED] transformModules option is deprecated and will be removed in a future version.');
|
|
52
50
|
const transformedModules = options.transformModules(applications.flatMap(app => app.modules));
|
|
53
51
|
const modulesByApp = new Map();
|
|
54
52
|
transformedModules.forEach(module => {
|
|
@@ -68,7 +66,7 @@ const bootstrapPlatform = (options) => __awaiter(void 0, void 0, void 0, functio
|
|
|
68
66
|
}
|
|
69
67
|
catch (error) {
|
|
70
68
|
const err = error instanceof Error ? error : new Error('Bootstrap failed while reading platform data');
|
|
71
|
-
|
|
69
|
+
console.error('[Bootstrap] Failed to read platform data:', err.message);
|
|
72
70
|
if (throwOnError)
|
|
73
71
|
throw err;
|
|
74
72
|
return;
|
|
@@ -81,17 +79,17 @@ const bootstrapPlatform = (options) => __awaiter(void 0, void 0, void 0, functio
|
|
|
81
79
|
}
|
|
82
80
|
catch (error) {
|
|
83
81
|
const err = error instanceof Error ? error : new Error('Bootstrap failed while reading environment variables');
|
|
84
|
-
|
|
82
|
+
console.error('[Bootstrap] Failed to read environment variables:', err.message);
|
|
85
83
|
if (throwOnError)
|
|
86
84
|
throw err;
|
|
87
85
|
return;
|
|
88
86
|
}
|
|
89
87
|
const url = `${gatewayUrl}/bootstrap/sync`;
|
|
90
|
-
|
|
91
|
-
|
|
88
|
+
console.log(`[Bootstrap] Sending data to gateway: ${url}`);
|
|
89
|
+
console.log(`[Bootstrap] Scoped to: ${scopedTo}`);
|
|
92
90
|
const attempt = (attemptNumber, delay) => __awaiter(void 0, void 0, void 0, function* () {
|
|
93
91
|
if (delay > 0) {
|
|
94
|
-
|
|
92
|
+
console.log(`[Bootstrap] Waiting ${delay}ms before attempt ${attemptNumber}/${retries + 1}...`);
|
|
95
93
|
yield sleep(delay);
|
|
96
94
|
}
|
|
97
95
|
try {
|
|
@@ -109,18 +107,18 @@ const bootstrapPlatform = (options) => __awaiter(void 0, void 0, void 0, functio
|
|
|
109
107
|
const errorText = yield response.text();
|
|
110
108
|
throw new Error(`Bootstrap sync failed with status ${response.status}: ${errorText}`);
|
|
111
109
|
}
|
|
112
|
-
|
|
110
|
+
console.log('[Bootstrap] Sync completed successfully');
|
|
113
111
|
}
|
|
114
112
|
catch (error) {
|
|
115
113
|
const err = error instanceof Error ? error : new Error('Bootstrap sync failed with unknown error');
|
|
116
|
-
|
|
114
|
+
console.error(`[Bootstrap] Attempt ${attemptNumber}/${retries + 1} failed:`, err.message);
|
|
117
115
|
if (attemptNumber <= retries) {
|
|
118
116
|
// Backoff is always based on MIN_RETRY_DELAY, independent of initialDelay.
|
|
119
117
|
const nextDelay = Math.min(MIN_RETRY_DELAY * Math.pow(2, attemptNumber - 1), MAX_BACKOFF_DELAY);
|
|
120
118
|
return attempt(attemptNumber + 1, nextDelay);
|
|
121
119
|
}
|
|
122
120
|
if (retries > 0) {
|
|
123
|
-
|
|
121
|
+
console.error('[Bootstrap] All retry attempts exhausted. Service will continue running without bootstrap.');
|
|
124
122
|
}
|
|
125
123
|
if (throwOnError)
|
|
126
124
|
throw err;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-platform.js","sourceRoot":"","sources":["../../../src/bootstrap/bootstrap-platform.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"bootstrap-platform.js","sourceRoot":"","sources":["../../../src/bootstrap/bootstrap-platform.ts"],"names":[],"mappings":"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"}
|