@cda/adapter-xma 0.4.2 → 0.5.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 +31 -6
- 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/cjs/mapping/visual-mapping.d.ts.map +1 -0
- package/dist/cjs/mapping/visual-mapping.js +43 -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 +138 -0
- package/dist/cjs/serializer/document-writer.js.map +1 -0
- package/dist/cjs/serializer/graphical-writer.d.ts.map +1 -0
- package/dist/cjs/serializer/graphical-writer.js +464 -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/cjs/serializer/view-writer.d.ts.map +1 -0
- package/dist/cjs/serializer/view-writer.js +148 -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 +24 -0
- package/dist/esm/mapping/visual-mapping.d.ts.map +1 -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/esm/serializer/document-writer.js.map +1 -0
- package/dist/esm/serializer/graphical-writer.d.ts +27 -0
- package/dist/esm/serializer/graphical-writer.d.ts.map +1 -0
- package/dist/{serializer → esm/serializer}/graphical-writer.js +156 -40
- 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 +27 -0
- package/dist/esm/serializer/view-writer.d.ts.map +1 -0
- package/dist/esm/serializer/view-writer.js.map +1 -0
- package/package.json +19 -8
- 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.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/{mapping → cjs/mapping}/visual-mapping.d.ts +0 -0
- /package/dist/{serializer → cjs/serializer}/document-writer.d.ts +0 -0
- /package/dist/{serializer → cjs/serializer}/graphical-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/{serializer → cjs/serializer}/view-writer.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/{mapping → esm/mapping}/visual-mapping.js +0 -0
- /package/dist/{serializer → esm/serializer}/document-writer.js +0 -0
- /package/dist/{serializer → esm/serializer}/profile-values.js +0 -0
- /package/dist/{serializer → esm/serializer}/view-writer.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationship-writer.js","sourceRoot":"","sources":["../../../src/serializer/relationship-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtf.d.ts","sourceRoot":"","sources":["../../../src/serializer/rtf.ts"],"names":[],"mappings":"AAiDA;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toRtfDocument = toRtfDocument;
|
|
4
|
+
/**
|
|
5
|
+
* Deterministic, dependency-free RTF encoding for Archi `documentation`
|
|
6
|
+
* text, used as the `doc` profile value's content.
|
|
7
|
+
*
|
|
8
|
+
* RTF control characters (`\\`, `{`, `}`) are escaped, line breaks become
|
|
9
|
+
* `\par`, and every non-ASCII / control code unit is escaped as a signed
|
|
10
|
+
* `\uN?` Unicode destination (RTF 1.5+, one fallback byte per `\uc1`) rather
|
|
11
|
+
* than interpolated raw — this keeps the output valid RTF regardless of
|
|
12
|
+
* source locale (Spanish, accented Latin text, etc.) without guessing a
|
|
13
|
+
* target ANSI code page.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Iterates by UTF-16 code unit (not by Unicode code point) deliberately: a
|
|
17
|
+
* character outside the Basic Multilingual Plane (e.g. an emoji) is stored
|
|
18
|
+
* in JS strings as a surrogate pair, and this naturally emits it as two
|
|
19
|
+
* consecutive `\uN?` escapes, one per surrogate half — the standard,
|
|
20
|
+
* widely-implemented RTF technique for supplementary-plane characters
|
|
21
|
+
* (RTF's own `\u` model is itself UTF-16-code-unit-based). This is not
|
|
22
|
+
* splitting one character across two escapes by accident; recombining a
|
|
23
|
+
* code point first and emitting one escape would be the non-standard
|
|
24
|
+
* choice. No fixture contains an astral character in documentation text to
|
|
25
|
+
* confirm this against directly, but the signed-16-bit conversion below is
|
|
26
|
+
* applied uniformly and correctly regardless of whether a given code unit
|
|
27
|
+
* happens to be a surrogate half.
|
|
28
|
+
*/
|
|
29
|
+
function escapeRtfBody(text) {
|
|
30
|
+
const normalized = text.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
31
|
+
const out = [];
|
|
32
|
+
for (let i = 0; i < normalized.length; i += 1) {
|
|
33
|
+
const ch = normalized[i];
|
|
34
|
+
const code = normalized.charCodeAt(i);
|
|
35
|
+
if (ch === '\n') {
|
|
36
|
+
out.push('\\par\n');
|
|
37
|
+
}
|
|
38
|
+
else if (ch === '\\') {
|
|
39
|
+
out.push('\\\\');
|
|
40
|
+
}
|
|
41
|
+
else if (ch === '{') {
|
|
42
|
+
out.push('\\{');
|
|
43
|
+
}
|
|
44
|
+
else if (ch === '}') {
|
|
45
|
+
out.push('\\}');
|
|
46
|
+
}
|
|
47
|
+
else if (code >= 0x20 && code <= 0x7e) {
|
|
48
|
+
out.push(ch);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
const signed = code > 0x7fff ? code - 0x10000 : code;
|
|
52
|
+
out.push(`\\u${signed}?`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return out.join('');
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Wraps escaped documentation text into an RTF document, matching the exact
|
|
59
|
+
* minimal shape confirmed by both reference fixtures: `{\rtf1 <text>}`, with
|
|
60
|
+
* no additional header control words — the reference tool emits nothing
|
|
61
|
+
* beyond that, and RTF 1.5+'s `\uN` Unicode escapes are valid on their own
|
|
62
|
+
* (the per-`\u` fallback byte count defaults to 1 with no `\ucN` present).
|
|
63
|
+
*/
|
|
64
|
+
function toRtfDocument(text) {
|
|
65
|
+
return `{\\rtf1 ${escapeRtfBody(text)}}`;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=rtf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtf.js","sourceRoot":"","sources":["../../../src/serializer/rtf.ts"],"names":[],"mappings":";;AAwDA,sCAEC;AA1DD;;;;;;;;;;GAUG;AACH;;;;;;;;;;;;;GAaG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpE,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,IAAY;IACxC,OAAO,WAAW,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;AAC3C,CAAC"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildSemanticElements = buildSemanticElements;
|
|
4
|
+
exports.renderSchemeChildren = renderSchemeChildren;
|
|
5
|
+
const xml_writer_js_1 = require("../infrastructure/xml-writer.js");
|
|
6
|
+
const element_mapping_js_1 = require("../mapping/element-mapping.js");
|
|
7
|
+
const profile_values_js_1 = require("./profile-values.js");
|
|
8
|
+
/**
|
|
9
|
+
* `ArchiElement.type` is always the literal string `"Junction"` for both
|
|
10
|
+
* AND and OR junctions — the And/Or distinction lives in the separate
|
|
11
|
+
* `junctionType` field. Confirmed directly in both fixtures: XMA has two
|
|
12
|
+
* distinct element tags for this, `Junction` (AND) and `OrJunction` (OR),
|
|
13
|
+
* each living in the root `Connectors` container. This resolves the XMA tag
|
|
14
|
+
* for a Junction element; unlike every other type, it can't be a static
|
|
15
|
+
* `ELEMENT_MAPPINGS` table entry keyed by `archiType` alone.
|
|
16
|
+
*/
|
|
17
|
+
function junctionXmaType(el) {
|
|
18
|
+
return el.junctionType === 'Or' ? 'OrJunction' : 'Junction';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* `archi-semantic-core` already defaults an unrecognized native junction
|
|
22
|
+
* `type` attribute to `'And'` rather than guessing (see its `junctionType`
|
|
23
|
+
* doc comment) — but it also preserves the original value verbatim in
|
|
24
|
+
* `rawJunctionType` specifically so a downstream consumer can tell "really
|
|
25
|
+
* absent/empty, the documented default" apart from "an unrecognized value
|
|
26
|
+
* that got silently defaulted". This reports the latter as a warning
|
|
27
|
+
* instead of drawing an `And` Junction with no indication anything was
|
|
28
|
+
* guessed.
|
|
29
|
+
*/
|
|
30
|
+
function reportUnrecognizedJunctionType(el, diagnostics) {
|
|
31
|
+
if (el.junctionType !== 'And')
|
|
32
|
+
return;
|
|
33
|
+
const raw = el.rawJunctionType ?? '';
|
|
34
|
+
if (raw === '' || raw === 'or')
|
|
35
|
+
return;
|
|
36
|
+
diagnostics.warning({
|
|
37
|
+
code: 'unrecognized-junction-type',
|
|
38
|
+
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.`,
|
|
39
|
+
entityId: el.id,
|
|
40
|
+
entityType: 'ArchiElement',
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A `Junction`'s own `category`/`hasIcon` are never read: `graphical-writer`
|
|
45
|
+
* draws Junctions via a dedicated, colorless node form (confirmed in both
|
|
46
|
+
* fixtures — no `MM_Color`/`MM_Colors`, `mm_graphicType="3"` instead of the
|
|
47
|
+
* usual `"5"`) before ever consulting `CATEGORY_FILL_COLOR`. `category`
|
|
48
|
+
* still needs *some* valid value to satisfy `ElementMappingEntry`'s type;
|
|
49
|
+
* `'Grouping'` is used as an inert placeholder, not a claim about Junction's
|
|
50
|
+
* real presentation category.
|
|
51
|
+
*/
|
|
52
|
+
function junctionMappingEntry(el) {
|
|
53
|
+
const xmaType = junctionXmaType(el);
|
|
54
|
+
return {
|
|
55
|
+
archiType: 'Junction',
|
|
56
|
+
xmaType,
|
|
57
|
+
scheme: 'root',
|
|
58
|
+
collectionTag: 'Connectors',
|
|
59
|
+
collectionName: 'connectors',
|
|
60
|
+
category: 'Grouping',
|
|
61
|
+
hasIcon: false,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function getOrCreateScheme(schemeBuilds, tag) {
|
|
65
|
+
let build = schemeBuilds.get(tag);
|
|
66
|
+
if (!build) {
|
|
67
|
+
build = { tag, collections: new Map(), relations: [] };
|
|
68
|
+
schemeBuilds.set(tag, build);
|
|
69
|
+
}
|
|
70
|
+
return build;
|
|
71
|
+
}
|
|
72
|
+
function reportUnsupportedElement(element, diagnostics) {
|
|
73
|
+
diagnostics.error({
|
|
74
|
+
code: 'unsupported-element-type',
|
|
75
|
+
message: `Archi element type "${element.type}" has no confirmed XMA mapping and would be silently lost.`,
|
|
76
|
+
entityId: element.id,
|
|
77
|
+
entityType: 'ArchiElement',
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function reportAncillaryLossWarnings(el, diagnostics) {
|
|
81
|
+
if (el.properties.length > 0) {
|
|
82
|
+
diagnostics.warning({
|
|
83
|
+
code: 'unsupported-properties',
|
|
84
|
+
message: `Element "${el.name ?? el.id}" has ${el.properties.length} propert${el.properties.length === 1 ? 'y' : 'ies'} not represented in XMA v0.1.`,
|
|
85
|
+
entityId: el.id,
|
|
86
|
+
entityType: 'ArchiElement',
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
if (el.profiles.length > 0) {
|
|
90
|
+
diagnostics.warning({
|
|
91
|
+
code: 'unsupported-profile',
|
|
92
|
+
message: `Element "${el.name ?? el.id}" references ${el.profiles.length} profile(s)/specialization(s) not represented in XMA v0.1.`,
|
|
93
|
+
entityId: el.id,
|
|
94
|
+
entityType: 'ArchiElement',
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Builds the per-scheme element collections (`<ArchiMate:BusinessActors>`
|
|
100
|
+
* etc.) for every `ArchiElement` in the model, regardless of whether it
|
|
101
|
+
* appears in the (single supported) view — semantic elements are model-wide,
|
|
102
|
+
* not view-scoped.
|
|
103
|
+
*/
|
|
104
|
+
function buildSemanticElements(model, ids, diagnostics, language) {
|
|
105
|
+
const schemeBuilds = new Map();
|
|
106
|
+
const mappedElements = new Map();
|
|
107
|
+
const rootConnectorsXml = [];
|
|
108
|
+
for (const el of model.elements) {
|
|
109
|
+
if (el.type === 'Junction') {
|
|
110
|
+
const mapping = junctionMappingEntry(el);
|
|
111
|
+
mappedElements.set(el.id, mapping);
|
|
112
|
+
reportAncillaryLossWarnings(el, diagnostics);
|
|
113
|
+
reportUnrecognizedJunctionType(el, diagnostics);
|
|
114
|
+
const xmaId = ids.idFor(el.id);
|
|
115
|
+
rootConnectorsXml.push((0, xml_writer_js_1.element)(`ArchiMate:${mapping.xmaType}`, [['id', String(xmaId)]], [
|
|
116
|
+
(0, profile_values_js_1.buildProfileValues)(language, el.name ?? '', el.documentation),
|
|
117
|
+
]));
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
const mapping = (0, element_mapping_js_1.lookupElementMapping)(el.type);
|
|
121
|
+
if (!mapping) {
|
|
122
|
+
reportUnsupportedElement(el, diagnostics);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
mappedElements.set(el.id, mapping);
|
|
126
|
+
reportAncillaryLossWarnings(el, diagnostics);
|
|
127
|
+
const scheme = getOrCreateScheme(schemeBuilds, mapping.scheme);
|
|
128
|
+
let collection = scheme.collections.get(mapping.collectionTag);
|
|
129
|
+
if (!collection) {
|
|
130
|
+
collection = { name: mapping.collectionName, children: [] };
|
|
131
|
+
scheme.collections.set(mapping.collectionTag, collection);
|
|
132
|
+
}
|
|
133
|
+
const xmaId = ids.idFor(el.id);
|
|
134
|
+
const concept = (0, xml_writer_js_1.element)(`ArchiMate:${mapping.xmaType}`, [['id', String(xmaId)]], [(0, profile_values_js_1.buildProfileValues)(language, el.name ?? '', el.documentation)]);
|
|
135
|
+
collection.children.push(concept);
|
|
136
|
+
}
|
|
137
|
+
return { schemeBuilds, mappedElements, rootConnectorsXml };
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Renders a `SchemeBuild`'s children (an optional `nm` profile, then each
|
|
141
|
+
* populated collection in confirmed order, then `Relations` last) — the
|
|
142
|
+
* caller wraps these in the actual `<ArchiMate:{schemeTag} id="...">`
|
|
143
|
+
* element, since only the caller (`document-writer`) knows the scheme's
|
|
144
|
+
* allocated id.
|
|
145
|
+
*
|
|
146
|
+
* Every collection element (including `Relations`) carries its own `id` —
|
|
147
|
+
* confirmed against the real fixture (e.g. `ApplicationComponents id="222"`,
|
|
148
|
+
* `Relations id="72"`), unlike a bare element concept which doesn't need one
|
|
149
|
+
* beyond its own. Previously omitted here; Enterprise Studio rejected the
|
|
150
|
+
* resulting document outright ("could not generate the object: unknown
|
|
151
|
+
* type") rather than merely losing content.
|
|
152
|
+
*/
|
|
153
|
+
function renderSchemeChildren(build, nameProfile, ids) {
|
|
154
|
+
const children = [];
|
|
155
|
+
if (nameProfile) {
|
|
156
|
+
children.push(nameProfile);
|
|
157
|
+
}
|
|
158
|
+
for (const { tag, name } of (0, element_mapping_js_1.getSchemeCollectionOrder)(build.tag)) {
|
|
159
|
+
const collection = build.collections.get(tag);
|
|
160
|
+
if (!collection || collection.children.length === 0) {
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
children.push((0, xml_writer_js_1.element)(`ArchiMate:${tag}`, [['name', name], ['id', String(ids.fresh())]], collection.children));
|
|
164
|
+
}
|
|
165
|
+
if (build.relations.length > 0) {
|
|
166
|
+
children.push((0, xml_writer_js_1.element)('ArchiMate:Relations', [['name', 'relations'], ['id', String(ids.fresh())]], build.relations));
|
|
167
|
+
}
|
|
168
|
+
return children;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=semantic-writer.js.map
|
|
@@ -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 @@
|
|
|
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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeXma = serializeXma;
|
|
4
|
+
exports.inspectXmaSupport = inspectXmaSupport;
|
|
5
|
+
const xml_writer_js_1 = require("../infrastructure/xml-writer.js");
|
|
6
|
+
const id_allocator_js_1 = require("../infrastructure/id-allocator.js");
|
|
7
|
+
const diagnostics_js_1 = require("../diagnostics/diagnostics.js");
|
|
8
|
+
const errors_js_1 = require("../diagnostics/errors.js");
|
|
9
|
+
const semantic_writer_js_1 = require("./semantic-writer.js");
|
|
10
|
+
const relationship_writer_js_1 = require("./relationship-writer.js");
|
|
11
|
+
const view_writer_js_1 = require("./view-writer.js");
|
|
12
|
+
const graphical_writer_js_1 = require("./graphical-writer.js");
|
|
13
|
+
const document_writer_js_1 = require("./document-writer.js");
|
|
14
|
+
const DEFAULT_PACKAGE_NAME = 'CDA XMA Package';
|
|
15
|
+
const REQUIRED_MODEL_ARRAY_FIELDS = [
|
|
16
|
+
'elements',
|
|
17
|
+
'relationships',
|
|
18
|
+
'views',
|
|
19
|
+
'diagramObjects',
|
|
20
|
+
'diagramConnections',
|
|
21
|
+
'notes',
|
|
22
|
+
'folders',
|
|
23
|
+
];
|
|
24
|
+
/**
|
|
25
|
+
* `ArchiModel`'s shape is only enforced by TypeScript at compile time. A
|
|
26
|
+
* caller passing `null`/`undefined`, or an object missing a collection,
|
|
27
|
+
* would otherwise hit the first `.map()`/`.filter()` deep inside a writer
|
|
28
|
+
* and get a raw `Cannot read properties of undefined` — not an actionable
|
|
29
|
+
* error for a public library API. This is a caller-contract violation, not
|
|
30
|
+
* a "construct XMA can't represent" diagnostic, so it throws directly
|
|
31
|
+
* instead of going through `DiagnosticCollector`/`XmaSerializationError`.
|
|
32
|
+
*/
|
|
33
|
+
function assertValidModelShape(model) {
|
|
34
|
+
if (typeof model !== 'object' || model === null) {
|
|
35
|
+
throw new TypeError(`serializeXma: expected an ArchiModel object, got ${model === null ? 'null' : typeof model}.`);
|
|
36
|
+
}
|
|
37
|
+
if (typeof model.metadata !== 'object' || model.metadata === null) {
|
|
38
|
+
throw new TypeError('serializeXma: model.metadata is missing or invalid — expected an ArchiModel.');
|
|
39
|
+
}
|
|
40
|
+
for (const field of REQUIRED_MODEL_ARRAY_FIELDS) {
|
|
41
|
+
if (!Array.isArray(model[field])) {
|
|
42
|
+
throw new TypeError(`serializeXma: model.${field} is missing or not an array — expected an ArchiModel.`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function planXmaDocument(model, options) {
|
|
47
|
+
assertValidModelShape(model);
|
|
48
|
+
const diagnostics = new diagnostics_js_1.DiagnosticCollector();
|
|
49
|
+
const language = options?.language ?? 'en';
|
|
50
|
+
const modelName = options?.modelName ?? model.metadata.name;
|
|
51
|
+
const packageName = options?.packageName ?? DEFAULT_PACKAGE_NAME;
|
|
52
|
+
const allocator = new id_allocator_js_1.XmaIdAllocator();
|
|
53
|
+
const ids = new id_allocator_js_1.XmaIdRegistry(allocator);
|
|
54
|
+
const { schemeBuilds, mappedElements, rootConnectorsXml } = (0, semantic_writer_js_1.buildSemanticElements)(model, ids, diagnostics, language);
|
|
55
|
+
const elementIndex = new Map(model.elements.map((e) => [e.id, e]));
|
|
56
|
+
const relationshipIndex = new Map(model.relationships.map((r) => [r.id, r]));
|
|
57
|
+
const { mappedRelationships, rootRelationsXml } = (0, relationship_writer_js_1.buildSemanticRelationships)(model, ids, elementIndex, relationshipIndex, mappedElements, schemeBuilds, diagnostics);
|
|
58
|
+
const builtViews = model.views.map((view) => {
|
|
59
|
+
// A fresh RefObjects registry per view — confirmed against the sabsa
|
|
60
|
+
// fixture (38 views): each `AllView`'s `RefObjects` is self-contained,
|
|
61
|
+
// so an element referenced from multiple views gets its own ref id in
|
|
62
|
+
// each one (840 total Ref elements for 735 distinct semantic targets in
|
|
63
|
+
// sabsa.xma, never a ref id reused across two views). A shared registry
|
|
64
|
+
// would leave every view after the first missing Ref entries for
|
|
65
|
+
// elements first seen in an earlier view.
|
|
66
|
+
const refIds = new id_allocator_js_1.XmaIdRegistry(allocator);
|
|
67
|
+
const viewResult = (0, view_writer_js_1.buildView)(model, view, ids, refIds, mappedElements, mappedRelationships, diagnostics, language);
|
|
68
|
+
const { diagramXml } = (0, graphical_writer_js_1.buildGraphicalModule)(model, view, ids, refIds, allocator, mappedElements, mappedRelationships, viewResult, diagnostics);
|
|
69
|
+
return { view, viewResult, graphicalDiagramXml: diagramXml };
|
|
70
|
+
});
|
|
71
|
+
if (diagnostics.hasErrors) {
|
|
72
|
+
return { diagnostics: diagnostics.all, documentXml: null };
|
|
73
|
+
}
|
|
74
|
+
const documentXml = (0, document_writer_js_1.buildXmaDocument)({
|
|
75
|
+
modelName,
|
|
76
|
+
packageName,
|
|
77
|
+
language,
|
|
78
|
+
ids,
|
|
79
|
+
schemeBuilds,
|
|
80
|
+
folders: model.folders,
|
|
81
|
+
views: builtViews,
|
|
82
|
+
rootConnectorsXml,
|
|
83
|
+
rootRelationsXml,
|
|
84
|
+
});
|
|
85
|
+
return { diagnostics: diagnostics.all, documentXml };
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Serializes an `ArchiModel` (from `@cda/archi-semantic-core`) into an XMA
|
|
89
|
+
* document string.
|
|
90
|
+
*
|
|
91
|
+
* Strict by default: if any construct in the model would be silently lost
|
|
92
|
+
* (an unsupported element/relationship type, a second view, incomplete
|
|
93
|
+
* geometry, ...) this throws `XmaSerializationError` carrying the full
|
|
94
|
+
* structured diagnostic list, rather than producing an approximate or
|
|
95
|
+
* partial XMA document. Use `inspectXmaSupport` to preview what would be
|
|
96
|
+
* unsupported without throwing.
|
|
97
|
+
*/
|
|
98
|
+
function serializeXma(model, options) {
|
|
99
|
+
const { diagnostics, documentXml } = planXmaDocument(model, options);
|
|
100
|
+
if (documentXml === null) {
|
|
101
|
+
throw new errors_js_1.XmaSerializationError(diagnostics);
|
|
102
|
+
}
|
|
103
|
+
return (0, xml_writer_js_1.renderXmlDocument)(documentXml);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Non-mutating diagnostic pass: reports every construct in `model` that
|
|
107
|
+
* `serializeXma` would refuse to convert, without throwing and without
|
|
108
|
+
* requiring the model to be fully convertible.
|
|
109
|
+
*/
|
|
110
|
+
function inspectXmaSupport(model, options) {
|
|
111
|
+
return planXmaDocument(model, options).diagnostics;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=serialize-xma.js.map
|
|
@@ -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 @@
|
|
|
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,CAiJjB"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildView = buildView;
|
|
4
|
+
const xml_writer_js_1 = require("../infrastructure/xml-writer.js");
|
|
5
|
+
const profile_values_js_1 = require("./profile-values.js");
|
|
6
|
+
const geometry_js_1 = require("../geometry/geometry.js");
|
|
7
|
+
/**
|
|
8
|
+
* Builds one `AllView`'s `ViewGraphics` (Notes/Groups) and `RefObjects`
|
|
9
|
+
* (the three-layer view-reference indirection — see module docs on
|
|
10
|
+
* `graphical-writer.ts`). Also validates every diagram object/note/connection
|
|
11
|
+
* in the view, since geometry and view membership are model-wide
|
|
12
|
+
* preservation guarantees, not just node drawing concerns. Nested diagram
|
|
13
|
+
* objects (a `parentId` or non-empty `childrenIds`) are valid here — see
|
|
14
|
+
* `graphical-writer.ts`'s recursive node building for how nesting is drawn.
|
|
15
|
+
*/
|
|
16
|
+
function buildView(model, view, ids, refIds, mappedElements, mappedRelationships, diagnostics, language) {
|
|
17
|
+
const viewGraphicsXml = [];
|
|
18
|
+
const refObjectsXml = [];
|
|
19
|
+
const validElementNodeObjectIds = new Set();
|
|
20
|
+
const validGroupObjectIds = new Set();
|
|
21
|
+
const validNoteIds = new Set();
|
|
22
|
+
for (const obj of model.diagramObjects) {
|
|
23
|
+
if (obj.viewId !== view.id) {
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (obj.referencedModelId !== null) {
|
|
27
|
+
// Confirmed against the agile-manifesto fixture: Archi's own XMA export
|
|
28
|
+
// contains no trace whatsoever of a DiagramModelReference node or its
|
|
29
|
+
// connections (grepped for both ids and the referenced view ids — zero
|
|
30
|
+
// matches). Dropping it here, like the rest of this loop's unsupported
|
|
31
|
+
// cases, exactly reproduces that behavior, so it's a warning, not a
|
|
32
|
+
// blocking error.
|
|
33
|
+
diagnostics.warning({
|
|
34
|
+
code: 'unsupported-diagram-model-reference',
|
|
35
|
+
message: `Diagram object "${obj.id}" is a view-reference (DiagramModelReference) and was omitted, matching Archi's own XMA export.`,
|
|
36
|
+
entityId: obj.id,
|
|
37
|
+
entityType: 'ArchiDiagramObject',
|
|
38
|
+
});
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (obj.archimateElementId === null) {
|
|
42
|
+
if (obj.xsiType !== 'archimate:Group') {
|
|
43
|
+
diagnostics.error({
|
|
44
|
+
code: 'unsupported-diagram-object',
|
|
45
|
+
message: `Diagram object "${obj.id}" (${obj.xsiType}) has no backing semantic element and is not a recognized Group — not supported in XMA v0.1.`,
|
|
46
|
+
entityId: obj.id,
|
|
47
|
+
entityType: 'ArchiDiagramObject',
|
|
48
|
+
});
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (!(0, geometry_js_1.hasCompleteBounds)(obj.bounds)) {
|
|
52
|
+
diagnostics.error({
|
|
53
|
+
code: 'missing-bounds',
|
|
54
|
+
message: `Group "${obj.id}" has incomplete geometry (x/y/width/height) and cannot be positioned in XMA.`,
|
|
55
|
+
entityId: obj.id,
|
|
56
|
+
entityType: 'ArchiDiagramObject',
|
|
57
|
+
});
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const groupXmaId = ids.idFor(obj.id);
|
|
61
|
+
viewGraphicsXml.push((0, xml_writer_js_1.element)('ArchiMate:ViewGraphic', [['id', String(groupXmaId)]], [
|
|
62
|
+
(0, profile_values_js_1.buildProfileValues)(language, obj.name ?? '', obj.documentation),
|
|
63
|
+
]));
|
|
64
|
+
validGroupObjectIds.add(obj.id);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
// Element-backed diagram object.
|
|
68
|
+
if (!(0, geometry_js_1.hasCompleteBounds)(obj.bounds)) {
|
|
69
|
+
diagnostics.error({
|
|
70
|
+
code: 'missing-bounds',
|
|
71
|
+
message: `Diagram object "${obj.id}" has incomplete geometry (x/y/width/height) and cannot be positioned in XMA.`,
|
|
72
|
+
entityId: obj.id,
|
|
73
|
+
entityType: 'ArchiDiagramObject',
|
|
74
|
+
});
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const mapping = mappedElements.get(obj.archimateElementId);
|
|
78
|
+
if (!mapping) {
|
|
79
|
+
// The backing element already produced an unsupported-element-type diagnostic.
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (!refIds.has(obj.archimateElementId)) {
|
|
83
|
+
const refId = refIds.idFor(obj.archimateElementId);
|
|
84
|
+
refObjectsXml.push((0, xml_writer_js_1.element)(`ArchiMate:${mapping.xmaType}Ref`, [
|
|
85
|
+
['id', String(refId)],
|
|
86
|
+
['to', String(ids.idFor(obj.archimateElementId))],
|
|
87
|
+
]));
|
|
88
|
+
}
|
|
89
|
+
validElementNodeObjectIds.add(obj.id);
|
|
90
|
+
}
|
|
91
|
+
for (const note of model.notes) {
|
|
92
|
+
if (note.viewId !== view.id) {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
if (note.parentId !== null) {
|
|
96
|
+
// Unlike nested ArchiDiagramObjects (supported — see graphical-writer.ts's
|
|
97
|
+
// buildNodeTree), a nested Note has no fixture evidence: only one instance
|
|
98
|
+
// exists across all four fixtures, not enough to confirm its representation.
|
|
99
|
+
diagnostics.error({
|
|
100
|
+
code: 'unsupported-nested-diagram-object',
|
|
101
|
+
message: `Note "${note.id}" is nested inside another diagram object — not supported in XMA v0.1.`,
|
|
102
|
+
entityId: note.id,
|
|
103
|
+
entityType: 'ArchiNote',
|
|
104
|
+
});
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
if (!(0, geometry_js_1.hasCompleteBounds)(note.bounds)) {
|
|
108
|
+
diagnostics.error({
|
|
109
|
+
code: 'missing-bounds',
|
|
110
|
+
message: `Note "${note.id}" has incomplete geometry (x/y/width/height) and cannot be positioned in XMA.`,
|
|
111
|
+
entityId: note.id,
|
|
112
|
+
entityType: 'ArchiNote',
|
|
113
|
+
});
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
const noteXmaId = ids.idFor(note.id);
|
|
117
|
+
viewGraphicsXml.push((0, xml_writer_js_1.element)('ArchiMate:ViewGraphic', [['id', String(noteXmaId)]], [(0, profile_values_js_1.buildProfileValues)(language, note.content ?? '')]));
|
|
118
|
+
validNoteIds.add(note.id);
|
|
119
|
+
}
|
|
120
|
+
for (const connection of model.diagramConnections) {
|
|
121
|
+
if (connection.viewId !== view.id) {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
if (connection.archimateRelationshipId === null) {
|
|
125
|
+
diagnostics.error({
|
|
126
|
+
code: 'unsupported-connection-no-relationship',
|
|
127
|
+
message: `Connection "${connection.id}" has no underlying semantic relationship (a purely visual connector) — not supported in XMA v0.1.`,
|
|
128
|
+
entityId: connection.id,
|
|
129
|
+
entityType: 'ArchiDiagramConnection',
|
|
130
|
+
});
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
const mapping = mappedRelationships.get(connection.archimateRelationshipId);
|
|
134
|
+
if (!mapping) {
|
|
135
|
+
// The underlying relationship already produced its own diagnostic.
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
if (!refIds.has(connection.archimateRelationshipId)) {
|
|
139
|
+
const refId = refIds.idFor(connection.archimateRelationshipId);
|
|
140
|
+
refObjectsXml.push((0, xml_writer_js_1.element)(`ArchiMate:${mapping.xmaType}Ref`, [
|
|
141
|
+
['id', String(refId)],
|
|
142
|
+
['to', String(ids.idFor(connection.archimateRelationshipId))],
|
|
143
|
+
]));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return { viewGraphicsXml, refObjectsXml, validElementNodeObjectIds, validGroupObjectIds, validNoteIds };
|
|
147
|
+
}
|
|
148
|
+
//# 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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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type XmaDiagnosticSeverity = 'error' | 'warning';
|
|
2
|
+
export interface XmaDiagnostic {
|
|
3
|
+
/** Stable machine-readable code, e.g. "unsupported-element-type". */
|
|
4
|
+
code: string;
|
|
5
|
+
severity: XmaDiagnosticSeverity;
|
|
6
|
+
message: string;
|
|
7
|
+
/** Id of the offending source entity (Archi element/relationship/view/diagram id), when applicable. */
|
|
8
|
+
entityId?: string;
|
|
9
|
+
/** Kind of the offending source entity, e.g. "ArchiElement", "ArchiRelationship". */
|
|
10
|
+
entityType?: string;
|
|
11
|
+
}
|
|
12
|
+
/** Accumulates diagnostics during a single serialization pass. */
|
|
13
|
+
export declare class DiagnosticCollector {
|
|
14
|
+
private readonly items;
|
|
15
|
+
error(diagnostic: Omit<XmaDiagnostic, 'severity'>): void;
|
|
16
|
+
warning(diagnostic: Omit<XmaDiagnostic, 'severity'>): void;
|
|
17
|
+
get all(): XmaDiagnostic[];
|
|
18
|
+
get hasErrors(): boolean;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { XmaDiagnostic } from './diagnostics.js';
|
|
2
|
+
/**
|
|
3
|
+
* Thrown by `serializeXma` whenever serializing would silently lose
|
|
4
|
+
* semantics or presentation intent. Carries the full structured diagnostic
|
|
5
|
+
* list (not just the first failure) so callers can report everything wrong
|
|
6
|
+
* in one pass — see `inspectXmaSupport` to obtain the same list without
|
|
7
|
+
* throwing.
|
|
8
|
+
*/
|
|
9
|
+
export declare class XmaSerializationError extends Error {
|
|
10
|
+
readonly diagnostics: XmaDiagnostic[];
|
|
11
|
+
constructor(diagnostics: XmaDiagnostic[]);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|