@coral-viz/viz 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -7
- package/dist/compatibility/CompatibilityEdge.d.ts +12 -1
- package/dist/compatibility/CompatibilityEdge.d.ts.map +1 -1
- package/dist/compatibility/CompatibilityEdge.js +30 -5
- package/dist/compatibility/CompatibilityEdge.js.map +1 -1
- package/dist/compatibility/EndpointMarkerDefinitions.d.ts +10 -0
- package/dist/compatibility/EndpointMarkerDefinitions.d.ts.map +1 -0
- package/dist/compatibility/EndpointMarkerDefinitions.js +25 -0
- package/dist/compatibility/EndpointMarkerDefinitions.js.map +1 -0
- package/dist/compatibility/effectivePorts.d.ts +17 -0
- package/dist/compatibility/effectivePorts.d.ts.map +1 -0
- package/dist/compatibility/effectivePorts.js +31 -0
- package/dist/compatibility/effectivePorts.js.map +1 -0
- package/dist/compatibility/index.d.ts +1 -0
- package/dist/compatibility/index.d.ts.map +1 -1
- package/dist/compatibility/index.js +1 -0
- package/dist/compatibility/index.js.map +1 -1
- package/dist/compatibility/useEdgeCompatibility.d.ts.map +1 -1
- package/dist/compatibility/useEdgeCompatibility.js +10 -2
- package/dist/compatibility/useEdgeCompatibility.js.map +1 -1
- package/dist/compatibility/validateConnection.d.ts.map +1 -1
- package/dist/compatibility/validateConnection.js +22 -28
- package/dist/compatibility/validateConnection.js.map +1 -1
- package/dist/components/SequenceDiagram.d.ts +26 -0
- package/dist/components/SequenceDiagram.d.ts.map +1 -0
- package/dist/components/SequenceDiagram.js +68 -0
- package/dist/components/SequenceDiagram.js.map +1 -0
- package/dist/components/ShapeRenderer.d.ts +3 -1
- package/dist/components/ShapeRenderer.d.ts.map +1 -1
- package/dist/components/ShapeRenderer.js +5 -29
- package/dist/components/ShapeRenderer.js.map +1 -1
- package/dist/components/SymbolNode.d.ts +3 -0
- package/dist/components/SymbolNode.d.ts.map +1 -1
- package/dist/components/SymbolNode.js +61 -88
- package/dist/components/SymbolNode.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/editor/CoralEditor.d.ts +1 -1
- package/dist/editor/CoralEditor.d.ts.map +1 -1
- package/dist/editor/CoralEditor.js +13 -4
- package/dist/editor/CoralEditor.js.map +1 -1
- package/dist/editor/FileControls.d.ts +16 -1
- package/dist/editor/FileControls.d.ts.map +1 -1
- package/dist/editor/FileControls.js +21 -6
- package/dist/editor/FileControls.js.map +1 -1
- package/dist/editor/converter.d.ts +7 -2
- package/dist/editor/converter.d.ts.map +1 -1
- package/dist/editor/converter.js +18 -20
- package/dist/editor/converter.js.map +1 -1
- package/dist/file/deserialize.d.ts +2 -1
- package/dist/file/deserialize.d.ts.map +1 -1
- package/dist/file/deserialize.js +4 -4
- package/dist/file/deserialize.js.map +1 -1
- package/dist/file/index.d.ts +2 -1
- package/dist/file/index.d.ts.map +1 -1
- package/dist/file/index.js +2 -1
- package/dist/file/index.js.map +1 -1
- package/dist/file/migrate.d.ts +18 -1
- package/dist/file/migrate.d.ts.map +1 -1
- package/dist/file/migrate.js +107 -6
- package/dist/file/migrate.js.map +1 -1
- package/dist/file/portMaterialization.d.ts +19 -0
- package/dist/file/portMaterialization.d.ts.map +1 -0
- package/dist/file/portMaterialization.js +105 -0
- package/dist/file/portMaterialization.js.map +1 -0
- package/dist/file/serialize.d.ts.map +1 -1
- package/dist/file/serialize.js +42 -6
- package/dist/file/serialize.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/layout/elk.d.ts.map +1 -1
- package/dist/layout/elk.js +5 -31
- package/dist/layout/elk.js.map +1 -1
- package/dist/layout/positionStability.d.ts +2 -1
- package/dist/layout/positionStability.d.ts.map +1 -1
- package/dist/layout/positionStability.js +22 -6
- package/dist/layout/positionStability.js.map +1 -1
- package/dist/layout/useLayoutHistory.d.ts +8 -0
- package/dist/layout/useLayoutHistory.d.ts.map +1 -1
- package/dist/layout/useLayoutHistory.js +14 -3
- package/dist/layout/useLayoutHistory.js.map +1 -1
- package/dist/properties/NodePropertiesPanel.d.ts +6 -2
- package/dist/properties/NodePropertiesPanel.d.ts.map +1 -1
- package/dist/properties/NodePropertiesPanel.js +246 -28
- package/dist/properties/NodePropertiesPanel.js.map +1 -1
- package/dist/settings/useSettings.d.ts.map +1 -1
- package/dist/settings/useSettings.js +9 -2
- package/dist/settings/useSettings.js.map +1 -1
- package/dist/text-editor/TextEditor.d.ts +12 -0
- package/dist/text-editor/TextEditor.d.ts.map +1 -1
- package/dist/text-editor/TextEditor.js +52 -24
- package/dist/text-editor/TextEditor.js.map +1 -1
- package/dist/text-editor/hooks/useBidirectionalSync.d.ts +3 -2
- package/dist/text-editor/hooks/useBidirectionalSync.d.ts.map +1 -1
- package/dist/text-editor/hooks/useBidirectionalSync.js.map +1 -1
- package/dist/types.d.ts +4 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -11
package/dist/file/migrate.js
CHANGED
|
@@ -4,6 +4,93 @@
|
|
|
4
4
|
* Handles schema version upgrades for backward compatibility.
|
|
5
5
|
*/
|
|
6
6
|
import { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS } from './schema.js';
|
|
7
|
+
import { migrateGraphIR2To3, migrateIR, validateIR, } from '@graph-ir/core';
|
|
8
|
+
import { materializeReferencedPorts, stripResolvedPorts, } from './portMaterialization.js';
|
|
9
|
+
/**
|
|
10
|
+
* Move a legacy flat edge `lineStyle` into `style.lineStyle`. Coral 0.2.5 and
|
|
11
|
+
* early 0.2.6 saves spread the editor's flat field into files, although
|
|
12
|
+
* neither GraphIR 2 nor 3 allows it on an edge. An existing `style.lineStyle`
|
|
13
|
+
* wins. The input is never mutated.
|
|
14
|
+
*/
|
|
15
|
+
function moveLegacyEdgeLineStyles(graph) {
|
|
16
|
+
const edges = graph.edges;
|
|
17
|
+
if (!Array.isArray(edges))
|
|
18
|
+
return { graph, changes: [] };
|
|
19
|
+
const changes = [];
|
|
20
|
+
const moved = edges.map((edge, index) => {
|
|
21
|
+
if (!edge || typeof edge !== 'object' || !('lineStyle' in edge))
|
|
22
|
+
return edge;
|
|
23
|
+
const { lineStyle, ...rest } = edge;
|
|
24
|
+
const style = (rest.style ?? {});
|
|
25
|
+
changes.push({
|
|
26
|
+
code: 'MOVE_EDGE_LINE_STYLE', path: `/edges/${index}/lineStyle`,
|
|
27
|
+
message: style.lineStyle !== undefined && style.lineStyle !== lineStyle
|
|
28
|
+
? `Removed legacy flat lineStyle "${String(lineStyle)}"; style.lineStyle "${String(style.lineStyle)}" is kept`
|
|
29
|
+
: 'Moved legacy flat lineStyle into style.lineStyle',
|
|
30
|
+
});
|
|
31
|
+
return lineStyle === undefined && style.lineStyle === undefined
|
|
32
|
+
? rest
|
|
33
|
+
: { ...rest, style: { ...style, lineStyle: style.lineStyle ?? lineStyle } };
|
|
34
|
+
});
|
|
35
|
+
return changes.length ? { graph: { ...graph, edges: moved }, changes } : { graph, changes };
|
|
36
|
+
}
|
|
37
|
+
function migrateGraphIR(doc, options = {}) {
|
|
38
|
+
const original = doc.content.graphIR;
|
|
39
|
+
if (!original)
|
|
40
|
+
return { document: doc };
|
|
41
|
+
const { graph, changes: legacyChanges } = moveLegacyEdgeLineStyles(original);
|
|
42
|
+
if (graph.version === '3.0.0') {
|
|
43
|
+
const materialized = materializeReferencedPorts(graph, options.resolvePorts);
|
|
44
|
+
const validation = validateIR(materialized.graph);
|
|
45
|
+
if (validation.errors.length > 0) {
|
|
46
|
+
throw new Error(`Invalid GraphIR 3 document: ${validation.errors.map((error) => `${error.code} ${error.path || '/'}: ${error.message}`).join('; ')}`);
|
|
47
|
+
}
|
|
48
|
+
const stripped = stripResolvedPorts(materialized.graph, options.resolvePorts);
|
|
49
|
+
const changes = [...legacyChanges, ...materialized.changes, ...stripped.changes];
|
|
50
|
+
if (changes.length === 0)
|
|
51
|
+
return { document: doc };
|
|
52
|
+
return {
|
|
53
|
+
document: { ...doc, content: { ...doc.content, graphIR: stripped.graph } },
|
|
54
|
+
graphIR: { fromVersion: '3.0.0', toVersion: '3.0.0', changes, losses: [], diagnostics: [] },
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
let graph2 = graph;
|
|
58
|
+
const originalVersion = String(graph.version ?? 'unknown');
|
|
59
|
+
if (graph.version === '1.0' || graph.version === '1.0.0') {
|
|
60
|
+
const normalized = graph.version === '1.0'
|
|
61
|
+
? { ...graph, version: '1.0.0' }
|
|
62
|
+
: graph;
|
|
63
|
+
const first = migrateIR(normalized);
|
|
64
|
+
if (!first.success || !first.migrated) {
|
|
65
|
+
const detail = [...first.errors, ...first.losses.map((loss) => `${loss.path}: ${loss.reason}`)].join('; ');
|
|
66
|
+
throw new Error(`GraphIR 1.x document requires an explicit ambiguous-geometry migration decision: ${detail}`);
|
|
67
|
+
}
|
|
68
|
+
graph2 = first.migrated;
|
|
69
|
+
}
|
|
70
|
+
else if (graph.version !== '2.0.0') {
|
|
71
|
+
throw new Error(`Unsupported GraphIR document version: ${originalVersion}`);
|
|
72
|
+
}
|
|
73
|
+
const materialized = materializeReferencedPorts(graph2, options.resolvePorts);
|
|
74
|
+
const second = migrateGraphIR2To3(materialized.graph);
|
|
75
|
+
if (!second.success || !second.migrated) {
|
|
76
|
+
const detail = [
|
|
77
|
+
...second.errors,
|
|
78
|
+
...second.losses.map((loss) => `${loss.code} ${loss.path || '/'}: ${loss.message}`),
|
|
79
|
+
].join('; ');
|
|
80
|
+
throw new Error(`GraphIR ${originalVersion} document could not migrate to 3.0.0: ${detail}`);
|
|
81
|
+
}
|
|
82
|
+
const stripped = stripResolvedPorts(second.migrated, options.resolvePorts);
|
|
83
|
+
return {
|
|
84
|
+
document: { ...doc, content: { ...doc.content, graphIR: stripped.graph } },
|
|
85
|
+
graphIR: {
|
|
86
|
+
fromVersion: originalVersion,
|
|
87
|
+
toVersion: '3.0.0',
|
|
88
|
+
changes: [...legacyChanges, ...materialized.changes, ...second.changes, ...stripped.changes],
|
|
89
|
+
losses: second.losses,
|
|
90
|
+
diagnostics: second.diagnostics,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
7
94
|
/**
|
|
8
95
|
* Migration registry: maps "fromVersion→toVersion" to migration function
|
|
9
96
|
*/
|
|
@@ -55,15 +142,18 @@ function isKnownVersion(version) {
|
|
|
55
142
|
* @returns Migrated document at current version
|
|
56
143
|
* @throws Error if document has unknown schema version
|
|
57
144
|
*/
|
|
58
|
-
export function migrateDocument(doc) {
|
|
145
|
+
export function migrateDocument(doc, options = {}) {
|
|
146
|
+
return migrateDocumentWithDiagnostics(doc, options).document;
|
|
147
|
+
}
|
|
148
|
+
export function migrateDocumentWithDiagnostics(doc, options = {}) {
|
|
59
149
|
const currentVersion = doc.schemaVersion;
|
|
60
150
|
// Already at current version
|
|
61
151
|
if (currentVersion === CURRENT_SCHEMA_VERSION) {
|
|
62
|
-
return doc;
|
|
152
|
+
return migrateGraphIR(doc, options);
|
|
63
153
|
}
|
|
64
154
|
// 1.0 was emitted briefly before semantic-version normalization.
|
|
65
155
|
if (currentVersion === '1.0') {
|
|
66
|
-
return { ...doc, schemaVersion: CURRENT_SCHEMA_VERSION };
|
|
156
|
+
return migrateGraphIR({ ...doc, schemaVersion: CURRENT_SCHEMA_VERSION }, options);
|
|
67
157
|
}
|
|
68
158
|
// Check if version is known
|
|
69
159
|
if (!isKnownVersion(currentVersion)) {
|
|
@@ -80,7 +170,7 @@ export function migrateDocument(doc) {
|
|
|
80
170
|
result = migrateFn(result);
|
|
81
171
|
}
|
|
82
172
|
}
|
|
83
|
-
return result;
|
|
173
|
+
return migrateGraphIR(result, options);
|
|
84
174
|
}
|
|
85
175
|
/**
|
|
86
176
|
* Check if a document needs migration
|
|
@@ -89,7 +179,10 @@ export function migrateDocument(doc) {
|
|
|
89
179
|
* @returns true if document needs migration
|
|
90
180
|
*/
|
|
91
181
|
export function needsMigration(doc) {
|
|
92
|
-
|
|
182
|
+
if (doc.schemaVersion !== CURRENT_SCHEMA_VERSION)
|
|
183
|
+
return true;
|
|
184
|
+
const graph = doc.content.graphIR;
|
|
185
|
+
return graph !== undefined && graph.version !== '3.0.0';
|
|
93
186
|
}
|
|
94
187
|
/**
|
|
95
188
|
* Get the migration path for a document
|
|
@@ -98,6 +191,14 @@ export function needsMigration(doc) {
|
|
|
98
191
|
* @returns Array of migration steps, empty if no migration needed
|
|
99
192
|
*/
|
|
100
193
|
export function getMigrationSteps(doc) {
|
|
101
|
-
|
|
194
|
+
const path = getMigrationPath(doc.schemaVersion, CURRENT_SCHEMA_VERSION);
|
|
195
|
+
const graph = doc.content.graphIR;
|
|
196
|
+
if (graph?.version === '1.0' || graph?.version === '1.0.0') {
|
|
197
|
+
path.push('GraphIR 1.0.0→2.0.0', 'GraphIR 2.0.0→3.0.0');
|
|
198
|
+
}
|
|
199
|
+
else if (graph?.version === '2.0.0') {
|
|
200
|
+
path.push('GraphIR 2.0.0→3.0.0');
|
|
201
|
+
}
|
|
202
|
+
return path;
|
|
102
203
|
}
|
|
103
204
|
//# sourceMappingURL=migrate.js.map
|
package/dist/file/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/file/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/file/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,UAAU,GAIX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAmBlC;;;;;GAKG;AACH,SAAS,wBAAwB,CAAI,KAAQ;IAC3C,MAAM,KAAK,GAAI,KAA6B,CAAC,KAAK,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzD,MAAM,OAAO,GAAiC,EAAE,CAAC;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAA6B,EAAE,KAAK,EAAE,EAAE;QAC/D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7E,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,KAAK,YAAY;YAC/D,OAAO,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;gBACrE,CAAC,CAAC,kCAAkC,MAAM,CAAC,SAAS,CAAC,uBAAuB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW;gBAC9G,CAAC,CAAC,kDAAkD;SACvD,CAAC,CAAC;QACH,OAAO,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;YAC7D,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,SAAS,EAAE,EAAE,CAAC;IAChF,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC9F,CAAC;AAED,SAAS,cAAc,CAAC,GAAkB,EAAE,UAAoC,EAAE;IAChF,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,OAAuD,CAAC;IACrF,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACxC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAE7E,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,0BAA0B,CAAC,KAA2B,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACnG,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxJ,CAAC;QACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QACnD,OAAO;YACL,QAAQ,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE;YAC1E,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,GAAY,KAAK,CAAC;IAC5B,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK;YACxC,CAAC,CAAC,EAAE,GAAI,KAAiC,EAAE,OAAO,EAAE,OAAO,EAAE;YAC7D,CAAC,CAAC,KAAK,CAAC;QACV,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3G,MAAM,IAAI,KAAK,CAAC,oFAAoF,MAAM,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC1B,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,yCAAyC,eAAe,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,YAAY,GAAG,0BAA0B,CAAC,MAAiB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG;YACb,GAAG,MAAM,CAAC,MAAM;YAChB,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;SACpF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,WAAW,eAAe,yCAAyC,MAAM,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3E,OAAO;QACL,QAAQ,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE;QAC1E,OAAO,EAAE;YACP,WAAW,EAAE,eAAe;YAC5B,SAAS,EAAE,OAAO;YAClB,OAAO,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC5F,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC;KACF,CAAC;AACJ,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,GAAgC;IAC9C;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,GAAY,EAAW,EAAE;QACvC,MAAM,CAAC,GAAG,GAA8B,CAAC;QACzC,OAAO;YACL,GAAG,CAAC;YACJ,aAAa,EAAE,OAAO;SACvB,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,SAAS,gBAAgB,CAAC,WAAmB,EAAE,SAAiB;IAC9D,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAChD,CAAC;IAEF,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE1C,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,uBAAuB;IACvB,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,yBAAyB,CAAC,QAAQ,CAAC,OAAmD,CAAC,CAAC;AACjG,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,GAAkB,EAAE,UAAoC,EAAE;IACxF,OAAO,8BAA8B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,GAAkB,EAClB,UAAoC,EAAE;IAEtC,MAAM,cAAc,GAAG,GAAG,CAAC,aAAa,CAAC;IAEzC,6BAA6B;IAC7B,IAAI,cAAc,KAAK,sBAAsB,EAAE,CAAC;QAC9C,OAAO,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,iEAAiE;IACjE,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC,EAAE,GAAG,GAAG,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,2BAA2B,cAAc,IAAI;YAC3C,uBAAuB,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChE,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,MAAM,IAAI,GAAG,gBAAgB,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC;IAEtE,+BAA+B;IAC/B,IAAI,MAAM,GAAY,GAAG,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC,MAAuB,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAkB;IAC/C,IAAI,GAAG,CAAC,aAAa,KAAK,sBAAsB;QAAE,OAAO,IAAI,CAAC;IAC9D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,OAAuD,CAAC;IAClF,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAkB;IAClD,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,OAAuD,CAAC;IAClF,IAAI,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,KAAK,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;IAC1D,CAAC;SAAM,IAAI,KAAK,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { GraphIR, GraphNode } from '../types.js';
|
|
2
|
+
import type { GraphIR2To3MigrationChange } from '@graph-ir/core';
|
|
3
|
+
export type GraphPort = NonNullable<GraphNode['ports']>[number];
|
|
4
|
+
/** Resolve the complete implicit port set supplied for a node by its notation symbol. */
|
|
5
|
+
export type PortResolver = (node: GraphNode, graph: GraphIR) => readonly GraphPort[] | undefined;
|
|
6
|
+
export interface PortMaterializationResult {
|
|
7
|
+
graph: GraphIR;
|
|
8
|
+
changes: GraphIR2To3MigrationChange[];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Make implicit symbol ports portable at validation/persistence boundaries.
|
|
12
|
+
* A node with authored `ports` remains authoritative. When any referenced
|
|
13
|
+
* implicit port resolves, the symbol's complete port set is written so the
|
|
14
|
+
* node keeps every handle when a GraphIR consumer reads it.
|
|
15
|
+
*/
|
|
16
|
+
export declare function materializeReferencedPorts(graph: GraphIR, resolvePorts?: PortResolver): PortMaterializationResult;
|
|
17
|
+
/** Remove a persisted symbol-port set from the editor's source projection. */
|
|
18
|
+
export declare function stripResolvedPorts(graph: GraphIR, resolvePorts?: PortResolver): PortMaterializationResult;
|
|
19
|
+
//# sourceMappingURL=portMaterialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portMaterialization.d.ts","sourceRoot":"","sources":["../../src/file/portMaterialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,yFAAyF;AACzF,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,SAAS,EAAE,GAAG,SAAS,CAAC;AAEjG,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,0BAA0B,EAAE,CAAC;CACvC;AAiDD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,yBAAyB,CAyBjH;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,yBAAyB,CAuBzG"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
function clonePort(port) {
|
|
2
|
+
return {
|
|
3
|
+
...port,
|
|
4
|
+
...(port.properties ? { properties: { ...port.properties } } : {}),
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
function deepEqual(left, right) {
|
|
8
|
+
if (Object.is(left, right))
|
|
9
|
+
return true;
|
|
10
|
+
if (Array.isArray(left) || Array.isArray(right)) {
|
|
11
|
+
return Array.isArray(left) && Array.isArray(right) && left.length === right.length
|
|
12
|
+
&& left.every((value, index) => deepEqual(value, right[index]));
|
|
13
|
+
}
|
|
14
|
+
if (!left || !right || typeof left !== 'object' || typeof right !== 'object')
|
|
15
|
+
return false;
|
|
16
|
+
const leftRecord = left;
|
|
17
|
+
const rightRecord = right;
|
|
18
|
+
const leftKeys = Object.keys(leftRecord).sort();
|
|
19
|
+
const rightKeys = Object.keys(rightRecord).sort();
|
|
20
|
+
return leftKeys.length === rightKeys.length
|
|
21
|
+
&& leftKeys.every((key, index) => key === rightKeys[index] && deepEqual(leftRecord[key], rightRecord[key]));
|
|
22
|
+
}
|
|
23
|
+
function samePortSet(left, right) {
|
|
24
|
+
if (left.length !== right.length)
|
|
25
|
+
return false;
|
|
26
|
+
const rightById = new Map(right.map((port) => [port.id, port]));
|
|
27
|
+
return rightById.size === right.length
|
|
28
|
+
&& left.every((port) => {
|
|
29
|
+
const candidate = rightById.get(port.id);
|
|
30
|
+
return candidate !== undefined && deepEqual(port, candidate);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function referencedPorts(graph) {
|
|
34
|
+
const result = new Map();
|
|
35
|
+
const add = (nodeId, portId) => {
|
|
36
|
+
if (!portId)
|
|
37
|
+
return;
|
|
38
|
+
const ports = result.get(nodeId) ?? new Set();
|
|
39
|
+
ports.add(portId);
|
|
40
|
+
result.set(nodeId, ports);
|
|
41
|
+
};
|
|
42
|
+
for (const edge of graph.edges) {
|
|
43
|
+
add(edge.source, edge.sourcePort);
|
|
44
|
+
add(edge.target, edge.targetPort);
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Make implicit symbol ports portable at validation/persistence boundaries.
|
|
50
|
+
* A node with authored `ports` remains authoritative. When any referenced
|
|
51
|
+
* implicit port resolves, the symbol's complete port set is written so the
|
|
52
|
+
* node keeps every handle when a GraphIR consumer reads it.
|
|
53
|
+
*/
|
|
54
|
+
export function materializeReferencedPorts(graph, resolvePorts) {
|
|
55
|
+
if (!resolvePorts)
|
|
56
|
+
return { graph, changes: [] };
|
|
57
|
+
const referenced = referencedPorts(graph);
|
|
58
|
+
const changes = [];
|
|
59
|
+
const visit = (nodes, path) => nodes.map((node, index) => {
|
|
60
|
+
const nodePath = `${path}/${index}`;
|
|
61
|
+
const children = node.children ? visit(node.children, `${nodePath}/children`) : node.children;
|
|
62
|
+
if (node.ports !== undefined)
|
|
63
|
+
return children === node.children ? node : { ...node, children };
|
|
64
|
+
const required = referenced.get(node.id);
|
|
65
|
+
if (!required?.size)
|
|
66
|
+
return children === node.children ? node : { ...node, children };
|
|
67
|
+
const resolved = resolvePorts(node, graph);
|
|
68
|
+
if (!resolved?.length || ![...required].some((portId) => resolved.some((port) => port.id === portId))) {
|
|
69
|
+
return children === node.children ? node : { ...node, children };
|
|
70
|
+
}
|
|
71
|
+
changes.push({
|
|
72
|
+
code: 'MATERIALIZE_SYMBOL_PORTS',
|
|
73
|
+
path: `${nodePath}/ports`,
|
|
74
|
+
message: `Materialized ${resolved.length} notation-symbol ports for node "${node.id}"`,
|
|
75
|
+
});
|
|
76
|
+
return { ...node, ...(children ? { children } : {}), ports: resolved.map(clonePort) };
|
|
77
|
+
});
|
|
78
|
+
const nodes = visit(graph.nodes, '/nodes');
|
|
79
|
+
return changes.length > 0 ? { graph: { ...graph, nodes }, changes } : { graph, changes };
|
|
80
|
+
}
|
|
81
|
+
/** Remove a persisted symbol-port set from the editor's source projection. */
|
|
82
|
+
export function stripResolvedPorts(graph, resolvePorts) {
|
|
83
|
+
if (!resolvePorts)
|
|
84
|
+
return { graph, changes: [] };
|
|
85
|
+
const changes = [];
|
|
86
|
+
const visit = (nodes, path) => nodes.map((node, index) => {
|
|
87
|
+
const nodePath = `${path}/${index}`;
|
|
88
|
+
const children = node.children ? visit(node.children, `${nodePath}/children`) : node.children;
|
|
89
|
+
const resolved = node.ports === undefined ? undefined : resolvePorts(node, graph);
|
|
90
|
+
if (node.ports === undefined || !resolved || !samePortSet(node.ports, resolved)) {
|
|
91
|
+
return children === node.children ? node : { ...node, children };
|
|
92
|
+
}
|
|
93
|
+
const withoutPorts = { ...node };
|
|
94
|
+
delete withoutPorts.ports;
|
|
95
|
+
changes.push({
|
|
96
|
+
code: 'STRIP_SYMBOL_PORTS',
|
|
97
|
+
path: `${nodePath}/ports`,
|
|
98
|
+
message: `Restored ${resolved.length} notation-symbol ports for node "${node.id}" to implicit form`,
|
|
99
|
+
});
|
|
100
|
+
return { ...withoutPorts, ...(children ? { children } : {}) };
|
|
101
|
+
});
|
|
102
|
+
const nodes = visit(graph.nodes, '/nodes');
|
|
103
|
+
return changes.length > 0 ? { graph: { ...graph, nodes }, changes } : { graph, changes };
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=portMaterialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portMaterialization.js","sourceRoot":"","sources":["../../src/file/portMaterialization.ts"],"names":[],"mappings":"AAaA,SAAS,SAAS,CAAC,IAAe;IAChC,OAAO;QACL,GAAG,IAAI;QACP,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAa,EAAE,KAAc;IAC9C,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;eAC7E,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3F,MAAM,UAAU,GAAG,IAA+B,CAAC;IACnD,MAAM,WAAW,GAAG,KAAgC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;WACtC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,SAAS,WAAW,CAAC,IAA0B,EAAE,KAA2B;IAC1E,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;WACjC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzC,OAAO,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9C,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,MAA0B,EAAE,EAAE;QACzD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QACtD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAc,EAAE,YAA2B;IACpF,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACjD,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAiC,EAAE,CAAC;IAEjD,MAAM,KAAK,GAAG,CAAC,KAAkB,EAAE,IAAY,EAAe,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACzF,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9F,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC/F,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE,IAAI;YAAE,OAAO,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;QACtF,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC;YACtG,OAAO,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;QACnE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,GAAG,QAAQ,QAAQ;YACzB,OAAO,EAAE,gBAAgB,QAAQ,CAAC,MAAM,oCAAoC,IAAI,CAAC,EAAE,GAAG;SACvF,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3F,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAAC,KAAc,EAAE,YAA2B;IAC5E,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACjD,MAAM,OAAO,GAAiC,EAAE,CAAC;IAEjD,MAAM,KAAK,GAAG,CAAC,KAAkB,EAAE,IAAY,EAAe,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACzF,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClF,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;YAChF,OAAO,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC;QACnE,CAAC;QACD,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QACjC,OAAO,YAAY,CAAC,KAAK,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE,GAAG,QAAQ,QAAQ;YACzB,OAAO,EAAE,YAAY,QAAQ,CAAC,MAAM,oCAAoC,IAAI,CAAC,EAAE,oBAAoB;SACpG,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAe,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/file/serialize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAiC,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAKjB,MAAM,aAAa,CAAC;AAwBrB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAyC5E;
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/file/serialize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAiC,MAAM,aAAa,CAAC;AACvF,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAKjB,MAAM,aAAa,CAAC;AAwBrB;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAyC5E;AAyED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,EAAE,EAClB,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,GACnF,aAAa,CAwHf"}
|
package/dist/file/serialize.js
CHANGED
|
@@ -58,7 +58,7 @@ export function createDocument(options) {
|
|
|
58
58
|
dslType: options.content?.dslType,
|
|
59
59
|
text: options.content?.text,
|
|
60
60
|
graphIR: options.content?.graphIR ?? {
|
|
61
|
-
version: '
|
|
61
|
+
version: '3.0.0',
|
|
62
62
|
id: 'untitled',
|
|
63
63
|
nodes: [],
|
|
64
64
|
edges: [],
|
|
@@ -117,7 +117,6 @@ function edgeToGraphEdge(edge) {
|
|
|
117
117
|
label,
|
|
118
118
|
properties: edge.data?.properties,
|
|
119
119
|
...(style ? { style } : {}),
|
|
120
|
-
routingPoints: edge.data?.routingPoints,
|
|
121
120
|
};
|
|
122
121
|
if (!style)
|
|
123
122
|
delete graphEdge.style;
|
|
@@ -148,6 +147,10 @@ function extractNodePositions(nodes) {
|
|
|
148
147
|
* @returns CoralDocument
|
|
149
148
|
*/
|
|
150
149
|
export function serialize(nodes, edges, options, waypointMap) {
|
|
150
|
+
if (options.graphIR && options.graphIR.version !== '3.0.0') {
|
|
151
|
+
throw new Error(`Coral serialization requires GraphIR 3.0.0; migrate GraphIR ${String(options.graphIR.version)} ` +
|
|
152
|
+
'through the named migration APIs before saving.');
|
|
153
|
+
}
|
|
151
154
|
const now = new Date().toISOString();
|
|
152
155
|
const flatNodes = nodes.map(nodeToGraphNode);
|
|
153
156
|
const nodeIds = new Set(flatNodes.map((node) => node.id));
|
|
@@ -171,11 +174,24 @@ export function serialize(nodes, edges, options, waypointMap) {
|
|
|
171
174
|
};
|
|
172
175
|
const graphIR = {
|
|
173
176
|
...options.graphIR,
|
|
174
|
-
version: options.graphIR?.version ?? '
|
|
177
|
+
version: options.graphIR?.version ?? '3.0.0',
|
|
175
178
|
id: options.graphIR?.id ?? options.name.toLowerCase().replace(/\s+/g, '-'),
|
|
176
179
|
name: options.graphIR?.name ?? options.name,
|
|
177
|
-
|
|
178
|
-
|
|
180
|
+
// A supplied canonical graph owns authored Exact positions. React Flow
|
|
181
|
+
// coordinates are still persisted below as view state, but must not turn
|
|
182
|
+
// a released/computed position back into an authored constraint.
|
|
183
|
+
nodes: options.graphIR?.nodes.length ? options.graphIR.nodes : topLevel.map(attachChildren),
|
|
184
|
+
edges: options.graphIR?.edges.length
|
|
185
|
+
? options.graphIR.edges.map((edge) => ({
|
|
186
|
+
...edge,
|
|
187
|
+
...(edge.routeIntent ? { routeIntent: { waypoints: edge.routeIntent.waypoints.map((waypoint) => ({
|
|
188
|
+
...waypoint,
|
|
189
|
+
placement: waypoint.placement.kind === 'absolute'
|
|
190
|
+
? { ...waypoint.placement, position: { ...waypoint.placement.position } }
|
|
191
|
+
: { ...waypoint.placement, anchor: { ...waypoint.placement.anchor }, offset: { ...waypoint.placement.offset } },
|
|
192
|
+
})) } } : {}),
|
|
193
|
+
}))
|
|
194
|
+
: edges.map(edgeToGraphEdge),
|
|
179
195
|
};
|
|
180
196
|
const settings = {
|
|
181
197
|
...options.settings,
|
|
@@ -193,7 +209,27 @@ export function serialize(nodes, edges, options, waypointMap) {
|
|
|
193
209
|
if (waypoints.length > 0) {
|
|
194
210
|
const graphEdge = graphIR.edges.find((edge) => edge.id === edgeId);
|
|
195
211
|
if (graphEdge) {
|
|
196
|
-
|
|
212
|
+
const absoluteById = new Map(waypoints.map((waypoint) => [waypoint.id, waypoint]));
|
|
213
|
+
const merged = (graphEdge.routeIntent?.waypoints ?? []).flatMap((waypoint) => {
|
|
214
|
+
if (waypoint.placement.kind !== 'absolute')
|
|
215
|
+
return [waypoint];
|
|
216
|
+
const edited = absoluteById.get(waypoint.id);
|
|
217
|
+
if (!edited)
|
|
218
|
+
return [];
|
|
219
|
+
absoluteById.delete(waypoint.id);
|
|
220
|
+
return [{
|
|
221
|
+
id: edited.id,
|
|
222
|
+
placement: { kind: 'absolute', position: { x: edited.x, y: edited.y } },
|
|
223
|
+
}];
|
|
224
|
+
});
|
|
225
|
+
for (const waypoint of absoluteById.values())
|
|
226
|
+
merged.push({
|
|
227
|
+
id: waypoint.id,
|
|
228
|
+
placement: { kind: 'absolute', position: { x: waypoint.x, y: waypoint.y } },
|
|
229
|
+
});
|
|
230
|
+
graphEdge.routeIntent = {
|
|
231
|
+
waypoints: merged,
|
|
232
|
+
};
|
|
197
233
|
}
|
|
198
234
|
edgeRouting[edgeId] = {
|
|
199
235
|
bendPoints: waypoints.map((wp) => ({ x: wp.x, y: wp.y })),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/file/serialize.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/file/serialize.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,18 +6,18 @@ export { LayoutControls, type LayoutControlsProps } from './editor/index.js';
|
|
|
6
6
|
export { FileControls, type FileControlsProps } from './editor/index.js';
|
|
7
7
|
export { TextEditor, SplitEditor, useBidirectionalSync, type TextEditorProps, type SplitEditorProps, type SyntaxLanguage, type EditorTheme, type EditorSourcePosition, type EditorSourceRange, type EditorDiagnostic, type EditorDecoration, type EditorAnalysisOwner, type SplitLayout, type PrimaryPane, type SyncState, type SyncActions, type SyncOptions, type ParseFunction, type PrintFunction, type SyncParseResult, type SyncParseError, type ParseResult, type ParseError, type ChangeSource, } from './text-editor/index.js';
|
|
8
8
|
export { convertGraphToFlow, convertNode, convertEdge, flattenNodes, convertFlowToGraphNodes, convertFlowToGraphEdges, } from './editor/index.js';
|
|
9
|
-
export { ServiceNode, DatabaseNode, ExternalApiNode, ActorNode, ModuleNode, GroupNode, nodeTypes, ShapeRenderer, SymbolNode, type ShapeRendererProps, type SymbolNodeData, DiagramFontFaces, type DiagramFontFacesProps, EditProvider, useEditContext, useIsEditing, type EditProviderProps, type OnLabelEditCallback, } from './components/index.js';
|
|
9
|
+
export { ServiceNode, DatabaseNode, ExternalApiNode, ActorNode, ModuleNode, GroupNode, nodeTypes, ShapeRenderer, SymbolNode, type ShapeRendererProps, type SymbolNodeData, SequenceDiagram, type SequenceDiagramProps, type SequenceSelection, type SequenceSelectionKind, DiagramFontFaces, type DiagramFontFacesProps, EditProvider, useEditContext, useIsEditing, type EditProviderProps, type OnLabelEditCallback, } from './components/index.js';
|
|
10
10
|
export { layoutGraph, layoutFlowNodes, layoutFlowNodesWithEdges, extractEdgeSections, getElk, type LayoutFlowResult, type ElkEdgeRouting, } from './layout/index.js';
|
|
11
11
|
export { useLayoutHistory, type PositionSnapshot, type UndoRedoResult, type UseLayoutHistoryOptions, type UseLayoutHistoryResult, } from './layout/index.js';
|
|
12
12
|
export { useAxisConstrain, type UseAxisConstrainResult, } from './layout/index.js';
|
|
13
13
|
export { diffGraphs, resolvePositions, incrementalLayout, } from './layout/index.js';
|
|
14
14
|
export { useDiagramState, type ParsedGraph, type DiagramNode, type DiagramEdge, type UseDiagramStateOptions, type UseDiagramStateResult, } from './layout/index.js';
|
|
15
15
|
export { shapeRegistry, getShape, getAllShapes, } from '@coral-viz/render';
|
|
16
|
-
export { symbolRegistry, getSymbol, getSymbolsByTag, getSymbolsForNotation, getAllSymbols, getAllLibraries, flowchartSymbols, bpmnSymbols, erdSymbols, codeSymbols, architectureSymbols, aimlSymbols, dataEngineeringSymbols, sketchSymbols, } from '@coral-viz/render';
|
|
17
|
-
export { notationRegistry, getNotation, getAllNotations, validateDiagram, flowchartNotation, bpmnNotation, erdNotation, codeNotation, architectureNotation, aimlNotation, dataEngineeringNotation, sketchNotation, } from '@coral-viz/render';
|
|
18
|
-
export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, createDocument, serialize, deserialize, validateDocument, migrateDocument, needsMigration, getMigrationSteps, type CoralDocument, type DocumentMetadata, type DocumentContent, type DocumentSettings, type LayoutDirection, type LayoutSettings, type LayoutSpacing, type ViewState, type NodePosition, type DslType, type CreateDocumentOptions, type SerializeOptions, type DeserializeResult, type ValidationResult as FileValidationResult, type FontSettings, type DiagramFontSettings, type FontFamilyPreset, type FontSizePreset, DEFAULT_FONT_SETTINGS, DEFAULT_DIAGRAM_FONT_SETTINGS, FONT_FAMILY_PRESETS, FONT_SIZE_PRESETS, getFontFamilyPreset, getFontSizePreset, normalizeDiagramFontSettings, type EdgeRouting, type LayoutAlgorithm, type LayoutPresetId, type LayoutPreset, type UserPreferences, type LLMProviderPreference, type SpeechRecognitionMode, type SettingsPanelState, DEFAULT_USER_PREFERENCES, normalizeLlmMaxRetries, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, resolveNotationLayout, type LayoutProfileOverrides, type LayoutProfileDiagnostic, type ResolvedLayoutProfile, } from './file/index.js';
|
|
16
|
+
export { symbolRegistry, getSymbol, getSymbolsByTag, getSymbolsForNotation, getAllSymbols, getAllLibraries, flowchartSymbols, bpmnSymbols, erdSymbols, codeSymbols, architectureSymbols, aimlSymbols, dataEngineeringSymbols, sketchSymbols, umlSymbols, } from '@coral-viz/render';
|
|
17
|
+
export { notationRegistry, getNotation, getAllNotations, validateDiagram, flowchartNotation, bpmnNotation, erdNotation, codeNotation, architectureNotation, aimlNotation, dataEngineeringNotation, sketchNotation, umlClassNotation, } from '@coral-viz/render';
|
|
18
|
+
export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, createDocument, serialize, deserialize, validateDocument, migrateDocument, migrateDocumentWithDiagnostics, type DocumentMigrationResult, type DocumentMigrationOptions, materializeReferencedPorts, stripResolvedPorts, type GraphPort, type PortResolver, type PortMaterializationResult, needsMigration, getMigrationSteps, type CoralDocument, type DocumentMetadata, type DocumentContent, type DocumentSettings, type LayoutDirection, type LayoutSettings, type LayoutSpacing, type ViewState, type NodePosition, type DslType, type CreateDocumentOptions, type SerializeOptions, type DeserializeResult, type ValidationResult as FileValidationResult, type FontSettings, type DiagramFontSettings, type FontFamilyPreset, type FontSizePreset, DEFAULT_FONT_SETTINGS, DEFAULT_DIAGRAM_FONT_SETTINGS, FONT_FAMILY_PRESETS, FONT_SIZE_PRESETS, getFontFamilyPreset, getFontSizePreset, normalizeDiagramFontSettings, type EdgeRouting, type LayoutAlgorithm, type LayoutPresetId, type LayoutPreset, type UserPreferences, type LLMProviderPreference, type SpeechRecognitionMode, type SettingsPanelState, DEFAULT_USER_PREFERENCES, normalizeLlmMaxRetries, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, resolveNotationLayout, type LayoutProfileOverrides, type LayoutProfileDiagnostic, type ResolvedLayoutProfile, } from './file/index.js';
|
|
19
19
|
export { useSettings, type UseSettingsOptions, type UseSettingsResult, LayoutSettingsForm, type LayoutSettingsFormProps, SettingsPanel, type SettingsPanelProps, type SettingsPanelTheme, FontSettingsForm, type FontSettingsFormProps, } from './settings/index.js';
|
|
20
|
-
export { validateConnection, checkPortDirection, checkMaxConnections, getEdgeCompatibility, useEdgeCompatibility, IncompatibilityTooltip, CompatibilityEdge, getEdgeStyleForStatus, buildRoutedPath, type UseEdgeCompatibilityOptions, type UseEdgeCompatibilityResult, type IncompatibilityTooltipProps, type CompatibilityEdgeProps, type CompatibilityEdgeData, } from './compatibility/index.js';
|
|
20
|
+
export { validateConnection, checkPortDirection, checkMaxConnections, getEdgeCompatibility, useEdgeCompatibility, IncompatibilityTooltip, CompatibilityEdge, getEdgeStyleForStatus, buildRoutedPath, EndpointMarkerDefinitions, type EndpointMarkerDefinitionsProps, type UseEdgeCompatibilityOptions, type UseEdgeCompatibilityResult, type IncompatibilityTooltipProps, type CompatibilityEdgeProps, type CompatibilityEdgeData, } from './compatibility/index.js';
|
|
21
21
|
export { NodePropertiesPanel, type NodePropertiesPanelProps, type PropertyChange, detectPropertyType, isEditableProperty, parsePropertyValue, extractPropertyFields, type PropertyType, type PropertyValue, type PropertyFieldMeta, } from './properties/index.js';
|
|
22
22
|
export { createWaypoint, addWaypointToEdge, removeWaypointFromEdge, moveWaypoint, insertWaypointAtPosition, routeWithWaypoints, useWaypointManager, type EdgeWaypoint, type RoutedPath, type UseWaypointManagerOptions, type UseWaypointManagerResult, } from './waypoints/index.js';
|
|
23
23
|
export type { GraphIR, GraphNode, GraphEdge, Position, Dimensions, EdgeStyle, LayoutOptions, CoralNode, CoralEdge, CoralNodeData, CoralEdgeData, FontAwareCoralNodeData, FontAwareCoralEdgeData, CoralNodeViewMetadata, CoralEdgeViewMetadata, DimensionSource, CoralNodeProps, EditorState, EditorCallbacks, EditorConfig, PortAnchor, ShapeParameter, ShapeDefinition, SymbolPort, SymbolVariant, SymbolDefinition, SymbolLibrary, NotationEdgeStyle, ConnectionConstraints, ConnectionRule, ValidationRule, FlowPoint, NotationValidation, NotationDefinition, ShapeRegistry, SymbolRegistry, NotationRegistry, ValidationResult, PositionSource, PositionedNode, GraphDiff, PositionResolution, DiffableNode, DiffableGraph, IncompatibilityReason, ConnectionValidation, ConnectionInfo, NodeConnectionInfo, EdgeCompatibilityStatus, EdgeCompatibility, HandleDragState, ConnectionValidationContext, } from './types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EACL,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,GAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EAET,aAAa,EACb,UAAU,EACV,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,gBAAgB,EAChB,KAAK,qBAAqB,EAE1B,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,MAAM,EACN,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,aAAa,EACb,QAAQ,EACR,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,cAAc,EACd,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,sBAAsB,EACtB,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ export { convertGraphToFlow, convertNode, convertEdge, flattenNodes, convertFlow
|
|
|
12
12
|
// Components
|
|
13
13
|
export { ServiceNode, DatabaseNode, ExternalApiNode, ActorNode, ModuleNode, GroupNode, nodeTypes,
|
|
14
14
|
// New symbol-aware components
|
|
15
|
-
ShapeRenderer, SymbolNode, DiagramFontFaces,
|
|
15
|
+
ShapeRenderer, SymbolNode, SequenceDiagram, DiagramFontFaces,
|
|
16
16
|
// Edit context for inline label editing
|
|
17
17
|
EditProvider, useEditContext, useIsEditing, } from './components/index.js';
|
|
18
18
|
// Layout
|
|
@@ -25,14 +25,14 @@ export { diffGraphs, resolvePositions, incrementalLayout, } from './layout/index
|
|
|
25
25
|
export { useDiagramState, } from './layout/index.js';
|
|
26
26
|
// Shapes, Symbols, Notations (Three-Layer Architecture)
|
|
27
27
|
export { shapeRegistry, getShape, getAllShapes, } from '@coral-viz/render';
|
|
28
|
-
export { symbolRegistry, getSymbol, getSymbolsByTag, getSymbolsForNotation, getAllSymbols, getAllLibraries, flowchartSymbols, bpmnSymbols, erdSymbols, codeSymbols, architectureSymbols, aimlSymbols, dataEngineeringSymbols, sketchSymbols, } from '@coral-viz/render';
|
|
29
|
-
export { notationRegistry, getNotation, getAllNotations, validateDiagram, flowchartNotation, bpmnNotation, erdNotation, codeNotation, architectureNotation, aimlNotation, dataEngineeringNotation, sketchNotation, } from '@coral-viz/render';
|
|
28
|
+
export { symbolRegistry, getSymbol, getSymbolsByTag, getSymbolsForNotation, getAllSymbols, getAllLibraries, flowchartSymbols, bpmnSymbols, erdSymbols, codeSymbols, architectureSymbols, aimlSymbols, dataEngineeringSymbols, sketchSymbols, umlSymbols, } from '@coral-viz/render';
|
|
29
|
+
export { notationRegistry, getNotation, getAllNotations, validateDiagram, flowchartNotation, bpmnNotation, erdNotation, codeNotation, architectureNotation, aimlNotation, dataEngineeringNotation, sketchNotation, umlClassNotation, } from '@coral-viz/render';
|
|
30
30
|
// File Format (CORAL-REQ-008)
|
|
31
|
-
export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, createDocument, serialize, deserialize, validateDocument, migrateDocument, needsMigration, getMigrationSteps, DEFAULT_FONT_SETTINGS, DEFAULT_DIAGRAM_FONT_SETTINGS, FONT_FAMILY_PRESETS, FONT_SIZE_PRESETS, getFontFamilyPreset, getFontSizePreset, normalizeDiagramFontSettings, DEFAULT_USER_PREFERENCES, normalizeLlmMaxRetries, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, resolveNotationLayout, } from './file/index.js';
|
|
31
|
+
export { CURRENT_SCHEMA_VERSION, SUPPORTED_SCHEMA_VERSIONS, createDocument, serialize, deserialize, validateDocument, migrateDocument, migrateDocumentWithDiagnostics, materializeReferencedPorts, stripResolvedPorts, needsMigration, getMigrationSteps, DEFAULT_FONT_SETTINGS, DEFAULT_DIAGRAM_FONT_SETTINGS, FONT_FAMILY_PRESETS, FONT_SIZE_PRESETS, getFontFamilyPreset, getFontSizePreset, normalizeDiagramFontSettings, DEFAULT_USER_PREFERENCES, normalizeLlmMaxRetries, DEFAULT_LAYOUT_SETTINGS, LAYOUT_PRESETS, getLayoutPreset, resolveNotationLayout, } from './file/index.js';
|
|
32
32
|
// Settings (CORAL-REQ-009)
|
|
33
33
|
export { useSettings, LayoutSettingsForm, SettingsPanel, FontSettingsForm, } from './settings/index.js';
|
|
34
34
|
// Compatibility (CORAL-REQ-010)
|
|
35
|
-
export { validateConnection, checkPortDirection, checkMaxConnections, getEdgeCompatibility, useEdgeCompatibility, IncompatibilityTooltip, CompatibilityEdge, getEdgeStyleForStatus, buildRoutedPath, } from './compatibility/index.js';
|
|
35
|
+
export { validateConnection, checkPortDirection, checkMaxConnections, getEdgeCompatibility, useEdgeCompatibility, IncompatibilityTooltip, CompatibilityEdge, getEdgeStyleForStatus, buildRoutedPath, EndpointMarkerDefinitions, } from './compatibility/index.js';
|
|
36
36
|
// Properties Panel
|
|
37
37
|
export { NodePropertiesPanel,
|
|
38
38
|
// Utilities
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,UAAU,EAAyB,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,cAAc,EAA4B,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAC;AAEzE,cAAc;AACd,OAAO,EACL,UAAU,EACV,WAAW,EACX,oBAAoB,GAuBrB,MAAM,wBAAwB,CAAC;AAEhC,aAAa;AACb,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,aAAa;AACb,OAAO,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS;AACT,8BAA8B;AAC9B,aAAa,EACb,UAAU,EAGV,gBAAgB;AAEhB,wCAAwC;AACxC,YAAY,EACZ,cAAc,EACd,YAAY,GAGb,MAAM,uBAAuB,CAAC;AAE/B,SAAS;AACT,OAAO,EACL,WAAW,EACX,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,MAAM,GAGP,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,GAKjB,MAAM,mBAAmB,CAAC;AAE3B,+BAA+B;AAC/B,OAAO,EACL,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC;AAE3B,qCAAqC;AACrC,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,GAMhB,MAAM,mBAAmB,CAAC;AAE3B,wDAAwD;AACxD,OAAO,EACL,aAAa,EACb,QAAQ,EACR,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,cAAc,EACd,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,sBAAsB,EACtB,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/layout/elk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elk.d.ts","sourceRoot":"","sources":["../../src/layout/elk.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"elk.d.ts","sourceRoot":"","sources":["../../src/layout/elk.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAU7C,OAAO,KAAK,EACV,SAAS,EAAE,SAAS,EAAE,OAAO,EAAa,aAAa,EACvD,QAAQ,EAAE,UAAU,EACrB,MAAM,aAAa,CAAC;AAGrB,QAAA,MAAM,GAAG,EAAsC,OAAO,OAAO,EAAE,GAAG,CAAC;AA6BnE,wBAAsB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CASlE;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA6DD,wBAAsB,eAAe,CACnC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAClE,OAAO,CAAC,SAAS,EAAE,CAAC,CAItB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,QAAQ,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC1C;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EAAE,GAAG,SAAS,GACtC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAe7B;AAqBD,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAClE,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED,wBAAgB,MAAM,IAAI,OAAO,GAAG,CAEnC"}
|
package/dist/layout/elk.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computeElkLayout, getElkLayoutEngine, } from '@coral-viz/render/layout';
|
|
1
|
+
import { computeElkLayout, getElkLayoutEngine, resolveSpatialLayout, } from '@coral-viz/render/layout';
|
|
2
2
|
import { symbolRegistry } from '@coral-viz/render';
|
|
3
3
|
import { applyAdaptiveSizing } from './nodeSizing.js';
|
|
4
4
|
const elk = getElkLayoutEngine();
|
|
@@ -14,32 +14,6 @@ function graphOptions(options) {
|
|
|
14
14
|
spacing: options.spacing,
|
|
15
15
|
edgeRouting: options.edgeRouting,
|
|
16
16
|
hierarchyHandling: options.hierarchyHandling,
|
|
17
|
-
elkOptions: options.algorithmOptions,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
function graphNode(node) {
|
|
21
|
-
const layoutOptions = node.children?.length && !node.layoutOptions?.padding
|
|
22
|
-
? { ...node.layoutOptions, padding: {
|
|
23
|
-
top: DEFAULT_GROUP_PADDING, right: DEFAULT_GROUP_PADDING,
|
|
24
|
-
bottom: DEFAULT_GROUP_PADDING, left: DEFAULT_GROUP_PADDING,
|
|
25
|
-
} }
|
|
26
|
-
: node.layoutOptions;
|
|
27
|
-
return {
|
|
28
|
-
id: node.id,
|
|
29
|
-
width: node.dimensions?.width || DEFAULT_NODE_WIDTH,
|
|
30
|
-
height: node.dimensions?.height || DEFAULT_NODE_HEIGHT,
|
|
31
|
-
...(node.position ? { position: node.position } : {}),
|
|
32
|
-
...(node.pinned !== undefined ? { pinned: node.pinned } : {}),
|
|
33
|
-
...(node.ports !== undefined ? { ports: node.ports } : {}),
|
|
34
|
-
...(layoutOptions ? { layoutOptions } : {}),
|
|
35
|
-
...(node.children ? { children: node.children.map(graphNode) } : {}),
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
function graphEdge(edge) {
|
|
39
|
-
return {
|
|
40
|
-
id: edge.id, source: edge.source, target: edge.target,
|
|
41
|
-
...(edge.sourcePort !== undefined ? { sourcePort: edge.sourcePort } : {}),
|
|
42
|
-
...(edge.targetPort !== undefined ? { targetPort: edge.targetPort } : {}),
|
|
43
17
|
};
|
|
44
18
|
}
|
|
45
19
|
function applyGraphPositions(nodes, result) {
|
|
@@ -55,12 +29,12 @@ function applyGraphPositions(nodes, result) {
|
|
|
55
29
|
});
|
|
56
30
|
}
|
|
57
31
|
export async function layoutGraph(graph) {
|
|
58
|
-
const result = await
|
|
59
|
-
|
|
32
|
+
const result = await resolveSpatialLayout({
|
|
33
|
+
revision: `viz:${graph.id}`,
|
|
34
|
+
graph,
|
|
35
|
+
operation: 'load',
|
|
60
36
|
defaults: { algorithm: 'layered', direction: 'DOWN' },
|
|
61
37
|
options: graphOptions(graph.layoutOptions),
|
|
62
|
-
nodes: graph.nodes.map(graphNode),
|
|
63
|
-
edges: graph.edges.map(graphEdge),
|
|
64
38
|
});
|
|
65
39
|
return { ...graph, nodes: applyGraphPositions(graph.nodes, result) };
|
|
66
40
|
}
|