@cda/adapter-xma 0.4.3 → 0.6.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.
- package/LICENSE +21 -0
- package/README.md +54 -20
- package/dist/cjs/diagnostics/diagnostics.d.ts.map +1 -0
- package/dist/cjs/diagnostics/diagnostics.js +23 -0
- package/dist/cjs/diagnostics/diagnostics.js.map +1 -0
- package/dist/cjs/diagnostics/errors.d.ts.map +1 -0
- package/dist/cjs/diagnostics/errors.js +24 -0
- package/dist/cjs/diagnostics/errors.js.map +1 -0
- package/dist/cjs/geometry/bendpoints.d.ts.map +1 -0
- package/dist/cjs/geometry/bendpoints.js +51 -0
- package/dist/cjs/geometry/bendpoints.js.map +1 -0
- package/dist/cjs/geometry/geometry.d.ts +75 -0
- package/dist/cjs/geometry/geometry.d.ts.map +1 -0
- package/dist/cjs/geometry/geometry.js +77 -0
- package/dist/cjs/geometry/geometry.js.map +1 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +9 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/infrastructure/assert.d.ts +10 -0
- package/dist/cjs/infrastructure/assert.d.ts.map +1 -0
- package/dist/cjs/infrastructure/assert.js +18 -0
- package/dist/cjs/infrastructure/assert.js.map +1 -0
- package/dist/cjs/infrastructure/id-allocator.d.ts.map +1 -0
- package/dist/cjs/infrastructure/id-allocator.js +59 -0
- package/dist/cjs/infrastructure/id-allocator.js.map +1 -0
- package/dist/cjs/infrastructure/xml-writer.d.ts.map +1 -0
- package/dist/cjs/infrastructure/xml-writer.js +94 -0
- package/dist/cjs/infrastructure/xml-writer.js.map +1 -0
- package/dist/cjs/mapping/element-mapping.d.ts.map +1 -0
- package/dist/cjs/mapping/element-mapping.js +117 -0
- package/dist/cjs/mapping/element-mapping.js.map +1 -0
- package/dist/cjs/mapping/generic-relationship-mapping.d.ts.map +1 -0
- package/dist/cjs/mapping/generic-relationship-mapping.js +71 -0
- package/dist/cjs/mapping/generic-relationship-mapping.js.map +1 -0
- package/dist/cjs/mapping/relationship-mapping.d.ts.map +1 -0
- package/dist/cjs/mapping/relationship-mapping.js +697 -0
- package/dist/cjs/mapping/relationship-mapping.js.map +1 -0
- package/dist/cjs/mapping/scheme-mapping.d.ts.map +1 -0
- package/dist/cjs/mapping/scheme-mapping.js +42 -0
- package/dist/cjs/mapping/scheme-mapping.js.map +1 -0
- package/dist/{mapping → cjs/mapping}/visual-mapping.d.ts +8 -0
- package/dist/cjs/mapping/visual-mapping.d.ts.map +1 -0
- package/dist/cjs/mapping/visual-mapping.js +51 -0
- package/dist/cjs/mapping/visual-mapping.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/serializer/document-writer.d.ts.map +1 -0
- package/dist/cjs/serializer/document-writer.js +143 -0
- package/dist/cjs/serializer/document-writer.js.map +1 -0
- package/dist/{serializer → cjs/serializer}/graphical-writer.d.ts +8 -6
- package/dist/cjs/serializer/graphical-writer.d.ts.map +1 -0
- package/dist/cjs/serializer/graphical-writer.js +521 -0
- package/dist/cjs/serializer/graphical-writer.js.map +1 -0
- package/dist/cjs/serializer/profile-values.d.ts.map +1 -0
- package/dist/cjs/serializer/profile-values.js +28 -0
- package/dist/cjs/serializer/profile-values.js.map +1 -0
- package/dist/cjs/serializer/relationship-writer.d.ts.map +1 -0
- package/dist/cjs/serializer/relationship-writer.js +109 -0
- package/dist/cjs/serializer/relationship-writer.js.map +1 -0
- package/dist/cjs/serializer/rtf.d.ts.map +1 -0
- package/dist/cjs/serializer/rtf.js +67 -0
- package/dist/cjs/serializer/rtf.js.map +1 -0
- package/dist/cjs/serializer/semantic-writer.d.ts.map +1 -0
- package/dist/cjs/serializer/semantic-writer.js +170 -0
- package/dist/cjs/serializer/semantic-writer.js.map +1 -0
- package/dist/cjs/serializer/serialize-xma.d.ts.map +1 -0
- package/dist/cjs/serializer/serialize-xma.js +113 -0
- package/dist/cjs/serializer/serialize-xma.js.map +1 -0
- package/dist/{serializer → cjs/serializer}/view-writer.d.ts +6 -0
- package/dist/cjs/serializer/view-writer.d.ts.map +1 -0
- package/dist/cjs/serializer/view-writer.js +239 -0
- package/dist/cjs/serializer/view-writer.js.map +1 -0
- package/dist/esm/diagnostics/diagnostics.d.ts +20 -0
- package/dist/esm/diagnostics/diagnostics.d.ts.map +1 -0
- package/dist/esm/diagnostics/diagnostics.js.map +1 -0
- package/dist/esm/diagnostics/errors.d.ts +13 -0
- package/dist/esm/diagnostics/errors.d.ts.map +1 -0
- package/dist/esm/diagnostics/errors.js.map +1 -0
- package/dist/esm/geometry/bendpoints.d.ts +33 -0
- package/dist/esm/geometry/bendpoints.d.ts.map +1 -0
- package/dist/{geometry → esm/geometry}/bendpoints.js +6 -2
- package/dist/esm/geometry/bendpoints.js.map +1 -0
- package/dist/esm/geometry/geometry.d.ts +75 -0
- package/dist/esm/geometry/geometry.d.ts.map +1 -0
- package/dist/{geometry → esm/geometry}/geometry.js +25 -6
- package/dist/esm/geometry/geometry.js.map +1 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/infrastructure/assert.d.ts +10 -0
- package/dist/esm/infrastructure/assert.d.ts.map +1 -0
- package/dist/esm/infrastructure/assert.js +15 -0
- package/dist/esm/infrastructure/assert.js.map +1 -0
- package/dist/esm/infrastructure/id-allocator.d.ts +34 -0
- package/dist/esm/infrastructure/id-allocator.d.ts.map +1 -0
- package/dist/esm/infrastructure/id-allocator.js.map +1 -0
- package/dist/esm/infrastructure/xml-writer.d.ts +20 -0
- package/dist/esm/infrastructure/xml-writer.d.ts.map +1 -0
- package/dist/{infrastructure → esm/infrastructure}/xml-writer.js +37 -2
- package/dist/esm/infrastructure/xml-writer.js.map +1 -0
- package/dist/esm/mapping/element-mapping.d.ts +31 -0
- package/dist/esm/mapping/element-mapping.d.ts.map +1 -0
- package/dist/esm/mapping/element-mapping.js.map +1 -0
- package/dist/esm/mapping/generic-relationship-mapping.d.ts +18 -0
- package/dist/esm/mapping/generic-relationship-mapping.d.ts.map +1 -0
- package/dist/esm/mapping/generic-relationship-mapping.js.map +1 -0
- package/dist/esm/mapping/relationship-mapping.d.ts +47 -0
- package/dist/esm/mapping/relationship-mapping.d.ts.map +1 -0
- package/dist/esm/mapping/relationship-mapping.js.map +1 -0
- package/dist/esm/mapping/scheme-mapping.d.ts +38 -0
- package/dist/esm/mapping/scheme-mapping.d.ts.map +1 -0
- package/dist/esm/mapping/scheme-mapping.js.map +1 -0
- package/dist/esm/mapping/visual-mapping.d.ts +32 -0
- package/dist/esm/mapping/visual-mapping.d.ts.map +1 -0
- package/dist/{mapping → esm/mapping}/visual-mapping.js +8 -0
- package/dist/esm/mapping/visual-mapping.js.map +1 -0
- package/dist/esm/serializer/document-writer.d.ts +40 -0
- package/dist/esm/serializer/document-writer.d.ts.map +1 -0
- package/dist/{serializer → esm/serializer}/document-writer.js +5 -0
- package/dist/esm/serializer/document-writer.js.map +1 -0
- package/dist/esm/serializer/graphical-writer.d.ts +29 -0
- package/dist/esm/serializer/graphical-writer.d.ts.map +1 -0
- package/dist/{serializer → esm/serializer}/graphical-writer.js +213 -54
- package/dist/esm/serializer/graphical-writer.js.map +1 -0
- package/dist/esm/serializer/profile-values.d.ts +8 -0
- package/dist/esm/serializer/profile-values.d.ts.map +1 -0
- package/dist/esm/serializer/profile-values.js.map +1 -0
- package/dist/esm/serializer/relationship-writer.d.ts +41 -0
- package/dist/esm/serializer/relationship-writer.d.ts.map +1 -0
- package/dist/{serializer → esm/serializer}/relationship-writer.js +4 -1
- package/dist/esm/serializer/relationship-writer.js.map +1 -0
- package/dist/esm/serializer/rtf.d.ts +9 -0
- package/dist/esm/serializer/rtf.d.ts.map +1 -0
- package/dist/{serializer → esm/serializer}/rtf.js +14 -0
- package/dist/esm/serializer/rtf.js.map +1 -0
- package/dist/esm/serializer/semantic-writer.d.ts +51 -0
- package/dist/esm/serializer/semantic-writer.d.ts.map +1 -0
- package/dist/{serializer → esm/serializer}/semantic-writer.js +24 -0
- package/dist/esm/serializer/semantic-writer.js.map +1 -0
- package/dist/esm/serializer/serialize-xma.d.ts +29 -0
- package/dist/esm/serializer/serialize-xma.d.ts.map +1 -0
- package/dist/{serializer → esm/serializer}/serialize-xma.js +40 -1
- package/dist/esm/serializer/serialize-xma.js.map +1 -0
- package/dist/esm/serializer/view-writer.d.ts +33 -0
- package/dist/esm/serializer/view-writer.d.ts.map +1 -0
- package/dist/esm/serializer/view-writer.js +236 -0
- package/dist/esm/serializer/view-writer.js.map +1 -0
- package/package.json +20 -9
- package/dist/diagnostics/diagnostics.d.ts.map +0 -1
- package/dist/diagnostics/diagnostics.js.map +0 -1
- package/dist/diagnostics/errors.d.ts.map +0 -1
- package/dist/diagnostics/errors.js.map +0 -1
- package/dist/geometry/bendpoints.d.ts.map +0 -1
- package/dist/geometry/bendpoints.js.map +0 -1
- package/dist/geometry/geometry.d.ts +0 -48
- package/dist/geometry/geometry.d.ts.map +0 -1
- package/dist/geometry/geometry.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/infrastructure/id-allocator.d.ts.map +0 -1
- package/dist/infrastructure/id-allocator.js.map +0 -1
- package/dist/infrastructure/xml-writer.d.ts.map +0 -1
- package/dist/infrastructure/xml-writer.js.map +0 -1
- package/dist/mapping/element-mapping.d.ts.map +0 -1
- package/dist/mapping/element-mapping.js.map +0 -1
- package/dist/mapping/generic-relationship-mapping.d.ts.map +0 -1
- package/dist/mapping/generic-relationship-mapping.js.map +0 -1
- package/dist/mapping/relationship-mapping.d.ts.map +0 -1
- package/dist/mapping/relationship-mapping.js.map +0 -1
- package/dist/mapping/scheme-mapping.d.ts.map +0 -1
- package/dist/mapping/scheme-mapping.js.map +0 -1
- package/dist/mapping/visual-mapping.d.ts.map +0 -1
- package/dist/mapping/visual-mapping.js.map +0 -1
- package/dist/serializer/document-writer.d.ts.map +0 -1
- package/dist/serializer/document-writer.js.map +0 -1
- package/dist/serializer/graphical-writer.d.ts.map +0 -1
- package/dist/serializer/graphical-writer.js.map +0 -1
- package/dist/serializer/profile-values.d.ts.map +0 -1
- package/dist/serializer/profile-values.js.map +0 -1
- package/dist/serializer/relationship-writer.d.ts.map +0 -1
- package/dist/serializer/relationship-writer.js.map +0 -1
- package/dist/serializer/rtf.d.ts.map +0 -1
- package/dist/serializer/rtf.js.map +0 -1
- package/dist/serializer/semantic-writer.d.ts.map +0 -1
- package/dist/serializer/semantic-writer.js.map +0 -1
- package/dist/serializer/serialize-xma.d.ts.map +0 -1
- package/dist/serializer/serialize-xma.js.map +0 -1
- package/dist/serializer/view-writer.d.ts.map +0 -1
- package/dist/serializer/view-writer.js +0 -145
- package/dist/serializer/view-writer.js.map +0 -1
- /package/dist/{diagnostics → cjs/diagnostics}/diagnostics.d.ts +0 -0
- /package/dist/{diagnostics → cjs/diagnostics}/errors.d.ts +0 -0
- /package/dist/{geometry → cjs/geometry}/bendpoints.d.ts +0 -0
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{infrastructure → cjs/infrastructure}/id-allocator.d.ts +0 -0
- /package/dist/{infrastructure → cjs/infrastructure}/xml-writer.d.ts +0 -0
- /package/dist/{mapping → cjs/mapping}/element-mapping.d.ts +0 -0
- /package/dist/{mapping → cjs/mapping}/generic-relationship-mapping.d.ts +0 -0
- /package/dist/{mapping → cjs/mapping}/relationship-mapping.d.ts +0 -0
- /package/dist/{mapping → cjs/mapping}/scheme-mapping.d.ts +0 -0
- /package/dist/{serializer → cjs/serializer}/document-writer.d.ts +0 -0
- /package/dist/{serializer → cjs/serializer}/profile-values.d.ts +0 -0
- /package/dist/{serializer → cjs/serializer}/relationship-writer.d.ts +0 -0
- /package/dist/{serializer → cjs/serializer}/rtf.d.ts +0 -0
- /package/dist/{serializer → cjs/serializer}/semantic-writer.d.ts +0 -0
- /package/dist/{serializer → cjs/serializer}/serialize-xma.d.ts +0 -0
- /package/dist/{diagnostics → esm/diagnostics}/diagnostics.js +0 -0
- /package/dist/{diagnostics → esm/diagnostics}/errors.js +0 -0
- /package/dist/{index.js → esm/index.js} +0 -0
- /package/dist/{infrastructure → esm/infrastructure}/id-allocator.js +0 -0
- /package/dist/{mapping → esm/mapping}/element-mapping.js +0 -0
- /package/dist/{mapping → esm/mapping}/generic-relationship-mapping.js +0 -0
- /package/dist/{mapping → esm/mapping}/relationship-mapping.js +0 -0
- /package/dist/{mapping → esm/mapping}/scheme-mapping.js +0 -0
- /package/dist/{serializer → esm/serializer}/profile-values.js +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { ArchiModel } from '@cda/archi-semantic-core';
|
|
2
|
+
import type { XmlElement } from '../infrastructure/xml-writer.js';
|
|
3
|
+
import type { XmaIdRegistry } from '../infrastructure/id-allocator.js';
|
|
4
|
+
import type { DiagnosticCollector } from '../diagnostics/diagnostics.js';
|
|
5
|
+
import { type ElementMappingEntry } from '../mapping/element-mapping.js';
|
|
6
|
+
export interface SchemeBuild {
|
|
7
|
+
tag: string;
|
|
8
|
+
/** Ordered per {@link getSchemeCollectionOrder}; only collections that received at least one element are populated. */
|
|
9
|
+
collections: Map<string, {
|
|
10
|
+
name: string;
|
|
11
|
+
children: XmlElement[];
|
|
12
|
+
}>;
|
|
13
|
+
/** `<ArchiMate:Relations name="relations">` children — filled in by `relationship-writer`. */
|
|
14
|
+
relations: XmlElement[];
|
|
15
|
+
}
|
|
16
|
+
export interface SemanticBuildResult {
|
|
17
|
+
schemeBuilds: Map<string, SchemeBuild>;
|
|
18
|
+
/** Archi element id -> its resolved mapping, for elements that mapped successfully (feeds view/graphical writers). */
|
|
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[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Builds the per-scheme element collections (`<ArchiMate:BusinessActors>`
|
|
31
|
+
* etc.) for every `ArchiElement` in the model, regardless of whether it
|
|
32
|
+
* appears in the (single supported) view — semantic elements are model-wide,
|
|
33
|
+
* not view-scoped.
|
|
34
|
+
*/
|
|
35
|
+
export declare function buildSemanticElements(model: ArchiModel, ids: XmaIdRegistry, diagnostics: DiagnosticCollector, language: string): SemanticBuildResult;
|
|
36
|
+
/**
|
|
37
|
+
* Renders a `SchemeBuild`'s children (an optional `nm` profile, then each
|
|
38
|
+
* populated collection in confirmed order, then `Relations` last) — the
|
|
39
|
+
* caller wraps these in the actual `<ArchiMate:{schemeTag} id="...">`
|
|
40
|
+
* element, since only the caller (`document-writer`) knows the scheme's
|
|
41
|
+
* allocated id.
|
|
42
|
+
*
|
|
43
|
+
* Every collection element (including `Relations`) carries its own `id` —
|
|
44
|
+
* confirmed against the real fixture (e.g. `ApplicationComponents id="222"`,
|
|
45
|
+
* `Relations id="72"`), unlike a bare element concept which doesn't need one
|
|
46
|
+
* beyond its own. Previously omitted here; Enterprise Studio rejected the
|
|
47
|
+
* resulting document outright ("could not generate the object: unknown
|
|
48
|
+
* type") rather than merely losing content.
|
|
49
|
+
*/
|
|
50
|
+
export declare function renderSchemeChildren(build: SchemeBuild, nameProfile: XmlElement | null, ids: XmaIdRegistry): XmlElement[];
|
|
51
|
+
//# sourceMappingURL=semantic-writer.d.ts.map
|
|
@@ -0,0 +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;IACjD;;;;;;OAMG;IACH,iBAAiB,EAAE,UAAU,EAAE,CAAC;CACjC;AAgGD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,MAAM,GACf,mBAAmB,CA6CrB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,EAAE,aAAa,GAAG,UAAU,EAAE,CAgBzH"}
|
|
@@ -13,6 +13,29 @@ import { buildProfileValues } from './profile-values.js';
|
|
|
13
13
|
function junctionXmaType(el) {
|
|
14
14
|
return el.junctionType === 'Or' ? 'OrJunction' : 'Junction';
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* `archi-semantic-core` already defaults an unrecognized native junction
|
|
18
|
+
* `type` attribute to `'And'` rather than guessing (see its `junctionType`
|
|
19
|
+
* doc comment) — but it also preserves the original value verbatim in
|
|
20
|
+
* `rawJunctionType` specifically so a downstream consumer can tell "really
|
|
21
|
+
* absent/empty, the documented default" apart from "an unrecognized value
|
|
22
|
+
* that got silently defaulted". This reports the latter as a warning
|
|
23
|
+
* instead of drawing an `And` Junction with no indication anything was
|
|
24
|
+
* guessed.
|
|
25
|
+
*/
|
|
26
|
+
function reportUnrecognizedJunctionType(el, diagnostics) {
|
|
27
|
+
if (el.junctionType !== 'And')
|
|
28
|
+
return;
|
|
29
|
+
const raw = el.rawJunctionType ?? '';
|
|
30
|
+
if (raw === '' || raw === 'or')
|
|
31
|
+
return;
|
|
32
|
+
diagnostics.warning({
|
|
33
|
+
code: 'unrecognized-junction-type',
|
|
34
|
+
message: `Junction "${el.name ?? el.id}" has an unrecognized native type value ("${raw}") — treated as AND (Archi's documented default for an unrecognized value), not necessarily what was intended.`,
|
|
35
|
+
entityId: el.id,
|
|
36
|
+
entityType: 'ArchiElement',
|
|
37
|
+
});
|
|
38
|
+
}
|
|
16
39
|
/**
|
|
17
40
|
* A `Junction`'s own `category`/`hasIcon` are never read: `graphical-writer`
|
|
18
41
|
* draws Junctions via a dedicated, colorless node form (confirmed in both
|
|
@@ -83,6 +106,7 @@ export function buildSemanticElements(model, ids, diagnostics, language) {
|
|
|
83
106
|
const mapping = junctionMappingEntry(el);
|
|
84
107
|
mappedElements.set(el.id, mapping);
|
|
85
108
|
reportAncillaryLossWarnings(el, diagnostics);
|
|
109
|
+
reportUnrecognizedJunctionType(el, diagnostics);
|
|
86
110
|
const xmaId = ids.idFor(el.id);
|
|
87
111
|
rootConnectorsXml.push(element(`ArchiMate:${mapping.xmaType}`, [['id', String(xmaId)]], [
|
|
88
112
|
buildProfileValues(language, el.name ?? '', el.documentation),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-writer.js","sourceRoot":"","sources":["../../../src/serializer/semantic-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ArchiModel } from '@cda/archi-semantic-core';
|
|
2
|
+
import { type XmaDiagnostic } from '../diagnostics/diagnostics.js';
|
|
3
|
+
export interface XmaSerializeOptions {
|
|
4
|
+
/** BCP-47-ish language code applied to every `xml:lang` and the default `MM_Language`. Defaults to `'en'`. Never inferred from content. */
|
|
5
|
+
language?: string;
|
|
6
|
+
/** The root `MM_ModelPackage`'s display name. Defaults to a neutral, deterministic placeholder (no machine/user identity is ever fabricated). */
|
|
7
|
+
packageName?: string;
|
|
8
|
+
/** The model's display name (used for both the `ArchiMateMM_Model` and root component profile values). Defaults to `model.metadata.name`. */
|
|
9
|
+
modelName?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Serializes an `ArchiModel` (from `@cda/archi-semantic-core`) into an XMA
|
|
13
|
+
* document string.
|
|
14
|
+
*
|
|
15
|
+
* Strict by default: if any construct in the model would be silently lost
|
|
16
|
+
* (an unsupported element/relationship type, a second view, incomplete
|
|
17
|
+
* geometry, ...) this throws `XmaSerializationError` carrying the full
|
|
18
|
+
* structured diagnostic list, rather than producing an approximate or
|
|
19
|
+
* partial XMA document. Use `inspectXmaSupport` to preview what would be
|
|
20
|
+
* unsupported without throwing.
|
|
21
|
+
*/
|
|
22
|
+
export declare function serializeXma(model: ArchiModel, options?: XmaSerializeOptions): string;
|
|
23
|
+
/**
|
|
24
|
+
* Non-mutating diagnostic pass: reports every construct in `model` that
|
|
25
|
+
* `serializeXma` would refuse to convert, without throwing and without
|
|
26
|
+
* requiring the model to be fully convertible.
|
|
27
|
+
*/
|
|
28
|
+
export declare function inspectXmaSupport(model: ArchiModel, options?: XmaSerializeOptions): XmaDiagnostic[];
|
|
29
|
+
//# sourceMappingURL=serialize-xma.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AA6GD;;;;;;;;;;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"}
|
|
@@ -8,19 +8,58 @@ import { buildView } from './view-writer.js';
|
|
|
8
8
|
import { buildGraphicalModule } from './graphical-writer.js';
|
|
9
9
|
import { buildXmaDocument } from './document-writer.js';
|
|
10
10
|
const DEFAULT_PACKAGE_NAME = 'CDA XMA Package';
|
|
11
|
+
const REQUIRED_MODEL_ARRAY_FIELDS = [
|
|
12
|
+
'elements',
|
|
13
|
+
'relationships',
|
|
14
|
+
'views',
|
|
15
|
+
'diagramObjects',
|
|
16
|
+
'diagramConnections',
|
|
17
|
+
'notes',
|
|
18
|
+
'folders',
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* `ArchiModel`'s shape is only enforced by TypeScript at compile time. A
|
|
22
|
+
* caller passing `null`/`undefined`, or an object missing a collection,
|
|
23
|
+
* would otherwise hit the first `.map()`/`.filter()` deep inside a writer
|
|
24
|
+
* and get a raw `Cannot read properties of undefined` — not an actionable
|
|
25
|
+
* error for a public library API. This is a caller-contract violation, not
|
|
26
|
+
* a "construct XMA can't represent" diagnostic, so it throws directly
|
|
27
|
+
* instead of going through `DiagnosticCollector`/`XmaSerializationError`.
|
|
28
|
+
*/
|
|
29
|
+
function assertValidModelShape(model) {
|
|
30
|
+
if (typeof model !== 'object' || model === null) {
|
|
31
|
+
throw new TypeError(`serializeXma: expected an ArchiModel object, got ${model === null ? 'null' : typeof model}.`);
|
|
32
|
+
}
|
|
33
|
+
if (typeof model.metadata !== 'object' || model.metadata === null) {
|
|
34
|
+
throw new TypeError('serializeXma: model.metadata is missing or invalid — expected an ArchiModel.');
|
|
35
|
+
}
|
|
36
|
+
for (const field of REQUIRED_MODEL_ARRAY_FIELDS) {
|
|
37
|
+
if (!Array.isArray(model[field])) {
|
|
38
|
+
throw new TypeError(`serializeXma: model.${field} is missing or not an array — expected an ArchiModel.`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
11
42
|
function planXmaDocument(model, options) {
|
|
43
|
+
assertValidModelShape(model);
|
|
12
44
|
const diagnostics = new DiagnosticCollector();
|
|
13
45
|
const language = options?.language ?? 'en';
|
|
14
46
|
const modelName = options?.modelName ?? model.metadata.name;
|
|
15
47
|
const packageName = options?.packageName ?? DEFAULT_PACKAGE_NAME;
|
|
16
48
|
const allocator = new XmaIdAllocator();
|
|
17
49
|
const ids = new XmaIdRegistry(allocator);
|
|
18
|
-
const refIds = new XmaIdRegistry(allocator);
|
|
19
50
|
const { schemeBuilds, mappedElements, rootConnectorsXml } = buildSemanticElements(model, ids, diagnostics, language);
|
|
20
51
|
const elementIndex = new Map(model.elements.map((e) => [e.id, e]));
|
|
21
52
|
const relationshipIndex = new Map(model.relationships.map((r) => [r.id, r]));
|
|
22
53
|
const { mappedRelationships, rootRelationsXml } = buildSemanticRelationships(model, ids, elementIndex, relationshipIndex, mappedElements, schemeBuilds, diagnostics);
|
|
23
54
|
const builtViews = model.views.map((view) => {
|
|
55
|
+
// A fresh RefObjects registry per view — confirmed against the sabsa
|
|
56
|
+
// fixture (38 views): each `AllView`'s `RefObjects` is self-contained,
|
|
57
|
+
// so an element referenced from multiple views gets its own ref id in
|
|
58
|
+
// each one (840 total Ref elements for 735 distinct semantic targets in
|
|
59
|
+
// sabsa.xma, never a ref id reused across two views). A shared registry
|
|
60
|
+
// would leave every view after the first missing Ref entries for
|
|
61
|
+
// elements first seen in an earlier view.
|
|
62
|
+
const refIds = new XmaIdRegistry(allocator);
|
|
24
63
|
const viewResult = buildView(model, view, ids, refIds, mappedElements, mappedRelationships, diagnostics, language);
|
|
25
64
|
const { diagramXml } = buildGraphicalModule(model, view, ids, refIds, allocator, mappedElements, mappedRelationships, viewResult, diagnostics);
|
|
26
65
|
return { view, viewResult, graphicalDiagramXml: diagramXml };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize-xma.js","sourceRoot":"","sources":["../../../src/serializer/serialize-xma.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ArchiModel, ArchiView } from '@cda/archi-semantic-core';
|
|
2
|
+
import type { XmlElement } from '../infrastructure/xml-writer.js';
|
|
3
|
+
import type { XmaIdRegistry } from '../infrastructure/id-allocator.js';
|
|
4
|
+
import type { DiagnosticCollector } from '../diagnostics/diagnostics.js';
|
|
5
|
+
import type { ElementMappingEntry } from '../mapping/element-mapping.js';
|
|
6
|
+
import type { ResolvedRelationshipMapping } from './relationship-writer.js';
|
|
7
|
+
export interface ViewBuildResult {
|
|
8
|
+
viewGraphicsXml: XmlElement[];
|
|
9
|
+
/** `<ArchiMate:ViewEdge>` elements for this view's purely-visual connections — see the connection loop below. */
|
|
10
|
+
viewEdgesXml: XmlElement[];
|
|
11
|
+
refObjectsXml: XmlElement[];
|
|
12
|
+
/** Ids of diagram objects that passed validation and should be drawn (element-backed nodes only). */
|
|
13
|
+
validElementNodeObjectIds: Set<string>;
|
|
14
|
+
/** Ids of Group diagram objects that passed validation and should be drawn. */
|
|
15
|
+
validGroupObjectIds: Set<string>;
|
|
16
|
+
/** Ids of notes that passed validation and should be drawn. */
|
|
17
|
+
validNoteIds: Set<string>;
|
|
18
|
+
/** Ids of DiagramModelReference objects that passed validation and should be drawn. */
|
|
19
|
+
validViewReferenceObjectIds: Set<string>;
|
|
20
|
+
/** Archi connection id -> its ArchiMate:ViewEdge's own semantic XMA id, for graphical-writer's mm_semanticObject. */
|
|
21
|
+
viewEdgeSemanticIds: Map<string, number>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Builds one `AllView`'s `ViewGraphics` (Notes/Groups) and `RefObjects`
|
|
25
|
+
* (the three-layer view-reference indirection — see module docs on
|
|
26
|
+
* `graphical-writer.ts`). Also validates every diagram object/note/connection
|
|
27
|
+
* in the view, since geometry and view membership are model-wide
|
|
28
|
+
* preservation guarantees, not just node drawing concerns. Nested diagram
|
|
29
|
+
* objects (a `parentId` or non-empty `childrenIds`) are valid here — see
|
|
30
|
+
* `graphical-writer.ts`'s recursive node building for how nesting is drawn.
|
|
31
|
+
*/
|
|
32
|
+
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;
|
|
33
|
+
//# sourceMappingURL=view-writer.d.ts.map
|
|
@@ -0,0 +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,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAI5E,MAAM,WAAW,eAAe;IAC9B,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,iHAAiH;IACjH,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,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;IAC1B,uFAAuF;IACvF,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,qHAAqH;IACrH,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;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,CAiPjB"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { element } from '../infrastructure/xml-writer.js';
|
|
2
|
+
import { buildProfileValues } from './profile-values.js';
|
|
3
|
+
import { hasCompleteBounds } from '../geometry/geometry.js';
|
|
4
|
+
/**
|
|
5
|
+
* Builds one `AllView`'s `ViewGraphics` (Notes/Groups) and `RefObjects`
|
|
6
|
+
* (the three-layer view-reference indirection — see module docs on
|
|
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.
|
|
12
|
+
*/
|
|
13
|
+
export function buildView(model, view, ids, refIds, mappedElements, mappedRelationships, diagnostics, language) {
|
|
14
|
+
const viewGraphicsXml = [];
|
|
15
|
+
const viewEdgesXml = [];
|
|
16
|
+
const refObjectsXml = [];
|
|
17
|
+
const validElementNodeObjectIds = new Set();
|
|
18
|
+
const validGroupObjectIds = new Set();
|
|
19
|
+
const validNoteIds = new Set();
|
|
20
|
+
const validViewReferenceObjectIds = new Set();
|
|
21
|
+
const viewEdgeSemanticIds = new Map();
|
|
22
|
+
const viewIds = new Set(model.views.map((v) => v.id));
|
|
23
|
+
const diagramObjectById = new Map(model.diagramObjects.map((o) => [o.id, o]));
|
|
24
|
+
/**
|
|
25
|
+
* Resolves the semantic XMA id a diagram object (or note) uses for its
|
|
26
|
+
* *own* node's `mm_semanticObject` — confirmed (across an
|
|
27
|
+
* element-backed/Group/Note/DiagramModelReference mix, in two independent
|
|
28
|
+
* fixtures) to be exactly the value an `ArchiMate:ViewEdge`'s `from`/`to`
|
|
29
|
+
* references for that same object. `undefined` when the id isn't a
|
|
30
|
+
* validated, drawable object/note in this view.
|
|
31
|
+
*/
|
|
32
|
+
function resolveObjectSemanticId(objectOrNoteId) {
|
|
33
|
+
if (validElementNodeObjectIds.has(objectOrNoteId)) {
|
|
34
|
+
const archimateElementId = diagramObjectById.get(objectOrNoteId)?.archimateElementId;
|
|
35
|
+
return archimateElementId ? refIds.get(archimateElementId) : undefined;
|
|
36
|
+
}
|
|
37
|
+
if (validGroupObjectIds.has(objectOrNoteId) || validNoteIds.has(objectOrNoteId)) {
|
|
38
|
+
return ids.get(objectOrNoteId);
|
|
39
|
+
}
|
|
40
|
+
if (validViewReferenceObjectIds.has(objectOrNoteId)) {
|
|
41
|
+
const referencedModelId = diagramObjectById.get(objectOrNoteId)?.referencedModelId;
|
|
42
|
+
return referencedModelId ? refIds.get(referencedModelId) : undefined;
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
for (const obj of model.diagramObjects) {
|
|
47
|
+
if (obj.viewId !== view.id) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (obj.referencedModelId !== null) {
|
|
51
|
+
// Corrected finding: an earlier version of this comment claimed "no
|
|
52
|
+
// trace whatsoever" of a DiagramModelReference in the real XMA export,
|
|
53
|
+
// based on grepping for Archi's own string id — which can never match
|
|
54
|
+
// anything, since XMA never reuses Archi's ids (see id-allocator.ts).
|
|
55
|
+
// That verification method was broken, not the underlying claim.
|
|
56
|
+
// Re-verified directly against agile-manifesto.xma: both
|
|
57
|
+
// DiagramModelReference objects there ARE drawn, as an
|
|
58
|
+
// `mm_concept="AllView"`/`mm_graphicType="3"` node whose
|
|
59
|
+
// `mm_semanticObject` resolves — via an `ArchiMate:AllViewRef`, the
|
|
60
|
+
// same Ref-layer indirection used for every other element/relationship
|
|
61
|
+
// — to the *referenced view's own* `ArchiMate:AllView` id (no new
|
|
62
|
+
// semantic concept is minted for the reference itself). See
|
|
63
|
+
// `graphical-writer.ts`'s `buildViewReferenceNode`.
|
|
64
|
+
//
|
|
65
|
+
// This only resolves when the reference targets another `ArchiView` in
|
|
66
|
+
// *this* model. `referencedModelId` can also point at a Sketch/Canvas
|
|
67
|
+
// view (per `archi-semantic-core`'s docs on the field) — archi-mate has
|
|
68
|
+
// no XMA representation at all, so that case remains genuinely
|
|
69
|
+
// unsupported.
|
|
70
|
+
if (!hasCompleteBounds(obj.bounds)) {
|
|
71
|
+
diagnostics.error({
|
|
72
|
+
code: 'missing-bounds',
|
|
73
|
+
message: `Diagram object "${obj.id}" has incomplete geometry (x/y/width/height) and cannot be positioned in XMA.`,
|
|
74
|
+
entityId: obj.id,
|
|
75
|
+
entityType: 'ArchiDiagramObject',
|
|
76
|
+
});
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (!viewIds.has(obj.referencedModelId)) {
|
|
80
|
+
diagnostics.warning({
|
|
81
|
+
code: 'unsupported-diagram-model-reference',
|
|
82
|
+
message: `Diagram object "${obj.id}" references a view/model ("${obj.referencedModelId}") not among this model's own ArchiMate views (e.g. a Sketch/Canvas) — not representable in XMA and was omitted.`,
|
|
83
|
+
entityId: obj.id,
|
|
84
|
+
entityType: 'ArchiDiagramObject',
|
|
85
|
+
});
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (!refIds.has(obj.referencedModelId)) {
|
|
89
|
+
const refId = refIds.idFor(obj.referencedModelId);
|
|
90
|
+
refObjectsXml.push(element('ArchiMate:AllViewRef', [
|
|
91
|
+
['id', String(refId)],
|
|
92
|
+
['to', String(ids.idFor(obj.referencedModelId))],
|
|
93
|
+
]));
|
|
94
|
+
}
|
|
95
|
+
validViewReferenceObjectIds.add(obj.id);
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (obj.archimateElementId === null) {
|
|
99
|
+
if (obj.xsiType !== 'archimate:Group') {
|
|
100
|
+
diagnostics.error({
|
|
101
|
+
code: 'unsupported-diagram-object',
|
|
102
|
+
message: `Diagram object "${obj.id}" (${obj.xsiType}) has no backing semantic element and is not a recognized Group — not supported in XMA v0.1.`,
|
|
103
|
+
entityId: obj.id,
|
|
104
|
+
entityType: 'ArchiDiagramObject',
|
|
105
|
+
});
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
if (!hasCompleteBounds(obj.bounds)) {
|
|
109
|
+
diagnostics.error({
|
|
110
|
+
code: 'missing-bounds',
|
|
111
|
+
message: `Group "${obj.id}" has incomplete geometry (x/y/width/height) and cannot be positioned in XMA.`,
|
|
112
|
+
entityId: obj.id,
|
|
113
|
+
entityType: 'ArchiDiagramObject',
|
|
114
|
+
});
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
const groupXmaId = ids.idFor(obj.id);
|
|
118
|
+
viewGraphicsXml.push(element('ArchiMate:ViewGraphic', [['id', String(groupXmaId)]], [
|
|
119
|
+
buildProfileValues(language, obj.name ?? '', obj.documentation),
|
|
120
|
+
]));
|
|
121
|
+
validGroupObjectIds.add(obj.id);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
// Element-backed diagram object.
|
|
125
|
+
if (!hasCompleteBounds(obj.bounds)) {
|
|
126
|
+
diagnostics.error({
|
|
127
|
+
code: 'missing-bounds',
|
|
128
|
+
message: `Diagram object "${obj.id}" has incomplete geometry (x/y/width/height) and cannot be positioned in XMA.`,
|
|
129
|
+
entityId: obj.id,
|
|
130
|
+
entityType: 'ArchiDiagramObject',
|
|
131
|
+
});
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
const mapping = mappedElements.get(obj.archimateElementId);
|
|
135
|
+
if (!mapping) {
|
|
136
|
+
// The backing element already produced an unsupported-element-type diagnostic.
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (!refIds.has(obj.archimateElementId)) {
|
|
140
|
+
const refId = refIds.idFor(obj.archimateElementId);
|
|
141
|
+
refObjectsXml.push(element(`ArchiMate:${mapping.xmaType}Ref`, [
|
|
142
|
+
['id', String(refId)],
|
|
143
|
+
['to', String(ids.idFor(obj.archimateElementId))],
|
|
144
|
+
]));
|
|
145
|
+
}
|
|
146
|
+
validElementNodeObjectIds.add(obj.id);
|
|
147
|
+
}
|
|
148
|
+
for (const note of model.notes) {
|
|
149
|
+
if (note.viewId !== view.id) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
if (note.parentId !== null) {
|
|
153
|
+
// Unlike nested ArchiDiagramObjects (supported — see graphical-writer.ts's
|
|
154
|
+
// buildNodeTree), a nested Note has no fixture evidence: only one instance
|
|
155
|
+
// exists across all four fixtures, not enough to confirm its representation.
|
|
156
|
+
diagnostics.error({
|
|
157
|
+
code: 'unsupported-nested-diagram-object',
|
|
158
|
+
message: `Note "${note.id}" is nested inside another diagram object — not supported in XMA v0.1.`,
|
|
159
|
+
entityId: note.id,
|
|
160
|
+
entityType: 'ArchiNote',
|
|
161
|
+
});
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
if (!hasCompleteBounds(note.bounds)) {
|
|
165
|
+
diagnostics.error({
|
|
166
|
+
code: 'missing-bounds',
|
|
167
|
+
message: `Note "${note.id}" has incomplete geometry (x/y/width/height) and cannot be positioned in XMA.`,
|
|
168
|
+
entityId: note.id,
|
|
169
|
+
entityType: 'ArchiNote',
|
|
170
|
+
});
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
const noteXmaId = ids.idFor(note.id);
|
|
174
|
+
viewGraphicsXml.push(element('ArchiMate:ViewGraphic', [['id', String(noteXmaId)]], [buildProfileValues(language, note.content ?? '')]));
|
|
175
|
+
validNoteIds.add(note.id);
|
|
176
|
+
}
|
|
177
|
+
for (const connection of model.diagramConnections) {
|
|
178
|
+
if (connection.viewId !== view.id) {
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
if (connection.archimateRelationshipId === null) {
|
|
182
|
+
// A purely-visual connection (no underlying ArchiMate relationship).
|
|
183
|
+
// Confirmed against two independent real instances — agile-manifesto
|
|
184
|
+
// (between two DiagramModelReferences) and sabsa (between a
|
|
185
|
+
// Note/Group and a BusinessRole element) — that Archi represents
|
|
186
|
+
// this as an ArchiMate:ViewEdge, whose from/to are exactly each
|
|
187
|
+
// endpoint's own semantic id (the same value already used as that
|
|
188
|
+
// endpoint's own node's mm_semanticObject — see
|
|
189
|
+
// resolveObjectSemanticId above). Falls back to the pre-existing
|
|
190
|
+
// diagnostic when either endpoint isn't itself a drawable object —
|
|
191
|
+
// that remains a genuinely unsupported case, not guessed either way.
|
|
192
|
+
const fromSemanticId = resolveObjectSemanticId(connection.sourceId);
|
|
193
|
+
const toSemanticId = resolveObjectSemanticId(connection.targetId);
|
|
194
|
+
if (fromSemanticId === undefined || toSemanticId === undefined) {
|
|
195
|
+
diagnostics.error({
|
|
196
|
+
code: 'unsupported-connection-no-relationship',
|
|
197
|
+
message: `Connection "${connection.id}" has no underlying semantic relationship (a purely visual connector) and at least one endpoint is not a drawable object — not supported in XMA v0.1.`,
|
|
198
|
+
entityId: connection.id,
|
|
199
|
+
entityType: 'ArchiDiagramConnection',
|
|
200
|
+
});
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
const viewEdgeId = ids.idFor(connection.id);
|
|
204
|
+
viewEdgesXml.push(element('ArchiMate:ViewEdge', [
|
|
205
|
+
['id', String(viewEdgeId)],
|
|
206
|
+
['from', String(fromSemanticId)],
|
|
207
|
+
['to', String(toSemanticId)],
|
|
208
|
+
]));
|
|
209
|
+
viewEdgeSemanticIds.set(connection.id, viewEdgeId);
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
const mapping = mappedRelationships.get(connection.archimateRelationshipId);
|
|
213
|
+
if (!mapping) {
|
|
214
|
+
// The underlying relationship already produced its own diagnostic.
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
if (!refIds.has(connection.archimateRelationshipId)) {
|
|
218
|
+
const refId = refIds.idFor(connection.archimateRelationshipId);
|
|
219
|
+
refObjectsXml.push(element(`ArchiMate:${mapping.xmaType}Ref`, [
|
|
220
|
+
['id', String(refId)],
|
|
221
|
+
['to', String(ids.idFor(connection.archimateRelationshipId))],
|
|
222
|
+
]));
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return {
|
|
226
|
+
viewGraphicsXml,
|
|
227
|
+
viewEdgesXml,
|
|
228
|
+
refObjectsXml,
|
|
229
|
+
validElementNodeObjectIds,
|
|
230
|
+
validGroupObjectIds,
|
|
231
|
+
validNoteIds,
|
|
232
|
+
validViewReferenceObjectIds,
|
|
233
|
+
viewEdgeSemanticIds,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=view-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-writer.js","sourceRoot":"","sources":["../../../src/serializer/view-writer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cda/adapter-xma",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "XMA output adapter for the Continuous-Driven Architecture (CDA) ecosystem. Serializes the ArchiModel produced by @cda/archi-semantic-core into an XMA document.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"archimate",
|
|
@@ -14,12 +14,14 @@
|
|
|
14
14
|
"engines": {
|
|
15
15
|
"node": "^20.0.0 || ^22.0.0 || >=24.0.0"
|
|
16
16
|
},
|
|
17
|
-
"main": "./dist/index.js",
|
|
18
|
-
"
|
|
17
|
+
"main": "./dist/cjs/index.js",
|
|
18
|
+
"module": "./dist/esm/index.js",
|
|
19
|
+
"types": "./dist/esm/index.d.ts",
|
|
19
20
|
"exports": {
|
|
20
21
|
".": {
|
|
21
|
-
"types": "./dist/index.d.ts",
|
|
22
|
-
"import": "./dist/index.js"
|
|
22
|
+
"types": "./dist/esm/index.d.ts",
|
|
23
|
+
"import": "./dist/esm/index.js",
|
|
24
|
+
"require": "./dist/cjs/index.js"
|
|
23
25
|
}
|
|
24
26
|
},
|
|
25
27
|
"files": [
|
|
@@ -32,24 +34,33 @@
|
|
|
32
34
|
"sideEffects": false,
|
|
33
35
|
"scripts": {
|
|
34
36
|
"typecheck": "tsc --noEmit",
|
|
35
|
-
"
|
|
37
|
+
"lint": "eslint .",
|
|
38
|
+
"build": "tsc -p tsconfig.build.esm.json && tsc -p tsconfig.build.cjs.json && node scripts/write-cjs-package-json.mjs",
|
|
36
39
|
"test": "vitest run",
|
|
37
40
|
"test:watch": "vitest",
|
|
38
|
-
"
|
|
41
|
+
"test:coverage": "vitest run --coverage",
|
|
42
|
+
"prepublishOnly": "npm run typecheck && npm run lint && npm run build && npm test",
|
|
43
|
+
"prepare": "husky"
|
|
39
44
|
},
|
|
40
45
|
"peerDependencies": {
|
|
41
|
-
"@cda/archi-semantic-core": "
|
|
46
|
+
"@cda/archi-semantic-core": "^0.4.1"
|
|
42
47
|
},
|
|
43
48
|
"devDependencies": {
|
|
44
|
-
"@cda/archi-semantic-core": "^0.4.
|
|
49
|
+
"@cda/archi-semantic-core": "^0.4.3",
|
|
50
|
+
"@eslint/js": "^10.0.1",
|
|
45
51
|
"@semantic-release/changelog": "^7.0.0",
|
|
46
52
|
"@semantic-release/git": "^11.0.1",
|
|
47
53
|
"@semantic-release/github": "^12.0.9",
|
|
48
54
|
"@types/node": "^24.0.0",
|
|
55
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
49
56
|
"conventional-changelog-conventionalcommits": "^9.3.1",
|
|
57
|
+
"eslint": "^10.8.1",
|
|
50
58
|
"fast-xml-parser": "^5.10.1",
|
|
59
|
+
"globals": "^17.11.0",
|
|
60
|
+
"husky": "^9.1.7",
|
|
51
61
|
"semantic-release": "^25.0.9",
|
|
52
62
|
"typescript": "5.9.3",
|
|
63
|
+
"typescript-eslint": "^8.67.0",
|
|
53
64
|
"vitest": "^4.1.10"
|
|
54
65
|
},
|
|
55
66
|
"repository": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/diagnostics/diagnostics.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,qBAAqB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,uGAAuG;IACvG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kEAAkE;AAClE,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAE7C,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,IAAI;IAIxD,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,IAAI;IAI1D,IAAI,GAAG,IAAI,aAAa,EAAE,CAEzB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/diagnostics/diagnostics.ts"],"names":[],"mappings":"AAaA,kEAAkE;AAClE,MAAM,OAAO,mBAAmB;IAAhC;QACmB,UAAK,GAAoB,EAAE,CAAC;IAiB/C,CAAC;IAfC,KAAK,CAAC,UAA2C;QAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,UAA2C;QACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,GAAG;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACxD,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/diagnostics/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;gBAE1B,WAAW,EAAE,aAAa,EAAE;CAYzC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/diagnostics/errors.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAG9C,YAAY,WAA4B;QACtC,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;QAC5E,KAAK,CACH,6BAA6B,UAAU,uEAAuE;YAC5G,WAAW;iBACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;iBACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;iBACtC,IAAI,CAAC,IAAI,CAAC,CAChB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bendpoints.d.ts","sourceRoot":"","sources":["../../src/geometry/bendpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKjD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,kBAAkB,CAAC;IAC9B,wGAAwG;IACxG,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,KAAK,CAAC;QAClB,UAAU,EAAE,KAAK,CAAC;KACnB,CAAC;CACH;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACrG,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,GACjB,mBAAmB,GAAG,IAAI,CAgC5B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bendpoints.js","sourceRoot":"","sources":["../../src/geometry/bendpoints.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAe/B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAqG,EACrG,YAAkB,EAClB,YAAkB;IAElB,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC;IAC/E,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC;IAE3E,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE5C,MAAM,UAAU,GAAiB,eAAe;QAC9C,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,GAAI,SAAS,CAAC,MAAiB,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,GAAI,SAAS,CAAC,MAAiB,EAAE;QACxG,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,UAAU,GAAiB,eAAe;QAC9C,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,GAAI,SAAS,CAAC,IAAe,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,GAAI,SAAS,CAAC,IAAe,EAAE;QACpG,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,MAAM,GAAG,iBAAiB,IAAI,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAC7D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;QACxF,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAmB,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAClE,CAAC"}
|