collabmd 0.1.54 → 0.1.56
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.
- package/README.md +1 -1
- package/bin/collabmd.js +19 -38
- package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-CW5HP9uy.js +1 -0
- package/dist/client/assets/{Middleware-DUgFSleI.js → Middleware-DbxtuTyG.js} +1 -1
- package/dist/client/assets/{abnfDiagram-VCTEODGH-DxNxad6-.js → abnfDiagram-VCTEODGH-DY5tILUg.js} +1 -1
- package/dist/client/assets/{abnfDiagram-O67JEVCF-Dwt6a0Ds.js → abnfDiagram-WEYOIA3C-BqtDVimc.js} +1 -1
- package/dist/client/assets/api-client-utils-DkW9xiiw.js +1 -0
- package/dist/client/assets/{ar-SA-5WIASEJP-Di7OimCN.js → ar-SA-5WIASEJP-DbGUC-Fx.js} +1 -1
- package/dist/client/assets/{arc-DgcGdgmL.js → arc-Y1ARJVZ4.js} +1 -1
- package/dist/client/assets/architecture-7GRP2DOG-DndzY1Hb.js +1 -0
- package/dist/client/assets/architecture-WOLXFQ4H-tER6YKVA.js +1 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-C1uvg5id.js → architectureDiagram-5GKGNRK7-D_ZiDWLO.js} +2 -2
- package/dist/client/assets/{architectureDiagram-NJMV4G6O-D5CGiX3G.js → architectureDiagram-ZHVYKT53-CCmYbVDm.js} +3 -3
- package/dist/client/assets/{az-AZ-V5EUQD6C-C19OGTT_.js → az-AZ-V5EUQD6C-qK0euR1T.js} +1 -1
- package/dist/client/assets/babel-BaOs8qJH.js +16 -0
- package/dist/client/assets/base-CaIEJUF9.css +1 -0
- package/dist/client/assets/{bg-BG-EXASCMTR-BIt0xWyb.js → bg-BG-EXASCMTR-DHvN8nO_.js} +1 -1
- package/dist/client/assets/{blockDiagram-I7D4REHJ-B2YonsoG.js → blockDiagram-I7D4REHJ-CeN7xDSG.js} +2 -2
- package/dist/client/assets/{blockDiagram-BEXU5L5S-BgTM0var.js → blockDiagram-RJAE7QA3-CsHpm8AL.js} +3 -3
- package/dist/client/assets/{bn-BD-U4SYNFCO-CdNaPy4Q.js → bn-BD-U4SYNFCO-BKKqqvJ1.js} +1 -1
- package/dist/client/assets/{bn-IN-HKDJIITE-CdNaPy4Q.js → bn-IN-HKDJIITE-BKKqqvJ1.js} +1 -1
- package/dist/client/assets/{browser-BKLM0ThC-BCLQGPD6-K2seJgRL.js → browser-BKLM0ThC-BCLQGPD6-B6uxmOe1.js} +1 -1
- package/dist/client/assets/{c4Diagram-7LVT6UL2-r4IwomZm.js → c4Diagram-7LVT6UL2-Bezmsa8k.js} +1 -1
- package/dist/client/assets/{c4Diagram-YGBWAQC7-_xZPrNkB.js → c4Diagram-XDPPPE54-COKPOr_O.js} +2 -2
- package/dist/client/assets/{ca-ES-2KGUU5XB-C9t-c0cH.js → ca-ES-2KGUU5XB-CYClUOgC.js} +1 -1
- package/dist/client/assets/canvasEditor-BJkwGzO1.css +1 -0
- package/dist/client/assets/canvasEditor-CWbY0cMf.js +1 -0
- package/dist/client/assets/channel-COwKkfba.js +1 -0
- package/dist/client/assets/{chunk-6AZGARVD--pTGpDnx.js → chunk-24IY7LWP-DUl0BbtV.js} +1 -1
- package/dist/client/assets/chunk-2E4U76K2-CPmbCsOa.js +1 -0
- package/dist/client/assets/{chunk-GTNCS2PH-ChgkzEIi.js → chunk-2E7WHVMD-CnfGYKwC.js} +3 -3
- package/dist/client/assets/chunk-2ZTRR5NV-CowhtTwB.js +2 -0
- package/dist/client/assets/{chunk-5V3GS4D5-B5uC2oxu.js → chunk-3M4EKCLJ-BeG5ZU4c.js} +1 -1
- package/dist/client/assets/{chunk-3Z5EZCMW-BAnA6eQ7.js → chunk-3Z5EZCMW-DQ1fwqmG.js} +1 -1
- package/dist/client/assets/{chunk-NETBCI7D-CmUwDWUZ.js → chunk-4EMNKR2T-B97vb0rp.js} +1 -1
- package/dist/client/assets/{chunk-4HAMMTFA-q0ldNVvr.js → chunk-4HAMMTFA-B3s0XvP_.js} +1 -1
- package/dist/client/assets/{chunk-6K3QC6MW-DGVRzL6v.js → chunk-4S7OKTRW-DIpJGzf1.js} +1 -1
- package/dist/client/assets/{chunk-ICYGCRZG-D97UeqJs.js → chunk-53FOQ5SW-C3TQxbLr.js} +1 -1
- package/dist/client/assets/{chunk-GWA4HPMP-CGmv2yIq.js → chunk-55XCU76K-CZBj2eVM.js} +1 -1
- package/dist/client/assets/{chunk-5V3GS4D5-BR7kgIgJ.js → chunk-5V3GS4D5-CD51GF-u.js} +1 -1
- package/dist/client/assets/{chunk-6AZGARVD-CnZDr4Cj.js → chunk-6AZGARVD-BD9EvFmU.js} +1 -1
- package/dist/client/assets/{chunk-6EIED4P4-Bp8dpTvX.js → chunk-6EIED4P4-CZFyd-Ct.js} +1 -1
- package/dist/client/assets/{chunk-6K3QC6MW-JnuvEGV4.js → chunk-6K3QC6MW-BJWmnHdF.js} +1 -1
- package/dist/client/assets/{chunk-6TQVIW2G-BSj0l_pu.js → chunk-6TQVIW2G-DaBcb454.js} +1 -1
- package/dist/client/assets/chunk-747NJXEK-D08Z0c6r.js +2 -0
- package/dist/client/assets/{chunk-75Z2AOVW-DitkSoSG.js → chunk-75Z2AOVW-DLVzmKuL.js} +1 -1
- package/dist/client/assets/chunk-7S6XSTFO-CXBGoJ7Z.js +2 -0
- package/dist/client/assets/{chunk-MBY4JIJT-DTJ4UcAm.js → chunk-AQDTSKZB-BpOOnFv4.js} +3 -3
- package/dist/client/assets/chunk-BP2KR52E-yBDJ_0ib.js +2 -0
- package/dist/client/assets/{chunk-CLGD4ZFX-BfYJtJm1.js → chunk-CLGD4ZFX-BBNA_mHW.js} +1 -1
- package/dist/client/assets/chunk-DSNLSHJZ-DkAaVKkN.js +127 -0
- package/dist/client/assets/{chunk-DU6HZSFF-CWlP1Dk_.js → chunk-DU6HZSFF-Dz0Q7VKE.js} +2 -2
- package/dist/client/assets/{chunk-GNY47TPC-CTrH5O5R.js → chunk-EJLWFMJV-CxNRZ5Ez.js} +1 -1
- package/dist/client/assets/{chunk-F27PBJKO-DPcsPcEs.js → chunk-F27PBJKO-BziR3pku.js} +1 -1
- package/dist/client/assets/chunk-F6S3BTY2-Dw9FK6Vq.js +2 -0
- package/dist/client/assets/chunk-FBWCRPUE-PUG6Mjdg.js +12 -0
- package/dist/client/assets/{chunk-FOHPRMQF-Dmmo5Kak.js → chunk-FOHPRMQF-COOliuUh.js} +8 -8
- package/dist/client/assets/{chunk-GMAD6QVW-Bgk8qnty.js → chunk-GMAD6QVW-B6zS4VJx.js} +1 -1
- package/dist/client/assets/{chunk-GVQU2GXP-CQ8cl-Uu.js → chunk-GVQU2GXP-BA8Vt-19.js} +1 -1
- package/dist/client/assets/chunk-HAGFOTED-miSk6HXc.js +62 -0
- package/dist/client/assets/chunk-HNE4Q36P-BTbX-t8_.js +1 -0
- package/dist/client/assets/{chunk-I5DQTOEV-B98XA8VK.js → chunk-I5DQTOEV-qgbr-MbI.js} +1 -1
- package/dist/client/assets/{chunk-ICYGCRZG-odvlDZyA.js → chunk-ICYGCRZG-Dv6Hl9ds.js} +1 -1
- package/dist/client/assets/{chunk-IH6LHLGP-BNevEHZK.js → chunk-IH6LHLGP-DCTJcBuf.js} +1 -1
- package/dist/client/assets/{chunk-IMKFNOWR-CBqxfpcP.js → chunk-IMKFNOWR-DN2Mwt1n.js} +1 -1
- package/dist/client/assets/{chunk-KI3K4JFJ-D5XCPRZv.js → chunk-KI3K4JFJ-Hb_e7W2X.js} +1 -1
- package/dist/client/assets/{chunk-IH6LHLGP-CvXe34hB.js → chunk-KPI5JJXK-BoDlpdVM.js} +1 -1
- package/dist/client/assets/{chunk-L3NEJ4N5-BflzkdTI.js → chunk-L3NEJ4N5-M6XySblQ.js} +1 -1
- package/dist/client/assets/{chunk-LNGE3PJU-5nWSl6jJ.js → chunk-LNGE3PJU-CxdyKuxt.js} +4 -4
- package/dist/client/assets/{chunk-LNGE3PJU-5-SxdO55.js → chunk-LNGE3PJU-DRjopGY8.js} +4 -4
- package/dist/client/assets/chunk-NGNAAXSQ-Bw6tHVuc.js +136 -0
- package/dist/client/assets/chunk-NQOKRVIF-B_sOt25u.js +213 -0
- package/dist/client/assets/chunk-NZIJZ2A6-CmC5bqJr.js +42 -0
- package/dist/client/assets/{chunk-UY3FDG6J-DqSM_0FB.js → chunk-OD3NTWWA-D7wmrqo1.js} +1 -1
- package/dist/client/assets/{chunk-OSK3NFVY-DqeKV_pg.js → chunk-OSK3NFVY-DJyrXrea.js} +1 -1
- package/dist/client/assets/chunk-OUJLGHUK-DIWqBvm0.js +2 -0
- package/dist/client/assets/chunk-OYAV6JZA-kXOh375k.js +1 -0
- package/dist/client/assets/{chunk-P2QGCYS3-BA--DhpW.js → chunk-P2QGCYS3-DejntbnV.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-V_NEc45n.js → chunk-POPQ4Y6H-D3VayDzJ.js} +1 -1
- package/dist/client/assets/{chunk-PWAF6VOD-D_kLse-N.js → chunk-PWAF6VOD-CmxcnYFJ.js} +1 -1
- package/dist/client/assets/{chunk-3Z5EZCMW-Yx4Q5AcN.js → chunk-QNH66VMT-De2vWRUE.js} +1 -1
- package/dist/client/assets/{chunk-SHT3W25Y-YM3S-A_M.js → chunk-SHT3W25Y-SAi_Zk5G.js} +1 -1
- package/dist/client/assets/{chunk-SRAX5OIU-KFQikY-4.js → chunk-SRAX5OIU-wzfotNc-.js} +1 -1
- package/dist/client/assets/{chunk-SVP7TREG-DdNhDOmW.js → chunk-SVP7TREG-BtK2J628.js} +1 -1
- package/dist/client/assets/{chunk-TICWLB2K-BGGgCr4x.js → chunk-TICWLB2K-wmAorf_a.js} +1 -1
- package/dist/client/assets/{chunk-TLUHSLCS-DCZhIDYA.js → chunk-TLUHSLCS-DA3Sq1kc.js} +1 -1
- package/dist/client/assets/{chunk-6EIED4P4-DBVWq7Tz.js → chunk-TPMEZKFX-CarinQak.js} +1 -1
- package/dist/client/assets/{chunk-7PRAP22T-9uTvtc_-.js → chunk-UHW7PFBP-ClLfHtva.js} +1 -1
- package/dist/client/assets/{chunk-UY3FDG6J-QT-rkt0y.js → chunk-UY3FDG6J-BT57Gakr.js} +1 -1
- package/dist/client/assets/{chunk-6TQVIW2G-DgBX-Pv0.js → chunk-VPELOWWC-Dk0xIrB-.js} +1 -1
- package/dist/client/assets/{chunk-WEXAMYUT-DDlVNp8J.js → chunk-VQ5W62QI-CxUPWJRX.js} +1 -1
- package/dist/client/assets/{chunk-I5DQTOEV-aBZooNp1.js → chunk-VTWWFHGB-BZsdnDPL.js} +1 -1
- package/dist/client/assets/{chunk-KI3K4JFJ-FTtDwx3-.js → chunk-VZTHESGH-D6CHzqGr.js} +1 -1
- package/dist/client/assets/chunk-WQQL4CDK-BiuwKtd-.js +10 -0
- package/dist/client/assets/{chunk-X3CZISLH-DwWpRaN8.js → chunk-X3CZISLH-Bwnh_YJ7.js} +1 -1
- package/dist/client/assets/{chunk-X3CZISLH-BixgQztF.js → chunk-X3CZISLH-DayjKu55.js} +1 -1
- package/dist/client/assets/{chunk-XHIXRSVI-BSN7JlfK.js → chunk-XHIXRSVI-C0fC7dJN.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-C7hQHDmQ.js → chunk-XXDRQBXY-BxVnmMBx.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-CdRN9Akd.js → chunk-XXDRQBXY-DBb3y0NH.js} +1 -1
- package/dist/client/assets/{chunk-XHIXRSVI-DN_fEwws.js → chunk-YK26KJH5-ywVSJDLS.js} +1 -1
- package/dist/client/assets/{chunk-742MDFTN-D1nh6vNv.js → chunk-YZO67HFG-Bg5cZX5R.js} +1 -1
- package/dist/client/assets/{chunk-Z5NKEFVG-q6fHH75m.js → chunk-Z5NKEFVG-BPqw37Lj.js} +3 -3
- package/dist/client/assets/{chunk-5DYCD2WN-BKWCKnK-.js → chunk-ZAUX2LTX-Yte1ozQc.js} +1 -1
- package/dist/client/assets/chunk-ZCHMQSOR-B3FSat8d.js +1 -0
- package/dist/client/assets/chunk-ZO67DCNQ-DnpDWW4I.js +2 -0
- package/dist/client/assets/classDiagram-ZZMXUADV-CLl-Ahxw.js +1 -0
- package/dist/client/assets/{classDiagram-v2-NBCMYWYE-3TQORq33.js → classDiagram-v2-4MYWR3UA-rPd2Vhml.js} +3 -3
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-CLl-Ahxw.js +1 -0
- package/dist/client/assets/{clike-D_6L3tnO.js → clike-xvONpD0Z.js} +1 -1
- package/dist/client/assets/{clone-C1hp9FUh.js → clone-BoYpPplK.js} +1 -1
- package/dist/client/assets/{comment-markdown-renderer-Bxi_JRSR.js → comment-markdown-renderer-a1B3HT_T.js} +1 -1
- package/dist/client/assets/comment-thread-store-da3_1rfw.js +1 -0
- package/dist/client/assets/comment-threads-mG1CkBKO.js +4 -0
- package/dist/client/assets/comment-ui-shared-4bhpJQpv.js +7 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-Czr0rwGr.js → cose-bilkent-JH36ORCC-BMHIGaXC.js} +1 -1
- package/dist/client/assets/{cose-bilkent-JH36ORCC-DLmEf9HS.js → cose-bilkent-JH36ORCC-Chlyw-Nt.js} +1 -1
- package/dist/client/assets/crystal-Bl6YKCG_.js +1 -0
- package/dist/client/assets/{cs-CZ-VUCGPRML-BfCoYAgj.js → cs-CZ-VUCGPRML-KFMLw537.js} +1 -1
- package/dist/client/assets/cynefin-EF2NZ3EQ-CwzF3ccb.js +1 -0
- package/dist/client/assets/cynefin-OW5HDTMX-CeLVR4kL.js +1 -0
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-DTnLZaO7.js → cynefinDiagram-5FMLGOSQ-No5A0--Q.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-VND7K2PF-DwfMZ3vk.js → cynefinDiagram-WF24UDRP-BvwG2vI4.js} +1 -1
- package/dist/client/assets/cytoscape-cose-bilkent-iiiP-uiT.js +1 -0
- package/dist/client/assets/cytoscape-fcose-CiCTciSr.js +1 -0
- package/dist/client/assets/cytoscape.esm-CCmQRb78.js +321 -0
- package/dist/client/assets/{da-DK-NNDP2IVP-DBw9ZNTR.js → da-DK-NNDP2IVP-BpM-jMGR.js} +1 -1
- package/dist/client/assets/dagre-D7JM2Yhv.js +1 -0
- package/dist/client/assets/dagre-GXQ25YYZ-B0VZWLr5.js +4 -0
- package/dist/client/assets/dagre-NK4GIZVX-DoXdmyVb.js +4 -0
- package/dist/client/assets/{de-CH-I7RAVIZN-DYW18Vsr.js → de-CH-I7RAVIZN-BNkaUG5V.js} +1 -1
- package/dist/client/assets/{de-DE-WBQ3DQLR-DYW18Vsr.js → de-DE-WBQ3DQLR-BNkaUG5V.js} +1 -1
- package/dist/client/assets/deferred-collab-C9aa9cvT.css +1 -0
- package/dist/client/assets/deferred-git-BPQ-UgrN.css +1 -0
- package/dist/client/assets/deferred-preview-B-RebLry.css +1 -0
- package/dist/client/assets/{diagram-3UASUU5V-DmhdYv6_.js → diagram-CBK3MWTC-hfExzGJR.js} +2 -2
- package/dist/client/assets/{diagram-MLGK6HIB-DIBG6Ivu.js → diagram-I5XIIV2D-Diz84D6I.js} +1 -1
- package/dist/client/assets/{diagram-CDSNMT55-D_qyS11R.js → diagram-ODIL2UCW-lVgTk1r8.js} +4 -4
- package/dist/client/assets/diagram-PFBEJUXE-Dm-wXUUU.js +3 -0
- package/dist/client/assets/{diagram-MPIPVDR6-D9XsALDV.js → diagram-RJA3I4VV-Bv4ZAy4v.js} +2 -2
- package/dist/client/assets/{diagram-S7CK7UJ4-CGTzfo2f.js → diagram-S7CK7UJ4-ClAT_J6s.js} +2 -2
- package/dist/client/assets/diagram-TYUNFSNR-CN-Xc6z9.js +200 -0
- package/dist/client/assets/{diagram-UQ7AKVKN-CWZS8QtB.js → diagram-UQ7AKVKN-DJ6uTWCE.js} +1 -1
- package/dist/client/assets/{diagram-VSXAHHWV-DaO1nOZF.js → diagram-VSXAHHWV-C2k4OYGw.js} +1 -1
- package/dist/client/assets/{diagram-VX7I27RA-B54P6Cyf.js → diagram-VX7I27RA-CLX2KoMs.js} +1 -1
- package/dist/client/assets/{diagram-Z3DM3KII-Cl2EXiXp.js → diagram-Z3DM3KII-BZcZUF57.js} +1 -1
- package/dist/client/assets/{direct-engine-DVLMOJWp-C-YL5NFb.js → direct-engine-DVLMOJWp-C_tInsJx.js} +1 -1
- package/dist/client/assets/dist-7kwQLW_E.js +1 -0
- package/dist/client/assets/dist-B-G-pifG.js +11 -0
- package/dist/client/assets/dist-B0vhBQTT.js +13 -0
- package/dist/client/assets/dist-BBVAlyPS.js +1 -0
- package/dist/client/assets/dist-BGDa8poZ.js +1 -0
- package/dist/client/assets/{dist-uk11ih8u.js → dist-BJ93nZVx.js} +2 -2
- package/dist/client/assets/dist-BS271jN_.js +1 -0
- package/dist/client/assets/dist-BUgvZKJ6.js +39 -0
- package/dist/client/assets/dist-BXomWIuA.js +2 -0
- package/dist/client/assets/dist-BbrmdpPb.js +1 -0
- package/dist/client/assets/dist-BfvzS-2t.js +1 -0
- package/dist/client/assets/dist-Bt7Xaqyp.js +1 -0
- package/dist/client/assets/dist-BtOSkvqt.js +1 -0
- package/dist/client/assets/{dist-Ch6Sr9KF.js → dist-C150LLfi.js} +6 -6
- package/dist/client/assets/dist-C6YYSeP1.js +9 -0
- package/dist/client/assets/dist-CFzMlwAz.js +1 -0
- package/dist/client/assets/dist-CH86sVcz.js +1 -0
- package/dist/client/assets/dist-CP97HJ4M.js +1 -0
- package/dist/client/assets/dist-CVDt4G0T.js +1 -0
- package/dist/client/assets/dist-CbwTIhZ4.js +1 -0
- package/dist/client/assets/dist-CfwwN8_Y.js +1 -0
- package/dist/client/assets/{dist-B_J_HbC0.js → dist-CumnGVmJ.js} +1 -1
- package/dist/client/assets/dist-CvwwJhwr.js +1 -0
- package/dist/client/assets/dist-D-detfUV.js +1 -0
- package/dist/client/assets/dist-DCaysCNp.js +1 -0
- package/dist/client/assets/dist-DCgncsfc.js +6 -0
- package/dist/client/assets/dist-DFWn8cbH.js +1 -0
- package/dist/client/assets/dist-DKBDZ7Fw.js +1 -0
- package/dist/client/assets/dist-DUrzEppq.js +1 -0
- package/dist/client/assets/dist-Db2OLA3a.js +1 -0
- package/dist/client/assets/dist-Dd0BffVR.js +1 -0
- package/dist/client/assets/dist-X-11q-Vc.js +1 -0
- package/dist/client/assets/dist-aNZ025fx.js +23 -0
- package/dist/client/assets/dist-ftwTHAfS.js +1 -0
- package/dist/client/assets/dist-hiG7zUCa.js +1 -0
- package/dist/client/assets/document-formatter-B_jrdFGJ.js +1 -0
- package/dist/client/assets/drawioEditor-DhRXvyRT.js +9 -0
- package/dist/client/assets/{duration-BiuFXtXd.js → duration-DPNtiFfE.js} +1 -1
- package/dist/client/assets/{dylan-BCDoL_-p.js → dylan-S7ucR4pR.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-PfC84FyI.js → ebnfDiagram-PWID7BFC-B8zzvt1e.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-ZINNZB2B-DYvm_QtE.js → ebnfDiagram-V4P3TTPT-PjRB23H_.js} +1 -1
- package/dist/client/assets/editor-session-BnTvcvzz.js +13 -0
- package/dist/client/assets/{el-GR-TYQHVGXW-Dx82YYAS.js → el-GR-TYQHVGXW-BHUJHVd3.js} +1 -1
- package/dist/client/assets/elk-QONTBCTQ-DknSb2FG.js +27 -0
- package/dist/client/assets/embedded-editor-base-C44ZcCZv.css +1 -0
- package/dist/client/assets/embedpdf-VVX-wFIh.js +1 -0
- package/dist/client/assets/{embedpdf-cl9qiF45-itpgqvGY.js → embedpdf-cl9qiF45-Cv92w6Wn.js} +6 -6
- package/dist/client/assets/en-AUO4QW63-CgjNrgHv.js +1 -0
- package/dist/client/assets/{erDiagram-OPXOYQCR-o8GRv8A_.js → erDiagram-KYQIGQAA-BHguakEd.js} +2 -2
- package/dist/client/assets/{erDiagram-RLTQ6QDP-C9cJl5NB.js → erDiagram-RLTQ6QDP-YPD0-iRc.js} +1 -1
- package/dist/client/assets/{es-ES-JEUOREKJ-Rx0NUQDl.js → es-ES-JEUOREKJ-CeuoqqTN.js} +1 -1
- package/dist/client/assets/{esm-BzZ1JFVo.js → esm-nC3n5xMZ.js} +5 -5
- package/dist/client/assets/{estree-DGmLqopC.js → estree-Cw-tQG5d.js} +4 -4
- package/dist/client/assets/{eu-ES-SO5DEEAN-CDYm-BcK.js → eu-ES-SO5DEEAN-D_7bAcKh.js} +1 -1
- package/dist/client/assets/eventmodeling-K75KTNOO-BsPoof5R.js +1 -0
- package/dist/client/assets/eventmodeling-NTZA5JFV-Bwo1LIKP.js +1 -0
- package/dist/client/assets/excalidraw-element-link-BduFAMXS.js +1 -0
- package/dist/client/assets/excalidraw-scene-DzfbvjqT.js +1 -0
- package/dist/client/assets/excalidrawEditor-3jfVRVmE.js +9 -0
- package/dist/client/assets/excalidrawEditor-DiKOIudt.css +1 -0
- package/dist/client/assets/export-page-BiB1AeMg.js +46 -0
- package/dist/client/assets/exportDocument-BwukVyB9.js +2 -0
- package/dist/client/assets/exportDocument-D0mONgQ4.css +1 -0
- package/dist/client/assets/{fa-IR-I4JNTJHK-CFtHZqoT.js → fa-IR-I4JNTJHK-BeoSOVqB.js} +1 -1
- package/dist/client/assets/{fi-FI-REAEF6HQ-BIpjJqIb.js → fi-FI-REAEF6HQ-BqIp6GiK.js} +1 -1
- package/dist/client/assets/file-kind-BGxTVHan.js +1 -0
- package/dist/client/assets/file-search-D2UfqaRv.js +1 -0
- package/dist/client/assets/flowDiagram-HODETNUW-CVKOAnD7.js +1 -0
- package/dist/client/assets/flowDiagram-IUGLLWBU-BjEyR0dW.js +1 -0
- package/dist/client/assets/{fr-FR-SUCL7J6B-DGAKE8jH.js → fr-FR-SUCL7J6B-Dl3EFjA3.js} +1 -1
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-x40PW0Ah.js → ganttDiagram-EL5Y4UJY-CCUwTKb4.js} +1 -1
- package/dist/client/assets/ganttDiagram-R7GPNTJY-CXLqT-aU.js +292 -0
- package/dist/client/assets/gitGraph-4MIJSDKK-CWZptYrG.js +1 -0
- package/dist/client/assets/gitGraph-VSP46ZUC-x2Q42NFN.js +1 -0
- package/dist/client/assets/gitGraphDiagram-PDYL7XHY-BJ9CsrRo.js +106 -0
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-ahsNaZsp.js → gitGraphDiagram-WWUBYQGX-OqdVjcEn.js} +1 -1
- package/dist/client/assets/{gl-ES-KHCSOGVH-DWKh0CMu.js → gl-ES-KHCSOGVH-DGHdzXnJ.js} +1 -1
- package/dist/client/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/client/assets/groovy-CUrWKPia.js +1 -0
- package/dist/client/assets/{he-IL-JYXVXV2Q-zqbcM-4g.js → he-IL-JYXVXV2Q-DP8F40TD.js} +1 -1
- package/dist/client/assets/{hi-IN-BU52H3BO-CY8v6eG9.js → hi-IN-BU52H3BO-B1huAT2Y.js} +1 -1
- package/dist/client/assets/{html-BryNQ_yx.js → html-Drt7kOJE.js} +2 -2
- package/dist/client/assets/{hu-HU-OWADXDQ3-CEl6Udfh.js → hu-HU-OWADXDQ3-87zhVnWy.js} +1 -1
- package/dist/client/assets/{id-ID-2WY7E4VX-CCAeQpPr.js → id-ID-2WY7E4VX-BdFs5w71.js} +1 -1
- package/dist/client/assets/image-V6E7PHAZ-DSZxKLH0.js +1 -0
- package/dist/client/assets/image-blob-reduce.esm-ZiL83eII.js +2 -0
- package/dist/client/assets/image-lightbox-controller-DH39QMBp.js +184 -0
- package/dist/client/assets/index-BebSD0ym.js +960 -0
- package/dist/client/assets/index-CglpXOg7.css +1 -0
- package/dist/client/assets/info-A6RAGUB7-D_xaPiSc.js +1 -0
- package/dist/client/assets/info-OHQRW6UA-CBi78irM.js +1 -0
- package/dist/client/assets/{infoDiagram-27XIBGKW-MrZyptIy.js → infoDiagram-27XIBGKW-Ck9hyDJb.js} +1 -1
- package/dist/client/assets/{infoDiagram-VRGFBTTK-KkUjDRAQ.js → infoDiagram-MVDRKAX5-DcpftzUS.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-Bnt9yM0O.js → ishikawaDiagram-5VMMS53U-CazBMMkQ.js} +2 -2
- package/dist/client/assets/{ishikawaDiagram-OU5B5YK6-Di9BcpOY.js → ishikawaDiagram-HPEHV2GE-BG5PpI0A.js} +3 -3
- package/dist/client/assets/{it-IT-INVHSAJF-DytAgndh.js → it-IT-INVHSAJF-DnUnri32.js} +1 -1
- package/dist/client/assets/{ja-JP-JBNTKYP4-BflWlGhw.js → ja-JP-JBNTKYP4-DIs2dSob.js} +1 -1
- package/dist/client/assets/javascript-DZ4Qsoqy.js +1 -0
- package/dist/client/assets/javascript-lj9EKOz0.js +1 -0
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-Bl0abK1r.js → journeyDiagram-3NMN7TZE-DJFGpA3F.js} +1 -1
- package/dist/client/assets/{journeyDiagram-ZHPQQLJL-J-sGrs9e.js → journeyDiagram-BOSHW7O7-CAdC3Sr9.js} +3 -3
- package/dist/client/assets/{jsx-runtime-DKj5X9O4.js → jsx-runtime-CldxteV5.js} +1 -1
- package/dist/client/assets/{kaa-TC3VIB7V-B-xtZfy0.js → kaa-TC3VIB7V-wP2hxPDI.js} +1 -1
- package/dist/client/assets/{kab-KAB-UOUDSQKM-BmO0O4Y4.js → kab-KAB-UOUDSQKM-CwUZUlMm.js} +1 -1
- package/dist/client/assets/{kanban-definition-PNTS6WVX-5ZDV_yIa.js → kanban-definition-FNSA4HC5-DLzqpQsC.js} +4 -4
- package/dist/client/assets/{kanban-definition-UXKFOSKX-DMgUfNt0.js → kanban-definition-UXKFOSKX-R91H_Ua5.js} +1 -1
- package/dist/client/assets/katex-B_JcIwqj.js +257 -0
- package/dist/client/assets/{katex-9NBMfU68.js → katex-DJhrJSbw.js} +1 -1
- package/dist/client/assets/keyboard-shortcuts-BWNCBJqw.js +1 -0
- package/dist/client/assets/{kk-KZ-P5H2X7YS-CSQFB8IN.js → kk-KZ-P5H2X7YS-Q3XzFKqf.js} +1 -1
- package/dist/client/assets/{km-KH-IHMV2US7-BxrjuEzr.js → km-KH-IHMV2US7-CxtoNVOY.js} +1 -1
- package/dist/client/assets/{ko-KR-ZTMANIDF-BnNRXd5J.js → ko-KR-ZTMANIDF-CJeG69_5.js} +1 -1
- package/dist/client/assets/{ku-TR-GPJTRB5G-BZM7f2aT.js → ku-TR-GPJTRB5G-D4gY4ec8.js} +1 -1
- package/dist/client/assets/{line-DEbP8Ok6.js → line-CttJWsP1.js} +1 -1
- package/dist/client/assets/linear-DGppY5mt.js +1 -0
- package/dist/client/assets/lobby-presence-DWGiwZgG.js +1 -0
- package/dist/client/assets/{lt-LT-V3XDOK3P-MVQBOHmF.js → lt-LT-V3XDOK3P-DTiFqRKt.js} +1 -1
- package/dist/client/assets/{lv-LV-DVQ3FADO-CrenwAhS.js → lv-LV-DVQ3FADO-BDx0eM98.js} +1 -1
- package/dist/client/assets/{markdown-CZ1tYEW8.js → markdown-C7cnJl_Q.js} +12 -12
- package/dist/client/assets/markdown-headings-CHNl_tgP.js +41 -0
- package/dist/client/assets/markdown-it-DWMS_G3H.js +13 -0
- package/dist/client/assets/{markdown-math-CyyBVuDO.js → markdown-math-CBhbNj1w.js} +13 -13
- package/dist/client/assets/{merge-CALoRt3l.js → merge-5Ig019a6.js} +1 -1
- package/dist/client/assets/{mermaid-parser.core-DBy--Jc0.js → mermaid-parser.core-B89UfKha.js} +3 -3
- package/dist/client/assets/{mermaid-parser.core-Bpogunsh.js → mermaid-parser.core-Dns-W-xX.js} +1 -1
- package/dist/client/assets/mermaid.core-8OvaaBlM.js +10 -0
- package/dist/client/assets/{mindmap-definition-NLK3R4M7-ByVb-0vj.js → mindmap-definition-6OY57UG3-0aQEcLTH.js} +11 -9
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-DBZN5_GH.js → mindmap-definition-YA3MSWOX-CCSfi8SE.js} +1 -1
- package/dist/client/assets/{mr-IN-VZ6HH5FE-B-PHPglH.js → mr-IN-VZ6HH5FE-Cofn25fc.js} +1 -1
- package/dist/client/assets/{my-MM-XYKWHRK6-Be5sYp5q.js → my-MM-XYKWHRK6-lMTCoeax.js} +1 -1
- package/dist/client/assets/{nb-NO-UNO2GGZJ-BvSKGdja.js → nb-NO-UNO2GGZJ-CEFDplVi.js} +1 -1
- package/dist/client/assets/{nginx-8H7HVH4w.js → nginx-C-ORUuei.js} +1 -1
- package/dist/client/assets/{nl-NL-76EFHT4P-C2yNx1Cj.js → nl-NL-76EFHT4P-2WbCYdRT.js} +1 -1
- package/dist/client/assets/{nn-NO-CFKD7ABE-4NsqlDRP.js → nn-NO-CFKD7ABE-DfK-9yuu.js} +1 -1
- package/dist/client/assets/{ntriples-B9h1VB_g.js → ntriples-CzMBulkp.js} +1 -1
- package/dist/client/assets/{oc-FR-YBJTCJ3J-B4OTQsWW.js → oc-FR-YBJTCJ3J-BSWusGxV.js} +1 -1
- package/dist/client/assets/{pa-IN-SNOXSMRV-CKj_sOG7.js → pa-IN-SNOXSMRV-BYkNTWiO.js} +1 -1
- package/dist/client/assets/packet-AYTQ26CC-D6Y_lKZt.js +1 -0
- package/dist/client/assets/packet-JDAUHWVQ-DAR0r-Im.js +1 -0
- package/dist/client/assets/{pegDiagram-GJSIUBJH-aost1sSO.js → pegDiagram-ECIUJNBX-VujrKWCK.js} +1 -1
- package/dist/client/assets/{pegDiagram-XKGWAZYB-DRo8CZu3.js → pegDiagram-XKGWAZYB-DTA3EjtF.js} +1 -1
- package/dist/client/assets/percentages-LWOC67ZH-BO-ZFv57.js +1 -0
- package/dist/client/assets/pica-CXv_OHDX.js +2 -0
- package/dist/client/assets/{pie-DzWLGKAD.js → pie-Ba_4rf3r.js} +1 -1
- package/dist/client/assets/pie-WAS4IAKB-DLhltotv.js +1 -0
- package/dist/client/assets/pie-XZMESJXO-5MOdYfI0.js +1 -0
- package/dist/client/assets/{pieDiagram-E7YTZNPT-CZThaHsc.js → pieDiagram-E7YTZNPT-DBz-eVG3.js} +1 -1
- package/dist/client/assets/{pieDiagram-5QR66LMP-BICdpEuz.js → pieDiagram-GNMPY74T-CjRzeDCN.js} +2 -2
- package/dist/client/assets/{pl-PL-BSY6YFZ3-CFuzA6L0.js → pl-PL-BSY6YFZ3-DQTYFenp.js} +1 -1
- package/dist/client/assets/{powershell-BcIto6Sf.js → powershell-D8WpQPaX.js} +1 -1
- package/dist/client/assets/preload-helper-khBccGFq.js +1 -0
- package/dist/client/assets/preview-diagram-utils-ByzpiwPu.js +3 -0
- package/dist/client/assets/preview-render-compiler-B_gyVIfk.js +3 -0
- package/dist/client/assets/preview-render-worker-DYGDgbKA.js +579 -0
- package/dist/client/assets/prod-BTPZlnru.js +1 -0
- package/dist/client/assets/prod-CUXkwl3E.js +144 -0
- package/dist/client/assets/{pt-BR-CZDV62R3-CkPMtyNx.js → pt-BR-CZDV62R3-qKOF4THL.js} +1 -1
- package/dist/client/assets/{pt-PT-JO57XJJW-CBSnfGtF.js → pt-PT-JO57XJJW-CVFFmqez.js} +1 -1
- package/dist/client/assets/pug-CGoiHVBP.js +1 -0
- package/dist/client/assets/purify.es-BP9p1Dbb.js +3 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-C5iowkl_.js → quadrantDiagram-AXDQQJYC-DaTj4J-B.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-O4NWA36T-Bgx5bF97.js → quadrantDiagram-D57K4MC3-Bvy8uMKb.js} +3 -3
- package/dist/client/assets/quick-switcher-controller-m2gikuD-.js +1 -0
- package/dist/client/assets/radar-ABXABTNO-hhs6i-b1.js +1 -0
- package/dist/client/assets/radar-RG4KPBEZ-B-2eETsZ.js +1 -0
- package/dist/client/assets/railroad-74A4TZTK-B18ef5-Z.js +1 -0
- package/dist/client/assets/railroad-I3PHUGI6-v8Mk380c.js +1 -0
- package/dist/client/assets/railroad-abnf-HS5TGJTU-CTQaqjqj.js +1 -0
- package/dist/client/assets/railroad-abnf-LNEFI6M7-C3t6jbSY.js +1 -0
- package/dist/client/assets/railroad-ebnf-DWYD2UWJ-BvF5fO2B.js +1 -0
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-BU_P5mpS.js +1 -0
- package/dist/client/assets/railroad-peg-JR7BVNR7-B90veE1n.js +1 -0
- package/dist/client/assets/railroad-peg-WCYAUIDC-CQCPL33M.js +1 -0
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-BTt_rKjT.js → railroadDiagram-O6MQD6OU-DJRswcTS.js} +1 -1
- package/dist/client/assets/{railroadDiagram-XR7U4H2S-DbVoNgSz.js → railroadDiagram-Y72NRBL7-BNjzJfAu.js} +1 -1
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-BkvazG7r.js → requirementDiagram-BXWQKSXE-DsljP03a.js} +1 -1
- package/dist/client/assets/{requirementDiagram-PLB6GJNP-BT0j9C40.js → requirementDiagram-EQYSW5RA-BKm3hJ3g.js} +4 -4
- package/dist/client/assets/{ro-RO-UZ5ICYYN-BOuntc_r.js → ro-RO-UZ5ICYYN-BgFoGyRb.js} +1 -1
- package/dist/client/assets/rolldown-runtime-COiEfhsA.js +1 -0
- package/dist/client/assets/{ru-RU-AN7JPREC-D-ow3SNR.js → ru-RU-AN7JPREC-C1Q9hhMw.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-C_IemB9h.js → sankeyDiagram-P5KCCOFB-7e3snR42.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-IPEJSGJF-X1BCUIrf.js → sankeyDiagram-SY24JHO5-X6282wPp.js} +3 -3
- package/dist/client/assets/sequenceDiagram-BLEHNHQU-BytEbBel.js +169 -0
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-CxFBgLGd.js → sequenceDiagram-WJ2MYXX4-Fy1RHQht.js} +2 -2
- package/dist/client/assets/{si-LK-7CBLD6QQ-c91EepX0.js → si-LK-7CBLD6QQ-B0AJbYON.js} +1 -1
- package/dist/client/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
- package/dist/client/assets/sizeCapture-INFHLROL-BMR1ovSU.js +1 -0
- package/dist/client/assets/{sk-SK-SWR6DKBI-D5vFMIL6.js → sk-SK-SWR6DKBI-BSd-r0Zi.js} +1 -1
- package/dist/client/assets/{sl-SI-QY5KCFGA-RZhwMpQL.js → sl-SI-QY5KCFGA-Dzrhm7-L.js} +1 -1
- package/dist/client/assets/src-C2pSFGeK.js +1 -0
- package/dist/client/assets/src-GGgGZJfE.js +2 -0
- package/dist/client/assets/{standalone-DbyFjvTU.js → standalone-YobQElH8.js} +3 -3
- package/dist/client/assets/{stateDiagram-D77RDMKH-BaSQ6Owj.js → stateDiagram-D77RDMKH-CW2cSnDj.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-GCMORJYK-CsVcfwVp.js → stateDiagram-v2-A6IESKWZ-DZU6pVog.js} +2 -2
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-iqEUZMAD.js +1 -0
- package/dist/client/assets/subset-shared.chunk-CL3Oizwd.js +1 -0
- package/dist/client/assets/{subset-worker.chunk-CoaGye2U.js → subset-worker.chunk-BdPjfgp2.js} +1 -1
- package/dist/client/assets/{sv-SE-O3OFCY3J-DnS86_7q.js → sv-SE-O3OFCY3J-6NoVnLTE.js} +1 -1
- package/dist/client/assets/swimlanes-42K2YHIH-8FngRMNT.js +1 -0
- package/dist/client/assets/swimlanes-B3ENRKFQ-D6BYdY9J.js +1 -0
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-hRw-7uL-.js +8 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DvDPHOsc.js +8 -0
- package/dist/client/assets/{ta-IN-V6NHHU6Z-D5jy7_AE.js → ta-IN-V6NHHU6Z-MAwuBBtS.js} +1 -1
- package/dist/client/assets/{th-TH-WLSZUSBX-DHehoYR2.js → th-TH-WLSZUSBX-D--o8vzw.js} +1 -1
- package/dist/client/assets/{tiki-AK6FwT8q.js → tiki-CvUEFusT.js} +1 -1
- package/dist/client/assets/{timeline-definition-24CTP7MA-zse-5Dbm.js → timeline-definition-24CTP7MA-C_Q-Br6X.js} +1 -1
- package/dist/client/assets/{timeline-definition-EJHVYXUP-BhqPlKkN.js → timeline-definition-JXYKGLGB-7HLQ94MK.js} +3 -3
- package/dist/client/assets/{tr-TR-GUFYG22B-ClVaf8h1.js → tr-TR-GUFYG22B-Bd-NNmz1.js} +1 -1
- package/dist/client/assets/treeView-D4JQ5SDB-BR1FV1TU.js +1 -0
- package/dist/client/assets/treeView-Q6P3EWNA-3N1U2hq1.js +1 -0
- package/dist/client/assets/treemap-SAJKECNS-yO7fe4dH.js +1 -0
- package/dist/client/assets/treemap-WGGIJYW6-BFO1obBW.js +1 -0
- package/dist/client/assets/{uk-UA-K6SV5NFQ-BLTTtyNB.js → uk-UA-K6SV5NFQ-_OJVmMT9.js} +1 -1
- package/dist/client/assets/usecaseDiagram-WPOLBNNX-uIlXI205.js +328 -0
- package/dist/client/assets/{uz-UZ-TVKTZO2G-Bm02Eg3D.js → uz-UZ-TVKTZO2G-BPXzC1bJ.js} +1 -1
- package/dist/client/assets/vault-api-client-DORNT49K.js +25 -0
- package/dist/client/assets/{vault-paths-BT-6nztu.js → vault-paths-R2qcfmE0.js} +1 -1
- package/dist/client/assets/{venn.esm-C5rDfA9t.js → venn.esm-BxwF8YNp.js} +1 -1
- package/dist/client/assets/{vennDiagram-4TSXK5OY-DgHr6cJD.js → vennDiagram-4TSXK5OY-Cl6f16-U.js} +1 -1
- package/dist/client/assets/{vennDiagram-UO4OBE2U-BRwLn2Q1.js → vennDiagram-Q3Y3IDCW-DZFF_ntk.js} +3 -3
- package/dist/client/assets/{vi-VN-7FKFXJNO-CL3WPhmG.js → vi-VN-7FKFXJNO-CjP0avHF.js} +1 -1
- package/dist/client/assets/wardley-7MLQ67FV-CCVlnR9Q.js +1 -0
- package/dist/client/assets/wardley-WFR3VGLG-BuSMKsul.js +1 -0
- package/dist/client/assets/{wardleyDiagram-VNRHLVJA-B_tMcVFG.js → wardleyDiagram-IVAIDKWA-bwMSFCgK.js} +4 -4
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-9A60XZis.js → wardleyDiagram-VM6X3IG4-BbU7rAxb.js} +1 -1
- package/dist/client/assets/{wiki-link-resolver-Dch88erO.js → wiki-link-resolver-BCdGUpdu.js} +1 -1
- package/dist/client/assets/{worker-engine-BCCrxWYm-CX0qJ_cG.js → worker-engine-BCCrxWYm-BU5lrbSm.js} +1 -1
- package/dist/client/assets/workspace-sync-client-B7dmdJGR.js +1 -0
- package/dist/client/assets/xychartDiagram-4URNHDU4-AjWzA402.js +7 -0
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-D00iy-wB.js → xychartDiagram-S5SC5T6Z-C5L6jReS.js} +1 -1
- package/dist/client/assets/{yaml-BcZaqAz8.js → yaml-Breo7DWT.js} +4 -4
- package/dist/client/assets/yjs-ZDLwhBUu.js +4 -0
- package/dist/client/assets/yjs-provider-reset-guard-D5pm5yx8.js +1 -0
- package/dist/client/assets/{zh-CN-AOKVLNNK-DGidDH2b.js → zh-CN-AOKVLNNK-CU0vKHKs.js} +1 -1
- package/dist/client/assets/{zh-HK-CDKPF5DC-CRcNR3rk.js → zh-HK-CDKPF5DC-BBhn88ei.js} +1 -1
- package/dist/client/assets/{zh-TW-ZVGYESGW-C7Qji1y6.js → zh-TW-ZVGYESGW-od6h3pTc.js} +1 -1
- package/dist/client/canvas-editor.html +16 -0
- package/dist/client/drawio-editor.html +7 -6
- package/dist/client/excalidraw-editor.html +43 -42
- package/dist/client/export-document.html +4 -3
- package/dist/client/index.html +2 -2
- package/package.json +37 -39
- package/scripts/local-compose.mjs +101 -0
- package/src/client/app/canvas-editor.html +13 -0
- package/src/client/application/app-shell/git-feature.js +3 -2
- package/src/client/application/app-shell/ui-feature-identity.js +1 -0
- package/src/client/application/app-shell/ui-feature-shell.js +2 -0
- package/src/client/application/app-shell/ui-feature-tab-activity.js +4 -0
- package/src/client/application/app-shell/workspace-feature.js +8 -34
- package/src/client/application/diagram-chrome.js +8 -11
- package/src/client/application/diagram-preview-export.js +2 -1
- package/src/client/application/diagram-preview-hydrator.js +5 -5
- package/src/client/application/mermaid-preview-hydrator.js +5 -3
- package/src/client/application/plantuml-preview-hydrator.js +6 -0
- package/src/client/application/preview-render-compiler.js +34 -98
- package/src/client/application/preview-render-executor.js +3 -0
- package/src/client/application/preview-render-worker.js +2 -0
- package/src/client/application/preview-renderer.js +9 -5
- package/src/client/application/workspace-coordinator.js +18 -10
- package/src/client/application/workspace-preview-controller.js +105 -158
- package/src/client/application/workspace-route-controller.js +29 -54
- package/src/client/bootstrap/canvas-markdown-preview.js +87 -0
- package/src/client/bootstrap/collabmd-app-shell.js +28 -13
- package/src/client/canvas-editor.js +143 -0
- package/src/client/domain/canvas-view.js +50 -0
- package/src/client/domain/excalidraw-scene.js +17 -60
- package/src/client/domain/highlight-runtime.js +0 -4
- package/src/client/domain/markdown-formatting.js +12 -94
- package/src/client/domain/markdown-headings.js +98 -0
- package/src/client/domain/mermaid-source.js +44 -0
- package/src/client/domain/wiki-link-completions.js +42 -10
- package/src/client/export/export-pipeline.js +7 -6
- package/src/client/infrastructure/browser-preferences-port.js +27 -33
- package/src/client/infrastructure/canvas-room-client.js +210 -0
- package/src/client/infrastructure/canvas-text-editor.js +36 -0
- package/src/client/infrastructure/comment-thread-store.js +19 -77
- package/src/client/infrastructure/editor-view-adapter.js +0 -30
- package/src/client/infrastructure/excalidraw-room-client.js +22 -10
- package/src/client/infrastructure/hosted-api-client.js +4 -2
- package/src/client/infrastructure/vault-api-client.js +4 -4
- package/src/client/infrastructure/webmcp-tool-registry.js +5 -8
- package/src/client/presentation/canvas-editor-view.js +1028 -0
- package/src/client/presentation/canvas-embed-controller.js +116 -0
- package/src/client/presentation/canvas-picker.js +111 -0
- package/src/client/presentation/drawio-embed-controller.js +1 -3
- package/src/client/presentation/excalidraw-embed-controller.js +10 -3
- package/src/client/presentation/file-action-controller.js +37 -0
- package/src/client/presentation/file-explorer-controller.js +1 -2
- package/src/client/presentation/file-explorer-view.js +7 -1
- package/src/client/presentation/file-icon-svg.js +1 -1
- package/src/client/presentation/file-tree-state.js +4 -1
- package/src/client/presentation/git-diff-view-controller.js +3 -3
- package/src/client/presentation/image-lightbox-controller.js +1 -5
- package/src/client/presentation/team-settings-controller.js +44 -10
- package/src/client/styles/components/actions.css +4 -16
- package/src/client/styles/components/surfaces.css +0 -7
- package/src/client/styles/features/comment-card.css +1 -2
- package/src/client/styles/features/comment-markdown.css +0 -18
- package/src/client/styles/features/diagram-preview.css +0 -18
- package/src/client/styles/features/git-branch.css +0 -4
- package/src/client/styles/foundation/themes.css +6 -0
- package/src/client/styles/foundation/utilities.css +1 -2
- package/src/client/styles/layout/editor-page.css +0 -13
- package/src/client/styles/layout/responsive.css +2 -7
- package/src/client/styles/layout/shell.css +13 -1
- package/src/client/styles/layout/view-modes.css +1 -0
- package/src/client/styles/surfaces/canvas-editor.css +239 -0
- package/src/domain/canvas-room-codec.js +359 -0
- package/src/domain/collabmd-content-capabilities.js +10 -1
- package/src/domain/comment-threads.js +49 -5
- package/src/domain/excalidraw-room-codec.js +34 -83
- package/src/domain/excalidraw-scene.js +48 -0
- package/src/domain/file-kind.js +13 -1
- package/src/server/application/workspace-reconciliation.js +0 -14
- package/src/server/domain/backlink-index.js +1 -36
- package/src/server/domain/bases/base-index-snapshot-store.js +41 -24
- package/src/server/domain/bases/base-query-service.js +1 -47
- package/src/server/domain/collaboration/collaboration-room.js +214 -49
- package/src/server/domain/collaboration/room-registry.js +7 -7
- package/src/server/domain/hosted-workspace.js +29 -2
- package/src/server/domain/plantuml-encoder.js +7 -43
- package/src/server/infrastructure/git/diff-service.js +1 -5
- package/src/server/infrastructure/git/history-service.js +18 -2
- package/src/server/infrastructure/git/untracked-files.js +1 -1
- package/src/server/infrastructure/http/create-git-api-command-handler.js +60 -149
- package/src/server/infrastructure/http/create-hosted-api-handler.js +5 -2
- package/src/server/infrastructure/http/create-vault-api-query-handler.js +2 -2
- package/src/server/infrastructure/http/http-response.js +2 -36
- package/src/server/infrastructure/http/request-body.js +14 -49
- package/src/server/infrastructure/persistence/hosted-metadata-store.js +12 -3
- package/src/server/infrastructure/persistence/path-utils.js +8 -2
- package/src/server/infrastructure/persistence/sidecar-store.js +5 -1
- package/src/server/infrastructure/persistence/vault-file-store.js +26 -60
- package/src/server/{infrastructure/git → shared}/image-mime.js +2 -2
- package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-kJfwukbn.js +0 -1
- package/dist/client/assets/_basePickBy-QJXUw_pr.js +0 -1
- package/dist/client/assets/_baseUniq-DR4vVjyC.js +0 -1
- package/dist/client/assets/architecture-7GRP2DOG-BBwRXFv3.js +0 -1
- package/dist/client/assets/architecture-7GRP2DOG-DJVtYNt-.js +0 -1
- package/dist/client/assets/babel-Bi_28hhi.js +0 -16
- package/dist/client/assets/browser-utils-S4QYY31r.js +0 -1
- package/dist/client/assets/channel-CgcHBnmr.js +0 -1
- package/dist/client/assets/chunk-2E4U76K2-CIQUuV9n.js +0 -1
- package/dist/client/assets/chunk-2ZTRR5NV-CnDP55cn.js +0 -2
- package/dist/client/assets/chunk-2ZTRR5NV-DcPRfelM.js +0 -2
- package/dist/client/assets/chunk-3FUC2YCW-8tZlhTGX.js +0 -1
- package/dist/client/assets/chunk-6AEJRKK7-DTVZj5bY.js +0 -1
- package/dist/client/assets/chunk-747NJXEK-BjqqAsS9.js +0 -2
- package/dist/client/assets/chunk-747NJXEK-Cur1aosP.js +0 -2
- package/dist/client/assets/chunk-7INBJB4K-CDmiHbaX.js +0 -62
- package/dist/client/assets/chunk-7M6MHVWA-BDakkknV.js +0 -213
- package/dist/client/assets/chunk-FOHPRMQF-DzxwRta7.js +0 -161
- package/dist/client/assets/chunk-ISPTBLVO-BMsDq9Ha.js +0 -12
- package/dist/client/assets/chunk-O7XYJQB3-D0_ZY2za.js +0 -126
- package/dist/client/assets/chunk-OUJLGHUK-75UXlPjl.js +0 -2
- package/dist/client/assets/chunk-OUJLGHUK-DA95-S9B.js +0 -2
- package/dist/client/assets/chunk-T5WUORNS-DD7KlyY6.js +0 -40
- package/dist/client/assets/chunk-UA2S7LBM-DicYDjDM.js +0 -1
- package/dist/client/assets/chunk-Z7XXMR3K-P4Vaq8hD.js +0 -10
- package/dist/client/assets/chunk-ZIGJFQKS-b8OUHKK5.js +0 -2
- package/dist/client/assets/classDiagram-ZZMXUADV-QLbh_Nkf.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-QLbh_Nkf.js +0 -1
- package/dist/client/assets/comment-thread-store-CHvy8GF8.js +0 -1
- package/dist/client/assets/comment-threads-nJhK1yfc.js +0 -4
- package/dist/client/assets/crystal-Bsdphhtm.js +0 -1
- package/dist/client/assets/cynefin-OW5HDTMX-CF3N9j1_.js +0 -1
- package/dist/client/assets/cynefin-OW5HDTMX-e-Quc9Yl.js +0 -1
- package/dist/client/assets/cytoscape-cose-bilkent-NdTYBUiT.js +0 -1
- package/dist/client/assets/cytoscape-fcose-DE9_QRG_.js +0 -1
- package/dist/client/assets/cytoscape.esm-EK2DW5Qr.js +0 -321
- package/dist/client/assets/dagre-6A5THRUB-DewyAGK6.js +0 -4
- package/dist/client/assets/dagre-D7FiCLLP.js +0 -1
- package/dist/client/assets/dagre-GXQ25YYZ-Vtyx08Qh.js +0 -4
- package/dist/client/assets/deferred-collab-D4cxEdad.css +0 -1
- package/dist/client/assets/deferred-git-BHKtkFYi.css +0 -1
- package/dist/client/assets/deferred-preview-BAXYgf4T.css +0 -1
- package/dist/client/assets/diagram-22UHCM2B-DbZirFfl.js +0 -200
- package/dist/client/assets/diagram-ATOU4E4O-B5uX-jVO.js +0 -3
- package/dist/client/assets/dist-9Eodxf4G.js +0 -1
- package/dist/client/assets/dist-B2ZNQifU.js +0 -1
- package/dist/client/assets/dist-B6QCMNze.js +0 -1
- package/dist/client/assets/dist-BIAv19LO.js +0 -1
- package/dist/client/assets/dist-BKYp1-dl.js +0 -13
- package/dist/client/assets/dist-BSAZ-Hek.js +0 -39
- package/dist/client/assets/dist-BSTbcioM.js +0 -11
- package/dist/client/assets/dist-BT9gJXCb.js +0 -1
- package/dist/client/assets/dist-BTVg1m-V.js +0 -1
- package/dist/client/assets/dist-Bi9ZIYXq.js +0 -9
- package/dist/client/assets/dist-BpAUe9sL.js +0 -1
- package/dist/client/assets/dist-Bqo-XRVG.js +0 -1
- package/dist/client/assets/dist-BrKhPlc9.js +0 -1
- package/dist/client/assets/dist-CBsvKPcT.js +0 -1
- package/dist/client/assets/dist-CJBYh9Wy.js +0 -23
- package/dist/client/assets/dist-CRwfjtwz.js +0 -2
- package/dist/client/assets/dist-CX7Kc61C.js +0 -1
- package/dist/client/assets/dist-CYfPeupF.js +0 -1
- package/dist/client/assets/dist-CoXN2D3R.js +0 -1
- package/dist/client/assets/dist-CucpLxUY.js +0 -1
- package/dist/client/assets/dist-DHBMeCxC.js +0 -6
- package/dist/client/assets/dist-DLEg9d4u.js +0 -1
- package/dist/client/assets/dist-DOHWxIty.js +0 -1
- package/dist/client/assets/dist-DYFBD-wW.js +0 -1
- package/dist/client/assets/dist-DeCV9FU4.js +0 -1
- package/dist/client/assets/dist-DugWGOjQ.js +0 -1
- package/dist/client/assets/dist-KrdpB_GB.js +0 -1
- package/dist/client/assets/dist-NNrRnB-f.js +0 -1
- package/dist/client/assets/dist-PUxZqhFe.js +0 -1
- package/dist/client/assets/dist-cYiJMWHJ.js +0 -1
- package/dist/client/assets/dist-iKC7go4m.js +0 -1
- package/dist/client/assets/dist-lw5TGjI6.js +0 -1
- package/dist/client/assets/document-formatter-6I63vstk.js +0 -1
- package/dist/client/assets/drawioEditor-DNTjsjzJ.js +0 -9
- package/dist/client/assets/editor-session-D8GGkJak.js +0 -14
- package/dist/client/assets/elk-276RUBZZ-B8LB3Pac.js +0 -27
- package/dist/client/assets/embedded-editor-base-elU0Avik.css +0 -1
- package/dist/client/assets/embedpdf-TkbBYowM.js +0 -1
- package/dist/client/assets/en-JTHJ2SIP-DBz9bRq4.js +0 -1
- package/dist/client/assets/eventmodeling-NTZA5JFV-CDy1bN6j.js +0 -1
- package/dist/client/assets/eventmodeling-NTZA5JFV-Dxtv5D-P.js +0 -1
- package/dist/client/assets/excalidraw-element-link-BRZOTIeI.js +0 -7
- package/dist/client/assets/excalidraw-scene-6uROebca.js +0 -1
- package/dist/client/assets/excalidrawEditor-BCTFp_CV.css +0 -1
- package/dist/client/assets/excalidrawEditor-D0orhhku.js +0 -9
- package/dist/client/assets/export-page-CVJNMERq.js +0 -46
- package/dist/client/assets/exportDocument-Ba-n1X4U.css +0 -1
- package/dist/client/assets/exportDocument-DSshnmnZ.js +0 -2
- package/dist/client/assets/file-kind-BwMIcZbi.js +0 -1
- package/dist/client/assets/file-search-BA8o_gs0.js +0 -1
- package/dist/client/assets/flowDiagram-HODETNUW-Bq4470NR.js +0 -1
- package/dist/client/assets/flowDiagram-KWPJA3E3-DQG9qGiU.js +0 -1
- package/dist/client/assets/ganttDiagram-FUAMR5RP-BQpsI7gQ.js +0 -292
- package/dist/client/assets/gitGraph-4MIJSDKK-B-rpDYbz.js +0 -1
- package/dist/client/assets/gitGraph-4MIJSDKK-ZaBIE4Lb.js +0 -1
- package/dist/client/assets/gitGraphDiagram-X574FWY7-wbs_2m9f.js +0 -106
- package/dist/client/assets/graphlib-C9Tl7QrK.js +0 -1
- package/dist/client/assets/groovy-CUpZ7dEl.js +0 -1
- package/dist/client/assets/image-I42VHMUI-B2-c_ifV.js +0 -1
- package/dist/client/assets/image-blob-reduce.esm-BFq-Mx5V.js +0 -2
- package/dist/client/assets/index-BCgNcVNs.css +0 -1
- package/dist/client/assets/index-BpmR5Qqk.js +0 -1140
- package/dist/client/assets/info-A6RAGUB7-BcGxhjED.js +0 -1
- package/dist/client/assets/info-A6RAGUB7-BlutK7BT.js +0 -1
- package/dist/client/assets/javascript-B9I2pbsP.js +0 -1
- package/dist/client/assets/javascript-DctB8BJo.js +0 -1
- package/dist/client/assets/katex-ZlcWpGUi.js +0 -257
- package/dist/client/assets/linear-DExL6ILt.js +0 -1
- package/dist/client/assets/lobby-presence-KJrYhMdN.js +0 -1
- package/dist/client/assets/markdown-it-DpvIRaVq.js +0 -13
- package/dist/client/assets/mermaid.core-BeOUPE3Q.js +0 -10
- package/dist/client/assets/packet-AYTQ26CC-CqpSjTWl.js +0 -1
- package/dist/client/assets/packet-AYTQ26CC-DvbY8dI6.js +0 -1
- package/dist/client/assets/percentages-LWOC67ZH-VhvllE7L.js +0 -1
- package/dist/client/assets/pica-BPrp-GK1.js +0 -2
- package/dist/client/assets/pie-WAS4IAKB-Bg2eCNl5.js +0 -1
- package/dist/client/assets/pie-WAS4IAKB-DWSm9SSD.js +0 -1
- package/dist/client/assets/preload-helper-BAlEavIC.js +0 -1
- package/dist/client/assets/preview-diagram-utils-txBCoW8d.js +0 -1
- package/dist/client/assets/preview-render-compiler-BmWQStaL.js +0 -43
- package/dist/client/assets/preview-render-worker-BA4VK_GY.js +0 -575
- package/dist/client/assets/prod-CA0ie9yD.js +0 -145
- package/dist/client/assets/prod-yKJZ3E4s.js +0 -1
- package/dist/client/assets/pug-CqqUmdG7.js +0 -1
- package/dist/client/assets/purify.es-go7v6Te-.js +0 -3
- package/dist/client/assets/quick-switcher-controller-B5vT9Vj5.js +0 -1
- package/dist/client/assets/radar-RG4KPBEZ-BfNQUEQy.js +0 -1
- package/dist/client/assets/radar-RG4KPBEZ-DxExotg6.js +0 -1
- package/dist/client/assets/railroad-74A4TZTK-BaQ6U6eJ.js +0 -1
- package/dist/client/assets/railroad-74A4TZTK-FfHmeIQk.js +0 -1
- package/dist/client/assets/railroad-abnf-HS5TGJTU-BJ3KZw7J.js +0 -1
- package/dist/client/assets/railroad-abnf-HS5TGJTU-CLkdDRsJ.js +0 -1
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-B162zvcG.js +0 -1
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-DA0sEq7w.js +0 -1
- package/dist/client/assets/railroad-peg-WCYAUIDC-CGs5GeJ5.js +0 -1
- package/dist/client/assets/railroad-peg-WCYAUIDC-DCmlICzO.js +0 -1
- package/dist/client/assets/rolldown-runtime-Dd_uD5pT.js +0 -1
- package/dist/client/assets/sequenceDiagram-PO4LG4MO-B-2QfXhV.js +0 -169
- package/dist/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +0 -1
- package/dist/client/assets/sizeCapture-INFHLROL-DrzwYt5z.js +0 -1
- package/dist/client/assets/src-XiVvaevx.js +0 -1
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-CLlwrdvU.js +0 -1
- package/dist/client/assets/subset-shared.chunk-BXlA-9CO.js +0 -1
- package/dist/client/assets/swimlanes-2SLR337P-CnYTVqRX.js +0 -1
- package/dist/client/assets/swimlanes-42K2YHIH-CALFEmiS.js +0 -1
- package/dist/client/assets/swimlanesDiagram-TC7HE7FX-Bh4tmz27.js +0 -8
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-xhehUG9e.js +0 -8
- package/dist/client/assets/treeView-Q6P3EWNA-BvHOzbu9.js +0 -1
- package/dist/client/assets/treeView-Q6P3EWNA-Cccy0ngL.js +0 -1
- package/dist/client/assets/treemap-WGGIJYW6-oety7paS.js +0 -1
- package/dist/client/assets/treemap-WGGIJYW6-sMRCjCtX.js +0 -1
- package/dist/client/assets/usecaseDiagram-POWQR4AR-DR2LHQYs.js +0 -328
- package/dist/client/assets/vault-api-client-NS_EVHJ3.js +0 -7
- package/dist/client/assets/wardley-WFR3VGLG-BdwDpX_I.js +0 -1
- package/dist/client/assets/wardley-WFR3VGLG-Y7xty_3m.js +0 -1
- package/dist/client/assets/workspace-sync-client-BrMtf6zN.js +0 -1
- package/dist/client/assets/xychartDiagram-PMCCYNJV-fRpZ1MA5.js +0 -7
- package/dist/client/assets/yjs-B41tM6Sz.js +0 -4
- package/dist/client/assets/yjs-provider-reset-guard-DpntzUDR.js +0 -1
- package/scripts/local-plantuml-compose.mjs +0 -92
- package/scripts/local-structurizr-compose.mjs +0 -101
|
@@ -41,160 +41,71 @@ export function createGitApiCommandHandler({
|
|
|
41
41
|
gitService,
|
|
42
42
|
workspaceMutationCoordinator = null,
|
|
43
43
|
}) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
return true;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if (requestUrl.pathname === '/api/git/stage-all' && req.method === 'POST') {
|
|
88
|
-
try {
|
|
89
|
-
jsonResponse(req, res, 200, await applyWorkspaceMutationEffects({
|
|
90
|
-
action: 'stage-all',
|
|
91
|
-
req,
|
|
92
|
-
responsePayload: await workspaceMutationCoordinator.runManagedWorkspaceMutation(
|
|
93
|
-
() => gitService.stageAll(),
|
|
94
|
-
),
|
|
95
|
-
workspaceMutationCoordinator,
|
|
96
|
-
}));
|
|
97
|
-
} catch (error) {
|
|
98
|
-
handleApiError(req, res, error, '[api] Failed to stage all git changes:', 'Failed to stage all git changes');
|
|
99
|
-
}
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (requestUrl.pathname === '/api/git/unstage-all' && req.method === 'POST') {
|
|
104
|
-
try {
|
|
105
|
-
jsonResponse(req, res, 200, await applyWorkspaceMutationEffects({
|
|
106
|
-
action: 'unstage-all',
|
|
107
|
-
req,
|
|
108
|
-
responsePayload: await workspaceMutationCoordinator.runManagedWorkspaceMutation(
|
|
109
|
-
() => gitService.unstageAll(),
|
|
110
|
-
),
|
|
111
|
-
workspaceMutationCoordinator,
|
|
112
|
-
}));
|
|
113
|
-
} catch (error) {
|
|
114
|
-
handleApiError(req, res, error, '[api] Failed to unstage all git changes:', 'Failed to unstage all git changes');
|
|
115
|
-
}
|
|
116
|
-
return true;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
if (requestUrl.pathname === '/api/git/commit' && req.method === 'POST') {
|
|
120
|
-
try {
|
|
121
|
-
const body = await parseRequiredBody(req, res, 'message');
|
|
122
|
-
if (!body) {
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
jsonResponse(req, res, 200, await applyWorkspaceMutationEffects({
|
|
127
|
-
action: 'commit',
|
|
128
|
-
req,
|
|
129
|
-
responsePayload: await workspaceMutationCoordinator.runManagedWorkspaceMutation(
|
|
130
|
-
() => gitService.commitStaged({
|
|
131
|
-
author: authService?.getAuthenticatedUser?.(req) ?? null,
|
|
132
|
-
message: body.message,
|
|
133
|
-
}),
|
|
134
|
-
),
|
|
135
|
-
workspaceMutationCoordinator,
|
|
136
|
-
}));
|
|
137
|
-
} catch (error) {
|
|
138
|
-
handleApiError(req, res, error, '[api] Failed to commit staged changes:', 'Failed to commit staged changes');
|
|
139
|
-
}
|
|
140
|
-
return true;
|
|
141
|
-
}
|
|
44
|
+
const routes = [
|
|
45
|
+
{
|
|
46
|
+
action: 'stage', bodyField: 'path', errorMessage: 'Failed to stage git file',
|
|
47
|
+
run: (body) => gitService.stageFile(body.path),
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
action: 'unstage', bodyField: 'path', errorMessage: 'Failed to unstage git file',
|
|
51
|
+
run: (body) => gitService.unstageFile(body.path),
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
action: 'stage-all', errorMessage: 'Failed to stage all git changes',
|
|
55
|
+
run: () => gitService.stageAll(),
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
action: 'unstage-all', errorMessage: 'Failed to unstage all git changes',
|
|
59
|
+
run: () => gitService.unstageAll(),
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
action: 'commit', bodyField: 'message', errorMessage: 'Failed to commit staged changes',
|
|
63
|
+
run: (body, req) => gitService.commitStaged({
|
|
64
|
+
author: authService?.getAuthenticatedUser?.(req) ?? null,
|
|
65
|
+
message: body.message,
|
|
66
|
+
}),
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
action: 'push', errorMessage: 'Failed to push git branch',
|
|
70
|
+
run: () => gitService.pushBranch(),
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
action: 'pull', errorMessage: 'Failed to pull git branch',
|
|
74
|
+
run: (_body, req) => gitService.pullBranch({
|
|
75
|
+
author: authService?.getAuthenticatedUser?.(req) ?? null,
|
|
76
|
+
}),
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
action: 'reset-file', bodyField: 'path', errorMessage: 'Failed to reset git file',
|
|
80
|
+
run: (body) => gitService.resetFileToHead(body.path),
|
|
81
|
+
},
|
|
82
|
+
];
|
|
142
83
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
() => gitService.pushBranch(),
|
|
150
|
-
),
|
|
151
|
-
workspaceMutationCoordinator,
|
|
152
|
-
}));
|
|
153
|
-
} catch (error) {
|
|
154
|
-
handleApiError(req, res, error, '[api] Failed to push git branch:', 'Failed to push git branch');
|
|
155
|
-
}
|
|
156
|
-
return true;
|
|
84
|
+
return async function handleGitApiCommand(req, res, requestUrl) {
|
|
85
|
+
const route = req.method === 'POST'
|
|
86
|
+
? routes.find(({ action }) => requestUrl.pathname === `/api/git/${action}`)
|
|
87
|
+
: null;
|
|
88
|
+
if (!route) {
|
|
89
|
+
return false;
|
|
157
90
|
}
|
|
158
91
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
req,
|
|
164
|
-
responsePayload: await workspaceMutationCoordinator.runManagedWorkspaceMutation(
|
|
165
|
-
() => gitService.pullBranch({
|
|
166
|
-
author: authService?.getAuthenticatedUser?.(req) ?? null,
|
|
167
|
-
}),
|
|
168
|
-
),
|
|
169
|
-
workspaceMutationCoordinator,
|
|
170
|
-
}));
|
|
171
|
-
} catch (error) {
|
|
172
|
-
handleApiError(req, res, error, '[api] Failed to pull git branch:', 'Failed to pull git branch');
|
|
92
|
+
try {
|
|
93
|
+
const body = route.bodyField ? await parseRequiredBody(req, res, route.bodyField) : {};
|
|
94
|
+
if (!body) {
|
|
95
|
+
return true;
|
|
173
96
|
}
|
|
174
|
-
return true;
|
|
175
|
-
}
|
|
176
97
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
responsePayload: await workspaceMutationCoordinator.runManagedWorkspaceMutation(
|
|
188
|
-
() => gitService.resetFileToHead(body.path),
|
|
189
|
-
),
|
|
190
|
-
workspaceMutationCoordinator,
|
|
191
|
-
}));
|
|
192
|
-
} catch (error) {
|
|
193
|
-
handleApiError(req, res, error, '[api] Failed to reset git file:', 'Failed to reset git file');
|
|
194
|
-
}
|
|
195
|
-
return true;
|
|
98
|
+
jsonResponse(req, res, 200, await applyWorkspaceMutationEffects({
|
|
99
|
+
action: route.action,
|
|
100
|
+
req,
|
|
101
|
+
responsePayload: await workspaceMutationCoordinator.runManagedWorkspaceMutation(
|
|
102
|
+
() => route.run(body, req),
|
|
103
|
+
),
|
|
104
|
+
workspaceMutationCoordinator,
|
|
105
|
+
}));
|
|
106
|
+
} catch (error) {
|
|
107
|
+
handleApiError(req, res, error, `[api] ${route.errorMessage}:`, route.errorMessage);
|
|
196
108
|
}
|
|
197
|
-
|
|
198
|
-
return false;
|
|
109
|
+
return true;
|
|
199
110
|
};
|
|
200
111
|
}
|
|
@@ -107,8 +107,11 @@ export function createHostedApiHandler({
|
|
|
107
107
|
membership: await hostedWorkspaceService.acceptInvitation(user),
|
|
108
108
|
});
|
|
109
109
|
}],
|
|
110
|
-
['GET /api/hosted/audit', async ({ req, res, user }) => {
|
|
111
|
-
jsonResponse(req, res, 200,
|
|
110
|
+
['GET /api/hosted/audit', async ({ req, requestUrl, res, user }) => {
|
|
111
|
+
jsonResponse(req, res, 200, await hostedWorkspaceService.listAuditEvents(user, {
|
|
112
|
+
cursor: requestUrl.searchParams.get('cursor') || '',
|
|
113
|
+
limit: requestUrl.searchParams.get('limit') || 50,
|
|
114
|
+
}));
|
|
112
115
|
}],
|
|
113
116
|
]);
|
|
114
117
|
|
|
@@ -225,9 +225,9 @@ async function handleBaseExport(req, res, _requestUrl, { baseQueryService }) {
|
|
|
225
225
|
}
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
async function handleFileTree(req, res, _requestUrl, {
|
|
228
|
+
async function handleFileTree(req, res, _requestUrl, { workspaceMutationCoordinator }) {
|
|
229
229
|
try {
|
|
230
|
-
const tree = workspaceMutationCoordinator
|
|
230
|
+
const tree = workspaceMutationCoordinator.getWorkspaceTree();
|
|
231
231
|
jsonResponse(req, res, 200, { tree });
|
|
232
232
|
} catch (error) {
|
|
233
233
|
console.error('[api] Failed to read file tree:', error.message);
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
constants as zlibConstants,
|
|
4
4
|
gzip,
|
|
5
5
|
} from 'node:zlib';
|
|
6
|
+
import { pipeline } from 'node:stream/promises';
|
|
6
7
|
|
|
7
8
|
const COMPRESSIBLE_CONTENT_TYPE_PATTERN = /^(?:text\/|application\/(?:javascript|json|xml)|image\/svg\+xml)/i;
|
|
8
9
|
const MIN_COMPRESSIBLE_BYTES = 1024;
|
|
@@ -212,42 +213,7 @@ export function sendStreamResponse(req, res, {
|
|
|
212
213
|
return Promise.resolve();
|
|
213
214
|
}
|
|
214
215
|
|
|
215
|
-
return
|
|
216
|
-
let settled = false;
|
|
217
|
-
|
|
218
|
-
const finish = (error = null) => {
|
|
219
|
-
if (settled) {
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
settled = true;
|
|
224
|
-
res.off('finish', handleFinish);
|
|
225
|
-
res.off('error', handleError);
|
|
226
|
-
res.off('close', handleClose);
|
|
227
|
-
stream.off('error', handleError);
|
|
228
|
-
|
|
229
|
-
if (error) {
|
|
230
|
-
reject(error);
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
resolve();
|
|
235
|
-
};
|
|
236
|
-
|
|
237
|
-
const handleFinish = () => finish();
|
|
238
|
-
const handleError = (error) => finish(error);
|
|
239
|
-
const handleClose = () => {
|
|
240
|
-
if (!res.writableEnded) {
|
|
241
|
-
finish(new Error('Response stream closed before completion'));
|
|
242
|
-
}
|
|
243
|
-
};
|
|
244
|
-
|
|
245
|
-
res.on('finish', handleFinish);
|
|
246
|
-
res.on('error', handleError);
|
|
247
|
-
res.on('close', handleClose);
|
|
248
|
-
stream.on('error', handleError);
|
|
249
|
-
stream.pipe(res);
|
|
250
|
-
});
|
|
216
|
+
return pipeline(stream, res);
|
|
251
217
|
}
|
|
252
218
|
|
|
253
219
|
export function jsonResponse(req, res, statusCode, data) {
|
|
@@ -3,56 +3,21 @@ import { createRequestError } from './http-errors.js';
|
|
|
3
3
|
export const REQUEST_BODY_LIMIT_BYTES = 8_388_608;
|
|
4
4
|
|
|
5
5
|
async function readRequestBuffer(req, maxBytes = REQUEST_BODY_LIMIT_BYTES) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
done = true;
|
|
18
|
-
req.off('data', onData);
|
|
19
|
-
req.off('end', onEnd);
|
|
20
|
-
req.off('error', onError);
|
|
21
|
-
callback(value);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const onData = (chunk) => {
|
|
25
|
-
if (limitError) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
size += chunk.length;
|
|
30
|
-
if (size > maxBytes) {
|
|
31
|
-
chunks.length = 0;
|
|
32
|
-
limitError = createRequestError(413, 'Request body too large');
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
|
|
6
|
+
const chunks = [];
|
|
7
|
+
let size = 0;
|
|
8
|
+
let tooLarge = false;
|
|
9
|
+
for await (const chunk of req) {
|
|
10
|
+
if (tooLarge) continue;
|
|
11
|
+
size += chunk.length;
|
|
12
|
+
if (size > maxBytes) {
|
|
13
|
+
chunks.length = 0;
|
|
14
|
+
tooLarge = true;
|
|
15
|
+
} else {
|
|
36
16
|
chunks.push(chunk);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
finish(reject, limitError);
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
finish(resolve, Buffer.concat(chunks));
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
const onError = (error) => {
|
|
49
|
-
finish(reject, error);
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
req.on('data', onData);
|
|
53
|
-
req.on('end', onEnd);
|
|
54
|
-
req.on('error', onError);
|
|
55
|
-
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (tooLarge) throw createRequestError(413, 'Request body too large');
|
|
20
|
+
return Buffer.concat(chunks);
|
|
56
21
|
}
|
|
57
22
|
|
|
58
23
|
export async function readRequestBody(req, maxBytes = REQUEST_BODY_LIMIT_BYTES) {
|
|
@@ -174,6 +174,8 @@ export class HostedMetadataStore {
|
|
|
174
174
|
metadata_json TEXT NOT NULL,
|
|
175
175
|
created_at INTEGER NOT NULL
|
|
176
176
|
);
|
|
177
|
+
CREATE INDEX IF NOT EXISTS audit_events_created_id_idx
|
|
178
|
+
ON audit_events(created_at DESC, id DESC);
|
|
177
179
|
|
|
178
180
|
CREATE TABLE IF NOT EXISTS operational_security_events (
|
|
179
181
|
id TEXT PRIMARY KEY,
|
|
@@ -514,11 +516,18 @@ export class HostedMetadataStore {
|
|
|
514
516
|
);
|
|
515
517
|
}
|
|
516
518
|
|
|
517
|
-
async listAuditEvents() {
|
|
519
|
+
async listAuditEvents({ before = null, limit = 51 } = {}) {
|
|
520
|
+
if (before) {
|
|
521
|
+
return this.prepare(
|
|
522
|
+
'listAuditEventsBefore',
|
|
523
|
+
`SELECT * FROM audit_events WHERE (created_at, id) < (?, ?)
|
|
524
|
+
ORDER BY created_at DESC, id DESC LIMIT ?`,
|
|
525
|
+
).all(before.createdAt, before.id, limit).map(rowToAuditEvent);
|
|
526
|
+
}
|
|
518
527
|
return this.prepare(
|
|
519
528
|
'listAuditEvents',
|
|
520
|
-
'SELECT * FROM audit_events ORDER BY created_at DESC',
|
|
521
|
-
).all().map(rowToAuditEvent);
|
|
529
|
+
'SELECT * FROM audit_events ORDER BY created_at DESC, id DESC LIMIT ?',
|
|
530
|
+
).all(limit).map(rowToAuditEvent);
|
|
522
531
|
}
|
|
523
532
|
|
|
524
533
|
async createOperationalSecurityEvent(event) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { lstatSync } from 'node:fs';
|
|
2
2
|
import { isAbsolute, join, normalize, relative, resolve } from 'path';
|
|
3
3
|
|
|
4
|
-
import { isVaultFilePath } from '../../../domain/file-kind.js';
|
|
4
|
+
import { getVaultFileKind, isVaultFilePath } from '../../../domain/file-kind.js';
|
|
5
5
|
|
|
6
6
|
export const IGNORED_DIRECTORIES = new Set(['.git', '.obsidian', '.trash', 'node_modules', '.DS_Store']);
|
|
7
|
-
export const VAULT_FILE_PATH_REQUIREMENT = '.md, .markdown, .mdx, .html, .htm, .base, .excalidraw, .drawio, .mmd, .mermaid, .puml, .plantuml, .dsl, .pdf, .png, .jpg, .jpeg, .webp, .gif, or .svg';
|
|
7
|
+
export const VAULT_FILE_PATH_REQUIREMENT = '.md, .markdown, .mdx, .html, .htm, .base, .canvas, .excalidraw, .drawio, .mmd, .mermaid, .puml, .plantuml, .dsl, .pdf, .png, .jpg, .jpeg, .webp, .gif, or .svg';
|
|
8
8
|
export const INVALID_VAULT_FILE_PATH_ERROR = `Invalid file path — must end in ${VAULT_FILE_PATH_REQUIREMENT}`;
|
|
9
9
|
export const INVALID_DIRECTORY_PATH_ERROR = 'Invalid directory path';
|
|
10
10
|
|
|
@@ -119,6 +119,12 @@ export function resolveVaultRenamePaths(vaultDir, oldPath, newPath) {
|
|
|
119
119
|
};
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
const oldKind = getVaultFileKind(absoluteOld);
|
|
123
|
+
const newKind = getVaultFileKind(absoluteNew);
|
|
124
|
+
if (oldKind !== newKind && [oldKind, newKind].includes('canvas')) {
|
|
125
|
+
return { absoluteNew: null, absoluteOld: null, error: 'Canvas files must keep the .canvas extension' };
|
|
126
|
+
}
|
|
127
|
+
|
|
122
128
|
return { absoluteNew, absoluteOld, error: null };
|
|
123
129
|
}
|
|
124
130
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { dirname, join } from 'path';
|
|
2
2
|
import { mkdir, readFile, readdir, rename, rm, stat, writeFile } from 'fs/promises';
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
3
4
|
|
|
4
5
|
import { resolveVaultFilePath, sanitizeVaultPath, toVaultRelativePath } from './path-utils.js';
|
|
5
6
|
import { mapWithConcurrency } from '../../shared/async-utils.js';
|
|
@@ -176,11 +177,14 @@ export class SidecarStore {
|
|
|
176
177
|
return { ok: false, error: 'Invalid file path' };
|
|
177
178
|
}
|
|
178
179
|
|
|
180
|
+
const tempPath = `${absolute}.collabmd-tmp-${randomUUID()}`;
|
|
179
181
|
try {
|
|
180
182
|
await mkdir(dirname(absolute), { recursive: true });
|
|
181
|
-
await writeFile(
|
|
183
|
+
await writeFile(tempPath, Buffer.from(snapshot), { flag: 'wx' });
|
|
184
|
+
await rename(tempPath, absolute);
|
|
182
185
|
return { ok: true };
|
|
183
186
|
} catch (error) {
|
|
187
|
+
await rm(tempPath, { force: true }).catch(() => {});
|
|
184
188
|
return { ok: false, error: error.message };
|
|
185
189
|
}
|
|
186
190
|
}
|
|
@@ -6,12 +6,12 @@ import sharp from 'sharp';
|
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
8
|
getVaultFileKind,
|
|
9
|
-
getVaultTreeNodeType,
|
|
10
9
|
isImageAttachmentFilePath,
|
|
11
10
|
isMarkdownFilePath,
|
|
12
11
|
isVaultFilePath,
|
|
13
12
|
supportsCommentsForFilePath,
|
|
14
13
|
} from '../../../domain/file-kind.js';
|
|
14
|
+
import { parseCanvasJson } from '../../../domain/canvas-room-codec.js';
|
|
15
15
|
import { createCommentOverview } from '../../domain/comment-overview.js';
|
|
16
16
|
import { scanWorkspaceState as scanWorkspaceStateFromAdapter } from '../../domain/workspace-state.js';
|
|
17
17
|
import {
|
|
@@ -27,6 +27,7 @@ import {
|
|
|
27
27
|
|
|
28
28
|
const EDITABLE_VAULT_CONTENT_PATH_ERRORS = {
|
|
29
29
|
base: 'Invalid file path — must end in .base',
|
|
30
|
+
canvas: 'Invalid file path — must end in .canvas',
|
|
30
31
|
drawio: 'Invalid file path — must end in .drawio',
|
|
31
32
|
excalidraw: 'Invalid file path — must end in .excalidraw',
|
|
32
33
|
html: 'Invalid file path — must end in .html or .htm',
|
|
@@ -36,6 +37,19 @@ const EDITABLE_VAULT_CONTENT_PATH_ERRORS = {
|
|
|
36
37
|
structurizr: 'Invalid file path — must end in .dsl',
|
|
37
38
|
};
|
|
38
39
|
|
|
40
|
+
function getContentValidationError(filePath, content) {
|
|
41
|
+
if (getVaultFileKind(filePath) !== 'canvas') return null;
|
|
42
|
+
try {
|
|
43
|
+
const text = content instanceof Uint8Array
|
|
44
|
+
? new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(content)
|
|
45
|
+
: content;
|
|
46
|
+
parseCanvasJson(text);
|
|
47
|
+
return null;
|
|
48
|
+
} catch {
|
|
49
|
+
return 'Invalid JSON Canvas 1.0 document';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
39
53
|
function getEditableVaultContentKind(filePath) {
|
|
40
54
|
const kind = getVaultFileKind(filePath);
|
|
41
55
|
return EDITABLE_VAULT_CONTENT_PATH_ERRORS[kind]
|
|
@@ -44,15 +58,7 @@ function getEditableVaultContentKind(filePath) {
|
|
|
44
58
|
}
|
|
45
59
|
import { SidecarStore } from './sidecar-store.js';
|
|
46
60
|
import { createWorkspaceStateFileSystemAdapter } from '../workspace/workspace-state-file-system-adapter.js';
|
|
47
|
-
|
|
48
|
-
const IMAGE_EXTENSION_TO_MIME_TYPE = Object.freeze({
|
|
49
|
-
'.gif': 'image/gif',
|
|
50
|
-
'.jpeg': 'image/jpeg',
|
|
51
|
-
'.jpg': 'image/jpeg',
|
|
52
|
-
'.png': 'image/png',
|
|
53
|
-
'.svg': 'image/svg+xml',
|
|
54
|
-
'.webp': 'image/webp',
|
|
55
|
-
});
|
|
61
|
+
import { IMAGE_EXTENSION_TO_MIME_TYPE } from '../../shared/image-mime.js';
|
|
56
62
|
|
|
57
63
|
const MIME_TYPE_TO_IMAGE_EXTENSION = Object.freeze({
|
|
58
64
|
'image/gif': '.gif',
|
|
@@ -66,6 +72,7 @@ const RASTER_IMAGE_MIME_TYPES_TO_CONVERT = new Set(['image/jpeg', 'image/png']);
|
|
|
66
72
|
const RASTER_IMAGE_EXTENSIONS_TO_CONVERT = new Set(['.jpeg', '.jpg', '.png']);
|
|
67
73
|
const TEXT_FILE_MIME_TYPES = Object.freeze({
|
|
68
74
|
base: 'text/yaml; charset=utf-8',
|
|
75
|
+
canvas: 'application/json; charset=utf-8',
|
|
69
76
|
drawio: 'application/xml; charset=utf-8',
|
|
70
77
|
excalidraw: 'application/json; charset=utf-8',
|
|
71
78
|
html: 'text/html; charset=utf-8',
|
|
@@ -325,56 +332,6 @@ export class VaultFileStore {
|
|
|
325
332
|
return this.managedWriteTracker.runManagedWrite(paths, operation);
|
|
326
333
|
}
|
|
327
334
|
|
|
328
|
-
async tree() {
|
|
329
|
-
return this.readDirectory(this.vaultDir);
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
async readDirectory(dirPath) {
|
|
333
|
-
const entries = [];
|
|
334
|
-
|
|
335
|
-
let dirEntries;
|
|
336
|
-
try {
|
|
337
|
-
dirEntries = await readdir(dirPath, { withFileTypes: true });
|
|
338
|
-
} catch {
|
|
339
|
-
return entries;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
const sorted = dirEntries.sort((a, b) => {
|
|
343
|
-
if (a.isDirectory() && !b.isDirectory()) return -1;
|
|
344
|
-
if (!a.isDirectory() && b.isDirectory()) return 1;
|
|
345
|
-
return a.name.localeCompare(b.name, undefined, { sensitivity: 'base' });
|
|
346
|
-
});
|
|
347
|
-
|
|
348
|
-
for (const entry of sorted) {
|
|
349
|
-
if (isIgnoredVaultEntry(entry.name) || entry.isSymbolicLink()) {
|
|
350
|
-
continue;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
const fullPath = join(dirPath, entry.name);
|
|
354
|
-
const relativePath = toVaultRelativePath(this.vaultDir, fullPath);
|
|
355
|
-
|
|
356
|
-
if (entry.isDirectory()) {
|
|
357
|
-
entries.push({
|
|
358
|
-
children: await this.readDirectory(fullPath),
|
|
359
|
-
name: entry.name,
|
|
360
|
-
path: relativePath,
|
|
361
|
-
type: 'directory',
|
|
362
|
-
});
|
|
363
|
-
continue;
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
if (isVaultFilePath(entry.name)) {
|
|
367
|
-
entries.push({
|
|
368
|
-
name: entry.name,
|
|
369
|
-
path: relativePath,
|
|
370
|
-
type: getVaultTreeNodeType(entry.name),
|
|
371
|
-
});
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
return entries;
|
|
376
|
-
}
|
|
377
|
-
|
|
378
335
|
resolveContentPath(filePath, { requireVaultFile = true } = {}) {
|
|
379
336
|
if (!requireVaultFile) {
|
|
380
337
|
return sanitizeVaultPath(this.vaultDir, filePath);
|
|
@@ -427,6 +384,9 @@ export class VaultFileStore {
|
|
|
427
384
|
};
|
|
428
385
|
}
|
|
429
386
|
|
|
387
|
+
const validationError = getContentValidationError(filePath, content);
|
|
388
|
+
if (validationError) return { ok: false, error: validationError };
|
|
389
|
+
|
|
430
390
|
try {
|
|
431
391
|
await this.runManagedWrite([filePath], async () => {
|
|
432
392
|
await mkdir(dirname(resolved.absolute), { recursive: true });
|
|
@@ -619,6 +579,9 @@ export class VaultFileStore {
|
|
|
619
579
|
};
|
|
620
580
|
}
|
|
621
581
|
|
|
582
|
+
const validationError = includeContent && getContentValidationError(filePath, content);
|
|
583
|
+
if (validationError) return { ok: false, error: validationError };
|
|
584
|
+
|
|
622
585
|
const commentPath = this.sidecarStore.getCommentThreadPath(filePath);
|
|
623
586
|
const snapshotPath = this.sidecarStore.getSnapshotPath(filePath);
|
|
624
587
|
if (!commentPath || !snapshotPath) {
|
|
@@ -757,6 +720,9 @@ export class VaultFileStore {
|
|
|
757
720
|
return { ok: false, error };
|
|
758
721
|
}
|
|
759
722
|
|
|
723
|
+
const validationError = getContentValidationError(filePath, content);
|
|
724
|
+
if (validationError) return { ok: false, error: validationError };
|
|
725
|
+
|
|
760
726
|
try {
|
|
761
727
|
await stat(absolute);
|
|
762
728
|
return { ok: false, error: 'File already exists' };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { extname } from 'node:path';
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
export const IMAGE_EXTENSION_TO_MIME_TYPE = Object.freeze({
|
|
4
4
|
'.gif': 'image/gif',
|
|
5
5
|
'.jpeg': 'image/jpeg',
|
|
6
6
|
'.jpg': 'image/jpeg',
|
|
@@ -11,5 +11,5 @@ const IMAGE_MIME_TYPES = Object.freeze({
|
|
|
11
11
|
|
|
12
12
|
export function getImageMimeType(filePath) {
|
|
13
13
|
const extension = extname(String(filePath ?? '').toLowerCase());
|
|
14
|
-
return
|
|
14
|
+
return IMAGE_EXTENSION_TO_MIME_TYPE[extension] ?? 'application/octet-stream';
|
|
15
15
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,t as n}from"./jsx-runtime-DKj5X9O4.js";import"./chunk-SRAX5OIU-KFQikY-4.js";import{$ as r,G as i,P as a,R as o,V as s,c,et as l,ht as u,nt as d,pt as f,t as p,z as m}from"./dist-BKYp1-dl.js";import{a as h,o as g,p as _,s as v}from"./dist-DLEg9d4u.js";var y=e(t(),1),b=n(),x=c.define({token(e){return e.match(/^%%.*$/)?`comment`:e.match(/^"(?:[^"\\]|\\.)*"/)?`string`:e.match(/^(flowchart|graph|sequenceDiagram|classDiagram|stateDiagram|erDiagram|gantt|pie|mindmap|journey|gitGraph|timeline|quadrantChart|sankey|xychart)\b/i)||e.match(/^(TB|TD|BT|RL|LR)\b/)||e.match(/^(subgraph|end|participant|actor|loop|alt|else|opt|par|critical|break|rect|note|over|activate|deactivate|title|section|class|style|linkStyle|classDef|click)\b/i)?`keyword`:e.match(/^[-.=<>|ox]+>/)||e.match(/^<[-.=<>|ox]+/)||e.match(/^--+|\.\.+|==+/)?`operator`:e.match(/^[[\](){}|<>]/)?`bracket`:e.match(/^[A-Za-z_][A-Za-z0-9_]*/)?`variableName`:e.match(/^\d+(\.\d+)?/)?`number`:e.match(/^[,:;]/)?`punctuation`:(e.eatSpace()||e.next(),null)}});function S(){return x}var C=s.theme({"&":{backgroundColor:`#1e1e1e`,color:`#d4d4d4`},".cm-content":{caretColor:`#fff`},".cm-cursor":{borderLeftColor:`#fff`},".cm-gutters":{backgroundColor:`#1e1e1e`,color:`#858585`,border:`none`},".cm-activeLineGutter":{backgroundColor:`#2a2a2a`},".cm-activeLine":{backgroundColor:`#2a2a2a`},".cm-errorLine":{backgroundColor:`rgba(255, 0, 0, 0.15)`}},{dark:!0}),w=p.define([{tag:o.keyword,color:`#569cd6`},{tag:o.string,color:`#ce9178`},{tag:o.comment,color:`#6a9955`},{tag:o.number,color:`#b5cea8`},{tag:o.operator,color:`#d4d4d4`},{tag:o.punctuation,color:`#d4d4d4`},{tag:o.variableName,color:`#9cdcfe`},{tag:o.bracket,color:`#ffd700`}]),T=s.theme({"&":{backgroundColor:`#ffffff`,color:`#1e1e1e`},".cm-content":{caretColor:`#000`},".cm-cursor":{borderLeftColor:`#000`},".cm-gutters":{backgroundColor:`#fff`,color:`#999`,border:`none`},".cm-activeLineGutter":{backgroundColor:`#e8e8e8`},".cm-activeLine":{backgroundColor:`#e8e8e8`},".cm-errorLine":{backgroundColor:`rgba(255, 0, 0, 0.1)`}}),E=p.define([{tag:o.keyword,color:`#0000ff`},{tag:o.string,color:`#a31515`},{tag:o.comment,color:`#008000`},{tag:o.number,color:`#098658`},{tag:o.operator,color:`#1e1e1e`},{tag:o.punctuation,color:`#1e1e1e`},{tag:o.variableName,color:`#001080`},{tag:o.bracket,color:`#af00db`}]),D=m.line({class:`cm-errorLine`}),O=(e,t)=>{if(!e||e<1||e>t.lines)return s.decorations.of(m.none);let n=t.line(e);return s.decorations.of(m.set([D.range(n.from)]))},k=e=>e===`dark`?[C,a(w)]:[T,a(E)],A=({value:e,onChange:t,onKeyboardSubmit:n,placeholder:a,theme:o,errorLine:c})=>{let p=(0,y.useRef)(null),m=(0,y.useRef)(null),x=(0,y.useRef)(t),C=(0,y.useRef)(n),w=(0,y.useRef)(new f),T=(0,y.useRef)(new f);return x.current=t,C.current=n,(0,y.useEffect)(()=>{if(!p.current)return;let t=w.current,n=new s({state:u.create({doc:e,extensions:[r.of([{key:`Mod-Enter`,run:()=>(C.current?.(),!0)},{key:`Mod-Shift-z`,run:_,preventDefault:!0}]),s.updateListener.of(e=>{e.docChanged&&x.current(e.state.doc.toString())}),g(),r.of([...h,...v]),l(),s.lineWrapping,t.of(k(o)),T.current.of([]),S(),i({drawRangeCursor:!0}),...a?[d(a)]:[]]}),parent:p.current});return m.current=n,n.focus(),()=>{n.destroy(),m.current=null}},[]),(0,y.useEffect)(()=>{let e=m.current;e&&e.dispatch({effects:w.current.reconfigure(k(o))})},[o]),(0,y.useEffect)(()=>{let e=m.current;e&&e.dispatch({effects:T.current.reconfigure(O(c,e.state.doc))})},[c]),(0,y.useEffect)(()=>{let t=m.current;if(!t)return;let n=t.state.doc.toString();e!==n&&t.dispatch({changes:{from:0,to:n.length,insert:e}})},[e]),(0,b.jsx)(`div`,{ref:p,className:`ttd-dialog-input ttd-dialog-input--codemirror`})};export{A as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as e,A as t,C as n,D as r,E as i,G as a,H as o,I as s,K as c,M as l,N as u,P as d,R as f,S as p,T as m,U as ee,V as h,X as g,Y as _,ct as v,dt as y,et as te,f as ne,ft as re,h as b,j as ie,k as ae,lt as oe,mt as se,nt as x,pt as ce,q as le,st as S,ut as ue,v as de,w as fe,z as pe}from"./_baseUniq-DR4vVjyC.js";var me=/\s/;function he(e){for(var t=e.length;t--&&me.test(e.charAt(t)););return t}var ge=/^\s+/;function _e(e){return e&&e.slice(0,he(e)+1).replace(ge,``)}var C=NaN,ve=/^[-+]0x[0-9a-f]+$/i,ye=/^0b[01]+$/i,be=/^0o[0-7]+$/i,xe=parseInt;function Se(e){if(typeof e==`number`)return e;if(ue(e))return C;if(S(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=S(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=_e(e);var n=ye.test(e);return n||be.test(e)?xe(e.slice(2),n?2:8):ve.test(e)?C:+e}var w=1/0,Ce=17976931348623157e292;function T(e){return e?(e=Se(e),e===w||e===-w?(e<0?-1:1)*Ce:e===e?e:0):e===0?e:0}function E(e){var t=T(e),n=t%1;return t===t?n?t-n:t:0}var D=Object.create,we=function(){function e(){}return function(t){if(!S(t))return{};if(D)return D(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function O(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}function k(e,t,n){t==`__proto__`&&x?x(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var Te=Object.prototype.hasOwnProperty;function A(e,t,n){var r=e[t];(!(Te.call(e,t)&&_(r,n))||n===void 0&&!(t in e))&&k(e,t,n)}function j(e,t,n,r){var i=!n;n||={};for(var a=-1,o=t.length;++a<o;){var s=t[a],c=r?r(n[s],e[s],s,n,e):void 0;c===void 0&&(c=e[s]),i?k(n,s,c):A(n,s,c)}return n}function M(e,t,n){if(!S(n))return!1;var r=typeof t;return(r==`number`?c(n)&&g(t,n.length):r==`string`&&t in n)?_(n[t],e):!1}function Ee(e){return le(function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(a=e.length>3&&typeof a==`function`?(i--,a):void 0,o&&M(n[0],n[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var s=n[r];s&&e(t,s,r,a)}return t})}function De(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var Oe=Object.prototype.hasOwnProperty;function ke(e){if(!S(e))return De(e);var t=a(e),n=[];for(var r in e)(r!=`constructor`||!t&&Oe.call(e,r))&&n.push(r);return n}function N(e){return c(e)?pe(e,!0):ke(e)}function Ae(e){return e!=null&&e.length?t(e,1):[]}var P=f(Object.getPrototypeOf,Object);function je(e,t){return e&&j(t,s(t),e)}function Me(e,t){return e&&j(t,N(t),e)}var F=typeof exports==`object`&&exports&&!exports.nodeType&&exports,I=F&&typeof module==`object`&&module&&!module.nodeType&&module,L=I&&I.exports===F?se.Buffer:void 0,R=L?L.allocUnsafe:void 0;function z(e,t){if(t)return e.slice();var n=e.length,r=R?R(n):new e.constructor(n);return e.copy(r),r}function Ne(e,t){return j(e,i(e),t)}var B=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)ie(t,i(e)),e=P(e);return t}:r;function Pe(e,t){return j(e,B(e),t)}function V(e){return m(e,N,B)}var Fe=Object.prototype.hasOwnProperty;function Ie(e){var t=e.length,n=new e.constructor(t);return t&&typeof e[0]==`string`&&Fe.call(e,`index`)&&(n.index=e.index,n.input=e.input),n}function H(e){var t=new e.constructor(e.byteLength);return new p(t).set(new p(e)),t}function Le(e,t){var n=t?H(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var Re=/\w*$/;function ze(e){var t=new e.constructor(e.source,Re.exec(e));return t.lastIndex=e.lastIndex,t}var U=ce?ce.prototype:void 0,W=U?U.valueOf:void 0;function Be(e){return W?Object(W.call(e)):{}}function G(e,t){var n=t?H(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var Ve=`[object Boolean]`,He=`[object Date]`,Ue=`[object Map]`,We=`[object Number]`,Ge=`[object RegExp]`,Ke=`[object Set]`,qe=`[object String]`,Je=`[object Symbol]`,Ye=`[object ArrayBuffer]`,Xe=`[object DataView]`,Ze=`[object Float32Array]`,Qe=`[object Float64Array]`,$e=`[object Int8Array]`,et=`[object Int16Array]`,tt=`[object Int32Array]`,nt=`[object Uint8Array]`,rt=`[object Uint8ClampedArray]`,it=`[object Uint16Array]`,at=`[object Uint32Array]`;function ot(e,t,n){var r=e.constructor;switch(t){case Ye:return H(e);case Ve:case He:return new r(+e);case Xe:return Le(e,n);case Ze:case Qe:case $e:case et:case tt:case nt:case rt:case it:case at:return G(e,n);case Ue:return new r;case We:case qe:return new r(e);case Ge:return ze(e);case Ke:return new r;case Je:return Be(e)}}function K(e){return typeof e.constructor==`function`&&!a(e)?we(P(e)):{}}var st=`[object Map]`;function ct(e){return y(e)&&n(e)==st}var q=h&&h.isMap,lt=q?o(q):ct,ut=`[object Set]`;function dt(e){return y(e)&&n(e)==ut}var J=h&&h.isSet,ft=J?o(J):dt,pt=1,mt=2,ht=4,Y=`[object Arguments]`,gt=`[object Array]`,_t=`[object Boolean]`,vt=`[object Date]`,yt=`[object Error]`,X=`[object Function]`,bt=`[object GeneratorFunction]`,xt=`[object Map]`,St=`[object Number]`,Z=`[object Object]`,Ct=`[object RegExp]`,wt=`[object Set]`,Tt=`[object String]`,Et=`[object Symbol]`,Dt=`[object WeakMap]`,Ot=`[object ArrayBuffer]`,kt=`[object DataView]`,At=`[object Float32Array]`,jt=`[object Float64Array]`,Mt=`[object Int8Array]`,Nt=`[object Int16Array]`,Pt=`[object Int32Array]`,Ft=`[object Uint8Array]`,It=`[object Uint8ClampedArray]`,Lt=`[object Uint16Array]`,Rt=`[object Uint32Array]`,Q={};Q[Y]=Q[gt]=Q[Ot]=Q[kt]=Q[_t]=Q[vt]=Q[At]=Q[jt]=Q[Mt]=Q[Nt]=Q[Pt]=Q[xt]=Q[St]=Q[Z]=Q[Ct]=Q[wt]=Q[Tt]=Q[Et]=Q[Ft]=Q[It]=Q[Lt]=Q[Rt]=!0,Q[yt]=Q[X]=Q[Dt]=!1;function $(e,t,r,i,a,o){var c,l=t&pt,u=t&mt,d=t&ht;if(r&&(c=a?r(e,i,a,o):r(e)),c!==void 0)return c;if(!S(e))return e;var f=v(e);if(f){if(c=Ie(e),!l)return O(e,c)}else{var p=n(e),m=p==X||p==bt;if(ee(e))return z(e,l);if(p==Z||p==Y||m&&!a){if(c=u||m?{}:K(e),!l)return u?Pe(e,Me(c,e)):Ne(e,je(c,e))}else{if(!Q[p])return a?e:{};c=ot(e,p,l)}}o||=new ae;var h=o.get(e);if(h)return h;o.set(e,c),ft(e)?e.forEach(function(n){c.add($(n,t,r,n,e,o))}):lt(e)&&e.forEach(function(n,i){c.set(i,$(n,t,r,i,e,o))});var g=f?void 0:(d?u?V:fe:u?N:s)(e);return te(g||e,function(n,i){g&&(i=n,n=e[i]),A(c,i,$(n,t,r,i,e,o))}),c}var zt=Object.prototype,Bt=zt.hasOwnProperty,Vt=le(function(e,t){e=Object(e);var n=-1,r=t.length,i=r>2?t[2]:void 0;for(i&&M(t[0],t[1],i)&&(r=1);++n<r;)for(var a=t[n],o=N(a),s=-1,c=o.length;++s<c;){var l=o[s],u=e[l];(u===void 0||_(u,zt[l])&&!Bt.call(e,l))&&(e[l]=a[l])}return e});function Ht(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}function Ut(e){return function(t,n,r){var i=Object(t);if(!c(t)){var a=b(n,3);t=s(t),n=function(e){return a(i[e],e,i)}}var o=e(t,n,r);return o>-1?i[a?t[o]:o]:void 0}}var Wt=Math.max;function Gt(t,n,r){var i=t==null?0:t.length;if(!i)return-1;var a=r==null?0:E(r);return a<0&&(a=Wt(i+a,0)),e(t,b(n,3),a)}var Kt=Ut(Gt);function qt(e,t){var n=-1,r=c(e)?Array(e.length):[];return ne(e,function(e,i,a){r[++n]=t(e,i,a)}),r}function Jt(e,t){return(v(e)?oe:qt)(e,b(t,3))}var Yt=Object.prototype.hasOwnProperty;function Xt(e,t){return e!=null&&Yt.call(e,t)}function Zt(e,t){return e!=null&&de(e,t,Xt)}var Qt=`[object String]`;function $t(e){return typeof e==`string`||!v(e)&&y(e)&&re(e)==Qt}function en(e,t,n,r){if(!S(e))return e;t=d(t,e);for(var i=-1,a=t.length,o=a-1,s=e;s!=null&&++i<a;){var c=u(t[i]),l=n;if(c===`__proto__`||c===`constructor`||c===`prototype`)return e;if(i!=o){var f=s[c];l=r?r(f,c,s):void 0,l===void 0&&(l=S(f)?f:g(t[i+1])?[]:{})}A(s,c,l),s=s[c]}return e}function tn(e,t,n){for(var r=-1,i=t.length,a={};++r<i;){var o=t[r],s=l(e,o);n(s,o)&&en(a,d(o,e),s)}return a}export{E as C,O as S,Ee as _,qt as a,A as b,Vt as c,G as d,V as f,N as g,Ae as h,Jt as i,$ as l,P as m,$t as n,Kt as o,z as p,Zt as r,Ht as s,tn as t,K as u,M as v,T as w,k as x,j as y};
|