@cda/adapter-xma 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +40 -29
  2. package/dist/mapping/generic-relationship-mapping.d.ts +18 -0
  3. package/dist/mapping/generic-relationship-mapping.d.ts.map +1 -0
  4. package/dist/mapping/generic-relationship-mapping.js +68 -0
  5. package/dist/mapping/generic-relationship-mapping.js.map +1 -0
  6. package/dist/mapping/relationship-mapping.d.ts +20 -19
  7. package/dist/mapping/relationship-mapping.d.ts.map +1 -1
  8. package/dist/mapping/relationship-mapping.js +45 -19
  9. package/dist/mapping/relationship-mapping.js.map +1 -1
  10. package/dist/serializer/document-writer.d.ts +25 -4
  11. package/dist/serializer/document-writer.d.ts.map +1 -1
  12. package/dist/serializer/document-writer.js +24 -15
  13. package/dist/serializer/document-writer.js.map +1 -1
  14. package/dist/serializer/graphical-writer.d.ts +7 -5
  15. package/dist/serializer/graphical-writer.d.ts.map +1 -1
  16. package/dist/serializer/graphical-writer.js +66 -13
  17. package/dist/serializer/graphical-writer.js.map +1 -1
  18. package/dist/serializer/relationship-writer.d.ts +21 -6
  19. package/dist/serializer/relationship-writer.d.ts.map +1 -1
  20. package/dist/serializer/relationship-writer.js +20 -9
  21. package/dist/serializer/relationship-writer.js.map +1 -1
  22. package/dist/serializer/semantic-writer.d.ts +8 -0
  23. package/dist/serializer/semantic-writer.d.ts.map +1 -1
  24. package/dist/serializer/semantic-writer.js +45 -1
  25. package/dist/serializer/semantic-writer.js.map +1 -1
  26. package/dist/serializer/serialize-xma.d.ts.map +1 -1
  27. package/dist/serializer/serialize-xma.js +10 -20
  28. package/dist/serializer/serialize-xma.js.map +1 -1
  29. package/dist/serializer/view-writer.d.ts +8 -7
  30. package/dist/serializer/view-writer.d.ts.map +1 -1
  31. package/dist/serializer/view-writer.js +9 -17
  32. package/dist/serializer/view-writer.js.map +1 -1
  33. package/package.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"graphical-writer.d.ts","sourceRoot":"","sources":["../../src/serializer/graphical-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EAIV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAInF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAC;CACxB;AAsLD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,cAAc,EACzB,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACxD,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAClE,UAAU,EAAE,eAAe,EAC3B,WAAW,EAAE,mBAAmB,GAC/B,qBAAqB,CAyJvB"}
1
+ {"version":3,"file":"graphical-writer.d.ts","sourceRoot":"","sources":["../../src/serializer/graphical-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EAIV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAI5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAC;CACxB;AA6ND;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,cAAc,EACzB,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACxD,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,2BAA2B,CAAC,EACrE,UAAU,EAAE,eAAe,EAC3B,WAAW,EAAE,mBAAmB,GAC/B,qBAAqB,CAkMvB"}
@@ -117,13 +117,22 @@ function buildIconDecoration(id) {
117
117
  ['mm_concept', 'icon'],
118
118
  ]);
119
119
  }
120
- /** Builds a fully-styled `MM_Node` for an element-backed diagram object, a Group, or a Note/ViewGraphic. */
121
- function buildStyledNode(ids, nodeXmaId, concept, semanticObject, hasIcon, visuals, bounds, symbolName, labelExtraAttrs = []) {
120
+ /**
121
+ * Builds a fully-styled `MM_Node` for an element-backed diagram object, a
122
+ * Group, or a Note/ViewGraphic. `nestedChildrenXml` are already-built child
123
+ * `MM_Node`s (from nested diagram objects) — confirmed to nest as siblings
124
+ * of the icon/label `MM_Decoration`s inside the same `MM_Graphics`, after
125
+ * them, in both fixtures. Their `MM_Rect` bounds are used as-is (the same
126
+ * ×3 scale as every other node) — confirmed to already be relative to the
127
+ * parent in both Archi and XMA, so no offset math is needed.
128
+ */
129
+ function buildStyledNode(ids, nodeXmaId, concept, semanticObject, hasIcon, visuals, bounds, symbolName, labelExtraAttrs = [], nestedChildrenXml = []) {
122
130
  const graphicsChildren = [];
123
131
  if (hasIcon) {
124
132
  graphicsChildren.push(buildIconDecoration(ids.fresh()));
125
133
  }
126
134
  graphicsChildren.push(buildLabelDecoration(ids.fresh(), visuals.fontName, labelExtraAttrs));
135
+ graphicsChildren.push(...nestedChildrenXml);
127
136
  const attrs = [
128
137
  ['id', String(nodeXmaId)],
129
138
  ['mm_graphicType', '5'],
@@ -140,10 +149,35 @@ function buildStyledNode(ids, nodeXmaId, concept, semanticObject, hasIcon, visua
140
149
  rectElement(ids.fresh(), bounds),
141
150
  ]);
142
151
  }
152
+ const JUNCTION_XMA_TYPES = new Set(['Junction', 'OrJunction']);
143
153
  /**
144
- * Builds the `GraphicalModule`'s `MM_Diagram` for the single supported
145
- * view: a Canvas node wrapping one `MM_Node` per drawable diagram
146
- * object/group/note, and one `MM_DirectedRel` per drawable connection.
154
+ * Builds a `Junction`/`OrJunction` node confirmed structurally different
155
+ * from every other element node: `mm_graphicType="3"` (not `"5"`), and no
156
+ * `MM_Color`/`MM_Colors` at all (a Junction carries no fill/line styling in
157
+ * either fixture). Fabricating a color here would contradict that evidence,
158
+ * not fill a gap in it.
159
+ */
160
+ function buildJunctionNode(ids, nodeXmaId, concept, semanticObject, bounds) {
161
+ return element('MM_Diagram:MM_Node', [
162
+ ['id', String(nodeXmaId)],
163
+ ['mm_graphicType', '3'],
164
+ ['mm_concept', concept],
165
+ ['mm_lineOpacity', String(DEFAULT_OPACITY)],
166
+ ['mm_fillOpacity', String(DEFAULT_OPACITY)],
167
+ ['mm_semanticObject', String(semanticObject)],
168
+ ], [
169
+ element('MM_Diagram:MM_Graphics', [['name', 'mm_graphics'], ['id', String(ids.fresh())]], [
170
+ buildLabelDecoration(ids.fresh(), DEFAULT_FONT_NAME),
171
+ ]),
172
+ rectElement(ids.fresh(), bounds),
173
+ ]);
174
+ }
175
+ /**
176
+ * Builds the `GraphicalModule`'s `MM_Diagram` for one view: a Canvas node
177
+ * wrapping one `MM_Node` per drawable diagram object/group/note (nested
178
+ * diagram objects recursively nested inside their parent's `MM_Node`, via
179
+ * `buildNodeTree` — see `tests/fixtures/README.md`, "Nested diagram
180
+ * objects"), and one `MM_DirectedRel` per drawable connection.
147
181
  *
148
182
  * `mm_fromx`/`mm_fromy`/`mm_tox`/`mm_toy` (manual connector anchor
149
183
  * metadata) are deliberately omitted — exactly one fixture exhibited them,
@@ -158,25 +192,44 @@ export function buildGraphicalModule(model, view, ids, refIds, allocator, mapped
158
192
  const noteById = new Map(model.notes.map((n) => [n.id, n]));
159
193
  const nodeIds = new XmaIdRegistry(allocator);
160
194
  const canvasChildren = [];
161
- for (const objId of view.diagramObjectIds) {
195
+ /**
196
+ * Builds one diagram object's node, recursively building and nesting its
197
+ * children first (bottom-up) — confirmed structure: a child `MM_Node`
198
+ * nests as a sibling of its parent's icon/label decorations, inside the
199
+ * same `MM_Graphics`, up to 3 levels deep in the sabsa fixture. Applies
200
+ * equally to element-backed objects and Groups (both confirmed to nest
201
+ * children this way). Returns `null` for an object this pass can't draw
202
+ * (already diagnosed elsewhere).
203
+ */
204
+ function buildNodeTree(objId) {
162
205
  const obj = diagramObjectById.get(objId);
163
206
  if (!obj)
164
- continue;
207
+ return null;
208
+ const nestedChildrenXml = obj.childrenIds
209
+ .map((childId) => buildNodeTree(childId))
210
+ .filter((xml) => xml !== null);
165
211
  if (viewResult.validElementNodeObjectIds.has(objId) && obj.archimateElementId) {
166
212
  const mapping = mappedElements.get(obj.archimateElementId);
167
213
  const refId = refIds.get(obj.archimateElementId);
168
- const visuals = resolveNodeVisuals(obj.style, CATEGORY_FILL_COLOR[mapping.category], diagnostics, obj.id, 'ArchiDiagramObject');
169
214
  const nodeXmaId = nodeIds.idFor(obj.id);
170
- canvasChildren.push(buildStyledNode(ids, nodeXmaId, mapping.xmaType, refId, mapping.hasIcon, visuals, obj.bounds, null));
215
+ if (JUNCTION_XMA_TYPES.has(mapping.xmaType)) {
216
+ return buildJunctionNode(ids, nodeXmaId, mapping.xmaType, refId, obj.bounds);
217
+ }
218
+ const visuals = resolveNodeVisuals(obj.style, CATEGORY_FILL_COLOR[mapping.category], diagnostics, obj.id, 'ArchiDiagramObject');
219
+ return buildStyledNode(ids, nodeXmaId, mapping.xmaType, refId, mapping.hasIcon, visuals, obj.bounds, null, [], nestedChildrenXml);
171
220
  }
172
- else if (viewResult.validGroupObjectIds.has(objId)) {
221
+ if (viewResult.validGroupObjectIds.has(objId)) {
173
222
  const groupSemanticId = ids.get(obj.id);
174
223
  const visuals = resolveNodeVisuals(obj.style, GROUP_FILL_COLOR, diagnostics, obj.id, 'ArchiDiagramObject');
175
224
  const nodeXmaId = nodeIds.idFor(obj.id);
176
- canvasChildren.push(buildStyledNode(ids, nodeXmaId, 'ViewGraphic', groupSemanticId, false, visuals, obj.bounds, 'group', [
177
- ['mm_frameStrategy', '12'],
178
- ]));
225
+ return buildStyledNode(ids, nodeXmaId, 'ViewGraphic', groupSemanticId, false, visuals, obj.bounds, 'group', [['mm_frameStrategy', '12']], nestedChildrenXml);
179
226
  }
227
+ return null;
228
+ }
229
+ for (const objId of view.diagramObjectIds) {
230
+ const nodeXml = buildNodeTree(objId);
231
+ if (nodeXml)
232
+ canvasChildren.push(nodeXml);
180
233
  }
181
234
  for (const noteId of view.noteIds) {
182
235
  if (!viewResult.validNoteIds.has(noteId))
@@ -1 +1 @@
1
- {"version":3,"file":"graphical-writer.js","sourceRoot":"","sources":["../../src/serializer/graphical-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphical-writer.js","sourceRoot":"","sources":["../../src/serializer/graphical-writer.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,30 @@
1
1
  import type { ArchiModel, ArchiElement, ArchiRelationship } from '@cda/archi-semantic-core';
2
+ import type { XmlElement } from '../infrastructure/xml-writer.js';
2
3
  import type { XmaIdRegistry } from '../infrastructure/id-allocator.js';
3
4
  import type { DiagnosticCollector } from '../diagnostics/diagnostics.js';
4
- import { type RelationshipMappingEntry } from '../mapping/relationship-mapping.js';
5
5
  import type { ElementMappingEntry } from '../mapping/element-mapping.js';
6
6
  import type { SchemeBuild } from './semantic-writer.js';
7
+ /** What downstream (view-writer, graphical-writer) actually needs from a resolved relationship mapping. */
8
+ export interface ResolvedRelationshipMapping {
9
+ xmaType: string;
10
+ }
11
+ export interface SemanticRelationshipsResult {
12
+ mappedRelationships: Map<string, ResolvedRelationshipMapping>;
13
+ /**
14
+ * Generic-form relations (`AssociationRelationship`, or a `Grouping`/`Junction`
15
+ * endpoint) — these live in a root-level `<ArchiMate:Relations>` container
16
+ * (a sibling of `AbstractSchemes`), never inside a layer scheme. Confirmed
17
+ * directly in both fixtures; see `mapping/generic-relationship-mapping.ts`.
18
+ */
19
+ rootRelationsXml: XmlElement[];
20
+ }
7
21
  /**
8
22
  * Builds the semantic `<ArchiMate:{RelationshipType} from="..." to="..."/>`
9
- * elements for every `ArchiRelationship` whose (type, source type, target
10
- * type) triple matches one of the three confirmed mappings, appending them
11
- * to the appropriate scheme's `Relations` collection. Everything else is
12
- * diagnosed, never guessed — see `mapping/relationship-mapping.ts`.
23
+ * elements for every `ArchiRelationship` that resolves either to a confirmed
24
+ * exact-triple mapping (appended to its scheme's `Relations` collection) or
25
+ * a confirmed generic form (appended to the root-level `Relations`
26
+ * container). Everything else is diagnosed, never guessed — see
27
+ * `mapping/relationship-mapping.ts` and `mapping/generic-relationship-mapping.ts`.
13
28
  */
14
- export declare function buildSemanticRelationships(model: ArchiModel, ids: XmaIdRegistry, elementIndex: ReadonlyMap<string, ArchiElement>, relationshipIndex: ReadonlyMap<string, ArchiRelationship>, mappedElements: ReadonlyMap<string, ElementMappingEntry>, schemeBuilds: Map<string, SchemeBuild>, diagnostics: DiagnosticCollector): Map<string, RelationshipMappingEntry>;
29
+ export declare function buildSemanticRelationships(model: ArchiModel, ids: XmaIdRegistry, elementIndex: ReadonlyMap<string, ArchiElement>, relationshipIndex: ReadonlyMap<string, ArchiRelationship>, mappedElements: ReadonlyMap<string, ElementMappingEntry>, schemeBuilds: Map<string, SchemeBuild>, diagnostics: DiagnosticCollector): SemanticRelationshipsResult;
15
30
  //# sourceMappingURL=relationship-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-writer.d.ts","sourceRoot":"","sources":["../../src/serializer/relationship-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAA6B,KAAK,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAWxD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAC/C,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACzD,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACxD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,WAAW,EAAE,mBAAmB,GAC/B,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CA2EvC"}
1
+ {"version":3,"file":"relationship-writer.d.ts","sourceRoot":"","sources":["../../src/serializer/relationship-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,2GAA2G;AAC3G,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD,MAAM,WAAW,2BAA2B;IAC1C,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IAC9D;;;;;OAKG;IACH,gBAAgB,EAAE,UAAU,EAAE,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAC/C,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACzD,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACxD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,WAAW,EAAE,mBAAmB,GAC/B,2BAA2B,CAkF7B"}
@@ -1,5 +1,6 @@
1
1
  import { element } from '../infrastructure/xml-writer.js';
2
2
  import { lookupRelationshipMapping } from '../mapping/relationship-mapping.js';
3
+ import { lookupGenericRelationshipMapping } from '../mapping/generic-relationship-mapping.js';
3
4
  function getOrCreateScheme(schemeBuilds, tag) {
4
5
  let build = schemeBuilds.get(tag);
5
6
  if (!build) {
@@ -10,13 +11,15 @@ function getOrCreateScheme(schemeBuilds, tag) {
10
11
  }
11
12
  /**
12
13
  * Builds the semantic `<ArchiMate:{RelationshipType} from="..." to="..."/>`
13
- * elements for every `ArchiRelationship` whose (type, source type, target
14
- * type) triple matches one of the three confirmed mappings, appending them
15
- * to the appropriate scheme's `Relations` collection. Everything else is
16
- * diagnosed, never guessed — see `mapping/relationship-mapping.ts`.
14
+ * elements for every `ArchiRelationship` that resolves either to a confirmed
15
+ * exact-triple mapping (appended to its scheme's `Relations` collection) or
16
+ * a confirmed generic form (appended to the root-level `Relations`
17
+ * container). Everything else is diagnosed, never guessed — see
18
+ * `mapping/relationship-mapping.ts` and `mapping/generic-relationship-mapping.ts`.
17
19
  */
18
20
  export function buildSemanticRelationships(model, ids, elementIndex, relationshipIndex, mappedElements, schemeBuilds, diagnostics) {
19
21
  const mappedRelationships = new Map();
22
+ const rootRelationsXml = [];
20
23
  for (const rel of model.relationships) {
21
24
  const sourceEl = elementIndex.get(rel.sourceId);
22
25
  const targetEl = elementIndex.get(rel.targetId);
@@ -43,7 +46,9 @@ export function buildSemanticRelationships(model, ids, elementIndex, relationshi
43
46
  });
44
47
  continue;
45
48
  }
46
- const mapping = lookupRelationshipMapping(rel.type, sourceEl.type, targetEl.type);
49
+ const exactMapping = lookupRelationshipMapping(rel.type, sourceEl.type, targetEl.type);
50
+ const genericMapping = exactMapping ? undefined : lookupGenericRelationshipMapping(rel.type, sourceEl.type, targetEl.type);
51
+ const mapping = exactMapping ?? genericMapping;
47
52
  if (!mapping) {
48
53
  diagnostics.error({
49
54
  code: 'unsupported-relationship',
@@ -70,14 +75,20 @@ export function buildSemanticRelationships(model, ids, elementIndex, relationshi
70
75
  });
71
76
  }
72
77
  mappedRelationships.set(rel.id, mapping);
73
- const scheme = getOrCreateScheme(schemeBuilds, mapping.scheme);
74
78
  const xmaId = ids.idFor(rel.id);
75
- scheme.relations.push(element(`ArchiMate:${mapping.xmaType}`, [
79
+ const relationXml = element(`ArchiMate:${mapping.xmaType}`, [
76
80
  ['id', String(xmaId)],
77
81
  ['from', String(ids.idFor(sourceEl.id))],
78
82
  ['to', String(ids.idFor(targetEl.id))],
79
- ]));
83
+ ]);
84
+ if (exactMapping) {
85
+ const scheme = getOrCreateScheme(schemeBuilds, exactMapping.scheme);
86
+ scheme.relations.push(relationXml);
87
+ }
88
+ else {
89
+ rootRelationsXml.push(relationXml);
90
+ }
80
91
  }
81
- return mappedRelationships;
92
+ return { mappedRelationships, rootRelationsXml };
82
93
  }
83
94
  //# sourceMappingURL=relationship-writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-writer.js","sourceRoot":"","sources":["../../src/serializer/relationship-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationship-writer.js","sourceRoot":"","sources":["../../src/serializer/relationship-writer.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,14 @@ export interface SemanticBuildResult {
17
17
  schemeBuilds: Map<string, SchemeBuild>;
18
18
  /** Archi element id -> its resolved mapping, for elements that mapped successfully (feeds view/graphical writers). */
19
19
  mappedElements: Map<string, ElementMappingEntry>;
20
+ /**
21
+ * `<ArchiMate:Junction>`/`<ArchiMate:OrJunction>` elements — these live in a
22
+ * root-level `<ArchiMate:Connectors>` container (a sibling of
23
+ * `AbstractSchemes` under `ArchiMateComponent`), never inside a layer
24
+ * scheme's element collections. Confirmed directly in both fixtures; see
25
+ * `tests/fixtures/README.md`.
26
+ */
27
+ rootConnectorsXml: XmlElement[];
20
28
  }
21
29
  /**
22
30
  * Builds the per-scheme element collections (`<ArchiMate:BusinessActors>`
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-writer.d.ts","sourceRoot":"","sources":["../../src/serializer/semantic-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAkD,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,uHAAuH;IACvH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAAC;IACnE,8FAA8F;IAC9F,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,sHAAsH;IACtH,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAClD;AAuCD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,MAAM,GACf,mBAAmB,CA8BrB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,GAAG,IAAI,GAAG,UAAU,EAAE,CAgBrG"}
1
+ {"version":3,"file":"semantic-writer.d.ts","sourceRoot":"","sources":["../../src/serializer/semantic-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAkD,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,uHAAuH;IACvH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAAC;IACnE,8FAA8F;IAC9F,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,sHAAsH;IACtH,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACjD;;;;;;OAMG;IACH,iBAAiB,EAAE,UAAU,EAAE,CAAC;CACjC;AA0ED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,MAAM,GACf,mBAAmB,CA4CrB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,GAAG,IAAI,GAAG,UAAU,EAAE,CAgBrG"}
@@ -1,6 +1,39 @@
1
1
  import { element } from '../infrastructure/xml-writer.js';
2
2
  import { getSchemeCollectionOrder, lookupElementMapping } from '../mapping/element-mapping.js';
3
3
  import { buildProfileValues } from './profile-values.js';
4
+ /**
5
+ * `ArchiElement.type` is always the literal string `"Junction"` for both
6
+ * AND and OR junctions — the And/Or distinction lives in the separate
7
+ * `junctionType` field. Confirmed directly in both fixtures: XMA has two
8
+ * distinct element tags for this, `Junction` (AND) and `OrJunction` (OR),
9
+ * each living in the root `Connectors` container. This resolves the XMA tag
10
+ * for a Junction element; unlike every other type, it can't be a static
11
+ * `ELEMENT_MAPPINGS` table entry keyed by `archiType` alone.
12
+ */
13
+ function junctionXmaType(el) {
14
+ return el.junctionType === 'Or' ? 'OrJunction' : 'Junction';
15
+ }
16
+ /**
17
+ * A `Junction`'s own `category`/`hasIcon` are never read: `graphical-writer`
18
+ * draws Junctions via a dedicated, colorless node form (confirmed in both
19
+ * fixtures — no `MM_Color`/`MM_Colors`, `mm_graphicType="3"` instead of the
20
+ * usual `"5"`) before ever consulting `CATEGORY_FILL_COLOR`. `category`
21
+ * still needs *some* valid value to satisfy `ElementMappingEntry`'s type;
22
+ * `'Grouping'` is used as an inert placeholder, not a claim about Junction's
23
+ * real presentation category.
24
+ */
25
+ function junctionMappingEntry(el) {
26
+ const xmaType = junctionXmaType(el);
27
+ return {
28
+ archiType: 'Junction',
29
+ xmaType,
30
+ scheme: 'root',
31
+ collectionTag: 'Connectors',
32
+ collectionName: 'connectors',
33
+ category: 'Grouping',
34
+ hasIcon: false,
35
+ };
36
+ }
4
37
  function getOrCreateScheme(schemeBuilds, tag) {
5
38
  let build = schemeBuilds.get(tag);
6
39
  if (!build) {
@@ -44,7 +77,18 @@ function reportAncillaryLossWarnings(el, diagnostics) {
44
77
  export function buildSemanticElements(model, ids, diagnostics, language) {
45
78
  const schemeBuilds = new Map();
46
79
  const mappedElements = new Map();
80
+ const rootConnectorsXml = [];
47
81
  for (const el of model.elements) {
82
+ if (el.type === 'Junction') {
83
+ const mapping = junctionMappingEntry(el);
84
+ mappedElements.set(el.id, mapping);
85
+ reportAncillaryLossWarnings(el, diagnostics);
86
+ const xmaId = ids.idFor(el.id);
87
+ rootConnectorsXml.push(element(`ArchiMate:${mapping.xmaType}`, [['id', String(xmaId)]], [
88
+ buildProfileValues(language, el.name ?? '', el.documentation),
89
+ ]));
90
+ continue;
91
+ }
48
92
  const mapping = lookupElementMapping(el.type);
49
93
  if (!mapping) {
50
94
  reportUnsupportedElement(el, diagnostics);
@@ -62,7 +106,7 @@ export function buildSemanticElements(model, ids, diagnostics, language) {
62
106
  const concept = element(`ArchiMate:${mapping.xmaType}`, [['id', String(xmaId)]], [buildProfileValues(language, el.name ?? '', el.documentation)]);
63
107
  collection.children.push(concept);
64
108
  }
65
- return { schemeBuilds, mappedElements };
109
+ return { schemeBuilds, mappedElements, rootConnectorsXml };
66
110
  }
67
111
  /**
68
112
  * Renders a `SchemeBuild`'s children (an optional `nm` profile, then each
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-writer.js","sourceRoot":"","sources":["../../src/serializer/semantic-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic-writer.js","sourceRoot":"","sources":["../../src/serializer/semantic-writer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serialize-xma.d.ts","sourceRoot":"","sources":["../../src/serializer/serialize-xma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,0BAA0B,CAAC;AAGtE,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAQxF,MAAM,WAAW,mBAAmB;IAClC,2IAA2I;IAC3I,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iJAAiJ;IACjJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6IAA6I;IAC7I,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8ED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAMrF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,aAAa,EAAE,CAEnG"}
1
+ {"version":3,"file":"serialize-xma.d.ts","sourceRoot":"","sources":["../../src/serializer/serialize-xma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAQxF,MAAM,WAAW,mBAAmB;IAClC,2IAA2I;IAC3I,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iJAAiJ;IACjJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6IAA6I;IAC7I,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAMrF;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,aAAa,EAAE,CAEnG"}
@@ -16,25 +16,15 @@ function planXmaDocument(model, options) {
16
16
  const allocator = new XmaIdAllocator();
17
17
  const ids = new XmaIdRegistry(allocator);
18
18
  const refIds = new XmaIdRegistry(allocator);
19
- const { schemeBuilds, mappedElements } = buildSemanticElements(model, ids, diagnostics, language);
19
+ const { schemeBuilds, mappedElements, rootConnectorsXml } = buildSemanticElements(model, ids, diagnostics, language);
20
20
  const elementIndex = new Map(model.elements.map((e) => [e.id, e]));
21
21
  const relationshipIndex = new Map(model.relationships.map((r) => [r.id, r]));
22
- const mappedRelationships = buildSemanticRelationships(model, ids, elementIndex, relationshipIndex, mappedElements, schemeBuilds, diagnostics);
23
- let view = null;
24
- let viewResult = null;
25
- let graphicalDiagramXml = null;
26
- if (model.views.length > 1) {
27
- diagnostics.error({
28
- code: 'unsupported-multiple-views',
29
- message: `Model has ${model.views.length} views; XMA v0.1 supports serializing exactly one view. Split the model or remove extra views before converting.`,
30
- });
31
- }
32
- else if (model.views.length === 1) {
33
- view = model.views[0];
34
- viewResult = buildView(model, view, ids, refIds, mappedElements, mappedRelationships, diagnostics, language);
35
- const graphicalResult = buildGraphicalModule(model, view, ids, refIds, allocator, mappedElements, mappedRelationships, viewResult, diagnostics);
36
- graphicalDiagramXml = graphicalResult.diagramXml;
37
- }
22
+ const { mappedRelationships, rootRelationsXml } = buildSemanticRelationships(model, ids, elementIndex, relationshipIndex, mappedElements, schemeBuilds, diagnostics);
23
+ const builtViews = model.views.map((view) => {
24
+ const viewResult = buildView(model, view, ids, refIds, mappedElements, mappedRelationships, diagnostics, language);
25
+ const { diagramXml } = buildGraphicalModule(model, view, ids, refIds, allocator, mappedElements, mappedRelationships, viewResult, diagnostics);
26
+ return { view, viewResult, graphicalDiagramXml: diagramXml };
27
+ });
38
28
  if (diagnostics.hasErrors) {
39
29
  return { diagnostics: diagnostics.all, documentXml: null };
40
30
  }
@@ -45,9 +35,9 @@ function planXmaDocument(model, options) {
45
35
  ids,
46
36
  schemeBuilds,
47
37
  folders: model.folders,
48
- view,
49
- viewResult,
50
- graphicalDiagramXml,
38
+ views: builtViews,
39
+ rootConnectorsXml,
40
+ rootRelationsXml,
51
41
  });
52
42
  return { diagnostics: diagnostics.all, documentXml };
53
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"serialize-xma.js","sourceRoot":"","sources":["../../src/serializer/serialize-xma.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serialize-xma.js","sourceRoot":"","sources":["../../src/serializer/serialize-xma.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { XmlElement } from '../infrastructure/xml-writer.js';
3
3
  import type { XmaIdRegistry } from '../infrastructure/id-allocator.js';
4
4
  import type { DiagnosticCollector } from '../diagnostics/diagnostics.js';
5
5
  import type { ElementMappingEntry } from '../mapping/element-mapping.js';
6
- import type { RelationshipMappingEntry } from '../mapping/relationship-mapping.js';
6
+ import type { ResolvedRelationshipMapping } from './relationship-writer.js';
7
7
  export interface ViewBuildResult {
8
8
  viewGraphicsXml: XmlElement[];
9
9
  refObjectsXml: XmlElement[];
@@ -15,12 +15,13 @@ export interface ViewBuildResult {
15
15
  validNoteIds: Set<string>;
16
16
  }
17
17
  /**
18
- * Builds the `AllView`'s `ViewGraphics` (Notes/Groups) and `RefObjects`
18
+ * Builds one `AllView`'s `ViewGraphics` (Notes/Groups) and `RefObjects`
19
19
  * (the three-layer view-reference indirection — see module docs on
20
- * `graphical-writer.ts`) for the single supported view. Also validates
21
- * every diagram object/note/connection in the view, since geometry and view
22
- * membership are model-wide preservation guarantees, not just node drawing
23
- * concerns.
20
+ * `graphical-writer.ts`). Also validates every diagram object/note/connection
21
+ * in the view, since geometry and view membership are model-wide
22
+ * preservation guarantees, not just node drawing concerns. Nested diagram
23
+ * objects (a `parentId` or non-empty `childrenIds`) are valid here — see
24
+ * `graphical-writer.ts`'s recursive node building for how nesting is drawn.
24
25
  */
25
- export declare function buildView(model: ArchiModel, view: ArchiView, ids: XmaIdRegistry, refIds: XmaIdRegistry, mappedElements: ReadonlyMap<string, ElementMappingEntry>, mappedRelationships: ReadonlyMap<string, RelationshipMappingEntry>, diagnostics: DiagnosticCollector, language: string): ViewBuildResult;
26
+ export declare function buildView(model: ArchiModel, view: ArchiView, ids: XmaIdRegistry, refIds: XmaIdRegistry, mappedElements: ReadonlyMap<string, ElementMappingEntry>, mappedRelationships: ReadonlyMap<string, ResolvedRelationshipMapping>, diagnostics: DiagnosticCollector, language: string): ViewBuildResult;
26
27
  //# sourceMappingURL=view-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view-writer.d.ts","sourceRoot":"","sources":["../../src/serializer/view-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAInF,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,qGAAqG;IACrG,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,+EAA+E;IAC/E,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,+DAA+D;IAC/D,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B;AAMD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACxD,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAClE,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,MAAM,GACf,eAAe,CAiJjB"}
1
+ {"version":3,"file":"view-writer.d.ts","sourceRoot":"","sources":["../../src/serializer/view-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAI5E,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,qGAAqG;IACrG,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,+EAA+E;IAC/E,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,+DAA+D;IAC/D,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,aAAa,EACrB,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACxD,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,2BAA2B,CAAC,EACrE,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,MAAM,GACf,eAAe,CA2IjB"}
@@ -1,16 +1,14 @@
1
1
  import { element } from '../infrastructure/xml-writer.js';
2
2
  import { buildProfileValues } from './profile-values.js';
3
3
  import { hasCompleteBounds } from '../geometry/geometry.js';
4
- function hasNesting(parentId, childrenIds) {
5
- return parentId !== null || childrenIds.length > 0;
6
- }
7
4
  /**
8
- * Builds the `AllView`'s `ViewGraphics` (Notes/Groups) and `RefObjects`
5
+ * Builds one `AllView`'s `ViewGraphics` (Notes/Groups) and `RefObjects`
9
6
  * (the three-layer view-reference indirection — see module docs on
10
- * `graphical-writer.ts`) for the single supported view. Also validates
11
- * every diagram object/note/connection in the view, since geometry and view
12
- * membership are model-wide preservation guarantees, not just node drawing
13
- * concerns.
7
+ * `graphical-writer.ts`). Also validates every diagram object/note/connection
8
+ * in the view, since geometry and view membership are model-wide
9
+ * preservation guarantees, not just node drawing concerns. Nested diagram
10
+ * objects (a `parentId` or non-empty `childrenIds`) are valid here — see
11
+ * `graphical-writer.ts`'s recursive node building for how nesting is drawn.
14
12
  */
15
13
  export function buildView(model, view, ids, refIds, mappedElements, mappedRelationships, diagnostics, language) {
16
14
  const viewGraphicsXml = [];
@@ -22,15 +20,6 @@ export function buildView(model, view, ids, refIds, mappedElements, mappedRelati
22
20
  if (obj.viewId !== view.id) {
23
21
  continue;
24
22
  }
25
- if (hasNesting(obj.parentId, obj.childrenIds)) {
26
- diagnostics.error({
27
- code: 'unsupported-nested-diagram-object',
28
- message: `Diagram object "${obj.id}" is nested (has a parent or children) — nested diagram objects are not supported in XMA v0.1.`,
29
- entityId: obj.id,
30
- entityType: 'ArchiDiagramObject',
31
- });
32
- continue;
33
- }
34
23
  if (obj.referencedModelId !== null) {
35
24
  diagnostics.error({
36
25
  code: 'unsupported-diagram-model-reference',
@@ -95,6 +84,9 @@ export function buildView(model, view, ids, refIds, mappedElements, mappedRelati
95
84
  continue;
96
85
  }
97
86
  if (note.parentId !== null) {
87
+ // Unlike nested ArchiDiagramObjects (supported — see graphical-writer.ts's
88
+ // buildNodeTree), a nested Note has no fixture evidence: only one instance
89
+ // exists across all four fixtures, not enough to confirm its representation.
98
90
  diagnostics.error({
99
91
  code: 'unsupported-nested-diagram-object',
100
92
  message: `Note "${note.id}" is nested inside another diagram object — not supported in XMA v0.1.`,
@@ -1 +1 @@
1
- {"version":3,"file":"view-writer.js","sourceRoot":"","sources":["../../src/serializer/view-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-writer.js","sourceRoot":"","sources":["../../src/serializer/view-writer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAK1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAa5D;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACvB,KAAiB,EACjB,IAAe,EACf,GAAkB,EAClB,MAAqB,EACrB,cAAwD,EACxD,mBAAqE,EACrE,WAAgC,EAChC,QAAgB;IAEhB,MAAM,eAAe,GAAiB,EAAE,CAAC;IACzC,MAAM,aAAa,GAAiB,EAAE,CAAC;IACvC,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;IACpD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;YACnC,WAAW,CAAC,KAAK,CAAC;gBAChB,IAAI,EAAE,qCAAqC;gBAC3C,OAAO,EAAE,mBAAmB,GAAG,CAAC,EAAE,4EAA4E;gBAC9G,QAAQ,EAAE,GAAG,CAAC,EAAE;gBAChB,UAAU,EAAE,oBAAoB;aACjC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;gBACtC,WAAW,CAAC,KAAK,CAAC;oBAChB,IAAI,EAAE,4BAA4B;oBAClC,OAAO,EAAE,mBAAmB,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,8FAA8F;oBACjJ,QAAQ,EAAE,GAAG,CAAC,EAAE;oBAChB,UAAU,EAAE,oBAAoB;iBACjC,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,WAAW,CAAC,KAAK,CAAC;oBAChB,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,UAAU,GAAG,CAAC,EAAE,+EAA+E;oBACxG,QAAQ,EAAE,GAAG,CAAC,EAAE;oBAChB,UAAU,EAAE,oBAAoB;iBACjC,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,eAAe,CAAC,IAAI,CAClB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;gBAC7D,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,aAAa,CAAC;aAChE,CAAC,CACH,CAAC;YACF,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,WAAW,CAAC,KAAK,CAAC;gBAChB,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,mBAAmB,GAAG,CAAC,EAAE,+EAA+E;gBACjH,QAAQ,EAAE,GAAG,CAAC,EAAE;gBAChB,UAAU,EAAE,oBAAoB;aACjC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,+EAA+E;YAC/E,SAAS;QACX,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACnD,aAAa,CAAC,IAAI,CAChB,OAAO,CAAC,aAAa,OAAO,CAAC,OAAO,KAAK,EAAE;gBACzC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;aAClD,CAAC,CACH,CAAC;QACJ,CAAC;QACD,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,2EAA2E;YAC3E,2EAA2E;YAC3E,6EAA6E;YAC7E,WAAW,CAAC,KAAK,CAAC;gBAChB,IAAI,EAAE,mCAAmC;gBACzC,OAAO,EAAE,SAAS,IAAI,CAAC,EAAE,wEAAwE;gBACjG,QAAQ,EAAE,IAAI,CAAC,EAAE;gBACjB,UAAU,EAAE,WAAW;aACxB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,WAAW,CAAC,KAAK,CAAC;gBAChB,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,SAAS,IAAI,CAAC,EAAE,+EAA+E;gBACxG,QAAQ,EAAE,IAAI,CAAC,EAAE;gBACjB,UAAU,EAAE,WAAW;aACxB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrC,eAAe,CAAC,IAAI,CAClB,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAClH,CAAC;QACF,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAClD,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;YAClC,SAAS;QACX,CAAC;QACD,IAAI,UAAU,CAAC,uBAAuB,KAAK,IAAI,EAAE,CAAC;YAChD,WAAW,CAAC,KAAK,CAAC;gBAChB,IAAI,EAAE,wCAAwC;gBAC9C,OAAO,EAAE,eAAe,UAAU,CAAC,EAAE,oGAAoG;gBACzI,QAAQ,EAAE,UAAU,CAAC,EAAE;gBACvB,UAAU,EAAE,wBAAwB;aACrC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,mEAAmE;YACnE,SAAS;QACX,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;YAC/D,aAAa,CAAC,IAAI,CAChB,OAAO,CAAC,aAAa,OAAO,CAAC,OAAO,KAAK,EAAE;gBACzC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;aAC9D,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC;AAC1G,CAAC"}