@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.
Files changed (115) hide show
  1. package/LICENSE +134 -0
  2. package/README.md +43 -0
  3. package/dist/src/bootstrap/bootstrap-platform.d.ts +32 -0
  4. package/dist/src/bootstrap/bootstrap-platform.d.ts.map +1 -0
  5. package/dist/src/bootstrap/bootstrap-platform.js +75 -0
  6. package/dist/src/bootstrap/bootstrap-platform.js.map +1 -0
  7. package/dist/src/bootstrap/domain/bootstrap-sync-metadata.interface.d.ts +37 -0
  8. package/dist/src/bootstrap/domain/bootstrap-sync-metadata.interface.d.ts.map +1 -0
  9. package/dist/src/bootstrap/domain/bootstrap-sync-metadata.interface.js +3 -0
  10. package/dist/src/bootstrap/domain/bootstrap-sync-metadata.interface.js.map +1 -0
  11. package/dist/src/bootstrap/domain/domain-validation.test.d.ts +2 -0
  12. package/dist/src/bootstrap/domain/domain-validation.test.d.ts.map +1 -0
  13. package/dist/src/bootstrap/domain/domain-validation.test.js +1872 -0
  14. package/dist/src/bootstrap/domain/domain-validation.test.js.map +1 -0
  15. package/dist/src/bootstrap/entity-synchronizer.d.ts +53 -0
  16. package/dist/src/bootstrap/entity-synchronizer.d.ts.map +1 -0
  17. package/dist/src/bootstrap/entity-synchronizer.js +69 -0
  18. package/dist/src/bootstrap/entity-synchronizer.js.map +1 -0
  19. package/dist/src/bootstrap/entity-synchronizer.test.d.ts +2 -0
  20. package/dist/src/bootstrap/entity-synchronizer.test.d.ts.map +1 -0
  21. package/dist/src/bootstrap/entity-synchronizer.test.js +270 -0
  22. package/dist/src/bootstrap/entity-synchronizer.test.js.map +1 -0
  23. package/dist/src/bootstrap/fix-created-by.d.ts +10 -0
  24. package/dist/src/bootstrap/fix-created-by.d.ts.map +1 -0
  25. package/dist/src/bootstrap/fix-created-by.js +36 -0
  26. package/dist/src/bootstrap/fix-created-by.js.map +1 -0
  27. package/dist/src/bootstrap/initialize-pae-client.d.ts +7 -0
  28. package/dist/src/bootstrap/initialize-pae-client.d.ts.map +1 -0
  29. package/dist/src/bootstrap/initialize-pae-client.js +24 -0
  30. package/dist/src/bootstrap/initialize-pae-client.js.map +1 -0
  31. package/dist/src/bootstrap/read-bootstrap-applications.d.ts +10 -0
  32. package/dist/src/bootstrap/read-bootstrap-applications.d.ts.map +1 -0
  33. package/dist/src/bootstrap/read-bootstrap-applications.js +650 -0
  34. package/dist/src/bootstrap/read-bootstrap-applications.js.map +1 -0
  35. package/dist/src/bootstrap/run-bootstrap-sync.service.d.ts +4 -0
  36. package/dist/src/bootstrap/run-bootstrap-sync.service.d.ts.map +1 -0
  37. package/dist/src/bootstrap/run-bootstrap-sync.service.js +27 -0
  38. package/dist/src/bootstrap/run-bootstrap-sync.service.js.map +1 -0
  39. package/dist/src/bootstrap/synchronizers/sync-applications.d.ts +4 -0
  40. package/dist/src/bootstrap/synchronizers/sync-applications.d.ts.map +1 -0
  41. package/dist/src/bootstrap/synchronizers/sync-applications.js +53 -0
  42. package/dist/src/bootstrap/synchronizers/sync-applications.js.map +1 -0
  43. package/dist/src/bootstrap/synchronizers/sync-authz-entities.d.ts +11 -0
  44. package/dist/src/bootstrap/synchronizers/sync-authz-entities.d.ts.map +1 -0
  45. package/dist/src/bootstrap/synchronizers/sync-authz-entities.js +58 -0
  46. package/dist/src/bootstrap/synchronizers/sync-authz-entities.js.map +1 -0
  47. package/dist/src/bootstrap/synchronizers/sync-catalog.d.ts +5 -0
  48. package/dist/src/bootstrap/synchronizers/sync-catalog.d.ts.map +1 -0
  49. package/dist/src/bootstrap/synchronizers/sync-catalog.js +73 -0
  50. package/dist/src/bootstrap/synchronizers/sync-catalog.js.map +1 -0
  51. package/dist/src/bootstrap/synchronizers/sync-entities/performDeletes.d.ts +11 -0
  52. package/dist/src/bootstrap/synchronizers/sync-entities/performDeletes.d.ts.map +1 -0
  53. package/dist/src/bootstrap/synchronizers/sync-entities/performDeletes.js +38 -0
  54. package/dist/src/bootstrap/synchronizers/sync-entities/performDeletes.js.map +1 -0
  55. package/dist/src/bootstrap/synchronizers/sync-entities/performUpdates.d.ts +12 -0
  56. package/dist/src/bootstrap/synchronizers/sync-entities/performUpdates.d.ts.map +1 -0
  57. package/dist/src/bootstrap/synchronizers/sync-entities/performUpdates.js +43 -0
  58. package/dist/src/bootstrap/synchronizers/sync-entities/performUpdates.js.map +1 -0
  59. package/dist/src/bootstrap/synchronizers/sync-entities.d.ts +19 -0
  60. package/dist/src/bootstrap/synchronizers/sync-entities.d.ts.map +1 -0
  61. package/dist/src/bootstrap/synchronizers/sync-entities.js +59 -0
  62. package/dist/src/bootstrap/synchronizers/sync-entities.js.map +1 -0
  63. package/dist/src/bootstrap/synchronizers/sync-entities.test.d.ts +2 -0
  64. package/dist/src/bootstrap/synchronizers/sync-entities.test.d.ts.map +1 -0
  65. package/dist/src/bootstrap/synchronizers/sync-entities.test.js +158 -0
  66. package/dist/src/bootstrap/synchronizers/sync-entities.test.js.map +1 -0
  67. package/dist/src/bootstrap/synchronizers/sync-entity-options.d.ts +11 -0
  68. package/dist/src/bootstrap/synchronizers/sync-entity-options.d.ts.map +1 -0
  69. package/dist/src/bootstrap/synchronizers/sync-entity-options.js +3 -0
  70. package/dist/src/bootstrap/synchronizers/sync-entity-options.js.map +1 -0
  71. package/dist/src/bootstrap/synchronizers/sync-modules-config.d.ts +4 -0
  72. package/dist/src/bootstrap/synchronizers/sync-modules-config.d.ts.map +1 -0
  73. package/dist/src/bootstrap/synchronizers/sync-modules-config.js +28 -0
  74. package/dist/src/bootstrap/synchronizers/sync-modules-config.js.map +1 -0
  75. package/dist/src/bootstrap/synchronizers/sync-operations.d.ts +5 -0
  76. package/dist/src/bootstrap/synchronizers/sync-operations.d.ts.map +1 -0
  77. package/dist/src/bootstrap/synchronizers/sync-operations.js +41 -0
  78. package/dist/src/bootstrap/synchronizers/sync-operations.js.map +1 -0
  79. package/dist/src/bootstrap/synchronizers/sync-role-operations.d.ts +8 -0
  80. package/dist/src/bootstrap/synchronizers/sync-role-operations.d.ts.map +1 -0
  81. package/dist/src/bootstrap/synchronizers/sync-role-operations.js +74 -0
  82. package/dist/src/bootstrap/synchronizers/sync-role-operations.js.map +1 -0
  83. package/dist/src/bootstrap/synchronizers/sync-roles.d.ts +5 -0
  84. package/dist/src/bootstrap/synchronizers/sync-roles.d.ts.map +1 -0
  85. package/dist/src/bootstrap/synchronizers/sync-roles.js +41 -0
  86. package/dist/src/bootstrap/synchronizers/sync-roles.js.map +1 -0
  87. package/dist/src/bootstrap/synchronizers/sync-shared-libraries.d.ts +4 -0
  88. package/dist/src/bootstrap/synchronizers/sync-shared-libraries.d.ts.map +1 -0
  89. package/dist/src/bootstrap/synchronizers/sync-shared-libraries.js +32 -0
  90. package/dist/src/bootstrap/synchronizers/sync-shared-libraries.js.map +1 -0
  91. package/dist/src/index.d.ts +3 -0
  92. package/dist/src/index.d.ts.map +1 -0
  93. package/dist/src/index.js +19 -0
  94. package/dist/src/index.js.map +1 -0
  95. package/dist/src/utils/compare-lists-by.d.ts +23 -0
  96. package/dist/src/utils/compare-lists-by.d.ts.map +1 -0
  97. package/dist/src/utils/compare-lists-by.js +34 -0
  98. package/dist/src/utils/compare-lists-by.js.map +1 -0
  99. package/dist/src/utils/format-diff.d.ts +106 -0
  100. package/dist/src/utils/format-diff.d.ts.map +1 -0
  101. package/dist/src/utils/format-diff.js +166 -0
  102. package/dist/src/utils/format-diff.js.map +1 -0
  103. package/dist/src/utils/format-diff.test.d.ts +2 -0
  104. package/dist/src/utils/format-diff.test.d.ts.map +1 -0
  105. package/dist/src/utils/format-diff.test.js +242 -0
  106. package/dist/src/utils/format-diff.test.js.map +1 -0
  107. package/dist/src/utils/get-common-keys.d.ts +6 -0
  108. package/dist/src/utils/get-common-keys.d.ts.map +1 -0
  109. package/dist/src/utils/get-common-keys.js +9 -0
  110. package/dist/src/utils/get-common-keys.js.map +1 -0
  111. package/dist/src/utils/io.d.ts +3 -0
  112. package/dist/src/utils/io.d.ts.map +1 -0
  113. package/dist/src/utils/io.js +13 -0
  114. package/dist/src/utils/io.js.map +1 -0
  115. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sync-entities.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-entities.test.d.ts","sourceRoot":"","sources":["../../../../src/bootstrap/synchronizers/sync-entities.test.ts"],"names":[],"mappings":""}