@yorz/cli 0.1.4 → 0.1.5

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 (138) hide show
  1. package/dist/cli/index.js +133 -53
  2. package/dist/gui/assets/{abnfDiagram-VRR7QNED-BlILeZZA.js → abnfDiagram-VRR7QNED-BjiKWU_r.js} +1 -1
  3. package/dist/gui/assets/{arc-C-xJpbjF.js → arc--ZszoeC5.js} +1 -1
  4. package/dist/gui/assets/{architectureDiagram-ZJ3FMSHR-QdzNii0b.js → architectureDiagram-ZJ3FMSHR-D8beCiJM.js} +1 -1
  5. package/dist/gui/assets/{blockDiagram-677ZJIJ3-BQTAKTET.js → blockDiagram-677ZJIJ3-XTjBv4Yl.js} +1 -1
  6. package/dist/gui/assets/{c4Diagram-LMCZKHZV-YRh3fqeb.js → c4Diagram-LMCZKHZV-B8mRAP6M.js} +1 -1
  7. package/dist/gui/assets/channel-DSEvjkHE.js +1 -0
  8. package/dist/gui/assets/{chunk-2Q5K7J3B-Bgu-eeCS.js → chunk-2Q5K7J3B-yiwKrUMh.js} +1 -1
  9. package/dist/gui/assets/{chunk-32BRIVSS-DTLd8wsP.js → chunk-32BRIVSS-BKUpEqmm.js} +1 -1
  10. package/dist/gui/assets/{chunk-5VM5RSS4-Cct8HJoz.js → chunk-5VM5RSS4-DbsGyMz5.js} +1 -1
  11. package/dist/gui/assets/{chunk-EX3LRPZG-DBgaA_1N.js → chunk-EX3LRPZG-DTBuQkne.js} +1 -1
  12. package/dist/gui/assets/{chunk-JWPE2WC7-DELoF8bV.js → chunk-JWPE2WC7-Durur7_4.js} +1 -1
  13. package/dist/gui/assets/{chunk-MOJQB5TN-Du6uREYs.js → chunk-MOJQB5TN-DXNE2VJB.js} +1 -1
  14. package/dist/gui/assets/{chunk-RYQCIY6F-CxO6cQdM.js → chunk-RYQCIY6F-HY8qhnee.js} +1 -1
  15. package/dist/gui/assets/{chunk-V7JOEXUC-BiILBcGA.js → chunk-V7JOEXUC-BXRxPy5M.js} +1 -1
  16. package/dist/gui/assets/{chunk-VR4S4FIN-BfY2RvG4.js → chunk-VR4S4FIN-Ws4fVn18.js} +1 -1
  17. package/dist/gui/assets/{chunk-XXDRQBXY-DmsZw6tB.js → chunk-XXDRQBXY-CwHBGyO1.js} +1 -1
  18. package/dist/gui/assets/classDiagram-OUVF2IWQ-BN1qwPdD.js +1 -0
  19. package/dist/gui/assets/classDiagram-v2-EOCWNBFH-BN1qwPdD.js +1 -0
  20. package/dist/gui/assets/{cose-bilkent-JH36ORCC-gX-8DSxS.js → cose-bilkent-JH36ORCC-C3oDctXM.js} +1 -1
  21. package/dist/gui/assets/{cynefin-VYW2F7L2-vOfRo7cL.js → cynefin-VYW2F7L2-BjremdIM.js} +1 -1
  22. package/dist/gui/assets/{cynefinDiagram-TSTJHNR4-Dv66a7Rh.js → cynefinDiagram-TSTJHNR4-Cwe2fD65.js} +1 -1
  23. package/dist/gui/assets/{dagre-VKFMJZFB-Rk64dDvT.js → dagre-VKFMJZFB-Bx2kzeqs.js} +1 -1
  24. package/dist/gui/assets/{diagram-FQU43EPY-CyW3IjmQ.js → diagram-FQU43EPY-BVyLKNdq.js} +1 -1
  25. package/dist/gui/assets/{diagram-G47NLZAW-Caav47lW.js → diagram-G47NLZAW-DicBAwcf.js} +1 -1
  26. package/dist/gui/assets/{diagram-NH7WQ7WH-_X3ihqNf.js → diagram-NH7WQ7WH-BbRrvaYb.js} +1 -1
  27. package/dist/gui/assets/{diagram-OA4YK3LP-CjbverOE.js → diagram-OA4YK3LP-C2YIUXV5.js} +1 -1
  28. package/dist/gui/assets/{diagram-WEI45ONY-B93ZeTtT.js → diagram-WEI45ONY-DJHPHFaZ.js} +1 -1
  29. package/dist/gui/assets/{ebnfDiagram-CCIWWBDH-CdDt4bWx.js → ebnfDiagram-CCIWWBDH-DtDW0rR6.js} +1 -1
  30. package/dist/gui/assets/{erDiagram-Q63AITRT-Bypq-rvj.js → erDiagram-Q63AITRT-C5CAH1UZ.js} +1 -1
  31. package/dist/gui/assets/{flowDiagram-23GEKE2U-b-l8_7KP.js → flowDiagram-23GEKE2U-DA2WblHa.js} +1 -1
  32. package/dist/gui/assets/{ganttDiagram-NO4QXBWP-BeZFHLhX.js → ganttDiagram-NO4QXBWP-TMRYyAbG.js} +1 -1
  33. package/dist/gui/assets/{gitGraphDiagram-IHSO6WYX-C0siPGLA.js → gitGraphDiagram-IHSO6WYX-Ci-GVNac.js} +1 -1
  34. package/dist/gui/assets/index-Bq3A8DU2.js +21 -0
  35. package/dist/gui/assets/{infoDiagram-FWYZ7A6U-Bk8DNKgG.js → infoDiagram-FWYZ7A6U-BV4Ye9h-.js} +1 -1
  36. package/dist/gui/assets/{ishikawaDiagram-FXEZZL3T-DyS4wmJu.js → ishikawaDiagram-FXEZZL3T-CLBTOnXf.js} +1 -1
  37. package/dist/gui/assets/{journeyDiagram-5HDEW3XC-4jUY7Bzi.js → journeyDiagram-5HDEW3XC-BINYoOlq.js} +1 -1
  38. package/dist/gui/assets/{kanban-definition-HUTT4EX6-BRiI4KbM.js → kanban-definition-HUTT4EX6-Bvoywhuo.js} +1 -1
  39. package/dist/gui/assets/{linear-C5JkbjyJ.js → linear-CldLHplp.js} +1 -1
  40. package/dist/gui/assets/{mermaid.core-ImB_5gdE.js → mermaid.core-1Uynhu-S.js} +4 -4
  41. package/dist/gui/assets/{mindmap-definition-LN4V7U3C-9_Awmd2W.js → mindmap-definition-LN4V7U3C-Sv5B_zGg.js} +1 -1
  42. package/dist/gui/assets/{pegDiagram-2B236MQR-DF_vIYzp.js → pegDiagram-2B236MQR-CyYAur_9.js} +1 -1
  43. package/dist/gui/assets/{pieDiagram-ENE6RG2P-3TPwXSjQ.js → pieDiagram-ENE6RG2P-D3P7lu31.js} +1 -1
  44. package/dist/gui/assets/{quadrantDiagram-ABIIQ3AL-jzJ30mNi.js → quadrantDiagram-ABIIQ3AL-zmQrhKVf.js} +1 -1
  45. package/dist/gui/assets/{railroadDiagram-RFXS5EU6-B-29q3CI.js → railroadDiagram-RFXS5EU6-D5HlXQ4M.js} +1 -1
  46. package/dist/gui/assets/{requirementDiagram-TGXJPOKE-BanWpS6g.js → requirementDiagram-TGXJPOKE-BJcv5tpR.js} +1 -1
  47. package/dist/gui/assets/{sankeyDiagram-HTMAVEWB-B_sxc9IV.js → sankeyDiagram-HTMAVEWB-9R97Q-65.js} +1 -1
  48. package/dist/gui/assets/{sequenceDiagram-DBY2YBRQ-BNVav9DA.js → sequenceDiagram-DBY2YBRQ-D6v2e_UA.js} +1 -1
  49. package/dist/gui/assets/{sizeCapture-X5ZJPWSS-DbaiKjno.js → sizeCapture-X5ZJPWSS-5Ee75AoR.js} +1 -1
  50. package/dist/gui/assets/{stateDiagram-2N3HPSRC-jU5WBm6c.js → stateDiagram-2N3HPSRC-CiFKPVFd.js} +1 -1
  51. package/dist/gui/assets/stateDiagram-v2-6OUMAXLB-XeM3QPuf.js +1 -0
  52. package/dist/gui/assets/{swimlanes-5IMT3BWC-Dcmb64x2.js → swimlanes-5IMT3BWC-DejeKz32.js} +2 -2
  53. package/dist/gui/assets/swimlanesDiagram-G3AALYLV-BaUP5W6u.js +8 -0
  54. package/dist/gui/assets/{timeline-definition-FHXFAJF6-COm9ow7j.js → timeline-definition-FHXFAJF6-CpW-bina.js} +1 -1
  55. package/dist/gui/assets/{vennDiagram-L72KCM5P-DliDuTVY.js → vennDiagram-L72KCM5P-DFEDh4dV.js} +1 -1
  56. package/dist/gui/assets/{wardleyDiagram-EHGQE667-C2O_2cpw.js → wardleyDiagram-EHGQE667-B4Blcc-a.js} +1 -1
  57. package/dist/gui/assets/{xychartDiagram-FW5EYKEG-Ldmt9hoc.js → xychartDiagram-FW5EYKEG-D9idxadT.js} +1 -1
  58. package/dist/gui/index.html +1 -1
  59. package/package.json +1 -1
  60. package/dist/_commonjsHelpers-DyI1JsEH.js +0 -34
  61. package/dist/abnfDiagram-VRR7QNED-UQS77aUi.js +0 -119
  62. package/dist/api-DrYc_Ds_.js +0 -129852
  63. package/dist/arc-B1cAL3U1.js +0 -132
  64. package/dist/architectureDiagram-ZJ3FMSHR-CfWOhs-q.js +0 -8816
  65. package/dist/blockDiagram-677ZJIJ3-CLOAAFZa.js +0 -3796
  66. package/dist/c4Diagram-LMCZKHZV-BGdELGkb.js +0 -2483
  67. package/dist/certs-BeimSwB3.js +0 -14071
  68. package/dist/certs-C4t5lAmJ.js +0 -14071
  69. package/dist/certs-CLLngjpY.js +0 -14071
  70. package/dist/certs-D3fTB-0_.js +0 -14071
  71. package/dist/channel-_gQD3mZ8.js +0 -8
  72. package/dist/chunk-2Q5K7J3B-DIJkMPWD.js +0 -20
  73. package/dist/chunk-32BRIVSS-CIQb7-9I.js +0 -117
  74. package/dist/chunk-5VM5RSS4-DmlAsh6o.js +0 -20
  75. package/dist/chunk-EX3LRPZG-BEXyn5R-.js +0 -1989
  76. package/dist/chunk-JWPE2WC7-XiIefccF.js +0 -17
  77. package/dist/chunk-MOJQB5TN-CC5OBDWw.js +0 -861
  78. package/dist/chunk-RYQCIY6F-DQacsGpB.js +0 -475
  79. package/dist/chunk-V7JOEXUC-TLRsIUvf.js +0 -2027
  80. package/dist/chunk-VR4S4FIN-9AfN7RDF.js +0 -25
  81. package/dist/chunk-XXDRQBXY-DhWucSRr.js +0 -14
  82. package/dist/classDiagram-OUVF2IWQ-CN55rRkB.js +0 -20
  83. package/dist/classDiagram-v2-EOCWNBFH-CN55rRkB.js +0 -20
  84. package/dist/cose-bilkent-JH36ORCC-8uGYe6_d.js +0 -4944
  85. package/dist/cynefin-VYW2F7L2-BwTeE-TI.js +0 -32061
  86. package/dist/cynefinDiagram-TSTJHNR4-DM7ixE-v.js +0 -454
  87. package/dist/cytoscape.esm-BTopYfIb.js +0 -30347
  88. package/dist/dagre-VKFMJZFB-blEDoYen.js +0 -522
  89. package/dist/defaultLocale-wHUL1xE2.js +0 -207
  90. package/dist/diagram-FQU43EPY-MEZlmmdi.js +0 -633
  91. package/dist/diagram-G47NLZAW-DZOZvHqp.js +0 -857
  92. package/dist/diagram-NH7WQ7WH-ChpmPbZz.js +0 -213
  93. package/dist/diagram-OA4YK3LP-oy4yvrnL.js +0 -489
  94. package/dist/diagram-WEI45ONY-B3nx1cYt.js +0 -305
  95. package/dist/ebnfDiagram-CCIWWBDH-BASj7BoO.js +0 -139
  96. package/dist/erDiagram-Q63AITRT-lujHq-S9.js +0 -1239
  97. package/dist/flowDiagram-23GEKE2U-BdsAVPgU.js +0 -2349
  98. package/dist/ganttDiagram-NO4QXBWP-DUUP4lsu.js +0 -3733
  99. package/dist/gitGraphDiagram-IHSO6WYX-BdIPAtb0.js +0 -1374
  100. package/dist/graph-CE8jV7cI.js +0 -2043
  101. package/dist/gui/assets/channel-DGoXAS0B.js +0 -1
  102. package/dist/gui/assets/classDiagram-OUVF2IWQ-B4zeZ0PC.js +0 -1
  103. package/dist/gui/assets/classDiagram-v2-EOCWNBFH-B4zeZ0PC.js +0 -1
  104. package/dist/gui/assets/index-DKVgyltQ.js +0 -21
  105. package/dist/gui/assets/stateDiagram-v2-6OUMAXLB-GXq_r-DG.js +0 -1
  106. package/dist/gui/assets/swimlanesDiagram-G3AALYLV-DDE-INgq.js +0 -8
  107. package/dist/index--GoVvfUP.js +0 -5447
  108. package/dist/index-3-WDiDAh.js +0 -5466
  109. package/dist/index-CHBXZAxg.js +0 -5460
  110. package/dist/index-DeCq8xn7.js +0 -5460
  111. package/dist/infoDiagram-FWYZ7A6U-D9wo93kg.js +0 -32
  112. package/dist/init-DDGa2CQM.js +0 -17
  113. package/dist/ishikawaDiagram-FXEZZL3T-DZh3_kt2.js +0 -968
  114. package/dist/journeyDiagram-5HDEW3XC-C8RWHIn0.js +0 -1256
  115. package/dist/kanban-definition-HUTT4EX6-B7qQtB5a.js +0 -1053
  116. package/dist/katex-WjDlQEfU.js +0 -14500
  117. package/dist/layout-DQAYh_L7.js +0 -2360
  118. package/dist/linear-C_kZRZXS.js +0 -341
  119. package/dist/map-BElV7BMC.js +0 -299
  120. package/dist/mermaid.core-Dy_tFRs7.js +0 -26495
  121. package/dist/mindmap-definition-LN4V7U3C-BzHCd5Ab.js +0 -1181
  122. package/dist/ordinal-C2kkg180.js +0 -77
  123. package/dist/pegDiagram-2B236MQR-B046bQWM.js +0 -127
  124. package/dist/pieDiagram-ENE6RG2P-B5_W2CZy.js +0 -316
  125. package/dist/quadrantDiagram-ABIIQ3AL-Bbpt496h.js +0 -1342
  126. package/dist/railroadDiagram-RFXS5EU6-10XIH3X0.js +0 -93
  127. package/dist/requirementDiagram-TGXJPOKE-Dt1QyccY.js +0 -1205
  128. package/dist/sankeyDiagram-HTMAVEWB-CnqRAq7M.js +0 -1274
  129. package/dist/sequenceDiagram-DBY2YBRQ-DtJLSXoz.js +0 -4515
  130. package/dist/sizeCapture-X5ZJPWSS-DUl5ZEo3.js +0 -63
  131. package/dist/stateDiagram-2N3HPSRC-b-qzcVNj.js +0 -449
  132. package/dist/stateDiagram-v2-6OUMAXLB-KjDlRfc7.js +0 -20
  133. package/dist/swimlanes-5IMT3BWC-CAjGnQLa.js +0 -8553
  134. package/dist/swimlanesDiagram-G3AALYLV-DiOi9bzU.js +0 -16
  135. package/dist/timeline-definition-FHXFAJF6-Bme2FWbh.js +0 -1597
  136. package/dist/vennDiagram-L72KCM5P-BUQgnZDB.js +0 -2516
  137. package/dist/wardleyDiagram-EHGQE667-DHR2Avlu.js +0 -976
  138. package/dist/xychartDiagram-FW5EYKEG-V4K5eBMS.js +0 -2000
@@ -1,475 +0,0 @@
1
- #!/usr/bin/env node
2
- import { _ as __name, l as log } from "./mermaid.core-Dy_tFRs7.js";
3
- import { i as isUndefined, G as Graph } from "./graph-CE8jV7cI.js";
4
- import { b as baseClone, m as map } from "./map-BElV7BMC.js";
5
- var CLONE_SYMBOLS_FLAG = 4;
6
- function clone(value) {
7
- return baseClone(value, CLONE_SYMBOLS_FLAG);
8
- }
9
- function write(g) {
10
- var json = {
11
- options: {
12
- directed: g.isDirected(),
13
- multigraph: g.isMultigraph(),
14
- compound: g.isCompound()
15
- },
16
- nodes: writeNodes(g),
17
- edges: writeEdges(g)
18
- };
19
- if (!isUndefined(g.graph())) {
20
- json.value = clone(g.graph());
21
- }
22
- return json;
23
- }
24
- function writeNodes(g) {
25
- return map(g.nodes(), function(v) {
26
- var nodeValue = g.node(v);
27
- var parent = g.parent(v);
28
- var node = { v };
29
- if (!isUndefined(nodeValue)) {
30
- node.value = nodeValue;
31
- }
32
- if (!isUndefined(parent)) {
33
- node.parent = parent;
34
- }
35
- return node;
36
- });
37
- }
38
- function writeEdges(g) {
39
- return map(g.edges(), function(e) {
40
- var edgeValue = g.edge(e);
41
- var edge = { v: e.v, w: e.w };
42
- if (!isUndefined(e.name)) {
43
- edge.name = e.name;
44
- }
45
- if (!isUndefined(edgeValue)) {
46
- edge.value = edgeValue;
47
- }
48
- return edge;
49
- });
50
- }
51
- var clusterDb = /* @__PURE__ */ new Map();
52
- var descendants = /* @__PURE__ */ new Map();
53
- var parents = /* @__PURE__ */ new Map();
54
- var clear = /* @__PURE__ */ __name(() => {
55
- descendants.clear();
56
- parents.clear();
57
- clusterDb.clear();
58
- }, "clear");
59
- var isDescendant = /* @__PURE__ */ __name((id, ancestorId) => {
60
- const ancestorDescendants = descendants.get(ancestorId) || [];
61
- log.trace("In isDescendant", ancestorId, " ", id, " = ", ancestorDescendants.includes(id));
62
- return ancestorDescendants.includes(id);
63
- }, "isDescendant");
64
- var edgeInCluster = /* @__PURE__ */ __name((edge, clusterId) => {
65
- const clusterDescendants = descendants.get(clusterId) || [];
66
- log.info("Descendants of ", clusterId, " is ", clusterDescendants);
67
- log.info("Edge is ", edge);
68
- if (edge.v === clusterId || edge.w === clusterId) {
69
- return false;
70
- }
71
- if (!clusterDescendants) {
72
- log.debug("Tilt, ", clusterId, ",not in descendants");
73
- return false;
74
- }
75
- return clusterDescendants.includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || clusterDescendants.includes(edge.w);
76
- }, "edgeInCluster");
77
- var copy = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {
78
- log.warn(
79
- "Copying children of ",
80
- clusterId,
81
- "root",
82
- rootId,
83
- "data",
84
- graph.node(clusterId),
85
- rootId
86
- );
87
- const nodes = graph.children(clusterId) || [];
88
- if (clusterId !== rootId) {
89
- nodes.push(clusterId);
90
- }
91
- log.warn("Copying (nodes) clusterId", clusterId, "nodes", nodes);
92
- nodes.forEach((node) => {
93
- if (graph.children(node).length > 0) {
94
- copy(node, graph, newGraph, rootId);
95
- } else {
96
- const data = graph.node(node);
97
- log.info("cp ", node, " to ", rootId, " with parent ", clusterId);
98
- newGraph.setNode(node, data);
99
- if (rootId !== graph.parent(node)) {
100
- log.warn("Setting parent", node, graph.parent(node));
101
- newGraph.setParent(node, graph.parent(node));
102
- }
103
- if (clusterId !== rootId && node !== clusterId) {
104
- log.debug("Setting parent", node, clusterId);
105
- newGraph.setParent(node, clusterId);
106
- } else {
107
- log.info("In copy ", clusterId, "root", rootId, "data", graph.node(clusterId), rootId);
108
- log.debug(
109
- "Not Setting parent for node=",
110
- node,
111
- "cluster!==rootId",
112
- clusterId !== rootId,
113
- "node!==clusterId",
114
- node !== clusterId
115
- );
116
- }
117
- const edges = graph.edges(node);
118
- log.debug("Copying Edges", edges);
119
- edges.forEach((edge) => {
120
- log.info("Edge", edge);
121
- const data2 = graph.edge(edge.v, edge.w, edge.name);
122
- log.info("Edge data", data2, rootId);
123
- try {
124
- if (edgeInCluster(edge, rootId)) {
125
- const rootDescendants = descendants.get(rootId) || [];
126
- const vIn = rootDescendants.includes(edge.v) || isDescendant(edge.v, rootId) || edge.v === rootId;
127
- const wIn = rootDescendants.includes(edge.w) || isDescendant(edge.w, rootId) || edge.w === rootId;
128
- if (vIn && wIn) {
129
- log.info("Copying as ", edge.v, edge.w, data2, edge.name);
130
- newGraph.setEdge(edge.v, edge.w, data2, edge.name);
131
- log.info("newGraph edges ", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));
132
- } else {
133
- const newV = vIn ? rootId : edge.v;
134
- const newW = wIn ? rootId : edge.w;
135
- log.info("Rebinding cross-boundary edge as ", newV, newW, data2, edge.name);
136
- graph.setEdge(newV, newW, data2, edge.name);
137
- }
138
- } else {
139
- log.info(
140
- "Skipping copy of edge ",
141
- edge.v,
142
- "-->",
143
- edge.w,
144
- " rootId: ",
145
- rootId,
146
- " clusterId:",
147
- clusterId
148
- );
149
- }
150
- } catch (e) {
151
- log.error(e);
152
- }
153
- });
154
- }
155
- log.debug("Removing node", node);
156
- graph.removeNode(node);
157
- });
158
- }, "copy");
159
- var extractDescendants = /* @__PURE__ */ __name((id, graph) => {
160
- const children = graph.children(id);
161
- let res = [...children];
162
- for (const child of children) {
163
- parents.set(child, id);
164
- res = [...res, ...extractDescendants(child, graph)];
165
- }
166
- return res;
167
- }, "extractDescendants");
168
- var findCommonEdges = /* @__PURE__ */ __name((graph, id1, id2) => {
169
- const edges1 = graph.edges().filter((edge) => edge.v === id1 || edge.w === id1);
170
- const edges2 = graph.edges().filter((edge) => edge.v === id2 || edge.w === id2);
171
- const edges1Prim = edges1.map((edge) => {
172
- return { v: edge.v === id1 ? id2 : edge.v, w: edge.w === id1 ? id1 : edge.w };
173
- });
174
- const edges2Prim = edges2.map((edge) => {
175
- return { v: edge.v, w: edge.w };
176
- });
177
- const result = edges1Prim.filter((edgeIn1) => {
178
- return edges2Prim.some((edge) => edgeIn1.v === edge.v && edgeIn1.w === edge.w);
179
- });
180
- return result;
181
- }, "findCommonEdges");
182
- var findNonClusterChild = /* @__PURE__ */ __name((id, graph, clusterId) => {
183
- const children = graph.children(id);
184
- log.trace("Searching children of id ", id, children);
185
- if (children.length < 1) {
186
- return id;
187
- }
188
- let reserve;
189
- for (const child of children) {
190
- const _id = findNonClusterChild(child, graph, clusterId);
191
- const commonEdges = findCommonEdges(graph, clusterId, _id);
192
- if (_id) {
193
- if (commonEdges.length > 0) {
194
- reserve = _id;
195
- } else {
196
- return _id;
197
- }
198
- }
199
- }
200
- return reserve;
201
- }, "findNonClusterChild");
202
- var getAnchorId = /* @__PURE__ */ __name((id) => {
203
- if (!clusterDb.has(id)) {
204
- return id;
205
- }
206
- if (!clusterDb.get(id).externalConnections) {
207
- return id;
208
- }
209
- if (clusterDb.has(id)) {
210
- return clusterDb.get(id).id;
211
- }
212
- return id;
213
- }, "getAnchorId");
214
- var adjustClustersAndEdges = /* @__PURE__ */ __name((graph, depth) => {
215
- if (!graph || depth > 10) {
216
- log.debug("Opting out, no graph ");
217
- return;
218
- } else {
219
- log.debug("Opting in, graph ");
220
- }
221
- graph.nodes().forEach(function(id) {
222
- const children = graph.children(id);
223
- if (children.length > 0) {
224
- log.warn(
225
- "Cluster identified",
226
- id,
227
- " Replacement id in edges: ",
228
- findNonClusterChild(id, graph, id)
229
- );
230
- descendants.set(id, extractDescendants(id, graph));
231
- clusterDb.set(id, { id: findNonClusterChild(id, graph, id), clusterData: graph.node(id) });
232
- }
233
- });
234
- graph.nodes().forEach(function(id) {
235
- const children = graph.children(id);
236
- const edges = graph.edges();
237
- if (children.length > 0) {
238
- log.debug("Cluster identified", id, descendants);
239
- edges.forEach((edge) => {
240
- const d1 = isDescendant(edge.v, id);
241
- const d2 = isDescendant(edge.w, id);
242
- if (d1 ^ d2) {
243
- log.warn("Edge: ", edge, " leaves cluster ", id);
244
- log.warn("Descendants of XXX ", id, ": ", descendants.get(id));
245
- clusterDb.get(id).externalConnections = true;
246
- }
247
- });
248
- } else {
249
- log.debug("Not a cluster ", id, descendants);
250
- }
251
- });
252
- for (let id of clusterDb.keys()) {
253
- const nonClusterChild = clusterDb.get(id).id;
254
- const parent = graph.parent(nonClusterChild);
255
- if (parent !== id && clusterDb.has(parent) && !clusterDb.get(parent).externalConnections) {
256
- clusterDb.get(id).id = parent;
257
- }
258
- const hasDirectOutgoingEdge = graph.edges().some((edge) => edge.v === id);
259
- if (nonClusterChild && clusterDb.get(id)?.externalConnections && hasDirectOutgoingEdge && isNodeInExtractableCluster(graph, nonClusterChild, id)) {
260
- const safeAnchor = findSafeAnchorNode(graph, id, graph.parent(nonClusterChild));
261
- if (safeAnchor) {
262
- clusterDb.get(id).id = safeAnchor;
263
- }
264
- }
265
- }
266
- graph.edges().forEach(function(e) {
267
- const edge = graph.edge(e);
268
- log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
269
- log.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e)));
270
- let v = e.v;
271
- let w = e.w;
272
- log.warn(
273
- "Fix XXX",
274
- clusterDb,
275
- "ids:",
276
- e.v,
277
- e.w,
278
- "Translating: ",
279
- clusterDb.get(e.v),
280
- " --- ",
281
- clusterDb.get(e.w)
282
- );
283
- if (clusterDb.get(e.v) || clusterDb.get(e.w)) {
284
- log.warn("Fixing and trying - removing XXX", e.v, e.w, e.name);
285
- v = getAnchorId(e.v);
286
- w = getAnchorId(e.w);
287
- graph.removeEdge(e.v, e.w, e.name);
288
- if (v !== e.v) {
289
- const parent = graph.parent(v);
290
- clusterDb.get(parent).externalConnections = true;
291
- edge.fromCluster = e.v;
292
- }
293
- if (w !== e.w) {
294
- const parent = graph.parent(w);
295
- clusterDb.get(parent).externalConnections = true;
296
- edge.toCluster = e.w;
297
- }
298
- log.warn("Fix Replacing with XXX", v, w, e.name);
299
- graph.setEdge(v, w, edge, e.name);
300
- }
301
- });
302
- log.warn("Adjusted Graph", write(graph));
303
- extractor(graph, 0);
304
- log.trace(clusterDb);
305
- }, "adjustClustersAndEdges");
306
- var extractor = /* @__PURE__ */ __name((graph, depth) => {
307
- log.warn("extractor - ", depth, write(graph), graph.children("D"));
308
- if (depth > 10) {
309
- log.error("Bailing out");
310
- return;
311
- }
312
- let nodes = graph.nodes();
313
- let hasChildren = false;
314
- for (const node of nodes) {
315
- const children = graph.children(node);
316
- hasChildren = hasChildren || children.length > 0;
317
- }
318
- if (!hasChildren) {
319
- log.debug("Done, no node has children", graph.nodes());
320
- return;
321
- }
322
- log.debug("Nodes = ", nodes, depth);
323
- for (const node of nodes) {
324
- log.debug(
325
- "Extracting node",
326
- node,
327
- clusterDb,
328
- clusterDb.has(node) && !clusterDb.get(node).externalConnections,
329
- !graph.parent(node),
330
- graph.node(node),
331
- graph.children("D"),
332
- " Depth ",
333
- depth
334
- );
335
- if (!clusterDb.has(node)) {
336
- log.debug("Not a cluster", node, depth);
337
- } else if (clusterDb.get(node)?.clusterData?.explicitDir && graph.children(node) && graph.children(node).length > 0) {
338
- log.warn("Cluster with explicit dir, creating subgraph for children", node, depth);
339
- const dir = clusterDb.get(node).clusterData.dir;
340
- const clusterGraph = new Graph({
341
- multigraph: true,
342
- compound: true
343
- }).setGraph({
344
- rankdir: dir,
345
- nodesep: 50,
346
- ranksep: 50,
347
- marginx: 8,
348
- marginy: 8
349
- }).setDefaultEdgeLabel(function() {
350
- return {};
351
- });
352
- copy(node, graph, clusterGraph, node);
353
- const clusterNodeData = graph.node(node) || {};
354
- graph.setNode(node, {
355
- ...clusterNodeData,
356
- clusterNode: true,
357
- id: node,
358
- clusterData: clusterDb.get(node).clusterData,
359
- label: clusterDb.get(node).label,
360
- graph: clusterGraph
361
- });
362
- log.warn(
363
- "Subgraph for cluster with explicit dir created:",
364
- node,
365
- write(clusterGraph)
366
- );
367
- } else if (!clusterDb.get(node).externalConnections && graph.children(node) && graph.children(node).length > 0) {
368
- log.warn(
369
- "Cluster without external connections, without a parent and with children",
370
- node,
371
- depth
372
- );
373
- const graphSettings = graph.graph();
374
- let dir = graphSettings.rankdir === "TB" ? "LR" : "TB";
375
- if (clusterDb.get(node)?.clusterData?.dir) {
376
- dir = clusterDb.get(node).clusterData.dir;
377
- log.warn("Fixing dir", clusterDb.get(node).clusterData.dir, dir);
378
- }
379
- const clusterGraph = new Graph({
380
- multigraph: true,
381
- compound: true
382
- }).setGraph({
383
- rankdir: dir,
384
- nodesep: 50,
385
- ranksep: 50,
386
- marginx: 8,
387
- marginy: 8
388
- }).setDefaultEdgeLabel(function() {
389
- return {};
390
- });
391
- copy(node, graph, clusterGraph, node);
392
- const clusterNodeData = graph.node(node) || {};
393
- graph.setNode(node, {
394
- ...clusterNodeData,
395
- clusterNode: true,
396
- id: node,
397
- clusterData: clusterDb.get(node).clusterData,
398
- label: clusterDb.get(node).label,
399
- graph: clusterGraph
400
- });
401
- log.debug("Old graph after copy", write(graph));
402
- } else {
403
- log.warn(
404
- "Cluster ** ",
405
- node,
406
- " **not meeting the criteria !externalConnections:",
407
- !clusterDb.get(node).externalConnections,
408
- " no parent: ",
409
- !graph.parent(node),
410
- " children ",
411
- graph.children(node) && graph.children(node).length > 0,
412
- graph.children("D"),
413
- depth
414
- );
415
- log.debug(clusterDb);
416
- }
417
- }
418
- nodes = graph.nodes();
419
- log.warn("New list of nodes", nodes);
420
- for (const node of nodes) {
421
- const data = graph.node(node);
422
- log.warn(" Now next level", node, data);
423
- if (data?.clusterNode) {
424
- extractor(data.graph, depth + 1);
425
- }
426
- }
427
- }, "extractor");
428
- var sorter = /* @__PURE__ */ __name((graph, nodes) => {
429
- if (nodes.length === 0) {
430
- return [];
431
- }
432
- let result = Object.assign([], nodes);
433
- nodes.forEach((node) => {
434
- const children = graph.children(node);
435
- const sorted = sorter(graph, children);
436
- result = [...result, ...sorted];
437
- });
438
- return result;
439
- }, "sorter");
440
- var sortNodesByHierarchy = /* @__PURE__ */ __name((graph) => sorter(graph, graph.children()), "sortNodesByHierarchy");
441
- var isNodeInExtractableCluster = /* @__PURE__ */ __name((graph, node, rootId) => {
442
- let parent = graph.parent(node);
443
- while (parent && parent !== rootId) {
444
- const cluster = clusterDb.get(parent);
445
- if (cluster && !cluster.externalConnections) {
446
- return true;
447
- }
448
- parent = graph.parent(parent);
449
- }
450
- return false;
451
- }, "isNodeInExtractableCluster");
452
- var findSafeAnchorNode = /* @__PURE__ */ __name((graph, clusterId, excludedCluster) => {
453
- const children = graph.children(clusterId) ?? [];
454
- for (const child of children) {
455
- if (child === excludedCluster || isDescendant(child, excludedCluster)) {
456
- continue;
457
- }
458
- const candidate = findNonClusterChild(child, graph, clusterId);
459
- if (!candidate) {
460
- continue;
461
- }
462
- if (!isNodeInExtractableCluster(graph, candidate, clusterId)) {
463
- return candidate;
464
- }
465
- }
466
- return null;
467
- }, "findSafeAnchorNode");
468
- export {
469
- adjustClustersAndEdges as a,
470
- clusterDb as b,
471
- clear as c,
472
- findNonClusterChild as f,
473
- sortNodesByHierarchy as s,
474
- write as w
475
- };