create-workframe 0.1.14 → 0.1.15

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 (135) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/scripts/sync-canonical-to-package.mjs +3 -0
  4. package/workframe-api/activity_feed.py +53 -5
  5. package/workframe-api/api_errors.py +126 -0
  6. package/workframe-api/chat_bind.py +8 -1
  7. package/workframe-api/chat_stream.py +70 -26
  8. package/workframe-api/crew_registry.py +3 -6
  9. package/workframe-api/google_auth.py +20 -12
  10. package/workframe-api/handler_modules/handler_auth.py +66 -21
  11. package/workframe-api/handler_modules/handler_chat.py +25 -0
  12. package/workframe-api/handler_modules/handler_install.py +45 -0
  13. package/workframe-api/handler_modules/handler_provider.py +1 -0
  14. package/workframe-api/handler_modules/handler_workspace.py +30 -16
  15. package/workframe-api/hermes_admin.py +9 -2
  16. package/workframe-api/hermes_profiles.py +25 -5
  17. package/workframe-api/install_api.py +38 -4
  18. package/workframe-api/lane_bindings.py +24 -0
  19. package/workframe-api/llm_error_glossary.py +58 -4
  20. package/workframe-api/mention_invoke.py +89 -27
  21. package/workframe-api/model_surface.py +1 -1
  22. package/workframe-api/provider_bindings.py +44 -2
  23. package/workframe-api/provider_bootstrap.py +9 -0
  24. package/workframe-api/provider_catalog.py +3 -3
  25. package/workframe-api/rooms.py +3 -0
  26. package/workframe-api/route_registry.py +1 -0
  27. package/workframe-api/run_ledger.py +52 -8
  28. package/workframe-api/runtime_cohort.py +11 -1
  29. package/workframe-api/server.py +25 -1
  30. package/workframe-api/stack_config.py +4 -1
  31. package/workframe-api/test_api_errors.py +33 -0
  32. package/workframe-api/test_enrich_room_messages.py +72 -0
  33. package/workframe-api/test_exception_hygiene.py +4 -2
  34. package/workframe-api/test_hermes_admin.py +7 -0
  35. package/workframe-api/test_install_wizard_resume.py +39 -13
  36. package/workframe-api/test_model_surface_consistency.py +118 -100
  37. package/workframe-api/test_profile_model_yaml.py +4 -1
  38. package/workframe-api/test_provider_bindings.py +10 -0
  39. package/workframe-api/test_run_ledger.py +2 -1
  40. package/workframe-api/test_server_reexports.py +4 -0
  41. package/workframe-api/test_user_llm_prefs.py +99 -0
  42. package/workframe-api/time-overlay-split.py +58 -0
  43. package/workframe-api/time-ttft-quick.py +135 -0
  44. package/workframe-api/time-ttft.py +250 -0
  45. package/workframe-api/time-wf-stream.py +145 -0
  46. package/workframe-api/turn_overlay.py +96 -23
  47. package/workframe-api/updates.py +1 -2
  48. package/workframe-api/user_prefs.py +26 -5
  49. package/workframe-api/workspace_bootstrap.py +16 -10
  50. package/workframe-ui/public/assets/{arc-BT9iZUSd.js → arc-BARqpbNX.js} +1 -1
  51. package/workframe-ui/public/assets/architecture-7EHR7CIX-CYE89P6J.js +1 -0
  52. package/workframe-ui/public/assets/{architectureDiagram-3BPJPVTR-CaEDd3np.js → architectureDiagram-3BPJPVTR-bbpW6hfw.js} +1 -1
  53. package/workframe-ui/public/assets/{blockDiagram-GPEHLZMM-DHJhMrIS.js → blockDiagram-GPEHLZMM-aG0oR9eA.js} +1 -1
  54. package/workframe-ui/public/assets/brave-B885JYnH.svg +11 -0
  55. package/workframe-ui/public/assets/{c4Diagram-AAUBKEIU-Cdyz9hIV.js → c4Diagram-AAUBKEIU-BDi4E5jK.js} +1 -1
  56. package/workframe-ui/public/assets/channel-B4ex0Z2H.js +1 -0
  57. package/workframe-ui/public/assets/{chunk-2J33WTMH-BbZx76LX.js → chunk-2J33WTMH-BBU5tRNe.js} +1 -1
  58. package/workframe-ui/public/assets/{chunk-3OPIFGDE-DcSxjTIP.js → chunk-3OPIFGDE-SKhe5YD8.js} +1 -1
  59. package/workframe-ui/public/assets/{chunk-4BX2VUAB-B7F-kTY1.js → chunk-4BX2VUAB-D4uKMCPc.js} +1 -1
  60. package/workframe-ui/public/assets/{chunk-55IACEB6-BwwEiRTK.js → chunk-55IACEB6-SnqJA0wG.js} +1 -1
  61. package/workframe-ui/public/assets/{chunk-5ZQYHXKU-DAi_NksX.js → chunk-5ZQYHXKU-ZyBWNsT2.js} +1 -1
  62. package/workframe-ui/public/assets/{chunk-727SXJPM-BIaF4XCN.js → chunk-727SXJPM-DbxwKsiK.js} +1 -1
  63. package/workframe-ui/public/assets/{chunk-AQP2D5EJ-DjYSk1dG.js → chunk-AQP2D5EJ-Bm2iWcL0.js} +1 -1
  64. package/workframe-ui/public/assets/{chunk-BSJP7CBP-_twnyfgV.js → chunk-BSJP7CBP-CGwyQh1d.js} +1 -1
  65. package/workframe-ui/public/assets/{chunk-CSCIHK7Q-CkNmdy5s.js → chunk-CSCIHK7Q-XWSO96VW.js} +1 -1
  66. package/workframe-ui/public/assets/{chunk-FMBD7UC4-CjLqd-gl.js → chunk-FMBD7UC4-D0OTpUqL.js} +1 -1
  67. package/workframe-ui/public/assets/{chunk-KSCS5N6A-_6oNqFjj.js → chunk-KSCS5N6A-CM75wJ6j.js} +1 -1
  68. package/workframe-ui/public/assets/{chunk-L5ZTLDWV-CeO9Am_D.js → chunk-L5ZTLDWV-BCgtwaGP.js} +1 -1
  69. package/workframe-ui/public/assets/{chunk-LZXEDZCA-sRM4YeIe.js → chunk-LZXEDZCA-CZBc86Td.js} +2 -2
  70. package/workframe-ui/public/assets/{chunk-ND2GUHAM-CH8tMb21.js → chunk-ND2GUHAM-DIq9-Qtg.js} +1 -1
  71. package/workframe-ui/public/assets/{chunk-NZK2D7GU-DAI1bsII.js → chunk-NZK2D7GU-BTOOFYOR.js} +1 -1
  72. package/workframe-ui/public/assets/{chunk-O5CBEL6O-B2e-5a2G.js → chunk-O5CBEL6O-CYriwTot.js} +1 -1
  73. package/workframe-ui/public/assets/chunk-QZHKN3VN-sPK7umZx.js +1 -0
  74. package/workframe-ui/public/assets/chunk-WU5MYG2G-DtLDSmiK.js +1 -0
  75. package/workframe-ui/public/assets/{chunk-XPW4576I-DM2-0q37.js → chunk-XPW4576I-6iEhdiBi.js} +1 -1
  76. package/workframe-ui/public/assets/classDiagram-4FO5ZUOK-DWLy8pDS.js +1 -0
  77. package/workframe-ui/public/assets/classDiagram-v2-Q7XG4LA2-DWLy8pDS.js +1 -0
  78. package/workframe-ui/public/assets/{cose-bilkent-S5V4N54A-BnbbewLv.js → cose-bilkent-S5V4N54A-C716vjLB.js} +1 -1
  79. package/workframe-ui/public/assets/{dagre-BM42HDAG-C4zmB1Vt.js → dagre-BM42HDAG-Cs-MNVkM.js} +1 -1
  80. package/workframe-ui/public/assets/{diagram-2AECGRRQ-n-BJmsiC.js → diagram-2AECGRRQ-BqoyTWyW.js} +1 -1
  81. package/workframe-ui/public/assets/{diagram-5GNKFQAL-BzQGQnZi.js → diagram-5GNKFQAL-CDRTV5fY.js} +1 -1
  82. package/workframe-ui/public/assets/{diagram-KO2AKTUF-Cx_De-wS.js → diagram-KO2AKTUF-u9NjixEi.js} +1 -1
  83. package/workframe-ui/public/assets/{diagram-LMA3HP47-CIOI3Lok.js → diagram-LMA3HP47-rDd6T2os.js} +1 -1
  84. package/workframe-ui/public/assets/{diagram-OG6HWLK6-DkRuPLWY.js → diagram-OG6HWLK6-Bl4VX9RO.js} +1 -1
  85. package/workframe-ui/public/assets/{dist-XhCT1Q-V.js → dist-DSCcbFgV.js} +1 -1
  86. package/workframe-ui/public/assets/{erDiagram-TEJ5UH35-C3GwhDU1.js → erDiagram-TEJ5UH35-C9Nv-5nl.js} +1 -1
  87. package/workframe-ui/public/assets/eventmodeling-FCH6USID-B7kChV1b.js +1 -0
  88. package/workframe-ui/public/assets/{flowDiagram-I6XJVG4X-CLWH8z2e.js → flowDiagram-I6XJVG4X-D8Xhbd7s.js} +1 -1
  89. package/workframe-ui/public/assets/{ganttDiagram-6RSMTGT7-D4h66Vy3.js → ganttDiagram-6RSMTGT7-CMycBZqm.js} +1 -1
  90. package/workframe-ui/public/assets/gemini-Cq-0-rmr.svg +105 -0
  91. package/workframe-ui/public/assets/{gitGraph-WXDBUCRP-IW5F-Q6c.js → gitGraph-WXDBUCRP-DnIro8tZ.js} +1 -1
  92. package/workframe-ui/public/assets/{gitGraphDiagram-PVQCEYII-BjNIbmRM.js → gitGraphDiagram-PVQCEYII-B74H9ISZ.js} +1 -1
  93. package/workframe-ui/public/assets/index-BLVAsAeO.css +1 -0
  94. package/workframe-ui/public/assets/index-s4167RRh.js +132 -0
  95. package/workframe-ui/public/assets/{info-J43DQDTF-CcJspM79.js → info-J43DQDTF-B6mVw1B6.js} +1 -1
  96. package/workframe-ui/public/assets/{infoDiagram-5YYISTIA-DP4xR9jt.js → infoDiagram-5YYISTIA-Ddtfq_xy.js} +1 -1
  97. package/workframe-ui/public/assets/{ishikawaDiagram-YF4QCWOH-D4cZb21V.js → ishikawaDiagram-YF4QCWOH-DBb6veAL.js} +1 -1
  98. package/workframe-ui/public/assets/{journeyDiagram-JHISSGLW-DsLuHkIJ.js → journeyDiagram-JHISSGLW-DMgdeS5h.js} +1 -1
  99. package/workframe-ui/public/assets/{kanban-definition-UN3LZRKU-Wu65nOsR.js → kanban-definition-UN3LZRKU-DiV_LoDN.js} +1 -1
  100. package/workframe-ui/public/assets/{line-ByBDzRpy.js → line-BR9uEes_.js} +1 -1
  101. package/workframe-ui/public/assets/{linear-DzXi2vnq.js → linear-BhjkJfy9.js} +1 -1
  102. package/workframe-ui/public/assets/{mermaid-parser.core-CaB-1Ckn.js → mermaid-parser.core-CEWtaJIq.js} +2 -2
  103. package/workframe-ui/public/assets/{mermaid.core-D7HTHC17.js → mermaid.core-B6xKLKp-.js} +3 -3
  104. package/workframe-ui/public/assets/{mindmap-definition-RKZ34NQL-BfKsC9aj.js → mindmap-definition-RKZ34NQL-DypZm9OU.js} +1 -1
  105. package/workframe-ui/public/assets/{packet-YPE3B663-ClpU98TO.js → packet-YPE3B663-CCxb0WDS.js} +1 -1
  106. package/workframe-ui/public/assets/{pie-LRSECV5Y-KeOyY_-u.js → pie-LRSECV5Y-pTkr4g8B.js} +1 -1
  107. package/workframe-ui/public/assets/{pieDiagram-4H26LBE5-CUpjnzbs.js → pieDiagram-4H26LBE5-BventgTb.js} +1 -1
  108. package/workframe-ui/public/assets/{quadrantDiagram-W4KKPZXB-CJdPTszF.js → quadrantDiagram-W4KKPZXB-BQnvFJYk.js} +1 -1
  109. package/workframe-ui/public/assets/{radar-GUYGQ44K-C9BpandZ.js → radar-GUYGQ44K-EX9Pzmli.js} +1 -1
  110. package/workframe-ui/public/assets/{requirementDiagram-4Y6WPE33-CHDZPwry.js → requirementDiagram-4Y6WPE33-Bnw4xecM.js} +1 -1
  111. package/workframe-ui/public/assets/{sankeyDiagram-5OEKKPKP-CMJJh91s.js → sankeyDiagram-5OEKKPKP-spHh-EYp.js} +1 -1
  112. package/workframe-ui/public/assets/{sequenceDiagram-3UESZ5HK-BsV4GppP.js → sequenceDiagram-3UESZ5HK-CC97Qcbf.js} +1 -1
  113. package/workframe-ui/public/assets/{src-WHks82Up.js → src-DRcBNyeZ.js} +1 -1
  114. package/workframe-ui/public/assets/{stateDiagram-AJRCARHV-eSX9P8z0.js → stateDiagram-AJRCARHV-C8r8rx81.js} +1 -1
  115. package/workframe-ui/public/assets/stateDiagram-v2-BHNVJYJU-CnedwxVT.js +1 -0
  116. package/workframe-ui/public/assets/{timeline-definition-PNZ67QCA-Dg1UkhGo.js → timeline-definition-PNZ67QCA-CA4JxR_w.js} +1 -1
  117. package/workframe-ui/public/assets/{treeView-BLDUP644-B7yGsBuj.js → treeView-BLDUP644-BuGSo6xP.js} +1 -1
  118. package/workframe-ui/public/assets/{treemap-LRROVOQU-j_G2oyQ_.js → treemap-LRROVOQU-JyJMArE9.js} +1 -1
  119. package/workframe-ui/public/assets/{vennDiagram-CIIHVFJN-BRrT0jqC.js → vennDiagram-CIIHVFJN-BZAUo7xL.js} +1 -1
  120. package/workframe-ui/public/assets/{wardley-L42UT6IY-DEdUqez2.js → wardley-L42UT6IY-CMgm8t9M.js} +1 -1
  121. package/workframe-ui/public/assets/{wardleyDiagram-YWT4CUSO-C-bBK9Bb.js → wardleyDiagram-YWT4CUSO-CqI1c2zN.js} +1 -1
  122. package/workframe-ui/public/assets/{xychartDiagram-2RQKCTM6-DhH5xuR2.js → xychartDiagram-2RQKCTM6-DhTdH-jJ.js} +1 -1
  123. package/workframe-ui/public/index.html +2 -2
  124. package/workframe-ui/public/workframe-build.json +3 -3
  125. package/docs/security.md +0 -85
  126. package/workframe-ui/public/assets/architecture-7EHR7CIX-m1aPUQ_r.js +0 -1
  127. package/workframe-ui/public/assets/channel-3M69ekE5.js +0 -1
  128. package/workframe-ui/public/assets/chunk-QZHKN3VN-BMl9ed8P.js +0 -1
  129. package/workframe-ui/public/assets/chunk-WU5MYG2G-C08HH6BU.js +0 -1
  130. package/workframe-ui/public/assets/classDiagram-4FO5ZUOK-BFcOE4Aq.js +0 -1
  131. package/workframe-ui/public/assets/classDiagram-v2-Q7XG4LA2-BFcOE4Aq.js +0 -1
  132. package/workframe-ui/public/assets/eventmodeling-FCH6USID-DIVBL6CF.js +0 -1
  133. package/workframe-ui/public/assets/index-DL2vJP4L.css +0 -1
  134. package/workframe-ui/public/assets/index-ElS_D59P.js +0 -130
  135. package/workframe-ui/public/assets/stateDiagram-v2-BHNVJYJU-FzMK4PkM.js +0 -1
@@ -0,0 +1,105 @@
1
+ <svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="64" height="64" rx="8" fill="white"/>
3
+ <mask id="mask0_228_15907" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="13" y="13" width="38" height="38">
4
+ <path d="M31.97 13.7143C32.3526 13.7143 32.6862 13.9759 32.7796 14.3473C33.0651 15.483 33.4412 16.594 33.9044 17.6696C35.1151 20.4828 36.7766 22.9449 38.8859 25.0543C40.9964 27.1641 43.4579 28.8256 46.2706 30.0364C47.3464 30.4994 48.4576 30.8755 49.5935 31.1611C49.9648 31.2545 50.2259 31.5876 50.2259 31.9702C50.2259 32.3528 49.9648 32.6864 49.5929 32.7798C48.4572 33.0652 47.3461 33.4414 46.2706 33.9045C43.4574 35.1153 40.9958 36.7768 38.8859 38.8861C36.7766 40.9966 35.1151 43.4581 33.9044 46.2707C33.4411 47.3466 33.0648 48.4578 32.7791 49.5937C32.7339 49.7741 32.6297 49.9343 32.4832 50.0489C32.3366 50.1634 32.156 50.2258 31.97 50.2261C31.5874 50.2261 31.2543 49.965 31.1609 49.5931C30.8753 48.4573 30.499 47.3463 30.0357 46.2707C28.8254 43.4576 27.1645 40.996 25.0541 38.8861C22.9442 36.7768 20.4826 35.1153 17.6695 33.9045C16.5938 33.4413 15.4828 33.065 14.3471 32.7793C14.1666 32.7342 14.0064 32.6302 13.8917 32.4837C13.7771 32.3373 13.7146 32.1567 13.7141 31.9708C13.7141 31.5882 13.9757 31.2551 14.3471 31.1617C15.4829 30.8761 16.5939 30.4998 17.6695 30.0364C20.4826 28.8262 22.9447 27.1647 25.0541 25.0548C27.164 22.9455 28.8254 20.4834 30.0362 17.6702C30.4992 16.5946 30.8754 15.4835 31.1609 14.3478C31.2059 14.1672 31.31 14.0067 31.4566 13.892C31.6031 13.7772 31.7838 13.7147 31.97 13.7143Z" fill="black"/>
5
+ <path d="M31.97 13.7143C32.3526 13.7143 32.6862 13.9759 32.7796 14.3473C33.0651 15.483 33.4412 16.594 33.9044 17.6696C35.1151 20.4828 36.7766 22.9449 38.8859 25.0543C40.9964 27.1641 43.4579 28.8256 46.2706 30.0364C47.3464 30.4994 48.4576 30.8755 49.5935 31.1611C49.9648 31.2545 50.2259 31.5876 50.2259 31.9702C50.2259 32.3528 49.9648 32.6864 49.5929 32.7798C48.4572 33.0652 47.3461 33.4414 46.2706 33.9045C43.4574 35.1153 40.9958 36.7768 38.8859 38.8861C36.7766 40.9966 35.1151 43.4581 33.9044 46.2707C33.4411 47.3466 33.0648 48.4578 32.7791 49.5937C32.7339 49.7741 32.6297 49.9343 32.4832 50.0489C32.3366 50.1634 32.156 50.2258 31.97 50.2261C31.5874 50.2261 31.2543 49.965 31.1609 49.5931C30.8753 48.4573 30.499 47.3463 30.0357 46.2707C28.8254 43.4576 27.1645 40.996 25.0541 38.8861C22.9442 36.7768 20.4826 35.1153 17.6695 33.9045C16.5938 33.4413 15.4828 33.065 14.3471 32.7793C14.1666 32.7342 14.0064 32.6302 13.8917 32.4837C13.7771 32.3373 13.7146 32.1567 13.7141 31.9708C13.7141 31.5882 13.9757 31.2551 14.3471 31.1617C15.4829 30.8761 16.5939 30.4998 17.6695 30.0364C20.4826 28.8262 22.9447 27.1647 25.0541 25.0548C27.164 22.9455 28.8254 20.4834 30.0362 17.6702C30.4992 16.5946 30.8754 15.4835 31.1609 14.3478C31.2059 14.1672 31.31 14.0067 31.4566 13.892C31.6031 13.7772 31.7838 13.7147 31.97 13.7143Z" fill="url(#paint0_linear_228_15907)"/>
6
+ </mask>
7
+ <g mask="url(#mask0_228_15907)">
8
+ <g filter="url(#filter0_f_228_15907)">
9
+ <path d="M10.4176 42.2592C14.6362 43.7575 19.485 40.9482 21.2478 35.9846C23.0105 31.0216 21.0194 25.7835 16.8007 24.2851C12.582 22.7868 7.73324 25.5961 5.96993 30.5591C4.20775 35.5227 6.19892 40.7609 10.4176 42.2592Z" fill="black"/>
10
+ </g>
11
+ <g filter="url(#filter1_f_228_15907)">
12
+ <path d="M29.1489 25.8949C34.9441 25.8949 39.6427 21.0928 39.6427 15.1699C39.6427 9.24643 34.9447 4.44489 29.1489 4.44489C23.3532 4.44489 18.6541 9.24699 18.6541 15.1699C18.6541 21.0928 23.3526 25.8949 29.1489 25.8949Z" fill="black"/>
13
+ </g>
14
+ <g filter="url(#filter2_f_228_15907)">
15
+ <path d="M25.0705 60.1927C31.1205 59.8973 35.7145 53.3037 35.3313 45.4662C34.9487 37.6286 29.7331 31.5145 23.683 31.8104C17.633 32.1064 13.0391 38.6994 13.4222 46.5369C13.8054 54.3744 19.0205 60.4886 25.0705 60.1927Z" fill="black"/>
16
+ </g>
17
+ <g filter="url(#filter3_f_228_15907)">
18
+ <path d="M25.0705 60.1927C31.1205 59.8973 35.7145 53.3037 35.3313 45.4662C34.9487 37.6286 29.7331 31.5145 23.683 31.8104C17.633 32.1064 13.0391 38.6994 13.4222 46.5369C13.8054 54.3744 19.0205 60.4886 25.0705 60.1927Z" fill="black"/>
19
+ </g>
20
+ <g filter="url(#filter4_f_228_15907)">
21
+ <path d="M31.13 55.4513C36.2016 52.3652 37.5593 45.3373 34.162 39.7537C30.7648 34.1695 23.899 32.1446 18.8268 35.2301C13.7546 38.3167 12.397 45.3446 15.7942 50.9288C19.1925 56.5124 26.0578 58.5373 31.13 55.4513Z" fill="black"/>
22
+ </g>
23
+ <g filter="url(#filter5_f_228_15907)">
24
+ <path d="M51.631 37.9038C57.3316 37.9038 61.9531 33.4533 61.9531 27.9642C61.9531 22.4746 57.3316 18.0241 51.631 18.0241C45.9303 18.0241 41.3088 22.4746 41.3088 27.9642C41.3088 33.4539 45.9303 37.9038 51.631 37.9038Z" fill="black"/>
25
+ </g>
26
+ <g filter="url(#filter6_f_228_15907)">
27
+ <path d="M6.36334 36.7509C11.6128 40.7422 19.2809 39.4904 23.4912 33.9534C27.7014 28.4171 26.8597 20.6926 21.6103 16.7013C16.3608 12.7094 8.69322 13.9612 4.48245 19.4982C0.272232 25.0345 1.1145 32.7595 6.36334 36.7509Z" fill="black"/>
28
+ </g>
29
+ <g filter="url(#filter7_f_228_15907)">
30
+ <path d="M33.2604 42.6508C39.5253 46.9583 47.8304 45.7588 51.8094 39.9704C55.7889 34.1825 53.9356 25.999 47.6701 21.6914C41.4045 17.3827 33.1 18.5834 29.1205 24.3707C25.1415 30.1591 26.9943 38.3427 33.2598 42.6508H33.2604Z" fill="black"/>
31
+ </g>
32
+ <g filter="url(#filter8_f_228_15907)">
33
+ <path d="M44.6502 12.4C46.2441 14.5673 44.1955 18.7803 40.0754 21.8113C35.9546 24.8422 31.3224 25.5421 29.7284 23.3754C28.1345 21.2075 30.1825 16.9939 34.3027 13.9636C38.4234 10.9327 43.0562 10.2327 44.6496 12.3995L44.6502 12.4Z" fill="black"/>
34
+ </g>
35
+ <g filter="url(#filter9_f_228_15907)">
36
+ <path d="M31.565 22.775C37.9374 16.8639 40.1244 8.86098 36.4504 4.90001C32.7763 0.939044 24.6316 2.51893 18.2592 8.43C11.8867 14.3411 9.69921 22.344 13.3738 26.305C17.0478 30.266 25.1926 28.6861 31.565 22.775Z" fill="black"/>
37
+ </g>
38
+ <g filter="url(#filter10_f_228_15907)">
39
+ <path d="M18.5023 44.0056C22.29 46.7164 26.638 47.1283 28.2145 44.9261C29.791 42.7234 27.9985 38.7405 24.2108 36.0297C20.4237 33.3189 16.0751 32.907 14.4991 35.1092C12.9226 37.3119 14.7146 41.2948 18.5023 44.0056Z" fill="black"/>
40
+ </g>
41
+ </g>
42
+ <defs>
43
+ <filter id="filter0_f_228_15907" x="0.408125" y="18.9621" width="26.4018" height="28.62" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
44
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
45
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
46
+ <feGaussianBlur stdDeviation="2.46" result="effect1_foregroundBlur_228_15907"/>
47
+ </filter>
48
+ <filter id="filter1_f_228_15907" x="-5.12795" y="-19.3371" width="68.5525" height="69.014" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
49
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
50
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
51
+ <feGaussianBlur stdDeviation="11.891" result="effect1_foregroundBlur_228_15907"/>
52
+ </filter>
53
+ <filter id="filter2_f_228_15907" x="-6.8181" y="11.5821" width="62.3899" height="68.8388" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
54
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
55
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
56
+ <feGaussianBlur stdDeviation="10.109" result="effect1_foregroundBlur_228_15907"/>
57
+ </filter>
58
+ <filter id="filter3_f_228_15907" x="-6.8181" y="11.5821" width="62.3899" height="68.8388" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
59
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
60
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
61
+ <feGaussianBlur stdDeviation="10.109" result="effect1_foregroundBlur_228_15907"/>
62
+ </filter>
63
+ <filter id="filter4_f_228_15907" x="-6.29466" y="13.569" width="62.5456" height="63.5438" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
64
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
65
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
66
+ <feGaussianBlur stdDeviation="10.109" result="effect1_foregroundBlur_228_15907"/>
67
+ </filter>
68
+ <filter id="filter5_f_228_15907" x="22.0968" y="-1.18789" width="59.0683" height="58.3036" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
69
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
70
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
71
+ <feGaussianBlur stdDeviation="9.606" result="effect1_foregroundBlur_228_15907"/>
72
+ </filter>
73
+ <filter id="filter6_f_228_15907" x="-15.6095" y="-3.04573" width="59.1929" height="59.5432" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
74
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
75
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
76
+ <feGaussianBlur stdDeviation="8.706" result="effect1_foregroundBlur_228_15907"/>
77
+ </filter>
78
+ <filter id="filter7_f_228_15907" x="11.4742" y="3.55608" width="57.9818" height="57.2295" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
79
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
80
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
81
+ <feGaussianBlur stdDeviation="7.775" result="effect1_foregroundBlur_228_15907"/>
82
+ </filter>
83
+ <filter id="filter8_f_228_15907" x="15.2735" y="-2.77337" width="43.8314" height="41.3216" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
84
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
85
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
86
+ <feGaussianBlur stdDeviation="6.957" result="effect1_foregroundBlur_228_15907"/>
87
+ </filter>
88
+ <filter id="filter9_f_228_15907" x="-0.16118" y="-9.03441" width="50.1463" height="49.2738" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
89
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
90
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
91
+ <feGaussianBlur stdDeviation="5.876" result="effect1_foregroundBlur_228_15907"/>
92
+ </filter>
93
+ <filter id="filter10_f_228_15907" x="-0.619242" y="19.1473" width="43.9521" height="41.7407" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
94
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
95
+ <feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
96
+ <feGaussianBlur stdDeviation="7.273" result="effect1_foregroundBlur_228_15907"/>
97
+ </filter>
98
+ <linearGradient id="paint0_linear_228_15907" x1="24.0931" y1="38.144" x2="43.0573" y2="22.1561" gradientUnits="userSpaceOnUse">
99
+ <stop stop-color="#4893FC"/>
100
+ <stop offset="0.27" stop-color="#4893FC"/>
101
+ <stop offset="0.777" stop-color="#969DFF"/>
102
+ <stop offset="1" stop-color="#BD99FE"/>
103
+ </linearGradient>
104
+ </defs>
105
+ </svg>
@@ -1 +1 @@
1
- import"./chunk-NNHCCRGN-DlpIbxXb.js";import{_ as e}from"./mermaid-parser.core-CaB-1Ckn.js";export{e as createGitGraphServices};
1
+ import"./chunk-NNHCCRGN-DlpIbxXb.js";import{_ as e}from"./mermaid-parser.core-CEWtaJIq.js";export{e as createGitGraphServices};
@@ -1,4 +1,4 @@
1
- import{t as e}from"./mermaid-parser.core-CaB-1Ckn.js";import{g as t,h as n,p as r}from"./src-WHks82Up.js";import{H as i,K as a,U as o,Y as s,a as c,b as l,f as u,s as d,v as f,w as p,x as m,y as h}from"./chunk-CSCIHK7Q-CkNmdy5s.js";import{g,i as _,m as v}from"./chunk-5ZQYHXKU-DAi_NksX.js";import{t as y}from"./chunk-4BX2VUAB-B7F-kTY1.js";import{t as b}from"./chunk-QZHKN3VN-BMl9ed8P.js";var x={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ee=u.gitGraph,S=n(()=>_({...ee,...l().gitGraph}),`getConfig`),C=new b(()=>{let e=S(),t=e.mainBranchName,n=e.mainBranchOrder;return{mainBranchName:t,commits:new Map,head:null,branchConfig:new Map([[t,{name:t,order:n}]]),branches:new Map([[t,null]]),currBranch:t,direction:`LR`,seq:0,options:{}}});function w(){return v({length:7})}n(w,`getID`);function T(e,t){let n=Object.create(null);return e.reduce((e,r)=>{let i=t(r);return n[i]||(n[i]=!0,e.push(r)),e},[])}n(T,`uniqBy`);var te=n(function(e){C.records.direction=e},`setDirection`),ne=n(function(e){t.debug(`options str`,e),e=e?.trim(),e||=`{}`;try{C.records.options=JSON.parse(e)}catch(e){t.error(`error while parsing gitGraph options`,e.message)}},`setOptions`),re=n(function(){return C.records.options},`getOptions`),ie=n(function(e){let n=e.msg,r=e.id,i=e.type,a=e.tags;t.info(`commit`,n,r,i,a),t.debug(`Entering commit:`,n,r,i,a);let o=S();r=d.sanitizeText(r,o),n=d.sanitizeText(n,o),a=a?.map(e=>d.sanitizeText(e,o));let s={id:r||C.records.seq+`-`+w(),message:n,seq:C.records.seq++,type:i??x.NORMAL,tags:a??[],parents:C.records.head==null?[]:[C.records.head.id],branch:C.records.currBranch};C.records.head=s,t.info(`main branch`,o.mainBranchName),C.records.commits.has(s.id)&&t.warn(`Commit ID ${s.id} already exists`),C.records.commits.set(s.id,s),C.records.branches.set(C.records.currBranch,s.id),t.debug(`in pushCommit `+s.id)},`commit`),ae=n(function(e){let n=e.name,r=e.order;if(n=d.sanitizeText(n,S()),C.records.branches.has(n))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${n}")`);C.records.branches.set(n,C.records.head==null?null:C.records.head.id),C.records.branchConfig.set(n,{name:n,order:r}),E(n),t.debug(`in createBranch`)},`branch`),oe=n(e=>{let n=e.branch,r=e.id,i=e.type,a=e.tags,o=S();n=d.sanitizeText(n,o),r&&=d.sanitizeText(r,o);let s=C.records.branches.get(C.records.currBranch),c=C.records.branches.get(n),l=s?C.records.commits.get(s):void 0,u=c?C.records.commits.get(c):void 0;if(l&&u&&l.branch===n)throw Error(`Cannot merge branch '${n}' into itself.`);if(C.records.currBranch===n){let e=Error(`Incorrect usage of "merge". Cannot merge a branch to itself`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(l===void 0||!l){let e=Error(`Incorrect usage of "merge". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`commit`]},e}if(!C.records.branches.has(n)){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) does not exist`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch ${n}`]},e}if(u===void 0||!u){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`"commit"`]},e}if(l===u){let e=Error(`Incorrect usage of "merge". Both branches have same head`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(r&&C.records.commits.has(r)){let e=Error(`Incorrect usage of "merge". Commit with id:`+r+` already exists, use different custom id`);throw e.hash={text:`merge ${n} ${r} ${i} ${a?.join(` `)}`,token:`merge ${n} ${r} ${i} ${a?.join(` `)}`,expected:[`merge ${n} ${r}_UNIQUE ${i} ${a?.join(` `)}`]},e}let f=c||``,p={id:r||`${C.records.seq}-${w()}`,message:`merged branch ${n} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,f],branch:C.records.currBranch,type:x.MERGE,customType:i,customId:!!r,tags:a??[]};C.records.head=p,C.records.commits.set(p.id,p),C.records.branches.set(C.records.currBranch,p.id),t.debug(C.records.branches),t.debug(`in mergeBranch`)},`merge`),se=n(function(e){let n=e.id,r=e.targetId,i=e.tags,a=e.parent;t.debug(`Entering cherryPick:`,n,r,i);let o=S();if(n=d.sanitizeText(n,o),r=d.sanitizeText(r,o),i=i?.map(e=>d.sanitizeText(e,o)),a=d.sanitizeText(a,o),!n||!C.records.commits.has(n)){let e=Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let s=C.records.commits.get(n);if(s===void 0||!s)throw Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);if(a&&!(Array.isArray(s.parents)&&s.parents.includes(a)))throw Error(`Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.`);let c=s.branch;if(s.type===x.MERGE&&!a)throw Error(`Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.`);if(!r||!C.records.commits.has(r)){if(c===C.records.currBranch){let e=Error(`Incorrect usage of "cherryPick". Source commit is already on current branch`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let e=C.records.branches.get(C.records.currBranch);if(e===void 0||!e){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let o=C.records.commits.get(e);if(o===void 0||!o){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let l={id:C.records.seq+`-`+w(),message:`cherry-picked ${s?.message} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,s.id],branch:C.records.currBranch,type:x.CHERRY_PICK,tags:i?i.filter(Boolean):[`cherry-pick:${s.id}${s.type===x.MERGE?`|parent:${a}`:``}`]};C.records.head=l,C.records.commits.set(l.id,l),C.records.branches.set(C.records.currBranch,l.id),t.debug(C.records.branches),t.debug(`in cherryPick`)}},`cherryPick`),E=n(function(e){if(e=d.sanitizeText(e,S()),C.records.branches.has(e)){C.records.currBranch=e;let t=C.records.branches.get(C.records.currBranch);t===void 0||!t?C.records.head=null:C.records.head=C.records.commits.get(t)??null}else{let t=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw t.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},t}},`checkout`);function D(e,t,n){let r=e.indexOf(t);r===-1?e.push(n):e.splice(r,1,n)}n(D,`upsert`);function O(e){let n=e.reduce((e,t)=>e.seq>t.seq?e:t,e[0]),r=``;e.forEach(function(e){e===n?r+=` *`:r+=` |`});let i=[r,n.id,n.seq];for(let e in C.records.branches)C.records.branches.get(e)===n.id&&i.push(e);if(t.debug(i.join(` `)),n.parents&&n.parents.length==2&&n.parents[0]&&n.parents[1]){let t=C.records.commits.get(n.parents[0]);D(e,n,t),n.parents[1]&&e.push(C.records.commits.get(n.parents[1]))}else if(n.parents.length==0)return;else if(n.parents[0]){let t=C.records.commits.get(n.parents[0]);D(e,n,t)}e=T(e,e=>e.id),O(e)}n(O,`prettyPrintCommitHistory`);var ce=n(function(){t.debug(C.records.commits);let e=k()[0];O([e])},`prettyPrint`),le=n(function(){C.reset(),c()},`clear`),ue=n(function(){return[...C.records.branchConfig.values()].map((e,t)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${t}`)}).sort((e,t)=>(e.order??0)-(t.order??0)).map(({name:e})=>({name:e}))},`getBranchesAsObjArray`),de=n(function(){return C.records.branches},`getBranches`),fe=n(function(){return C.records.commits},`getCommits`),k=n(function(){let e=[...C.records.commits.values()];return e.forEach(function(e){t.debug(e.id)}),e.sort((e,t)=>e.seq-t.seq),e},`getCommitsArray`),A={commitType:x,getConfig:S,setDirection:te,setOptions:ne,getOptions:re,commit:ie,branch:ae,merge:oe,cherryPick:se,checkout:E,prettyPrint:ce,clear:le,getBranchesAsObjArray:ue,getBranches:de,getCommits:fe,getCommitsArray:k,getCurrentBranch:n(function(){return C.records.currBranch},`getCurrentBranch`),getDirection:n(function(){return C.records.direction},`getDirection`),getHead:n(function(){return C.records.head},`getHead`),setAccTitle:o,getAccTitle:h,getAccDescription:f,setAccDescription:i,setDiagramTitle:a,getDiagramTitle:p},pe=n((e,t)=>{y(e,t),e.dir&&t.setDirection(e.dir);for(let n of e.statements)me(n,t)},`populate`),me=n((e,r)=>{let i={Commit:n(e=>r.commit(he(e)),`Commit`),Branch:n(e=>r.branch(ge(e)),`Branch`),Merge:n(e=>r.merge(_e(e)),`Merge`),Checkout:n(e=>r.checkout(ve(e)),`Checkout`),CherryPicking:n(e=>r.cherryPick(ye(e)),`CherryPicking`)}[e.$type];i?i(e):t.error(`Unknown statement type: ${e.$type}`)},`parseStatement`),he=n(e=>({id:e.id,msg:e.message??``,type:e.type===void 0?x.NORMAL:x[e.type],tags:e.tags??void 0}),`parseCommit`),ge=n(e=>({name:e.name,order:e.order??0}),`parseBranch`),_e=n(e=>({branch:e.branch,id:e.id??``,type:e.type===void 0?void 0:x[e.type],tags:e.tags??void 0}),`parseMerge`),ve=n(e=>e.branch,`parseCheckout`),ye=n(e=>({id:e.id,targetId:``,tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),`parseCherryPicking`),be={parse:n(async n=>{let r=await e(`gitGraph`,n);t.debug(r),pe(r,A)},`parse`)},j=10,M=40,N=4,P=2,F=8,I=new Set([`redux`,`redux-dark`,`redux-color`,`redux-dark-color`]),L=12,R=new Set([`redux-color`,`redux-dark-color`]),xe=new Set([`dark`,`redux-dark`,`redux-dark-color`,`neo-dark`]),z=n((e,t,n=!1)=>n&&e>0?(e-1)%(t-1)+1:e%t,`calcColorIndex`),B=new Map,V=new Map,H=30,U=new Map,W=[],G=0,K=`LR`,Se=n(()=>{B.clear(),V.clear(),U.clear(),G=0,W=[],K=`LR`},`clear`),q=n(e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`text`);return(typeof e==`string`?e.split(/\\n|\n|<br\s*\/?>/gi):e).forEach(e=>{let n=document.createElementNS(`http://www.w3.org/2000/svg`,`tspan`);n.setAttributeNS(`http://www.w3.org/XML/1998/namespace`,`xml:space`,`preserve`),n.setAttribute(`dy`,`1em`),n.setAttribute(`x`,`0`),n.setAttribute(`class`,`row`),n.textContent=e.trim(),t.appendChild(n)}),t},`drawText`),J=n(e=>{let t,r,i;return K===`BT`?(r=n((e,t)=>e<=t,`comparisonFunc`),i=1/0):(r=n((e,t)=>e>=t,`comparisonFunc`),i=0),e.forEach(e=>{let n=K===`TB`||K==`BT`?V.get(e)?.y:V.get(e)?.x;n!==void 0&&r(n,i)&&(t=e,i=n)}),t},`findClosestParent`),Ce=n(e=>{let t=``,n=1/0;return e.forEach(e=>{let r=V.get(e).y;r<=n&&(t=e,n=r)}),t||void 0},`findClosestParentBT`),we=n((e,t,n)=>{let r=n,i=n,a=[];e.forEach(e=>{let n=t.get(e);if(!n)throw Error(`Commit not found for key ${e}`);n.parents.length?(r=Ee(n),i=Math.max(r,i)):a.push(n),De(n,r)}),r=i,a.forEach(e=>{Oe(e,r,n)}),e.forEach(e=>{let n=t.get(e);if(n?.parents.length){let e=Ce(n.parents);r=V.get(e).y-M,r<=i&&(i=r);let t=B.get(n.branch).pos,a=r-j;V.set(n.id,{x:t,y:a})}})},`setParallelBTPos`),Te=n(e=>{let t=J(e.parents.filter(e=>e!==null));if(!t)throw Error(`Closest parent not found for commit ${e.id}`);let n=V.get(t)?.y;if(n===void 0)throw Error(`Closest parent position not found for commit ${e.id}`);return n},`findClosestParentPos`),Ee=n(e=>Te(e)+M,`calculateCommitPosition`),De=n((e,t)=>{let n=B.get(e.branch);if(!n)throw Error(`Branch not found for commit ${e.id}`);let r=n.pos,i=t+j;return V.set(e.id,{x:r,y:i}),{x:r,y:i}},`setCommitPosition`),Oe=n((e,t,n)=>{let r=B.get(e.branch);if(!r)throw Error(`Branch not found for commit ${e.id}`);let i=t+n,a=r.pos;V.set(e.id,{x:a,y:i})},`setRootPosition`),ke=n((e,t,n,r,i,a)=>{let{theme:o}=m(),s=I.has(o??``),c=R.has(o??``),l=xe.has(o??``);if(a===x.HIGHLIGHT)e.append(`rect`).attr(`x`,n.x-10+(s?3:0)).attr(`y`,n.y-10+(s?3:0)).attr(`width`,s?14:20).attr(`height`,s?14:20).attr(`class`,`commit ${t.id} commit-highlight${z(i,F,c)} ${r}-outer`),e.append(`rect`).attr(`x`,n.x-6+(s?2:0)).attr(`y`,n.y-6+(s?2:0)).attr(`width`,s?8:12).attr(`height`,s?8:12).attr(`class`,`commit ${t.id} commit${z(i,F,c)} ${r}-inner`);else if(a===x.CHERRY_PICK)e.append(`circle`).attr(`cx`,n.x).attr(`cy`,n.y).attr(`r`,s?7:10).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x-3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x+3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x+3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x-3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`);else{let o=e.append(`circle`);if(o.attr(`cx`,n.x),o.attr(`cy`,n.y),o.attr(`r`,s?7:10),o.attr(`class`,`commit ${t.id} commit${z(i,F,c)}`),a===x.MERGE){let a=e.append(`circle`);a.attr(`cx`,n.x),a.attr(`cy`,n.y),a.attr(`r`,s?5:6),a.attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}if(a===x.REVERSE){let a=e.append(`path`),o=s?4:5;a.attr(`d`,`M ${n.x-o},${n.y-o}L${n.x+o},${n.y+o}M${n.x-o},${n.y+o}L${n.x+o},${n.y-o}`).attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}}},`drawCommitBullet`),Ae=n((e,t,n,r,i)=>{if(t.type!==x.CHERRY_PICK&&(t.customId&&t.type===x.MERGE||t.type!==x.MERGE)&&i.showCommitLabel){let a=e.append(`g`),o=a.insert(`rect`).attr(`class`,`commit-label-bkg`),s=a.append(`text`).attr(`x`,r).attr(`y`,n.y+25).attr(`class`,`commit-label`).text(t.id),c=s.node()?.getBBox();if(c&&(o.attr(`x`,n.posWithOffset-c.width/2-P).attr(`y`,n.y+13.5).attr(`width`,c.width+2*P).attr(`height`,c.height+2*P),K===`TB`||K===`BT`?(o.attr(`x`,n.x-(c.width+4*N+5)).attr(`y`,n.y-12),s.attr(`x`,n.x-(c.width+4*N)).attr(`y`,n.y+c.height-12)):s.attr(`x`,n.posWithOffset-c.width/2),i.rotateCommitLabel))if(K===`TB`||K===`BT`)s.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`),o.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`);else{let e=-7.5-(c.width+10)/25*9.5,t=10+c.width/25*8.5;a.attr(`transform`,`translate(`+e+`, `+t+`) rotate(-45, `+r+`, `+n.y+`)`)}}},`drawCommitLabel`),je=n((e,t,n,r)=>{if(t.tags.length>0){let i=0,a=0,o=0,s=[];for(let r of t.tags.reverse()){let t=e.insert(`polygon`),c=e.append(`circle`),l=e.append(`text`).attr(`y`,n.y-16-i).attr(`class`,`tag-label`).text(r),u=l.node()?.getBBox();if(!u)throw Error(`Tag bbox not found`);a=Math.max(a,u.width),o=Math.max(o,u.height),l.attr(`x`,n.posWithOffset-u.width/2),s.push({tag:l,hole:c,rect:t,yOffset:i}),i+=20}for(let{tag:e,hole:t,rect:i,yOffset:c}of s){let s=o/2,l=n.y-19.2-c;if(i.attr(`class`,`tag-label-bkg`).attr(`points`,`
1
+ import{t as e}from"./mermaid-parser.core-CEWtaJIq.js";import{g as t,h as n,p as r}from"./src-DRcBNyeZ.js";import{H as i,K as a,U as o,Y as s,a as c,b as l,f as u,s as d,v as f,w as p,x as m,y as h}from"./chunk-CSCIHK7Q-XWSO96VW.js";import{g,i as _,m as v}from"./chunk-5ZQYHXKU-ZyBWNsT2.js";import{t as y}from"./chunk-4BX2VUAB-D4uKMCPc.js";import{t as b}from"./chunk-QZHKN3VN-sPK7umZx.js";var x={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ee=u.gitGraph,S=n(()=>_({...ee,...l().gitGraph}),`getConfig`),C=new b(()=>{let e=S(),t=e.mainBranchName,n=e.mainBranchOrder;return{mainBranchName:t,commits:new Map,head:null,branchConfig:new Map([[t,{name:t,order:n}]]),branches:new Map([[t,null]]),currBranch:t,direction:`LR`,seq:0,options:{}}});function w(){return v({length:7})}n(w,`getID`);function T(e,t){let n=Object.create(null);return e.reduce((e,r)=>{let i=t(r);return n[i]||(n[i]=!0,e.push(r)),e},[])}n(T,`uniqBy`);var te=n(function(e){C.records.direction=e},`setDirection`),ne=n(function(e){t.debug(`options str`,e),e=e?.trim(),e||=`{}`;try{C.records.options=JSON.parse(e)}catch(e){t.error(`error while parsing gitGraph options`,e.message)}},`setOptions`),re=n(function(){return C.records.options},`getOptions`),ie=n(function(e){let n=e.msg,r=e.id,i=e.type,a=e.tags;t.info(`commit`,n,r,i,a),t.debug(`Entering commit:`,n,r,i,a);let o=S();r=d.sanitizeText(r,o),n=d.sanitizeText(n,o),a=a?.map(e=>d.sanitizeText(e,o));let s={id:r||C.records.seq+`-`+w(),message:n,seq:C.records.seq++,type:i??x.NORMAL,tags:a??[],parents:C.records.head==null?[]:[C.records.head.id],branch:C.records.currBranch};C.records.head=s,t.info(`main branch`,o.mainBranchName),C.records.commits.has(s.id)&&t.warn(`Commit ID ${s.id} already exists`),C.records.commits.set(s.id,s),C.records.branches.set(C.records.currBranch,s.id),t.debug(`in pushCommit `+s.id)},`commit`),ae=n(function(e){let n=e.name,r=e.order;if(n=d.sanitizeText(n,S()),C.records.branches.has(n))throw Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${n}")`);C.records.branches.set(n,C.records.head==null?null:C.records.head.id),C.records.branchConfig.set(n,{name:n,order:r}),E(n),t.debug(`in createBranch`)},`branch`),oe=n(e=>{let n=e.branch,r=e.id,i=e.type,a=e.tags,o=S();n=d.sanitizeText(n,o),r&&=d.sanitizeText(r,o);let s=C.records.branches.get(C.records.currBranch),c=C.records.branches.get(n),l=s?C.records.commits.get(s):void 0,u=c?C.records.commits.get(c):void 0;if(l&&u&&l.branch===n)throw Error(`Cannot merge branch '${n}' into itself.`);if(C.records.currBranch===n){let e=Error(`Incorrect usage of "merge". Cannot merge a branch to itself`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(l===void 0||!l){let e=Error(`Incorrect usage of "merge". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`commit`]},e}if(!C.records.branches.has(n)){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) does not exist`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch ${n}`]},e}if(u===void 0||!u){let e=Error(`Incorrect usage of "merge". Branch to be merged (`+n+`) has no commits`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`"commit"`]},e}if(l===u){let e=Error(`Incorrect usage of "merge". Both branches have same head`);throw e.hash={text:`merge ${n}`,token:`merge ${n}`,expected:[`branch abc`]},e}if(r&&C.records.commits.has(r)){let e=Error(`Incorrect usage of "merge". Commit with id:`+r+` already exists, use different custom id`);throw e.hash={text:`merge ${n} ${r} ${i} ${a?.join(` `)}`,token:`merge ${n} ${r} ${i} ${a?.join(` `)}`,expected:[`merge ${n} ${r}_UNIQUE ${i} ${a?.join(` `)}`]},e}let f=c||``,p={id:r||`${C.records.seq}-${w()}`,message:`merged branch ${n} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,f],branch:C.records.currBranch,type:x.MERGE,customType:i,customId:!!r,tags:a??[]};C.records.head=p,C.records.commits.set(p.id,p),C.records.branches.set(C.records.currBranch,p.id),t.debug(C.records.branches),t.debug(`in mergeBranch`)},`merge`),se=n(function(e){let n=e.id,r=e.targetId,i=e.tags,a=e.parent;t.debug(`Entering cherryPick:`,n,r,i);let o=S();if(n=d.sanitizeText(n,o),r=d.sanitizeText(r,o),i=i?.map(e=>d.sanitizeText(e,o)),a=d.sanitizeText(a,o),!n||!C.records.commits.has(n)){let e=Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let s=C.records.commits.get(n);if(s===void 0||!s)throw Error(`Incorrect usage of "cherryPick". Source commit id should exist and provided`);if(a&&!(Array.isArray(s.parents)&&s.parents.includes(a)))throw Error(`Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.`);let c=s.branch;if(s.type===x.MERGE&&!a)throw Error(`Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.`);if(!r||!C.records.commits.has(r)){if(c===C.records.currBranch){let e=Error(`Incorrect usage of "cherryPick". Source commit is already on current branch`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let e=C.records.branches.get(C.records.currBranch);if(e===void 0||!e){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let o=C.records.commits.get(e);if(o===void 0||!o){let e=Error(`Incorrect usage of "cherry-pick". Current branch (${C.records.currBranch})has no commits`);throw e.hash={text:`cherryPick ${n} ${r}`,token:`cherryPick ${n} ${r}`,expected:[`cherry-pick abc`]},e}let l={id:C.records.seq+`-`+w(),message:`cherry-picked ${s?.message} into ${C.records.currBranch}`,seq:C.records.seq++,parents:C.records.head==null?[]:[C.records.head.id,s.id],branch:C.records.currBranch,type:x.CHERRY_PICK,tags:i?i.filter(Boolean):[`cherry-pick:${s.id}${s.type===x.MERGE?`|parent:${a}`:``}`]};C.records.head=l,C.records.commits.set(l.id,l),C.records.branches.set(C.records.currBranch,l.id),t.debug(C.records.branches),t.debug(`in cherryPick`)}},`cherryPick`),E=n(function(e){if(e=d.sanitizeText(e,S()),C.records.branches.has(e)){C.records.currBranch=e;let t=C.records.branches.get(C.records.currBranch);t===void 0||!t?C.records.head=null:C.records.head=C.records.commits.get(t)??null}else{let t=Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw t.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},t}},`checkout`);function D(e,t,n){let r=e.indexOf(t);r===-1?e.push(n):e.splice(r,1,n)}n(D,`upsert`);function O(e){let n=e.reduce((e,t)=>e.seq>t.seq?e:t,e[0]),r=``;e.forEach(function(e){e===n?r+=` *`:r+=` |`});let i=[r,n.id,n.seq];for(let e in C.records.branches)C.records.branches.get(e)===n.id&&i.push(e);if(t.debug(i.join(` `)),n.parents&&n.parents.length==2&&n.parents[0]&&n.parents[1]){let t=C.records.commits.get(n.parents[0]);D(e,n,t),n.parents[1]&&e.push(C.records.commits.get(n.parents[1]))}else if(n.parents.length==0)return;else if(n.parents[0]){let t=C.records.commits.get(n.parents[0]);D(e,n,t)}e=T(e,e=>e.id),O(e)}n(O,`prettyPrintCommitHistory`);var ce=n(function(){t.debug(C.records.commits);let e=k()[0];O([e])},`prettyPrint`),le=n(function(){C.reset(),c()},`clear`),ue=n(function(){return[...C.records.branchConfig.values()].map((e,t)=>e.order!==null&&e.order!==void 0?e:{...e,order:parseFloat(`0.${t}`)}).sort((e,t)=>(e.order??0)-(t.order??0)).map(({name:e})=>({name:e}))},`getBranchesAsObjArray`),de=n(function(){return C.records.branches},`getBranches`),fe=n(function(){return C.records.commits},`getCommits`),k=n(function(){let e=[...C.records.commits.values()];return e.forEach(function(e){t.debug(e.id)}),e.sort((e,t)=>e.seq-t.seq),e},`getCommitsArray`),A={commitType:x,getConfig:S,setDirection:te,setOptions:ne,getOptions:re,commit:ie,branch:ae,merge:oe,cherryPick:se,checkout:E,prettyPrint:ce,clear:le,getBranchesAsObjArray:ue,getBranches:de,getCommits:fe,getCommitsArray:k,getCurrentBranch:n(function(){return C.records.currBranch},`getCurrentBranch`),getDirection:n(function(){return C.records.direction},`getDirection`),getHead:n(function(){return C.records.head},`getHead`),setAccTitle:o,getAccTitle:h,getAccDescription:f,setAccDescription:i,setDiagramTitle:a,getDiagramTitle:p},pe=n((e,t)=>{y(e,t),e.dir&&t.setDirection(e.dir);for(let n of e.statements)me(n,t)},`populate`),me=n((e,r)=>{let i={Commit:n(e=>r.commit(he(e)),`Commit`),Branch:n(e=>r.branch(ge(e)),`Branch`),Merge:n(e=>r.merge(_e(e)),`Merge`),Checkout:n(e=>r.checkout(ve(e)),`Checkout`),CherryPicking:n(e=>r.cherryPick(ye(e)),`CherryPicking`)}[e.$type];i?i(e):t.error(`Unknown statement type: ${e.$type}`)},`parseStatement`),he=n(e=>({id:e.id,msg:e.message??``,type:e.type===void 0?x.NORMAL:x[e.type],tags:e.tags??void 0}),`parseCommit`),ge=n(e=>({name:e.name,order:e.order??0}),`parseBranch`),_e=n(e=>({branch:e.branch,id:e.id??``,type:e.type===void 0?void 0:x[e.type],tags:e.tags??void 0}),`parseMerge`),ve=n(e=>e.branch,`parseCheckout`),ye=n(e=>({id:e.id,targetId:``,tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),`parseCherryPicking`),be={parse:n(async n=>{let r=await e(`gitGraph`,n);t.debug(r),pe(r,A)},`parse`)},j=10,M=40,N=4,P=2,F=8,I=new Set([`redux`,`redux-dark`,`redux-color`,`redux-dark-color`]),L=12,R=new Set([`redux-color`,`redux-dark-color`]),xe=new Set([`dark`,`redux-dark`,`redux-dark-color`,`neo-dark`]),z=n((e,t,n=!1)=>n&&e>0?(e-1)%(t-1)+1:e%t,`calcColorIndex`),B=new Map,V=new Map,H=30,U=new Map,W=[],G=0,K=`LR`,Se=n(()=>{B.clear(),V.clear(),U.clear(),G=0,W=[],K=`LR`},`clear`),q=n(e=>{let t=document.createElementNS(`http://www.w3.org/2000/svg`,`text`);return(typeof e==`string`?e.split(/\\n|\n|<br\s*\/?>/gi):e).forEach(e=>{let n=document.createElementNS(`http://www.w3.org/2000/svg`,`tspan`);n.setAttributeNS(`http://www.w3.org/XML/1998/namespace`,`xml:space`,`preserve`),n.setAttribute(`dy`,`1em`),n.setAttribute(`x`,`0`),n.setAttribute(`class`,`row`),n.textContent=e.trim(),t.appendChild(n)}),t},`drawText`),J=n(e=>{let t,r,i;return K===`BT`?(r=n((e,t)=>e<=t,`comparisonFunc`),i=1/0):(r=n((e,t)=>e>=t,`comparisonFunc`),i=0),e.forEach(e=>{let n=K===`TB`||K==`BT`?V.get(e)?.y:V.get(e)?.x;n!==void 0&&r(n,i)&&(t=e,i=n)}),t},`findClosestParent`),Ce=n(e=>{let t=``,n=1/0;return e.forEach(e=>{let r=V.get(e).y;r<=n&&(t=e,n=r)}),t||void 0},`findClosestParentBT`),we=n((e,t,n)=>{let r=n,i=n,a=[];e.forEach(e=>{let n=t.get(e);if(!n)throw Error(`Commit not found for key ${e}`);n.parents.length?(r=Ee(n),i=Math.max(r,i)):a.push(n),De(n,r)}),r=i,a.forEach(e=>{Oe(e,r,n)}),e.forEach(e=>{let n=t.get(e);if(n?.parents.length){let e=Ce(n.parents);r=V.get(e).y-M,r<=i&&(i=r);let t=B.get(n.branch).pos,a=r-j;V.set(n.id,{x:t,y:a})}})},`setParallelBTPos`),Te=n(e=>{let t=J(e.parents.filter(e=>e!==null));if(!t)throw Error(`Closest parent not found for commit ${e.id}`);let n=V.get(t)?.y;if(n===void 0)throw Error(`Closest parent position not found for commit ${e.id}`);return n},`findClosestParentPos`),Ee=n(e=>Te(e)+M,`calculateCommitPosition`),De=n((e,t)=>{let n=B.get(e.branch);if(!n)throw Error(`Branch not found for commit ${e.id}`);let r=n.pos,i=t+j;return V.set(e.id,{x:r,y:i}),{x:r,y:i}},`setCommitPosition`),Oe=n((e,t,n)=>{let r=B.get(e.branch);if(!r)throw Error(`Branch not found for commit ${e.id}`);let i=t+n,a=r.pos;V.set(e.id,{x:a,y:i})},`setRootPosition`),ke=n((e,t,n,r,i,a)=>{let{theme:o}=m(),s=I.has(o??``),c=R.has(o??``),l=xe.has(o??``);if(a===x.HIGHLIGHT)e.append(`rect`).attr(`x`,n.x-10+(s?3:0)).attr(`y`,n.y-10+(s?3:0)).attr(`width`,s?14:20).attr(`height`,s?14:20).attr(`class`,`commit ${t.id} commit-highlight${z(i,F,c)} ${r}-outer`),e.append(`rect`).attr(`x`,n.x-6+(s?2:0)).attr(`y`,n.y-6+(s?2:0)).attr(`width`,s?8:12).attr(`height`,s?8:12).attr(`class`,`commit ${t.id} commit${z(i,F,c)} ${r}-inner`);else if(a===x.CHERRY_PICK)e.append(`circle`).attr(`cx`,n.x).attr(`cy`,n.y).attr(`r`,s?7:10).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x-3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`circle`).attr(`cx`,n.x+3).attr(`cy`,n.y+2).attr(`r`,s?2.5:2.75).attr(`fill`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x+3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`),e.append(`line`).attr(`x1`,n.x-3).attr(`y1`,n.y+1).attr(`x2`,n.x).attr(`y2`,n.y-5).attr(`stroke`,l?`#000000`:`#fff`).attr(`class`,`commit ${t.id} ${r}`);else{let o=e.append(`circle`);if(o.attr(`cx`,n.x),o.attr(`cy`,n.y),o.attr(`r`,s?7:10),o.attr(`class`,`commit ${t.id} commit${z(i,F,c)}`),a===x.MERGE){let a=e.append(`circle`);a.attr(`cx`,n.x),a.attr(`cy`,n.y),a.attr(`r`,s?5:6),a.attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}if(a===x.REVERSE){let a=e.append(`path`),o=s?4:5;a.attr(`d`,`M ${n.x-o},${n.y-o}L${n.x+o},${n.y+o}M${n.x-o},${n.y+o}L${n.x+o},${n.y-o}`).attr(`class`,`commit ${r} ${t.id} commit${z(i,F,c)}`)}}},`drawCommitBullet`),Ae=n((e,t,n,r,i)=>{if(t.type!==x.CHERRY_PICK&&(t.customId&&t.type===x.MERGE||t.type!==x.MERGE)&&i.showCommitLabel){let a=e.append(`g`),o=a.insert(`rect`).attr(`class`,`commit-label-bkg`),s=a.append(`text`).attr(`x`,r).attr(`y`,n.y+25).attr(`class`,`commit-label`).text(t.id),c=s.node()?.getBBox();if(c&&(o.attr(`x`,n.posWithOffset-c.width/2-P).attr(`y`,n.y+13.5).attr(`width`,c.width+2*P).attr(`height`,c.height+2*P),K===`TB`||K===`BT`?(o.attr(`x`,n.x-(c.width+4*N+5)).attr(`y`,n.y-12),s.attr(`x`,n.x-(c.width+4*N)).attr(`y`,n.y+c.height-12)):s.attr(`x`,n.posWithOffset-c.width/2),i.rotateCommitLabel))if(K===`TB`||K===`BT`)s.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`),o.attr(`transform`,`rotate(-45, `+n.x+`, `+n.y+`)`);else{let e=-7.5-(c.width+10)/25*9.5,t=10+c.width/25*8.5;a.attr(`transform`,`translate(`+e+`, `+t+`) rotate(-45, `+r+`, `+n.y+`)`)}}},`drawCommitLabel`),je=n((e,t,n,r)=>{if(t.tags.length>0){let i=0,a=0,o=0,s=[];for(let r of t.tags.reverse()){let t=e.insert(`polygon`),c=e.append(`circle`),l=e.append(`text`).attr(`y`,n.y-16-i).attr(`class`,`tag-label`).text(r),u=l.node()?.getBBox();if(!u)throw Error(`Tag bbox not found`);a=Math.max(a,u.width),o=Math.max(o,u.height),l.attr(`x`,n.posWithOffset-u.width/2),s.push({tag:l,hole:c,rect:t,yOffset:i}),i+=20}for(let{tag:e,hole:t,rect:i,yOffset:c}of s){let s=o/2,l=n.y-19.2-c;if(i.attr(`class`,`tag-label-bkg`).attr(`points`,`
2
2
  ${r-a/2-N/2},${l+P}
3
3
  ${r-a/2-N/2},${l-P}
4
4
  ${n.posWithOffset-a/2-N},${l-s-P}