@bluealba/pae-bootstrap-lib 1.7.2-develop-1171
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/LICENSE +134 -0
- package/README.md +43 -0
- package/dist/src/bootstrap/bootstrap-platform.d.ts +32 -0
- package/dist/src/bootstrap/bootstrap-platform.d.ts.map +1 -0
- package/dist/src/bootstrap/bootstrap-platform.js +75 -0
- package/dist/src/bootstrap/bootstrap-platform.js.map +1 -0
- package/dist/src/bootstrap/domain/bootstrap-sync-metadata.interface.d.ts +37 -0
- package/dist/src/bootstrap/domain/bootstrap-sync-metadata.interface.d.ts.map +1 -0
- package/dist/src/bootstrap/domain/bootstrap-sync-metadata.interface.js +3 -0
- package/dist/src/bootstrap/domain/bootstrap-sync-metadata.interface.js.map +1 -0
- package/dist/src/bootstrap/domain/domain-validation.test.d.ts +2 -0
- package/dist/src/bootstrap/domain/domain-validation.test.d.ts.map +1 -0
- package/dist/src/bootstrap/domain/domain-validation.test.js +1872 -0
- package/dist/src/bootstrap/domain/domain-validation.test.js.map +1 -0
- package/dist/src/bootstrap/entity-synchronizer.d.ts +53 -0
- package/dist/src/bootstrap/entity-synchronizer.d.ts.map +1 -0
- package/dist/src/bootstrap/entity-synchronizer.js +69 -0
- package/dist/src/bootstrap/entity-synchronizer.js.map +1 -0
- package/dist/src/bootstrap/entity-synchronizer.test.d.ts +2 -0
- package/dist/src/bootstrap/entity-synchronizer.test.d.ts.map +1 -0
- package/dist/src/bootstrap/entity-synchronizer.test.js +270 -0
- package/dist/src/bootstrap/entity-synchronizer.test.js.map +1 -0
- package/dist/src/bootstrap/fix-created-by.d.ts +10 -0
- package/dist/src/bootstrap/fix-created-by.d.ts.map +1 -0
- package/dist/src/bootstrap/fix-created-by.js +36 -0
- package/dist/src/bootstrap/fix-created-by.js.map +1 -0
- package/dist/src/bootstrap/initialize-pae-client.d.ts +7 -0
- package/dist/src/bootstrap/initialize-pae-client.d.ts.map +1 -0
- package/dist/src/bootstrap/initialize-pae-client.js +24 -0
- package/dist/src/bootstrap/initialize-pae-client.js.map +1 -0
- package/dist/src/bootstrap/read-bootstrap-applications.d.ts +10 -0
- package/dist/src/bootstrap/read-bootstrap-applications.d.ts.map +1 -0
- package/dist/src/bootstrap/read-bootstrap-applications.js +650 -0
- package/dist/src/bootstrap/read-bootstrap-applications.js.map +1 -0
- package/dist/src/bootstrap/run-bootstrap-sync.service.d.ts +4 -0
- package/dist/src/bootstrap/run-bootstrap-sync.service.d.ts.map +1 -0
- package/dist/src/bootstrap/run-bootstrap-sync.service.js +27 -0
- package/dist/src/bootstrap/run-bootstrap-sync.service.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-applications.d.ts +4 -0
- package/dist/src/bootstrap/synchronizers/sync-applications.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-applications.js +53 -0
- package/dist/src/bootstrap/synchronizers/sync-applications.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-authz-entities.d.ts +11 -0
- package/dist/src/bootstrap/synchronizers/sync-authz-entities.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-authz-entities.js +58 -0
- package/dist/src/bootstrap/synchronizers/sync-authz-entities.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-catalog.d.ts +5 -0
- package/dist/src/bootstrap/synchronizers/sync-catalog.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-catalog.js +73 -0
- package/dist/src/bootstrap/synchronizers/sync-catalog.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-entities/performDeletes.d.ts +11 -0
- package/dist/src/bootstrap/synchronizers/sync-entities/performDeletes.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-entities/performDeletes.js +38 -0
- package/dist/src/bootstrap/synchronizers/sync-entities/performDeletes.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-entities/performUpdates.d.ts +12 -0
- package/dist/src/bootstrap/synchronizers/sync-entities/performUpdates.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-entities/performUpdates.js +43 -0
- package/dist/src/bootstrap/synchronizers/sync-entities/performUpdates.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-entities.d.ts +19 -0
- package/dist/src/bootstrap/synchronizers/sync-entities.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-entities.js +59 -0
- package/dist/src/bootstrap/synchronizers/sync-entities.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-entities.test.d.ts +2 -0
- package/dist/src/bootstrap/synchronizers/sync-entities.test.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-entities.test.js +158 -0
- package/dist/src/bootstrap/synchronizers/sync-entities.test.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-entity-options.d.ts +11 -0
- package/dist/src/bootstrap/synchronizers/sync-entity-options.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-entity-options.js +3 -0
- package/dist/src/bootstrap/synchronizers/sync-entity-options.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-modules-config.d.ts +4 -0
- package/dist/src/bootstrap/synchronizers/sync-modules-config.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-modules-config.js +28 -0
- package/dist/src/bootstrap/synchronizers/sync-modules-config.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-operations.d.ts +5 -0
- package/dist/src/bootstrap/synchronizers/sync-operations.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-operations.js +41 -0
- package/dist/src/bootstrap/synchronizers/sync-operations.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-role-operations.d.ts +8 -0
- package/dist/src/bootstrap/synchronizers/sync-role-operations.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-role-operations.js +74 -0
- package/dist/src/bootstrap/synchronizers/sync-role-operations.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-roles.d.ts +5 -0
- package/dist/src/bootstrap/synchronizers/sync-roles.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-roles.js +41 -0
- package/dist/src/bootstrap/synchronizers/sync-roles.js.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-shared-libraries.d.ts +4 -0
- package/dist/src/bootstrap/synchronizers/sync-shared-libraries.d.ts.map +1 -0
- package/dist/src/bootstrap/synchronizers/sync-shared-libraries.js +32 -0
- package/dist/src/bootstrap/synchronizers/sync-shared-libraries.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +19 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/utils/compare-lists-by.d.ts +23 -0
- package/dist/src/utils/compare-lists-by.d.ts.map +1 -0
- package/dist/src/utils/compare-lists-by.js +34 -0
- package/dist/src/utils/compare-lists-by.js.map +1 -0
- package/dist/src/utils/format-diff.d.ts +106 -0
- package/dist/src/utils/format-diff.d.ts.map +1 -0
- package/dist/src/utils/format-diff.js +166 -0
- package/dist/src/utils/format-diff.js.map +1 -0
- package/dist/src/utils/format-diff.test.d.ts +2 -0
- package/dist/src/utils/format-diff.test.d.ts.map +1 -0
- package/dist/src/utils/format-diff.test.js +242 -0
- package/dist/src/utils/format-diff.test.js.map +1 -0
- package/dist/src/utils/get-common-keys.d.ts +6 -0
- package/dist/src/utils/get-common-keys.d.ts.map +1 -0
- package/dist/src/utils/get-common-keys.js +9 -0
- package/dist/src/utils/get-common-keys.js.map +1 -0
- package/dist/src/utils/io.d.ts +3 -0
- package/dist/src/utils/io.d.ts.map +1 -0
- package/dist/src/utils/io.js +13 -0
- package/dist/src/utils/io.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-bootstrap-applications.js","sourceRoot":"","sources":["../../../src/bootstrap/read-bootstrap-applications.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { PAE } from "@bluealba/pae-core";
|
|
2
|
+
import { BootstrapSyncMetadata } from "./domain/bootstrap-sync-metadata.interface";
|
|
3
|
+
export declare const runBootstrapSync: (pae: PAE, config: BootstrapSyncMetadata) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=run-bootstrap-sync.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-bootstrap-sync.service.d.ts","sourceRoot":"","sources":["../../../src/bootstrap/run-bootstrap-sync.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAQnF,eAAO,MAAM,gBAAgB,GAC3B,KAAK,GAAG,EACR,QAAQ,qBAAqB,kBAa9B,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.runBootstrapSync = void 0;
|
|
13
|
+
const sync_catalog_1 = require("./synchronizers/sync-catalog");
|
|
14
|
+
const sync_shared_libraries_1 = require("./synchronizers/sync-shared-libraries");
|
|
15
|
+
const sync_applications_1 = require("./synchronizers/sync-applications");
|
|
16
|
+
const sync_authz_entities_1 = require("./synchronizers/sync-authz-entities");
|
|
17
|
+
const sync_modules_config_1 = require("./synchronizers/sync-modules-config");
|
|
18
|
+
const runBootstrapSync = (pae, config) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
const { catalog, sharedLibraries, applicationsAuthz, rolesAuthz, operationsAuthz, modulesConfig, syncConfig } = config;
|
|
20
|
+
yield (0, sync_catalog_1.syncCatalog)(pae, catalog, syncConfig);
|
|
21
|
+
yield (0, sync_modules_config_1.syncModulesConfig)(pae, modulesConfig);
|
|
22
|
+
yield (0, sync_shared_libraries_1.syncSharedLibraries)(pae, sharedLibraries, syncConfig);
|
|
23
|
+
yield (0, sync_applications_1.syncApplications)(pae, applicationsAuthz, syncConfig);
|
|
24
|
+
yield (0, sync_authz_entities_1.syncAuthzEntities)(pae, rolesAuthz, operationsAuthz, syncConfig);
|
|
25
|
+
});
|
|
26
|
+
exports.runBootstrapSync = runBootstrapSync;
|
|
27
|
+
//# sourceMappingURL=run-bootstrap-sync.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-bootstrap-sync.service.js","sourceRoot":"","sources":["../../../src/bootstrap/run-bootstrap-sync.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,+DAA2D;AAC3D,iFAA4E;AAC5E,yEAAqE;AACrE,6EAAwE;AACxE,6EAAwE;AAGjE,MAAM,gBAAgB,GAAG,CAC9B,GAAQ,EACR,MAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAEvH,MAAM,IAAA,0BAAW,EAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAE5C,MAAM,IAAA,uCAAiB,EAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAE5C,MAAM,IAAA,2CAAmB,EAAC,GAAG,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IAE5D,MAAM,IAAA,oCAAgB,EAAC,GAAG,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAE3D,MAAM,IAAA,uCAAiB,EAAC,GAAG,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;AACxE,CAAC,CAAA,CAAA;AAfY,QAAA,gBAAgB,oBAe5B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { PAE } from "@bluealba/pae-core";
|
|
2
|
+
import { BootstrapSyncMetadata } from "../domain/bootstrap-sync-metadata.interface";
|
|
3
|
+
export declare const syncApplications: (pae: PAE, applications: BootstrapSyncMetadata["applicationsAuthz"], syncConfig: BootstrapSyncMetadata["syncConfig"]) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=sync-applications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-applications.d.ts","sourceRoot":"","sources":["../../../../src/bootstrap/synchronizers/sync-applications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,GAAG,EAAiC,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAIpF,eAAO,MAAM,gBAAgB,GAC3B,KAAK,GAAG,EACR,cAAc,qBAAqB,CAAC,mBAAmB,CAAC,EACxD,YAAY,qBAAqB,CAAC,YAAY,CAAC,kBAuBhD,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
+
t[p] = s[p];
|
|
15
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
+
t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.syncApplications = void 0;
|
|
27
|
+
const entity_synchronizer_1 = require("../entity-synchronizer");
|
|
28
|
+
const sync_entities_1 = __importDefault(require("./sync-entities"));
|
|
29
|
+
const syncApplications = (pae, applications, syncConfig) => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
|
+
yield (0, sync_entities_1.default)({
|
|
31
|
+
name: 'Applications',
|
|
32
|
+
data: applications !== null && applications !== void 0 ? applications : [],
|
|
33
|
+
scopedTo: syncConfig.scopedTo,
|
|
34
|
+
synchronizer: {
|
|
35
|
+
keyComparator: (a, b) => a.name === b.name,
|
|
36
|
+
fetch: () => __awaiter(void 0, void 0, void 0, function* () { return (yield pae.getAllApplications()).filter(app => !app.isGlobal); }),
|
|
37
|
+
add: (data) => pae.createApplication(data),
|
|
38
|
+
update: (_a) => {
|
|
39
|
+
var { name } = _a, rest = __rest(_a, ["name"]);
|
|
40
|
+
return pae.updateApplication(Object.assign({ applicationName: name }, rest));
|
|
41
|
+
},
|
|
42
|
+
remove: (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
|
+
if (data.isGlobal) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
yield pae.deleteApplication({ applicationName: data.name });
|
|
47
|
+
}),
|
|
48
|
+
hasChanged: (0, entity_synchronizer_1.createHasChangedFn)(),
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
exports.syncApplications = syncApplications;
|
|
53
|
+
//# sourceMappingURL=sync-applications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-applications.js","sourceRoot":"","sources":["../../../../src/bootstrap/synchronizers/sync-applications.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,gEAA4D;AAC5D,oEAA2C;AAEpC,MAAM,gBAAgB,GAAG,CAC9B,GAAQ,EACR,YAAwD,EACxD,UAA+C,EAC/C,EAAE;IACF,MAAM,IAAA,uBAAY,EAAoC;QACpD,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE;QACxB,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,YAAY,EAAE;YACZ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;YAC1C,KAAK,EAAE,GAAS,EAAE,kDAAC,OAAA,CAAC,MAAM,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA,GAAA;YAChF,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;YAC1C,MAAM,EAAE,CAAC,EAAiB,EAAE,EAAE;oBAArB,EAAE,IAAI,OAAW,EAAN,IAAI,cAAf,QAAiB,CAAF;gBAAO,OAAA,GAAG,CAAC,iBAAiB,iBAClD,eAAe,EAAE,IAAI,IAClB,IAAI,EACP,CAAA;aAAA;YACF,MAAM,EAAE,CAAO,IAAI,EAAE,EAAE;gBACrB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,OAAO;gBACT,CAAC;gBACD,MAAM,GAAG,CAAC,iBAAiB,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAA;YACD,UAAU,EAAE,IAAA,wCAAkB,GAAE;SACjC;KACF,CAAC,CAAC;AACL,CAAC,CAAA,CAAA;AA1BY,QAAA,gBAAgB,oBA0B5B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BootstrapSyncMetadata } from "../domain/bootstrap-sync-metadata.interface";
|
|
2
|
+
import { PAE } from "@bluealba/pae-core";
|
|
3
|
+
/**
|
|
4
|
+
* Synchronizes all the authorization entities: applications, operations and roles.
|
|
5
|
+
* Once we promote application to be the top level platform entity it won't be here tied to the authorization
|
|
6
|
+
* concept.
|
|
7
|
+
* We should start thinking in synchronizing "apps". Then apps have different concepts that belong to different
|
|
8
|
+
* concerns. Some concepts might be cross-concern.
|
|
9
|
+
*/
|
|
10
|
+
export declare const syncAuthzEntities: (pae: PAE, roles: BootstrapSyncMetadata["rolesAuthz"], operations: BootstrapSyncMetadata["operationsAuthz"], syncConfig: BootstrapSyncMetadata["syncConfig"]) => Promise<void>;
|
|
11
|
+
//# sourceMappingURL=sync-authz-entities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-authz-entities.d.ts","sourceRoot":"","sources":["../../../../src/bootstrap/synchronizers/sync-authz-entities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAIpF,OAAO,EAA2B,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAIlE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,KAAK,GAAG,EACR,OAAO,qBAAqB,CAAC,YAAY,CAAC,EAC1C,YAAY,qBAAqB,CAAC,iBAAiB,CAAC,EACpD,YAAY,qBAAqB,CAAC,YAAY,CAAC,kBAqBhD,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.syncAuthzEntities = void 0;
|
|
16
|
+
const ramda_1 = require("ramda");
|
|
17
|
+
const sync_roles_1 = __importDefault(require("./sync-roles"));
|
|
18
|
+
const sync_operations_1 = __importDefault(require("./sync-operations"));
|
|
19
|
+
const sync_role_operations_1 = __importDefault(require("./sync-role-operations"));
|
|
20
|
+
const pae_core_1 = require("@bluealba/pae-core");
|
|
21
|
+
const PARALLEL_BATCH_SIZE = 5;
|
|
22
|
+
/**
|
|
23
|
+
* Synchronizes all the authorization entities: applications, operations and roles.
|
|
24
|
+
* Once we promote application to be the top level platform entity it won't be here tied to the authorization
|
|
25
|
+
* concept.
|
|
26
|
+
* We should start thinking in synchronizing "apps". Then apps have different concepts that belong to different
|
|
27
|
+
* concerns. Some concepts might be cross-concern.
|
|
28
|
+
*/
|
|
29
|
+
const syncAuthzEntities = (pae, roles, operations, syncConfig) => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
|
+
if (roles && roles.length) {
|
|
31
|
+
yield synchBatchingPerApplication(roles, (applicationName, list) => (0, sync_roles_1.default)(pae, list !== null && list !== void 0 ? list : [], applicationName !== null && applicationName !== void 0 ? applicationName : pae_core_1.GLOBAL_APPLICATION_NAME, syncConfig));
|
|
32
|
+
}
|
|
33
|
+
if (operations && operations.length) {
|
|
34
|
+
yield synchBatchingPerApplication(operations, (applicationName, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
yield (0, sync_operations_1.default)(pae, (data !== null && data !== void 0 ? data : []).map(op => {
|
|
36
|
+
var _a;
|
|
37
|
+
return (Object.assign(Object.assign({}, (0, ramda_1.omit)(['roles'], op)), { applicationName: (_a = op.applicationName) !== null && _a !== void 0 ? _a : pae_core_1.GLOBAL_APPLICATION_NAME }));
|
|
38
|
+
}), applicationName, syncConfig);
|
|
39
|
+
yield processBatch(data !== null && data !== void 0 ? data : [], PARALLEL_BATCH_SIZE, operation => (0, sync_role_operations_1.default)(pae, operation, applicationName, syncConfig));
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
exports.syncAuthzEntities = syncAuthzEntities;
|
|
44
|
+
const groupByApplication = (entities) => (0, ramda_1.groupBy)(e => { var _a; return (_a = e.applicationName) !== null && _a !== void 0 ? _a : ''; }, entities);
|
|
45
|
+
const processBatch = (items, batchSize, processor) => __awaiter(void 0, void 0, void 0, function* () {
|
|
46
|
+
for (const batch of (0, ramda_1.splitEvery)(batchSize, items)) {
|
|
47
|
+
yield Promise.all(batch.map(processor));
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
const synchBatchingPerApplication = (entities, processor) => {
|
|
51
|
+
const groupedBy = groupByApplication(entities);
|
|
52
|
+
return processBatch(Object.entries(groupedBy), PARALLEL_BATCH_SIZE, (_a) => __awaiter(void 0, [_a], void 0, function* ([applicationName, elements]) {
|
|
53
|
+
if (elements) {
|
|
54
|
+
return processor(applicationName || pae_core_1.GLOBAL_APPLICATION_NAME, elements);
|
|
55
|
+
}
|
|
56
|
+
}));
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=sync-authz-entities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-authz-entities.js","sourceRoot":"","sources":["../../../../src/bootstrap/synchronizers/sync-authz-entities.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAkD;AAElD,8DAAqC;AACrC,wEAA+C;AAC/C,kFAAwD;AACxD,iDAAkE;AAElE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B;;;;;;GAMG;AACI,MAAM,iBAAiB,GAAG,CAC/B,GAAQ,EACR,KAA0C,EAC1C,UAAoD,EACpD,UAA+C,EAC/C,EAAE;IAEF,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,2BAA2B,CAAC,KAAK,EAAE,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,CACjE,IAAA,oBAAS,EAAC,GAAG,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,kCAAuB,EAAE,UAAU,CAAC,CACnF,CAAA;IACH,CAAC;IAED,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,2BAA2B,CAAC,UAAU,EAAE,CAAO,eAAe,EAAE,IAAI,EAAE,EAAE;YAC5E,MAAM,IAAA,yBAAc,EAAC,GAAG,EAAE,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;;gBAAC,OAAA,iCAC5C,IAAA,YAAI,EAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,KACtB,eAAe,EAAE,MAAA,EAAE,CAAC,eAAe,mCAAI,kCAAuB,IAC9D,CAAA;aAAA,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;YAElC,MAAM,YAAY,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAE,CAC9D,IAAA,8BAAkB,EAAC,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,CAAC,CAChE,CAAC;QACJ,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA,CAAC;AAzBW,QAAA,iBAAiB,qBAyB5B;AAQF,MAAM,kBAAkB,GAAG,CAA8B,QAAa,EAAE,EAAE,CACxE,IAAA,eAAO,EAAC,CAAC,CAAC,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,eAAe,mCAAI,EAAE,CAAA,EAAA,EAAE,QAAQ,CAAC,CAAA;AAEjD,MAAM,YAAY,GAAG,CACnB,KAAU,EACV,SAAiB,EACjB,SAAoC,EACrB,EAAE;IACjB,KAAK,MAAM,KAAK,IAAI,IAAA,kBAAU,EAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC,CAAA,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAA8B,QAAa,EAAE,SAAgE,EAAE,EAAE;IACnJ,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IAC9C,OAAO,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,mBAAmB,EAAE,KAAoC,EAAE,4CAA/B,CAAC,eAAe,EAAE,QAAQ,CAAC;QACpG,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,eAAe,IAAI,kCAAuB,EAAE,QAAQ,CAAC,CAAA;QACxE,CAAC;IACH,CAAC,CAAA,CAAC,CAAA;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { PAE } from "@bluealba/pae-core";
|
|
2
|
+
import { BootstrapSyncMetadata } from "../domain/bootstrap-sync-metadata.interface";
|
|
3
|
+
export declare const syncCatalog: (pae: PAE, catalog: BootstrapSyncMetadata["catalog"], syncConfig: BootstrapSyncMetadata["syncConfig"]) => Promise<void>;
|
|
4
|
+
export declare const isOwned: (owner: string, entity: any) => boolean;
|
|
5
|
+
//# sourceMappingURL=sync-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-catalog.d.ts","sourceRoot":"","sources":["../../../../src/bootstrap/synchronizers/sync-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,GAAG,EAEJ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAKpF,eAAO,MAAM,WAAW,GAAU,KAAK,GAAG,EAAE,SAAS,qBAAqB,CAAC,SAAS,CAAC,EAAE,YAAY,qBAAqB,CAAC,YAAY,CAAC,kBAgBrI,CAAA;AAsCD,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,EAAE,QAAQ,GAAG,YAAgC,CAAA"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.isOwned = exports.syncCatalog = void 0;
|
|
16
|
+
const pae_core_1 = require("@bluealba/pae-core");
|
|
17
|
+
const entity_synchronizer_1 = require("../entity-synchronizer");
|
|
18
|
+
const sync_entities_1 = __importDefault(require("./sync-entities"));
|
|
19
|
+
const ramda_1 = require("ramda");
|
|
20
|
+
const syncCatalog = (pae, catalog, syncConfig) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
if (catalog) {
|
|
22
|
+
yield (0, sync_entities_1.default)({
|
|
23
|
+
name: 'catalog-modules',
|
|
24
|
+
data: setModuleDefaults(catalog !== null && catalog !== void 0 ? catalog : []),
|
|
25
|
+
scopedTo: syncConfig.scopedTo,
|
|
26
|
+
synchronizer: {
|
|
27
|
+
keyComparator: (local, remote) => local.name === remote.name,
|
|
28
|
+
fetch: () => pae.getAllModules(),
|
|
29
|
+
add: module => pae.createModule(module),
|
|
30
|
+
update: module => pae.updateModule(module),
|
|
31
|
+
remove: module => pae.deleteModule(module.name),
|
|
32
|
+
hasChanged: (0, entity_synchronizer_1.createHasChangedFn)(['version']),
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
exports.syncCatalog = syncCatalog;
|
|
38
|
+
/**
|
|
39
|
+
* NOTE !
|
|
40
|
+
* This is IMPORTANT ! See note in ModuleMetadata type.
|
|
41
|
+
* The API objects from the DB will have default values injected so it won't match the JSON objects input of bootstrap
|
|
42
|
+
* So we must also here set the defaults in case they have no values ! Otherwise they will always be computed as
|
|
43
|
+
* different.
|
|
44
|
+
*/
|
|
45
|
+
const setModuleDefaults = (modules) => {
|
|
46
|
+
modules.forEach(m => {
|
|
47
|
+
var _a, _b;
|
|
48
|
+
if ((0, ramda_1.isNil)(m.service.protocol)) {
|
|
49
|
+
m.service.protocol = 'http';
|
|
50
|
+
}
|
|
51
|
+
if ((0, ramda_1.isNil)(m.service.includeBaseURL)) {
|
|
52
|
+
m.service.includeBaseURL = false;
|
|
53
|
+
}
|
|
54
|
+
if (m.ui && (0, ramda_1.isNil)(m.ui.isPlatformCustomization)) {
|
|
55
|
+
m.ui.isPlatformCustomization = false;
|
|
56
|
+
}
|
|
57
|
+
if (m.ui && (0, ramda_1.isNil)(m.ui.shell)) {
|
|
58
|
+
m.ui.shell = false;
|
|
59
|
+
}
|
|
60
|
+
// Always compute isPublic using the same logic as the API
|
|
61
|
+
// This ensures bootstrap modules match API-returned modules
|
|
62
|
+
// Note: This computation takes precedence even if isPublic is explicitly set
|
|
63
|
+
// (e.g., shell=true always makes isPublic=true regardless of explicit value)
|
|
64
|
+
m.isPublic = (0, pae_core_1.computeIsPublic)({
|
|
65
|
+
shell: (_a = m.ui) === null || _a === void 0 ? void 0 : _a.shell,
|
|
66
|
+
isPlatformCustomization: (_b = m.ui) === null || _b === void 0 ? void 0 : _b.isPlatformCustomization,
|
|
67
|
+
}, m.isPublic);
|
|
68
|
+
});
|
|
69
|
+
return modules;
|
|
70
|
+
};
|
|
71
|
+
const isOwned = (owner, entity) => (entity === null || entity === void 0 ? void 0 : entity.createdBy) === owner;
|
|
72
|
+
exports.isOwned = isOwned;
|
|
73
|
+
//# sourceMappingURL=sync-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-catalog.js","sourceRoot":"","sources":["../../../../src/bootstrap/synchronizers/sync-catalog.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iDAK4B;AAE5B,gEAA4D;AAC5D,oEAA2C;AAC3C,iCAA8B;AAEvB,MAAM,WAAW,GAAG,CAAO,GAAQ,EAAE,OAAyC,EAAE,UAA+C,EAAE,EAAE;IACxI,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAA,uBAAY,EAAuC;YACvD,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,iBAAiB,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;YACtC,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,YAAY,EAAE;gBACZ,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;gBAC5D,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE;gBAChC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;gBACvC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;gBAC1C,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC/C,UAAU,EAAE,IAAA,wCAAkB,EAAC,CAAC,SAAS,CAAC,CAAC;aAC5C;SACF,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAA,CAAA;AAhBY,QAAA,WAAW,eAgBvB;AAED;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,CAAC,OAA+B,EAAE,EAAE;IAC5D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;QAClB,IAAI,IAAA,aAAK,EAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAA;QAC7B,CAAC;QACD,IAAI,IAAA,aAAK,EAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACpC,CAAC,CAAC,OAAO,CAAC,cAAc,GAAG,KAAK,CAAA;QAClC,CAAC;QACD,IAAI,CAAC,CAAC,EAAE,IAAI,IAAA,aAAK,EAAC,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC;YAChD,CAAC,CAAC,EAAE,CAAC,uBAAuB,GAAG,KAAK,CAAA;QACtC,CAAC;QACD,IAAI,CAAC,CAAC,EAAE,IAAI,IAAA,aAAK,EAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAA;QACpB,CAAC;QACD,0DAA0D;QAC1D,4DAA4D;QAC5D,6EAA6E;QAC7E,6EAA6E;QAC7E,CAAC,CAAC,QAAQ,GAAG,IAAA,0BAAe,EAC1B;YACE,KAAK,EAAE,MAAA,CAAC,CAAC,EAAE,0CAAE,KAAK;YAClB,uBAAuB,EAAE,MAAA,CAAC,CAAC,EAAE,0CAAE,uBAAuB;SACvD,EACD,CAAC,CAAC,QAAQ,CACX,CAAC;IACJ,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAEM,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,MAAW,EAAE,EAAE,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,MAAK,KAAK,CAAA;AAArE,QAAA,OAAO,WAA8D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EntitySynchronizer } from "../../entity-synchronizer";
|
|
2
|
+
/**
|
|
3
|
+
* Performs deletes on entities that should be removed.
|
|
4
|
+
*
|
|
5
|
+
* Logging behavior (controlled by DEBUG_MODE env var):
|
|
6
|
+
* - false/unset (default): Shows summary of deletes only
|
|
7
|
+
* - true: Shows details of each entity being deleted
|
|
8
|
+
*/
|
|
9
|
+
declare const performDeletes: <TEntity, TData>(name: string, toDELETE: TEntity[], synchronizer: EntitySynchronizer<TEntity, TData>, scopedTo: string) => Promise<void>;
|
|
10
|
+
export default performDeletes;
|
|
11
|
+
//# sourceMappingURL=performDeletes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performDeletes.d.ts","sourceRoot":"","sources":["../../../../../src/bootstrap/synchronizers/sync-entities/performDeletes.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAQ7D;;;;;;GAMG;AACH,QAAA,MAAM,cAAc,GAAU,OAAO,EAAE,KAAK,EAAG,MAAM,MAAM,EAAE,UAAU,OAAO,EAAE,EAAE,cAAc,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,UAAU,MAAM,kBAiBnJ,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const ramda_1 = require("ramda");
|
|
13
|
+
const sync_catalog_1 = require("../sync-catalog");
|
|
14
|
+
const format_diff_1 = require("../../../utils/format-diff");
|
|
15
|
+
/**
|
|
16
|
+
* Performs deletes on entities that should be removed.
|
|
17
|
+
*
|
|
18
|
+
* Logging behavior (controlled by DEBUG_MODE env var):
|
|
19
|
+
* - false/unset (default): Shows summary of deletes only
|
|
20
|
+
* - true: Shows details of each entity being deleted
|
|
21
|
+
*/
|
|
22
|
+
const performDeletes = (name, toDELETE, synchronizer, scopedTo) => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
const entitiesToDelete = toDELETE.filter(entity => (0, sync_catalog_1.isOwned)(scopedTo, entity));
|
|
24
|
+
if (!(0, ramda_1.isEmpty)(entitiesToDelete)) {
|
|
25
|
+
// Always log summary
|
|
26
|
+
console.log((0, format_diff_1.formatOperationSummary)(name, 'DELETE', entitiesToDelete.length));
|
|
27
|
+
// Log entity details only in debug mode
|
|
28
|
+
if ((0, format_diff_1.shouldLogDiff)()) {
|
|
29
|
+
entitiesToDelete.forEach(entity => {
|
|
30
|
+
console.log((0, format_diff_1.formatEntityDetail)(entity));
|
|
31
|
+
console.log(' Data:', JSON.stringify(entity, null, 2));
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
yield Promise.all(entitiesToDelete.map(synchronizer.remove));
|
|
36
|
+
});
|
|
37
|
+
exports.default = performDeletes;
|
|
38
|
+
//# sourceMappingURL=performDeletes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performDeletes.js","sourceRoot":"","sources":["../../../../../src/bootstrap/synchronizers/sync-entities/performDeletes.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iCAA8B;AAE9B,kDAAwC;AACxC,4DAIoC;AAEpC;;;;;;GAMG;AACH,MAAM,cAAc,GAAG,CAAwB,IAAY,EAAE,QAAmB,EAAE,YAAgD,EAAE,QAAgB,EAAE,EAAE;IACtJ,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAA,sBAAO,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IAE7E,IAAI,CAAC,IAAA,eAAO,EAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/B,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,IAAA,oCAAsB,EAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAE7E,wCAAwC;QACxC,IAAI,IAAA,2BAAa,GAAE,EAAE,CAAC;YACpB,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAChC,OAAO,CAAC,GAAG,CAAC,IAAA,gCAAkB,EAAC,MAAa,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAA,CAAA;AAED,kBAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EntitySynchronizer } from "../../entity-synchronizer";
|
|
2
|
+
/**
|
|
3
|
+
* Performs updates on entities that have changed.
|
|
4
|
+
* Uses the improved hasChanged function by default which automatically ignores audit fields.
|
|
5
|
+
*
|
|
6
|
+
* Logging behavior (controlled by DEBUG_MODE env var):
|
|
7
|
+
* - false/unset (default): Shows summary of updates only
|
|
8
|
+
* - true: Shows detailed diffs for each entity being updated
|
|
9
|
+
*/
|
|
10
|
+
declare const performUpdates: <TEntity, TData = TEntity>(name: string, inBOTH: Array<[TData, TEntity]>, synchronizer: EntitySynchronizer<TEntity, TData>, scopedTo: string) => Promise<void>;
|
|
11
|
+
export default performUpdates;
|
|
12
|
+
//# sourceMappingURL=performUpdates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performUpdates.d.ts","sourceRoot":"","sources":["../../../../../src/bootstrap/synchronizers/sync-entities/performUpdates.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AASvF;;;;;;;GAOG;AACH,QAAA,MAAM,cAAc,GAAU,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,MAAM,MAAM,EAAE,QAAQ,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,cAAc,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,UAAU,MAAM,kBAoBxK,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const ramda_1 = require("ramda");
|
|
13
|
+
const entity_synchronizer_1 = require("../../entity-synchronizer");
|
|
14
|
+
const sync_catalog_1 = require("../sync-catalog");
|
|
15
|
+
const format_diff_1 = require("../../../utils/format-diff");
|
|
16
|
+
/**
|
|
17
|
+
* Performs updates on entities that have changed.
|
|
18
|
+
* Uses the improved hasChanged function by default which automatically ignores audit fields.
|
|
19
|
+
*
|
|
20
|
+
* Logging behavior (controlled by DEBUG_MODE env var):
|
|
21
|
+
* - false/unset (default): Shows summary of updates only
|
|
22
|
+
* - true: Shows detailed diffs for each entity being updated
|
|
23
|
+
*/
|
|
24
|
+
const performUpdates = (name, inBOTH, synchronizer, scopedTo) => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
|
+
var _a;
|
|
26
|
+
const hasChanged = (_a = synchronizer.hasChanged) !== null && _a !== void 0 ? _a : entity_synchronizer_1.DEFAULT_HAS_CHANGED_FN;
|
|
27
|
+
const toUpdate = inBOTH.filter(([data, entity]) => hasChanged(data, entity));
|
|
28
|
+
const entitiesToUpdate = toUpdate.filter(([, entity]) => (0, sync_catalog_1.isOwned)(scopedTo, entity));
|
|
29
|
+
if (!(0, ramda_1.isEmpty)(entitiesToUpdate)) {
|
|
30
|
+
// Always log summary
|
|
31
|
+
console.log((0, format_diff_1.formatOperationSummary)(name, 'UPDATE', entitiesToUpdate.length));
|
|
32
|
+
// Log detailed diffs only in debug mode
|
|
33
|
+
if ((0, format_diff_1.shouldLogDiff)()) {
|
|
34
|
+
entitiesToUpdate.forEach(([data, entity]) => {
|
|
35
|
+
const diffOutput = (0, format_diff_1.formatEntityDiff)(entity, data);
|
|
36
|
+
console.log((0, format_diff_1.formatEntityDetail)(entity, diffOutput));
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
yield Promise.all(entitiesToUpdate.map(([data, entity]) => synchronizer.update(data, entity)));
|
|
41
|
+
});
|
|
42
|
+
exports.default = performUpdates;
|
|
43
|
+
//# sourceMappingURL=performUpdates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performUpdates.js","sourceRoot":"","sources":["../../../../../src/bootstrap/synchronizers/sync-entities/performUpdates.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iCAAgC;AAChC,mEAAuF;AACvF,kDAA0C;AAC1C,4DAKoC;AAEpC;;;;;;;GAOG;AACH,MAAM,cAAc,GAAG,CAAiC,IAAY,EAAE,MAA+B,EAAE,YAAgD,EAAE,QAAgB,EAAE,EAAE;;IAC3K,MAAM,UAAU,GAAG,MAAA,YAAY,CAAC,UAAU,mCAAI,4CAAsB,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE7E,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,IAAA,sBAAO,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IAEnF,IAAI,CAAC,IAAA,eAAO,EAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/B,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,IAAA,oCAAsB,EAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAE7E,wCAAwC;QACxC,IAAI,IAAA,2BAAa,GAAE,EAAE,CAAC;YACpB,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;gBAC1C,MAAM,UAAU,GAAG,IAAA,8BAAgB,EAAC,MAAa,EAAE,IAAW,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,IAAA,gCAAkB,EAAC,MAAa,EAAE,UAAU,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACjG,CAAC,CAAA,CAAA;AAED,kBAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SyncEntityOptions } from './sync-entity-options';
|
|
2
|
+
/**
|
|
3
|
+
* Synchronizes a list of entities from the data definition
|
|
4
|
+
* against the current state in the Synchronizer.
|
|
5
|
+
* This strategy object knows how to
|
|
6
|
+
* - fetch all the current entities
|
|
7
|
+
* - transform entity
|
|
8
|
+
* - add/delete/update entity
|
|
9
|
+
*
|
|
10
|
+
* This function does all the work to compute the difference and dispatch the appropriated method
|
|
11
|
+
* calls in the synchronizer
|
|
12
|
+
*
|
|
13
|
+
* Logging behavior (controlled by DEBUG_MODE env var):
|
|
14
|
+
* - false/unset (default): Shows operation summaries only
|
|
15
|
+
* - true: Shows detailed information for each entity
|
|
16
|
+
*/
|
|
17
|
+
declare const syncEntities: <TEntity, TData>(opts: SyncEntityOptions<TEntity, TData>) => Promise<void>;
|
|
18
|
+
export default syncEntities;
|
|
19
|
+
//# sourceMappingURL=sync-entities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-entities.d.ts","sourceRoot":"","sources":["../../../../src/bootstrap/synchronizers/sync-entities.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAS1D;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,YAAY,GAAU,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,kBAiClF,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const ramda_1 = require("ramda");
|
|
16
|
+
const compare_lists_by_1 = __importDefault(require("../../utils/compare-lists-by"));
|
|
17
|
+
const performDeletes_1 = __importDefault(require("./sync-entities/performDeletes"));
|
|
18
|
+
const performUpdates_1 = __importDefault(require("./sync-entities/performUpdates"));
|
|
19
|
+
const format_diff_1 = require("../../utils/format-diff");
|
|
20
|
+
/**
|
|
21
|
+
* Synchronizes a list of entities from the data definition
|
|
22
|
+
* against the current state in the Synchronizer.
|
|
23
|
+
* This strategy object knows how to
|
|
24
|
+
* - fetch all the current entities
|
|
25
|
+
* - transform entity
|
|
26
|
+
* - add/delete/update entity
|
|
27
|
+
*
|
|
28
|
+
* This function does all the work to compute the difference and dispatch the appropriated method
|
|
29
|
+
* calls in the synchronizer
|
|
30
|
+
*
|
|
31
|
+
* Logging behavior (controlled by DEBUG_MODE env var):
|
|
32
|
+
* - false/unset (default): Shows operation summaries only
|
|
33
|
+
* - true: Shows detailed information for each entity
|
|
34
|
+
*/
|
|
35
|
+
const syncEntities = (opts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
+
const { name, data, synchronizer, scopedTo } = opts;
|
|
37
|
+
console.log(`Synchronizing ${name} - START ...`);
|
|
38
|
+
const { inBOTH, toADD, toDELETE } = (0, compare_lists_by_1.default)(synchronizer.keyComparator, data, yield synchronizer.fetch());
|
|
39
|
+
// add
|
|
40
|
+
if (!(0, ramda_1.isEmpty)(toADD)) {
|
|
41
|
+
// Always log summary
|
|
42
|
+
console.log((0, format_diff_1.formatOperationSummary)(name, 'ADD', toADD.length));
|
|
43
|
+
// Log entity details only in debug mode
|
|
44
|
+
if ((0, format_diff_1.shouldLogDiff)()) {
|
|
45
|
+
toADD.forEach(entity => {
|
|
46
|
+
console.log((0, format_diff_1.formatEntityDetail)(entity));
|
|
47
|
+
console.log(' Data:', JSON.stringify(entity, null, 2));
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
yield Promise.all(toADD.map(synchronizer.add));
|
|
52
|
+
// deletes
|
|
53
|
+
yield (0, performDeletes_1.default)(name, toDELETE, synchronizer, scopedTo);
|
|
54
|
+
// updates
|
|
55
|
+
yield (0, performUpdates_1.default)(name, inBOTH, synchronizer, scopedTo);
|
|
56
|
+
console.log(`Synchronizing ${name} - COMPLETED !`);
|
|
57
|
+
});
|
|
58
|
+
exports.default = syncEntities;
|
|
59
|
+
//# sourceMappingURL=sync-entities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-entities.js","sourceRoot":"","sources":["../../../../src/bootstrap/synchronizers/sync-entities.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iCAAgC;AAChC,oFAA0D;AAE1D,oFAA4D;AAC5D,oFAA4D;AAC5D,yDAIiC;AAEjC;;;;;;;;;;;;;;GAcG;AACH,MAAM,YAAY,GAAG,CAAuB,IAAuC,EAAE,EAAE;IACrF,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEpD,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,cAAc,CAAC,CAAC;IAEjD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAA,0BAAc,EAChD,YAAY,CAAC,aAAa,EAC1B,IAAI,EACJ,MAAM,YAAY,CAAC,KAAK,EAAE,CAC3B,CAAC;IAEF,MAAM;IACN,IAAI,CAAC,IAAA,eAAO,EAAC,KAAK,CAAC,EAAE,CAAC;QACpB,qBAAqB;QACrB,OAAO,CAAC,GAAG,CAAC,IAAA,oCAAsB,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/D,wCAAwC;QACxC,IAAI,IAAA,2BAAa,GAAE,EAAE,CAAC;YACpB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACrB,OAAO,CAAC,GAAG,CAAC,IAAA,gCAAkB,EAAC,MAAa,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/C,UAAU;IACV,MAAM,IAAA,wBAAc,EAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAE7D,UAAU;IACV,MAAM,IAAA,wBAAc,EAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAA;IAE1D,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,gBAAgB,CAAC,CAAC;AACrD,CAAC,CAAA,CAAC;AAEF,kBAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-entities.test.d.ts","sourceRoot":"","sources":["../../../../src/bootstrap/synchronizers/sync-entities.test.ts"],"names":[],"mappings":""}
|