@aiquants/markdown 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/dist/{abnfDiagram-VRR7QNED-C-27Yna6.js → abnfDiagram-VRR7QNED-Dr7UU5eU.js} +4 -4
  2. package/dist/{abnfDiagram-VRR7QNED-C-27Yna6.js.map → abnfDiagram-VRR7QNED-Dr7UU5eU.js.map} +1 -1
  3. package/dist/{abnfDiagram-VRR7QNED-BKvRUGcR.cjs → abnfDiagram-VRR7QNED-osaZqj2I.cjs} +2 -2
  4. package/dist/{abnfDiagram-VRR7QNED-BKvRUGcR.cjs.map → abnfDiagram-VRR7QNED-osaZqj2I.cjs.map} +1 -1
  5. package/dist/{arc-CUOoCqkh.cjs → arc-C8EnnvAn.cjs} +2 -2
  6. package/dist/{arc-CUOoCqkh.cjs.map → arc-C8EnnvAn.cjs.map} +1 -1
  7. package/dist/{arc-UxDDNW0x.js → arc-g46vGFIF.js} +2 -2
  8. package/dist/{arc-UxDDNW0x.js.map → arc-g46vGFIF.js.map} +1 -1
  9. package/dist/{architectureDiagram-ZJ3FMSHR-Ch5Nf0Ae.js → architectureDiagram-ZJ3FMSHR-3oAk2bEr.js} +3 -3
  10. package/dist/{architectureDiagram-ZJ3FMSHR-Ch5Nf0Ae.js.map → architectureDiagram-ZJ3FMSHR-3oAk2bEr.js.map} +1 -1
  11. package/dist/{architectureDiagram-ZJ3FMSHR-kO8dZQKK.cjs → architectureDiagram-ZJ3FMSHR-CYGLP-kN.cjs} +2 -2
  12. package/dist/{architectureDiagram-ZJ3FMSHR-kO8dZQKK.cjs.map → architectureDiagram-ZJ3FMSHR-CYGLP-kN.cjs.map} +1 -1
  13. package/dist/{blockDiagram-677ZJIJ3-CuCBVVNa.js → blockDiagram-677ZJIJ3-BVG2lo9V.js} +4 -4
  14. package/dist/{blockDiagram-677ZJIJ3-CuCBVVNa.js.map → blockDiagram-677ZJIJ3-BVG2lo9V.js.map} +1 -1
  15. package/dist/{blockDiagram-677ZJIJ3-BbjxBeAD.cjs → blockDiagram-677ZJIJ3-Bjc5iLcZ.cjs} +2 -2
  16. package/dist/{blockDiagram-677ZJIJ3-BbjxBeAD.cjs.map → blockDiagram-677ZJIJ3-Bjc5iLcZ.cjs.map} +1 -1
  17. package/dist/{c4Diagram-LMCZKHZV-BdJV5ivG.js → c4Diagram-LMCZKHZV-CxAlsF4T.js} +3 -3
  18. package/dist/{c4Diagram-LMCZKHZV-BdJV5ivG.js.map → c4Diagram-LMCZKHZV-CxAlsF4T.js.map} +1 -1
  19. package/dist/{c4Diagram-LMCZKHZV-BgTfc_W8.cjs → c4Diagram-LMCZKHZV-eoTI_-fn.cjs} +2 -2
  20. package/dist/{c4Diagram-LMCZKHZV-BgTfc_W8.cjs.map → c4Diagram-LMCZKHZV-eoTI_-fn.cjs.map} +1 -1
  21. package/dist/channel-D_6dvHAs.js +6 -0
  22. package/dist/{channel-BaZK7NhX.js.map → channel-D_6dvHAs.js.map} +1 -1
  23. package/dist/channel-zt9HkRFF.cjs +2 -0
  24. package/dist/{channel-DcZBUEY6.cjs.map → channel-zt9HkRFF.cjs.map} +1 -1
  25. package/dist/{chunk-2Q5K7J3B-CSlHTmMh.js → chunk-2Q5K7J3B-DXf8udxv.js} +2 -2
  26. package/dist/{chunk-2Q5K7J3B-CSlHTmMh.js.map → chunk-2Q5K7J3B-DXf8udxv.js.map} +1 -1
  27. package/dist/{chunk-2Q5K7J3B-D9s6eCoM.cjs → chunk-2Q5K7J3B-FJUed_m_.cjs} +2 -2
  28. package/dist/{chunk-2Q5K7J3B-D9s6eCoM.cjs.map → chunk-2Q5K7J3B-FJUed_m_.cjs.map} +1 -1
  29. package/dist/{chunk-32BRIVSS-D2F2B9TZ.cjs → chunk-32BRIVSS-B-weOSo5.cjs} +2 -2
  30. package/dist/{chunk-32BRIVSS-D2F2B9TZ.cjs.map → chunk-32BRIVSS-B-weOSo5.cjs.map} +1 -1
  31. package/dist/{chunk-32BRIVSS-CXH5EQUk.js → chunk-32BRIVSS-RrFz8EL9.js} +2 -2
  32. package/dist/{chunk-32BRIVSS-CXH5EQUk.js.map → chunk-32BRIVSS-RrFz8EL9.js.map} +1 -1
  33. package/dist/{chunk-5VM5RSS4-CxjaLXsB.cjs → chunk-5VM5RSS4-BF_oSGlQ.cjs} +2 -2
  34. package/dist/{chunk-5VM5RSS4-CxjaLXsB.cjs.map → chunk-5VM5RSS4-BF_oSGlQ.cjs.map} +1 -1
  35. package/dist/{chunk-5VM5RSS4-BhTMtA9l.js → chunk-5VM5RSS4-BzNAhFN7.js} +2 -2
  36. package/dist/{chunk-5VM5RSS4-BhTMtA9l.js.map → chunk-5VM5RSS4-BzNAhFN7.js.map} +1 -1
  37. package/dist/{chunk-EX3LRPZG-BOcBE4jP.js → chunk-EX3LRPZG-B9zZRXsZ.js} +5 -5
  38. package/dist/{chunk-EX3LRPZG-BOcBE4jP.js.map → chunk-EX3LRPZG-B9zZRXsZ.js.map} +1 -1
  39. package/dist/{chunk-EX3LRPZG-BCQ_eMbL.cjs → chunk-EX3LRPZG-Gb8J8JVA.cjs} +2 -2
  40. package/dist/{chunk-EX3LRPZG-BCQ_eMbL.cjs.map → chunk-EX3LRPZG-Gb8J8JVA.cjs.map} +1 -1
  41. package/dist/{chunk-JWPE2WC7-CLCAyxUO.cjs → chunk-JWPE2WC7-9QA7E4CD.cjs} +2 -2
  42. package/dist/{chunk-JWPE2WC7-CLCAyxUO.cjs.map → chunk-JWPE2WC7-9QA7E4CD.cjs.map} +1 -1
  43. package/dist/{chunk-JWPE2WC7-C20BXRVN.js → chunk-JWPE2WC7-Ys8O39it.js} +2 -2
  44. package/dist/{chunk-JWPE2WC7-C20BXRVN.js.map → chunk-JWPE2WC7-Ys8O39it.js.map} +1 -1
  45. package/dist/{chunk-MOJQB5TN-B_C5dwTy.js → chunk-MOJQB5TN-DdwwbAD7.js} +2 -2
  46. package/dist/{chunk-MOJQB5TN-B_C5dwTy.js.map → chunk-MOJQB5TN-DdwwbAD7.js.map} +1 -1
  47. package/dist/{chunk-MOJQB5TN-Bbpbi357.cjs → chunk-MOJQB5TN-Kf285FEV.cjs} +2 -2
  48. package/dist/{chunk-MOJQB5TN-Bbpbi357.cjs.map → chunk-MOJQB5TN-Kf285FEV.cjs.map} +1 -1
  49. package/dist/{chunk-PUDLZKDR-C0EKSRvH.js → chunk-PUDLZKDR-Be-8gjs7.js} +7 -7
  50. package/dist/{chunk-PUDLZKDR-C0EKSRvH.js.map → chunk-PUDLZKDR-Be-8gjs7.js.map} +1 -1
  51. package/dist/{chunk-PUDLZKDR-Cpp-nasK.cjs → chunk-PUDLZKDR-Bt1FlwaU.cjs} +2 -2
  52. package/dist/{chunk-PUDLZKDR-Cpp-nasK.cjs.map → chunk-PUDLZKDR-Bt1FlwaU.cjs.map} +1 -1
  53. package/dist/{chunk-RYQCIY6F-BuIkG6A2.js → chunk-RYQCIY6F-BBUUnDvx.js} +2 -2
  54. package/dist/{chunk-RYQCIY6F-BuIkG6A2.js.map → chunk-RYQCIY6F-BBUUnDvx.js.map} +1 -1
  55. package/dist/{chunk-RYQCIY6F-he5fUSYo.cjs → chunk-RYQCIY6F-BaozHSpS.cjs} +2 -2
  56. package/dist/{chunk-RYQCIY6F-he5fUSYo.cjs.map → chunk-RYQCIY6F-BaozHSpS.cjs.map} +1 -1
  57. package/dist/{chunk-V7JOEXUC-DWnZRQBl.js → chunk-V7JOEXUC-BpOeSTIu.js} +6 -6
  58. package/dist/{chunk-V7JOEXUC-DWnZRQBl.js.map → chunk-V7JOEXUC-BpOeSTIu.js.map} +1 -1
  59. package/dist/{chunk-V7JOEXUC-BcBXzffo.cjs → chunk-V7JOEXUC-CyfQVQj2.cjs} +2 -2
  60. package/dist/{chunk-V7JOEXUC-BcBXzffo.cjs.map → chunk-V7JOEXUC-CyfQVQj2.cjs.map} +1 -1
  61. package/dist/{chunk-VR4S4FIN-Bd3wwAe8.cjs → chunk-VR4S4FIN-B8N8meZf.cjs} +2 -2
  62. package/dist/{chunk-VR4S4FIN-Bd3wwAe8.cjs.map → chunk-VR4S4FIN-B8N8meZf.cjs.map} +1 -1
  63. package/dist/{chunk-VR4S4FIN-BWCLM0a0.js → chunk-VR4S4FIN-Dshtsgib.js} +2 -2
  64. package/dist/{chunk-VR4S4FIN-BWCLM0a0.js.map → chunk-VR4S4FIN-Dshtsgib.js.map} +1 -1
  65. package/dist/{chunk-XXDRQBXY-qt9x9red.js → chunk-XXDRQBXY-Bcfw5A34.js} +2 -2
  66. package/dist/{chunk-XXDRQBXY-qt9x9red.js.map → chunk-XXDRQBXY-Bcfw5A34.js.map} +1 -1
  67. package/dist/{chunk-XXDRQBXY-C2UaLfce.cjs → chunk-XXDRQBXY-CxhRgT48.cjs} +2 -2
  68. package/dist/{chunk-XXDRQBXY-C2UaLfce.cjs.map → chunk-XXDRQBXY-CxhRgT48.cjs.map} +1 -1
  69. package/dist/{classDiagram-OUVF2IWQ-B0lJPbAq.js → classDiagram-OUVF2IWQ-B_3EhS80.js} +3 -3
  70. package/dist/{classDiagram-OUVF2IWQ-B0lJPbAq.js.map → classDiagram-OUVF2IWQ-B_3EhS80.js.map} +1 -1
  71. package/dist/{classDiagram-OUVF2IWQ-BoGCNSIO.cjs → classDiagram-OUVF2IWQ-DOcjEhYu.cjs} +2 -2
  72. package/dist/{classDiagram-OUVF2IWQ-BoGCNSIO.cjs.map → classDiagram-OUVF2IWQ-DOcjEhYu.cjs.map} +1 -1
  73. package/dist/{classDiagram-v2-EOCWNBFH-B0lJPbAq.js → classDiagram-v2-EOCWNBFH-B_3EhS80.js} +3 -3
  74. package/dist/{classDiagram-v2-EOCWNBFH-B0lJPbAq.js.map → classDiagram-v2-EOCWNBFH-B_3EhS80.js.map} +1 -1
  75. package/dist/{classDiagram-v2-EOCWNBFH-BoGCNSIO.cjs → classDiagram-v2-EOCWNBFH-DOcjEhYu.cjs} +2 -2
  76. package/dist/{classDiagram-v2-EOCWNBFH-BoGCNSIO.cjs.map → classDiagram-v2-EOCWNBFH-DOcjEhYu.cjs.map} +1 -1
  77. package/dist/{cose-bilkent-JH36ORCC-BXH9dl_0.js → cose-bilkent-JH36ORCC-4Q9Bop96.js} +2 -2
  78. package/dist/{cose-bilkent-JH36ORCC-BXH9dl_0.js.map → cose-bilkent-JH36ORCC-4Q9Bop96.js.map} +1 -1
  79. package/dist/{cose-bilkent-JH36ORCC-DRBzHIcA.cjs → cose-bilkent-JH36ORCC-C71XbNqh.cjs} +2 -2
  80. package/dist/{cose-bilkent-JH36ORCC-DRBzHIcA.cjs.map → cose-bilkent-JH36ORCC-C71XbNqh.cjs.map} +1 -1
  81. package/dist/{cynefinDiagram-TSTJHNR4-2jnqksgG.js → cynefinDiagram-TSTJHNR4-BaRDmYD8.js} +3 -3
  82. package/dist/{cynefinDiagram-TSTJHNR4-2jnqksgG.js.map → cynefinDiagram-TSTJHNR4-BaRDmYD8.js.map} +1 -1
  83. package/dist/{cynefinDiagram-TSTJHNR4-Ge9B88rS.cjs → cynefinDiagram-TSTJHNR4-VoNIIOad.cjs} +2 -2
  84. package/dist/{cynefinDiagram-TSTJHNR4-Ge9B88rS.cjs.map → cynefinDiagram-TSTJHNR4-VoNIIOad.cjs.map} +1 -1
  85. package/dist/{dagre-VKFMJZFB-BqLynzOx.js → dagre-VKFMJZFB-BGA-FZZP.js} +3 -3
  86. package/dist/{dagre-VKFMJZFB-BqLynzOx.js.map → dagre-VKFMJZFB-BGA-FZZP.js.map} +1 -1
  87. package/dist/{dagre-VKFMJZFB-C7QheUvc.cjs → dagre-VKFMJZFB-D52PY7nT.cjs} +2 -2
  88. package/dist/{dagre-VKFMJZFB-C7QheUvc.cjs.map → dagre-VKFMJZFB-D52PY7nT.cjs.map} +1 -1
  89. package/dist/{diagram-FQU43EPY-DUwsAw4u.js → diagram-FQU43EPY-BH34FnjN.js} +3 -3
  90. package/dist/{diagram-FQU43EPY-DUwsAw4u.js.map → diagram-FQU43EPY-BH34FnjN.js.map} +1 -1
  91. package/dist/{diagram-FQU43EPY-CSPyECaU.cjs → diagram-FQU43EPY-DYIgOEEc.cjs} +2 -2
  92. package/dist/{diagram-FQU43EPY-CSPyECaU.cjs.map → diagram-FQU43EPY-DYIgOEEc.cjs.map} +1 -1
  93. package/dist/{diagram-G47NLZAW-h09HILJg.js → diagram-G47NLZAW-WChF28z7.js} +4 -4
  94. package/dist/{diagram-G47NLZAW-h09HILJg.js.map → diagram-G47NLZAW-WChF28z7.js.map} +1 -1
  95. package/dist/{diagram-G47NLZAW-BaP0Lyg0.cjs → diagram-G47NLZAW-mH3HKzoo.cjs} +2 -2
  96. package/dist/{diagram-G47NLZAW-BaP0Lyg0.cjs.map → diagram-G47NLZAW-mH3HKzoo.cjs.map} +1 -1
  97. package/dist/{diagram-NH7WQ7WH-BE3XRcGY.js → diagram-NH7WQ7WH-Kd0O24I4.js} +3 -3
  98. package/dist/{diagram-NH7WQ7WH-BE3XRcGY.js.map → diagram-NH7WQ7WH-Kd0O24I4.js.map} +1 -1
  99. package/dist/{diagram-NH7WQ7WH-DyJw7-Gl.cjs → diagram-NH7WQ7WH-tdTq_AHi.cjs} +2 -2
  100. package/dist/{diagram-NH7WQ7WH-DyJw7-Gl.cjs.map → diagram-NH7WQ7WH-tdTq_AHi.cjs.map} +1 -1
  101. package/dist/{diagram-OA4YK3LP-DqYpt5F6.cjs → diagram-OA4YK3LP-CPiH3LUJ.cjs} +2 -2
  102. package/dist/{diagram-OA4YK3LP-DqYpt5F6.cjs.map → diagram-OA4YK3LP-CPiH3LUJ.cjs.map} +1 -1
  103. package/dist/{diagram-OA4YK3LP-BfAM9MZv.js → diagram-OA4YK3LP-qCKyKhei.js} +4 -4
  104. package/dist/{diagram-OA4YK3LP-BfAM9MZv.js.map → diagram-OA4YK3LP-qCKyKhei.js.map} +1 -1
  105. package/dist/{diagram-WEI45ONY-fz5dqgqy.cjs → diagram-WEI45ONY-CkB_vnAD.cjs} +2 -2
  106. package/dist/{diagram-WEI45ONY-fz5dqgqy.cjs.map → diagram-WEI45ONY-CkB_vnAD.cjs.map} +1 -1
  107. package/dist/{diagram-WEI45ONY-DtFOpBM4.js → diagram-WEI45ONY-I3v-4Jps.js} +3 -3
  108. package/dist/{diagram-WEI45ONY-DtFOpBM4.js.map → diagram-WEI45ONY-I3v-4Jps.js.map} +1 -1
  109. package/dist/{ebnfDiagram-CCIWWBDH-Haez4su4.cjs → ebnfDiagram-CCIWWBDH-D01FrBLw.cjs} +2 -2
  110. package/dist/{ebnfDiagram-CCIWWBDH-Haez4su4.cjs.map → ebnfDiagram-CCIWWBDH-D01FrBLw.cjs.map} +1 -1
  111. package/dist/{ebnfDiagram-CCIWWBDH-CyKVhKIb.js → ebnfDiagram-CCIWWBDH-qRQliEDI.js} +4 -4
  112. package/dist/{ebnfDiagram-CCIWWBDH-CyKVhKIb.js.map → ebnfDiagram-CCIWWBDH-qRQliEDI.js.map} +1 -1
  113. package/dist/{erDiagram-Q63AITRT-9hM3kPUW.js → erDiagram-Q63AITRT-81z7zEmD.js} +5 -5
  114. package/dist/{erDiagram-Q63AITRT-9hM3kPUW.js.map → erDiagram-Q63AITRT-81z7zEmD.js.map} +1 -1
  115. package/dist/{erDiagram-Q63AITRT-BGEWGa_b.cjs → erDiagram-Q63AITRT-CaLgABim.cjs} +2 -2
  116. package/dist/{erDiagram-Q63AITRT-BGEWGa_b.cjs.map → erDiagram-Q63AITRT-CaLgABim.cjs.map} +1 -1
  117. package/dist/{extractHeadings-BH0T7P4n.js → extractHeadings-Bfq3sy4n.js} +135 -133
  118. package/dist/{extractHeadings-BH0T7P4n.js.map → extractHeadings-Bfq3sy4n.js.map} +1 -1
  119. package/dist/{extractHeadings-BsiIYa_e.cjs → extractHeadings-D7EoVxUv.cjs} +13 -13
  120. package/dist/{extractHeadings-BsiIYa_e.cjs.map → extractHeadings-D7EoVxUv.cjs.map} +1 -1
  121. package/dist/flowDiagram-23GEKE2U-DC7fT93H.js +8 -0
  122. package/dist/flowDiagram-23GEKE2U-DC7fT93H.js.map +1 -0
  123. package/dist/flowDiagram-23GEKE2U-Dd4et2lu.cjs +2 -0
  124. package/dist/flowDiagram-23GEKE2U-Dd4et2lu.cjs.map +1 -0
  125. package/dist/{ganttDiagram-NO4QXBWP-4BbeHi64.cjs → ganttDiagram-NO4QXBWP-DM3HYvkR.cjs} +2 -2
  126. package/dist/{ganttDiagram-NO4QXBWP-4BbeHi64.cjs.map → ganttDiagram-NO4QXBWP-DM3HYvkR.cjs.map} +1 -1
  127. package/dist/{ganttDiagram-NO4QXBWP-DtM5HL0C.js → ganttDiagram-NO4QXBWP-Dru2eObx.js} +3 -3
  128. package/dist/{ganttDiagram-NO4QXBWP-DtM5HL0C.js.map → ganttDiagram-NO4QXBWP-Dru2eObx.js.map} +1 -1
  129. package/dist/{gitGraphDiagram-IHSO6WYX-D1NSh545.cjs → gitGraphDiagram-IHSO6WYX-CSSBQ0pN.cjs} +2 -2
  130. package/dist/{gitGraphDiagram-IHSO6WYX-D1NSh545.cjs.map → gitGraphDiagram-IHSO6WYX-CSSBQ0pN.cjs.map} +1 -1
  131. package/dist/{gitGraphDiagram-IHSO6WYX-DFSd1OPO.js → gitGraphDiagram-IHSO6WYX-Dh6JCVl_.js} +4 -4
  132. package/dist/{gitGraphDiagram-IHSO6WYX-DFSd1OPO.js.map → gitGraphDiagram-IHSO6WYX-Dh6JCVl_.js.map} +1 -1
  133. package/dist/index.cjs +1 -1
  134. package/dist/index.client.cjs +1 -1
  135. package/dist/index.client.js +1 -1
  136. package/dist/index.js +1 -1
  137. package/dist/index.server.cjs +1 -1
  138. package/dist/index.server.cjs.map +1 -1
  139. package/dist/index.server.js +182 -120
  140. package/dist/index.server.js.map +1 -1
  141. package/dist/{infoDiagram-FWYZ7A6U-4wrBBE6X.cjs → infoDiagram-FWYZ7A6U-B1gCSk-C.cjs} +2 -2
  142. package/dist/{infoDiagram-FWYZ7A6U-4wrBBE6X.cjs.map → infoDiagram-FWYZ7A6U-B1gCSk-C.cjs.map} +1 -1
  143. package/dist/{infoDiagram-FWYZ7A6U-ZRUjO8nW.js → infoDiagram-FWYZ7A6U-CToqLObg.js} +2 -2
  144. package/dist/{infoDiagram-FWYZ7A6U-ZRUjO8nW.js.map → infoDiagram-FWYZ7A6U-CToqLObg.js.map} +1 -1
  145. package/dist/{ishikawaDiagram-FXEZZL3T-DNgqlFhZ.js → ishikawaDiagram-FXEZZL3T-BAHxx9AA.js} +2 -2
  146. package/dist/{ishikawaDiagram-FXEZZL3T-DNgqlFhZ.js.map → ishikawaDiagram-FXEZZL3T-BAHxx9AA.js.map} +1 -1
  147. package/dist/{ishikawaDiagram-FXEZZL3T-DE9GPbED.cjs → ishikawaDiagram-FXEZZL3T-CJ7d67cm.cjs} +2 -2
  148. package/dist/{ishikawaDiagram-FXEZZL3T-DE9GPbED.cjs.map → ishikawaDiagram-FXEZZL3T-CJ7d67cm.cjs.map} +1 -1
  149. package/dist/{journeyDiagram-5HDEW3XC-jcXDYbA9.cjs → journeyDiagram-5HDEW3XC-C7asd6DP.cjs} +2 -2
  150. package/dist/{journeyDiagram-5HDEW3XC-jcXDYbA9.cjs.map → journeyDiagram-5HDEW3XC-C7asd6DP.cjs.map} +1 -1
  151. package/dist/{journeyDiagram-5HDEW3XC-BXlXmDhR.js → journeyDiagram-5HDEW3XC-Dz8rXYFV.js} +5 -5
  152. package/dist/{journeyDiagram-5HDEW3XC-BXlXmDhR.js.map → journeyDiagram-5HDEW3XC-Dz8rXYFV.js.map} +1 -1
  153. package/dist/{kanban-definition-HUTT4EX6-D5_pDh9h.cjs → kanban-definition-HUTT4EX6-BoJjVrzF.cjs} +2 -2
  154. package/dist/{kanban-definition-HUTT4EX6-D5_pDh9h.cjs.map → kanban-definition-HUTT4EX6-BoJjVrzF.cjs.map} +1 -1
  155. package/dist/{kanban-definition-HUTT4EX6-C9IdgWIg.js → kanban-definition-HUTT4EX6-CZcRrcA5.js} +3 -3
  156. package/dist/{kanban-definition-HUTT4EX6-C9IdgWIg.js.map → kanban-definition-HUTT4EX6-CZcRrcA5.js.map} +1 -1
  157. package/dist/{linear-CTibpBci.js → linear-CgDXuRrh.js} +2 -2
  158. package/dist/{linear-CTibpBci.js.map → linear-CgDXuRrh.js.map} +1 -1
  159. package/dist/{linear-DDWdtbxq.cjs → linear-D2rGcy0L.cjs} +2 -2
  160. package/dist/{linear-DDWdtbxq.cjs.map → linear-D2rGcy0L.cjs.map} +1 -1
  161. package/dist/markdown-api +0 -0
  162. package/dist/{mindmap-definition-LN4V7U3C-CXaKAu6n.js → mindmap-definition-LN4V7U3C-BXWAe9Ds.js} +4 -4
  163. package/dist/{mindmap-definition-LN4V7U3C-CXaKAu6n.js.map → mindmap-definition-LN4V7U3C-BXWAe9Ds.js.map} +1 -1
  164. package/dist/{mindmap-definition-LN4V7U3C-gBn938NF.cjs → mindmap-definition-LN4V7U3C-DGZVDvzX.cjs} +2 -2
  165. package/dist/{mindmap-definition-LN4V7U3C-gBn938NF.cjs.map → mindmap-definition-LN4V7U3C-DGZVDvzX.cjs.map} +1 -1
  166. package/dist/{pegDiagram-2B236MQR-fR_9AvHk.cjs → pegDiagram-2B236MQR-BbOSWb4V.cjs} +2 -2
  167. package/dist/{pegDiagram-2B236MQR-fR_9AvHk.cjs.map → pegDiagram-2B236MQR-BbOSWb4V.cjs.map} +1 -1
  168. package/dist/{pegDiagram-2B236MQR-BiQyejnD.js → pegDiagram-2B236MQR-CQ0Tx9fr.js} +4 -4
  169. package/dist/{pegDiagram-2B236MQR-BiQyejnD.js.map → pegDiagram-2B236MQR-CQ0Tx9fr.js.map} +1 -1
  170. package/dist/{pieDiagram-ENE6RG2P-BZtqlfyU.cjs → pieDiagram-ENE6RG2P-CFlgwb-W.cjs} +2 -2
  171. package/dist/{pieDiagram-ENE6RG2P-BZtqlfyU.cjs.map → pieDiagram-ENE6RG2P-CFlgwb-W.cjs.map} +1 -1
  172. package/dist/{pieDiagram-ENE6RG2P-CZTZpVqy.js → pieDiagram-ENE6RG2P-CxlDG1MC.js} +4 -4
  173. package/dist/{pieDiagram-ENE6RG2P-CZTZpVqy.js.map → pieDiagram-ENE6RG2P-CxlDG1MC.js.map} +1 -1
  174. package/dist/{quadrantDiagram-ABIIQ3AL-CC5w4CkE.cjs → quadrantDiagram-ABIIQ3AL-5Yu2fHHi.cjs} +2 -2
  175. package/dist/{quadrantDiagram-ABIIQ3AL-CC5w4CkE.cjs.map → quadrantDiagram-ABIIQ3AL-5Yu2fHHi.cjs.map} +1 -1
  176. package/dist/{quadrantDiagram-ABIIQ3AL-ByHTxHrm.js → quadrantDiagram-ABIIQ3AL-yjLgVTuz.js} +3 -3
  177. package/dist/{quadrantDiagram-ABIIQ3AL-ByHTxHrm.js.map → quadrantDiagram-ABIIQ3AL-yjLgVTuz.js.map} +1 -1
  178. package/dist/{railroadDiagram-RFXS5EU6-_YckPr2T.cjs → railroadDiagram-RFXS5EU6-ItaHc4Vp.cjs} +2 -2
  179. package/dist/{railroadDiagram-RFXS5EU6-_YckPr2T.cjs.map → railroadDiagram-RFXS5EU6-ItaHc4Vp.cjs.map} +1 -1
  180. package/dist/{railroadDiagram-RFXS5EU6-C99zfAzl.js → railroadDiagram-RFXS5EU6-pGDCfgIi.js} +4 -4
  181. package/dist/{railroadDiagram-RFXS5EU6-C99zfAzl.js.map → railroadDiagram-RFXS5EU6-pGDCfgIi.js.map} +1 -1
  182. package/dist/{requirementDiagram-TGXJPOKE-BCeWSLF4.cjs → requirementDiagram-TGXJPOKE-D23EvAvl.cjs} +2 -2
  183. package/dist/{requirementDiagram-TGXJPOKE-BCeWSLF4.cjs.map → requirementDiagram-TGXJPOKE-D23EvAvl.cjs.map} +1 -1
  184. package/dist/{requirementDiagram-TGXJPOKE-DBzuXzE9.js → requirementDiagram-TGXJPOKE-M6nAiu_t.js} +4 -4
  185. package/dist/{requirementDiagram-TGXJPOKE-DBzuXzE9.js.map → requirementDiagram-TGXJPOKE-M6nAiu_t.js.map} +1 -1
  186. package/dist/{sankeyDiagram-HTMAVEWB-DQOfpr04.cjs → sankeyDiagram-HTMAVEWB-9bEQyXhc.cjs} +2 -2
  187. package/dist/{sankeyDiagram-HTMAVEWB-DQOfpr04.cjs.map → sankeyDiagram-HTMAVEWB-9bEQyXhc.cjs.map} +1 -1
  188. package/dist/{sankeyDiagram-HTMAVEWB-ChQ2ozXn.js → sankeyDiagram-HTMAVEWB-Ds8_2jXN.js} +2 -2
  189. package/dist/{sankeyDiagram-HTMAVEWB-ChQ2ozXn.js.map → sankeyDiagram-HTMAVEWB-Ds8_2jXN.js.map} +1 -1
  190. package/dist/{sequenceDiagram-DBY2YBRQ-CCzsdQ__.js → sequenceDiagram-DBY2YBRQ-DAV72IKm.js} +4 -4
  191. package/dist/{sequenceDiagram-DBY2YBRQ-CCzsdQ__.js.map → sequenceDiagram-DBY2YBRQ-DAV72IKm.js.map} +1 -1
  192. package/dist/{sequenceDiagram-DBY2YBRQ-D2R8WWiq.cjs → sequenceDiagram-DBY2YBRQ-o1ydGqHW.cjs} +2 -2
  193. package/dist/{sequenceDiagram-DBY2YBRQ-D2R8WWiq.cjs.map → sequenceDiagram-DBY2YBRQ-o1ydGqHW.cjs.map} +1 -1
  194. package/dist/{sizeCapture-X5ZJPWSS-9Q2RBacx.js → sizeCapture-X5ZJPWSS-CZQIHvLg.js} +2 -2
  195. package/dist/{sizeCapture-X5ZJPWSS-9Q2RBacx.js.map → sizeCapture-X5ZJPWSS-CZQIHvLg.js.map} +1 -1
  196. package/dist/{sizeCapture-X5ZJPWSS-CedNWC9b.cjs → sizeCapture-X5ZJPWSS-U39maAgM.cjs} +2 -2
  197. package/dist/{sizeCapture-X5ZJPWSS-CedNWC9b.cjs.map → sizeCapture-X5ZJPWSS-U39maAgM.cjs.map} +1 -1
  198. package/dist/src/components/MarkdownViewer.d.ts.map +1 -1
  199. package/dist/src/remarkProcessor.server.d.ts.map +1 -1
  200. package/dist/{stateDiagram-2N3HPSRC-DVXBUdgS.js → stateDiagram-2N3HPSRC-C3hijqyg.js} +3 -3
  201. package/dist/{stateDiagram-2N3HPSRC-DVXBUdgS.js.map → stateDiagram-2N3HPSRC-C3hijqyg.js.map} +1 -1
  202. package/dist/{stateDiagram-2N3HPSRC-BFjEDzN5.cjs → stateDiagram-2N3HPSRC-CPx2N_bR.cjs} +2 -2
  203. package/dist/{stateDiagram-2N3HPSRC-BFjEDzN5.cjs.map → stateDiagram-2N3HPSRC-CPx2N_bR.cjs.map} +1 -1
  204. package/dist/{stateDiagram-v2-6OUMAXLB-BpxIqbgw.cjs → stateDiagram-v2-6OUMAXLB-7vyxBco-.cjs} +2 -2
  205. package/dist/{stateDiagram-v2-6OUMAXLB-BpxIqbgw.cjs.map → stateDiagram-v2-6OUMAXLB-7vyxBco-.cjs.map} +1 -1
  206. package/dist/{stateDiagram-v2-6OUMAXLB-etkgI8XE.js → stateDiagram-v2-6OUMAXLB-B4JnO7oF.js} +3 -3
  207. package/dist/{stateDiagram-v2-6OUMAXLB-etkgI8XE.js.map → stateDiagram-v2-6OUMAXLB-B4JnO7oF.js.map} +1 -1
  208. package/dist/{swimlanes-5IMT3BWC-CRF_hU5-.js → swimlanes-5IMT3BWC-CCxOuH7b.js} +4 -4
  209. package/dist/{swimlanes-5IMT3BWC-CRF_hU5-.js.map → swimlanes-5IMT3BWC-CCxOuH7b.js.map} +1 -1
  210. package/dist/{swimlanes-5IMT3BWC-ByyaHYdJ.cjs → swimlanes-5IMT3BWC-hi85Pjjn.cjs} +2 -2
  211. package/dist/{swimlanes-5IMT3BWC-ByyaHYdJ.cjs.map → swimlanes-5IMT3BWC-hi85Pjjn.cjs.map} +1 -1
  212. package/dist/{swimlanesDiagram-G3AALYLV-qE56wCfv.js → swimlanesDiagram-G3AALYLV-BLfz3eDk.js} +3 -3
  213. package/dist/{swimlanesDiagram-G3AALYLV-qE56wCfv.js.map → swimlanesDiagram-G3AALYLV-BLfz3eDk.js.map} +1 -1
  214. package/dist/{swimlanesDiagram-G3AALYLV-DmAVTn1y.cjs → swimlanesDiagram-G3AALYLV-CtztPY5m.cjs} +2 -2
  215. package/dist/{swimlanesDiagram-G3AALYLV-DmAVTn1y.cjs.map → swimlanesDiagram-G3AALYLV-CtztPY5m.cjs.map} +1 -1
  216. package/dist/{timeline-definition-FHXFAJF6-CYpydtqC.cjs → timeline-definition-FHXFAJF6-BeZJW4pc.cjs} +2 -2
  217. package/dist/{timeline-definition-FHXFAJF6-CYpydtqC.cjs.map → timeline-definition-FHXFAJF6-BeZJW4pc.cjs.map} +1 -1
  218. package/dist/{timeline-definition-FHXFAJF6-U6tU13YO.js → timeline-definition-FHXFAJF6-CSCk8LV7.js} +3 -3
  219. package/dist/{timeline-definition-FHXFAJF6-U6tU13YO.js.map → timeline-definition-FHXFAJF6-CSCk8LV7.js.map} +1 -1
  220. package/dist/{vennDiagram-L72KCM5P-CfbVR5CF.cjs → vennDiagram-L72KCM5P-Bv4y-Znw.cjs} +2 -2
  221. package/dist/{vennDiagram-L72KCM5P-CfbVR5CF.cjs.map → vennDiagram-L72KCM5P-Bv4y-Znw.cjs.map} +1 -1
  222. package/dist/{vennDiagram-L72KCM5P-q79Xn7UV.js → vennDiagram-L72KCM5P-hIHAAgUv.js} +2 -2
  223. package/dist/{vennDiagram-L72KCM5P-q79Xn7UV.js.map → vennDiagram-L72KCM5P-hIHAAgUv.js.map} +1 -1
  224. package/dist/vite.config.d.ts.map +1 -1
  225. package/dist/{wardleyDiagram-EHGQE667-CSJ22zfj.cjs → wardleyDiagram-EHGQE667-CpNEWFuw.cjs} +2 -2
  226. package/dist/{wardleyDiagram-EHGQE667-CSJ22zfj.cjs.map → wardleyDiagram-EHGQE667-CpNEWFuw.cjs.map} +1 -1
  227. package/dist/{wardleyDiagram-EHGQE667-BG3W74MX.js → wardleyDiagram-EHGQE667-DrYyxkNS.js} +3 -3
  228. package/dist/{wardleyDiagram-EHGQE667-BG3W74MX.js.map → wardleyDiagram-EHGQE667-DrYyxkNS.js.map} +1 -1
  229. package/dist/{xychartDiagram-FW5EYKEG-Df8hBgvh.cjs → xychartDiagram-FW5EYKEG-CQmjL5Xe.cjs} +2 -2
  230. package/dist/{xychartDiagram-FW5EYKEG-Df8hBgvh.cjs.map → xychartDiagram-FW5EYKEG-CQmjL5Xe.cjs.map} +1 -1
  231. package/dist/{xychartDiagram-FW5EYKEG-BISI4a7c.js → xychartDiagram-FW5EYKEG-tJDvrCsf.js} +3 -3
  232. package/dist/{xychartDiagram-FW5EYKEG-BISI4a7c.js.map → xychartDiagram-FW5EYKEG-tJDvrCsf.js.map} +1 -1
  233. package/package.json +2 -2
  234. package/dist/channel-BaZK7NhX.js +0 -6
  235. package/dist/channel-DcZBUEY6.cjs +0 -2
  236. package/dist/flowDiagram-23GEKE2U-B9LX4RXy.cjs +0 -2
  237. package/dist/flowDiagram-23GEKE2U-B9LX4RXy.cjs.map +0 -1
  238. package/dist/flowDiagram-23GEKE2U-Dk7STu-u.js +0 -8
  239. package/dist/flowDiagram-23GEKE2U-Dk7STu-u.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { _ as u, a1 as i } from "./extractHeadings-BH0T7P4n.js";
1
+ import { _ as u, a1 as i } from "./extractHeadings-Bfq3sy4n.js";
2
2
  import { i as m, G as y } from "./graph-DAHC4kPm.js";
3
3
  import { b as _, m as X } from "./map-DRdzG8Ho.js";
4
4
  var j = 4;
@@ -311,4 +311,4 @@ export {
311
311
  W as s,
312
312
  C as w
313
313
  };
314
- //# sourceMappingURL=chunk-RYQCIY6F-BuIkG6A2.js.map
314
+ //# sourceMappingURL=chunk-RYQCIY6F-BBUUnDvx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-RYQCIY6F-BuIkG6A2.js","sources":["../../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/clone.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.14/node_modules/dagre-d3-es/src/graphlib/json.js","../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-RYQCIY6F.mjs"],"sourcesContent":["import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\n/**\n * @import { NodeID, EdgeObj, GraphOptions } from './graph.js';\n */\n\nexport { write, read };\n\n/**\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n *\n * @typedef {object} GraphJSON\n * @property {Required<GraphOptions>} options - The options used to create the graph.\n * @property {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} nodes - The nodes in the graph.\n * @property {Array<EdgeObj & { value?: EdgeLabel }>} edges - The edges in the graph.\n * @property {GraphLabel} [value] - The graph's value, if any.\n */\n\n/**\n * Creates a JSON representation of the graph that can be serialized to a\n * string with\n * [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).\n * The graph can later be restored using {@link read}.\n *\n * @example\n *\n * ```js\n * var g = new graphlib.Graph();\n * g.setNode(\"a\", { label: \"node a\" });\n * g.setNode(\"b\", { label: \"node b\" });\n * g.setEdge(\"a\", \"b\", { label: \"edge a->b\" });\n * graphlib.json.write(g);\n * // Returns the object:\n * //\n * // {\n * // \"options\": {\n * // \"directed\": true,\n * // \"multigraph\": false,\n * // \"compound\": false\n * // },\n * // \"nodes\": [\n * // { \"v\": \"a\", \"value\": { \"label\": \"node a\" } },\n * // { \"v\": \"b\", \"value\": { \"label\": \"node b\" } }\n * // ],\n * // \"edges\": [\n * // { \"v\": \"a\", \"w\": \"b\", \"value\": { \"label\": \"edge a->b\" } }\n * // ]\n * // }\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {Graph<GraphLabel, NodeLabel, EdgeLabel>} g - The graph to serialize.\n * @returns {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} The JSON representation of the graph.\n */\nfunction write(g) {\n /** @type {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} */\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound(),\n },\n nodes: writeNodes(g),\n edges: writeEdges(g),\n };\n if (!_.isUndefined(g.graph())) {\n json.value = _.clone(g.graph());\n }\n return json;\n}\n\n/**\n * @template NodeLabel - Label of a node.\n *\n * @param {Graph<unknown, NodeLabel, unknown>} g - The graph to serialize.\n * @returns {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} The nodes in the graph.\n */\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n /** @type {{ v: NodeID; value?: NodeLabel; parent?: NodeID }} */\n var node = { v: v };\n if (!_.isUndefined(nodeValue)) {\n node.value = nodeValue;\n }\n if (!_.isUndefined(parent)) {\n node.parent = parent;\n }\n return node;\n });\n}\n\n/**\n * @template EdgeLabel - Label of a node.\n *\n * @param {Graph<unknown, unknown, EdgeLabel>} g - The graph to serialize.\n * @returns {Array<EdgeObj & { value?: EdgeLabel }>} The edges in the graph.\n */\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\n /** @type {EdgeObj & { value?: EdgeLabel }} */\n var edge = { v: e.v, w: e.w };\n if (!_.isUndefined(e.name)) {\n edge.name = e.name;\n }\n if (!_.isUndefined(edgeValue)) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\n/**\n * Takes JSON as input and returns the graph representation.\n *\n * @example\n *\n * For example, if we have serialized the graph in {@link write}\n * to a string named `str`, we can restore it to a graph as follows:\n *\n * ```js\n * var g2 = graphlib.json.read(JSON.parse(str));\n * // or, in order to copy the graph\n * var g3 = graphlib.json.read(graphlib.json.write(g))\n *\n * g2.nodes();\n * // ['a', 'b']\n * g2.edges()\n * // [ { v: 'a', w: 'b' } ]\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} json - The JSON representation of the graph.\n * @returns {Graph<GraphLabel, NodeLabel, EdgeLabel>} The restored graph.\n */\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n _.each(json.nodes, function (entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n _.each(json.edges, function (entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n","import {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.js\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nvar clusterDb = /* @__PURE__ */ new Map();\nvar descendants = /* @__PURE__ */ new Map();\nvar parents = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n descendants.clear();\n parents.clear();\n clusterDb.clear();\n}, \"clear\");\nvar isDescendant = /* @__PURE__ */ __name((id, ancestorId) => {\n const ancestorDescendants = descendants.get(ancestorId) || [];\n log.trace(\"In isDescendant\", ancestorId, \" \", id, \" = \", ancestorDescendants.includes(id));\n return ancestorDescendants.includes(id);\n}, \"isDescendant\");\nvar edgeInCluster = /* @__PURE__ */ __name((edge, clusterId) => {\n const clusterDescendants = descendants.get(clusterId) || [];\n log.info(\"Descendants of \", clusterId, \" is \", clusterDescendants);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId || edge.w === clusterId) {\n return false;\n }\n if (!clusterDescendants) {\n log.debug(\"Tilt, \", clusterId, \",not in descendants\");\n return false;\n }\n return clusterDescendants.includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || clusterDescendants.includes(edge.w);\n}, \"edgeInCluster\");\nvar copy = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n const rootDescendants = descendants.get(rootId) || [];\n const vIn = rootDescendants.includes(edge.v) || isDescendant(edge.v, rootId) || edge.v === rootId;\n const wIn = rootDescendants.includes(edge.w) || isDescendant(edge.w, rootId) || edge.w === rootId;\n if (vIn && wIn) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n const newV = vIn ? rootId : edge.v;\n const newW = wIn ? rootId : edge.w;\n log.info(\"Rebinding cross-boundary edge as \", newV, newW, data2, edge.name);\n graph.setEdge(newV, newW, data2, edge.name);\n }\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n}, \"copy\");\nvar extractDescendants = /* @__PURE__ */ __name((id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents.set(child, id);\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n}, \"extractDescendants\");\nvar findCommonEdges = /* @__PURE__ */ __name((graph, id1, id2) => {\n const edges1 = graph.edges().filter((edge) => edge.v === id1 || edge.w === id1);\n const edges2 = graph.edges().filter((edge) => edge.v === id2 || edge.w === id2);\n const edges1Prim = edges1.map((edge) => {\n return { v: edge.v === id1 ? id2 : edge.v, w: edge.w === id1 ? id1 : edge.w };\n });\n const edges2Prim = edges2.map((edge) => {\n return { v: edge.v, w: edge.w };\n });\n const result = edges1Prim.filter((edgeIn1) => {\n return edges2Prim.some((edge) => edgeIn1.v === edge.v && edgeIn1.w === edge.w);\n });\n return result;\n}, \"findCommonEdges\");\nvar findNonClusterChild = /* @__PURE__ */ __name((id, graph, clusterId) => {\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n return id;\n }\n let reserve;\n for (const child of children) {\n const _id = findNonClusterChild(child, graph, clusterId);\n const commonEdges = findCommonEdges(graph, clusterId, _id);\n if (_id) {\n if (commonEdges.length > 0) {\n reserve = _id;\n } else {\n return _id;\n }\n }\n }\n return reserve;\n}, \"findNonClusterChild\");\nvar getAnchorId = /* @__PURE__ */ __name((id) => {\n if (!clusterDb.has(id)) {\n return id;\n }\n if (!clusterDb.get(id).externalConnections) {\n return id;\n }\n if (clusterDb.has(id)) {\n return clusterDb.get(id).id;\n }\n return id;\n}, \"getAnchorId\");\nvar adjustClustersAndEdges = /* @__PURE__ */ __name((graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph, id)\n );\n descendants.set(id, extractDescendants(id, graph));\n clusterDb.set(id, { id: findNonClusterChild(id, graph, id), clusterData: graph.node(id) });\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Descendants of XXX \", id, \": \", descendants.get(id));\n clusterDb.get(id).externalConnections = true;\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n for (let id of clusterDb.keys()) {\n const nonClusterChild = clusterDb.get(id).id;\n const parent = graph.parent(nonClusterChild);\n if (parent !== id && clusterDb.has(parent) && !clusterDb.get(parent).externalConnections) {\n clusterDb.get(id).id = parent;\n }\n const hasDirectOutgoingEdge = graph.edges().some((edge) => edge.v === id);\n if (nonClusterChild && clusterDb.get(id)?.externalConnections && hasDirectOutgoingEdge && isNodeInExtractableCluster(graph, nonClusterChild, id)) {\n const safeAnchor = findSafeAnchorNode(graph, id, graph.parent(nonClusterChild));\n if (safeAnchor) {\n clusterDb.get(id).id = safeAnchor;\n }\n }\n }\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n \" --- \",\n clusterDb.get(e.w)\n );\n if (clusterDb.get(e.v) || clusterDb.get(e.w)) {\n log.warn(\"Fixing and trying - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n const parent = graph.parent(v);\n clusterDb.get(parent).externalConnections = true;\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n const parent = graph.parent(w);\n clusterDb.get(parent).externalConnections = true;\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n}, \"adjustClustersAndEdges\");\nvar extractor = /* @__PURE__ */ __name((graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb.has(node) && !clusterDb.get(node).externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb.has(node)) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (clusterDb.get(node)?.clusterData?.explicitDir && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\"Cluster with explicit dir, creating subgraph for children\", node, depth);\n const dir = clusterDb.get(node).clusterData.dir;\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n copy(node, graph, clusterGraph, node);\n const clusterNodeData = graph.node(node) || {};\n graph.setNode(node, {\n ...clusterNodeData,\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.warn(\n \"Subgraph for cluster with explicit dir created:\",\n node,\n graphlibJson.write(clusterGraph)\n );\n } else if (!clusterDb.get(node).externalConnections && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb.get(node)?.clusterData?.dir) {\n dir = clusterDb.get(node).clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb.get(node).clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n copy(node, graph, clusterGraph, node);\n const clusterNodeData = graph.node(node) || {};\n graph.setNode(node, {\n ...clusterNodeData,\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb.get(node).externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data?.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n}, \"extractor\");\nvar sorter = /* @__PURE__ */ __name((graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign([], nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n}, \"sorter\");\nvar sortNodesByHierarchy = /* @__PURE__ */ __name((graph) => sorter(graph, graph.children()), \"sortNodesByHierarchy\");\nvar isNodeInExtractableCluster = /* @__PURE__ */ __name((graph, node, rootId) => {\n let parent = graph.parent(node);\n while (parent && parent !== rootId) {\n const cluster = clusterDb.get(parent);\n if (cluster && !cluster.externalConnections) {\n return true;\n }\n parent = graph.parent(parent);\n }\n return false;\n}, \"isNodeInExtractableCluster\");\nvar findSafeAnchorNode = /* @__PURE__ */ __name((graph, clusterId, excludedCluster) => {\n const children = graph.children(clusterId) ?? [];\n for (const child of children) {\n if (child === excludedCluster || isDescendant(child, excludedCluster)) {\n continue;\n }\n const candidate = findNonClusterChild(child, graph, clusterId);\n if (!candidate) {\n continue;\n }\n if (!isNodeInExtractableCluster(graph, candidate, clusterId)) {\n return candidate;\n }\n }\n return null;\n}, \"findSafeAnchorNode\");\n\nexport {\n clusterDb,\n clear,\n findNonClusterChild,\n adjustClustersAndEdges,\n sortNodesByHierarchy\n};\n"],"names":["CLONE_SYMBOLS_FLAG","clone","value","baseClone","write","g","json","writeNodes","writeEdges","_.isUndefined","_.clone","_.map","v","nodeValue","parent","node","e","edgeValue","edge","clusterDb","descendants","parents","clear","__name","isDescendant","id","ancestorId","ancestorDescendants","log","edgeInCluster","clusterId","clusterDescendants","copy","graph","newGraph","rootId","nodes","data","edges","data2","rootDescendants","vIn","wIn","newV","newW","extractDescendants","children","res","child","findCommonEdges","id1","id2","edges1","edges2","edges1Prim","edges2Prim","edgeIn1","findNonClusterChild","reserve","_id","commonEdges","getAnchorId","adjustClustersAndEdges","depth","d1","d2","nonClusterChild","hasDirectOutgoingEdge","isNodeInExtractableCluster","safeAnchor","findSafeAnchorNode","w","graphlibJson.write","extractor","hasChildren","dir","clusterGraph","graphlib.Graph","clusterNodeData","sorter","result","sorted","sortNodesByHierarchy","cluster","excludedCluster","candidate"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"chunk-RYQCIY6F-BBUUnDvx.js","sources":["../../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/clone.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.14/node_modules/dagre-d3-es/src/graphlib/json.js","../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-RYQCIY6F.mjs"],"sourcesContent":["import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\n/**\n * @import { NodeID, EdgeObj, GraphOptions } from './graph.js';\n */\n\nexport { write, read };\n\n/**\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n *\n * @typedef {object} GraphJSON\n * @property {Required<GraphOptions>} options - The options used to create the graph.\n * @property {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} nodes - The nodes in the graph.\n * @property {Array<EdgeObj & { value?: EdgeLabel }>} edges - The edges in the graph.\n * @property {GraphLabel} [value] - The graph's value, if any.\n */\n\n/**\n * Creates a JSON representation of the graph that can be serialized to a\n * string with\n * [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).\n * The graph can later be restored using {@link read}.\n *\n * @example\n *\n * ```js\n * var g = new graphlib.Graph();\n * g.setNode(\"a\", { label: \"node a\" });\n * g.setNode(\"b\", { label: \"node b\" });\n * g.setEdge(\"a\", \"b\", { label: \"edge a->b\" });\n * graphlib.json.write(g);\n * // Returns the object:\n * //\n * // {\n * // \"options\": {\n * // \"directed\": true,\n * // \"multigraph\": false,\n * // \"compound\": false\n * // },\n * // \"nodes\": [\n * // { \"v\": \"a\", \"value\": { \"label\": \"node a\" } },\n * // { \"v\": \"b\", \"value\": { \"label\": \"node b\" } }\n * // ],\n * // \"edges\": [\n * // { \"v\": \"a\", \"w\": \"b\", \"value\": { \"label\": \"edge a->b\" } }\n * // ]\n * // }\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {Graph<GraphLabel, NodeLabel, EdgeLabel>} g - The graph to serialize.\n * @returns {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} The JSON representation of the graph.\n */\nfunction write(g) {\n /** @type {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} */\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound(),\n },\n nodes: writeNodes(g),\n edges: writeEdges(g),\n };\n if (!_.isUndefined(g.graph())) {\n json.value = _.clone(g.graph());\n }\n return json;\n}\n\n/**\n * @template NodeLabel - Label of a node.\n *\n * @param {Graph<unknown, NodeLabel, unknown>} g - The graph to serialize.\n * @returns {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} The nodes in the graph.\n */\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n /** @type {{ v: NodeID; value?: NodeLabel; parent?: NodeID }} */\n var node = { v: v };\n if (!_.isUndefined(nodeValue)) {\n node.value = nodeValue;\n }\n if (!_.isUndefined(parent)) {\n node.parent = parent;\n }\n return node;\n });\n}\n\n/**\n * @template EdgeLabel - Label of a node.\n *\n * @param {Graph<unknown, unknown, EdgeLabel>} g - The graph to serialize.\n * @returns {Array<EdgeObj & { value?: EdgeLabel }>} The edges in the graph.\n */\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\n /** @type {EdgeObj & { value?: EdgeLabel }} */\n var edge = { v: e.v, w: e.w };\n if (!_.isUndefined(e.name)) {\n edge.name = e.name;\n }\n if (!_.isUndefined(edgeValue)) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\n/**\n * Takes JSON as input and returns the graph representation.\n *\n * @example\n *\n * For example, if we have serialized the graph in {@link write}\n * to a string named `str`, we can restore it to a graph as follows:\n *\n * ```js\n * var g2 = graphlib.json.read(JSON.parse(str));\n * // or, in order to copy the graph\n * var g3 = graphlib.json.read(graphlib.json.write(g))\n *\n * g2.nodes();\n * // ['a', 'b']\n * g2.edges()\n * // [ { v: 'a', w: 'b' } ]\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} json - The JSON representation of the graph.\n * @returns {Graph<GraphLabel, NodeLabel, EdgeLabel>} The restored graph.\n */\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n _.each(json.nodes, function (entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n _.each(json.edges, function (entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n","import {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.js\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nvar clusterDb = /* @__PURE__ */ new Map();\nvar descendants = /* @__PURE__ */ new Map();\nvar parents = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n descendants.clear();\n parents.clear();\n clusterDb.clear();\n}, \"clear\");\nvar isDescendant = /* @__PURE__ */ __name((id, ancestorId) => {\n const ancestorDescendants = descendants.get(ancestorId) || [];\n log.trace(\"In isDescendant\", ancestorId, \" \", id, \" = \", ancestorDescendants.includes(id));\n return ancestorDescendants.includes(id);\n}, \"isDescendant\");\nvar edgeInCluster = /* @__PURE__ */ __name((edge, clusterId) => {\n const clusterDescendants = descendants.get(clusterId) || [];\n log.info(\"Descendants of \", clusterId, \" is \", clusterDescendants);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId || edge.w === clusterId) {\n return false;\n }\n if (!clusterDescendants) {\n log.debug(\"Tilt, \", clusterId, \",not in descendants\");\n return false;\n }\n return clusterDescendants.includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || clusterDescendants.includes(edge.w);\n}, \"edgeInCluster\");\nvar copy = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n const rootDescendants = descendants.get(rootId) || [];\n const vIn = rootDescendants.includes(edge.v) || isDescendant(edge.v, rootId) || edge.v === rootId;\n const wIn = rootDescendants.includes(edge.w) || isDescendant(edge.w, rootId) || edge.w === rootId;\n if (vIn && wIn) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n const newV = vIn ? rootId : edge.v;\n const newW = wIn ? rootId : edge.w;\n log.info(\"Rebinding cross-boundary edge as \", newV, newW, data2, edge.name);\n graph.setEdge(newV, newW, data2, edge.name);\n }\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n}, \"copy\");\nvar extractDescendants = /* @__PURE__ */ __name((id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents.set(child, id);\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n}, \"extractDescendants\");\nvar findCommonEdges = /* @__PURE__ */ __name((graph, id1, id2) => {\n const edges1 = graph.edges().filter((edge) => edge.v === id1 || edge.w === id1);\n const edges2 = graph.edges().filter((edge) => edge.v === id2 || edge.w === id2);\n const edges1Prim = edges1.map((edge) => {\n return { v: edge.v === id1 ? id2 : edge.v, w: edge.w === id1 ? id1 : edge.w };\n });\n const edges2Prim = edges2.map((edge) => {\n return { v: edge.v, w: edge.w };\n });\n const result = edges1Prim.filter((edgeIn1) => {\n return edges2Prim.some((edge) => edgeIn1.v === edge.v && edgeIn1.w === edge.w);\n });\n return result;\n}, \"findCommonEdges\");\nvar findNonClusterChild = /* @__PURE__ */ __name((id, graph, clusterId) => {\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n return id;\n }\n let reserve;\n for (const child of children) {\n const _id = findNonClusterChild(child, graph, clusterId);\n const commonEdges = findCommonEdges(graph, clusterId, _id);\n if (_id) {\n if (commonEdges.length > 0) {\n reserve = _id;\n } else {\n return _id;\n }\n }\n }\n return reserve;\n}, \"findNonClusterChild\");\nvar getAnchorId = /* @__PURE__ */ __name((id) => {\n if (!clusterDb.has(id)) {\n return id;\n }\n if (!clusterDb.get(id).externalConnections) {\n return id;\n }\n if (clusterDb.has(id)) {\n return clusterDb.get(id).id;\n }\n return id;\n}, \"getAnchorId\");\nvar adjustClustersAndEdges = /* @__PURE__ */ __name((graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph, id)\n );\n descendants.set(id, extractDescendants(id, graph));\n clusterDb.set(id, { id: findNonClusterChild(id, graph, id), clusterData: graph.node(id) });\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Descendants of XXX \", id, \": \", descendants.get(id));\n clusterDb.get(id).externalConnections = true;\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n for (let id of clusterDb.keys()) {\n const nonClusterChild = clusterDb.get(id).id;\n const parent = graph.parent(nonClusterChild);\n if (parent !== id && clusterDb.has(parent) && !clusterDb.get(parent).externalConnections) {\n clusterDb.get(id).id = parent;\n }\n const hasDirectOutgoingEdge = graph.edges().some((edge) => edge.v === id);\n if (nonClusterChild && clusterDb.get(id)?.externalConnections && hasDirectOutgoingEdge && isNodeInExtractableCluster(graph, nonClusterChild, id)) {\n const safeAnchor = findSafeAnchorNode(graph, id, graph.parent(nonClusterChild));\n if (safeAnchor) {\n clusterDb.get(id).id = safeAnchor;\n }\n }\n }\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n \" --- \",\n clusterDb.get(e.w)\n );\n if (clusterDb.get(e.v) || clusterDb.get(e.w)) {\n log.warn(\"Fixing and trying - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n const parent = graph.parent(v);\n clusterDb.get(parent).externalConnections = true;\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n const parent = graph.parent(w);\n clusterDb.get(parent).externalConnections = true;\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n}, \"adjustClustersAndEdges\");\nvar extractor = /* @__PURE__ */ __name((graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb.has(node) && !clusterDb.get(node).externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb.has(node)) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (clusterDb.get(node)?.clusterData?.explicitDir && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\"Cluster with explicit dir, creating subgraph for children\", node, depth);\n const dir = clusterDb.get(node).clusterData.dir;\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n copy(node, graph, clusterGraph, node);\n const clusterNodeData = graph.node(node) || {};\n graph.setNode(node, {\n ...clusterNodeData,\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.warn(\n \"Subgraph for cluster with explicit dir created:\",\n node,\n graphlibJson.write(clusterGraph)\n );\n } else if (!clusterDb.get(node).externalConnections && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb.get(node)?.clusterData?.dir) {\n dir = clusterDb.get(node).clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb.get(node).clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n copy(node, graph, clusterGraph, node);\n const clusterNodeData = graph.node(node) || {};\n graph.setNode(node, {\n ...clusterNodeData,\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb.get(node).externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data?.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n}, \"extractor\");\nvar sorter = /* @__PURE__ */ __name((graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign([], nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n}, \"sorter\");\nvar sortNodesByHierarchy = /* @__PURE__ */ __name((graph) => sorter(graph, graph.children()), \"sortNodesByHierarchy\");\nvar isNodeInExtractableCluster = /* @__PURE__ */ __name((graph, node, rootId) => {\n let parent = graph.parent(node);\n while (parent && parent !== rootId) {\n const cluster = clusterDb.get(parent);\n if (cluster && !cluster.externalConnections) {\n return true;\n }\n parent = graph.parent(parent);\n }\n return false;\n}, \"isNodeInExtractableCluster\");\nvar findSafeAnchorNode = /* @__PURE__ */ __name((graph, clusterId, excludedCluster) => {\n const children = graph.children(clusterId) ?? [];\n for (const child of children) {\n if (child === excludedCluster || isDescendant(child, excludedCluster)) {\n continue;\n }\n const candidate = findNonClusterChild(child, graph, clusterId);\n if (!candidate) {\n continue;\n }\n if (!isNodeInExtractableCluster(graph, candidate, clusterId)) {\n return candidate;\n }\n }\n return null;\n}, \"findSafeAnchorNode\");\n\nexport {\n clusterDb,\n clear,\n findNonClusterChild,\n adjustClustersAndEdges,\n sortNodesByHierarchy\n};\n"],"names":["CLONE_SYMBOLS_FLAG","clone","value","baseClone","write","g","json","writeNodes","writeEdges","_.isUndefined","_.clone","_.map","v","nodeValue","parent","node","e","edgeValue","edge","clusterDb","descendants","parents","clear","__name","isDescendant","id","ancestorId","ancestorDescendants","log","edgeInCluster","clusterId","clusterDescendants","copy","graph","newGraph","rootId","nodes","data","edges","data2","rootDescendants","vIn","wIn","newV","newW","extractDescendants","children","res","child","findCommonEdges","id1","id2","edges1","edges2","edges1Prim","edges2Prim","edgeIn1","findNonClusterChild","reserve","_id","commonEdges","getAnchorId","adjustClustersAndEdges","depth","d1","d2","nonClusterChild","hasDirectOutgoingEdge","isNodeInExtractableCluster","safeAnchor","findSafeAnchorNode","w","graphlibJson.write","extractor","hasChildren","dir","clusterGraph","graphlib.Graph","clusterNodeData","sorter","result","sorted","sortNodesByHierarchy","cluster","excludedCluster","candidate"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -1,2 +1,2 @@
1
- "use strict";const o=require("./extractHeadings-BsiIYa_e.cjs"),g=require("./graph-BgRih2Qv.cjs"),E=require("./map-BvScllSQ.cjs");var k=4;function B(e){return E.baseClone(e,k)}function v(e){var r={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:j(e),edges:L(e)};return g.isUndefined(e.graph())||(r.value=B(e.graph())),r}function j(e){return E.map(e.nodes(),function(r){var n=e.node(r),s=e.parent(r),t={v:r};return g.isUndefined(n)||(t.value=n),g.isUndefined(s)||(t.parent=s),t})}function L(e){return E.map(e.edges(),function(r){var n=e.edge(r),s={v:r.v,w:r.w};return g.isUndefined(r.name)||(s.name=r.name),g.isUndefined(n)||(s.value=n),s})}var a=new Map,d=new Map,y=new Map,p=o.__name(()=>{d.clear(),y.clear(),a.clear()},"clear"),w=o.__name((e,r)=>{const n=d.get(r)||[];return o.log.trace("In isDescendant",r," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),F=o.__name((e,r)=>{const n=d.get(r)||[];return o.log.info("Descendants of ",r," is ",n),o.log.info("Edge is ",e),e.v===r||e.w===r?!1:n?n.includes(e.v)||w(e.v,r)||w(e.w,r)||n.includes(e.w):(o.log.debug("Tilt, ",r,",not in descendants"),!1)},"edgeInCluster"),D=o.__name((e,r,n,s)=>{o.log.warn("Copying children of ",e,"root",s,"data",r.node(e),s);const t=r.children(e)||[];e!==s&&t.push(e),o.log.warn("Copying (nodes) clusterId",e,"nodes",t),t.forEach(i=>{if(r.children(i).length>0)D(i,r,n,s);else{const c=r.node(i);o.log.info("cp ",i," to ",s," with parent ",e),n.setNode(i,c),s!==r.parent(i)&&(o.log.warn("Setting parent",i,r.parent(i)),n.setParent(i,r.parent(i))),e!==s&&i!==e?(o.log.debug("Setting parent",i,e),n.setParent(i,e)):(o.log.info("In copy ",e,"root",s,"data",r.node(e),s),o.log.debug("Not Setting parent for node=",i,"cluster!==rootId",e!==s,"node!==clusterId",i!==e));const u=r.edges(i);o.log.debug("Copying Edges",u),u.forEach(l=>{o.log.info("Edge",l);const f=r.edge(l.v,l.w,l.name);o.log.info("Edge data",f,s);try{if(F(l,s)){const C=d.get(s)||[],b=C.includes(l.v)||w(l.v,s)||l.v===s,_=C.includes(l.w)||w(l.w,s)||l.w===s;if(b&&_)o.log.info("Copying as ",l.v,l.w,f,l.name),n.setEdge(l.v,l.w,f,l.name),o.log.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]));else{const x=b?s:l.v,h=_?s:l.w;o.log.info("Rebinding cross-boundary edge as ",x,h,f,l.name),r.setEdge(x,h,f,l.name)}}else o.log.info("Skipping copy of edge ",l.v,"-->",l.w," rootId: ",s," clusterId:",e)}catch(C){o.log.error(C)}})}o.log.debug("Removing node",i),r.removeNode(i)})},"copy"),S=o.__name((e,r)=>{const n=r.children(e);let s=[...n];for(const t of n)y.set(t,e),s=[...s,...S(t,r)];return s},"extractDescendants"),M=o.__name((e,r,n)=>{const s=e.edges().filter(l=>l.v===r||l.w===r),t=e.edges().filter(l=>l.v===n||l.w===n),i=s.map(l=>({v:l.v===r?n:l.v,w:l.w===r?r:l.w})),c=t.map(l=>({v:l.v,w:l.w}));return i.filter(l=>c.some(f=>l.v===f.v&&l.w===f.w))},"findCommonEdges"),m=o.__name((e,r,n)=>{const s=r.children(e);if(o.log.trace("Searching children of id ",e,s),s.length<1)return e;let t;for(const i of s){const c=m(i,r,n),u=M(r,n,c);if(c)if(u.length>0)t=c;else return c}return t},"findNonClusterChild"),N=o.__name(e=>!a.has(e)||!a.get(e).externalConnections?e:a.has(e)?a.get(e).id:e,"getAnchorId"),R=o.__name((e,r)=>{if(!e||r>10){o.log.debug("Opting out, no graph ");return}else o.log.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(o.log.warn("Cluster identified",n," Replacement id in edges: ",m(n,e,n)),d.set(n,S(n,e)),a.set(n,{id:m(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const s=e.children(n),t=e.edges();s.length>0?(o.log.debug("Cluster identified",n,d),t.forEach(i=>{const c=w(i.v,n),u=w(i.w,n);c^u&&(o.log.warn("Edge: ",i," leaves cluster ",n),o.log.warn("Descendants of XXX ",n,": ",d.get(n)),a.get(n).externalConnections=!0)})):o.log.debug("Not a cluster ",n,d)});for(let n of a.keys()){const s=a.get(n).id,t=e.parent(s);t!==n&&a.has(t)&&!a.get(t).externalConnections&&(a.get(n).id=t);const i=e.edges().some(c=>c.v===n);if(s&&a.get(n)?.externalConnections&&i&&O(e,s,n)){const c=H(e,n,e.parent(s));c&&(a.get(n).id=c)}}e.edges().forEach(function(n){const s=e.edge(n);o.log.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),o.log.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let t=n.v,i=n.w;if(o.log.warn("Fix XXX",a,"ids:",n.v,n.w,"Translating: ",a.get(n.v)," --- ",a.get(n.w)),a.get(n.v)||a.get(n.w)){if(o.log.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),t=N(n.v),i=N(n.w),e.removeEdge(n.v,n.w,n.name),t!==n.v){const c=e.parent(t);a.get(c).externalConnections=!0,s.fromCluster=n.v}if(i!==n.w){const c=e.parent(i);a.get(c).externalConnections=!0,s.toCluster=n.w}o.log.warn("Fix Replacing with XXX",t,i,n.name),e.setEdge(t,i,s,n.name)}}),o.log.warn("Adjusted Graph",v(e)),X(e,0),o.log.trace(a)},"adjustClustersAndEdges"),X=o.__name((e,r)=>{if(o.log.warn("extractor - ",r,v(e),e.children("D")),r>10){o.log.error("Bailing out");return}let n=e.nodes(),s=!1;for(const t of n){const i=e.children(t);s=s||i.length>0}if(!s){o.log.debug("Done, no node has children",e.nodes());return}o.log.debug("Nodes = ",n,r);for(const t of n)if(o.log.debug("Extracting node",t,a,a.has(t)&&!a.get(t).externalConnections,!e.parent(t),e.node(t),e.children("D")," Depth ",r),!a.has(t))o.log.debug("Not a cluster",t,r);else if(a.get(t)?.clusterData?.explicitDir&&e.children(t)&&e.children(t).length>0){o.log.warn("Cluster with explicit dir, creating subgraph for children",t,r);const i=a.get(t).clusterData.dir,c=new g.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});D(t,e,c,t);const u=e.node(t)||{};e.setNode(t,{...u,clusterNode:!0,id:t,clusterData:a.get(t).clusterData,label:a.get(t).label,graph:c}),o.log.warn("Subgraph for cluster with explicit dir created:",t,v(c))}else if(!a.get(t).externalConnections&&e.children(t)&&e.children(t).length>0){o.log.warn("Cluster without external connections, without a parent and with children",t,r);let c=e.graph().rankdir==="TB"?"LR":"TB";a.get(t)?.clusterData?.dir&&(c=a.get(t).clusterData.dir,o.log.warn("Fixing dir",a.get(t).clusterData.dir,c));const u=new g.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:c,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});D(t,e,u,t);const l=e.node(t)||{};e.setNode(t,{...l,clusterNode:!0,id:t,clusterData:a.get(t).clusterData,label:a.get(t).label,graph:u}),o.log.debug("Old graph after copy",v(e))}else o.log.warn("Cluster ** ",t," **not meeting the criteria !externalConnections:",!a.get(t).externalConnections," no parent: ",!e.parent(t)," children ",e.children(t)&&e.children(t).length>0,e.children("D"),r),o.log.debug(a);n=e.nodes(),o.log.warn("New list of nodes",n);for(const t of n){const i=e.node(t);o.log.warn(" Now next level",t,i),i?.clusterNode&&X(i.graph,r+1)}},"extractor"),A=o.__name((e,r)=>{if(r.length===0)return[];let n=Object.assign([],r);return r.forEach(s=>{const t=e.children(s),i=A(e,t);n=[...n,...i]}),n},"sorter"),U=o.__name(e=>A(e,e.children()),"sortNodesByHierarchy"),O=o.__name((e,r,n)=>{let s=e.parent(r);for(;s&&s!==n;){const t=a.get(s);if(t&&!t.externalConnections)return!0;s=e.parent(s)}return!1},"isNodeInExtractableCluster"),H=o.__name((e,r,n)=>{const s=e.children(r)??[];for(const t of s){if(t===n||w(t,n))continue;const i=m(t,e,r);if(i&&!O(e,i,r))return i}return null},"findSafeAnchorNode");exports.adjustClustersAndEdges=R;exports.clear=p;exports.clusterDb=a;exports.findNonClusterChild=m;exports.sortNodesByHierarchy=U;exports.write=v;
2
- //# sourceMappingURL=chunk-RYQCIY6F-he5fUSYo.cjs.map
1
+ "use strict";const o=require("./extractHeadings-D7EoVxUv.cjs"),g=require("./graph-BgRih2Qv.cjs"),E=require("./map-BvScllSQ.cjs");var k=4;function B(e){return E.baseClone(e,k)}function v(e){var r={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:j(e),edges:L(e)};return g.isUndefined(e.graph())||(r.value=B(e.graph())),r}function j(e){return E.map(e.nodes(),function(r){var n=e.node(r),s=e.parent(r),t={v:r};return g.isUndefined(n)||(t.value=n),g.isUndefined(s)||(t.parent=s),t})}function L(e){return E.map(e.edges(),function(r){var n=e.edge(r),s={v:r.v,w:r.w};return g.isUndefined(r.name)||(s.name=r.name),g.isUndefined(n)||(s.value=n),s})}var a=new Map,d=new Map,y=new Map,p=o.__name(()=>{d.clear(),y.clear(),a.clear()},"clear"),w=o.__name((e,r)=>{const n=d.get(r)||[];return o.log.trace("In isDescendant",r," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),F=o.__name((e,r)=>{const n=d.get(r)||[];return o.log.info("Descendants of ",r," is ",n),o.log.info("Edge is ",e),e.v===r||e.w===r?!1:n?n.includes(e.v)||w(e.v,r)||w(e.w,r)||n.includes(e.w):(o.log.debug("Tilt, ",r,",not in descendants"),!1)},"edgeInCluster"),D=o.__name((e,r,n,s)=>{o.log.warn("Copying children of ",e,"root",s,"data",r.node(e),s);const t=r.children(e)||[];e!==s&&t.push(e),o.log.warn("Copying (nodes) clusterId",e,"nodes",t),t.forEach(i=>{if(r.children(i).length>0)D(i,r,n,s);else{const c=r.node(i);o.log.info("cp ",i," to ",s," with parent ",e),n.setNode(i,c),s!==r.parent(i)&&(o.log.warn("Setting parent",i,r.parent(i)),n.setParent(i,r.parent(i))),e!==s&&i!==e?(o.log.debug("Setting parent",i,e),n.setParent(i,e)):(o.log.info("In copy ",e,"root",s,"data",r.node(e),s),o.log.debug("Not Setting parent for node=",i,"cluster!==rootId",e!==s,"node!==clusterId",i!==e));const u=r.edges(i);o.log.debug("Copying Edges",u),u.forEach(l=>{o.log.info("Edge",l);const f=r.edge(l.v,l.w,l.name);o.log.info("Edge data",f,s);try{if(F(l,s)){const C=d.get(s)||[],b=C.includes(l.v)||w(l.v,s)||l.v===s,_=C.includes(l.w)||w(l.w,s)||l.w===s;if(b&&_)o.log.info("Copying as ",l.v,l.w,f,l.name),n.setEdge(l.v,l.w,f,l.name),o.log.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]));else{const x=b?s:l.v,h=_?s:l.w;o.log.info("Rebinding cross-boundary edge as ",x,h,f,l.name),r.setEdge(x,h,f,l.name)}}else o.log.info("Skipping copy of edge ",l.v,"-->",l.w," rootId: ",s," clusterId:",e)}catch(C){o.log.error(C)}})}o.log.debug("Removing node",i),r.removeNode(i)})},"copy"),S=o.__name((e,r)=>{const n=r.children(e);let s=[...n];for(const t of n)y.set(t,e),s=[...s,...S(t,r)];return s},"extractDescendants"),M=o.__name((e,r,n)=>{const s=e.edges().filter(l=>l.v===r||l.w===r),t=e.edges().filter(l=>l.v===n||l.w===n),i=s.map(l=>({v:l.v===r?n:l.v,w:l.w===r?r:l.w})),c=t.map(l=>({v:l.v,w:l.w}));return i.filter(l=>c.some(f=>l.v===f.v&&l.w===f.w))},"findCommonEdges"),m=o.__name((e,r,n)=>{const s=r.children(e);if(o.log.trace("Searching children of id ",e,s),s.length<1)return e;let t;for(const i of s){const c=m(i,r,n),u=M(r,n,c);if(c)if(u.length>0)t=c;else return c}return t},"findNonClusterChild"),N=o.__name(e=>!a.has(e)||!a.get(e).externalConnections?e:a.has(e)?a.get(e).id:e,"getAnchorId"),R=o.__name((e,r)=>{if(!e||r>10){o.log.debug("Opting out, no graph ");return}else o.log.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(o.log.warn("Cluster identified",n," Replacement id in edges: ",m(n,e,n)),d.set(n,S(n,e)),a.set(n,{id:m(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const s=e.children(n),t=e.edges();s.length>0?(o.log.debug("Cluster identified",n,d),t.forEach(i=>{const c=w(i.v,n),u=w(i.w,n);c^u&&(o.log.warn("Edge: ",i," leaves cluster ",n),o.log.warn("Descendants of XXX ",n,": ",d.get(n)),a.get(n).externalConnections=!0)})):o.log.debug("Not a cluster ",n,d)});for(let n of a.keys()){const s=a.get(n).id,t=e.parent(s);t!==n&&a.has(t)&&!a.get(t).externalConnections&&(a.get(n).id=t);const i=e.edges().some(c=>c.v===n);if(s&&a.get(n)?.externalConnections&&i&&O(e,s,n)){const c=H(e,n,e.parent(s));c&&(a.get(n).id=c)}}e.edges().forEach(function(n){const s=e.edge(n);o.log.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),o.log.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let t=n.v,i=n.w;if(o.log.warn("Fix XXX",a,"ids:",n.v,n.w,"Translating: ",a.get(n.v)," --- ",a.get(n.w)),a.get(n.v)||a.get(n.w)){if(o.log.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),t=N(n.v),i=N(n.w),e.removeEdge(n.v,n.w,n.name),t!==n.v){const c=e.parent(t);a.get(c).externalConnections=!0,s.fromCluster=n.v}if(i!==n.w){const c=e.parent(i);a.get(c).externalConnections=!0,s.toCluster=n.w}o.log.warn("Fix Replacing with XXX",t,i,n.name),e.setEdge(t,i,s,n.name)}}),o.log.warn("Adjusted Graph",v(e)),X(e,0),o.log.trace(a)},"adjustClustersAndEdges"),X=o.__name((e,r)=>{if(o.log.warn("extractor - ",r,v(e),e.children("D")),r>10){o.log.error("Bailing out");return}let n=e.nodes(),s=!1;for(const t of n){const i=e.children(t);s=s||i.length>0}if(!s){o.log.debug("Done, no node has children",e.nodes());return}o.log.debug("Nodes = ",n,r);for(const t of n)if(o.log.debug("Extracting node",t,a,a.has(t)&&!a.get(t).externalConnections,!e.parent(t),e.node(t),e.children("D")," Depth ",r),!a.has(t))o.log.debug("Not a cluster",t,r);else if(a.get(t)?.clusterData?.explicitDir&&e.children(t)&&e.children(t).length>0){o.log.warn("Cluster with explicit dir, creating subgraph for children",t,r);const i=a.get(t).clusterData.dir,c=new g.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:i,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});D(t,e,c,t);const u=e.node(t)||{};e.setNode(t,{...u,clusterNode:!0,id:t,clusterData:a.get(t).clusterData,label:a.get(t).label,graph:c}),o.log.warn("Subgraph for cluster with explicit dir created:",t,v(c))}else if(!a.get(t).externalConnections&&e.children(t)&&e.children(t).length>0){o.log.warn("Cluster without external connections, without a parent and with children",t,r);let c=e.graph().rankdir==="TB"?"LR":"TB";a.get(t)?.clusterData?.dir&&(c=a.get(t).clusterData.dir,o.log.warn("Fixing dir",a.get(t).clusterData.dir,c));const u=new g.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:c,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});D(t,e,u,t);const l=e.node(t)||{};e.setNode(t,{...l,clusterNode:!0,id:t,clusterData:a.get(t).clusterData,label:a.get(t).label,graph:u}),o.log.debug("Old graph after copy",v(e))}else o.log.warn("Cluster ** ",t," **not meeting the criteria !externalConnections:",!a.get(t).externalConnections," no parent: ",!e.parent(t)," children ",e.children(t)&&e.children(t).length>0,e.children("D"),r),o.log.debug(a);n=e.nodes(),o.log.warn("New list of nodes",n);for(const t of n){const i=e.node(t);o.log.warn(" Now next level",t,i),i?.clusterNode&&X(i.graph,r+1)}},"extractor"),A=o.__name((e,r)=>{if(r.length===0)return[];let n=Object.assign([],r);return r.forEach(s=>{const t=e.children(s),i=A(e,t);n=[...n,...i]}),n},"sorter"),U=o.__name(e=>A(e,e.children()),"sortNodesByHierarchy"),O=o.__name((e,r,n)=>{let s=e.parent(r);for(;s&&s!==n;){const t=a.get(s);if(t&&!t.externalConnections)return!0;s=e.parent(s)}return!1},"isNodeInExtractableCluster"),H=o.__name((e,r,n)=>{const s=e.children(r)??[];for(const t of s){if(t===n||w(t,n))continue;const i=m(t,e,r);if(i&&!O(e,i,r))return i}return null},"findSafeAnchorNode");exports.adjustClustersAndEdges=R;exports.clear=p;exports.clusterDb=a;exports.findNonClusterChild=m;exports.sortNodesByHierarchy=U;exports.write=v;
2
+ //# sourceMappingURL=chunk-RYQCIY6F-BaozHSpS.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunk-RYQCIY6F-he5fUSYo.cjs","sources":["../../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/clone.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.14/node_modules/dagre-d3-es/src/graphlib/json.js","../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-RYQCIY6F.mjs"],"sourcesContent":["import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\n/**\n * @import { NodeID, EdgeObj, GraphOptions } from './graph.js';\n */\n\nexport { write, read };\n\n/**\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n *\n * @typedef {object} GraphJSON\n * @property {Required<GraphOptions>} options - The options used to create the graph.\n * @property {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} nodes - The nodes in the graph.\n * @property {Array<EdgeObj & { value?: EdgeLabel }>} edges - The edges in the graph.\n * @property {GraphLabel} [value] - The graph's value, if any.\n */\n\n/**\n * Creates a JSON representation of the graph that can be serialized to a\n * string with\n * [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).\n * The graph can later be restored using {@link read}.\n *\n * @example\n *\n * ```js\n * var g = new graphlib.Graph();\n * g.setNode(\"a\", { label: \"node a\" });\n * g.setNode(\"b\", { label: \"node b\" });\n * g.setEdge(\"a\", \"b\", { label: \"edge a->b\" });\n * graphlib.json.write(g);\n * // Returns the object:\n * //\n * // {\n * // \"options\": {\n * // \"directed\": true,\n * // \"multigraph\": false,\n * // \"compound\": false\n * // },\n * // \"nodes\": [\n * // { \"v\": \"a\", \"value\": { \"label\": \"node a\" } },\n * // { \"v\": \"b\", \"value\": { \"label\": \"node b\" } }\n * // ],\n * // \"edges\": [\n * // { \"v\": \"a\", \"w\": \"b\", \"value\": { \"label\": \"edge a->b\" } }\n * // ]\n * // }\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {Graph<GraphLabel, NodeLabel, EdgeLabel>} g - The graph to serialize.\n * @returns {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} The JSON representation of the graph.\n */\nfunction write(g) {\n /** @type {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} */\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound(),\n },\n nodes: writeNodes(g),\n edges: writeEdges(g),\n };\n if (!_.isUndefined(g.graph())) {\n json.value = _.clone(g.graph());\n }\n return json;\n}\n\n/**\n * @template NodeLabel - Label of a node.\n *\n * @param {Graph<unknown, NodeLabel, unknown>} g - The graph to serialize.\n * @returns {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} The nodes in the graph.\n */\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n /** @type {{ v: NodeID; value?: NodeLabel; parent?: NodeID }} */\n var node = { v: v };\n if (!_.isUndefined(nodeValue)) {\n node.value = nodeValue;\n }\n if (!_.isUndefined(parent)) {\n node.parent = parent;\n }\n return node;\n });\n}\n\n/**\n * @template EdgeLabel - Label of a node.\n *\n * @param {Graph<unknown, unknown, EdgeLabel>} g - The graph to serialize.\n * @returns {Array<EdgeObj & { value?: EdgeLabel }>} The edges in the graph.\n */\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\n /** @type {EdgeObj & { value?: EdgeLabel }} */\n var edge = { v: e.v, w: e.w };\n if (!_.isUndefined(e.name)) {\n edge.name = e.name;\n }\n if (!_.isUndefined(edgeValue)) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\n/**\n * Takes JSON as input and returns the graph representation.\n *\n * @example\n *\n * For example, if we have serialized the graph in {@link write}\n * to a string named `str`, we can restore it to a graph as follows:\n *\n * ```js\n * var g2 = graphlib.json.read(JSON.parse(str));\n * // or, in order to copy the graph\n * var g3 = graphlib.json.read(graphlib.json.write(g))\n *\n * g2.nodes();\n * // ['a', 'b']\n * g2.edges()\n * // [ { v: 'a', w: 'b' } ]\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} json - The JSON representation of the graph.\n * @returns {Graph<GraphLabel, NodeLabel, EdgeLabel>} The restored graph.\n */\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n _.each(json.nodes, function (entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n _.each(json.edges, function (entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n","import {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.js\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nvar clusterDb = /* @__PURE__ */ new Map();\nvar descendants = /* @__PURE__ */ new Map();\nvar parents = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n descendants.clear();\n parents.clear();\n clusterDb.clear();\n}, \"clear\");\nvar isDescendant = /* @__PURE__ */ __name((id, ancestorId) => {\n const ancestorDescendants = descendants.get(ancestorId) || [];\n log.trace(\"In isDescendant\", ancestorId, \" \", id, \" = \", ancestorDescendants.includes(id));\n return ancestorDescendants.includes(id);\n}, \"isDescendant\");\nvar edgeInCluster = /* @__PURE__ */ __name((edge, clusterId) => {\n const clusterDescendants = descendants.get(clusterId) || [];\n log.info(\"Descendants of \", clusterId, \" is \", clusterDescendants);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId || edge.w === clusterId) {\n return false;\n }\n if (!clusterDescendants) {\n log.debug(\"Tilt, \", clusterId, \",not in descendants\");\n return false;\n }\n return clusterDescendants.includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || clusterDescendants.includes(edge.w);\n}, \"edgeInCluster\");\nvar copy = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n const rootDescendants = descendants.get(rootId) || [];\n const vIn = rootDescendants.includes(edge.v) || isDescendant(edge.v, rootId) || edge.v === rootId;\n const wIn = rootDescendants.includes(edge.w) || isDescendant(edge.w, rootId) || edge.w === rootId;\n if (vIn && wIn) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n const newV = vIn ? rootId : edge.v;\n const newW = wIn ? rootId : edge.w;\n log.info(\"Rebinding cross-boundary edge as \", newV, newW, data2, edge.name);\n graph.setEdge(newV, newW, data2, edge.name);\n }\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n}, \"copy\");\nvar extractDescendants = /* @__PURE__ */ __name((id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents.set(child, id);\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n}, \"extractDescendants\");\nvar findCommonEdges = /* @__PURE__ */ __name((graph, id1, id2) => {\n const edges1 = graph.edges().filter((edge) => edge.v === id1 || edge.w === id1);\n const edges2 = graph.edges().filter((edge) => edge.v === id2 || edge.w === id2);\n const edges1Prim = edges1.map((edge) => {\n return { v: edge.v === id1 ? id2 : edge.v, w: edge.w === id1 ? id1 : edge.w };\n });\n const edges2Prim = edges2.map((edge) => {\n return { v: edge.v, w: edge.w };\n });\n const result = edges1Prim.filter((edgeIn1) => {\n return edges2Prim.some((edge) => edgeIn1.v === edge.v && edgeIn1.w === edge.w);\n });\n return result;\n}, \"findCommonEdges\");\nvar findNonClusterChild = /* @__PURE__ */ __name((id, graph, clusterId) => {\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n return id;\n }\n let reserve;\n for (const child of children) {\n const _id = findNonClusterChild(child, graph, clusterId);\n const commonEdges = findCommonEdges(graph, clusterId, _id);\n if (_id) {\n if (commonEdges.length > 0) {\n reserve = _id;\n } else {\n return _id;\n }\n }\n }\n return reserve;\n}, \"findNonClusterChild\");\nvar getAnchorId = /* @__PURE__ */ __name((id) => {\n if (!clusterDb.has(id)) {\n return id;\n }\n if (!clusterDb.get(id).externalConnections) {\n return id;\n }\n if (clusterDb.has(id)) {\n return clusterDb.get(id).id;\n }\n return id;\n}, \"getAnchorId\");\nvar adjustClustersAndEdges = /* @__PURE__ */ __name((graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph, id)\n );\n descendants.set(id, extractDescendants(id, graph));\n clusterDb.set(id, { id: findNonClusterChild(id, graph, id), clusterData: graph.node(id) });\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Descendants of XXX \", id, \": \", descendants.get(id));\n clusterDb.get(id).externalConnections = true;\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n for (let id of clusterDb.keys()) {\n const nonClusterChild = clusterDb.get(id).id;\n const parent = graph.parent(nonClusterChild);\n if (parent !== id && clusterDb.has(parent) && !clusterDb.get(parent).externalConnections) {\n clusterDb.get(id).id = parent;\n }\n const hasDirectOutgoingEdge = graph.edges().some((edge) => edge.v === id);\n if (nonClusterChild && clusterDb.get(id)?.externalConnections && hasDirectOutgoingEdge && isNodeInExtractableCluster(graph, nonClusterChild, id)) {\n const safeAnchor = findSafeAnchorNode(graph, id, graph.parent(nonClusterChild));\n if (safeAnchor) {\n clusterDb.get(id).id = safeAnchor;\n }\n }\n }\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n \" --- \",\n clusterDb.get(e.w)\n );\n if (clusterDb.get(e.v) || clusterDb.get(e.w)) {\n log.warn(\"Fixing and trying - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n const parent = graph.parent(v);\n clusterDb.get(parent).externalConnections = true;\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n const parent = graph.parent(w);\n clusterDb.get(parent).externalConnections = true;\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n}, \"adjustClustersAndEdges\");\nvar extractor = /* @__PURE__ */ __name((graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb.has(node) && !clusterDb.get(node).externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb.has(node)) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (clusterDb.get(node)?.clusterData?.explicitDir && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\"Cluster with explicit dir, creating subgraph for children\", node, depth);\n const dir = clusterDb.get(node).clusterData.dir;\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n copy(node, graph, clusterGraph, node);\n const clusterNodeData = graph.node(node) || {};\n graph.setNode(node, {\n ...clusterNodeData,\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.warn(\n \"Subgraph for cluster with explicit dir created:\",\n node,\n graphlibJson.write(clusterGraph)\n );\n } else if (!clusterDb.get(node).externalConnections && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb.get(node)?.clusterData?.dir) {\n dir = clusterDb.get(node).clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb.get(node).clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n copy(node, graph, clusterGraph, node);\n const clusterNodeData = graph.node(node) || {};\n graph.setNode(node, {\n ...clusterNodeData,\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb.get(node).externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data?.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n}, \"extractor\");\nvar sorter = /* @__PURE__ */ __name((graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign([], nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n}, \"sorter\");\nvar sortNodesByHierarchy = /* @__PURE__ */ __name((graph) => sorter(graph, graph.children()), \"sortNodesByHierarchy\");\nvar isNodeInExtractableCluster = /* @__PURE__ */ __name((graph, node, rootId) => {\n let parent = graph.parent(node);\n while (parent && parent !== rootId) {\n const cluster = clusterDb.get(parent);\n if (cluster && !cluster.externalConnections) {\n return true;\n }\n parent = graph.parent(parent);\n }\n return false;\n}, \"isNodeInExtractableCluster\");\nvar findSafeAnchorNode = /* @__PURE__ */ __name((graph, clusterId, excludedCluster) => {\n const children = graph.children(clusterId) ?? [];\n for (const child of children) {\n if (child === excludedCluster || isDescendant(child, excludedCluster)) {\n continue;\n }\n const candidate = findNonClusterChild(child, graph, clusterId);\n if (!candidate) {\n continue;\n }\n if (!isNodeInExtractableCluster(graph, candidate, clusterId)) {\n return candidate;\n }\n }\n return null;\n}, \"findSafeAnchorNode\");\n\nexport {\n clusterDb,\n clear,\n findNonClusterChild,\n adjustClustersAndEdges,\n sortNodesByHierarchy\n};\n"],"names":["CLONE_SYMBOLS_FLAG","clone","value","baseClone","write","g","json","writeNodes","writeEdges","_.isUndefined","_.clone","_.map","v","nodeValue","parent","node","e","edgeValue","edge","clusterDb","descendants","parents","clear","__name","isDescendant","id","ancestorId","ancestorDescendants","log","edgeInCluster","clusterId","clusterDescendants","copy","graph","newGraph","rootId","nodes","data","edges","data2","rootDescendants","vIn","wIn","newV","newW","extractDescendants","children","res","child","findCommonEdges","id1","id2","edges1","edges2","edges1Prim","edges2Prim","edgeIn1","findNonClusterChild","reserve","_id","commonEdges","getAnchorId","adjustClustersAndEdges","depth","d1","d2","nonClusterChild","hasDirectOutgoingEdge","isNodeInExtractableCluster","safeAnchor","findSafeAnchorNode","w","graphlibJson.write","extractor","hasChildren","dir","clusterGraph","graphlib.Graph","clusterNodeData","sorter","result","sorted","sortNodesByHierarchy","cluster","excludedCluster","candidate"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"chunk-RYQCIY6F-BaozHSpS.cjs","sources":["../../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/clone.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.14/node_modules/dagre-d3-es/src/graphlib/json.js","../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-RYQCIY6F.mjs"],"sourcesContent":["import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\n/**\n * @import { NodeID, EdgeObj, GraphOptions } from './graph.js';\n */\n\nexport { write, read };\n\n/**\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n *\n * @typedef {object} GraphJSON\n * @property {Required<GraphOptions>} options - The options used to create the graph.\n * @property {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} nodes - The nodes in the graph.\n * @property {Array<EdgeObj & { value?: EdgeLabel }>} edges - The edges in the graph.\n * @property {GraphLabel} [value] - The graph's value, if any.\n */\n\n/**\n * Creates a JSON representation of the graph that can be serialized to a\n * string with\n * [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).\n * The graph can later be restored using {@link read}.\n *\n * @example\n *\n * ```js\n * var g = new graphlib.Graph();\n * g.setNode(\"a\", { label: \"node a\" });\n * g.setNode(\"b\", { label: \"node b\" });\n * g.setEdge(\"a\", \"b\", { label: \"edge a->b\" });\n * graphlib.json.write(g);\n * // Returns the object:\n * //\n * // {\n * // \"options\": {\n * // \"directed\": true,\n * // \"multigraph\": false,\n * // \"compound\": false\n * // },\n * // \"nodes\": [\n * // { \"v\": \"a\", \"value\": { \"label\": \"node a\" } },\n * // { \"v\": \"b\", \"value\": { \"label\": \"node b\" } }\n * // ],\n * // \"edges\": [\n * // { \"v\": \"a\", \"w\": \"b\", \"value\": { \"label\": \"edge a->b\" } }\n * // ]\n * // }\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {Graph<GraphLabel, NodeLabel, EdgeLabel>} g - The graph to serialize.\n * @returns {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} The JSON representation of the graph.\n */\nfunction write(g) {\n /** @type {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} */\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound(),\n },\n nodes: writeNodes(g),\n edges: writeEdges(g),\n };\n if (!_.isUndefined(g.graph())) {\n json.value = _.clone(g.graph());\n }\n return json;\n}\n\n/**\n * @template NodeLabel - Label of a node.\n *\n * @param {Graph<unknown, NodeLabel, unknown>} g - The graph to serialize.\n * @returns {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} The nodes in the graph.\n */\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n /** @type {{ v: NodeID; value?: NodeLabel; parent?: NodeID }} */\n var node = { v: v };\n if (!_.isUndefined(nodeValue)) {\n node.value = nodeValue;\n }\n if (!_.isUndefined(parent)) {\n node.parent = parent;\n }\n return node;\n });\n}\n\n/**\n * @template EdgeLabel - Label of a node.\n *\n * @param {Graph<unknown, unknown, EdgeLabel>} g - The graph to serialize.\n * @returns {Array<EdgeObj & { value?: EdgeLabel }>} The edges in the graph.\n */\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\n /** @type {EdgeObj & { value?: EdgeLabel }} */\n var edge = { v: e.v, w: e.w };\n if (!_.isUndefined(e.name)) {\n edge.name = e.name;\n }\n if (!_.isUndefined(edgeValue)) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\n/**\n * Takes JSON as input and returns the graph representation.\n *\n * @example\n *\n * For example, if we have serialized the graph in {@link write}\n * to a string named `str`, we can restore it to a graph as follows:\n *\n * ```js\n * var g2 = graphlib.json.read(JSON.parse(str));\n * // or, in order to copy the graph\n * var g3 = graphlib.json.read(graphlib.json.write(g))\n *\n * g2.nodes();\n * // ['a', 'b']\n * g2.edges()\n * // [ { v: 'a', w: 'b' } ]\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} json - The JSON representation of the graph.\n * @returns {Graph<GraphLabel, NodeLabel, EdgeLabel>} The restored graph.\n */\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n _.each(json.nodes, function (entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n _.each(json.edges, function (entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n","import {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.js\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nvar clusterDb = /* @__PURE__ */ new Map();\nvar descendants = /* @__PURE__ */ new Map();\nvar parents = /* @__PURE__ */ new Map();\nvar clear = /* @__PURE__ */ __name(() => {\n descendants.clear();\n parents.clear();\n clusterDb.clear();\n}, \"clear\");\nvar isDescendant = /* @__PURE__ */ __name((id, ancestorId) => {\n const ancestorDescendants = descendants.get(ancestorId) || [];\n log.trace(\"In isDescendant\", ancestorId, \" \", id, \" = \", ancestorDescendants.includes(id));\n return ancestorDescendants.includes(id);\n}, \"isDescendant\");\nvar edgeInCluster = /* @__PURE__ */ __name((edge, clusterId) => {\n const clusterDescendants = descendants.get(clusterId) || [];\n log.info(\"Descendants of \", clusterId, \" is \", clusterDescendants);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId || edge.w === clusterId) {\n return false;\n }\n if (!clusterDescendants) {\n log.debug(\"Tilt, \", clusterId, \",not in descendants\");\n return false;\n }\n return clusterDescendants.includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || clusterDescendants.includes(edge.w);\n}, \"edgeInCluster\");\nvar copy = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n const rootDescendants = descendants.get(rootId) || [];\n const vIn = rootDescendants.includes(edge.v) || isDescendant(edge.v, rootId) || edge.v === rootId;\n const wIn = rootDescendants.includes(edge.w) || isDescendant(edge.w, rootId) || edge.w === rootId;\n if (vIn && wIn) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n const newV = vIn ? rootId : edge.v;\n const newW = wIn ? rootId : edge.w;\n log.info(\"Rebinding cross-boundary edge as \", newV, newW, data2, edge.name);\n graph.setEdge(newV, newW, data2, edge.name);\n }\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n}, \"copy\");\nvar extractDescendants = /* @__PURE__ */ __name((id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents.set(child, id);\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n}, \"extractDescendants\");\nvar findCommonEdges = /* @__PURE__ */ __name((graph, id1, id2) => {\n const edges1 = graph.edges().filter((edge) => edge.v === id1 || edge.w === id1);\n const edges2 = graph.edges().filter((edge) => edge.v === id2 || edge.w === id2);\n const edges1Prim = edges1.map((edge) => {\n return { v: edge.v === id1 ? id2 : edge.v, w: edge.w === id1 ? id1 : edge.w };\n });\n const edges2Prim = edges2.map((edge) => {\n return { v: edge.v, w: edge.w };\n });\n const result = edges1Prim.filter((edgeIn1) => {\n return edges2Prim.some((edge) => edgeIn1.v === edge.v && edgeIn1.w === edge.w);\n });\n return result;\n}, \"findCommonEdges\");\nvar findNonClusterChild = /* @__PURE__ */ __name((id, graph, clusterId) => {\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n return id;\n }\n let reserve;\n for (const child of children) {\n const _id = findNonClusterChild(child, graph, clusterId);\n const commonEdges = findCommonEdges(graph, clusterId, _id);\n if (_id) {\n if (commonEdges.length > 0) {\n reserve = _id;\n } else {\n return _id;\n }\n }\n }\n return reserve;\n}, \"findNonClusterChild\");\nvar getAnchorId = /* @__PURE__ */ __name((id) => {\n if (!clusterDb.has(id)) {\n return id;\n }\n if (!clusterDb.get(id).externalConnections) {\n return id;\n }\n if (clusterDb.has(id)) {\n return clusterDb.get(id).id;\n }\n return id;\n}, \"getAnchorId\");\nvar adjustClustersAndEdges = /* @__PURE__ */ __name((graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph, id)\n );\n descendants.set(id, extractDescendants(id, graph));\n clusterDb.set(id, { id: findNonClusterChild(id, graph, id), clusterData: graph.node(id) });\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Descendants of XXX \", id, \": \", descendants.get(id));\n clusterDb.get(id).externalConnections = true;\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n for (let id of clusterDb.keys()) {\n const nonClusterChild = clusterDb.get(id).id;\n const parent = graph.parent(nonClusterChild);\n if (parent !== id && clusterDb.has(parent) && !clusterDb.get(parent).externalConnections) {\n clusterDb.get(id).id = parent;\n }\n const hasDirectOutgoingEdge = graph.edges().some((edge) => edge.v === id);\n if (nonClusterChild && clusterDb.get(id)?.externalConnections && hasDirectOutgoingEdge && isNodeInExtractableCluster(graph, nonClusterChild, id)) {\n const safeAnchor = findSafeAnchorNode(graph, id, graph.parent(nonClusterChild));\n if (safeAnchor) {\n clusterDb.get(id).id = safeAnchor;\n }\n }\n }\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n \" --- \",\n clusterDb.get(e.w)\n );\n if (clusterDb.get(e.v) || clusterDb.get(e.w)) {\n log.warn(\"Fixing and trying - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n const parent = graph.parent(v);\n clusterDb.get(parent).externalConnections = true;\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n const parent = graph.parent(w);\n clusterDb.get(parent).externalConnections = true;\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n}, \"adjustClustersAndEdges\");\nvar extractor = /* @__PURE__ */ __name((graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb.has(node) && !clusterDb.get(node).externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb.has(node)) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (clusterDb.get(node)?.clusterData?.explicitDir && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\"Cluster with explicit dir, creating subgraph for children\", node, depth);\n const dir = clusterDb.get(node).clusterData.dir;\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n copy(node, graph, clusterGraph, node);\n const clusterNodeData = graph.node(node) || {};\n graph.setNode(node, {\n ...clusterNodeData,\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.warn(\n \"Subgraph for cluster with explicit dir created:\",\n node,\n graphlibJson.write(clusterGraph)\n );\n } else if (!clusterDb.get(node).externalConnections && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb.get(node)?.clusterData?.dir) {\n dir = clusterDb.get(node).clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb.get(node).clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n copy(node, graph, clusterGraph, node);\n const clusterNodeData = graph.node(node) || {};\n graph.setNode(node, {\n ...clusterNodeData,\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb.get(node).externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data?.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n}, \"extractor\");\nvar sorter = /* @__PURE__ */ __name((graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign([], nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n}, \"sorter\");\nvar sortNodesByHierarchy = /* @__PURE__ */ __name((graph) => sorter(graph, graph.children()), \"sortNodesByHierarchy\");\nvar isNodeInExtractableCluster = /* @__PURE__ */ __name((graph, node, rootId) => {\n let parent = graph.parent(node);\n while (parent && parent !== rootId) {\n const cluster = clusterDb.get(parent);\n if (cluster && !cluster.externalConnections) {\n return true;\n }\n parent = graph.parent(parent);\n }\n return false;\n}, \"isNodeInExtractableCluster\");\nvar findSafeAnchorNode = /* @__PURE__ */ __name((graph, clusterId, excludedCluster) => {\n const children = graph.children(clusterId) ?? [];\n for (const child of children) {\n if (child === excludedCluster || isDescendant(child, excludedCluster)) {\n continue;\n }\n const candidate = findNonClusterChild(child, graph, clusterId);\n if (!candidate) {\n continue;\n }\n if (!isNodeInExtractableCluster(graph, candidate, clusterId)) {\n return candidate;\n }\n }\n return null;\n}, \"findSafeAnchorNode\");\n\nexport {\n clusterDb,\n clear,\n findNonClusterChild,\n adjustClustersAndEdges,\n sortNodesByHierarchy\n};\n"],"names":["CLONE_SYMBOLS_FLAG","clone","value","baseClone","write","g","json","writeNodes","writeEdges","_.isUndefined","_.clone","_.map","v","nodeValue","parent","node","e","edgeValue","edge","clusterDb","descendants","parents","clear","__name","isDescendant","id","ancestorId","ancestorDescendants","log","edgeInCluster","clusterId","clusterDescendants","copy","graph","newGraph","rootId","nodes","data","edges","data2","rootDescendants","vIn","wIn","newV","newW","extractDescendants","children","res","child","findCommonEdges","id1","id2","edges1","edges2","edges1Prim","edges2Prim","edgeIn1","findNonClusterChild","reserve","_id","commonEdges","getAnchorId","adjustClustersAndEdges","depth","d1","d2","nonClusterChild","hasDirectOutgoingEdge","isNodeInExtractableCluster","safeAnchor","findSafeAnchorNode","w","graphlibJson.write","extractor","hasChildren","dir","clusterGraph","graphlib.Graph","clusterNodeData","sorter","result","sorted","sortNodesByHierarchy","cluster","excludedCluster","candidate"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -1,8 +1,8 @@
1
- import { g as st } from "./chunk-5VM5RSS4-BhTMtA9l.js";
2
- import { g as it } from "./chunk-XXDRQBXY-qt9x9red.js";
3
- import { s as at } from "./chunk-VR4S4FIN-BWCLM0a0.js";
4
- import { _ as f, a1 as we, $ as F, ac as nt, ad as rt, ae as Ve, a0 as Ae, X as ut, W as lt, U as ct, V as ot, af as ht, ag as dt, a8 as I, al as pt, ak as At, a5 as ft, aC as U } from "./extractHeadings-BH0T7P4n.js";
5
- import { c as gt } from "./chunk-32BRIVSS-CXH5EQUk.js";
1
+ import { g as st } from "./chunk-5VM5RSS4-BzNAhFN7.js";
2
+ import { g as it } from "./chunk-XXDRQBXY-Bcfw5A34.js";
3
+ import { s as at } from "./chunk-VR4S4FIN-Dshtsgib.js";
4
+ import { _ as f, a1 as we, $ as F, ac as nt, ad as rt, ae as Ve, a0 as Ae, X as ut, W as lt, U as ct, V as ot, af as ht, ag as dt, a8 as I, al as pt, ak as At, a5 as ft, aC as U } from "./extractHeadings-Bfq3sy4n.js";
5
+ import { c as gt } from "./chunk-32BRIVSS-RrFz8EL9.js";
6
6
  import mt from "dompurify";
7
7
  var Pe = (function() {
8
8
  var s = /* @__PURE__ */ f(function(O, o, h, p) {
@@ -1532,4 +1532,4 @@ export {
1532
1532
  xt as c,
1533
1533
  Lt as s
1534
1534
  };
1535
- //# sourceMappingURL=chunk-V7JOEXUC-DWnZRQBl.js.map
1535
+ //# sourceMappingURL=chunk-V7JOEXUC-BpOeSTIu.js.map