@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,33 @@
1
+ import type { Point, Rect } from './geometry.js';
2
+ export type BendpointAgreement = 'both' | 'source-only' | 'target-only';
3
+ export interface BendpointResolution {
4
+ /** Resolved absolute point, in Archi (pre-scale) coordinate space. */
5
+ point: Point;
6
+ agreement: BendpointAgreement;
7
+ /** Present only when both source- and target-relative forms were available but disagreed materially. */
8
+ mismatch?: {
9
+ fromSource: Point;
10
+ fromTarget: Point;
11
+ };
12
+ }
13
+ /**
14
+ * Resolves a single Archi bendpoint (stored as offsets from the source and
15
+ * target diagram-object centers) to an absolute point in Archi coordinate
16
+ * space.
17
+ *
18
+ * Confirmed fixture: source bounds x=48,y=180,w=120,h=55 (center 108,207),
19
+ * target bounds x=204,y=276,w=120,h=55 (center 264,303), bendpoint
20
+ * startX=-12,startY=93,endX=-168,endY=-3 resolves to absolute (96, 300) via
21
+ * either offset.
22
+ *
23
+ * When both offsets are present, they are cross-checked against each other;
24
+ * a material disagreement is reported via `mismatch` rather than silently
25
+ * resolved, so the caller can surface a diagnostic instead of guessing.
26
+ */
27
+ export declare function resolveBendpoint(bendpoint: {
28
+ startX: number | null;
29
+ startY: number | null;
30
+ endX: number | null;
31
+ endY: number | null;
32
+ }, sourceBounds: Rect, targetBounds: Rect): BendpointResolution | null;
33
+ //# sourceMappingURL=bendpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bendpoints.d.ts","sourceRoot":"","sources":["../../../src/geometry/bendpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAKjD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;AAExE,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,kBAAkB,CAAC;IAC9B,wGAAwG;IACxG,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,KAAK,CAAC;QAClB,UAAU,EAAE,KAAK,CAAC;KACnB,CAAC;CACH;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACrG,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,GACjB,mBAAmB,GAAG,IAAI,CAoC5B"}
@@ -15,8 +15,12 @@ const AGREEMENT_EPSILON = 0.01;
15
15
  * resolved, so the caller can surface a diagnostic instead of guessing.
16
16
  */
17
17
  export function resolveBendpoint(bendpoint, sourceBounds, targetBounds) {
18
- const hasSourceOffset = bendpoint.startX !== null && bendpoint.startY !== null;
19
- const hasTargetOffset = bendpoint.endX !== null && bendpoint.endY !== null;
18
+ // A NaN/Infinity offset (e.g. from an upstream parser's failed arithmetic)
19
+ // is treated as absent rather than propagated into a nonsensical resolved
20
+ // point — this falls through to the existing "neither offset usable"
21
+ // diagnostic below instead of silently producing invalid geometry.
22
+ const hasSourceOffset = Number.isFinite(bendpoint.startX) && Number.isFinite(bendpoint.startY);
23
+ const hasTargetOffset = Number.isFinite(bendpoint.endX) && Number.isFinite(bendpoint.endY);
20
24
  if (!hasSourceOffset && !hasTargetOffset) {
21
25
  return null;
22
26
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bendpoints.js","sourceRoot":"","sources":["../../../src/geometry/bendpoints.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAe/B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAqG,EACrG,YAAkB,EAClB,YAAkB;IAElB,2EAA2E;IAC3E,0EAA0E;IAC1E,qEAAqE;IACrE,mEAAmE;IACnE,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/F,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAE3F,IAAI,CAAC,eAAe,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE5C,MAAM,UAAU,GAAiB,eAAe;QAC9C,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,GAAI,SAAS,CAAC,MAAiB,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,GAAI,SAAS,CAAC,MAAiB,EAAE;QACxG,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,UAAU,GAAiB,eAAe;QAC9C,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,GAAI,SAAS,CAAC,IAAe,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,GAAI,SAAS,CAAC,IAAe,EAAE;QACpG,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACrD,IAAI,MAAM,GAAG,iBAAiB,IAAI,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAC7D,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;QACxF,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAmB,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAClE,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Confirmed across all catalogue shapes and the relationship fixture: XMA
3
+ * geometry is Archi geometry uniformly scaled by 3 (x, y, width, height,
4
+ * and bendpoint coordinates alike).
5
+ */
6
+ export declare const XMA_SCALE = 3;
7
+ export interface Rect {
8
+ x: number;
9
+ y: number;
10
+ width: number;
11
+ height: number;
12
+ }
13
+ export declare function scaleValue(archiValue: number): number;
14
+ export declare function scaleRect(bounds: Rect): Rect;
15
+ export interface Point {
16
+ x: number;
17
+ y: number;
18
+ }
19
+ export declare function scalePoint(point: Point): Point;
20
+ /**
21
+ * Rect center, floored to a whole pixel — confirmed against the proven
22
+ * bendpoint fixture: a 55px-tall shape's center is Archi's own `180 + 55/2`
23
+ * truncated to `207`, not `207.5`. Using the exact fraction here would
24
+ * throw off every bendpoint resolved against an odd-height/width shape.
25
+ */
26
+ export declare function centerOf(bounds: Rect): Point;
27
+ interface NullableBounds {
28
+ x: number | null;
29
+ y: number | null;
30
+ width: number | null;
31
+ height: number | null;
32
+ }
33
+ /**
34
+ * A bounds with confirmed `width`/`height`, but `x`/`y` still possibly
35
+ * `null` (Archi's own convention for "this coordinate is 0" — see
36
+ * `hasCompleteBounds`). Deliberately distinct from `Rect`: unlike the old
37
+ * `bounds is Rect` guard, this doesn't claim `x`/`y` are numbers when they
38
+ * might not be, so a caller can't reach for `bounds.x` arithmetic without
39
+ * going through `toRect` first and getting the null-to-0 substitution
40
+ * explicitly, instead of relying on it happening implicitly via JS
41
+ * coercion behind an unchecked cast.
42
+ */
43
+ export interface CompleteBounds {
44
+ x: number | null;
45
+ y: number | null;
46
+ width: number;
47
+ height: number;
48
+ }
49
+ /**
50
+ * Type guard: true when a bounds has usable width/height (`x`/`y` may
51
+ * still be `null` — see `CompleteBounds`).
52
+ *
53
+ * `width`/`height` must be set — there is no fixture evidence of Archi ever
54
+ * omitting either. `x`/`y` are allowed to be `null`: confirmed across all
55
+ * four fixtures (three omitted-`x` cases in sabsa, one omitted-`y` case in
56
+ * agile-manifesto — always alone, never alongside a missing `width`/
57
+ * `height`) that Archi omits a bounds coordinate specifically when its value
58
+ * is `0`, per the ArchiMate Exchange Format convention. Use `toRect` to
59
+ * apply that default explicitly before doing numeric work with `x`/`y`.
60
+ *
61
+ * Every non-null field must also be a finite number: a `NaN`/`Infinity`
62
+ * value (e.g. from an upstream parser's failed arithmetic on garbled
63
+ * geometry text) would otherwise pass this check and flow silently into the
64
+ * rendered XML as a literal `"NaN"`/`"Infinity"` attribute — invalid output
65
+ * produced with no diagnostic. Treating it as incomplete instead routes it
66
+ * through the same `missing-bounds` diagnostic as an actually-missing value.
67
+ */
68
+ export declare function hasCompleteBounds(bounds: NullableBounds | null): bounds is CompleteBounds;
69
+ /**
70
+ * Applies Archi's "omitted coordinate means 0" convention explicitly (see
71
+ * `hasCompleteBounds`), turning a `CompleteBounds` into a real `Rect`.
72
+ */
73
+ export declare function toRect(bounds: CompleteBounds): Rect;
74
+ export {};
75
+ //# sourceMappingURL=geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../src/geometry/geometry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,SAAS,IAAI,CAAC;AAE3B,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,CAO5C;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAK5C;AAED,UAAU,cAAc;IACtB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,MAAM,IAAI,cAAc,CAMzF;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAEnD"}
@@ -31,19 +31,38 @@ export function centerOf(bounds) {
31
31
  };
32
32
  }
33
33
  /**
34
- * Type guard: true when a bounds is usable as a `Rect`.
34
+ * Type guard: true when a bounds has usable width/height (`x`/`y` may
35
+ * still be `null` — see `CompleteBounds`).
35
36
  *
36
37
  * `width`/`height` must be set — there is no fixture evidence of Archi ever
37
38
  * omitting either. `x`/`y` are allowed to be `null`: confirmed across all
38
39
  * four fixtures (three omitted-`x` cases in sabsa, one omitted-`y` case in
39
40
  * agile-manifesto — always alone, never alongside a missing `width`/
40
41
  * `height`) that Archi omits a bounds coordinate specifically when its value
41
- * is `0`, per the ArchiMate Exchange Format convention. Downstream numeric
42
- * use of `bounds.x`/`bounds.y` (scaling, center-of) relies on JS's
43
- * null-coerces-to-0 arithmetic to apply that default — no explicit
44
- * substitution needed here.
42
+ * is `0`, per the ArchiMate Exchange Format convention. Use `toRect` to
43
+ * apply that default explicitly before doing numeric work with `x`/`y`.
44
+ *
45
+ * Every non-null field must also be a finite number: a `NaN`/`Infinity`
46
+ * value (e.g. from an upstream parser's failed arithmetic on garbled
47
+ * geometry text) would otherwise pass this check and flow silently into the
48
+ * rendered XML as a literal `"NaN"`/`"Infinity"` attribute — invalid output
49
+ * produced with no diagnostic. Treating it as incomplete instead routes it
50
+ * through the same `missing-bounds` diagnostic as an actually-missing value.
45
51
  */
46
52
  export function hasCompleteBounds(bounds) {
47
- return bounds !== null && bounds.width !== null && bounds.height !== null;
53
+ if (bounds === null)
54
+ return false;
55
+ for (const value of [bounds.x, bounds.y, bounds.width, bounds.height]) {
56
+ if (value !== null && !Number.isFinite(value))
57
+ return false;
58
+ }
59
+ return bounds.width !== null && bounds.height !== null;
60
+ }
61
+ /**
62
+ * Applies Archi's "omitted coordinate means 0" convention explicitly (see
63
+ * `hasCompleteBounds`), turning a `CompleteBounds` into a real `Rect`.
64
+ */
65
+ export function toRect(bounds) {
66
+ return { x: bounds.x ?? 0, y: bounds.y ?? 0, width: bounds.width, height: bounds.height };
48
67
  }
49
68
  //# sourceMappingURL=geometry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../src/geometry/geometry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAS3B,MAAM,UAAU,UAAU,CAAC,UAAkB;IAC3C,OAAO,UAAU,GAAG,SAAS,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAY;IACpC,OAAO;QACL,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACvB,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QACvB,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/B,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;KAClC,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,UAAU,CAAC,KAAY;IACrC,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAY;IACnC,OAAO;QACL,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QAC1C,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;KAC5C,CAAC;AACJ,CAAC;AA0BD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA6B;IAC7D,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtE,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IAC9D,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,MAAsB;IAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAC5F,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { serializeXma, inspectXmaSupport } from './serializer/serialize-xma.js';
2
+ export type { XmaSerializeOptions } from './serializer/serialize-xma.js';
3
+ export { XmaSerializationError } from './diagnostics/errors.js';
4
+ export type { XmaDiagnostic, XmaDiagnosticSeverity } from './diagnostics/diagnostics.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAChF,YAAY,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Asserts an internal cross-module invariant (e.g. "view-writer always
3
+ * registers this id before graphical-writer reads it back") instead of
4
+ * silently trusting it via a `!` non-null assertion. If the invariant is
5
+ * ever violated by a future refactor, this throws a clear, specific error
6
+ * instead of letting `undefined` flow into the rendered XML as the literal
7
+ * string `"undefined"`.
8
+ */
9
+ export declare function assertDefined<T>(value: T | undefined, message: string): T;
10
+ //# sourceMappingURL=assert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/assert.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAKzE"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Asserts an internal cross-module invariant (e.g. "view-writer always
3
+ * registers this id before graphical-writer reads it back") instead of
4
+ * silently trusting it via a `!` non-null assertion. If the invariant is
5
+ * ever violated by a future refactor, this throws a clear, specific error
6
+ * instead of letting `undefined` flow into the rendered XML as the literal
7
+ * string `"undefined"`.
8
+ */
9
+ export function assertDefined(value, message) {
10
+ if (value === undefined) {
11
+ throw new Error(`Internal invariant violation: ${message}`);
12
+ }
13
+ return value;
14
+ }
15
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../../src/infrastructure/assert.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAI,KAAoB,EAAE,OAAe;IACpE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Deterministic numeric XMA id allocator.
3
+ *
4
+ * XMA reference documents use small sequential integer ids. We do not (and
5
+ * cannot) reproduce Archi's string ids — instead we hand out ids in strictly
6
+ * increasing order, starting from 1, driven entirely by serializer traversal
7
+ * order. As long as the traversal order over a given `ArchiModel` is stable
8
+ * (it is: every `ArchiModel` collection preserves source document order),
9
+ * the same input always yields the same ids.
10
+ *
11
+ * Never uses Math.random(), Date.now(), or any other non-deterministic or
12
+ * environment-specific source.
13
+ */
14
+ export declare class XmaIdAllocator {
15
+ private counter;
16
+ next(): number;
17
+ }
18
+ /**
19
+ * A registry mapping arbitrary string keys (Archi ids, or synthetic
20
+ * composite keys) to allocated XMA numeric ids, with reference-consistent
21
+ * reuse: asking for the same key twice returns the same id.
22
+ */
23
+ export declare class XmaIdRegistry {
24
+ private readonly allocator;
25
+ private readonly ids;
26
+ constructor(allocator: XmaIdAllocator);
27
+ /** Allocates (or returns the previously allocated) id for `key`. */
28
+ idFor(key: string): number;
29
+ /** Allocates a fresh id not tied to any lookup key (e.g. structural scaffolding elements). */
30
+ fresh(): number;
31
+ has(key: string): boolean;
32
+ get(key: string): number | undefined;
33
+ }
34
+ //# sourceMappingURL=id-allocator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-allocator.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/id-allocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAK;IAEpB,IAAI,IAAI,MAAM;CAIf;AAED;;;;GAIG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;gBAEpB,SAAS,EAAE,cAAc;IAEtD,oEAAoE;IACpE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAU1B,8FAA8F;IAC9F,KAAK,IAAI,MAAM;IAIf,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAGrC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-allocator.js","sourceRoot":"","sources":["../../../src/infrastructure/id-allocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,cAAc;IAA3B;QACU,YAAO,GAAG,CAAC,CAAC;IAMtB,CAAC;IAJC,IAAI;QACF,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAGxB,YAA6B,SAAyB;QAAzB,cAAS,GAAT,SAAS,CAAgB;QAFrC,QAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEQ,CAAC;IAE1D,oEAAoE;IACpE,KAAK,CAAC,GAAW;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,8FAA8F;IAC9F,KAAK;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Minimal typed XML element tree + deterministic serializer.
3
+ *
4
+ * Business logic builds `XmlElement` trees (attribute order and child order
5
+ * are explicit arrays, controlled entirely by the caller) and this module
6
+ * turns them into text. No implicit ordering, no host/timestamp-dependent
7
+ * output, no third-party XML dependency — keeps the runtime browser-safe.
8
+ */
9
+ export interface XmlElement {
10
+ tag: string;
11
+ attrs?: Array<[string, string]>;
12
+ children?: XmlElement[];
13
+ /** Leaf text content. Mutually exclusive with `children` in practice. */
14
+ text?: string;
15
+ }
16
+ export declare function element(tag: string, attrs?: Array<[string, string]>, children?: XmlElement[]): XmlElement;
17
+ export declare function textElement(tag: string, text: string, attrs?: Array<[string, string]>): XmlElement;
18
+ /** Renders a root element to a complete, deterministic XML document string. */
19
+ export declare function renderXmlDocument(root: XmlElement): string;
20
+ //# sourceMappingURL=xml-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml-writer.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/xml-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,OAAO,CACrB,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC/B,QAAQ,CAAC,EAAE,UAAU,EAAE,GACtB,UAAU,CAEZ;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,UAAU,CAElG;AAuED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAI1D"}
@@ -12,8 +12,41 @@ export function element(tag, attrs, children) {
12
12
  export function textElement(tag, text, attrs) {
13
13
  return { tag, attrs, text };
14
14
  }
15
+ /**
16
+ * True for a code unit XML 1.0 forbids everywhere — even as a numeric
17
+ * character reference, there is no legal way to represent it in a document.
18
+ * Legal ranges: 0x9, 0xA, 0xD, 0x20-0xD7FF, 0xE000-0xFFFD, 0x10000-0x10FFFF.
19
+ * Checked by char code (not a literal-character regex) so the source stays
20
+ * readable and editor/tool-safe.
21
+ */
22
+ function isIllegalXmlCodeUnit(code) {
23
+ if (code === 0x9 || code === 0xa || code === 0xd)
24
+ return false;
25
+ if (code < 0x20)
26
+ return true;
27
+ if (code >= 0xd800 && code <= 0xdfff)
28
+ return false; // UTF-16 surrogate halves, valid when paired
29
+ if (code === 0xfffe || code === 0xffff)
30
+ return true;
31
+ return false;
32
+ }
33
+ /**
34
+ * Strips control characters XML 1.0 can never represent — stray bytes from
35
+ * pasted/corrupted source text — so the renderer never emits syntactically
36
+ * invalid XML. Everything else (including surrogate pairs) passes through.
37
+ */
38
+ function stripIllegalXmlChars(value) {
39
+ let out = '';
40
+ for (let i = 0; i < value.length; i += 1) {
41
+ const code = value.charCodeAt(i);
42
+ if (!isIllegalXmlCodeUnit(code)) {
43
+ out += value[i];
44
+ }
45
+ }
46
+ return out;
47
+ }
15
48
  function escapeXmlText(value) {
16
- return value
49
+ return stripIllegalXmlChars(value)
17
50
  .replace(/&/g, '&amp;')
18
51
  .replace(/</g, '&lt;')
19
52
  .replace(/>/g, '&gt;')
@@ -21,7 +54,9 @@ function escapeXmlText(value) {
21
54
  .replace(/\n/g, '&#10;');
22
55
  }
23
56
  function escapeXmlAttr(value) {
24
- return escapeXmlText(value).replace(/"/g, '&quot;');
57
+ return escapeXmlText(value)
58
+ .replace(/"/g, '&quot;')
59
+ .replace(/\t/g, '&#9;');
25
60
  }
26
61
  function renderElement(el, out) {
27
62
  out.push('<', el.tag);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml-writer.js","sourceRoot":"","sources":["../../../src/infrastructure/xml-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,MAAM,UAAU,OAAO,CACrB,GAAW,EACX,KAA+B,EAC/B,QAAuB;IAEvB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,IAAY,EAAE,KAA+B;IACpF,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC/D,IAAI,IAAI,GAAG,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;QAAE,OAAO,KAAK,CAAC,CAAC,6CAA6C;IACjG,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,KAAa;IACzC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,oBAAoB,CAAC,KAAK,CAAC;SAC/B,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;SACvB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,aAAa,CAAC,KAAK,CAAC;SACxB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,aAAa,CAAC,EAAc,EAAE,GAAa;IAClD,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5D,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,OAAO;IACT,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAc,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,QAAwB,EAAE,CAAC;YAChD,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,IAAgB;IAChD,MAAM,GAAG,GAAa,CAAC,0CAA0C,CAAC,CAAC;IACnE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Archi element type -> XMA semantic type/scheme/collection mapping.
3
+ *
4
+ * Directly confirmed against `tests/fixtures/catalog/catalogo.{archimate,xma}`
5
+ * (60 ArchiMate concept types, one view) and cross-checked against
6
+ * `tests/fixtures/relationships/relaciones.{archimate,xma}`. Every field
7
+ * below (scheme tag, collection tag/name, fill category, icon presence) was
8
+ * read directly off those reference files — nothing here is extrapolated
9
+ * beyond what both fixtures show.
10
+ *
11
+ * This is immutable mapping DATA, looked up by Archi type — never a
12
+ * switch/if-chain.
13
+ */
14
+ export type PresentationCategory = 'Strategy' | 'Business' | 'Application' | 'Technology' | 'Physical' | 'Motivation' | 'ImplementationMigration' | 'Location' | 'Grouping';
15
+ export interface ElementMappingEntry {
16
+ archiType: string;
17
+ xmaType: string;
18
+ scheme: string;
19
+ collectionTag: string;
20
+ collectionName: string;
21
+ category: PresentationCategory;
22
+ hasIcon: boolean;
23
+ }
24
+ /** `ArchiElement.type` -> mapping entry. Elements not present here are unsupported for v0.1. */
25
+ export declare const ELEMENT_MAPPINGS: readonly ElementMappingEntry[];
26
+ export declare function lookupElementMapping(archiType: string): ElementMappingEntry | undefined;
27
+ export declare function getSchemeCollectionOrder(schemeTag: string): ReadonlyArray<{
28
+ tag: string;
29
+ name: string;
30
+ }>;
31
+ //# sourceMappingURL=element-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-mapping.d.ts","sourceRoot":"","sources":["../../../src/mapping/element-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,UAAU,GACV,aAAa,GACb,YAAY,GACZ,UAAU,GACV,YAAY,GACZ,yBAAyB,GACzB,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,gGAAgG;AAChG,eAAO,MAAM,gBAAgB,EAAE,SAAS,mBAAmB,EA4E1D,CAAC;AAIF,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAEvF;AAuBD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAExG"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-mapping.js","sourceRoot":"","sources":["../../../src/mapping/element-mapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Generic (type-independent) relationship forms — confirmed to exist, but
3
+ * structurally different from `relationship-mapping.ts`'s exact-triple
4
+ * table: these apply *regardless* of the concrete source/target type, not
5
+ * for one specific pair. See `tests/fixtures/README.md` for the full
6
+ * derivation evidence.
7
+ *
8
+ * All three forms serialize into the root-level `<ArchiMate:Relations>`
9
+ * container (a sibling of `AbstractSchemes` under `ArchiMateComponent`),
10
+ * never inside a layer scheme — confirmed directly in both fixtures
11
+ * (`sabsa.xma`, `agile-manifesto.xma`): every generic-form relation appears
12
+ * there, never nested in `BusinessScheme`/`ApplicationScheme`/etc.
13
+ */
14
+ export interface GenericRelationshipMapping {
15
+ xmaType: string;
16
+ }
17
+ export declare function lookupGenericRelationshipMapping(archiRelationshipType: string, sourceArchiType: string, targetArchiType: string): GenericRelationshipMapping | undefined;
18
+ //# sourceMappingURL=generic-relationship-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-relationship-mapping.d.ts","sourceRoot":"","sources":["../../../src/mapping/generic-relationship-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAkCH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gCAAgC,CAC9C,qBAAqB,EAAE,MAAM,EAC7B,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,GACtB,0BAA0B,GAAG,SAAS,CA4BxC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-relationship-mapping.js","sourceRoot":"","sources":["../../../src/mapping/generic-relationship-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,4FAA4F;AAC5F,MAAM,kBAAkB,GAAqC;IAC3D,sBAAsB,EAAE,YAAY;IACpC,kBAAkB,EAAE,QAAQ;IAC5B,uBAAuB,EAAE,aAAa;IACtC,gBAAgB,EAAE,MAAM;IACxB,sBAAsB,EAAE,YAAY;IACpC,qBAAqB,EAAE,WAAW;IAClC,0BAA0B,EAAE,gBAAgB;IAC5C,uBAAuB,EAAE,aAAa;IACtC,mBAAmB,EAAE,KAAK;CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAEvE;;;;;;GAMG;AACH,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;AAMhG,MAAM,UAAU,gCAAgC,CAC9C,qBAA6B,EAC7B,eAAuB,EACvB,eAAuB;IAEvB,+EAA+E;IAC/E,iFAAiF;IACjF,+CAA+C;IAC/C,IAAI,qBAAqB,KAAK,yBAAyB,EAAE,CAAC;QACxD,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,gBAAgB,GAAG,eAAe,KAAK,UAAU,CAAC;IACxD,MAAM,gBAAgB,GAAG,eAAe,KAAK,UAAU,CAAC;IACxD,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,IAAI,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACjF,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,gBAAgB,GAAG,eAAe,KAAK,UAAU,CAAC;IACxD,MAAM,gBAAgB,GAAG,eAAe,KAAK,UAAU,CAAC;IACxD,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,IAAI,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACjF,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,MAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI,EAAE,EAAE,CAAC;IAC1D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Archi relationship mapping, resolved by (relationship type, source
3
+ * semantic type, target semantic type) — never by relationship type alone.
4
+ *
5
+ * 90 exact-triple mappings are proven: the original 3 confirmed against
6
+ * `tests/fixtures/relationships/relaciones.{archimate,xma}`, 64 more
7
+ * confirmed against `tests/fixtures/sabsa/sabsa.{archimate,xma}`, 20 more
8
+ * confirmed against `tests/fixtures/agile-manifesto/agile-manifesto.{archimate,xma}`,
9
+ * and 3 confirmed "...Collaboration collapses to its singular active-structure
10
+ * counterpart" instances (see below) — see each fixture pair's entry in
11
+ * `tests/fixtures/README.md` for the full derivation method. Every other
12
+ * relationship type/source/target combination is unsupported for v0.1 and
13
+ * must be diagnosed, never guessed (see `serializer/relationship-writer.ts`).
14
+ *
15
+ * `scheme` is always the scheme of the *source* type (confirmed even across
16
+ * schemes, e.g. `WorkPackage -> BusinessFunction` lives in `IMScheme`, the
17
+ * source's scheme, not `BusinessScheme`).
18
+ *
19
+ * Three "...Collaboration" entries collapse to their singular active-structure
20
+ * counterpart for relationship naming only (their own element mapping is
21
+ * unaffected — see `element-mapping.ts`): `BusinessCollaboration` collapses
22
+ * to `BusinessRole`, `TechnologyCollaboration` collapses to `TechnologyNode`.
23
+ * Verified directly against raw relation instances in both fixtures, not
24
+ * inferred.
25
+ *
26
+ * NOT modeled here as exact triples — genuinely type-independent, so they
27
+ * live in `generic-relationship-mapping.ts` instead:
28
+ * - `AssociationRelationship` always serializes as the generic
29
+ * `ElementElementAssociation`, regardless of source/target type.
30
+ * - A `Grouping` endpoint (for the confirmed verbs Composition,
31
+ * Specialization, Influence, Use) or a `Junction`/`OrJunction` endpoint
32
+ * (for the confirmed verbs Realisation, Influence) uses a generic form
33
+ * (e.g. `GroupingElementComposition`, `RealisationRelation`) instead of a
34
+ * type-specific one.
35
+ */
36
+ export interface RelationshipMappingEntry {
37
+ archiRelationshipType: string;
38
+ sourceArchiType: string;
39
+ targetArchiType: string;
40
+ /** XMA semantic relationship type, e.g. "BusinessActorBusinessProcessAssignment". */
41
+ xmaType: string;
42
+ /** Scheme the relationship's `<ArchiMate:Relations>` collection lives in, e.g. "BusinessScheme". */
43
+ scheme: string;
44
+ }
45
+ export declare const RELATIONSHIP_MAPPINGS: readonly RelationshipMappingEntry[];
46
+ export declare function lookupRelationshipMapping(relationshipType: string, sourceArchiType: string, targetArchiType: string): RelationshipMappingEntry | undefined;
47
+ //# sourceMappingURL=relationship-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationship-mapping.d.ts","sourceRoot":"","sources":["../../../src/mapping/relationship-mapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,MAAM,WAAW,wBAAwB;IACvC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB,oGAAoG;IACpG,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,qBAAqB,EAAE,SAAS,wBAAwB,EA+oBpE,CAAC;AAaF,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,GACtB,wBAAwB,GAAG,SAAS,CAEtC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationship-mapping.js","sourceRoot":"","sources":["../../../src/mapping/relationship-mapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { PresentationCategory } from './element-mapping.js';
2
+ /**
3
+ * Semantic scheme container metadata, keyed by presentation category.
4
+ *
5
+ * Confirmed against both reference fixtures: every root-level scheme's `nm`
6
+ * profile value is copied verbatim from the ArchiMate model's own top-level
7
+ * folder of the matching `type` (e.g. `BusinessScheme`'s `nm` is folder
8
+ * "Business"'s `name`) — this is content preservation, not invented
9
+ * translation. `Technology`/`Physical` are the one exception: both nest
10
+ * under a single "Technology & Physical" `AbstractFolder` (see
11
+ * {@link TECHNOLOGY_PHYSICAL_FOLDER}) which itself carries that folder's
12
+ * name, so the two schemes it wraps carry no `nm` of their own — confirmed
13
+ * absent in the catalogue fixture.
14
+ */
15
+ export interface SchemeInfo {
16
+ tag: string;
17
+ /** `ArchiFolder.type` this scheme's own `nm` is sourced from, or `null` when nested (see {@link TECHNOLOGY_PHYSICAL_FOLDER}). */
18
+ folderType: string | null;
19
+ /** Fallback label when the source model has no folder of `folderType` (Archi's own default folder name). */
20
+ defaultLabel: string | null;
21
+ }
22
+ export declare const SCHEME_BY_CATEGORY: Readonly<Record<PresentationCategory, SchemeInfo>>;
23
+ /**
24
+ * The `AbstractFolder` wrapping `TechnologyScheme`/`PhysicalScheme` — the one
25
+ * confirmed case of a scheme container nested under a folder rather than
26
+ * sitting directly in the root `AbstractSchemes` collection (see the doc
27
+ * block on {@link SchemeInfo}).
28
+ */
29
+ export declare const TECHNOLOGY_PHYSICAL_FOLDER: {
30
+ readonly archiFolderType: "technology";
31
+ readonly defaultLabel: "Technology & Physical";
32
+ };
33
+ /** The `AbstractFolder` wrapping the view's `AllView` — confirmed present in both reference fixtures. */
34
+ export declare const VIEWS_FOLDER: {
35
+ readonly archiFolderType: "diagrams";
36
+ readonly defaultLabel: "Views";
37
+ };
38
+ //# sourceMappingURL=scheme-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheme-mapping.d.ts","sourceRoot":"","sources":["../../../src/mapping/scheme-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,iIAAiI;IACjI,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,4GAA4G;IAC5G,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAeD,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAUjF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B;;;CAG7B,CAAC;AAEX,yGAAyG;AACzG,eAAO,MAAM,YAAY;;;CAGf,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheme-mapping.js","sourceRoot":"","sources":["../../../src/mapping/scheme-mapping.ts"],"names":[],"mappings":"AAuBA,MAAM,QAAQ,GAAe,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACzG,MAAM,QAAQ,GAAe,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACzG,MAAM,WAAW,GAAe,EAAE,GAAG,EAAE,mBAAmB,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AACrH,MAAM,UAAU,GAAe,EAAE,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACjG,MAAM,QAAQ,GAAe,EAAE,GAAG,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AAC7F,MAAM,UAAU,GAAe,EAAE,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACjH,MAAM,wBAAwB,GAAe;IAC3C,GAAG,EAAE,UAAU;IACf,UAAU,EAAE,0BAA0B;IACtC,YAAY,EAAE,4BAA4B;CAC3C,CAAC;AACF,MAAM,SAAS,GAAe,EAAE,GAAG,EAAE,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AAErG,MAAM,CAAC,MAAM,kBAAkB,GAAuD;IACpF,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,UAAU;IACtB,uBAAuB,EAAE,wBAAwB;IACjD,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;CACpB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,eAAe,EAAE,YAAY;IAC7B,YAAY,EAAE,uBAAuB;CAC7B,CAAC;AAEX,yGAAyG;AACzG,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe,EAAE,UAAU;IAC3B,YAAY,EAAE,OAAO;CACb,CAAC"}