@eventcatalog/core 4.12.2 → 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.
- package/dist/analytics/analytics.cjs +1 -1
- package/dist/analytics/analytics.js +2 -2
- package/dist/analytics/log-build.cjs +1 -1
- package/dist/analytics/log-build.js +3 -3
- package/dist/{chunk-RPVA2SZY.js → chunk-5BPN6QEC.js} +1 -1
- package/dist/{chunk-WK4J6FP3.js → chunk-HPC6KUDQ.js} +1 -1
- package/dist/{chunk-GTIC4R74.js → chunk-M577VUOX.js} +1 -1
- package/dist/{chunk-IVVM67LN.js → chunk-TV3YAWKQ.js} +1 -1
- package/dist/{chunk-ZW3MYAWF.js → chunk-ZYTCBNB3.js} +1 -1
- package/dist/constants.cjs +1 -1
- package/dist/constants.js +1 -1
- package/dist/eventcatalog.cjs +1 -1
- package/dist/eventcatalog.js +10 -10
- package/dist/federation/federate.js +2 -2
- package/dist/generate.cjs +1 -1
- package/dist/generate.js +3 -3
- package/dist/utils/cli-logger.cjs +1 -1
- package/dist/utils/cli-logger.js +2 -2
- package/eventcatalog/src/content.config.ts +6 -0
- package/eventcatalog/src/utils/node-graphs/catalog-force-graph.ts +1 -0
- package/eventcatalog/src/utils/node-graphs/export-mermaid.ts +11 -0
- package/eventcatalog/src/utils/node-graphs/flows-node-graph.ts +23 -1
- package/package.json +4 -4
|
@@ -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.
|
|
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-
|
|
3
|
+
} from "../chunk-M577VUOX.js";
|
|
4
4
|
import "../chunk-ZAZHAVKB.js";
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
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
|
package/dist/constants.cjs
CHANGED
package/dist/constants.js
CHANGED
package/dist/eventcatalog.cjs
CHANGED
|
@@ -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.
|
|
184
|
+
var version = "4.12.3";
|
|
185
185
|
|
|
186
186
|
// src/constants.ts
|
|
187
187
|
var VERSION = version;
|
package/dist/eventcatalog.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
log_build_default
|
|
3
|
+
} from "./chunk-M577VUOX.js";
|
|
4
|
+
import "./chunk-ZAZHAVKB.js";
|
|
1
5
|
import {
|
|
2
6
|
runMigrations
|
|
3
7
|
} from "./chunk-XUAF2H54.js";
|
|
4
8
|
import "./chunk-CA4U2JP7.js";
|
|
5
|
-
import {
|
|
6
|
-
log_build_default
|
|
7
|
-
} from "./chunk-GTIC4R74.js";
|
|
8
|
-
import "./chunk-ZAZHAVKB.js";
|
|
9
9
|
import {
|
|
10
10
|
FederationConflictError,
|
|
11
11
|
FederationDiagnosticError,
|
|
@@ -14,14 +14,14 @@ import {
|
|
|
14
14
|
import "./chunk-WRNH5C3U.js";
|
|
15
15
|
import "./chunk-5EPNFDT5.js";
|
|
16
16
|
import "./chunk-A2RZR3U4.js";
|
|
17
|
+
import "./chunk-SDZQJTJW.js";
|
|
18
|
+
import "./chunk-352FGP6W.js";
|
|
17
19
|
import "./chunk-R7Z5ALYI.js";
|
|
18
20
|
import {
|
|
19
21
|
getFederationDiagnosticCounts,
|
|
20
22
|
getVisibleFederationDiagnostics
|
|
21
23
|
} from "./chunk-JJPB6EOZ.js";
|
|
22
24
|
import "./chunk-FV56YFM4.js";
|
|
23
|
-
import "./chunk-SDZQJTJW.js";
|
|
24
|
-
import "./chunk-352FGP6W.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-
|
|
33
|
+
} from "./chunk-TV3YAWKQ.js";
|
|
34
34
|
import {
|
|
35
35
|
logger
|
|
36
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
66
|
+
} from "./chunk-HPC6KUDQ.js";
|
|
67
67
|
import {
|
|
68
68
|
getEventCatalogConfigFile,
|
|
69
69
|
verifyRequiredFieldsAreInCatalogConfigFile
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
import "../chunk-WRNH5C3U.js";
|
|
7
7
|
import "../chunk-5EPNFDT5.js";
|
|
8
8
|
import "../chunk-A2RZR3U4.js";
|
|
9
|
+
import "../chunk-SDZQJTJW.js";
|
|
10
|
+
import "../chunk-352FGP6W.js";
|
|
9
11
|
import "../chunk-R7Z5ALYI.js";
|
|
10
12
|
import "../chunk-JJPB6EOZ.js";
|
|
11
13
|
import "../chunk-FV56YFM4.js";
|
|
12
|
-
import "../chunk-SDZQJTJW.js";
|
|
13
|
-
import "../chunk-352FGP6W.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.
|
|
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-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
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
|
package/dist/utils/cli-logger.js
CHANGED
|
@@ -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,
|
|
@@ -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.
|
|
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.
|
|
137
|
-
"@eventcatalog/sdk": "2.29.
|
|
138
|
-
"@eventcatalog/visualiser": "^4.1.
|
|
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",
|