@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.
Files changed (213) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +31 -6
  3. package/dist/cjs/diagnostics/diagnostics.d.ts.map +1 -0
  4. package/dist/cjs/diagnostics/diagnostics.js +23 -0
  5. package/dist/cjs/diagnostics/diagnostics.js.map +1 -0
  6. package/dist/cjs/diagnostics/errors.d.ts.map +1 -0
  7. package/dist/cjs/diagnostics/errors.js +24 -0
  8. package/dist/cjs/diagnostics/errors.js.map +1 -0
  9. package/dist/cjs/geometry/bendpoints.d.ts.map +1 -0
  10. package/dist/cjs/geometry/bendpoints.js +51 -0
  11. package/dist/cjs/geometry/bendpoints.js.map +1 -0
  12. package/dist/cjs/geometry/geometry.d.ts +75 -0
  13. package/dist/cjs/geometry/geometry.d.ts.map +1 -0
  14. package/dist/cjs/geometry/geometry.js +77 -0
  15. package/dist/cjs/geometry/geometry.js.map +1 -0
  16. package/dist/cjs/index.d.ts.map +1 -0
  17. package/dist/cjs/index.js +9 -0
  18. package/dist/cjs/index.js.map +1 -0
  19. package/dist/cjs/infrastructure/assert.d.ts +10 -0
  20. package/dist/cjs/infrastructure/assert.d.ts.map +1 -0
  21. package/dist/cjs/infrastructure/assert.js +18 -0
  22. package/dist/cjs/infrastructure/assert.js.map +1 -0
  23. package/dist/cjs/infrastructure/id-allocator.d.ts.map +1 -0
  24. package/dist/cjs/infrastructure/id-allocator.js +59 -0
  25. package/dist/cjs/infrastructure/id-allocator.js.map +1 -0
  26. package/dist/cjs/infrastructure/xml-writer.d.ts.map +1 -0
  27. package/dist/cjs/infrastructure/xml-writer.js +94 -0
  28. package/dist/cjs/infrastructure/xml-writer.js.map +1 -0
  29. package/dist/cjs/mapping/element-mapping.d.ts.map +1 -0
  30. package/dist/cjs/mapping/element-mapping.js +117 -0
  31. package/dist/cjs/mapping/element-mapping.js.map +1 -0
  32. package/dist/cjs/mapping/generic-relationship-mapping.d.ts.map +1 -0
  33. package/dist/cjs/mapping/generic-relationship-mapping.js +71 -0
  34. package/dist/cjs/mapping/generic-relationship-mapping.js.map +1 -0
  35. package/dist/cjs/mapping/relationship-mapping.d.ts.map +1 -0
  36. package/dist/cjs/mapping/relationship-mapping.js +697 -0
  37. package/dist/cjs/mapping/relationship-mapping.js.map +1 -0
  38. package/dist/cjs/mapping/scheme-mapping.d.ts.map +1 -0
  39. package/dist/cjs/mapping/scheme-mapping.js +42 -0
  40. package/dist/cjs/mapping/scheme-mapping.js.map +1 -0
  41. package/dist/cjs/mapping/visual-mapping.d.ts.map +1 -0
  42. package/dist/cjs/mapping/visual-mapping.js +43 -0
  43. package/dist/cjs/mapping/visual-mapping.js.map +1 -0
  44. package/dist/cjs/package.json +3 -0
  45. package/dist/cjs/serializer/document-writer.d.ts.map +1 -0
  46. package/dist/cjs/serializer/document-writer.js +138 -0
  47. package/dist/cjs/serializer/document-writer.js.map +1 -0
  48. package/dist/cjs/serializer/graphical-writer.d.ts.map +1 -0
  49. package/dist/cjs/serializer/graphical-writer.js +464 -0
  50. package/dist/cjs/serializer/graphical-writer.js.map +1 -0
  51. package/dist/cjs/serializer/profile-values.d.ts.map +1 -0
  52. package/dist/cjs/serializer/profile-values.js +28 -0
  53. package/dist/cjs/serializer/profile-values.js.map +1 -0
  54. package/dist/cjs/serializer/relationship-writer.d.ts.map +1 -0
  55. package/dist/cjs/serializer/relationship-writer.js +109 -0
  56. package/dist/cjs/serializer/relationship-writer.js.map +1 -0
  57. package/dist/cjs/serializer/rtf.d.ts.map +1 -0
  58. package/dist/cjs/serializer/rtf.js +67 -0
  59. package/dist/cjs/serializer/rtf.js.map +1 -0
  60. package/dist/cjs/serializer/semantic-writer.d.ts.map +1 -0
  61. package/dist/cjs/serializer/semantic-writer.js +170 -0
  62. package/dist/cjs/serializer/semantic-writer.js.map +1 -0
  63. package/dist/cjs/serializer/serialize-xma.d.ts.map +1 -0
  64. package/dist/cjs/serializer/serialize-xma.js +113 -0
  65. package/dist/cjs/serializer/serialize-xma.js.map +1 -0
  66. package/dist/cjs/serializer/view-writer.d.ts.map +1 -0
  67. package/dist/cjs/serializer/view-writer.js +148 -0
  68. package/dist/cjs/serializer/view-writer.js.map +1 -0
  69. package/dist/esm/diagnostics/diagnostics.d.ts +20 -0
  70. package/dist/esm/diagnostics/diagnostics.d.ts.map +1 -0
  71. package/dist/esm/diagnostics/diagnostics.js.map +1 -0
  72. package/dist/esm/diagnostics/errors.d.ts +13 -0
  73. package/dist/esm/diagnostics/errors.d.ts.map +1 -0
  74. package/dist/esm/diagnostics/errors.js.map +1 -0
  75. package/dist/esm/geometry/bendpoints.d.ts +33 -0
  76. package/dist/esm/geometry/bendpoints.d.ts.map +1 -0
  77. package/dist/{geometry → esm/geometry}/bendpoints.js +6 -2
  78. package/dist/esm/geometry/bendpoints.js.map +1 -0
  79. package/dist/esm/geometry/geometry.d.ts +75 -0
  80. package/dist/esm/geometry/geometry.d.ts.map +1 -0
  81. package/dist/{geometry → esm/geometry}/geometry.js +25 -6
  82. package/dist/esm/geometry/geometry.js.map +1 -0
  83. package/dist/esm/index.d.ts +5 -0
  84. package/dist/esm/index.d.ts.map +1 -0
  85. package/dist/esm/index.js.map +1 -0
  86. package/dist/esm/infrastructure/assert.d.ts +10 -0
  87. package/dist/esm/infrastructure/assert.d.ts.map +1 -0
  88. package/dist/esm/infrastructure/assert.js +15 -0
  89. package/dist/esm/infrastructure/assert.js.map +1 -0
  90. package/dist/esm/infrastructure/id-allocator.d.ts +34 -0
  91. package/dist/esm/infrastructure/id-allocator.d.ts.map +1 -0
  92. package/dist/esm/infrastructure/id-allocator.js.map +1 -0
  93. package/dist/esm/infrastructure/xml-writer.d.ts +20 -0
  94. package/dist/esm/infrastructure/xml-writer.d.ts.map +1 -0
  95. package/dist/{infrastructure → esm/infrastructure}/xml-writer.js +37 -2
  96. package/dist/esm/infrastructure/xml-writer.js.map +1 -0
  97. package/dist/esm/mapping/element-mapping.d.ts +31 -0
  98. package/dist/esm/mapping/element-mapping.d.ts.map +1 -0
  99. package/dist/esm/mapping/element-mapping.js.map +1 -0
  100. package/dist/esm/mapping/generic-relationship-mapping.d.ts +18 -0
  101. package/dist/esm/mapping/generic-relationship-mapping.d.ts.map +1 -0
  102. package/dist/esm/mapping/generic-relationship-mapping.js.map +1 -0
  103. package/dist/esm/mapping/relationship-mapping.d.ts +47 -0
  104. package/dist/esm/mapping/relationship-mapping.d.ts.map +1 -0
  105. package/dist/esm/mapping/relationship-mapping.js.map +1 -0
  106. package/dist/esm/mapping/scheme-mapping.d.ts +38 -0
  107. package/dist/esm/mapping/scheme-mapping.d.ts.map +1 -0
  108. package/dist/esm/mapping/scheme-mapping.js.map +1 -0
  109. package/dist/esm/mapping/visual-mapping.d.ts +24 -0
  110. package/dist/esm/mapping/visual-mapping.d.ts.map +1 -0
  111. package/dist/esm/mapping/visual-mapping.js.map +1 -0
  112. package/dist/esm/serializer/document-writer.d.ts +40 -0
  113. package/dist/esm/serializer/document-writer.d.ts.map +1 -0
  114. package/dist/esm/serializer/document-writer.js.map +1 -0
  115. package/dist/esm/serializer/graphical-writer.d.ts +27 -0
  116. package/dist/esm/serializer/graphical-writer.d.ts.map +1 -0
  117. package/dist/{serializer → esm/serializer}/graphical-writer.js +156 -40
  118. package/dist/esm/serializer/graphical-writer.js.map +1 -0
  119. package/dist/esm/serializer/profile-values.d.ts +8 -0
  120. package/dist/esm/serializer/profile-values.d.ts.map +1 -0
  121. package/dist/esm/serializer/profile-values.js.map +1 -0
  122. package/dist/esm/serializer/relationship-writer.d.ts +41 -0
  123. package/dist/esm/serializer/relationship-writer.d.ts.map +1 -0
  124. package/dist/{serializer → esm/serializer}/relationship-writer.js +4 -1
  125. package/dist/esm/serializer/relationship-writer.js.map +1 -0
  126. package/dist/esm/serializer/rtf.d.ts +9 -0
  127. package/dist/esm/serializer/rtf.d.ts.map +1 -0
  128. package/dist/{serializer → esm/serializer}/rtf.js +14 -0
  129. package/dist/esm/serializer/rtf.js.map +1 -0
  130. package/dist/esm/serializer/semantic-writer.d.ts +51 -0
  131. package/dist/esm/serializer/semantic-writer.d.ts.map +1 -0
  132. package/dist/{serializer → esm/serializer}/semantic-writer.js +24 -0
  133. package/dist/esm/serializer/semantic-writer.js.map +1 -0
  134. package/dist/esm/serializer/serialize-xma.d.ts +29 -0
  135. package/dist/esm/serializer/serialize-xma.d.ts.map +1 -0
  136. package/dist/{serializer → esm/serializer}/serialize-xma.js +40 -1
  137. package/dist/esm/serializer/serialize-xma.js.map +1 -0
  138. package/dist/esm/serializer/view-writer.d.ts +27 -0
  139. package/dist/esm/serializer/view-writer.d.ts.map +1 -0
  140. package/dist/esm/serializer/view-writer.js.map +1 -0
  141. package/package.json +19 -8
  142. package/dist/diagnostics/diagnostics.d.ts.map +0 -1
  143. package/dist/diagnostics/diagnostics.js.map +0 -1
  144. package/dist/diagnostics/errors.d.ts.map +0 -1
  145. package/dist/diagnostics/errors.js.map +0 -1
  146. package/dist/geometry/bendpoints.d.ts.map +0 -1
  147. package/dist/geometry/bendpoints.js.map +0 -1
  148. package/dist/geometry/geometry.d.ts +0 -48
  149. package/dist/geometry/geometry.d.ts.map +0 -1
  150. package/dist/geometry/geometry.js.map +0 -1
  151. package/dist/index.d.ts.map +0 -1
  152. package/dist/index.js.map +0 -1
  153. package/dist/infrastructure/id-allocator.d.ts.map +0 -1
  154. package/dist/infrastructure/id-allocator.js.map +0 -1
  155. package/dist/infrastructure/xml-writer.d.ts.map +0 -1
  156. package/dist/infrastructure/xml-writer.js.map +0 -1
  157. package/dist/mapping/element-mapping.d.ts.map +0 -1
  158. package/dist/mapping/element-mapping.js.map +0 -1
  159. package/dist/mapping/generic-relationship-mapping.d.ts.map +0 -1
  160. package/dist/mapping/generic-relationship-mapping.js.map +0 -1
  161. package/dist/mapping/relationship-mapping.d.ts.map +0 -1
  162. package/dist/mapping/relationship-mapping.js.map +0 -1
  163. package/dist/mapping/scheme-mapping.d.ts.map +0 -1
  164. package/dist/mapping/scheme-mapping.js.map +0 -1
  165. package/dist/mapping/visual-mapping.d.ts.map +0 -1
  166. package/dist/mapping/visual-mapping.js.map +0 -1
  167. package/dist/serializer/document-writer.d.ts.map +0 -1
  168. package/dist/serializer/document-writer.js.map +0 -1
  169. package/dist/serializer/graphical-writer.d.ts.map +0 -1
  170. package/dist/serializer/graphical-writer.js.map +0 -1
  171. package/dist/serializer/profile-values.d.ts.map +0 -1
  172. package/dist/serializer/profile-values.js.map +0 -1
  173. package/dist/serializer/relationship-writer.d.ts.map +0 -1
  174. package/dist/serializer/relationship-writer.js.map +0 -1
  175. package/dist/serializer/rtf.d.ts.map +0 -1
  176. package/dist/serializer/rtf.js.map +0 -1
  177. package/dist/serializer/semantic-writer.d.ts.map +0 -1
  178. package/dist/serializer/semantic-writer.js.map +0 -1
  179. package/dist/serializer/serialize-xma.d.ts.map +0 -1
  180. package/dist/serializer/serialize-xma.js.map +0 -1
  181. package/dist/serializer/view-writer.d.ts.map +0 -1
  182. package/dist/serializer/view-writer.js.map +0 -1
  183. /package/dist/{diagnostics → cjs/diagnostics}/diagnostics.d.ts +0 -0
  184. /package/dist/{diagnostics → cjs/diagnostics}/errors.d.ts +0 -0
  185. /package/dist/{geometry → cjs/geometry}/bendpoints.d.ts +0 -0
  186. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  187. /package/dist/{infrastructure → cjs/infrastructure}/id-allocator.d.ts +0 -0
  188. /package/dist/{infrastructure → cjs/infrastructure}/xml-writer.d.ts +0 -0
  189. /package/dist/{mapping → cjs/mapping}/element-mapping.d.ts +0 -0
  190. /package/dist/{mapping → cjs/mapping}/generic-relationship-mapping.d.ts +0 -0
  191. /package/dist/{mapping → cjs/mapping}/relationship-mapping.d.ts +0 -0
  192. /package/dist/{mapping → cjs/mapping}/scheme-mapping.d.ts +0 -0
  193. /package/dist/{mapping → cjs/mapping}/visual-mapping.d.ts +0 -0
  194. /package/dist/{serializer → cjs/serializer}/document-writer.d.ts +0 -0
  195. /package/dist/{serializer → cjs/serializer}/graphical-writer.d.ts +0 -0
  196. /package/dist/{serializer → cjs/serializer}/profile-values.d.ts +0 -0
  197. /package/dist/{serializer → cjs/serializer}/relationship-writer.d.ts +0 -0
  198. /package/dist/{serializer → cjs/serializer}/rtf.d.ts +0 -0
  199. /package/dist/{serializer → cjs/serializer}/semantic-writer.d.ts +0 -0
  200. /package/dist/{serializer → cjs/serializer}/serialize-xma.d.ts +0 -0
  201. /package/dist/{serializer → cjs/serializer}/view-writer.d.ts +0 -0
  202. /package/dist/{diagnostics → esm/diagnostics}/diagnostics.js +0 -0
  203. /package/dist/{diagnostics → esm/diagnostics}/errors.js +0 -0
  204. /package/dist/{index.js → esm/index.js} +0 -0
  205. /package/dist/{infrastructure → esm/infrastructure}/id-allocator.js +0 -0
  206. /package/dist/{mapping → esm/mapping}/element-mapping.js +0 -0
  207. /package/dist/{mapping → esm/mapping}/generic-relationship-mapping.js +0 -0
  208. /package/dist/{mapping → esm/mapping}/relationship-mapping.js +0 -0
  209. /package/dist/{mapping → esm/mapping}/scheme-mapping.js +0 -0
  210. /package/dist/{mapping → esm/mapping}/visual-mapping.js +0 -0
  211. /package/dist/{serializer → esm/serializer}/document-writer.js +0 -0
  212. /package/dist/{serializer → esm/serializer}/profile-values.js +0 -0
  213. /package/dist/{serializer → esm/serializer}/view-writer.js +0 -0
@@ -0,0 +1,24 @@
1
+ import type { PresentationCategory } from './element-mapping.js';
2
+ /** RGB triple, each channel 0-255. */
3
+ export interface Rgb {
4
+ r: number;
5
+ g: number;
6
+ b: number;
7
+ }
8
+ /** Default fill color per presentation category — confirmed against both reference fixtures. */
9
+ export declare const CATEGORY_FILL_COLOR: Readonly<Record<PresentationCategory, Rgb>>;
10
+ /** Default fill for a visual Note (`ArchiMate:ViewGraphic`, no `mm_symbolName`). */
11
+ export declare const NOTE_FILL_COLOR: Rgb;
12
+ /** Default fill for a visual Group (`ArchiMate:ViewGraphic` with `mm_symbolName="group"`). */
13
+ export declare const GROUP_FILL_COLOR: Rgb;
14
+ /** Default node/connection line color — constant across every semantic node in both fixtures. */
15
+ export declare const DEFAULT_LINE_COLOR: Rgb;
16
+ export declare const DEFAULT_FONT_NAME = "Segoe UI";
17
+ /** `mm_fontSize` unit — confirmed 180 for Archi's default 9pt font (20 units/pt); never overridden without evidence. */
18
+ export declare const DEFAULT_FONT_SIZE = 180;
19
+ export declare const DEFAULT_OPACITY = 255;
20
+ /** `2147483647` (int32 max) — the sentinel width/height Bizzdesign uses for an auto-sized canvas rect. */
21
+ export declare const CANVAS_EXTENT = 2147483647;
22
+ /** Parses an Archi `fillColor`/`lineColor` hex string (e.g. "#ff0000") into RGB, or `null` if not a recognized hex triple. */
23
+ export declare function parseArchiHexColor(value: string): Rgb | null;
24
+ //# sourceMappingURL=visual-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual-mapping.d.ts","sourceRoot":"","sources":["../../../src/mapping/visual-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,sCAAsC;AACtC,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAU3E,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,eAAe,EAAE,GAAgC,CAAC;AAE/D,8FAA8F;AAC9F,eAAO,MAAM,gBAAgB,EAAE,GAAgC,CAAC;AAEhE,iGAAiG;AACjG,eAAO,MAAM,kBAAkB,EAAE,GAA6B,CAAC;AAE/D,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,wHAAwH;AACxH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,0GAA0G;AAC1G,eAAO,MAAM,aAAa,aAAa,CAAC;AAIxC,8HAA8H;AAC9H,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAW5D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual-mapping.js","sourceRoot":"","sources":["../../../src/mapping/visual-mapping.ts"],"names":[],"mappings":"AASA,gGAAgG;AAChG,MAAM,CAAC,MAAM,mBAAmB,GAAgD;IAC9E,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACpC,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACpC,WAAW,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACvC,UAAU,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACtC,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACpC,UAAU,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACtC,uBAAuB,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACnD,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;IACpC,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;CACrC,CAAC;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,eAAe,GAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AAE/D,8FAA8F;AAC9F,MAAM,CAAC,MAAM,gBAAgB,GAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AAEhE,iGAAiG;AACjG,MAAM,CAAC,MAAM,kBAAkB,GAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAE/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC5C,wHAAwH;AACxH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC,0GAA0G;AAC1G,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAExC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEhD,8HAA8H;AAC9H,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,OAAO;QACL,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QAChC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QAChC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;KACjC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { ArchiFolder, 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 SchemeBuild } from './semantic-writer.js';
5
+ import type { ViewBuildResult } from './view-writer.js';
6
+ /** One view fully built by `view-writer`/`graphical-writer`, ready to assemble into the document. */
7
+ export interface BuiltView {
8
+ view: ArchiView;
9
+ viewResult: ViewBuildResult;
10
+ /** The `MM_Diagram:MM_Diagram` built by `graphical-writer` for this view. */
11
+ graphicalDiagramXml: XmlElement;
12
+ }
13
+ export interface DocumentAssemblyInput {
14
+ modelName: string;
15
+ packageName: string;
16
+ language: string;
17
+ ids: XmaIdRegistry;
18
+ schemeBuilds: Map<string, SchemeBuild>;
19
+ folders: readonly ArchiFolder[];
20
+ /**
21
+ * Every view in the model, already built. Confirmed against
22
+ * tests/fixtures/sabsa (38 views) and tests/fixtures/agile-manifesto (3
23
+ * views): all views nest as siblings inside one shared `AbstractViews`
24
+ * container, while each gets its own separate `GraphicalModule` (with its
25
+ * own `MM_Diagram` and its own `Any/Objectref` pointing back to its
26
+ * `AllView`) — see tests/fixtures/README.md for the full derivation.
27
+ */
28
+ views: readonly BuiltView[];
29
+ /**
30
+ * `Junction`/`OrJunction` elements — a root-level `<ArchiMate:Connectors>`
31
+ * container, a sibling of `AbstractSchemes` under `ArchiMateComponent`.
32
+ * Confirmed order relative to `rootRelationsXml`: `Relations` then
33
+ * `Connectors` (see tests/fixtures/README.md).
34
+ */
35
+ rootConnectorsXml: readonly XmlElement[];
36
+ /** Relations sourced from an element with no scheme of its own (a Junction/OrJunction) — see relationship-writer.ts. */
37
+ rootRelationsXml: readonly XmlElement[];
38
+ }
39
+ export declare function buildXmaDocument(input: DocumentAssemblyInput): XmlElement;
40
+ //# sourceMappingURL=document-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-writer.d.ts","sourceRoot":"","sources":["../../../src/serializer/document-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAIvE,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAoExD,qGAAqG;AACrG,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,eAAe,CAAC;IAC5B,6EAA6E;IAC7E,mBAAmB,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IAChC;;;;;;;OAOG;IACH,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IAC5B;;;;;OAKG;IACH,iBAAiB,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,wHAAwH;IACxH,gBAAgB,EAAE,SAAS,UAAU,EAAE,CAAC;CACzC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,UAAU,CAsHzE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-writer.js","sourceRoot":"","sources":["../../../src/serializer/document-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { ArchiModel, ArchiView } from '@cda/archi-semantic-core';
2
+ import type { XmlElement } from '../infrastructure/xml-writer.js';
3
+ import { XmaIdRegistry, type XmaIdAllocator } 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
+ import type { ViewBuildResult } from './view-writer.js';
8
+ export interface GraphicalModuleResult {
9
+ diagramXml: XmlElement;
10
+ }
11
+ /**
12
+ * Builds the `GraphicalModule`'s `MM_Diagram` for one view: a Canvas node
13
+ * wrapping one `MM_Node` per drawable diagram object/group/note (nested
14
+ * diagram objects recursively nested inside their parent's `MM_Node`, via
15
+ * `buildNodeTree` — see `tests/fixtures/README.md`, "Nested diagram
16
+ * objects"), and one `MM_DirectedRel` per drawable connection.
17
+ *
18
+ * `mm_fromx`/`mm_fromy`/`mm_tox`/`mm_toy` (manual connector anchor
19
+ * metadata) are deliberately omitted — exactly one fixture exhibited them,
20
+ * which is not enough evidence to derive a general formula or confirm
21
+ * they're mandatory for import (see project docs, "unresolved
22
+ * reverse-engineering limitations"). If a future fixture proves them
23
+ * required, add that behavior here, isolated from the rest of this
24
+ * function.
25
+ */
26
+ export declare function buildGraphicalModule(model: ArchiModel, view: ArchiView, ids: XmaIdRegistry, refIds: XmaIdRegistry, allocator: XmaIdAllocator, mappedElements: ReadonlyMap<string, ElementMappingEntry>, mappedRelationships: ReadonlyMap<string, ResolvedRelationshipMapping>, viewResult: ViewBuildResult, diagnostics: DiagnosticCollector): GraphicalModuleResult;
27
+ //# sourceMappingURL=graphical-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphical-writer.d.ts","sourceRoot":"","sources":["../../../src/serializer/graphical-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EAKV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAI5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAC;CACxB;AAsSD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,cAAc,EACzB,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACxD,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,2BAA2B,CAAC,EACrE,UAAU,EAAE,eAAe,EAC3B,WAAW,EAAE,mBAAmB,GAC/B,qBAAqB,CAoPvB"}
@@ -1,16 +1,48 @@
1
1
  import { element, textElement } from '../infrastructure/xml-writer.js';
2
2
  import { XmaIdRegistry } from '../infrastructure/id-allocator.js';
3
+ import { assertDefined } from '../infrastructure/assert.js';
3
4
  import { CATEGORY_FILL_COLOR, DEFAULT_FONT_NAME, DEFAULT_FONT_SIZE, DEFAULT_LINE_COLOR, DEFAULT_OPACITY, GROUP_FILL_COLOR, NOTE_FILL_COLOR, CANVAS_EXTENT, parseArchiHexColor } from '../mapping/visual-mapping.js';
4
- import { scaleRect, scalePoint, hasCompleteBounds } from '../geometry/geometry.js';
5
+ import { scaleRect, scalePoint, hasCompleteBounds, toRect } from '../geometry/geometry.js';
5
6
  import { resolveBendpoint } from '../geometry/bendpoints.js';
7
+ /**
8
+ * Converts a diagram object's/note's `bounds` into a `Rect`, re-checking
9
+ * completeness explicitly rather than trusting it across the function
10
+ * boundary from view-writer's earlier validation pass via an unchecked
11
+ * cast. `bounds` is only ever incomplete here if that invariant is somehow
12
+ * violated — in which case this reports the same `missing-bounds`
13
+ * diagnostic view-writer would have, instead of emitting `NaN`/`null`
14
+ * arithmetic into the output.
15
+ */
16
+ function resolveDrawableBounds(bounds, diagnostics, entityId, entityType) {
17
+ if (!hasCompleteBounds(bounds)) {
18
+ diagnostics.error({
19
+ code: 'missing-bounds',
20
+ message: `"${entityId}" has incomplete geometry (x/y/width/height) and cannot be positioned in XMA.`,
21
+ entityId,
22
+ entityType,
23
+ });
24
+ return null;
25
+ }
26
+ return toRect(bounds);
27
+ }
6
28
  function colorElement(name, rgb, id) {
7
29
  const attrs = [['id', String(id)]];
8
30
  if (name !== null) {
9
31
  attrs.push(['name', name]);
10
32
  }
11
33
  // Only regular styled colors carry r/g/b; a bare default (e.g. relationship line color) omits them — confirmed shape.
34
+ // A zero-valued channel is itself omitted rather than written as "0" —
35
+ // confirmed against the sabsa fixture's one explicit connection lineColor
36
+ // override (#ff0000): its MM_Color is `mm_r="255"` alone, g/b entirely
37
+ // absent, not `mm_g="0" mm_b="0"`. Same omit-when-zero convention already
38
+ // confirmed for bounds x/y in geometry.ts.
12
39
  if (rgb) {
13
- attrs.push(['mm_r', String(rgb.r)], ['mm_g', String(rgb.g)], ['mm_b', String(rgb.b)]);
40
+ if (rgb.r !== 0)
41
+ attrs.push(['mm_r', String(rgb.r)]);
42
+ if (rgb.g !== 0)
43
+ attrs.push(['mm_g', String(rgb.g)]);
44
+ if (rgb.b !== 0)
45
+ attrs.push(['mm_b', String(rgb.b)]);
14
46
  }
15
47
  return element('MM_Diagram:MM_Color', attrs);
16
48
  }
@@ -26,17 +58,20 @@ function rectElement(id, rect) {
26
58
  }
27
59
  /**
28
60
  * Resolves a node's effective fill/line/font, applying explicit Archi
29
- * styling only where mechanically lossless (a direct hex RGB copy, or a
30
- * verbatim font-name substitution into the same structural slot) per
31
- * v0.1 policy, everything else explicit (font size, bold/italic, line
32
- * width, font color) is diagnosed as an unsupported style override rather
33
- * than guessed.
61
+ * styling only where mechanically lossless (a direct hex RGB copy, a
62
+ * verbatim font-name substitution into the same structural slot, or the
63
+ * confirmed font-size formula) — per v0.1 policy, everything else explicit
64
+ * (bold/italic, line width, font color) is diagnosed as an unsupported
65
+ * style override rather than guessed.
34
66
  */
35
67
  function resolveNodeVisuals(style, defaultFill, diagnostics, entityId, entityType) {
36
68
  let fill = defaultFill;
37
69
  let line = DEFAULT_LINE_COLOR;
38
70
  let fontName = DEFAULT_FONT_NAME;
39
- let fillOpacity = DEFAULT_OPACITY;
71
+ let fontSize = DEFAULT_FONT_SIZE;
72
+ // Never reassigned: alpha has zero fixture evidence, so it's diagnosed
73
+ // (see below) rather than applied — fillOpacity always stays the default.
74
+ const fillOpacity = DEFAULT_OPACITY;
40
75
  if (style) {
41
76
  if (style.fillColor !== null) {
42
77
  const parsed = parseArchiHexColor(style.fillColor);
@@ -70,7 +105,16 @@ function resolveNodeVisuals(style, defaultFill, diagnostics, entityId, entityTyp
70
105
  fontName = style.fontName;
71
106
  }
72
107
  if (style.alpha !== null) {
73
- fillOpacity = style.alpha;
108
+ // Not applied: zero occurrences of an explicit `alpha` in any of the
109
+ // four reference fixtures — no evidence for how (or whether) it maps
110
+ // to `mm_fillOpacity`, so per v0.1 policy this is diagnosed like every
111
+ // other unconfirmed style override, not guessed.
112
+ diagnostics.warning({
113
+ code: 'unsupported-style-alpha',
114
+ message: 'Explicit fill opacity (alpha) has no confirmed XMA representation and was not applied (default used).',
115
+ entityId,
116
+ entityType,
117
+ });
74
118
  }
75
119
  if (style.fontColor !== null) {
76
120
  diagnostics.warning({
@@ -81,12 +125,10 @@ function resolveNodeVisuals(style, defaultFill, diagnostics, entityId, entityTyp
81
125
  });
82
126
  }
83
127
  if (style.fontSize !== null) {
84
- diagnostics.warning({
85
- code: 'unsupported-style-font-size',
86
- message: 'Explicit font size has no confirmed XMA scaling formula and was not applied (default used).',
87
- entityId,
88
- entityType,
89
- });
128
+ // `mm_fontSize = floor(pt) * 20` — confirmed by both data points in
129
+ // the agile-manifesto fixture: an 11.25pt override -> mm_fontSize=220,
130
+ // a 14.25pt override -> mm_fontSize=280.
131
+ fontSize = Math.floor(style.fontSize) * 20;
90
132
  }
91
133
  if (style.fontStyle !== null && (style.fontStyle.bold || style.fontStyle.italic)) {
92
134
  diagnostics.warning({
@@ -105,10 +147,10 @@ function resolveNodeVisuals(style, defaultFill, diagnostics, entityId, entityTyp
105
147
  });
106
148
  }
107
149
  }
108
- return { fill, line, fontName, fillOpacity };
150
+ return { fill, line, fontName, fontSize, fillOpacity };
109
151
  }
110
- function buildLabelDecoration(id, fontName, extraAttrs = []) {
111
- return element('MM_Diagram:MM_Decoration', [['id', String(id)], ['mm_fontSize', String(DEFAULT_FONT_SIZE)], ['mm_graphicType', '2'], ['mm_concept', 'label'], ...extraAttrs], [textElement('mm_font', fontName)]);
152
+ function buildLabelDecoration(id, fontName, fontSize, extraAttrs = []) {
153
+ return element('MM_Diagram:MM_Decoration', [['id', String(id)], ['mm_fontSize', String(fontSize)], ['mm_graphicType', '2'], ['mm_concept', 'label'], ...extraAttrs], [textElement('mm_font', fontName)]);
112
154
  }
113
155
  function buildIconDecoration(id) {
114
156
  return element('MM_Diagram:MM_Decoration', [
@@ -131,7 +173,7 @@ function buildStyledNode(ids, nodeXmaId, concept, semanticObject, hasIcon, visua
131
173
  if (hasIcon) {
132
174
  graphicsChildren.push(buildIconDecoration(ids.fresh()));
133
175
  }
134
- graphicsChildren.push(buildLabelDecoration(ids.fresh(), visuals.fontName, labelExtraAttrs));
176
+ graphicsChildren.push(buildLabelDecoration(ids.fresh(), visuals.fontName, visuals.fontSize, labelExtraAttrs));
135
177
  graphicsChildren.push(...nestedChildrenXml);
136
178
  const attrs = [
137
179
  ['id', String(nodeXmaId)],
@@ -150,6 +192,34 @@ function buildStyledNode(ids, nodeXmaId, concept, semanticObject, hasIcon, visua
150
192
  ]);
151
193
  }
152
194
  const JUNCTION_XMA_TYPES = new Set(['Junction', 'OrJunction']);
195
+ /**
196
+ * A Junction carries no fill/line/font styling at all in either fixture
197
+ * (see `buildJunctionNode`) — so unlike `resolveNodeVisuals`'s per-field
198
+ * diagnostics for a regular node, any style override at all on a Junction
199
+ * diagram object is unsupported. Previously this was discarded with no
200
+ * indication anything was dropped.
201
+ */
202
+ function reportUnsupportedJunctionStyle(obj, diagnostics) {
203
+ const style = obj.style;
204
+ if (!style)
205
+ return;
206
+ const hasOverride = style.fillColor !== null ||
207
+ style.lineColor !== null ||
208
+ style.fontColor !== null ||
209
+ style.fontName !== null ||
210
+ style.fontSize !== null ||
211
+ style.lineWidth !== null ||
212
+ style.alpha !== null ||
213
+ (style.fontStyle !== null && (style.fontStyle.bold || style.fontStyle.italic));
214
+ if (!hasOverride)
215
+ return;
216
+ diagnostics.warning({
217
+ code: 'unsupported-style-junction',
218
+ message: `Diagram object "${obj.id}" is a Junction with an explicit style override — Junctions have no confirmed styling representation in XMA (drawn with a fixed, colorless form) and the override was not applied.`,
219
+ entityId: obj.id,
220
+ entityType: 'ArchiDiagramObject',
221
+ });
222
+ }
153
223
  /**
154
224
  * Builds a `Junction`/`OrJunction` node — confirmed structurally different
155
225
  * from every other element node: `mm_graphicType="3"` (not `"5"`), and no
@@ -167,7 +237,7 @@ function buildJunctionNode(ids, nodeXmaId, concept, semanticObject, bounds) {
167
237
  ['mm_semanticObject', String(semanticObject)],
168
238
  ], [
169
239
  element('MM_Diagram:MM_Graphics', [['name', 'mm_graphics'], ['id', String(ids.fresh())]], [
170
- buildLabelDecoration(ids.fresh(), DEFAULT_FONT_NAME),
240
+ buildLabelDecoration(ids.fresh(), DEFAULT_FONT_NAME, DEFAULT_FONT_SIZE),
171
241
  ]),
172
242
  rectElement(ids.fresh(), bounds),
173
243
  ]);
@@ -201,28 +271,45 @@ export function buildGraphicalModule(model, view, ids, refIds, allocator, mapped
201
271
  * children this way). Returns `null` for an object this pass can't draw
202
272
  * (already diagnosed elsewhere).
203
273
  */
204
- function buildNodeTree(objId) {
274
+ function buildNodeTree(objId, ancestorIds = new Set()) {
205
275
  const obj = diagramObjectById.get(objId);
206
276
  if (!obj)
207
277
  return null;
278
+ if (ancestorIds.has(objId)) {
279
+ diagnostics.error({
280
+ code: 'cyclic-diagram-object-nesting',
281
+ message: `Diagram object "${objId}" is its own descendant (a cyclic parent/child chain) and cannot be drawn.`,
282
+ entityId: objId,
283
+ entityType: 'ArchiDiagramObject',
284
+ });
285
+ return null;
286
+ }
287
+ const nextAncestorIds = new Set(ancestorIds).add(objId);
208
288
  const nestedChildrenXml = obj.childrenIds
209
- .map((childId) => buildNodeTree(childId))
289
+ .map((childId) => buildNodeTree(childId, nextAncestorIds))
210
290
  .filter((xml) => xml !== null);
211
291
  if (viewResult.validElementNodeObjectIds.has(objId) && obj.archimateElementId) {
212
- const mapping = mappedElements.get(obj.archimateElementId);
213
- const refId = refIds.get(obj.archimateElementId);
292
+ const mapping = assertDefined(mappedElements.get(obj.archimateElementId), `no mapping for element "${obj.archimateElementId}" (view-writer should have skipped diagram object "${obj.id}")`);
293
+ const refId = assertDefined(refIds.get(obj.archimateElementId), `no ref id registered for element "${obj.archimateElementId}" (view-writer should have registered it before graphical-writer runs)`);
214
294
  const nodeXmaId = nodeIds.idFor(obj.id);
295
+ const bounds = resolveDrawableBounds(obj.bounds, diagnostics, obj.id, 'ArchiDiagramObject');
296
+ if (!bounds)
297
+ return null;
215
298
  if (JUNCTION_XMA_TYPES.has(mapping.xmaType)) {
216
- return buildJunctionNode(ids, nodeXmaId, mapping.xmaType, refId, obj.bounds);
299
+ reportUnsupportedJunctionStyle(obj, diagnostics);
300
+ return buildJunctionNode(ids, nodeXmaId, mapping.xmaType, refId, bounds);
217
301
  }
218
302
  const visuals = resolveNodeVisuals(obj.style, CATEGORY_FILL_COLOR[mapping.category], diagnostics, obj.id, 'ArchiDiagramObject');
219
- return buildStyledNode(ids, nodeXmaId, mapping.xmaType, refId, mapping.hasIcon, visuals, obj.bounds, null, [], nestedChildrenXml);
303
+ return buildStyledNode(ids, nodeXmaId, mapping.xmaType, refId, mapping.hasIcon, visuals, bounds, null, [], nestedChildrenXml);
220
304
  }
221
305
  if (viewResult.validGroupObjectIds.has(objId)) {
222
- const groupSemanticId = ids.get(obj.id);
306
+ const groupSemanticId = assertDefined(ids.get(obj.id), `no semantic id registered for group "${obj.id}" (view-writer should have registered it before graphical-writer runs)`);
223
307
  const visuals = resolveNodeVisuals(obj.style, GROUP_FILL_COLOR, diagnostics, obj.id, 'ArchiDiagramObject');
224
308
  const nodeXmaId = nodeIds.idFor(obj.id);
225
- return buildStyledNode(ids, nodeXmaId, 'ViewGraphic', groupSemanticId, false, visuals, obj.bounds, 'group', [['mm_frameStrategy', '12']], nestedChildrenXml);
309
+ const bounds = resolveDrawableBounds(obj.bounds, diagnostics, obj.id, 'ArchiDiagramObject');
310
+ if (!bounds)
311
+ return null;
312
+ return buildStyledNode(ids, nodeXmaId, 'ViewGraphic', groupSemanticId, false, visuals, bounds, 'group', [['mm_frameStrategy', '12']], nestedChildrenXml);
226
313
  }
227
314
  return null;
228
315
  }
@@ -237,10 +324,13 @@ export function buildGraphicalModule(model, view, ids, refIds, allocator, mapped
237
324
  const note = noteById.get(noteId);
238
325
  if (!note)
239
326
  continue;
240
- const noteSemanticId = ids.get(note.id);
327
+ const bounds = resolveDrawableBounds(note.bounds, diagnostics, note.id, 'ArchiNote');
328
+ if (!bounds)
329
+ continue;
330
+ const noteSemanticId = assertDefined(ids.get(note.id), `no semantic id registered for note "${note.id}" (view-writer should have registered it before graphical-writer runs)`);
241
331
  const visuals = resolveNodeVisuals(note.style, NOTE_FILL_COLOR, diagnostics, note.id, 'ArchiNote');
242
332
  const nodeXmaId = nodeIds.idFor(note.id);
243
- canvasChildren.push(buildStyledNode(ids, nodeXmaId, 'ViewGraphic', noteSemanticId, false, visuals, note.bounds, null));
333
+ canvasChildren.push(buildStyledNode(ids, nodeXmaId, 'ViewGraphic', noteSemanticId, false, visuals, bounds, null));
244
334
  }
245
335
  const connectionById = new Map(model.diagramConnections.map((c) => [c.id, c]));
246
336
  for (const connId of view.diagramConnectionIds) {
@@ -266,10 +356,26 @@ export function buildGraphicalModule(model, view, ids, refIds, allocator, mapped
266
356
  }
267
357
  const sourceObj = diagramObjectById.get(connection.sourceId);
268
358
  const targetObj = diagramObjectById.get(connection.targetId);
359
+ // A connection between a diagram object and its own visual parent is
360
+ // already conveyed by the nesting itself — confirmed against both
361
+ // fixtures: e.g. agile-manifesto's two BusinessProcessBusinessFunction-
362
+ // Composition relations exist in the semantic Relations collection (so
363
+ // they're still emitted below via relationship-writer/view-writer) but
364
+ // have zero MM_DirectedRel graphics; sabsa's ElementGroupingComposition
365
+ // (Grouping as target, not a nesting pair) is drawn normally while its
366
+ // GroupingElementComposition (Grouping as source, always a nesting pair
367
+ // in both fixtures) never is. Applies regardless of relationship type —
368
+ // nesting evidence isn't type-specific, only "is this endpoint the
369
+ // other's visual parent" is.
370
+ if (sourceObj && targetObj && (sourceObj.parentId === targetObj.id || targetObj.parentId === sourceObj.id)) {
371
+ continue;
372
+ }
269
373
  const points = [];
270
374
  if (connection.bendpoints.length > 0 && sourceObj && targetObj && hasCompleteBounds(sourceObj.bounds) && hasCompleteBounds(targetObj.bounds)) {
375
+ const sourceRect = toRect(sourceObj.bounds);
376
+ const targetRect = toRect(targetObj.bounds);
271
377
  for (const bp of connection.bendpoints) {
272
- const resolution = resolveBendpoint(bp, sourceObj.bounds, targetObj.bounds);
378
+ const resolution = resolveBendpoint(bp, sourceRect, targetRect);
273
379
  if (!resolution) {
274
380
  diagnostics.error({
275
381
  code: 'unresolvable-bendpoint',
@@ -296,23 +402,33 @@ export function buildGraphicalModule(model, view, ids, refIds, allocator, mapped
296
402
  points.push(element('MM_Diagram:MM_Point', [['id', String(ids.fresh())], ['mm_x', String(scaled.x)], ['mm_y', String(scaled.y)]]));
297
403
  }
298
404
  }
299
- const relRefId = refIds.get(relId);
405
+ const relRefId = assertDefined(refIds.get(relId), `no ref id registered for relationship "${relId}" (view-writer should have registered it before graphical-writer runs)`);
300
406
  const directedRelChildren = [];
301
407
  if (points.length > 0) {
302
408
  directedRelChildren.push(element('MM_Diagram:MM_MultiLine', [['name', 'mm_line'], ['id', String(ids.fresh())]], points));
303
409
  }
410
+ // Confirmed against the sabsa fixture's one explicit connection
411
+ // lineColor override (#ff0000): the DirectedRel's MM_Color carries the
412
+ // parsed RGB, in the exact same structural slot as a node's line color.
413
+ let connectionLineColor = null;
304
414
  if (connection.style?.lineColor) {
305
- diagnostics.warning({
306
- code: 'unsupported-style-connection-line-color',
307
- message: 'Explicit connection line color has no confirmed XMA representation and was not applied.',
308
- entityId: connection.id,
309
- entityType: 'ArchiDiagramConnection',
310
- });
415
+ const parsed = parseArchiHexColor(connection.style.lineColor);
416
+ if (parsed) {
417
+ connectionLineColor = parsed;
418
+ }
419
+ else {
420
+ diagnostics.warning({
421
+ code: 'unsupported-style-connection-line-color',
422
+ message: `Connection line color "${connection.style.lineColor}" is not a recognized hex color and was not applied.`,
423
+ entityId: connection.id,
424
+ entityType: 'ArchiDiagramConnection',
425
+ });
426
+ }
311
427
  }
312
428
  directedRelChildren.push(element('MM_Diagram:MM_Graphics', [['name', 'mm_graphics'], ['id', String(ids.fresh())]], [
313
- buildLabelDecoration(ids.fresh(), DEFAULT_FONT_NAME),
429
+ buildLabelDecoration(ids.fresh(), DEFAULT_FONT_NAME, DEFAULT_FONT_SIZE),
314
430
  ]));
315
- directedRelChildren.push(colorElement('mm_lineColor', null, ids.fresh()));
431
+ directedRelChildren.push(colorElement('mm_lineColor', connectionLineColor, ids.fresh()));
316
432
  canvasChildren.push(element('MM_Diagram:MM_DirectedRel', [
317
433
  ['id', String(ids.fresh())],
318
434
  ['mm_from', String(sourceNodeXmaId)],
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphical-writer.js","sourceRoot":"","sources":["../../../src/serializer/graphical-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { XmlElement } from '../infrastructure/xml-writer.js';
2
+ /**
3
+ * Builds an `<MM_ProfileValues>` block: a `nm` (display name) value, and
4
+ * optionally a `doc` (RTF documentation) value — confirmed order and shape
5
+ * from both reference fixtures (`nm` always precedes `doc`).
6
+ */
7
+ export declare function buildProfileValues(language: string, name: string, documentation?: string | null): XmlElement;
8
+ //# sourceMappingURL=profile-values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-values.d.ts","sourceRoot":"","sources":["../../../src/serializer/profile-values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAIlE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,UAAU,CAkB5G"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-values.js","sourceRoot":"","sources":["../../../src/serializer/profile-values.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,IAAY,EAAE,aAA6B;IAC9F,MAAM,QAAQ,GAAiB;QAC7B,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE;YAC5B,CAAC,MAAM,EAAE,IAAI,CAAC;YACd,CAAC,MAAM,EAAE,QAAQ,CAAC;YAClB,CAAC,UAAU,EAAE,QAAQ,CAAC;SACvB,CAAC;KACH,CAAC;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,CACX,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,EAAE;YACpD,CAAC,MAAM,EAAE,KAAK,CAAC;YACf,CAAC,MAAM,EAAE,KAAK,CAAC;YACf,CAAC,UAAU,EAAE,QAAQ,CAAC;SACvB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,kBAAkB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { ArchiModel, ArchiElement, ArchiRelationship } 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 { SchemeBuild } from './semantic-writer.js';
7
+ /** What downstream (view-writer, graphical-writer) actually needs from a resolved relationship mapping. */
8
+ export interface ResolvedRelationshipMapping {
9
+ xmaType: string;
10
+ }
11
+ export interface SemanticRelationshipsResult {
12
+ mappedRelationships: Map<string, ResolvedRelationshipMapping>;
13
+ /**
14
+ * Relations whose source element has no scheme of its own — in practice
15
+ * only a `Junction`/`OrJunction` source (see `junctionMappingEntry` in
16
+ * `semantic-writer.ts`, whose `scheme` is the `'root'` sentinel). These
17
+ * live in the root-level `<ArchiMate:Relations>` container (a sibling of
18
+ * `AbstractSchemes`), confirmed against the agile-manifesto fixture
19
+ * (source id 17, a Junction, whose own InfluenceRelation sits in the
20
+ * document root's `Relations`, not inside any of the 8 layer schemes).
21
+ */
22
+ rootRelationsXml: XmlElement[];
23
+ }
24
+ /**
25
+ * Builds the semantic `<ArchiMate:{RelationshipType} from="..." to="..."/>`
26
+ * elements for every `ArchiRelationship` that resolves either to a confirmed
27
+ * exact-triple mapping or a confirmed generic form. Every relation — exact
28
+ * or generic — is appended to its **source element's own scheme's**
29
+ * `Relations` collection (falling back to the root-level container only
30
+ * when the source has no scheme, i.e. a Junction/OrJunction). Confirmed
31
+ * against the agile-manifesto fixture by cross-referencing three generic-form
32
+ * relations' `from` ids against their defining element: an
33
+ * `ElementElementAssociation` sourced from an `ApplicationComponent` sits in
34
+ * `ApplicationScheme`'s `Relations`; a `GroupingElementComposition` sourced
35
+ * from a `Grouping` sits in `CompositeScheme`'s; an `InfluenceRelation`
36
+ * sourced from a `Junction` sits in the root's. Everything unmapped is
37
+ * diagnosed, never guessed — see `mapping/relationship-mapping.ts` and
38
+ * `mapping/generic-relationship-mapping.ts`.
39
+ */
40
+ export declare function buildSemanticRelationships(model: ArchiModel, ids: XmaIdRegistry, elementIndex: ReadonlyMap<string, ArchiElement>, relationshipIndex: ReadonlyMap<string, ArchiRelationship>, mappedElements: ReadonlyMap<string, ElementMappingEntry>, schemeBuilds: Map<string, SchemeBuild>, diagnostics: DiagnosticCollector): SemanticRelationshipsResult;
41
+ //# sourceMappingURL=relationship-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationship-writer.d.ts","sourceRoot":"","sources":["../../../src/serializer/relationship-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,2GAA2G;AAC3G,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD,MAAM,WAAW,2BAA2B;IAC1C,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IAC9D;;;;;;;;OAQG;IACH,gBAAgB,EAAE,UAAU,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,aAAa,EAClB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,EAC/C,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACzD,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,EACxD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACtC,WAAW,EAAE,mBAAmB,GAC/B,2BAA2B,CAqF7B"}
@@ -1,4 +1,5 @@
1
1
  import { element } from '../infrastructure/xml-writer.js';
2
+ import { assertDefined } from '../infrastructure/assert.js';
2
3
  import { lookupRelationshipMapping } from '../mapping/relationship-mapping.js';
3
4
  import { lookupGenericRelationshipMapping } from '../mapping/generic-relationship-mapping.js';
4
5
  function getOrCreateScheme(schemeBuilds, tag) {
@@ -89,7 +90,9 @@ export function buildSemanticRelationships(model, ids, elementIndex, relationshi
89
90
  ['from', String(ids.idFor(sourceEl.id))],
90
91
  ['to', String(ids.idFor(targetEl.id))],
91
92
  ]);
92
- const schemeTag = exactMapping ? exactMapping.scheme : mappedElements.get(sourceEl.id).scheme;
93
+ const schemeTag = exactMapping
94
+ ? exactMapping.scheme
95
+ : assertDefined(mappedElements.get(sourceEl.id), `no mapping for source element "${sourceEl.id}" (checked present earlier in this same function)`).scheme;
93
96
  if (schemeTag === 'root') {
94
97
  rootRelationsXml.push(relationXml);
95
98
  }
@@ -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,9 @@
1
+ /**
2
+ * Wraps escaped documentation text into an RTF document, matching the exact
3
+ * minimal shape confirmed by both reference fixtures: `{\rtf1 <text>}`, with
4
+ * no additional header control words — the reference tool emits nothing
5
+ * beyond that, and RTF 1.5+'s `\uN` Unicode escapes are valid on their own
6
+ * (the per-`\u` fallback byte count defaults to 1 with no `\ucN` present).
7
+ */
8
+ export declare function toRtfDocument(text: string): string;
9
+ //# sourceMappingURL=rtf.d.ts.map
@@ -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"}