@eventcatalog/core 4.12.1 → 4.12.3

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.
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(analytics_exports);
36
36
  var import_os = __toESM(require("os"), 1);
37
37
 
38
38
  // package.json
39
- var version = "4.12.1";
39
+ var version = "4.12.3";
40
40
 
41
41
  // src/constants.ts
42
42
  var VERSION = version;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  raiseEvent
3
- } from "../chunk-HH6GPY4H.js";
4
- import "../chunk-HHZFKWX7.js";
3
+ } from "../chunk-ZYTCBNB3.js";
4
+ import "../chunk-HPC6KUDQ.js";
5
5
  export {
6
6
  raiseEvent
7
7
  };
@@ -176,7 +176,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
176
176
  var import_os = __toESM(require("os"), 1);
177
177
 
178
178
  // package.json
179
- var version = "4.12.1";
179
+ var version = "4.12.3";
180
180
 
181
181
  // src/constants.ts
182
182
  var VERSION = version;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  log_build_default
3
- } from "../chunk-UWSBZYF5.js";
4
- import "../chunk-HH6GPY4H.js";
3
+ } from "../chunk-M577VUOX.js";
5
4
  import "../chunk-ZAZHAVKB.js";
6
- import "../chunk-HHZFKWX7.js";
5
+ import "../chunk-ZYTCBNB3.js";
6
+ import "../chunk-HPC6KUDQ.js";
7
7
  import "../chunk-RFIXKATC.js";
8
8
  export {
9
9
  log_build_default as default
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-HHZFKWX7.js";
3
+ } from "./chunk-HPC6KUDQ.js";
4
4
 
5
5
  // src/utils/cli-logger.ts
6
6
  import pc from "picocolors";
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "4.12.1";
2
+ var version = "4.12.3";
3
3
 
4
4
  // src/constants.ts
5
5
  var VERSION = version;
@@ -1,11 +1,11 @@
1
- import {
2
- raiseEvent
3
- } from "./chunk-HH6GPY4H.js";
4
1
  import {
5
2
  countResources,
6
3
  hashCatalogContent,
7
4
  serializeCounts
8
5
  } from "./chunk-ZAZHAVKB.js";
6
+ import {
7
+ raiseEvent
8
+ } from "./chunk-ZYTCBNB3.js";
9
9
  import {
10
10
  getEventCatalogConfigFile,
11
11
  verifyRequiredFieldsAreInCatalogConfigFile
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  logger
3
- } from "./chunk-DZZDBFUM.js";
3
+ } from "./chunk-5BPN6QEC.js";
4
4
  import {
5
5
  cleanup,
6
6
  getEventCatalogConfigFile
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-HHZFKWX7.js";
3
+ } from "./chunk-HPC6KUDQ.js";
4
4
 
5
5
  // src/analytics/analytics.js
6
6
  import os from "os";
@@ -25,7 +25,7 @@ __export(constants_exports, {
25
25
  module.exports = __toCommonJS(constants_exports);
26
26
 
27
27
  // package.json
28
- var version = "4.12.1";
28
+ var version = "4.12.3";
29
29
 
30
30
  // src/constants.ts
31
31
  var VERSION = version;
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  VERSION
3
- } from "./chunk-HHZFKWX7.js";
3
+ } from "./chunk-HPC6KUDQ.js";
4
4
  export {
5
5
  VERSION
6
6
  };
@@ -181,7 +181,7 @@ var verifyRequiredFieldsAreInCatalogConfigFile = async (projectDirectory) => {
181
181
  var import_picocolors = __toESM(require("picocolors"), 1);
182
182
 
183
183
  // package.json
184
- var version = "4.12.1";
184
+ var version = "4.12.3";
185
185
 
186
186
  // src/constants.ts
187
187
  var VERSION = version;
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  log_build_default
3
- } from "./chunk-UWSBZYF5.js";
4
- import "./chunk-HH6GPY4H.js";
3
+ } from "./chunk-M577VUOX.js";
5
4
  import "./chunk-ZAZHAVKB.js";
6
5
  import {
7
6
  runMigrations
@@ -11,17 +10,18 @@ import {
11
10
  FederationConflictError,
12
11
  FederationDiagnosticError,
13
12
  federateCatalog
14
- } from "./chunk-WRLNLWPW.js";
15
- import {
16
- getFederationDiagnosticCounts,
17
- getVisibleFederationDiagnostics
18
- } from "./chunk-JJPB6EOZ.js";
19
- import "./chunk-FV56YFM4.js";
13
+ } from "./chunk-U4YJSTGV.js";
20
14
  import "./chunk-WRNH5C3U.js";
21
15
  import "./chunk-5EPNFDT5.js";
22
16
  import "./chunk-A2RZR3U4.js";
23
17
  import "./chunk-SDZQJTJW.js";
24
18
  import "./chunk-352FGP6W.js";
19
+ import "./chunk-R7Z5ALYI.js";
20
+ import {
21
+ getFederationDiagnosticCounts,
22
+ getVisibleFederationDiagnostics
23
+ } from "./chunk-JJPB6EOZ.js";
24
+ import "./chunk-FV56YFM4.js";
25
25
  import {
26
26
  getProjectOutDir,
27
27
  isAuthEnabled,
@@ -30,10 +30,10 @@ import {
30
30
  } from "./chunk-MDWB5HLO.js";
31
31
  import {
32
32
  generate
33
- } from "./chunk-EVXNBTRA.js";
33
+ } from "./chunk-TV3YAWKQ.js";
34
34
  import {
35
35
  logger
36
- } from "./chunk-DZZDBFUM.js";
36
+ } from "./chunk-5BPN6QEC.js";
37
37
  import {
38
38
  resolve_catalog_dependencies_default
39
39
  } from "./chunk-36RYTYT5.js";
@@ -47,7 +47,7 @@ import {
47
47
  import {
48
48
  watch
49
49
  } from "./chunk-U63GDPPY.js";
50
- import "./chunk-R7Z5ALYI.js";
50
+ import "./chunk-ZYTCBNB3.js";
51
51
  import {
52
52
  getAstroConfigPath
53
53
  } from "./chunk-VIJJ7JKH.js";
@@ -63,7 +63,7 @@ import {
63
63
  } from "./chunk-LFQJXLHG.js";
64
64
  import {
65
65
  VERSION
66
- } from "./chunk-HHZFKWX7.js";
66
+ } from "./chunk-HPC6KUDQ.js";
67
67
  import {
68
68
  getEventCatalogConfigFile,
69
69
  verifyRequiredFieldsAreInCatalogConfigFile
@@ -2,15 +2,15 @@ import {
2
2
  FederationConflictError,
3
3
  FederationDiagnosticError,
4
4
  federateCatalog
5
- } from "../chunk-WRLNLWPW.js";
6
- import "../chunk-JJPB6EOZ.js";
7
- import "../chunk-FV56YFM4.js";
5
+ } from "../chunk-U4YJSTGV.js";
8
6
  import "../chunk-WRNH5C3U.js";
9
7
  import "../chunk-5EPNFDT5.js";
10
8
  import "../chunk-A2RZR3U4.js";
11
9
  import "../chunk-SDZQJTJW.js";
12
10
  import "../chunk-352FGP6W.js";
13
11
  import "../chunk-R7Z5ALYI.js";
12
+ import "../chunk-JJPB6EOZ.js";
13
+ import "../chunk-FV56YFM4.js";
14
14
  import "../chunk-RFIXKATC.js";
15
15
  export {
16
16
  FederationConflictError,
package/dist/generate.cjs CHANGED
@@ -112,7 +112,7 @@ var getEventCatalogConfigFile = async (projectDirectory) => {
112
112
  var import_picocolors = __toESM(require("picocolors"), 1);
113
113
 
114
114
  // package.json
115
- var version = "4.12.1";
115
+ var version = "4.12.3";
116
116
 
117
117
  // src/constants.ts
118
118
  var VERSION = version;
package/dist/generate.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  generate
3
- } from "./chunk-EVXNBTRA.js";
4
- import "./chunk-DZZDBFUM.js";
5
- import "./chunk-HHZFKWX7.js";
3
+ } from "./chunk-TV3YAWKQ.js";
4
+ import "./chunk-5BPN6QEC.js";
5
+ import "./chunk-HPC6KUDQ.js";
6
6
  import "./chunk-RFIXKATC.js";
7
7
  export {
8
8
  generate
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(cli_logger_exports);
36
36
  var import_picocolors = __toESM(require("picocolors"), 1);
37
37
 
38
38
  // package.json
39
- var version = "4.12.1";
39
+ var version = "4.12.3";
40
40
 
41
41
  // src/constants.ts
42
42
  var VERSION = version;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  logger
3
- } from "../chunk-DZZDBFUM.js";
4
- import "../chunk-HHZFKWX7.js";
3
+ } from "../chunk-5BPN6QEC.js";
4
+ import "../chunk-HPC6KUDQ.js";
5
5
  export {
6
6
  logger
7
7
  };
@@ -276,6 +276,10 @@ const flows = defineCollection({
276
276
  message: pointer.optional(),
277
277
  agent: pointer.optional(),
278
278
  service: pointer.optional(),
279
+ // Catalog system reference. `systems` matches how authors write the
280
+ // pointer (same shape as `service`); `system` is accepted as an alias.
281
+ systems: pointer.optional(),
282
+ system: pointer.optional(),
279
283
  flow: pointer.optional(),
280
284
  container: pointer.optional(),
281
285
  dataProduct: pointer.optional(),
@@ -325,6 +329,8 @@ const flows = defineCollection({
325
329
  data.message,
326
330
  data.agent,
327
331
  data.service,
332
+ data.systems,
333
+ data.system,
328
334
  data.flow,
329
335
  data.container,
330
336
  data.dataProduct,
@@ -1,9 +1,86 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
1
4
  import shell from 'shelljs';
2
5
 
6
+ type Commit = { timestamp: number; author: string };
7
+
8
+ const COMMIT_MARKER = '\x1e';
9
+
10
+ const newestCommitsByRepository = new Map<string, Map<string, Commit> | undefined>();
11
+
3
12
  export function hasGit() {
4
13
  return !!shell.which('git');
5
14
  }
6
15
 
16
+ const runGit = (args: string[]) => {
17
+ try {
18
+ return execFileSync('git', ['-c', 'log.showSignature=false', ...args], {
19
+ encoding: 'utf8',
20
+ maxBuffer: 1024 * 1024 * 1024,
21
+ stdio: ['ignore', 'pipe', 'ignore'],
22
+ });
23
+ } catch {
24
+ return undefined;
25
+ }
26
+ };
27
+
28
+ const parseCommit = (header: string): Commit => {
29
+ const [timestamp, ...author] = header.split(',');
30
+ return { timestamp: Number(timestamp) * 1_000, author: author.join(',') };
31
+ };
32
+
33
+ // --no-renames and combined merge diffs list the same commits for a path as a per-file `git log -- <file>`.
34
+ const readNewestCommits = (): Map<string, Commit> | undefined => {
35
+ const root = runGit(['rev-parse', '--show-toplevel'])?.trim();
36
+ if (!root) return undefined;
37
+
38
+ const output =
39
+ runGit(['log', `--format=${COMMIT_MARKER}%ct,%an`, '--name-only', '--no-renames', '--diff-merges=combined', '-z']) ?? '';
40
+
41
+ const realRoot = fs.realpathSync(root);
42
+ const commits = new Map<string, Commit>();
43
+ let current: Commit | undefined;
44
+ for (const token of output.split('\0')) {
45
+ const entry = token.startsWith('\n') ? token.slice(1) : token;
46
+ if (entry.startsWith(COMMIT_MARKER)) {
47
+ current = parseCommit(entry.slice(COMMIT_MARKER.length));
48
+ } else if (entry && current) {
49
+ const file = path.join(realRoot, entry);
50
+ if (!commits.has(file)) commits.set(file, current);
51
+ }
52
+ }
53
+ return commits;
54
+ };
55
+
56
+ const getNewestCommits = () => {
57
+ const cwd = process.cwd();
58
+ if (!newestCommitsByRepository.has(cwd)) {
59
+ newestCommitsByRepository.set(cwd, readNewestCommits());
60
+ }
61
+ return newestCommitsByRepository.get(cwd);
62
+ };
63
+
64
+ const toRealPath = (filePath: string) => {
65
+ const absolutePath = path.resolve(filePath);
66
+ try {
67
+ return path.join(fs.realpathSync(path.dirname(absolutePath)), path.basename(absolutePath));
68
+ } catch {
69
+ return absolutePath;
70
+ }
71
+ };
72
+
73
+ const readCommit = (filePath: string, age: 'newest' | 'oldest'): Commit => {
74
+ const followArgs = age === 'oldest' ? ['--follow', '--diff-filter=A'] : [];
75
+ const output = runGit(['log', '--format=RESULT:%ct,%an', '--max-count=1', ...followArgs, '--', filePath])?.trim() ?? '';
76
+
77
+ const match = output.match(/(?:^|\n)RESULT:(?<header>\d+,.*)(?:$|\n)/);
78
+ if (!match?.groups) {
79
+ throw new Error(`Failed to retrieve the git history for file "${filePath}" with unexpected output: ${output}`);
80
+ }
81
+ return parseCommit(match.groups.header);
82
+ };
83
+
7
84
  export function getGitHistory(
8
85
  filePath: string,
9
86
  {
@@ -23,36 +100,19 @@ export function getGitHistory(
23
100
  throw new Error('Git is not installed');
24
101
  }
25
102
 
26
- const resultFormat = includeAuthor ? 'RESULT:%ct,%an' : 'RESULT:%ct';
27
-
28
- const args = [`--format=${resultFormat}`, '--max-count=1', age === 'oldest' ? '--follow --diff-filter=A' : undefined]
29
- .filter(Boolean)
30
- .join(' ');
31
-
32
- const command = `git -c log.showSignature=false log ${args} -- "${filePath}"`;
33
-
34
- const result = shell.exec(command, { silent: true });
35
-
36
- const regex = includeAuthor
37
- ? /(?:^|\n)RESULT:(?<timestamp>\d+),(?<author>.+)(?:$|\n)/
38
- : /(?:^|\n)RESULT:(?<timestamp>\d+)(?:$|\n)/;
39
-
40
- const output = result.stdout.trim();
41
-
42
- const match = output.match(regex);
43
-
44
- if (!match) {
45
- throw new Error(`Failed to retrieve the git history for file "${filePath}" with unexpected output: ${output}`);
103
+ let commit: Commit | undefined;
104
+ if (age === 'newest') {
105
+ const newestCommits = getNewestCommits();
106
+ if (!newestCommits) {
107
+ throw new Error(`Failed to retrieve the git history for file "${filePath}": not a git repository`);
108
+ }
109
+ commit = newestCommits.get(toRealPath(filePath));
46
110
  }
47
-
48
- const timestampInSeconds = Number(match.groups?.timestamp);
49
- const timestamp = timestampInSeconds * 1_000;
50
- const date = new Date(timestamp);
51
- const author = match.groups?.author;
111
+ commit ??= readCommit(filePath, age);
52
112
 
53
113
  return {
54
- timestamp,
55
- date,
56
- author,
114
+ timestamp: commit.timestamp,
115
+ date: new Date(commit.timestamp),
116
+ author: includeAuthor ? commit.author : undefined,
57
117
  };
58
118
  }
@@ -245,6 +245,7 @@ export const getCatalogForceGraph = async (): Promise<{ nodes: CatalogGraphNode[
245
245
  const key = nodeKey('flows', flow.data.id);
246
246
  for (const step of (flow.data as any).steps ?? []) {
247
247
  addLink(key, nodeKey('services', refId(step.service)!), 'references');
248
+ addLink(key, nodeKey('systems', refId(step.systems || step.system)!), 'references');
248
249
  addLink(key, nodeKey('agents', refId(step.agent)!), 'references');
249
250
  addLink(key, nodeKey('flows', refId(step.flow)!), 'has sub-flow');
250
251
  addLink(key, nodeKey('containers', refId(step.container)!), 'references');
@@ -35,6 +35,8 @@ const NODE_SHAPE_MAP: Record<string, [string, string]> = {
35
35
  domain: ['[', ']'],
36
36
  flows: ['([', '])'], // stadium (rounded)
37
37
  flow: ['([', '])'],
38
+ systems: ['[[', ']]'],
39
+ system: ['[[', ']]'],
38
40
  step: ['[', ']'], // rectangle
39
41
  user: ['((', '))'], // circle
40
42
  actor: ['((', '))'], // circle
@@ -72,6 +74,8 @@ const NODE_STYLE_CLASSES: Record<string, string> = {
72
74
  domain: 'fill:#eab308,stroke:#a16207,color:#000',
73
75
  flows: 'fill:#14b8a6,stroke:#0f766e,color:#fff',
74
76
  flow: 'fill:#14b8a6,stroke:#0f766e,color:#fff',
77
+ systems: 'fill:#8b5cf6,stroke:#6d28d9,color:#fff',
78
+ system: 'fill:#8b5cf6,stroke:#6d28d9,color:#fff',
75
79
  step: 'fill:#374151,stroke:#1f2937,color:#fff',
76
80
  user: 'fill:#8b5cf6,stroke:#6d28d9,color:#fff',
77
81
  actor: 'fill:#eab308,stroke:#a16207,color:#000',
@@ -181,6 +185,13 @@ export function getNodeLabel(node: Node): string {
181
185
  return formatLabelWithVersion(name, version);
182
186
  }
183
187
 
188
+ if (type === 'systems' || type === 'system') {
189
+ const system = (data as any).system;
190
+ const name = system?.name || system?.id || node.id;
191
+ const version = system?.data?.version || system?.version;
192
+ return formatLabelWithVersion(name, version);
193
+ }
194
+
184
195
  if (type === 'flows' || type === 'flow') {
185
196
  const flow = (data as any).flow;
186
197
  const name = flow?.name || flow?.id || node.id;
@@ -6,6 +6,7 @@ import {
6
6
  DEFAULT_NODE_HEIGHT,
7
7
  buildContextMenuForResource,
8
8
  buildContextMenuForService,
9
+ buildContextMenuForSystem,
9
10
  layoutDagreGraph,
10
11
  } from '@utils/node-graphs/utils/utils';
11
12
  import { MarkerType } from '@xyflow/react';
@@ -29,6 +30,7 @@ interface Maps {
29
30
  flowMap: Map<string, any[]>;
30
31
  containerMap: Map<string, any[]>;
31
32
  dataProductMap: Map<string, any[]>;
33
+ systemMap: Map<string, any[]>;
32
34
  }
33
35
 
34
36
  const getServiceNode = (step: any, serviceMap: Map<string, any[]>) => {
@@ -78,6 +80,16 @@ const getDataProductNode = (step: any, dataProductMap: Map<string, any[]>) => {
78
80
  };
79
81
  };
80
82
 
83
+ const getSystemNode = (step: any, systemMap: Map<string, any[]>) => {
84
+ const pointer = step.systems || step.system;
85
+ const system = findInMap(systemMap, pointer.id, pointer.version);
86
+ return {
87
+ ...step,
88
+ type: system ? 'systems' : 'step',
89
+ system,
90
+ };
91
+ };
92
+
81
93
  const getMessageNode = (step: any, messageMap: Map<string, any[]>) => {
82
94
  const message = findInMap(messageMap, step.message.id, step.message.version);
83
95
  return {
@@ -129,6 +141,7 @@ const buildFlowGraphInternal = (
129
141
  const hydratedSteps = steps.map((step: any) => {
130
142
  if (step.agent) return getAgentNode(step, maps.agentMap);
131
143
  if (step.service) return getServiceNode(step, maps.serviceMap);
144
+ if (step.systems || step.system) return getSystemNode(step, maps.systemMap);
132
145
  if (step.flow) return getFlowNode(step, maps.flowMap);
133
146
  if (step.container) return getContainerNode(step, maps.containerMap);
134
147
  if (step.dataProduct) return getDataProductNode(step, maps.dataProductMap);
@@ -171,6 +184,13 @@ const buildFlowGraphInternal = (
171
184
  repository: step.service.data.repository,
172
185
  });
173
186
  }
187
+ if (step.system?.data) {
188
+ node.data.system = { ...step.system.data };
189
+ node.data.contextMenu = buildContextMenuForSystem({
190
+ id: step.system.data.id,
191
+ version: step.system.data.version,
192
+ });
193
+ }
174
194
  if (step.flow) {
175
195
  node.data.flow = { ...step.flow, ...step.flow.data };
176
196
  node.data.contextMenu = buildContextMenuForResource({
@@ -274,7 +294,7 @@ const buildFlowGraphInternal = (
274
294
  export const getNodesAndEdges = async ({ id, defaultFlow, version, mode = 'simple', renderAllEdges = false }: Props) => {
275
295
  const graph = defaultFlow || createDagreGraph({ ranksep: 360, nodesep: 200 });
276
296
 
277
- const [flows, events, commands, queries, agents, services, containers, dataProducts] = await Promise.all([
297
+ const [flows, events, commands, queries, agents, services, containers, dataProducts, systems] = await Promise.all([
278
298
  getCollection('flows'),
279
299
  getCollection('events'),
280
300
  getCollection('commands'),
@@ -283,6 +303,7 @@ export const getNodesAndEdges = async ({ id, defaultFlow, version, mode = 'simpl
283
303
  getCollection('services'),
284
304
  getCollection('containers'),
285
305
  getCollection('data-products'),
306
+ getCollection('systems'),
286
307
  ]);
287
308
 
288
309
  const flow = flows.find((flow) => flow.data.id === id && flow.data.version === version);
@@ -302,6 +323,7 @@ export const getNodesAndEdges = async ({ id, defaultFlow, version, mode = 'simpl
302
323
  flowMap: createVersionedMap(flows),
303
324
  containerMap: createVersionedMap(containers),
304
325
  dataProductMap: createVersionedMap(dataProducts),
326
+ systemMap: createVersionedMap(systems),
305
327
  };
306
328
 
307
329
  const subFlowCache = new Map<string, { nodes: any[]; edges: any[] }>();
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "license": "SEE LICENSE IN LICENSE",
9
9
  "type": "module",
10
- "version": "4.12.1",
10
+ "version": "4.12.3",
11
11
  "publishConfig": {
12
12
  "access": "public"
13
13
  },
@@ -133,9 +133,9 @@
133
133
  "update-notifier": "^7.3.1",
134
134
  "uuid": "^11.1.1",
135
135
  "zod": "^4.3.6",
136
- "@eventcatalog/linter": "1.1.20",
137
- "@eventcatalog/sdk": "2.29.1",
138
- "@eventcatalog/visualiser": "^4.1.4"
136
+ "@eventcatalog/linter": "1.1.21",
137
+ "@eventcatalog/sdk": "2.29.2",
138
+ "@eventcatalog/visualiser": "^4.1.5"
139
139
  },
140
140
  "devDependencies": {
141
141
  "@astrojs/check": "^0.9.10",
@@ -1,10 +1,3 @@
1
- import {
2
- getFederationDiagnostics,
3
- resolveFederationRules
4
- } from "./chunk-JJPB6EOZ.js";
5
- import {
6
- isFederationEnabled
7
- } from "./chunk-FV56YFM4.js";
8
1
  import {
9
2
  withFederationOutputTransaction
10
3
  } from "./chunk-WRNH5C3U.js";
@@ -17,6 +10,13 @@ import {
17
10
  import {
18
11
  createFederationContentCache
19
12
  } from "./chunk-R7Z5ALYI.js";
13
+ import {
14
+ getFederationDiagnostics,
15
+ resolveFederationRules
16
+ } from "./chunk-JJPB6EOZ.js";
17
+ import {
18
+ isFederationEnabled
19
+ } from "./chunk-FV56YFM4.js";
20
20
  import {
21
21
  getEventCatalogConfigFile
22
22
  } from "./chunk-RFIXKATC.js";