@grafloria/element 0.3.18 → 0.3.20

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 (1148) hide show
  1. package/esm/src/index.js +295 -0
  2. package/esm/src/lib/dashboard-kit/dashboard.js +590 -0
  3. package/esm/src/lib/dashboard-kit/grid-binder.js +1633 -0
  4. package/esm/src/lib/dashboard-kit/grid-mapping.js +164 -0
  5. package/esm/src/lib/dashboard-kit/index.js +8 -0
  6. package/esm/src/lib/dashboard-kit/styles.js +205 -0
  7. package/esm/src/lib/dashboard-kit/widgets.js +379 -0
  8. package/esm/src/lib/diagram-kit/card.js +199 -0
  9. package/esm/src/lib/diagram-kit/editing.js +448 -0
  10. package/esm/src/lib/diagram-kit/er.js +160 -0
  11. package/esm/src/lib/diagram-kit/handles.js +312 -0
  12. package/esm/src/lib/diagram-kit/index.js +15 -0
  13. package/esm/src/lib/diagram-kit/join-guidance.js +322 -0
  14. package/esm/src/lib/diagram-kit/rows.js +144 -0
  15. package/esm/src/lib/diagram-kit/styles.js +118 -0
  16. package/esm/src/lib/diagram-kit/uml.js +135 -0
  17. package/esm/src/lib/diagram-kit/update.js +244 -0
  18. package/esm/src/lib/grafloria-flow-element.js +266 -0
  19. package/esm/src/lib/grafloria.js +69 -0
  20. package/esm/src/lib/load.js +252 -0
  21. package/esm/src/lib/node-type-registry.js +42 -0
  22. package/esm/src/lib/stencil-kit/builders.js +18 -0
  23. package/esm/src/lib/stencil-kit/card-builders.js +105 -0
  24. package/esm/src/lib/stencil-kit/index.js +9 -0
  25. package/esm/src/lib/stencil-kit/palette.js +427 -0
  26. package/esm/src/lib/stencil-kit/shape-data.js +537 -0
  27. package/esm/src/lib/stencil-kit/styles.js +126 -0
  28. package/package.json +13 -4
  29. package/src/index.d.ts +2 -1
  30. package/src/index.js +11 -2
  31. package/src/lib/dashboard-kit/grid-binder.js +16 -15
  32. package/src/lib/dashboard-kit/styles.js +9 -3
  33. package/src/lib/diagram-kit/index.d.ts +1 -0
  34. package/src/lib/diagram-kit/index.js +11 -1
  35. package/src/lib/diagram-kit/join-guidance.d.ts +116 -0
  36. package/src/lib/diagram-kit/join-guidance.js +331 -0
  37. package/src/lib/stencil-kit/palette.js +60 -6
  38. package/src/lib/stencil-kit/shape-data.d.ts +3 -2
  39. package/src/lib/stencil-kit/shape-data.js +323 -31
  40. package/src/lib/stencil-kit/styles.js +15 -0
  41. package/src/libs/element/src/index.d.ts +92 -0
  42. package/src/libs/element/src/index.js +576 -0
  43. package/src/libs/element/src/lib/dashboard-kit/dashboard.d.ts +345 -0
  44. package/src/libs/element/src/lib/dashboard-kit/dashboard.js +594 -0
  45. package/src/libs/element/src/lib/dashboard-kit/grid-binder.d.ts +277 -0
  46. package/src/libs/element/src/lib/dashboard-kit/grid-binder.js +1636 -0
  47. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.d.ts +141 -0
  48. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js +176 -0
  49. package/src/libs/element/src/lib/dashboard-kit/index.d.ts +5 -0
  50. package/src/libs/element/src/lib/dashboard-kit/index.js +33 -0
  51. package/src/libs/element/src/lib/dashboard-kit/styles.d.ts +25 -0
  52. package/src/libs/element/src/lib/dashboard-kit/styles.js +209 -0
  53. package/src/libs/element/src/lib/dashboard-kit/widgets.d.ts +112 -0
  54. package/src/libs/element/src/lib/dashboard-kit/widgets.js +389 -0
  55. package/src/libs/element/src/lib/diagram-kit/card.d.ts +75 -0
  56. package/src/libs/element/src/lib/diagram-kit/card.js +209 -0
  57. package/src/libs/element/src/lib/diagram-kit/editing.d.ts +58 -0
  58. package/src/libs/element/src/lib/diagram-kit/editing.js +453 -0
  59. package/src/libs/element/src/lib/diagram-kit/er.d.ts +73 -0
  60. package/src/libs/element/src/lib/diagram-kit/er.js +163 -0
  61. package/src/libs/element/src/lib/diagram-kit/handles.d.ts +181 -0
  62. package/src/libs/element/src/lib/diagram-kit/handles.js +325 -0
  63. package/src/libs/element/src/lib/diagram-kit/index.d.ts +10 -0
  64. package/src/libs/element/src/lib/diagram-kit/index.js +55 -0
  65. package/src/libs/element/src/lib/diagram-kit/join-guidance.d.ts +116 -0
  66. package/src/libs/element/src/lib/diagram-kit/join-guidance.js +331 -0
  67. package/src/libs/element/src/lib/diagram-kit/rows.d.ts +53 -0
  68. package/src/libs/element/src/lib/diagram-kit/rows.js +147 -0
  69. package/src/libs/element/src/lib/diagram-kit/styles.d.ts +18 -0
  70. package/src/libs/element/src/lib/diagram-kit/styles.js +122 -0
  71. package/src/libs/element/src/lib/diagram-kit/uml.d.ts +59 -0
  72. package/src/libs/element/src/lib/diagram-kit/uml.js +138 -0
  73. package/src/libs/element/src/lib/diagram-kit/update.d.ts +133 -0
  74. package/src/libs/element/src/lib/diagram-kit/update.js +251 -0
  75. package/src/libs/element/src/lib/grafloria-flow-element.d.ts +48 -0
  76. package/src/libs/element/src/lib/grafloria-flow-element.js +271 -0
  77. package/src/libs/element/src/lib/grafloria.d.ts +72 -0
  78. package/src/libs/element/src/lib/grafloria.js +74 -0
  79. package/src/libs/element/src/lib/load.d.ts +72 -0
  80. package/src/libs/element/src/lib/load.js +255 -0
  81. package/src/libs/element/src/lib/node-type-registry.d.ts +39 -0
  82. package/src/libs/element/src/lib/node-type-registry.js +50 -0
  83. package/src/libs/element/src/lib/stencil-kit/builders.d.ts +45 -0
  84. package/src/libs/element/src/lib/stencil-kit/builders.js +24 -0
  85. package/src/libs/element/src/lib/stencil-kit/card-builders.d.ts +2 -0
  86. package/src/libs/element/src/lib/stencil-kit/card-builders.js +108 -0
  87. package/src/libs/element/src/lib/stencil-kit/index.d.ts +7 -0
  88. package/src/libs/element/src/lib/stencil-kit/index.js +19 -0
  89. package/src/libs/element/src/lib/stencil-kit/palette.d.ts +93 -0
  90. package/src/libs/element/src/lib/stencil-kit/palette.js +430 -0
  91. package/src/libs/element/src/lib/stencil-kit/shape-data.d.ts +28 -0
  92. package/src/libs/element/src/lib/stencil-kit/shape-data.js +540 -0
  93. package/src/libs/element/src/lib/stencil-kit/styles.d.ts +2 -0
  94. package/src/libs/element/src/lib/stencil-kit/styles.js +129 -0
  95. package/src/libs/engine/src/adapters/component-adapter.interface.d.ts +302 -0
  96. package/src/libs/engine/src/adapters/component-adapter.interface.js +84 -0
  97. package/src/libs/engine/src/adapters/index.d.ts +7 -0
  98. package/src/libs/engine/src/adapters/index.js +11 -0
  99. package/src/libs/engine/src/clipboard/ClipboardManager.d.ts +81 -0
  100. package/src/libs/engine/src/clipboard/ClipboardManager.js +108 -0
  101. package/src/libs/engine/src/clipboard/index.d.ts +1 -0
  102. package/src/libs/engine/src/clipboard/index.js +6 -0
  103. package/src/libs/engine/src/collab/apply-op.d.ts +42 -0
  104. package/src/libs/engine/src/collab/apply-op.js +939 -0
  105. package/src/libs/engine/src/collab/capture.d.ts +147 -0
  106. package/src/libs/engine/src/collab/capture.js +510 -0
  107. package/src/libs/engine/src/collab/index.d.ts +12 -0
  108. package/src/libs/engine/src/collab/index.js +84 -0
  109. package/src/libs/engine/src/collab/integrity.d.ts +178 -0
  110. package/src/libs/engine/src/collab/integrity.js +438 -0
  111. package/src/libs/engine/src/collab/lww.d.ts +47 -0
  112. package/src/libs/engine/src/collab/lww.js +188 -0
  113. package/src/libs/engine/src/collab/op-log.d.ts +50 -0
  114. package/src/libs/engine/src/collab/op-log.js +167 -0
  115. package/src/libs/engine/src/collab/op.d.ts +120 -0
  116. package/src/libs/engine/src/collab/op.js +118 -0
  117. package/src/libs/engine/src/collab/replica.d.ts +188 -0
  118. package/src/libs/engine/src/collab/replica.js +526 -0
  119. package/src/libs/engine/src/collab/undo.d.ts +106 -0
  120. package/src/libs/engine/src/collab/undo.js +388 -0
  121. package/src/libs/engine/src/commands/Command.d.ts +66 -0
  122. package/src/libs/engine/src/commands/Command.js +64 -0
  123. package/src/libs/engine/src/commands/CommandManager.d.ts +161 -0
  124. package/src/libs/engine/src/commands/CommandManager.js +417 -0
  125. package/src/libs/engine/src/commands/basic/AddGroupCommand.d.ts +13 -0
  126. package/src/libs/engine/src/commands/basic/AddGroupCommand.js +50 -0
  127. package/src/libs/engine/src/commands/basic/AddLinkCommand.d.ts +13 -0
  128. package/src/libs/engine/src/commands/basic/AddLinkCommand.js +50 -0
  129. package/src/libs/engine/src/commands/basic/AddNodeCommand.d.ts +13 -0
  130. package/src/libs/engine/src/commands/basic/AddNodeCommand.js +65 -0
  131. package/src/libs/engine/src/commands/basic/AddToGroupCommand.d.ts +12 -0
  132. package/src/libs/engine/src/commands/basic/AddToGroupCommand.js +73 -0
  133. package/src/libs/engine/src/commands/basic/AlignCommands.d.ts +42 -0
  134. package/src/libs/engine/src/commands/basic/AlignCommands.js +138 -0
  135. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.d.ts +14 -0
  136. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js +70 -0
  137. package/src/libs/engine/src/commands/basic/CopyCommand.d.ts +29 -0
  138. package/src/libs/engine/src/commands/basic/CopyCommand.js +131 -0
  139. package/src/libs/engine/src/commands/basic/CutCommand.d.ts +49 -0
  140. package/src/libs/engine/src/commands/basic/CutCommand.js +68 -0
  141. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.d.ts +58 -0
  142. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js +309 -0
  143. package/src/libs/engine/src/commands/basic/DuplicateCommand.d.ts +31 -0
  144. package/src/libs/engine/src/commands/basic/DuplicateCommand.js +232 -0
  145. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.d.ts +12 -0
  146. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js +69 -0
  147. package/src/libs/engine/src/commands/basic/MoveGroupCommand.d.ts +46 -0
  148. package/src/libs/engine/src/commands/basic/MoveGroupCommand.js +77 -0
  149. package/src/libs/engine/src/commands/basic/MoveNodeCommand.d.ts +30 -0
  150. package/src/libs/engine/src/commands/basic/MoveNodeCommand.js +87 -0
  151. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.d.ts +39 -0
  152. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js +120 -0
  153. package/src/libs/engine/src/commands/basic/PasteCommand.d.ts +33 -0
  154. package/src/libs/engine/src/commands/basic/PasteCommand.js +228 -0
  155. package/src/libs/engine/src/commands/basic/PortCommands.d.ts +22 -0
  156. package/src/libs/engine/src/commands/basic/PortCommands.js +85 -0
  157. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.d.ts +15 -0
  158. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js +59 -0
  159. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.d.ts +12 -0
  160. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js +64 -0
  161. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.d.ts +12 -0
  162. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js +56 -0
  163. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.d.ts +12 -0
  164. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js +57 -0
  165. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.d.ts +23 -0
  166. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js +108 -0
  167. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.d.ts +16 -0
  168. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js +81 -0
  169. package/src/libs/engine/src/commands/basic/RotateNodeCommand.d.ts +37 -0
  170. package/src/libs/engine/src/commands/basic/RotateNodeCommand.js +88 -0
  171. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.d.ts +14 -0
  172. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js +74 -0
  173. package/src/libs/engine/src/commands/basic/SetGridItemCommand.d.ts +14 -0
  174. package/src/libs/engine/src/commands/basic/SetGridItemCommand.js +74 -0
  175. package/src/libs/engine/src/commands/basic/SetLayoutCommand.d.ts +16 -0
  176. package/src/libs/engine/src/commands/basic/SetLayoutCommand.js +80 -0
  177. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.d.ts +28 -0
  178. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js +83 -0
  179. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.d.ts +24 -0
  180. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js +81 -0
  181. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.d.ts +14 -0
  182. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js +75 -0
  183. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.d.ts +14 -0
  184. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js +77 -0
  185. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.d.ts +32 -0
  186. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js +87 -0
  187. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.d.ts +14 -0
  188. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js +93 -0
  189. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.d.ts +26 -0
  190. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js +81 -0
  191. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.d.ts +14 -0
  192. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js +69 -0
  193. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.d.ts +15 -0
  194. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js +88 -0
  195. package/src/libs/engine/src/commands/basic/SetParentCommand.d.ts +13 -0
  196. package/src/libs/engine/src/commands/basic/SetParentCommand.js +109 -0
  197. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.d.ts +34 -0
  198. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js +86 -0
  199. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.d.ts +31 -0
  200. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js +88 -0
  201. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.d.ts +15 -0
  202. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js +72 -0
  203. package/src/libs/engine/src/commands/basic/index.d.ts +41 -0
  204. package/src/libs/engine/src/commands/basic/index.js +52 -0
  205. package/src/libs/engine/src/commands/basic/remapNodePortIds.d.ts +23 -0
  206. package/src/libs/engine/src/commands/basic/remapNodePortIds.js +46 -0
  207. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.d.ts +31 -0
  208. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js +49 -0
  209. package/src/libs/engine/src/commands/composite/BatchCommand.d.ts +19 -0
  210. package/src/libs/engine/src/commands/composite/BatchCommand.js +61 -0
  211. package/src/libs/engine/src/commands/composite/MacroCommand.d.ts +35 -0
  212. package/src/libs/engine/src/commands/composite/MacroCommand.js +87 -0
  213. package/src/libs/engine/src/commands/composite/index.d.ts +2 -0
  214. package/src/libs/engine/src/commands/composite/index.js +7 -0
  215. package/src/libs/engine/src/commands/index.d.ts +4 -0
  216. package/src/libs/engine/src/commands/index.js +9 -0
  217. package/src/libs/engine/src/comments/comment-store.d.ts +238 -0
  218. package/src/libs/engine/src/comments/comment-store.js +538 -0
  219. package/src/libs/engine/src/comments/index.d.ts +4 -0
  220. package/src/libs/engine/src/comments/index.js +31 -0
  221. package/src/libs/engine/src/comments/mentions.d.ts +52 -0
  222. package/src/libs/engine/src/comments/mentions.js +94 -0
  223. package/src/libs/engine/src/comments/read-state.d.ts +37 -0
  224. package/src/libs/engine/src/comments/read-state.js +105 -0
  225. package/src/libs/engine/src/comments/types.d.ts +154 -0
  226. package/src/libs/engine/src/comments/types.js +107 -0
  227. package/src/libs/engine/src/config/InteractionConfig.d.ts +330 -0
  228. package/src/libs/engine/src/config/InteractionConfig.js +154 -0
  229. package/src/libs/engine/src/config/index.d.ts +1 -0
  230. package/src/libs/engine/src/config/index.js +6 -0
  231. package/src/libs/engine/src/dsl/DSL.d.ts +197 -0
  232. package/src/libs/engine/src/dsl/DSL.js +564 -0
  233. package/src/libs/engine/src/dsl/advanced/StyleParser.d.ts +75 -0
  234. package/src/libs/engine/src/dsl/advanced/StyleParser.js +166 -0
  235. package/src/libs/engine/src/dsl/advanced/TemplateParser.d.ts +88 -0
  236. package/src/libs/engine/src/dsl/advanced/TemplateParser.js +226 -0
  237. package/src/libs/engine/src/dsl/advanced/index.d.ts +9 -0
  238. package/src/libs/engine/src/dsl/advanced/index.js +13 -0
  239. package/src/libs/engine/src/dsl/detector/LayoutDetector.d.ts +80 -0
  240. package/src/libs/engine/src/dsl/detector/LayoutDetector.js +333 -0
  241. package/src/libs/engine/src/dsl/extended/BPMNGenerator.d.ts +38 -0
  242. package/src/libs/engine/src/dsl/extended/BPMNGenerator.js +90 -0
  243. package/src/libs/engine/src/dsl/extended/BPMNParser.d.ts +83 -0
  244. package/src/libs/engine/src/dsl/extended/BPMNParser.js +198 -0
  245. package/src/libs/engine/src/dsl/extended/ERDGenerator.d.ts +38 -0
  246. package/src/libs/engine/src/dsl/extended/ERDGenerator.js +126 -0
  247. package/src/libs/engine/src/dsl/extended/ERDParser.d.ts +81 -0
  248. package/src/libs/engine/src/dsl/extended/ERDParser.js +161 -0
  249. package/src/libs/engine/src/dsl/extended/ERDTransformer.d.ts +43 -0
  250. package/src/libs/engine/src/dsl/extended/ERDTransformer.js +105 -0
  251. package/src/libs/engine/src/dsl/extended/UMLGenerator.d.ts +42 -0
  252. package/src/libs/engine/src/dsl/extended/UMLGenerator.js +157 -0
  253. package/src/libs/engine/src/dsl/extended/UMLParser.d.ts +99 -0
  254. package/src/libs/engine/src/dsl/extended/UMLParser.js +200 -0
  255. package/src/libs/engine/src/dsl/extended/index.d.ts +13 -0
  256. package/src/libs/engine/src/dsl/extended/index.js +27 -0
  257. package/src/libs/engine/src/dsl/generator/DSLFormatter.d.ts +87 -0
  258. package/src/libs/engine/src/dsl/generator/DSLFormatter.js +261 -0
  259. package/src/libs/engine/src/dsl/generator/DSLGenerator.d.ts +96 -0
  260. package/src/libs/engine/src/dsl/generator/DSLGenerator.js +328 -0
  261. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.d.ts +111 -0
  262. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js +361 -0
  263. package/src/libs/engine/src/dsl/index.d.ts +35 -0
  264. package/src/libs/engine/src/dsl/index.js +64 -0
  265. package/src/libs/engine/src/dsl/lexer/Lexer.d.ts +117 -0
  266. package/src/libs/engine/src/dsl/lexer/Lexer.js +521 -0
  267. package/src/libs/engine/src/dsl/mermaid/MermaidClass.d.ts +136 -0
  268. package/src/libs/engine/src/dsl/mermaid/MermaidClass.js +429 -0
  269. package/src/libs/engine/src/dsl/mermaid/MermaidER.d.ts +118 -0
  270. package/src/libs/engine/src/dsl/mermaid/MermaidER.js +338 -0
  271. package/src/libs/engine/src/dsl/mermaid/MermaidState.d.ts +89 -0
  272. package/src/libs/engine/src/dsl/mermaid/MermaidState.js +613 -0
  273. package/src/libs/engine/src/dsl/mermaid/index.d.ts +10 -0
  274. package/src/libs/engine/src/dsl/mermaid/index.js +33 -0
  275. package/src/libs/engine/src/dsl/mermaid/layout.d.ts +70 -0
  276. package/src/libs/engine/src/dsl/mermaid/layout.js +162 -0
  277. package/src/libs/engine/src/dsl/mermaid/lines.d.ts +25 -0
  278. package/src/libs/engine/src/dsl/mermaid/lines.js +74 -0
  279. package/src/libs/engine/src/dsl/parser/Parser.d.ts +131 -0
  280. package/src/libs/engine/src/dsl/parser/Parser.js +725 -0
  281. package/src/libs/engine/src/dsl/sync/BidirectionalSync.d.ts +154 -0
  282. package/src/libs/engine/src/dsl/sync/BidirectionalSync.js +389 -0
  283. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.d.ts +128 -0
  284. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js +244 -0
  285. package/src/libs/engine/src/dsl/sync/LayoutApplicator.d.ts +140 -0
  286. package/src/libs/engine/src/dsl/sync/LayoutApplicator.js +271 -0
  287. package/src/libs/engine/src/dsl/sync/SyncStateManager.d.ts +145 -0
  288. package/src/libs/engine/src/dsl/sync/SyncStateManager.js +253 -0
  289. package/src/libs/engine/src/dsl/sync/index.d.ts +13 -0
  290. package/src/libs/engine/src/dsl/sync/index.js +21 -0
  291. package/src/libs/engine/src/dsl/transformer/ASTTransformer.d.ts +150 -0
  292. package/src/libs/engine/src/dsl/transformer/ASTTransformer.js +605 -0
  293. package/src/libs/engine/src/dsl/types/ASTNode.d.ts +159 -0
  294. package/src/libs/engine/src/dsl/types/ASTNode.js +31 -0
  295. package/src/libs/engine/src/dsl/types/Token.d.ts +79 -0
  296. package/src/libs/engine/src/dsl/types/Token.js +84 -0
  297. package/src/libs/engine/src/engine/DiagramEngine.d.ts +917 -0
  298. package/src/libs/engine/src/engine/DiagramEngine.js +2190 -0
  299. package/src/libs/engine/src/engine/DiagramMode.d.ts +51 -0
  300. package/src/libs/engine/src/engine/DiagramMode.js +53 -0
  301. package/src/libs/engine/src/engine/DiagramModeTypes.d.ts +73 -0
  302. package/src/libs/engine/src/engine/DiagramModeTypes.js +4 -0
  303. package/src/libs/engine/src/engine/ModeManager.d.ts +155 -0
  304. package/src/libs/engine/src/engine/ModeManager.js +387 -0
  305. package/src/libs/engine/src/engine/index.d.ts +2 -0
  306. package/src/libs/engine/src/engine/index.js +7 -0
  307. package/src/libs/engine/src/events/EventBus.d.ts +106 -0
  308. package/src/libs/engine/src/events/EventBus.js +226 -0
  309. package/src/libs/engine/src/events/index.d.ts +1 -0
  310. package/src/libs/engine/src/events/index.js +6 -0
  311. package/src/libs/engine/src/index.d.ts +43 -0
  312. package/src/libs/engine/src/index.js +142 -0
  313. package/src/libs/engine/src/interaction/GroupCollapseService.d.ts +53 -0
  314. package/src/libs/engine/src/interaction/GroupCollapseService.js +274 -0
  315. package/src/libs/engine/src/interaction/GroupMembershipService.d.ts +107 -0
  316. package/src/libs/engine/src/interaction/GroupMembershipService.js +245 -0
  317. package/src/libs/engine/src/interaction/SemanticMembershipService.d.ts +28 -0
  318. package/src/libs/engine/src/interaction/SemanticMembershipService.js +168 -0
  319. package/src/libs/engine/src/interaction/SwimlaneService.d.ts +62 -0
  320. package/src/libs/engine/src/interaction/SwimlaneService.js +180 -0
  321. package/src/libs/engine/src/interaction/index.d.ts +4 -0
  322. package/src/libs/engine/src/interaction/index.js +9 -0
  323. package/src/libs/engine/src/interop/drawio/importDrawio.d.ts +52 -0
  324. package/src/libs/engine/src/interop/drawio/importDrawio.js +940 -0
  325. package/src/libs/engine/src/interop/drawio/index.d.ts +1 -0
  326. package/src/libs/engine/src/interop/drawio/index.js +12 -0
  327. package/src/libs/engine/src/interop/drawio/xml.d.ts +26 -0
  328. package/src/libs/engine/src/interop/drawio/xml.js +213 -0
  329. package/src/libs/engine/src/layout/CompoundLayoutService.d.ts +121 -0
  330. package/src/libs/engine/src/layout/CompoundLayoutService.js +616 -0
  331. package/src/libs/engine/src/layout/ILayoutAlgorithm.d.ts +120 -0
  332. package/src/libs/engine/src/layout/ILayoutAlgorithm.js +88 -0
  333. package/src/libs/engine/src/layout/LayoutManager.d.ts +155 -0
  334. package/src/libs/engine/src/layout/LayoutManager.js +640 -0
  335. package/src/libs/engine/src/layout/SmartSpacingCalculator.d.ts +62 -0
  336. package/src/libs/engine/src/layout/SmartSpacingCalculator.js +134 -0
  337. package/src/libs/engine/src/layout/ViewportTransform.d.ts +55 -0
  338. package/src/libs/engine/src/layout/ViewportTransform.js +118 -0
  339. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.d.ts +34 -0
  340. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js +317 -0
  341. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.d.ts +56 -0
  342. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js +223 -0
  343. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.d.ts +60 -0
  344. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js +307 -0
  345. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.d.ts +62 -0
  346. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js +324 -0
  347. package/src/libs/engine/src/layout/community-layout-adapter.d.ts +107 -0
  348. package/src/libs/engine/src/layout/community-layout-adapter.js +486 -0
  349. package/src/libs/engine/src/layout/component-packing.d.ts +98 -0
  350. package/src/libs/engine/src/layout/component-packing.js +307 -0
  351. package/src/libs/engine/src/layout/dagre-layout-adapter.d.ts +122 -0
  352. package/src/libs/engine/src/layout/dagre-layout-adapter.js +697 -0
  353. package/src/libs/engine/src/layout/edge-bundling.interface.d.ts +159 -0
  354. package/src/libs/engine/src/layout/edge-bundling.interface.js +379 -0
  355. package/src/libs/engine/src/layout/elk-layout-adapter.d.ts +121 -0
  356. package/src/libs/engine/src/layout/elk-layout-adapter.js +586 -0
  357. package/src/libs/engine/src/layout/elk-loader.d.ts +1 -0
  358. package/src/libs/engine/src/layout/elk-loader.js +24 -0
  359. package/src/libs/engine/src/layout/force-layout-adapter.d.ts +167 -0
  360. package/src/libs/engine/src/layout/force-layout-adapter.js +790 -0
  361. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.d.ts +323 -0
  362. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js +685 -0
  363. package/src/libs/engine/src/layout/incremental/mental-map.d.ts +98 -0
  364. package/src/libs/engine/src/layout/incremental/mental-map.js +221 -0
  365. package/src/libs/engine/src/layout/incremental-layout.interface.d.ts +145 -0
  366. package/src/libs/engine/src/layout/incremental-layout.interface.js +300 -0
  367. package/src/libs/engine/src/layout/index.d.ts +83 -0
  368. package/src/libs/engine/src/layout/index.js +116 -0
  369. package/src/libs/engine/src/layout/layout-adapter.interface.d.ts +185 -0
  370. package/src/libs/engine/src/layout/layout-adapter.interface.js +10 -0
  371. package/src/libs/engine/src/layout/layout-auto-select.d.ts +160 -0
  372. package/src/libs/engine/src/layout/layout-auto-select.js +621 -0
  373. package/src/libs/engine/src/layout/layout-constraints.interface.d.ts +117 -0
  374. package/src/libs/engine/src/layout/layout-constraints.interface.js +138 -0
  375. package/src/libs/engine/src/layout/layout-graph.d.ts +70 -0
  376. package/src/libs/engine/src/layout/layout-graph.js +119 -0
  377. package/src/libs/engine/src/layout/layout-history.d.ts +147 -0
  378. package/src/libs/engine/src/layout/layout-history.js +258 -0
  379. package/src/libs/engine/src/layout/layout-host.d.ts +172 -0
  380. package/src/libs/engine/src/layout/layout-host.js +523 -0
  381. package/src/libs/engine/src/layout/layout-presets.d.ts +91 -0
  382. package/src/libs/engine/src/layout/layout-presets.js +333 -0
  383. package/src/libs/engine/src/layout/layout-quality-extended.d.ts +66 -0
  384. package/src/libs/engine/src/layout/layout-quality-extended.js +246 -0
  385. package/src/libs/engine/src/layout/layout-quality-metrics.d.ts +127 -0
  386. package/src/libs/engine/src/layout/layout-quality-metrics.js +466 -0
  387. package/src/libs/engine/src/layout/layout-registry.d.ts +309 -0
  388. package/src/libs/engine/src/layout/layout-registry.js +414 -0
  389. package/src/libs/engine/src/layout/layout.service.d.ts +100 -0
  390. package/src/libs/engine/src/layout/layout.service.js +216 -0
  391. package/src/libs/engine/src/layout/overlap-removal.d.ts +20 -0
  392. package/src/libs/engine/src/layout/overlap-removal.js +117 -0
  393. package/src/libs/engine/src/layout/port-aware-layout.interface.d.ts +232 -0
  394. package/src/libs/engine/src/layout/port-aware-layout.interface.js +413 -0
  395. package/src/libs/engine/src/layout/port-label-bridge.d.ts +77 -0
  396. package/src/libs/engine/src/layout/port-label-bridge.js +250 -0
  397. package/src/libs/engine/src/layout/portfolio-layouts.d.ts +53 -0
  398. package/src/libs/engine/src/layout/portfolio-layouts.js +388 -0
  399. package/src/libs/engine/src/layout/rng.d.ts +34 -0
  400. package/src/libs/engine/src/layout/rng.js +71 -0
  401. package/src/libs/engine/src/layout/spectral-layout-adapter.d.ts +72 -0
  402. package/src/libs/engine/src/layout/spectral-layout-adapter.js +379 -0
  403. package/src/libs/engine/src/layout/steppable-layout.d.ts +40 -0
  404. package/src/libs/engine/src/layout/steppable-layout.js +34 -0
  405. package/src/libs/engine/src/layout/subgraph-layout.interface.d.ts +269 -0
  406. package/src/libs/engine/src/layout/subgraph-layout.interface.js +452 -0
  407. package/src/libs/engine/src/layout/sugiyama/layered-layout.d.ts +9 -0
  408. package/src/libs/engine/src/layout/sugiyama/layered-layout.js +83 -0
  409. package/src/libs/engine/src/layout/sugiyama/sugiyama.d.ts +91 -0
  410. package/src/libs/engine/src/layout/sugiyama/sugiyama.js +797 -0
  411. package/src/libs/engine/src/layout/tree-layout.d.ts +43 -0
  412. package/src/libs/engine/src/layout/tree-layout.js +426 -0
  413. package/src/libs/engine/src/layout/types.d.ts +263 -0
  414. package/src/libs/engine/src/layout/types.js +6 -0
  415. package/src/libs/engine/src/lib/performance/mobile-performance.service.d.ts +43 -0
  416. package/src/libs/engine/src/lib/performance/mobile-performance.service.js +95 -0
  417. package/src/libs/engine/src/models/DiagramEntity.d.ts +174 -0
  418. package/src/libs/engine/src/models/DiagramEntity.js +366 -0
  419. package/src/libs/engine/src/models/DiagramModel.d.ts +960 -0
  420. package/src/libs/engine/src/models/DiagramModel.js +2416 -0
  421. package/src/libs/engine/src/models/GroupModel.d.ts +573 -0
  422. package/src/libs/engine/src/models/GroupModel.js +1373 -0
  423. package/src/libs/engine/src/models/LinkModel.d.ts +395 -0
  424. package/src/libs/engine/src/models/LinkModel.js +1045 -0
  425. package/src/libs/engine/src/models/NodeModel.d.ts +666 -0
  426. package/src/libs/engine/src/models/NodeModel.js +1512 -0
  427. package/src/libs/engine/src/models/PortModel.d.ts +292 -0
  428. package/src/libs/engine/src/models/PortModel.js +637 -0
  429. package/src/libs/engine/src/models/StrokeModel.d.ts +160 -0
  430. package/src/libs/engine/src/models/StrokeModel.js +387 -0
  431. package/src/libs/engine/src/models/index.d.ts +7 -0
  432. package/src/libs/engine/src/models/index.js +12 -0
  433. package/src/libs/engine/src/models/readonly-lock.d.ts +108 -0
  434. package/src/libs/engine/src/models/readonly-lock.js +125 -0
  435. package/src/libs/engine/src/performance/LRUCache.d.ts +78 -0
  436. package/src/libs/engine/src/performance/LRUCache.js +179 -0
  437. package/src/libs/engine/src/performance/PerformanceMonitor.d.ts +47 -0
  438. package/src/libs/engine/src/performance/PerformanceMonitor.js +112 -0
  439. package/src/libs/engine/src/performance/SpatialIndex.d.ts +157 -0
  440. package/src/libs/engine/src/performance/SpatialIndex.js +306 -0
  441. package/src/libs/engine/src/performance/index.d.ts +2 -0
  442. package/src/libs/engine/src/performance/index.js +7 -0
  443. package/src/libs/engine/src/plugins/PluginManager.d.ts +95 -0
  444. package/src/libs/engine/src/plugins/PluginManager.js +388 -0
  445. package/src/libs/engine/src/plugins/index.d.ts +1 -0
  446. package/src/libs/engine/src/plugins/index.js +6 -0
  447. package/src/libs/engine/src/ports/connection-rules.d.ts +32 -0
  448. package/src/libs/engine/src/ports/connection-rules.js +131 -0
  449. package/src/libs/engine/src/ports/dynamic-ports.d.ts +27 -0
  450. package/src/libs/engine/src/ports/dynamic-ports.js +135 -0
  451. package/src/libs/engine/src/ports/index.d.ts +5 -0
  452. package/src/libs/engine/src/ports/index.js +16 -0
  453. package/src/libs/engine/src/ports/port-groups.d.ts +43 -0
  454. package/src/libs/engine/src/ports/port-groups.js +185 -0
  455. package/src/libs/engine/src/ports/port-type-registry.d.ts +34 -0
  456. package/src/libs/engine/src/ports/port-type-registry.js +87 -0
  457. package/src/libs/engine/src/ports/port-types.d.ts +266 -0
  458. package/src/libs/engine/src/ports/port-types.js +30 -0
  459. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.d.ts +136 -0
  460. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js +292 -0
  461. package/src/libs/engine/src/rendering/LemonadeJSRenderer.d.ts +160 -0
  462. package/src/libs/engine/src/rendering/LemonadeJSRenderer.js +362 -0
  463. package/src/libs/engine/src/rendering/index.d.ts +2 -0
  464. package/src/libs/engine/src/rendering/index.js +7 -0
  465. package/src/libs/engine/src/routing/LiveReroutingEngine.d.ts +75 -0
  466. package/src/libs/engine/src/routing/LiveReroutingEngine.js +173 -0
  467. package/src/libs/engine/src/routing/ObstacleIndex.d.ts +42 -0
  468. package/src/libs/engine/src/routing/ObstacleIndex.js +215 -0
  469. package/src/libs/engine/src/routing/ObstacleMap.d.ts +68 -0
  470. package/src/libs/engine/src/routing/ObstacleMap.js +312 -0
  471. package/src/libs/engine/src/routing/ObstacleMapBuilder.d.ts +28 -0
  472. package/src/libs/engine/src/routing/ObstacleMapBuilder.js +76 -0
  473. package/src/libs/engine/src/routing/PathSimplifier.d.ts +119 -0
  474. package/src/libs/engine/src/routing/PathSimplifier.js +224 -0
  475. package/src/libs/engine/src/routing/RoutingEngine.d.ts +118 -0
  476. package/src/libs/engine/src/routing/RoutingEngine.js +546 -0
  477. package/src/libs/engine/src/routing/algorithms/AStarRouter.d.ts +90 -0
  478. package/src/libs/engine/src/routing/algorithms/AStarRouter.js +331 -0
  479. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.d.ts +74 -0
  480. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js +297 -0
  481. package/src/libs/engine/src/routing/algorithms/ElkRouter.d.ts +34 -0
  482. package/src/libs/engine/src/routing/algorithms/ElkRouter.js +210 -0
  483. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.d.ts +18 -0
  484. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js +224 -0
  485. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.d.ts +173 -0
  486. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js +1092 -0
  487. package/src/libs/engine/src/routing/algorithms/StraightRouter.d.ts +8 -0
  488. package/src/libs/engine/src/routing/algorithms/StraightRouter.js +53 -0
  489. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.d.ts +59 -0
  490. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js +258 -0
  491. package/src/libs/engine/src/routing/global/GlobalRouteSolver.d.ts +64 -0
  492. package/src/libs/engine/src/routing/global/GlobalRouteSolver.js +334 -0
  493. package/src/libs/engine/src/routing/global/solver-host.d.ts +65 -0
  494. package/src/libs/engine/src/routing/global/solver-host.js +87 -0
  495. package/src/libs/engine/src/routing/index.d.ts +15 -0
  496. package/src/libs/engine/src/routing/index.js +20 -0
  497. package/src/libs/engine/src/routing/types.d.ts +161 -0
  498. package/src/libs/engine/src/routing/types.js +4 -0
  499. package/src/libs/engine/src/selection/SelectionManager.d.ts +161 -0
  500. package/src/libs/engine/src/selection/SelectionManager.js +483 -0
  501. package/src/libs/engine/src/selection/index.d.ts +1 -0
  502. package/src/libs/engine/src/selection/index.js +6 -0
  503. package/src/libs/engine/src/serialization/DiagramMigrations.d.ts +41 -0
  504. package/src/libs/engine/src/serialization/DiagramMigrations.js +124 -0
  505. package/src/libs/engine/src/serialization/DiagramValidator.d.ts +20 -0
  506. package/src/libs/engine/src/serialization/DiagramValidator.js +136 -0
  507. package/src/libs/engine/src/serialization/DocumentEnvelope.d.ts +53 -0
  508. package/src/libs/engine/src/serialization/DocumentEnvelope.js +111 -0
  509. package/src/libs/engine/src/serialization/Incremental.d.ts +77 -0
  510. package/src/libs/engine/src/serialization/Incremental.js +227 -0
  511. package/src/libs/engine/src/serialization/Serializer.d.ts +29 -0
  512. package/src/libs/engine/src/serialization/Serializer.js +45 -0
  513. package/src/libs/engine/src/serialization/Subgraph.d.ts +51 -0
  514. package/src/libs/engine/src/serialization/Subgraph.js +172 -0
  515. package/src/libs/engine/src/serialization/TextFormat.d.ts +71 -0
  516. package/src/libs/engine/src/serialization/TextFormat.js +261 -0
  517. package/src/libs/engine/src/state/ConnectionStateManager.d.ts +178 -0
  518. package/src/libs/engine/src/state/ConnectionStateManager.js +319 -0
  519. package/src/libs/engine/src/state/DiagramStore.d.ts +134 -0
  520. package/src/libs/engine/src/state/DiagramStore.js +372 -0
  521. package/src/libs/engine/src/state/index.d.ts +2 -0
  522. package/src/libs/engine/src/state/index.js +7 -0
  523. package/src/libs/engine/src/sync/awareness.d.ts +91 -0
  524. package/src/libs/engine/src/sync/awareness.js +221 -0
  525. package/src/libs/engine/src/sync/batcher.d.ts +84 -0
  526. package/src/libs/engine/src/sync/batcher.js +0 -0
  527. package/src/libs/engine/src/sync/causal-buffer.d.ts +81 -0
  528. package/src/libs/engine/src/sync/causal-buffer.js +199 -0
  529. package/src/libs/engine/src/sync/index.d.ts +20 -0
  530. package/src/libs/engine/src/sync/index.js +41 -0
  531. package/src/libs/engine/src/sync/protocol.d.ts +74 -0
  532. package/src/libs/engine/src/sync/protocol.js +39 -0
  533. package/src/libs/engine/src/sync/sync-adapter.d.ts +243 -0
  534. package/src/libs/engine/src/sync/sync-adapter.js +524 -0
  535. package/src/libs/engine/src/sync/transport.d.ts +30 -0
  536. package/src/libs/engine/src/sync/transport.js +28 -0
  537. package/src/libs/engine/src/sync/transports/broadcast-channel.d.ts +39 -0
  538. package/src/libs/engine/src/sync/transports/broadcast-channel.js +117 -0
  539. package/src/libs/engine/src/sync/transports/memory.d.ts +38 -0
  540. package/src/libs/engine/src/sync/transports/memory.js +111 -0
  541. package/src/libs/engine/src/sync/transports/unreliable.d.ts +59 -0
  542. package/src/libs/engine/src/sync/transports/unreliable.js +153 -0
  543. package/src/libs/engine/src/sync/transports/websocket.d.ts +60 -0
  544. package/src/libs/engine/src/sync/transports/websocket.js +210 -0
  545. package/src/libs/engine/src/sync/version-vector.d.ts +47 -0
  546. package/src/libs/engine/src/sync/version-vector.js +218 -0
  547. package/src/libs/engine/src/template-library/common-templates.d.ts +46 -0
  548. package/src/libs/engine/src/template-library/common-templates.js +395 -0
  549. package/src/libs/engine/src/template-library/data-viz-templates.d.ts +52 -0
  550. package/src/libs/engine/src/template-library/data-viz-templates.js +471 -0
  551. package/src/libs/engine/src/template-library/erd-templates.d.ts +71 -0
  552. package/src/libs/engine/src/template-library/erd-templates.js +773 -0
  553. package/src/libs/engine/src/template-library/index.d.ts +141 -0
  554. package/src/libs/engine/src/template-library/index.js +271 -0
  555. package/src/libs/engine/src/template-library/integration.d.ts +80 -0
  556. package/src/libs/engine/src/template-library/integration.js +141 -0
  557. package/src/libs/engine/src/template-library/workflow-templates.d.ts +52 -0
  558. package/src/libs/engine/src/template-library/workflow-templates.js +438 -0
  559. package/src/libs/engine/src/templates/NodeFactory.d.ts +118 -0
  560. package/src/libs/engine/src/templates/NodeFactory.js +436 -0
  561. package/src/libs/engine/src/templates/NodeTemplate.d.ts +342 -0
  562. package/src/libs/engine/src/templates/NodeTemplate.js +13 -0
  563. package/src/libs/engine/src/templates/TemplateLoader.d.ts +46 -0
  564. package/src/libs/engine/src/templates/TemplateLoader.js +114 -0
  565. package/src/libs/engine/src/templates/TemplateRegistry.d.ts +70 -0
  566. package/src/libs/engine/src/templates/TemplateRegistry.js +128 -0
  567. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.d.ts +11 -0
  568. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js +123 -0
  569. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.d.ts +11 -0
  570. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js +123 -0
  571. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.d.ts +11 -0
  572. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js +123 -0
  573. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.d.ts +11 -0
  574. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js +124 -0
  575. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.d.ts +11 -0
  576. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js +123 -0
  577. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.d.ts +11 -0
  578. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js +124 -0
  579. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.d.ts +11 -0
  580. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js +123 -0
  581. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.d.ts +11 -0
  582. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js +122 -0
  583. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.d.ts +11 -0
  584. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js +125 -0
  585. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.d.ts +11 -0
  586. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js +123 -0
  587. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.d.ts +11 -0
  588. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js +123 -0
  589. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.d.ts +11 -0
  590. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js +123 -0
  591. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.d.ts +11 -0
  592. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js +152 -0
  593. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.d.ts +11 -0
  594. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js +123 -0
  595. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.d.ts +11 -0
  596. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js +123 -0
  597. package/src/libs/engine/src/templates/generated/bpmn/index.d.ts +15 -0
  598. package/src/libs/engine/src/templates/generated/bpmn/index.js +34 -0
  599. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.d.ts +11 -0
  600. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js +152 -0
  601. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.d.ts +11 -0
  602. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js +122 -0
  603. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.d.ts +11 -0
  604. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js +151 -0
  605. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.d.ts +11 -0
  606. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js +122 -0
  607. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.d.ts +11 -0
  608. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js +122 -0
  609. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.d.ts +11 -0
  610. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js +123 -0
  611. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.d.ts +11 -0
  612. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js +149 -0
  613. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.d.ts +11 -0
  614. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js +123 -0
  615. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.d.ts +11 -0
  616. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js +122 -0
  617. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.d.ts +11 -0
  618. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js +122 -0
  619. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.d.ts +11 -0
  620. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js +122 -0
  621. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.d.ts +11 -0
  622. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js +123 -0
  623. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.d.ts +11 -0
  624. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js +121 -0
  625. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.d.ts +11 -0
  626. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js +123 -0
  627. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.d.ts +11 -0
  628. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js +123 -0
  629. package/src/libs/engine/src/templates/generated/erd/erd-table.template.d.ts +11 -0
  630. package/src/libs/engine/src/templates/generated/erd/erd-table.template.js +123 -0
  631. package/src/libs/engine/src/templates/generated/erd/erd-view.template.d.ts +11 -0
  632. package/src/libs/engine/src/templates/generated/erd/erd-view.template.js +123 -0
  633. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.d.ts +11 -0
  634. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js +149 -0
  635. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.d.ts +11 -0
  636. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js +122 -0
  637. package/src/libs/engine/src/templates/generated/erd/index.d.ts +19 -0
  638. package/src/libs/engine/src/templates/generated/erd/index.js +42 -0
  639. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.d.ts +11 -0
  640. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js +123 -0
  641. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.d.ts +11 -0
  642. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js +123 -0
  643. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.d.ts +11 -0
  644. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js +123 -0
  645. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.d.ts +11 -0
  646. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js +124 -0
  647. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.d.ts +11 -0
  648. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js +124 -0
  649. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.d.ts +11 -0
  650. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js +123 -0
  651. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.d.ts +11 -0
  652. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js +123 -0
  653. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.d.ts +11 -0
  654. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js +122 -0
  655. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.d.ts +11 -0
  656. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js +122 -0
  657. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.d.ts +11 -0
  658. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js +123 -0
  659. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.d.ts +11 -0
  660. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js +123 -0
  661. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.d.ts +11 -0
  662. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js +123 -0
  663. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.d.ts +11 -0
  664. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js +122 -0
  665. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.d.ts +11 -0
  666. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js +123 -0
  667. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.d.ts +11 -0
  668. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js +124 -0
  669. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.d.ts +11 -0
  670. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js +124 -0
  671. package/src/libs/engine/src/templates/generated/flowchart/index.d.ts +16 -0
  672. package/src/libs/engine/src/templates/generated/flowchart/index.js +36 -0
  673. package/src/libs/engine/src/templates/generated/index.d.ts +9 -0
  674. package/src/libs/engine/src/templates/generated/index.js +13 -0
  675. package/src/libs/engine/src/templates/generated/register.d.ts +23 -0
  676. package/src/libs/engine/src/templates/generated/register.js +31 -0
  677. package/src/libs/engine/src/templates/generated/uml/index.d.ts +30 -0
  678. package/src/libs/engine/src/templates/generated/uml/index.js +64 -0
  679. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.d.ts +11 -0
  680. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js +204 -0
  681. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.d.ts +11 -0
  682. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js +124 -0
  683. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.d.ts +11 -0
  684. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js +124 -0
  685. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.d.ts +11 -0
  686. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js +123 -0
  687. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.d.ts +11 -0
  688. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js +123 -0
  689. package/src/libs/engine/src/templates/generated/uml/uml-class.template.d.ts +11 -0
  690. package/src/libs/engine/src/templates/generated/uml/uml-class.template.js +204 -0
  691. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.d.ts +11 -0
  692. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js +122 -0
  693. package/src/libs/engine/src/templates/generated/uml/uml-component.template.d.ts +11 -0
  694. package/src/libs/engine/src/templates/generated/uml/uml-component.template.js +122 -0
  695. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.d.ts +11 -0
  696. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js +204 -0
  697. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.d.ts +11 -0
  698. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js +124 -0
  699. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.d.ts +11 -0
  700. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js +204 -0
  701. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.d.ts +11 -0
  702. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js +124 -0
  703. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.d.ts +11 -0
  704. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js +124 -0
  705. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.d.ts +11 -0
  706. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js +125 -0
  707. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.d.ts +11 -0
  708. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js +123 -0
  709. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.d.ts +11 -0
  710. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js +123 -0
  711. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.d.ts +11 -0
  712. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js +204 -0
  713. package/src/libs/engine/src/templates/generated/uml/uml-join.template.d.ts +11 -0
  714. package/src/libs/engine/src/templates/generated/uml/uml-join.template.js +125 -0
  715. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.d.ts +11 -0
  716. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js +123 -0
  717. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.d.ts +11 -0
  718. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js +122 -0
  719. package/src/libs/engine/src/templates/generated/uml/uml-node.template.d.ts +11 -0
  720. package/src/libs/engine/src/templates/generated/uml/uml-node.template.js +122 -0
  721. package/src/libs/engine/src/templates/generated/uml/uml-note.template.d.ts +11 -0
  722. package/src/libs/engine/src/templates/generated/uml/uml-note.template.js +123 -0
  723. package/src/libs/engine/src/templates/generated/uml/uml-object.template.d.ts +11 -0
  724. package/src/libs/engine/src/templates/generated/uml/uml-object.template.js +204 -0
  725. package/src/libs/engine/src/templates/generated/uml/uml-package.template.d.ts +11 -0
  726. package/src/libs/engine/src/templates/generated/uml/uml-package.template.js +123 -0
  727. package/src/libs/engine/src/templates/generated/uml/uml-part.template.d.ts +11 -0
  728. package/src/libs/engine/src/templates/generated/uml/uml-part.template.js +122 -0
  729. package/src/libs/engine/src/templates/generated/uml/uml-port.template.d.ts +11 -0
  730. package/src/libs/engine/src/templates/generated/uml/uml-port.template.js +123 -0
  731. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.d.ts +11 -0
  732. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js +204 -0
  733. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.d.ts +11 -0
  734. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js +123 -0
  735. package/src/libs/engine/src/templates/generated/uml/uml-state.template.d.ts +11 -0
  736. package/src/libs/engine/src/templates/generated/uml/uml-state.template.js +123 -0
  737. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.d.ts +11 -0
  738. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js +122 -0
  739. package/src/libs/engine/src/templates/index.d.ts +12 -0
  740. package/src/libs/engine/src/templates/index.js +27 -0
  741. package/src/libs/engine/src/templates/stencils.d.ts +45 -0
  742. package/src/libs/engine/src/templates/stencils.js +85 -0
  743. package/src/libs/engine/src/types/domain/bpmn.d.ts +25 -0
  744. package/src/libs/engine/src/types/domain/bpmn.js +313 -0
  745. package/src/libs/engine/src/types/domain/erd.d.ts +29 -0
  746. package/src/libs/engine/src/types/domain/erd.js +394 -0
  747. package/src/libs/engine/src/types/domain/flowchart.d.ts +26 -0
  748. package/src/libs/engine/src/types/domain/flowchart.js +434 -0
  749. package/src/libs/engine/src/types/domain/index.d.ts +4 -0
  750. package/src/libs/engine/src/types/domain/index.js +9 -0
  751. package/src/libs/engine/src/types/domain/uml.d.ts +40 -0
  752. package/src/libs/engine/src/types/domain/uml.js +758 -0
  753. package/src/libs/engine/src/types/event.types.d.ts +142 -0
  754. package/src/libs/engine/src/types/event.types.js +96 -0
  755. package/src/libs/engine/src/types/geometry.types.d.ts +84 -0
  756. package/src/libs/engine/src/types/geometry.types.js +16 -0
  757. package/src/libs/engine/src/types/index.d.ts +7 -0
  758. package/src/libs/engine/src/types/index.js +14 -0
  759. package/src/libs/engine/src/types/layout.types.d.ts +148 -0
  760. package/src/libs/engine/src/types/layout.types.js +28 -0
  761. package/src/libs/engine/src/types/model.types.d.ts +378 -0
  762. package/src/libs/engine/src/types/model.types.js +4 -0
  763. package/src/libs/engine/src/types/performance.types.d.ts +109 -0
  764. package/src/libs/engine/src/types/performance.types.js +122 -0
  765. package/src/libs/engine/src/types/plugin.types.d.ts +30 -0
  766. package/src/libs/engine/src/types/plugin.types.js +4 -0
  767. package/src/libs/engine/src/utils/deep-clone.d.ts +9 -0
  768. package/src/libs/engine/src/utils/deep-clone.js +123 -0
  769. package/src/libs/engine/src/utils/geometry.d.ts +45 -0
  770. package/src/libs/engine/src/utils/geometry.js +241 -0
  771. package/src/libs/engine/src/utils/id.d.ts +22 -0
  772. package/src/libs/engine/src/utils/id.js +44 -0
  773. package/src/libs/engine/src/utils/index.d.ts +3 -0
  774. package/src/libs/engine/src/utils/index.js +8 -0
  775. package/src/libs/engine/src/utils/transform.d.ts +84 -0
  776. package/src/libs/engine/src/utils/transform.js +200 -0
  777. package/src/libs/engine/src/validation/ConnectionGroupValidator.d.ts +22 -0
  778. package/src/libs/engine/src/validation/ConnectionGroupValidator.js +56 -0
  779. package/src/libs/engine/src/validation/TypeRegistry.d.ts +179 -0
  780. package/src/libs/engine/src/validation/TypeRegistry.js +358 -0
  781. package/src/libs/engine/src/validation/ValidationEngine.d.ts +79 -0
  782. package/src/libs/engine/src/validation/ValidationEngine.js +1150 -0
  783. package/src/libs/engine/src/validation/index.d.ts +3 -0
  784. package/src/libs/engine/src/validation/index.js +8 -0
  785. package/src/libs/renderer/src/a11y/diagram-outline.d.ts +93 -0
  786. package/src/libs/renderer/src/a11y/diagram-outline.js +0 -0
  787. package/src/libs/renderer/src/a11y/focus-containment.d.ts +90 -0
  788. package/src/libs/renderer/src/a11y/focus-containment.js +173 -0
  789. package/src/libs/renderer/src/a11y/graph-topology.d.ts +70 -0
  790. package/src/libs/renderer/src/a11y/graph-topology.js +0 -0
  791. package/src/libs/renderer/src/a11y/index.d.ts +26 -0
  792. package/src/libs/renderer/src/a11y/index.js +30 -0
  793. package/src/libs/renderer/src/a11y/live-region.d.ts +83 -0
  794. package/src/libs/renderer/src/a11y/live-region.js +170 -0
  795. package/src/libs/renderer/src/a11y/outline-view.d.ts +62 -0
  796. package/src/libs/renderer/src/a11y/outline-view.js +158 -0
  797. package/src/libs/renderer/src/a11y/reduced-motion.d.ts +48 -0
  798. package/src/libs/renderer/src/a11y/reduced-motion.js +223 -0
  799. package/src/libs/renderer/src/a11y/semantics.d.ts +76 -0
  800. package/src/libs/renderer/src/a11y/semantics.js +229 -0
  801. package/src/libs/renderer/src/canvas/canvas-context.d.ts +167 -0
  802. package/src/libs/renderer/src/canvas/canvas-context.js +267 -0
  803. package/src/libs/renderer/src/canvas/canvas-renderer.d.ts +194 -0
  804. package/src/libs/renderer/src/canvas/canvas-renderer.js +600 -0
  805. package/src/libs/renderer/src/canvas/dirty-region.d.ts +56 -0
  806. package/src/libs/renderer/src/canvas/dirty-region.js +171 -0
  807. package/src/libs/renderer/src/canvas/index.d.ts +16 -0
  808. package/src/libs/renderer/src/canvas/index.js +79 -0
  809. package/src/libs/renderer/src/canvas/path-geometry.d.ts +112 -0
  810. package/src/libs/renderer/src/canvas/path-geometry.js +673 -0
  811. package/src/libs/renderer/src/canvas/render-backend.d.ts +133 -0
  812. package/src/libs/renderer/src/canvas/render-backend.js +339 -0
  813. package/src/libs/renderer/src/canvas/style-resolution.d.ts +101 -0
  814. package/src/libs/renderer/src/canvas/style-resolution.js +466 -0
  815. package/src/libs/renderer/src/canvas/tier-policy.d.ts +33 -0
  816. package/src/libs/renderer/src/canvas/tier-policy.js +89 -0
  817. package/src/libs/renderer/src/canvas/vnode-painter.d.ts +154 -0
  818. package/src/libs/renderer/src/canvas/vnode-painter.js +649 -0
  819. package/src/libs/renderer/src/comments/comment-overlay.d.ts +56 -0
  820. package/src/libs/renderer/src/comments/comment-overlay.js +127 -0
  821. package/src/libs/renderer/src/comments/comment-panel.d.ts +45 -0
  822. package/src/libs/renderer/src/comments/comment-panel.js +287 -0
  823. package/src/libs/renderer/src/comments/comment-pins.d.ts +34 -0
  824. package/src/libs/renderer/src/comments/comment-pins.js +227 -0
  825. package/src/libs/renderer/src/comments/index.d.ts +3 -0
  826. package/src/libs/renderer/src/comments/index.js +17 -0
  827. package/src/libs/renderer/src/export/assets.d.ts +96 -0
  828. package/src/libs/renderer/src/export/assets.js +350 -0
  829. package/src/libs/renderer/src/export/batch.d.ts +49 -0
  830. package/src/libs/renderer/src/export/batch.js +95 -0
  831. package/src/libs/renderer/src/export/bounds.d.ts +81 -0
  832. package/src/libs/renderer/src/export/bounds.js +367 -0
  833. package/src/libs/renderer/src/export/capture-host.d.ts +39 -0
  834. package/src/libs/renderer/src/export/capture-host.js +1259 -0
  835. package/src/libs/renderer/src/export/custom-nodes.d.ts +88 -0
  836. package/src/libs/renderer/src/export/custom-nodes.js +237 -0
  837. package/src/libs/renderer/src/export/index.d.ts +14 -0
  838. package/src/libs/renderer/src/export/index.js +30 -0
  839. package/src/libs/renderer/src/export/node-raster.d.ts +60 -0
  840. package/src/libs/renderer/src/export/node-raster.js +161 -0
  841. package/src/libs/renderer/src/export/pagination.d.ts +116 -0
  842. package/src/libs/renderer/src/export/pagination.js +245 -0
  843. package/src/libs/renderer/src/export/pdf/flate.d.ts +13 -0
  844. package/src/libs/renderer/src/export/pdf/flate.js +287 -0
  845. package/src/libs/renderer/src/export/pdf/index.d.ts +4 -0
  846. package/src/libs/renderer/src/export/pdf/index.js +15 -0
  847. package/src/libs/renderer/src/export/pdf/pdf-export.d.ts +64 -0
  848. package/src/libs/renderer/src/export/pdf/pdf-export.js +1076 -0
  849. package/src/libs/renderer/src/export/pdf/pdf-path.d.ts +17 -0
  850. package/src/libs/renderer/src/export/pdf/pdf-path.js +85 -0
  851. package/src/libs/renderer/src/export/pdf/pdf-primitives.d.ts +115 -0
  852. package/src/libs/renderer/src/export/pdf/pdf-primitives.js +338 -0
  853. package/src/libs/renderer/src/export/pdf/png.d.ts +25 -0
  854. package/src/libs/renderer/src/export/pdf/png.js +596 -0
  855. package/src/libs/renderer/src/export/raster.d.ts +42 -0
  856. package/src/libs/renderer/src/export/raster.js +126 -0
  857. package/src/libs/renderer/src/export/round-trip.d.ts +83 -0
  858. package/src/libs/renderer/src/export/round-trip.js +432 -0
  859. package/src/libs/renderer/src/export/scope.d.ts +16 -0
  860. package/src/libs/renderer/src/export/scope.js +69 -0
  861. package/src/libs/renderer/src/export/style-flattener.d.ts +23 -0
  862. package/src/libs/renderer/src/export/style-flattener.js +144 -0
  863. package/src/libs/renderer/src/export/svg-export.d.ts +123 -0
  864. package/src/libs/renderer/src/export/svg-export.js +178 -0
  865. package/src/libs/renderer/src/export/vnode-serializer.d.ts +75 -0
  866. package/src/libs/renderer/src/export/vnode-serializer.js +344 -0
  867. package/src/libs/renderer/src/ext/capabilities.d.ts +178 -0
  868. package/src/libs/renderer/src/ext/capabilities.js +22 -0
  869. package/src/libs/renderer/src/ext/capability-factory.d.ts +44 -0
  870. package/src/libs/renderer/src/ext/capability-factory.js +194 -0
  871. package/src/libs/renderer/src/ext/components/attach.d.ts +66 -0
  872. package/src/libs/renderer/src/ext/components/attach.js +112 -0
  873. package/src/libs/renderer/src/ext/components/background.d.ts +84 -0
  874. package/src/libs/renderer/src/ext/components/background.js +202 -0
  875. package/src/libs/renderer/src/ext/components/controls.d.ts +49 -0
  876. package/src/libs/renderer/src/ext/components/controls.js +144 -0
  877. package/src/libs/renderer/src/ext/components/minimap.d.ts +78 -0
  878. package/src/libs/renderer/src/ext/components/minimap.js +326 -0
  879. package/src/libs/renderer/src/ext/diagram-registry.d.ts +109 -0
  880. package/src/libs/renderer/src/ext/diagram-registry.js +303 -0
  881. package/src/libs/renderer/src/ext/disposable.d.ts +51 -0
  882. package/src/libs/renderer/src/ext/disposable.js +104 -0
  883. package/src/libs/renderer/src/ext/extension-host.d.ts +144 -0
  884. package/src/libs/renderer/src/ext/extension-host.js +272 -0
  885. package/src/libs/renderer/src/ext/index.d.ts +62 -0
  886. package/src/libs/renderer/src/ext/index.js +91 -0
  887. package/src/libs/renderer/src/ext/link-pipeline.d.ts +195 -0
  888. package/src/libs/renderer/src/ext/link-pipeline.js +431 -0
  889. package/src/libs/renderer/src/ext/manifest.d.ts +73 -0
  890. package/src/libs/renderer/src/ext/manifest.js +149 -0
  891. package/src/libs/renderer/src/ext/node-component.d.ts +114 -0
  892. package/src/libs/renderer/src/ext/node-component.js +290 -0
  893. package/src/libs/renderer/src/ext/plugins-loader.d.ts +1 -0
  894. package/src/libs/renderer/src/ext/plugins-loader.js +18 -0
  895. package/src/libs/renderer/src/ext/portal.d.ts +129 -0
  896. package/src/libs/renderer/src/ext/portal.js +267 -0
  897. package/src/libs/renderer/src/ext/public-api.d.ts +101 -0
  898. package/src/libs/renderer/src/ext/public-api.js +201 -0
  899. package/src/libs/renderer/src/ext/registry-scope.d.ts +93 -0
  900. package/src/libs/renderer/src/ext/registry-scope.js +142 -0
  901. package/src/libs/renderer/src/ext/tools.d.ts +164 -0
  902. package/src/libs/renderer/src/ext/tools.js +170 -0
  903. package/src/libs/renderer/src/index.d.ts +34 -0
  904. package/src/libs/renderer/src/index.js +108 -0
  905. package/src/libs/renderer/src/instance/create-diagram.d.ts +385 -0
  906. package/src/libs/renderer/src/instance/create-diagram.js +1150 -0
  907. package/src/libs/renderer/src/instance/diagram-instance.d.ts +48 -0
  908. package/src/libs/renderer/src/instance/diagram-instance.js +51 -0
  909. package/src/libs/renderer/src/instance/dom-event-binder.d.ts +394 -0
  910. package/src/libs/renderer/src/instance/dom-event-binder.js +2104 -0
  911. package/src/libs/renderer/src/instance/index.d.ts +5 -0
  912. package/src/libs/renderer/src/instance/index.js +13 -0
  913. package/src/libs/renderer/src/instance/layers.d.ts +31 -0
  914. package/src/libs/renderer/src/instance/layers.js +43 -0
  915. package/src/libs/renderer/src/instance/model-input.d.ts +229 -0
  916. package/src/libs/renderer/src/instance/model-input.js +325 -0
  917. package/src/libs/renderer/src/instance/render-scheduler.d.ts +79 -0
  918. package/src/libs/renderer/src/instance/render-scheduler.js +96 -0
  919. package/src/libs/renderer/src/instance/wheel-scroll-yield.d.ts +38 -0
  920. package/src/libs/renderer/src/instance/wheel-scroll-yield.js +118 -0
  921. package/src/libs/renderer/src/interaction/ControlPointEditor.d.ts +160 -0
  922. package/src/libs/renderer/src/interaction/ControlPointEditor.js +360 -0
  923. package/src/libs/renderer/src/interaction/WaypointEditor.d.ts +133 -0
  924. package/src/libs/renderer/src/interaction/WaypointEditor.js +263 -0
  925. package/src/libs/renderer/src/interaction/highlighters.d.ts +88 -0
  926. package/src/libs/renderer/src/interaction/highlighters.js +212 -0
  927. package/src/libs/renderer/src/interaction/in-place-editor.d.ts +63 -0
  928. package/src/libs/renderer/src/interaction/in-place-editor.js +141 -0
  929. package/src/libs/renderer/src/interaction/index.d.ts +11 -0
  930. package/src/libs/renderer/src/interaction/index.js +29 -0
  931. package/src/libs/renderer/src/interaction/ink-overlay.d.ts +53 -0
  932. package/src/libs/renderer/src/interaction/ink-overlay.js +154 -0
  933. package/src/libs/renderer/src/interaction/interaction-controller.d.ts +555 -0
  934. package/src/libs/renderer/src/interaction/interaction-controller.js +1733 -0
  935. package/src/libs/renderer/src/interaction/keyboard-navigation.d.ts +223 -0
  936. package/src/libs/renderer/src/interaction/keyboard-navigation.js +885 -0
  937. package/src/libs/renderer/src/interaction/selection-tools.d.ts +343 -0
  938. package/src/libs/renderer/src/interaction/selection-tools.js +918 -0
  939. package/src/libs/renderer/src/interaction/snapping.d.ts +210 -0
  940. package/src/libs/renderer/src/interaction/snapping.js +569 -0
  941. package/src/libs/renderer/src/interaction/touch-gestures.d.ts +160 -0
  942. package/src/libs/renderer/src/interaction/touch-gestures.js +549 -0
  943. package/src/libs/renderer/src/interaction/whiteboard-tools.d.ts +171 -0
  944. package/src/libs/renderer/src/interaction/whiteboard-tools.js +476 -0
  945. package/src/libs/renderer/src/lazy/host-culling.d.ts +116 -0
  946. package/src/libs/renderer/src/lazy/host-culling.js +135 -0
  947. package/src/libs/renderer/src/lazy/index.d.ts +7 -0
  948. package/src/libs/renderer/src/lazy/index.js +28 -0
  949. package/src/libs/renderer/src/lazy/progressive-mounter.d.ts +80 -0
  950. package/src/libs/renderer/src/lazy/progressive-mounter.js +264 -0
  951. package/src/libs/renderer/src/lazy/types.d.ts +43 -0
  952. package/src/libs/renderer/src/lazy/types.js +14 -0
  953. package/src/libs/renderer/src/lazy/view-lifecycle.d.ts +97 -0
  954. package/src/libs/renderer/src/lazy/view-lifecycle.js +221 -0
  955. package/src/libs/renderer/src/perf/index.d.ts +2 -0
  956. package/src/libs/renderer/src/perf/index.js +7 -0
  957. package/src/libs/renderer/src/perf/perf-hud.d.ts +46 -0
  958. package/src/libs/renderer/src/perf/perf-hud.js +105 -0
  959. package/src/libs/renderer/src/perf/quality-governor.d.ts +77 -0
  960. package/src/libs/renderer/src/perf/quality-governor.js +154 -0
  961. package/src/libs/renderer/src/platform/index.d.ts +1 -0
  962. package/src/libs/renderer/src/platform/index.js +5 -0
  963. package/src/libs/renderer/src/platform/platform.d.ts +34 -0
  964. package/src/libs/renderer/src/platform/platform.js +64 -0
  965. package/src/libs/renderer/src/presence/bind-presence.d.ts +51 -0
  966. package/src/libs/renderer/src/presence/bind-presence.js +144 -0
  967. package/src/libs/renderer/src/presence/index.d.ts +4 -0
  968. package/src/libs/renderer/src/presence/index.js +18 -0
  969. package/src/libs/renderer/src/presence/presence-overlay.d.ts +121 -0
  970. package/src/libs/renderer/src/presence/presence-overlay.js +465 -0
  971. package/src/libs/renderer/src/presentation/index.d.ts +3 -0
  972. package/src/libs/renderer/src/presentation/index.js +14 -0
  973. package/src/libs/renderer/src/presentation/presentation.d.ts +94 -0
  974. package/src/libs/renderer/src/presentation/presentation.js +158 -0
  975. package/src/libs/renderer/src/presentation/viewport-channel.d.ts +78 -0
  976. package/src/libs/renderer/src/presentation/viewport-channel.js +86 -0
  977. package/src/libs/renderer/src/services/animation-lifecycle.d.ts +153 -0
  978. package/src/libs/renderer/src/services/animation-lifecycle.js +326 -0
  979. package/src/libs/renderer/src/services/animation-performance.service.d.ts +191 -0
  980. package/src/libs/renderer/src/services/animation-performance.service.js +371 -0
  981. package/src/libs/renderer/src/services/animation-sequencer.d.ts +226 -0
  982. package/src/libs/renderer/src/services/animation-sequencer.js +379 -0
  983. package/src/libs/renderer/src/services/animation.service.d.ts +182 -0
  984. package/src/libs/renderer/src/services/animation.service.js +858 -0
  985. package/src/libs/renderer/src/services/custom-animation-registry.d.ts +182 -0
  986. package/src/libs/renderer/src/services/custom-animation-registry.js +361 -0
  987. package/src/libs/renderer/src/ssr/index.d.ts +1 -0
  988. package/src/libs/renderer/src/ssr/index.js +6 -0
  989. package/src/libs/renderer/src/ssr/render-to-static.d.ts +91 -0
  990. package/src/libs/renderer/src/ssr/render-to-static.js +81 -0
  991. package/src/libs/renderer/src/svg/ArrowRenderer.d.ts +159 -0
  992. package/src/libs/renderer/src/svg/ArrowRenderer.js +723 -0
  993. package/src/libs/renderer/src/svg/JumpPointDetector.d.ts +79 -0
  994. package/src/libs/renderer/src/svg/JumpPointDetector.js +176 -0
  995. package/src/libs/renderer/src/svg/JumpPointRenderer.d.ts +59 -0
  996. package/src/libs/renderer/src/svg/JumpPointRenderer.js +309 -0
  997. package/src/libs/renderer/src/svg/LabelRenderer.d.ts +76 -0
  998. package/src/libs/renderer/src/svg/LabelRenderer.js +273 -0
  999. package/src/libs/renderer/src/svg/auto-size.d.ts +76 -0
  1000. package/src/libs/renderer/src/svg/auto-size.js +142 -0
  1001. package/src/libs/renderer/src/svg/channel-nudging.d.ts +34 -0
  1002. package/src/libs/renderer/src/svg/channel-nudging.js +226 -0
  1003. package/src/libs/renderer/src/svg/edge-optimizer.d.ts +228 -0
  1004. package/src/libs/renderer/src/svg/edge-optimizer.js +606 -0
  1005. package/src/libs/renderer/src/svg/edge-templates.d.ts +152 -0
  1006. package/src/libs/renderer/src/svg/edge-templates.js +233 -0
  1007. package/src/libs/renderer/src/svg/html-node.d.ts +50 -0
  1008. package/src/libs/renderer/src/svg/html-node.js +214 -0
  1009. package/src/libs/renderer/src/svg/index.d.ts +25 -0
  1010. package/src/libs/renderer/src/svg/index.js +32 -0
  1011. package/src/libs/renderer/src/svg/link-fanout.d.ts +127 -0
  1012. package/src/libs/renderer/src/svg/link-fanout.js +333 -0
  1013. package/src/libs/renderer/src/svg/link-hit-test.d.ts +142 -0
  1014. package/src/libs/renderer/src/svg/link-hit-test.js +182 -0
  1015. package/src/libs/renderer/src/svg/motion-tracker.d.ts +18 -0
  1016. package/src/libs/renderer/src/svg/motion-tracker.js +71 -0
  1017. package/src/libs/renderer/src/svg/node-sizing.d.ts +51 -0
  1018. package/src/libs/renderer/src/svg/node-sizing.js +65 -0
  1019. package/src/libs/renderer/src/svg/node-toolbar.d.ts +30 -0
  1020. package/src/libs/renderer/src/svg/node-toolbar.js +45 -0
  1021. package/src/libs/renderer/src/svg/notation-shapes.d.ts +2 -0
  1022. package/src/libs/renderer/src/svg/notation-shapes.js +126 -0
  1023. package/src/libs/renderer/src/svg/paint-servers.d.ts +49 -0
  1024. package/src/libs/renderer/src/svg/paint-servers.js +225 -0
  1025. package/src/libs/renderer/src/svg/panel.d.ts +115 -0
  1026. package/src/libs/renderer/src/svg/panel.js +353 -0
  1027. package/src/libs/renderer/src/svg/path-outline.d.ts +35 -0
  1028. package/src/libs/renderer/src/svg/path-outline.js +134 -0
  1029. package/src/libs/renderer/src/svg/port-glyph.d.ts +27 -0
  1030. package/src/libs/renderer/src/svg/port-glyph.js +97 -0
  1031. package/src/libs/renderer/src/svg/port-label.d.ts +74 -0
  1032. package/src/libs/renderer/src/svg/port-label.js +201 -0
  1033. package/src/libs/renderer/src/svg/port-layout.d.ts +50 -0
  1034. package/src/libs/renderer/src/svg/port-layout.js +212 -0
  1035. package/src/libs/renderer/src/svg/port-positioning.d.ts +33 -0
  1036. package/src/libs/renderer/src/svg/port-positioning.js +101 -0
  1037. package/src/libs/renderer/src/svg/port-spots.d.ts +69 -0
  1038. package/src/libs/renderer/src/svg/port-spots.js +154 -0
  1039. package/src/libs/renderer/src/svg/route-memo.d.ts +63 -0
  1040. package/src/libs/renderer/src/svg/route-memo.js +206 -0
  1041. package/src/libs/renderer/src/svg/route-solver-bridge.d.ts +48 -0
  1042. package/src/libs/renderer/src/svg/route-solver-bridge.js +151 -0
  1043. package/src/libs/renderer/src/svg/shape-registry.d.ts +189 -0
  1044. package/src/libs/renderer/src/svg/shape-registry.js +1104 -0
  1045. package/src/libs/renderer/src/svg/stroke-layer.d.ts +36 -0
  1046. package/src/libs/renderer/src/svg/stroke-layer.js +183 -0
  1047. package/src/libs/renderer/src/svg/svg-renderer.d.ts +1737 -0
  1048. package/src/libs/renderer/src/svg/svg-renderer.js +7772 -0
  1049. package/src/libs/renderer/src/svg/text-block.d.ts +54 -0
  1050. package/src/libs/renderer/src/svg/text-block.js +171 -0
  1051. package/src/libs/renderer/src/themes/color-mode.d.ts +81 -0
  1052. package/src/libs/renderer/src/themes/color-mode.js +158 -0
  1053. package/src/libs/renderer/src/themes/contrast.d.ts +67 -0
  1054. package/src/libs/renderer/src/themes/contrast.js +215 -0
  1055. package/src/libs/renderer/src/themes/default-dark-theme.d.ts +6 -0
  1056. package/src/libs/renderer/src/themes/default-dark-theme.js +126 -0
  1057. package/src/libs/renderer/src/themes/default-light-theme.d.ts +6 -0
  1058. package/src/libs/renderer/src/themes/default-light-theme.js +168 -0
  1059. package/src/libs/renderer/src/themes/default-theme-set.d.ts +10 -0
  1060. package/src/libs/renderer/src/themes/default-theme-set.js +25 -0
  1061. package/src/libs/renderer/src/themes/high-contrast-theme.d.ts +5 -0
  1062. package/src/libs/renderer/src/themes/high-contrast-theme.js +170 -0
  1063. package/src/libs/renderer/src/themes/index.d.ts +22 -0
  1064. package/src/libs/renderer/src/themes/index.js +93 -0
  1065. package/src/libs/renderer/src/themes/style-cascade.d.ts +23 -0
  1066. package/src/libs/renderer/src/themes/style-cascade.js +194 -0
  1067. package/src/libs/renderer/src/themes/style-registry.d.ts +40 -0
  1068. package/src/libs/renderer/src/themes/style-registry.js +129 -0
  1069. package/src/libs/renderer/src/themes/theme-a11y.d.ts +65 -0
  1070. package/src/libs/renderer/src/themes/theme-a11y.js +256 -0
  1071. package/src/libs/renderer/src/themes/theme-css.d.ts +30 -0
  1072. package/src/libs/renderer/src/themes/theme-css.js +304 -0
  1073. package/src/libs/renderer/src/themes/theme-ref.d.ts +63 -0
  1074. package/src/libs/renderer/src/themes/theme-ref.js +206 -0
  1075. package/src/libs/renderer/src/themes/theme-vars.d.ts +49 -0
  1076. package/src/libs/renderer/src/themes/theme-vars.js +112 -0
  1077. package/src/libs/renderer/src/themes/token-bridge.d.ts +62 -0
  1078. package/src/libs/renderer/src/themes/token-bridge.js +354 -0
  1079. package/src/libs/renderer/src/types/geometry.types.d.ts +10 -0
  1080. package/src/libs/renderer/src/types/geometry.types.js +3 -0
  1081. package/src/libs/renderer/src/types/index.d.ts +5 -0
  1082. package/src/libs/renderer/src/types/index.js +14 -0
  1083. package/src/libs/renderer/src/types/property-schema/conditions.d.ts +96 -0
  1084. package/src/libs/renderer/src/types/property-schema/conditions.js +8 -0
  1085. package/src/libs/renderer/src/types/property-schema/editor-types.d.ts +310 -0
  1086. package/src/libs/renderer/src/types/property-schema/editor-types.js +8 -0
  1087. package/src/libs/renderer/src/types/property-schema/groups.d.ts +58 -0
  1088. package/src/libs/renderer/src/types/property-schema/groups.js +8 -0
  1089. package/src/libs/renderer/src/types/property-schema/index.d.ts +101 -0
  1090. package/src/libs/renderer/src/types/property-schema/index.js +98 -0
  1091. package/src/libs/renderer/src/types/property-schema/property-definition.d.ts +117 -0
  1092. package/src/libs/renderer/src/types/property-schema/property-definition.js +8 -0
  1093. package/src/libs/renderer/src/types/property-schema/schema.d.ts +108 -0
  1094. package/src/libs/renderer/src/types/property-schema/schema.js +8 -0
  1095. package/src/libs/renderer/src/types/property-schema/validation.d.ts +181 -0
  1096. package/src/libs/renderer/src/types/property-schema/validation.js +8 -0
  1097. package/src/libs/renderer/src/types/renderer.interface.d.ts +623 -0
  1098. package/src/libs/renderer/src/types/renderer.interface.js +3 -0
  1099. package/src/libs/renderer/src/types/theme.types.d.ts +305 -0
  1100. package/src/libs/renderer/src/types/theme.types.js +3 -0
  1101. package/src/libs/renderer/src/types/vnode.types.d.ts +139 -0
  1102. package/src/libs/renderer/src/types/vnode.types.js +3 -0
  1103. package/src/libs/renderer/src/utils/animation-presets.d.ts +310 -0
  1104. package/src/libs/renderer/src/utils/animation-presets.js +406 -0
  1105. package/src/libs/renderer/src/utils/animation-priority.d.ts +118 -0
  1106. package/src/libs/renderer/src/utils/animation-priority.js +258 -0
  1107. package/src/libs/renderer/src/utils/animation-utils.d.ts +159 -0
  1108. package/src/libs/renderer/src/utils/animation-utils.js +323 -0
  1109. package/src/libs/renderer/src/utils/lru-cache.d.ts +34 -0
  1110. package/src/libs/renderer/src/utils/lru-cache.js +72 -0
  1111. package/src/libs/renderer/src/viewport/index.d.ts +1 -0
  1112. package/src/libs/renderer/src/viewport/index.js +6 -0
  1113. package/src/libs/renderer/src/viewport/viewport-controller.d.ts +198 -0
  1114. package/src/libs/renderer/src/viewport/viewport-controller.js +315 -0
  1115. package/src/libs/renderer/src/vnode/container-id-generator.d.ts +94 -0
  1116. package/src/libs/renderer/src/vnode/container-id-generator.js +110 -0
  1117. package/src/libs/renderer/src/vnode/foreign-object.d.ts +157 -0
  1118. package/src/libs/renderer/src/vnode/foreign-object.js +167 -0
  1119. package/src/libs/renderer/src/vnode/index.d.ts +56 -0
  1120. package/src/libs/renderer/src/vnode/index.js +78 -0
  1121. package/src/libs/renderer/src/vnode/patch.d.ts +189 -0
  1122. package/src/libs/renderer/src/vnode/patch.js +564 -0
  1123. package/src/index.js.map +0 -1
  1124. package/src/lib/dashboard-kit/dashboard.js.map +0 -1
  1125. package/src/lib/dashboard-kit/grid-binder.js.map +0 -1
  1126. package/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
  1127. package/src/lib/dashboard-kit/index.js.map +0 -1
  1128. package/src/lib/dashboard-kit/styles.js.map +0 -1
  1129. package/src/lib/dashboard-kit/widgets.js.map +0 -1
  1130. package/src/lib/diagram-kit/card.js.map +0 -1
  1131. package/src/lib/diagram-kit/editing.js.map +0 -1
  1132. package/src/lib/diagram-kit/er.js.map +0 -1
  1133. package/src/lib/diagram-kit/handles.js.map +0 -1
  1134. package/src/lib/diagram-kit/index.js.map +0 -1
  1135. package/src/lib/diagram-kit/rows.js.map +0 -1
  1136. package/src/lib/diagram-kit/styles.js.map +0 -1
  1137. package/src/lib/diagram-kit/uml.js.map +0 -1
  1138. package/src/lib/diagram-kit/update.js.map +0 -1
  1139. package/src/lib/grafloria-flow-element.js.map +0 -1
  1140. package/src/lib/grafloria.js.map +0 -1
  1141. package/src/lib/load.js.map +0 -1
  1142. package/src/lib/node-type-registry.js.map +0 -1
  1143. package/src/lib/stencil-kit/builders.js.map +0 -1
  1144. package/src/lib/stencil-kit/card-builders.js.map +0 -1
  1145. package/src/lib/stencil-kit/index.js.map +0 -1
  1146. package/src/lib/stencil-kit/palette.js.map +0 -1
  1147. package/src/lib/stencil-kit/shape-data.js.map +0 -1
  1148. package/src/lib/stencil-kit/styles.js.map +0 -1
@@ -0,0 +1,939 @@
1
+ "use strict";
2
+ // Wave 9 — Card 0: applyOp(model, op).
3
+ //
4
+ // The reducer the old command stream never had. `Command.serialize()` exists on every
5
+ // command in this codebase and NOTHING can deserialize it — the stream is write-only.
6
+ // This file is the other half: given a model and an op, produce the next model state,
7
+ // deterministically, with no reference to wall time, no random ids, and no dependence
8
+ // on anything outside (model, op).
9
+ //
10
+ // THE CONTRACT, and every later card leans on it:
11
+ //
12
+ // Replaying the same ORDERED log from the same start state, on any peer, any
13
+ // number of times, yields a BYTE-IDENTICAL diagram. (serialize() equality — not
14
+ // "looks the same".)
15
+ //
16
+ // Two disciplines make that true, and both are easy to lose:
17
+ //
18
+ // 1. NO AMBIENT INPUT. An op carries everything it needs. If a reducer ever reaches
19
+ // for Date.now(), Math.random() or a fresh uuid, replay stops being deterministic
20
+ // and every downstream guarantee dies with it. (This engine has been bitten by
21
+ // exactly that before: three layout adapters seeded from Math.random(), which
22
+ // made layouts untestable and saved diagrams move on reload.)
23
+ //
24
+ // 2. APPLYING AN OP MUST NOT EMIT AN OP. The capture layer listens to the same model
25
+ // mutations this reducer performs. Without a re-entrancy guard, applying a remote
26
+ // op would capture it as a *local* op, re-broadcast it, and the two peers would
27
+ // ping-pong forever. `applyOps` takes the guard; see OpCapture.
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.OpApplyError = void 0;
30
+ exports.applyOp = applyOp;
31
+ exports.applyEntitySet = applyEntitySet;
32
+ exports.readProp = readProp;
33
+ const tslib_1 = require("tslib");
34
+ const NodeModel_1 = require("../models/NodeModel");
35
+ const LinkModel_1 = require("../models/LinkModel");
36
+ const GroupModel_1 = require("../models/GroupModel");
37
+ const StrokeModel_1 = require("../models/StrokeModel");
38
+ const PortModel_1 = require("../models/PortModel");
39
+ const op_1 = require("./op");
40
+ /** Thrown only for a MALFORMED op — never for a merely-losing one. */
41
+ class OpApplyError extends Error {
42
+ constructor(message, op) {
43
+ super(message);
44
+ this.op = op;
45
+ this.name = 'OpApplyError';
46
+ }
47
+ }
48
+ exports.OpApplyError = OpApplyError;
49
+ /**
50
+ * Write a dotted path into a plain object, creating intermediate objects.
51
+ * `metadata.label` → obj.metadata.label.
52
+ */
53
+ function setPath(obj, path, value) {
54
+ const parts = path.split('.');
55
+ let cur = obj;
56
+ for (let i = 0; i < parts.length - 1; i++) {
57
+ const k = parts[i];
58
+ const next = cur[k];
59
+ if (typeof next !== 'object' || next === null || Array.isArray(next)) {
60
+ cur[k] = {};
61
+ }
62
+ cur = cur[k];
63
+ }
64
+ cur[parts[parts.length - 1]] = value;
65
+ }
66
+ /**
67
+ * Apply ONE op. Returns true if it changed anything.
68
+ *
69
+ * A NO-OP IS NOT AN ERROR, and this is load-bearing rather than lenient. In a
70
+ * distributed log you will legitimately receive:
71
+ * • a `set` on an entity a concurrent `remove` already deleted,
72
+ * • a `remove` for something already removed (duplicate delivery, or two peers
73
+ * deleting the same node),
74
+ * • an `add` for an id that already exists (the same op delivered twice).
75
+ * Every one of those is normal traffic, not corruption. Throwing on them would mean a
76
+ * single duplicated packet takes down the session. So we IGNORE them and say so by
77
+ * returning false — while still throwing loudly on an op that is genuinely malformed
78
+ * (unknown kind, missing id), because that IS a bug and hiding it helps nobody.
79
+ */
80
+ function applyOp(diagram, op) {
81
+ switch (op.op) {
82
+ case 'add':
83
+ return applyAdd(diagram, op.target, op.id, op.data);
84
+ case 'remove':
85
+ return applyRemove(diagram, op.target, op.id);
86
+ case 'set':
87
+ return applySet(diagram, op);
88
+ default: {
89
+ const bad = op;
90
+ throw new OpApplyError(`unknown op kind: ${String(bad.op)}`, op);
91
+ }
92
+ }
93
+ }
94
+ function applyAdd(diagram, target, id, data) {
95
+ if (!id)
96
+ throw new OpApplyError('add op has no id', { op: 'add' });
97
+ if (!data)
98
+ throw new OpApplyError(`add op for ${target} ${id} has no data`, { op: 'add' });
99
+ switch (target) {
100
+ case 'node': {
101
+ const existing = diagram.getNode(id);
102
+ if (existing) {
103
+ if (sameContent(existing.serialize(), data))
104
+ return false; // duplicate delivery
105
+ diagram.removeNode(id); // a NEW INCARNATION — see reincarnate() below
106
+ }
107
+ diagram.addNode(NodeModel_1.NodeModel.fromJSON(data));
108
+ return true;
109
+ }
110
+ case 'link': {
111
+ const existing = diagram.getLink(id);
112
+ if (existing) {
113
+ if (sameContent(existing.serialize(), data))
114
+ return false;
115
+ diagram.removeLink(id);
116
+ }
117
+ diagram.addLink(LinkModel_1.LinkModel.fromJSON(data));
118
+ return true;
119
+ }
120
+ case 'group': {
121
+ const existing = diagram.getGroup(id);
122
+ if (existing) {
123
+ if (sameContent(existing.serialize(), data))
124
+ return false;
125
+ diagram.removeGroup(id);
126
+ }
127
+ diagram.addGroup(GroupModel_1.GroupModel.fromJSON(data));
128
+ return true;
129
+ }
130
+ case 'stroke': {
131
+ // wave10/whiteboard: a stroke `add` is the whole ink, minted once at pointerup. It is
132
+ // an INCARNATION like every other add — an already-present stroke is replaced, not
133
+ // ignored — so the presence barrier (older writes void) is coherent for ink too.
134
+ const existing = diagram.getStroke(id);
135
+ if (existing) {
136
+ if (sameContent(existing.serialize(), data))
137
+ return false;
138
+ diagram.removeStroke(id);
139
+ }
140
+ diagram.addStroke(StrokeModel_1.StrokeModel.fromJSON(data));
141
+ return true;
142
+ }
143
+ }
144
+ }
145
+ /**
146
+ * WHY AN `add` FOR AN ENTITY THAT ALREADY EXISTS REPLACES IT INSTEAD OF BEING IGNORED.
147
+ *
148
+ * The fuzz found this one and it is the subtlest bug in the wave. It needs a resurrection
149
+ * and an out-of-order delivery, which is to say: a Tuesday.
150
+ *
151
+ * Alice deletes node C → remove C @X
152
+ * Alice presses Ctrl-Z → add C @Y, carrying her SNAPSHOT of C
153
+ * Bob receives the ADD before the REMOVE (partial delivery — entirely normal)
154
+ *
155
+ * Bob still has C. The old reducer said "already here: duplicate delivery" and returned
156
+ * false, THROWING THE SNAPSHOT AWAY. The gate, meanwhile, had admitted the add and moved
157
+ * C's presence stamp to Y — so the presence barrier then refused every write older than Y,
158
+ * and Bob's C was frozen in whatever state Bob happened to have it in. When the remove @X
159
+ * finally arrived it was refused as superseded, so Bob never rebuilt C either.
160
+ *
161
+ * Result: Alice's C is her snapshot, Bob's C is a state that exists nowhere else in the
162
+ * system, both peers have seen every op, and nothing anywhere reports a problem.
163
+ *
164
+ * An `add` is not "create if absent". It ESTABLISHES AN INCARNATION: after it, the entity is
165
+ * exactly `data`, and (by the presence barrier) every write older than it is void. That is
166
+ * the only reading under which the barrier is coherent, and it is order-independent, which
167
+ * is the property that actually matters.
168
+ *
169
+ * Identical content is still a no-op, because a duplicate delivery must not bump `version`
170
+ * or fire a re-render — and `version` is precisely what must be ignored when comparing, since
171
+ * it is a per-replica mutation counter and two peers legitimately disagree about it.
172
+ */
173
+ function sameContent(a, b) {
174
+ return deepEqual(stripVersion(a), stripVersion(b));
175
+ }
176
+ function stripVersion(v) {
177
+ if (Array.isArray(v))
178
+ return v.map(stripVersion);
179
+ if (v && typeof v === 'object') {
180
+ return Object.fromEntries(Object.entries(v)
181
+ .filter(([k]) => k !== 'version')
182
+ .map(([k, val]) => [k, stripVersion(val)]));
183
+ }
184
+ return v;
185
+ }
186
+ function applyRemove(diagram, target, id) {
187
+ switch (target) {
188
+ case 'node':
189
+ return diagram.removeNode(id) !== undefined;
190
+ case 'link':
191
+ return diagram.removeLink(id) !== undefined;
192
+ case 'group':
193
+ return diagram.removeGroup(id) !== undefined;
194
+ case 'stroke':
195
+ return diagram.removeStroke(id) !== undefined;
196
+ }
197
+ }
198
+ function applySet(diagram, op) {
199
+ const { target, id, path } = op;
200
+ // Clears are normalised to `undefined` HERE, in one place: an explicit `clear: true`
201
+ // (wave14) and an absent value key (every pre-wave14 log — JSON dropped the undefined)
202
+ // apply identically. See setValueOf.
203
+ const value = (0, op_1.setValueOf)(op);
204
+ if (target === 'diagram') {
205
+ // The redundant-write guard applies HERE TOO. It did not, and that was a bug: this
206
+ // branch used to return before ever reaching the check below, which made the diagram
207
+ // the one object in the system where re-applying an identical op still bumped the
208
+ // version counter and fired a spurious repaint on every duplicate packet.
209
+ if (deepEqual(readDiagramProp(diagram, path), value))
210
+ return false;
211
+ return setDiagramProp(diagram, path, value);
212
+ }
213
+ const entity = target === 'node'
214
+ ? diagram.getNode(id)
215
+ : target === 'link'
216
+ ? diagram.getLink(id)
217
+ : target === 'group'
218
+ ? diagram.getGroup(id)
219
+ : diagram.getStroke(id);
220
+ // The entity is gone — a concurrent remove won, or this set arrived before its add.
221
+ // Dropping the write is correct under remove-wins (see CONVERGENCE in op-log.ts):
222
+ // resurrecting an entity from a stray property write would be far worse than losing
223
+ // one property write on a node that no longer exists.
224
+ //
225
+ // Card 4 note: "dropped" is right for a REMOVED entity and WRONG for one that has
226
+ // merely not arrived yet, or that referential integrity is holding in quarantine. Those
227
+ // two cases are caught ABOVE this function, by the Replica — see integrity.ts. applyOp
228
+ // itself stays a pure function of (model, op) and keeps no memory of its own.
229
+ if (!entity)
230
+ return false;
231
+ return applyEntitySet(entity, path, value);
232
+ }
233
+ /**
234
+ * Write one property register of an entity that is ALREADY RESOLVED.
235
+ *
236
+ * Split out of applySet so that referential integrity can drive the identical write into
237
+ * an entity it is holding OUTSIDE the diagram (a link quarantined because its endpoint
238
+ * node is gone, see integrity.ts). Same mutators, same idempotence guard, same everything —
239
+ * a quarantined entity that took a DIFFERENT write path would drift from a live one, and
240
+ * that drift would only surface on resurrection, long after the cause.
241
+ */
242
+ function applyEntitySet(entity, path, value) {
243
+ // A WRITE THAT CHANGES NOTHING MUST DO NOTHING. This is not an optimisation, it is
244
+ // what makes applyOp IDEMPOTENT, and idempotence is not optional here: redundant sets
245
+ // are ROUTINE traffic (a duplicate delivery, a reconnect replaying the log, a peer
246
+ // catching up from a snapshot that already contains the op).
247
+ //
248
+ // Without this guard, re-applying an identical op still calls setPosition(), which
249
+ // bumps `version`, marks the entity dirty and fires a change event — because
250
+ // trackChange() compares with `===`, and {x:50,y:120} is never `===` to another
251
+ // {x:50,y:120}. So replaying a log twice drifts every version number (caught by the
252
+ // byte-identical replay test, which is the entire reason it demands BYTES and not
253
+ // "looks the same"), and every duplicate packet would trigger a spurious re-render
254
+ // forever.
255
+ if (deepEqual(readEntityProp(entity, path), value))
256
+ return false;
257
+ return setEntityProp(entity, path, value);
258
+ }
259
+ /** Read the register an op path names. Exported for undo, which needs the value a
260
+ * register held before an op overwrote it. */
261
+ function readProp(entity, path) {
262
+ return readEntityProp(entity, path);
263
+ }
264
+ /** Read the register an op path names, so we can tell a real write from a redundant one. */
265
+ function readEntityProp(entity, path) {
266
+ if (path.startsWith('metadata.')) {
267
+ return entity.getMetadata(path.slice('metadata.'.length));
268
+ }
269
+ // A PER-PORT register (wave14): `ports.<portId>` holds one serialized port, minus
270
+ // `version` — which is a per-replica mutation counter, excluded from the wire value at
271
+ // capture for the same reason the convergence oracle exempts it. Strip it here too, or
272
+ // the idempotence guard would compare a local counter against a remote one and never
273
+ // fire. An absent port reads as undefined: the register is empty.
274
+ if (path.startsWith('ports.') && entity instanceof NodeModel_1.NodeModel) {
275
+ const port = entity.getPort(path.slice('ports.'.length));
276
+ if (!port)
277
+ return undefined;
278
+ const _a = port.serialize(), { version: _version } = _a, data = tslib_1.__rest(_a, ["version"]);
279
+ return data;
280
+ }
281
+ // LEGACY: the whole-collection `ports` register. Held as a Map but travels as a
282
+ // serialized array — compare like with like, or the idempotence guard never fires and
283
+ // every duplicate delivery rebuilds the collection and bumps `version`, which the
284
+ // byte-identical replay oracle would then catch.
285
+ if (path === 'ports' && entity instanceof NodeModel_1.NodeModel) {
286
+ return entity.getPorts().map((p) => p.serialize());
287
+ }
288
+ // A group's `members` is a Set held in memory and an ARRAY on the wire (serialize()
289
+ // writes Array.from(members)) — compare like with like, exactly as `ports` above. Read
290
+ // raw, this returns the live Set, and deepEqual(Set, ['n1']) is false for every value
291
+ // any op could ever carry: the idempotence guard would never fire, so every duplicate
292
+ // delivery would rebuild the collection and bump `version`.
293
+ if (path === 'members' && entity instanceof GroupModel_1.GroupModel) {
294
+ return [...entity.members];
295
+ }
296
+ let cur = entity;
297
+ for (const part of path.split('.')) {
298
+ if (cur === null || typeof cur !== 'object')
299
+ return undefined;
300
+ cur = cur[part];
301
+ }
302
+ return cur;
303
+ }
304
+ /**
305
+ * Structural equality over JSON-shaped values.
306
+ *
307
+ * `undefined` and `null` are NOT the same thing here, and the old `a == b` on the line
308
+ * below said they were. `undefined` means THE REGISTER IS EMPTY (a cleared metadata
309
+ * key, an absent port); `null` is a VALUE a user can store. Conflating them made the
310
+ * idempotence guard drop a peer's `set(metadata.note, null)` as "redundant" against an
311
+ * empty register — the value never landed, and only on the RECEIVING side, the one
312
+ * place a single-process test never looks. Storing null and clearing must stay
313
+ * distinguishable end to end (op.ts's clear is explicit for the same reason).
314
+ */
315
+ function deepEqual(a, b) {
316
+ if (a === b)
317
+ return true;
318
+ if (a === undefined || b === undefined || a === null || b === null)
319
+ return false;
320
+ if (typeof a !== 'object' || typeof b !== 'object')
321
+ return false;
322
+ if (Array.isArray(a) !== Array.isArray(b))
323
+ return false;
324
+ if (Array.isArray(a) && Array.isArray(b)) {
325
+ if (a.length !== b.length)
326
+ return false;
327
+ return a.every((v, i) => deepEqual(v, b[i]));
328
+ }
329
+ const ao = a;
330
+ const bo = b;
331
+ const ak = Object.keys(ao);
332
+ const bk = Object.keys(bo);
333
+ if (ak.length !== bk.length)
334
+ return false;
335
+ return ak.every((k) => Object.prototype.hasOwnProperty.call(bo, k) && deepEqual(ao[k], bo[k]));
336
+ }
337
+ /**
338
+ * Property writes go through the model's REAL mutators wherever one exists, and only
339
+ * fall back to a generic path write otherwise.
340
+ *
341
+ * That is deliberate and it matters: setPosition() does not merely assign x/y — it
342
+ * updates the spatial index, bumps the version, marks the entity dirty and fires
343
+ * change events. A reducer that reached in and assigned `node.position.x = 4` would
344
+ * produce a model that *looks* right, serializes right, and is invisible to culling,
345
+ * routing and the renderer. It would pass every test in this file and be broken on
346
+ * screen.
347
+ */
348
+ function setEntityProp(entity, path, value) {
349
+ // A CLEAR (value normalised to undefined — explicit `clear: true`, or the absent value
350
+ // key every old log encodes). The register is EMPTIED, not set to a value: the
351
+ // metadata KEY is deleted (a Map that keeps the key with an undefined value only looks
352
+ // identical until someone calls `has()` — the receiving side used to diverge exactly
353
+ // there), and a cleared port register means the port is REMOVED, through the real
354
+ // mutator.
355
+ if (value === undefined)
356
+ return clearEntityProp(entity, path);
357
+ // METADATA IS A Map, NOT AN OBJECT. This is the trap in this file. A generic
358
+ // `entity.metadata = {...}` assignment produces a model that serializes correctly,
359
+ // passes every replay test, and is quietly broken everywhere else — every
360
+ // getMetadata() call in the engine would hit a plain object and return undefined.
361
+ // The model's own funnel already speaks this exact vocabulary (setMetadata emits
362
+ // trackChange(`metadata.${key}`)), so the op path and the mutator line up 1:1.
363
+ if (path.startsWith('metadata.')) {
364
+ entity.setMetadata(path.slice('metadata.'.length), structuredClone(value));
365
+ return true;
366
+ }
367
+ // A PER-PORT register (wave14): add if absent, update IN PLACE if present.
368
+ //
369
+ // THROUGH THE REAL MUTATORS, never a raw field write — node.ports is a Map and the
370
+ // original whole-collection bug replaced it with a plain object, after which
371
+ // getPorts() returned nothing and serialize() threw. addPort/removePort also emit
372
+ // port:added/port:removed, which is what keeps DiagramModel's portIndex current on
373
+ // the receiving peer.
374
+ //
375
+ // IN PLACE matters for a reason that is easy to miss: serialize() writes ports in Map
376
+ // insertion order, and order is part of the document. The AUTHOR of a port edit
377
+ // mutated the port where it stood; a receiver that did remove+add would move it to
378
+ // the end and the two would save byte-different files. (It would also drop the port's
379
+ // live connection state, which a rebuilt instance does not carry.)
380
+ if (path.startsWith('ports.') && entity instanceof NodeModel_1.NodeModel) {
381
+ const portId = path.slice('ports.'.length);
382
+ const data = value;
383
+ const existing = entity.getPort(portId);
384
+ if (!existing) {
385
+ // addPort() stamps fresh.nodeId with the owning node's id, and that stamp STANDS —
386
+ // see the nodeId note in updatePortInPlace for why apply never writes this field
387
+ // from the wire (the fuzz found both wrong answers: seeds 1062 and 33).
388
+ entity.addPort(PortModel_1.PortModel.fromJSON(structuredClone(data)));
389
+ return true;
390
+ }
391
+ return updatePortInPlace(existing, data);
392
+ }
393
+ // A GROUP'S `members` IS A Set — the third collection in this file, and the one that was
394
+ // missed. Everything the `metadata` and `ports` comments above warn about happened here,
395
+ // in production traffic, on the most ordinary edit a group has:
396
+ //
397
+ // • `addMember('node-1')` reached writeGeneric, which found no setMembers() and
398
+ // ASSIGNED THE RAW WIRE VALUE. The peer's `members` became the STRING 'node-1', and
399
+ // serialize()'s Array.from() split it per character: six phantom members
400
+ // ['n','o','d','e','-','1'], every one of them a node id that does not exist.
401
+ // • `removeMember()` travelled as `null`, so the peer's `members` became null and
402
+ // Array.from(null) THREW — the receiving peer could no longer serialize the document
403
+ // at all. Save, autosave and every further op broke, on the one peer that made no
404
+ // edit.
405
+ //
406
+ // Both were invisible to the author (their own Set is fine) and to every single-process
407
+ // test, which is exactly the shape of bug this file exists to prevent.
408
+ //
409
+ // THROUGH THE REAL MUTATORS — addMember/removeMember — never a raw Set write. They
410
+ // maintain the `parentGroupId` back-pointer that IS the nesting tree (a receiver that
411
+ // wrote the Set directly would hold the right membership and the wrong containment
412
+ // graph), they emit member:added/member:removed, and they reflow a layout container.
413
+ // The one thing they do that a raw write would not is consult `memberValidation` — a
414
+ // deliberately non-serialized LOCAL predicate; a peer that installed one has asked for
415
+ // candidates to be gated, and gating a remote membership is the same answer it gives a
416
+ // local one.
417
+ if (entity instanceof GroupModel_1.GroupModel && path === 'members') {
418
+ // A non-array is REFUSED rather than read as "no members" — same reasoning as `ports`.
419
+ // This also makes the fix safe against LOGS PERSISTED BEFORE IT: a pre-fix op carries
420
+ // the bare member id ('node-1') or null, and refusing both leaves the collection alone
421
+ // instead of corrupting it, so replaying an old log degrades rather than explodes.
422
+ if (!Array.isArray(value))
423
+ return false;
424
+ const wanted = new Set(value.filter((m) => typeof m === 'string'));
425
+ let changed = false;
426
+ for (const m of [...entity.members]) {
427
+ if (!wanted.has(m)) {
428
+ entity.removeMember(m);
429
+ changed = true;
430
+ }
431
+ }
432
+ for (const m of wanted) {
433
+ if (!entity.members.has(m)) {
434
+ entity.addMember(m);
435
+ changed = true;
436
+ }
437
+ }
438
+ // Same SET, possibly a different ORDER — and order is in serialize()
439
+ // (Array.from(members)), so two peers that converged on the same membership by
440
+ // different routes would otherwise save byte-different files. Align with the incoming
441
+ // collection, which every peer has. Direct Set surgery, exactly as the `ports` branch
442
+ // reorders its Map: this reorders nothing the model considers a change.
443
+ //
444
+ // Guarded by size: the removal loop leaves members ⊆ wanted and the add loop only adds
445
+ // from wanted, so equal sizes here means the two sets are EQUAL — and an addMember the
446
+ // group refused (capacity, a cycle, memberValidation) shows up as a size mismatch and
447
+ // correctly leaves the order alone.
448
+ if (entity.members.size === wanted.size) {
449
+ entity.members.clear();
450
+ for (const m of wanted)
451
+ entity.members.add(m);
452
+ }
453
+ return changed;
454
+ }
455
+ if (entity instanceof NodeModel_1.NodeModel) {
456
+ switch (path) {
457
+ case 'ports': {
458
+ // PORTS ARE A Map, exactly like metadata, and exactly as dangerous. There is no
459
+ // setPorts() mutator, so writeGeneric would fall through to a direct assignment and
460
+ // REPLACE THE Map WITH A PLAIN OBJECT — after which getPorts() returns nothing and
461
+ // serialize() throws on ports.values(). Rebuild it the way fromJSON does.
462
+ //
463
+ // A non-array is REFUSED rather than read as "no ports". `ports` always serializes as
464
+ // an array, so a missing value means a bug upstream, and the cost of guessing is a
465
+ // node stripped of every port it has and every link into it orphaned — which is
466
+ // exactly what an undo of the first port-add used to do.
467
+ if (!Array.isArray(value))
468
+ return false;
469
+ const incoming = value;
470
+ const wanted = new Map(incoming.map((p) => [p.id, p]));
471
+ // THROUGH THE REAL MUTATORS — addPort/removePort — and NOT by rewriting the Map.
472
+ //
473
+ // This file's own header says property writes must go through the model's mutators,
474
+ // and the first version of this branch broke that rule and paid for it. Rewriting
475
+ // `entity.ports` directly produces a node that serializes perfectly and is invisible
476
+ // to trackChange — which is to say invisible to CAPTURE. So a peer UNDOING its own
477
+ // port-add reverted its screen and BROADCAST NOTHING: every other peer kept the port
478
+ // forever. Two documents, identical logs, no error. The fuzz found it as a node with
479
+ // seven ports on one peer and six on the other.
480
+ //
481
+ // Live PortModels are kept where the id already exists: a port carries connection
482
+ // state and identity that a rebuilt instance would drop on the floor.
483
+ let changed = false;
484
+ for (const p of entity.getPorts()) {
485
+ if (!wanted.has(p.id)) {
486
+ entity.removePort(p.id);
487
+ changed = true;
488
+ }
489
+ }
490
+ for (const p of incoming) {
491
+ if (!entity.ports.has(p.id)) {
492
+ entity.addPort(PortModel_1.PortModel.fromJSON(p));
493
+ changed = true;
494
+ }
495
+ }
496
+ // Same SET, possibly a different ORDER — and order is in serialize(). Align it with
497
+ // the incoming collection, which every peer has. No mutator, and none wanted: this
498
+ // reorders nothing the model considers a change.
499
+ if (entity.ports.size === incoming.length) {
500
+ const reordered = incoming
501
+ .map((p) => entity.ports.get(p.id))
502
+ .filter((p) => p !== undefined);
503
+ if (reordered.length === incoming.length) {
504
+ entity.ports.clear();
505
+ for (const p of reordered)
506
+ entity.ports.set(p.id, p);
507
+ }
508
+ }
509
+ return changed;
510
+ }
511
+ case 'position': {
512
+ const p = value;
513
+ entity.setPosition(p.x, p.y, p.z);
514
+ return true;
515
+ }
516
+ case 'size': {
517
+ const s = value;
518
+ entity.setSize(s.width, s.height, s.depth);
519
+ return true;
520
+ }
521
+ case 'state':
522
+ // REPLACE the durable half, KEEP this viewer's own view half — never merge.
523
+ //
524
+ // `setState` MERGES, and `state` is a value register: the op carries the whole
525
+ // projected object the author now holds. So a peer could gain a key and never
526
+ // lose one — `error`, `warning`, `status` and `animateStatus` are optional, so
527
+ // the author clears an error badge and every OTHER peer keeps it forever, with
528
+ // no later edit able to correct it. Exactly the `style` defect, on the register
529
+ // next to it.
530
+ //
531
+ // It is not a bare wholesale replace either: capture strips the per-viewer keys
532
+ // (selected/hovered/highlighted/focused), so the incoming value never carries
533
+ // them and replacing wholesale would blank the RECEIVING user's own selection on
534
+ // every remote state edit. replaceState() draws exactly that line — including
535
+ // why it deliberately does NOT copy setState's read-only filter.
536
+ entity.replaceState(structuredClone(value));
537
+ return true;
538
+ case 'style':
539
+ // REPLACE, not merge. `style` is a value register: the op carries the whole
540
+ // object the author now holds, so applying it with the merging `setStyle` means
541
+ // a peer can gain a key but can NEVER LOSE ONE. Undo a fill and the author goes
542
+ // back to plain while every peer keeps the fill — the register is write-only in
543
+ // one direction. (Links never had this: they fall through to the generic writer,
544
+ // which assigns wholesale. Only the NodeModel branch merged.)
545
+ entity.replaceStyle(structuredClone(value));
546
+ return true;
547
+ }
548
+ }
549
+ if (entity instanceof LinkModel_1.LinkModel && path === 'points') {
550
+ entity.setPoints(structuredClone(value));
551
+ return true;
552
+ }
553
+ // A LINK'S `labels` IS AN ARRAY held behind tracked mutators, and it was the third
554
+ // collection to repeat the `members` mistake: addLabel/updateLabel reported the ONE
555
+ // label that moved and removeLabel reported `null`, so a peer assigned a bare object
556
+ // (or null) over its array and `serialize()` threw — the receiving peer could no longer
557
+ // save the document at all. setLabels() is the wholesale tracked write, and it refuses
558
+ // the non-array shapes a pre-fix log carries.
559
+ if (entity instanceof LinkModel_1.LinkModel && path === 'labels') {
560
+ if (!Array.isArray(value))
561
+ return false;
562
+ entity.setLabels(structuredClone(value));
563
+ return true;
564
+ }
565
+ // A NODE'S `children` AND `classes` ARE Sets — rebuilt through their real mutators, never
566
+ // assigned. `children` is serialized, so the bare-string write this replaced turned one
567
+ // child id into one phantom child PER CHARACTER.
568
+ if (entity instanceof NodeModel_1.NodeModel && (path === 'children' || path === 'classes')) {
569
+ if (!Array.isArray(value))
570
+ return false;
571
+ const ids = structuredClone(value);
572
+ if (path === 'children')
573
+ entity.setChildren(ids);
574
+ else
575
+ entity.setClasses(ids);
576
+ return true;
577
+ }
578
+ // A STROKE'S `style`: REPLACE, not merge — setStyle() merges, so a cleared key would
579
+ // never clear on a peer. replaceStyle() also keeps the bounds invalidation a plain
580
+ // assignment would skip.
581
+ if (entity instanceof StrokeModel_1.StrokeModel && path === 'style') {
582
+ entity.replaceStyle(structuredClone(value));
583
+ return true;
584
+ }
585
+ return writeGeneric(entity, path, value);
586
+ }
587
+ /**
588
+ * EMPTY a register — the apply half of an explicit clear (and of every old log's
589
+ * clear-by-omission).
590
+ */
591
+ function clearEntityProp(entity, path) {
592
+ // The KEY is deleted. setMetadata(key, undefined) — which is what the old
593
+ // missing-as-undefined accident amounted to — leaves the key in the Map holding
594
+ // undefined: serialize() happens to drop it (JSON), so every byte oracle stayed green,
595
+ // but `metadata.has(key)` answered true on the receiver and false on the author.
596
+ if (path.startsWith('metadata.')) {
597
+ entity.deleteMetadata(path.slice('metadata.'.length));
598
+ return true;
599
+ }
600
+ // A cleared per-port register is the port's REMOVAL — through the real mutator, which
601
+ // fires port:removed and keeps the diagram's portIndex honest.
602
+ if (path.startsWith('ports.') && entity instanceof NodeModel_1.NodeModel) {
603
+ return entity.removePort(path.slice('ports.'.length)) !== undefined;
604
+ }
605
+ // The legacy whole-collection register is never cleared — no version of capture ever
606
+ // emitted that — so a clear here is malformed traffic; refuse it rather than strip a
607
+ // node of every port it has on a guess.
608
+ if (path === 'ports' && entity instanceof NodeModel_1.NodeModel)
609
+ return false;
610
+ // Nor is `members`: an emptied group travels as `[]` — a value, not a clear. Refuse a
611
+ // clear rather than strip a group of every member it has on a guess. (The pre-fix
612
+ // `removeMember` put a literal `null` on the wire, which is a VALUE and is refused one
613
+ // level up by the non-array guard in setEntityProp; this is the same refusal for the
614
+ // explicit-clear shape.)
615
+ if (path === 'members' && entity instanceof GroupModel_1.GroupModel)
616
+ return false;
617
+ // Generic: empty the slot the way the author's clear did (clearFlexItem assigns
618
+ // undefined and fires trackChange; there is no removeFlexConfig mutator to prefer).
619
+ //
620
+ // AND REPORT IT THROUGH THE FUNNEL — for exactly the reason writeGeneric does. A raw
621
+ // `holder[head] = undefined` does not pass trackChange, so an UNDO whose inverse is a
622
+ // clear (setFlexItem then undo → clear flexConfig) minted no op and reached no peer:
623
+ // measured flexConfig execute → 1 op, undo → 0 ops. clearFlexItem itself fires
624
+ // trackChange, but the reducer never calls it — it assigns — so the clear has to report
625
+ // on its own.
626
+ const [head, ...rest] = path.split('.');
627
+ const holder = entity;
628
+ if (rest.length === 0) {
629
+ const before = holder[head];
630
+ holder[head] = undefined;
631
+ entity.reportRegisterWrite(path, before, undefined);
632
+ return true;
633
+ }
634
+ const current = holder[head];
635
+ const next = typeof current === 'object' && current !== null && !Array.isArray(current)
636
+ ? structuredClone(current)
637
+ : {};
638
+ const before = readEntityProp(entity, path);
639
+ setPath(next, rest.join('.'), undefined);
640
+ holder[head] = next;
641
+ entity.reportRegisterWrite(path, before, undefined);
642
+ return true;
643
+ }
644
+ /**
645
+ * Update a LIVE port from its register value, in place.
646
+ *
647
+ * The live instance is KEPT — it carries connection state and its position in the
648
+ * node's ports Map (which is serialize() order, i.e. part of the document) — and its
649
+ * fields are brought to the register value. Geometry goes through the port's REAL
650
+ * mutators (setPosition/setAlignment/setOffset fire trackChange, which is what lets a
651
+ * peer's capture re-emit when this runs under a LIVE capture — the undo path — and what
652
+ * keeps renderers listening on the port informed). Registry-backed fields go through
653
+ * their mutators for the same reason. The remaining declarative config is plain data
654
+ * with no mutator to prefer; it is assigned, cloned, exactly as fromJSON does.
655
+ *
656
+ * `version` is deliberately untouched: it is a per-replica counter, excluded from the
657
+ * wire value at capture, and the mutators below advance it as a real mutation should.
658
+ */
659
+ function updatePortInPlace(port, data) {
660
+ var _a, _b, _c, _d, _e;
661
+ let changed = false;
662
+ if (!deepEqual(Object.assign({}, port.position), data.position)) {
663
+ port.setPosition(structuredClone(data.position));
664
+ changed = true;
665
+ }
666
+ if (!deepEqual(Object.assign({}, port.alignment), data.alignment)) {
667
+ port.setAlignment(structuredClone(data.alignment));
668
+ changed = true;
669
+ }
670
+ if (!deepEqual(Object.assign({}, port.offset), data.offset)) {
671
+ port.setOffset(structuredClone(data.offset));
672
+ changed = true;
673
+ }
674
+ // AFTER setAlignment, which forces explicitSide=true — the register value decides.
675
+ if (port.explicitSide !== (data.explicitSide === true)) {
676
+ port.explicitSide = data.explicitSide === true;
677
+ changed = true;
678
+ }
679
+ // allowedTypes is a Set; its mutators are the funnel (and they trackChange).
680
+ const wantTypes = new Set((_a = data.allowedTypes) !== null && _a !== void 0 ? _a : []);
681
+ for (const t of [...port.allowedTypes]) {
682
+ if (!wantTypes.has(t)) {
683
+ port.removeAllowedType(t);
684
+ changed = true;
685
+ }
686
+ }
687
+ for (const t of wantTypes) {
688
+ if (!port.allowedTypes.has(t)) {
689
+ port.addAllowedType(t);
690
+ changed = true;
691
+ }
692
+ }
693
+ // metadata is a Map — same discipline as every other Map in this file.
694
+ const wantMeta = ((_b = data.metadata) !== null && _b !== void 0 ? _b : {});
695
+ for (const k of [...port.metadata.keys()]) {
696
+ if (!(k in wantMeta)) {
697
+ port.deleteMetadata(k);
698
+ changed = true;
699
+ }
700
+ }
701
+ for (const [k, v] of Object.entries(wantMeta)) {
702
+ if (!deepEqual(port.getMetadata(k), v)) {
703
+ port.setMetadata(k, structuredClone(v));
704
+ changed = true;
705
+ }
706
+ }
707
+ if (!deepEqual(port.renderingConfig, data.renderingConfig)) {
708
+ port.setRenderingConfig(structuredClone(data.renderingConfig));
709
+ changed = true;
710
+ }
711
+ // The serialize() sentinel: null means unlimited (Infinity is not JSON-representable).
712
+ const wantMax = data.maxConnections === null || data.maxConnections === undefined
713
+ ? Infinity
714
+ : data.maxConnections;
715
+ if (port.maxConnections !== wantMax) {
716
+ port.maxConnections = wantMax;
717
+ changed = true;
718
+ }
719
+ // Declarative config: plain values, assigned as fromJSON assigns them. `undefined`
720
+ // incoming means the author UNSET the field, and unset must travel too.
721
+ const assign = (key, want) => {
722
+ if (deepEqual(port[key], want))
723
+ return;
724
+ port[key] = typeof want === 'object' && want !== null ? structuredClone(want) : want;
725
+ changed = true;
726
+ };
727
+ // `nodeId` is deliberately NOT written from the wire. It is STRUCTURAL — the engine's
728
+ // own invariant is that a port's nodeId is its owning node's id (addPort stamps it,
729
+ // initializeDefaultPorts stamps it), and the register path already names the owner.
730
+ // The fuzz proved both wrong answers: taking the wire value while the add path let
731
+ // addPort stamp the owner diverged the update-path peers from the add-path peers
732
+ // (seed 1062), and forcing the wire value onto the add path diverged the UNDO AUTHOR
733
+ // from everyone — capture serializes the op inside addPort's trackChange, i.e. AFTER
734
+ // the stamp, so the wire said "owner" while the author's model had been reset to the
735
+ // wire's stale value (seed 33). The stamp is deterministic on every path; let it stand.
736
+ assign('type', data.type);
737
+ assign('systemType', data.systemType);
738
+ assign('index', (_c = data.index) !== null && _c !== void 0 ? _c : 0);
739
+ assign('visible', data.visible);
740
+ assign('style', ((_d = data.style) !== null && _d !== void 0 ? _d : {}));
741
+ assign('data', ((_e = data.data) !== null && _e !== void 0 ? _e : {}));
742
+ assign('group', data.group);
743
+ assign('shape', data.shape);
744
+ assign('label', data.label);
745
+ assign('layout', data.layout);
746
+ assign('fromSpot', data.fromSpot);
747
+ assign('toSpot', data.toSpot);
748
+ assign('spread', data.spread);
749
+ assign('dataType', data.dataType);
750
+ assign('isConnectableStart', data.isConnectableStart);
751
+ assign('isConnectableEnd', data.isConnectableEnd);
752
+ assign('fromMaxLinks', data.fromMaxLinks);
753
+ assign('toMaxLinks', data.toMaxLinks);
754
+ assign('allowSelfLink', data.allowSelfLink);
755
+ assign('allowDuplicateLinks', data.allowDuplicateLinks);
756
+ assign('dynamic', data.dynamic);
757
+ return changed;
758
+ }
759
+ /**
760
+ * Registers whose write MUST go through a named model mutator, and only those.
761
+ *
762
+ * ---------------------------------------------------------------------------
763
+ * WHY THIS IS A LIST AND NOT A NAME LOOKUP
764
+ * ---------------------------------------------------------------------------
765
+ *
766
+ * This used to be `entity['set' + Prop]` — call whatever method the register's name
767
+ * happens to spell. That is a GUESS, and it silently assumed every such method is a
768
+ * single-argument whole-value writer. Three in this engine are not, and each produced a
769
+ * different corruption on the receiving peer and nowhere else:
770
+ *
771
+ * setData(key, value) called as setData({color:'red'}) → the peer stored a key
772
+ * literally named "[object Object]" and NEVER received
773
+ * `data` at all. Every setData edit was lost on every peer.
774
+ * setScale(x, y) called with the point → peer got {x:{x:2,y:3}}.
775
+ * setTransformOrigin(x, y) → peer got {x:{x:0.25,y:0.75}}.
776
+ *
777
+ * And arity is not the whole test, because a one-argument setter can still be the WRONG
778
+ * KIND of write: `setBehavior` and `StrokeModel.setStyle` both MERGE, so applying a value
779
+ * register with them let a peer gain a key and never lose one. A guess cannot tell those
780
+ * apart from `setRotation`. An explicit list can, and it makes each decision reviewable
781
+ * instead of emergent — the same reason the read-only lock keeps its bypass greppable.
782
+ *
783
+ * The rule for admission: the method takes the register's value as its ONE argument and
784
+ * writes it WHOLESALE. Everything else falls through to the tracked assignment below,
785
+ * which is wholesale by construction.
786
+ */
787
+ const REGISTER_MUTATORS = {
788
+ // NodeModel — position/size/state/style/ports/metadata are handled upstream.
789
+ node: new Set([
790
+ 'rotation', // setRotation(degrees)
791
+ 'zIndex', // setZIndex(z)
792
+ 'portRenderingConfig', // setPortRenderingConfig(config)
793
+ 'dragHandlerConfig', // setDragHandlerConfig(config)
794
+ 'connectionGroup', // setConnectionGroup(group)
795
+ ]),
796
+ // LinkModel — points/labels/style handled upstream (style has no mutator: wholesale).
797
+ link: new Set([
798
+ 'pathType', // setPathType(t)
799
+ 'router', // setRouter(name)
800
+ 'connector', // setConnector(name)
801
+ ]),
802
+ // GroupModel — members handled upstream.
803
+ group: new Set([
804
+ 'capacity', // setCapacity(n)
805
+ 'collapsedState', // setCollapsedState(state)
806
+ 'zIndex', // setZIndex(z)
807
+ ]),
808
+ // StrokeModel — style handled upstream (it merges).
809
+ stroke: new Set([
810
+ 'points', // setPoints(points)
811
+ 'label', // setLabel(label)
812
+ ]),
813
+ };
814
+ function mutatorKind(entity) {
815
+ if (entity instanceof NodeModel_1.NodeModel)
816
+ return 'node';
817
+ if (entity instanceof LinkModel_1.LinkModel)
818
+ return 'link';
819
+ if (entity instanceof GroupModel_1.GroupModel)
820
+ return 'group';
821
+ return 'stroke';
822
+ }
823
+ /**
824
+ * Anything without a dedicated mutator: a link's `style`, `flexConfig`, `parentId`,
825
+ * `isCollapsed`, `layoutConfig`, `bounds`, an author's own field.
826
+ *
827
+ * Uses a real mutator ONLY where {@link REGISTER_MUTATORS} says one exists, because a
828
+ * mutator does more than assign — it updates the spatial index, bumps the version, marks
829
+ * dirty and emits change events.
830
+ *
831
+ * ---------------------------------------------------------------------------
832
+ * THE ASSIGNMENT FALLBACK REPORTS THROUGH THE FUNNEL, AND THAT IS LOAD-BEARING
833
+ * ---------------------------------------------------------------------------
834
+ *
835
+ * A plain `holder[head] = value` does not pass `trackChange()`. That looked harmless — the
836
+ * model is correct afterwards, it serializes correctly, every replay test is green — and
837
+ * it silently broke UNDO for every register on this path.
838
+ *
839
+ * `UndoStack.undo()` applies the inverse THROUGH THE MODEL WITH CAPTURE LIVE and then
840
+ * reads back whatever capture minted. No trackChange, no op, and the undo reaches NOBODY:
841
+ *
842
+ * link style execute → 1 op undo → 0 ops Bob stayed red forever
843
+ * flexConfig execute → 1 op undo → 0 ops
844
+ * isCollapsed execute → 1 op undo → 0 ops
845
+ * position execute → 1 op undo → 1 op ← a real mutator: always worked
846
+ *
847
+ * That is the `UpdateLinkStyleCommand` defect (style-undo.spec.ts) one layer down, hitting
848
+ * every mutator-less register at once, and invisible to the author every time. So the
849
+ * assignment path reports what it wrote. `reportRegisterWrite` is DiagramEntity's seam
850
+ * onto the one funnel — not a second source of truth.
851
+ *
852
+ * structuredClone stays, so two entities can never end up aliasing one mutable object — a
853
+ * bug that only appears under concurrency and is then almost impossible to find.
854
+ */
855
+ function writeGeneric(entity, path, value) {
856
+ var _a;
857
+ const [head, ...rest] = path.split('.');
858
+ const holder = entity;
859
+ const cloned = structuredClone(value);
860
+ const viaMutator = ((_a = REGISTER_MUTATORS[mutatorKind(entity)]) === null || _a === void 0 ? void 0 : _a.has(head)) === true;
861
+ if (rest.length === 0) {
862
+ if (viaMutator) {
863
+ holder[`set${head[0].toUpperCase()}${head.slice(1)}`].call(entity, cloned);
864
+ return true;
865
+ }
866
+ const before = holder[head];
867
+ holder[head] = cloned;
868
+ entity.reportRegisterWrite(path, before, cloned);
869
+ return true;
870
+ }
871
+ // A DOTTED path (`data.color`): the register is the LEAF, but the field that holds it is
872
+ // the head, so the whole holder is rebuilt with the leaf replaced. The change is reported
873
+ // under the FULL path — that is the vocabulary capture emitted it with, so an undo of a
874
+ // `data.color` edit mints a `data.color` op and not a whole-`data` one.
875
+ const current = holder[head];
876
+ const next = typeof current === 'object' && current !== null && !Array.isArray(current)
877
+ ? structuredClone(current)
878
+ : {};
879
+ setPath(next, rest.join('.'), cloned);
880
+ const before = readEntityProp(entity, path);
881
+ holder[head] = next;
882
+ entity.reportRegisterWrite(path, before, cloned);
883
+ return true;
884
+ }
885
+ /** Read a diagram-level register, so a redundant write can be recognised as one. */
886
+ function readDiagramProp(diagram, path) {
887
+ if (path.startsWith('metadata.')) {
888
+ return diagram.getMetadata(path.slice('metadata.'.length));
889
+ }
890
+ let cur = diagram;
891
+ for (const part of path.split('.')) {
892
+ if (cur === null || typeof cur !== 'object')
893
+ return undefined;
894
+ cur = cur[part];
895
+ }
896
+ return cur;
897
+ }
898
+ function setDiagramProp(diagram, path, value) {
899
+ // THE DIAGRAM'S metadata IS A Map TOO — and I wrote the comment above warning about
900
+ // exactly this, fixed it for entities, and left the identical bug six lines away. The
901
+ // generic branch below would replace the Map with a plain object: getMetadata() returns
902
+ // undefined forever after, and serialize()'s Object.fromEntries(this.metadata) breaks.
903
+ // Silent, permanent, and it only bites the peer RECEIVING the edit — the one place a
904
+ // single-process test can never look.
905
+ if (path.startsWith('metadata.')) {
906
+ // A clear DELETES the key (see clearEntityProp — the Map must not keep a key
907
+ // holding undefined); a value is stored through the mutator.
908
+ if (value === undefined)
909
+ diagram.deleteMetadata(path.slice('metadata.'.length));
910
+ else
911
+ diagram.setMetadata(path.slice('metadata.'.length), structuredClone(value));
912
+ return true;
913
+ }
914
+ switch (path) {
915
+ case 'name':
916
+ // A name is never cleared — no capture path emits that — so a clear here is
917
+ // malformed traffic; refuse it rather than store the string "undefined".
918
+ if (value === undefined)
919
+ return false;
920
+ diagram.name = String(value);
921
+ return true;
922
+ default: {
923
+ const holder = diagram;
924
+ const [head, ...rest] = path.split('.');
925
+ if (rest.length === 0) {
926
+ holder[head] = structuredClone(value);
927
+ return true;
928
+ }
929
+ const current = holder[head];
930
+ const next = typeof current === 'object' && current !== null && !Array.isArray(current)
931
+ ? structuredClone(current)
932
+ : {};
933
+ setPath(next, rest.join('.'), structuredClone(value));
934
+ holder[head] = next;
935
+ return true;
936
+ }
937
+ }
938
+ }
939
+ //# sourceMappingURL=apply-op.js.map