collabmd 0.1.39 → 0.1.41
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 +75 -1
- package/dist/client/assets/{CodeMirrorEditor-UCMRAMCV-75Zi8U_A.js → CodeMirrorEditor-UCMRAMCV-DHEFSr_E.js} +1 -1
- package/dist/client/assets/{ar-SA-NXDWD63E-CTf_wpt3.js → ar-SA-NXDWD63E-S8m2UyIj.js} +1 -1
- package/dist/client/assets/{arc-DD8jaAGl.js → arc-OeTCl9Oy.js} +1 -1
- package/dist/client/assets/architecture-7EHR7CIX-BQpCYB3J.js +1 -0
- package/dist/client/assets/{architectureDiagram-Q4EWVU46-BftXiJA8.js → architectureDiagram-3BPJPVTR-CDqq0KA0.js} +3 -3
- package/dist/client/assets/{az-AZ-MXSORGZV-C_C9i9u3.js → az-AZ-MXSORGZV-DSzWvZBB.js} +1 -1
- package/dist/client/assets/bases-preview-controller-CBHDzzot.js +143 -0
- package/dist/client/assets/{bg-BG-O6MV2KSF-YmfvQf63.js → bg-BG-O6MV2KSF-C5nBekx3.js} +1 -1
- package/dist/client/assets/blockDiagram-GPEHLZMM-Z9jBLpGg.js +132 -0
- package/dist/client/assets/{bn-IN-MMW2ORAC-BTEFR4Ed.js → bn-BD-T2VJNT7N-D-8xXOzM.js} +1 -1
- package/dist/client/assets/{bn-BD-T2VJNT7N-BD0ob0JE.js → bn-IN-MMW2ORAC-D-8xXOzM.js} +1 -1
- package/dist/client/assets/button-2ZnWQkWV.js +1 -0
- package/dist/client/assets/{c4Diagram-AHTNJAMY-Gz7ZAK0d.js → c4Diagram-AAUBKEIU-UA_Eopag.js} +2 -2
- package/dist/client/assets/{ca-ES-MKBCGNOG-aLX_cjA0.js → ca-ES-MKBCGNOG-B3Ly68p3.js} +1 -1
- package/dist/client/assets/channel-CpvwJaGK.js +1 -0
- package/dist/client/assets/{chunk-EDXVE4YY-M4QxyGNt.js → chunk-2J33WTMH-DjYq2kZ3.js} +1 -1
- package/dist/client/assets/chunk-3OPIFGDE-DucrRywM.js +62 -0
- package/dist/client/assets/{chunk-4BX2VUAB-D5YiFdu1.js → chunk-4BX2VUAB-DcdHBPEH.js} +1 -1
- package/dist/client/assets/chunk-4EGX6M5U-BfCFom1o.js +1 -0
- package/dist/client/assets/{chunk-55IACEB6-VHgZjidg.js → chunk-55IACEB6-B7ycySPI.js} +1 -1
- package/dist/client/assets/chunk-5DO6E6H7-DP8QnaJj.js +1 -0
- package/dist/client/assets/chunk-5ZQYHXKU-C4q4UVKa.js +2 -0
- package/dist/client/assets/chunk-727SXJPM-DdWH2cfs.js +206 -0
- package/dist/client/assets/chunk-AQP2D5EJ-D8o8QwFY.js +231 -0
- package/dist/client/assets/{chunk-LIHQZDEY-DtYrHuCi.js → chunk-BR22UD5L-CT6fcRkN.js} +1 -1
- package/dist/client/assets/{chunk-BSJP7CBP-D2KkrA_B.js → chunk-BSJP7CBP-COmh28sk.js} +1 -1
- package/dist/client/assets/chunk-CSCIHK7Q-D0bHjxCO.js +123 -0
- package/dist/client/assets/chunk-FHYWG6QK-Ce318laP.js +1 -0
- package/dist/client/assets/{chunk-FMBD7UC4-qQT7MtX2.js → chunk-FMBD7UC4-CM39cCCr.js} +1 -1
- package/dist/client/assets/chunk-KSCS5N6A-Bk33m7yK.js +10 -0
- package/dist/client/assets/{chunk-ZZ45TVLE-DGIhE_ST.js → chunk-L5ZTLDWV-J2sQu4Os.js} +1 -1
- package/dist/client/assets/chunk-LZXEDZCA-CTmBbzaL.js +2 -0
- package/dist/client/assets/chunk-MMN3DZ5N-pTRxhVYl.js +35 -0
- package/dist/client/assets/chunk-MPE355IW-C_vkbqLj.js +1 -0
- package/dist/client/assets/chunk-MZUSXYTE-BnVcgphH.js +1 -0
- package/dist/client/assets/chunk-N66VUXT2-B6CG-CnY.js +1 -0
- package/dist/client/assets/{chunk-YZCP3GAM-D1jf1WUI.js → chunk-ND2GUHAM-D-_vkA5V.js} +1 -1
- package/dist/client/assets/chunk-NNHCCRGN-DlpIbxXb.js +159 -0
- package/dist/client/assets/{chunk-X2U36JSP-D3OEPG7k.js → chunk-NZK2D7GU-Dc42C0Jt.js} +1 -1
- package/dist/client/assets/{chunk-U2HBQHQK-BBXgsocS.js → chunk-O5CBEL6O-DdEDfb8z.js} +4 -4
- package/dist/client/assets/chunk-PUPMXCY4-BZ88kQjK.js +1 -0
- package/dist/client/assets/chunk-QZHKN3VN-D5YLQvjj.js +1 -0
- package/dist/client/assets/{chunk-SRAX5OIU-yDw8XRsi.js → chunk-SRAX5OIU-CiRgnkYo.js} +1 -1
- package/dist/client/assets/chunk-UIBZB4QT-r8p3pBHw.js +1 -0
- package/dist/client/assets/chunk-WCWK7LTN-DrKYkgXF.js +1 -0
- package/dist/client/assets/chunk-WU5MYG2G-Cg2iUbET.js +1 -0
- package/dist/client/assets/{chunk-XPW4576I-BUfyrOtN.js → chunk-XPW4576I-BZyvtu42.js} +1 -1
- package/dist/client/assets/{chunk-Z5NKEFVG-Vu8zBV4H.js → chunk-Z5NKEFVG-Dknufskm.js} +7 -7
- package/dist/client/assets/chunk-aKtaBQYM.js +1 -0
- package/dist/client/assets/classDiagram-4FO5ZUOK-CGWY0cfg.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CGWY0cfg.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-A8ssRFyt.js → cose-bilkent-S5V4N54A-BuQb9WEM.js} +1 -1
- package/dist/client/assets/{cs-CZ-V77HGUP7-Du3y53BB.js → cs-CZ-V77HGUP7-6BCNHMpz.js} +1 -1
- package/dist/client/assets/{cytoscape.esm-BurByw8X.js → cytoscape.esm-DelgaX4f.js} +2 -2
- package/dist/client/assets/{da-DK-I5RFNTM4-CDJtjf5s.js → da-DK-I5RFNTM4-CVeCWpi2.js} +1 -1
- package/dist/client/assets/dagre-BM42HDAG-ux5hA7G6.js +4 -0
- package/dist/client/assets/dagre-Bx709z4p.js +1 -0
- package/dist/client/assets/{de-CH-WLRDEVBV-CLV2tVw6.js → de-CH-WLRDEVBV-CV-FNCkY.js} +1 -1
- package/dist/client/assets/{de-DE-DTI4WUSC-B53J0BQ8.js → de-DE-DTI4WUSC-CV-FNCkY.js} +1 -1
- package/dist/client/assets/diagram-2AECGRRQ-Cx-EPj3F.js +43 -0
- package/dist/client/assets/{diagram-5BDNPKRD-BuK-UBuN.js → diagram-5GNKFQAL-B6qUTxVg.js} +2 -2
- package/dist/client/assets/diagram-KO2AKTUF-BedClayW.js +3 -0
- package/dist/client/assets/{diagram-TYMM5635-CT8BdT4s.js → diagram-LMA3HP47-DCwyG0i5.js} +1 -1
- package/dist/client/assets/diagram-OG6HWLK6-BZD0jSxR.js +24 -0
- package/dist/client/assets/diagram-action-icons-aa_KOv9h.js +36 -0
- package/dist/client/assets/{dist-BXiFOexW.js → dist-B-m0-H59.js} +1 -1
- package/dist/client/assets/dist-B6Q0y0J8.js +1 -0
- package/dist/client/assets/dist-BCQCG0we.js +1 -0
- package/dist/client/assets/{dist-Bz-8_JmE.js → dist-BEyxdnUD.js} +1 -1
- package/dist/client/assets/{dist-eAgBpkKv.js → dist-BYneHrvV.js} +1 -1
- package/dist/client/assets/dist-BsPHL5xw2.js +1 -0
- package/dist/client/assets/{dist-CRyP6okk.js → dist-CX-kKEdL.js} +1 -1
- package/dist/client/assets/{dist-Bp_j2hKC.js → dist-CaLooK5r.js} +1 -1
- package/dist/client/assets/{dist-CQZDuOJ9.js → dist-Cd4FT8TV.js} +1 -1
- package/dist/client/assets/{dist-CIt_ogHO.js → dist-ClWZ99Dh.js} +1 -1
- package/dist/client/assets/{dist-D8d0IGSI.js → dist-D01mg-Uh.js} +1 -1
- package/dist/client/assets/{dist-fpFkgu34.js → dist-D36UTodj.js} +1 -1
- package/dist/client/assets/{dist-bkoMCmF7.js → dist-D6YOhZ_d.js} +1 -1
- package/dist/client/assets/{dist-CH3l6nVf.js → dist-D8jTFU06.js} +1 -1
- package/dist/client/assets/dist-DGI-0uwF.js +1 -0
- package/dist/client/assets/{dist-Das5WX49.js → dist-DGO-wCq8.js} +1 -1
- package/dist/client/assets/dist-DMKYvLqD.js +1 -0
- package/dist/client/assets/{dist-8EAyH6_p.js → dist-DRQhk99i.js} +1 -1
- package/dist/client/assets/{dist-uyVGTnZh.js → dist-DScq22KK.js} +1 -1
- package/dist/client/assets/{dist-wkd-N1L5.js → dist-DbpddOpB.js} +1 -1
- package/dist/client/assets/{dist-1SMeCZhf.js → dist-Dl5uZm2T.js} +1 -1
- package/dist/client/assets/{dist-_THc9HiJ.js → dist-DvpEZjAN.js} +1 -1
- package/dist/client/assets/dist-Dw8hKOQm.js +1 -0
- package/dist/client/assets/{dist-NcJIpTJ8.js → dist-G7j-noyR.js} +1 -1
- package/dist/client/assets/dist-PItC1DRE.js +1 -0
- package/dist/client/assets/{dist-QktK6LIH.js → dist-cMoydUa-.js} +1 -1
- package/dist/client/assets/dist-cTuGB1EW.js +9 -0
- package/dist/client/assets/{dist-yy8SO13g.js → dist-efgaKpVU.js} +1 -1
- package/dist/client/assets/{dist-B7XQNod9.js → dist-nx-MGJIM.js} +1 -1
- package/dist/client/assets/{dist-DplP0BiK.js → dist-pww3cL4Q.js} +7 -7
- package/dist/client/assets/dist-uhQ-mkuh.js +2 -0
- package/dist/client/assets/{dockerfile-D8_6_FRV.js → dockerfile-BLkNEvjs.js} +1 -1
- package/dist/client/assets/drawio-editor-BM_W6Lkj.js +9 -0
- package/dist/client/assets/drawio-embed-controller-BKHnRnaj.js +1 -0
- package/dist/client/assets/drawioEditor-DBfHYCO5.js +2 -0
- package/dist/client/assets/editor-session-VueuoR_r.js +16 -0
- package/dist/client/assets/{el-GR-ZXDJ2OS4-DFmRQv0o.js → el-GR-ZXDJ2OS4-DzgGVibO.js} +1 -1
- package/dist/client/assets/{en-CMP6EMR6-D9x8hVSu.js → en-CMP6EMR6-l-4iz8RC.js} +1 -1
- package/dist/client/assets/{erDiagram-SMLLAGMA-6VFZA3Qb.js → erDiagram-TEJ5UH35-7XmGIzui.js} +2 -2
- package/dist/client/assets/{es-ES-DYQHAD43-BiGWIrBG.js → es-ES-DYQHAD43-DP98e8ox.js} +1 -1
- package/dist/client/assets/{eu-ES-QDSYU5Y3-BjwS0kZi.js → eu-ES-QDSYU5Y3-DrEfH-2N.js} +1 -1
- package/dist/client/assets/eventmodeling-FCH6USID-D-VxYsbw.js +1 -0
- package/dist/client/assets/excalidraw-editor-B3ffLqi6.css +1 -0
- package/dist/client/assets/excalidraw-editor-C6fTkMBx.js +9 -0
- package/dist/client/assets/excalidraw-embed-controller-BKx05cjZ.js +1 -0
- package/dist/client/assets/excalidraw-embed-reconciler-DGiagExg.js +1 -0
- package/dist/client/assets/{excalidraw-mermaid-stub-Df0Q2qkW.js → excalidraw-mermaid-stub-DE5FTiZB.js} +1 -1
- package/dist/client/assets/excalidraw-scene-DjODomMW.js +176 -0
- package/dist/client/assets/excalidrawEditor-DQD_lLF4.js +2 -0
- package/dist/client/assets/{export-page-Bnk-YQp-.js → export-page-D0iHYSPi.js} +4 -4
- package/dist/client/assets/exportDocument-Ct-Zvf7_.js +2 -0
- package/dist/client/assets/{fa-IR-26LZG4PM-BgANg2TD.js → fa-IR-26LZG4PM-CEwnMxEY.js} +1 -1
- package/dist/client/assets/{factor-Cz-hzBGH.js → factor-D7LVTn2l.js} +1 -1
- package/dist/client/assets/{fi-FI-6YS4KDE4-CBL5f3oN.js → fi-FI-6YS4KDE4-DPKGe_vC.js} +1 -1
- package/dist/client/assets/file-history-view-controller-CK3oHDCT.js +112 -0
- package/dist/client/assets/{flowDiagram-DWJPFMVM-DO9RH8YQ.js → flowDiagram-I6XJVG4X-DgTAG2K2.js} +6 -6
- package/dist/client/assets/{fr-FR-BRLLPTZC-CRibNSLG.js → fr-FR-BRLLPTZC-CgMmN9yd.js} +1 -1
- package/dist/client/assets/ganttDiagram-6RSMTGT7-Curra433.js +292 -0
- package/dist/client/assets/git-diff-view-controller-qorJ_Quo.js +150 -0
- package/dist/client/assets/git-panel-controller-DG8ws6B_.js +203 -0
- package/dist/client/assets/gitGraph-WXDBUCRP-CRS5XD98.js +1 -0
- package/dist/client/assets/gitGraphDiagram-PVQCEYII-DVf7-iH0.js +106 -0
- package/dist/client/assets/{gl-ES-OKUZTLYG-DEDwa_xt.js → gl-ES-OKUZTLYG-qCIGpEXP.js} +1 -1
- package/dist/client/assets/graphlib-B8gBHxth.js +1 -0
- package/dist/client/assets/{haxe-CcPA1xnA.js → haxe-DjVOVvNP.js} +1 -1
- package/dist/client/assets/{he-IL-26MGYIU7-47wxy70N.js → he-IL-26MGYIU7-_Pd-m9Sj.js} +1 -1
- package/dist/client/assets/{hi-IN-Q4ZOGTP2-bhV7c3dK.js → hi-IN-Q4ZOGTP2-B4kd5rva.js} +1 -1
- package/dist/client/assets/{hu-HU-P2OXPSN5-xG-gBMzE.js → hu-HU-P2OXPSN5-DL2sEPhQ.js} +1 -1
- package/dist/client/assets/{id-ID-2EIKXYN6-MQuYaNHo.js → id-ID-2EIKXYN6-DqXHubyc.js} +1 -1
- package/dist/client/assets/image-MLCQRF34-BT938jMR.js +1 -0
- package/dist/client/assets/index-AdGl0Mjr.js +2 -0
- package/dist/client/assets/index-V7z92VYK.css +1 -0
- package/dist/client/assets/info-J43DQDTF-CdrjkAmK.js +1 -0
- package/dist/client/assets/{infoDiagram-42DDH7IO-C77Pt7T1.js → infoDiagram-5YYISTIA-DT8NjvZp.js} +1 -1
- package/dist/client/assets/input-CXk9Zxz9.js +1 -0
- package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-Cy1fwvvg.js → ishikawaDiagram-YF4QCWOH-axeWdm72.js} +2 -2
- package/dist/client/assets/{it-IT-4CFKVXI2-v2kj-y7j.js → it-IT-4CFKVXI2-CyToZF8R.js} +1 -1
- package/dist/client/assets/{ja-JP-MAND2Z4V-BahXSQz-.js → ja-JP-MAND2Z4V-CdMMUzyq.js} +1 -1
- package/dist/client/assets/{javascript-gTK9fxz6.js → javascript-B9TABJff.js} +1 -1
- package/dist/client/assets/javascript-BRzqD9BA.js +1 -0
- package/dist/client/assets/{journeyDiagram-VCZTEJTY-CYWaI6re.js → journeyDiagram-JHISSGLW-_K7qmGID.js} +3 -3
- package/dist/client/assets/{jsx-runtime-1KUJVfx8.js → jsx-runtime-DqMcooe2.js} +1 -1
- package/dist/client/assets/{kaa-HQRTCXTJ-BF26ydFa.js → kaa-HQRTCXTJ-D6kVHP9w.js} +1 -1
- package/dist/client/assets/{kab-KAB-JKIKKTGH-CEIH0F80.js → kab-KAB-JKIKKTGH-XYCYTUmV.js} +1 -1
- package/dist/client/assets/{kanban-definition-6JOO6SKY-DY1xE7tm.js → kanban-definition-UN3LZRKU-DaPREf-3.js} +6 -6
- package/dist/client/assets/keyboard-shortcuts-Ctp9_GHy.js +1 -0
- package/dist/client/assets/{kk-KZ-HXQ63ZFC-CxWjc9Sf.js → kk-KZ-HXQ63ZFC-Du2sGLmI.js} +1 -1
- package/dist/client/assets/{km-KH-PKL3LSGX-DJlCteEp.js → km-KH-PKL3LSGX-B2OnEat4.js} +1 -1
- package/dist/client/assets/{ko-KR-KXLREZX3-B1gtI_ci.js → ko-KR-KXLREZX3-CcxALsEE.js} +1 -1
- package/dist/client/assets/{ku-TR-MJ4IER3X-Bf41y2v2.js → ku-TR-MJ4IER3X-HDyr9f4z.js} +1 -1
- package/dist/client/assets/line-CbpIuf9e.js +1 -0
- package/dist/client/assets/{linear-dsIQT_iU.js → linear-BGe2G4b5.js} +1 -1
- package/dist/client/assets/{lt-LT-H6WFQ6FJ-DA1or-Eo.js → lt-LT-H6WFQ6FJ-BzZe8pg9.js} +1 -1
- package/dist/client/assets/{lv-LV-GOCK6SJW-qa0BoYMm.js → lv-LV-GOCK6SJW-CMspwH0q.js} +1 -1
- package/dist/client/assets/main-C8f6FlSO.js +789 -0
- package/dist/client/assets/mermaid-parser.core-C4gZtCl9.js +4 -0
- package/dist/client/assets/mermaid-runtime-CX_vmg3J.js +9 -0
- package/dist/client/assets/{mindmap-definition-QFDTVHPH-DB_M5r-j.js → mindmap-definition-RKZ34NQL-DB1uitpo.js} +23 -23
- package/dist/client/assets/{mr-IN-IXVLDMEQ-DXFRgvgb.js → mr-IN-IXVLDMEQ-C6mqoMmX.js} +1 -1
- package/dist/client/assets/{my-MM-YG6MYTTD-BKDIfalJ.js → my-MM-YG6MYTTD-Q33bVx2B.js} +1 -1
- package/dist/client/assets/navigation-D173qvIt.css +1 -0
- package/dist/client/assets/{nb-NO-XGWJISD2-DbwbopH8.js → nb-NO-XGWJISD2-B1jdnBFb.js} +1 -1
- package/dist/client/assets/{nl-NL-XVDVCPNC-ChSneTSU.js → nl-NL-XVDVCPNC-DoQkA2lu.js} +1 -1
- package/dist/client/assets/{nn-NO-EMX5MJX5-Cf7ZWKWZ.js → nn-NO-EMX5MJX5-Db3tHf5b.js} +1 -1
- package/dist/client/assets/{nsis-QPGhLAeY.js → nsis-AQ_alPln.js} +1 -1
- package/dist/client/assets/{oc-FR-ROEINTVO-lM7Nl7hD.js → oc-FR-ROEINTVO-DLu-4Ze0.js} +1 -1
- package/dist/client/assets/{ordinal-Dz3y_j0K.js → ordinal-hYBb2elL.js} +1 -1
- package/dist/client/assets/{pa-IN-ZYN6SUDY-C9WNUTeR.js → pa-IN-ZYN6SUDY-XvJuMxJR.js} +1 -1
- package/dist/client/assets/packet-YPE3B663-r4oAflYS.js +1 -0
- package/dist/client/assets/percentages-5DKR754L-D_KAYeu8.js +1 -0
- package/dist/client/assets/{pica-CgGaIJly.js → pica-DjQMjoX_.js} +1 -1
- package/dist/client/assets/pie-LRSECV5Y-DkaVktH1.js +1 -0
- package/dist/client/assets/pieDiagram-4H26LBE5-CdDwk3iQ.js +30 -0
- package/dist/client/assets/{pl-PL-6VTG7PHC-DqRVepnC.js → pl-PL-6VTG7PHC-DjJq8QfA.js} +1 -1
- package/dist/client/assets/preview-diagram-utils-DnqteI9Q.js +1 -0
- package/dist/client/assets/preview-render-compiler-Dts88fM3.js +35 -0
- package/dist/client/assets/preview-render-compiler-VKNqrOZN.js +1 -0
- package/dist/client/assets/preview-render-profile-CU6rvKx3.js +23 -0
- package/dist/client/assets/preview-render-worker-CFKBP7xz.js +59 -0
- package/dist/client/assets/{pt-BR-5YFKRR5G-CopLYEA6.js → pt-BR-5YFKRR5G-Dg2lIz1V.js} +1 -1
- package/dist/client/assets/{pt-PT-GEIXXZ67-BjZ_Lphg.js → pt-PT-GEIXXZ67-COIg15TS.js} +1 -1
- package/dist/client/assets/{pug-lkTEco3G.js → pug-Ck0YjsGM.js} +1 -1
- package/dist/client/assets/quadrantDiagram-W4KKPZXB-C6n3eYzo.js +7 -0
- package/dist/client/assets/quick-switcher-controller-CVRUPEKp.js +12 -0
- package/dist/client/assets/radar-GUYGQ44K-Bjhhjq-k.js +1 -0
- package/dist/client/assets/{requirementDiagram-MS252O5E-CtUIQnWa.js → requirementDiagram-4Y6WPE33-B-sVI-jx.js} +4 -4
- package/dist/client/assets/{ro-RO-E2P6TFZI-DakDz5Xu.js → ro-RO-E2P6TFZI-CdCIa8N3.js} +1 -1
- package/dist/client/assets/{room-z2w9b96b.js → room-CpCcgtG8.js} +1 -1
- package/dist/client/assets/{ru-RU-YBIIY43T-BMvCT-XT.js → ru-RU-YBIIY43T-C5TT1jTX.js} +1 -1
- package/dist/client/assets/runtime-config-CDgeuPWN.js +1 -0
- package/dist/client/assets/runtime-paths-DvpihCEq.js +1 -0
- package/dist/client/assets/{sankeyDiagram-XADWPNL6-tcSeuifE.js → sankeyDiagram-5OEKKPKP-EY2cdbUV.js} +36 -6
- package/dist/client/assets/segmented-control-DhUkW6ro.js +1 -0
- package/dist/client/assets/sequenceDiagram-3UESZ5HK-D6h6knAb.js +162 -0
- package/dist/client/assets/{si-LK-673C2CI2-hGdH1S9E.js → si-LK-673C2CI2-f_5ZzunQ.js} +1 -1
- package/dist/client/assets/{sk-SK-CKZHQ4AP-DiRA-fj8.js → sk-SK-CKZHQ4AP-4jimlXp1.js} +1 -1
- package/dist/client/assets/{sl-SI-557H2GWM-DN94n_1-.js → sl-SI-557H2GWM-BnZ04ZfX.js} +1 -1
- package/dist/client/assets/{src-BuiVcSz-.js → src-DSz_pbBa.js} +1 -1
- package/dist/client/assets/stateDiagram-AJRCARHV-Ca8ZuIR2.js +1 -0
- package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DGRDwQhE.js +1 -0
- package/dist/client/assets/subset-shared.chunk-DcaFK0zo.js +1 -0
- package/dist/client/assets/{subset-worker.chunk-kj1e3wjW.js → subset-worker.chunk-CVu8sQYq.js} +1 -1
- package/dist/client/assets/{sv-SE-XOPKKDWS-CkHUNABj.js → sv-SE-XOPKKDWS-B2uKmd06.js} +1 -1
- package/dist/client/assets/{ta-IN-XBH7DQI3-W-157oVK.js → ta-IN-XBH7DQI3-Bld4KtCz.js} +1 -1
- package/dist/client/assets/{th-TH-TOCWH3R4-BsU-Pydr.js → th-TH-TOCWH3R4-DUlvnJTX.js} +1 -1
- package/dist/client/assets/{timeline-definition-GMOUNBTQ-Bs6U53Mo.js → timeline-definition-PNZ67QCA-BAhvj49M.js} +5 -5
- package/dist/client/assets/{tr-TR-GXW6CYY5-CTddyq89.js → tr-TR-GXW6CYY5-BXTTqJlZ.js} +1 -1
- package/dist/client/assets/treeView-BLDUP644-DbX5QpdZ.js +1 -0
- package/dist/client/assets/treemap-LRROVOQU-DT4YRX1p.js +1 -0
- package/dist/client/assets/turtle-Cx3rYX2g.js +1 -0
- package/dist/client/assets/{uk-UA-IJKTNUDG-1LzXkII3.js → uk-UA-IJKTNUDG-DbQpa2ug.js} +1 -1
- package/dist/client/assets/{uz-UZ-TBZZEA4V-kqm-qcUj.js → uz-UZ-TBZZEA4V-Dt35hEMk.js} +1 -1
- package/dist/client/assets/vault-api-client-BPVNCJZC.js +1 -0
- package/dist/client/assets/vault-api-client-VAfZ8okg.js +1 -0
- package/dist/client/assets/{vault-utils-CRpy8MQz.js → vault-utils-kIbqyWPm.js} +1 -1
- package/dist/client/assets/vennDiagram-CIIHVFJN-GGrxyoPK.js +34 -0
- package/dist/client/assets/{vi-VN-MULSGNVB-C3H2AUhm.js → vi-VN-MULSGNVB-BgxNIE1N.js} +1 -1
- package/dist/client/assets/wardley-L42UT6IY-Ba5lVG9E.js +1 -0
- package/dist/client/assets/{wardleyDiagram-NUSXRM2D-C-scJfPY.js → wardleyDiagram-YWT4CUSO-BgYuJM9o.js} +61 -3
- package/dist/client/assets/{xychartDiagram-5P7HB3ND-D3nQoxhz.js → xychartDiagram-2RQKCTM6-DKA6F9sv.js} +3 -3
- package/dist/client/assets/{yjs-provider-reset-guard-DSPzcvAO.js → yjs-provider-reset-guard-BicD2Ate.js} +1 -1
- package/dist/client/assets/{zh-CN-MVX3E32U-BULPbsyl.js → zh-CN-MVX3E32U-W0nclq-N.js} +1 -1
- package/dist/client/assets/{zh-HK-JNU5RLIE-bNGmeSaW.js → zh-HK-JNU5RLIE-C2VRLD9Z.js} +1 -1
- package/dist/client/assets/{zh-TW-LENVCA6T-CQDp064P.js → zh-TW-LENVCA6T-Ci7udZjZ.js} +1 -1
- package/dist/client/drawio-editor.html +3 -3
- package/dist/client/excalidraw-editor.html +3 -3
- package/dist/client/export-document.html +4 -4
- package/dist/client/index.html +5 -5
- package/package.json +21 -21
- package/src/client/application/app-shell/comments-feature.js +108 -0
- package/src/client/application/app-shell/git-feature.js +6 -1
- package/src/client/application/app-shell/ui-feature-shell.js +7 -4
- package/src/client/application/app-shell/ui-feature-sidebar.js +11 -2
- package/src/client/application/app-shell-elements.js +2 -0
- package/src/client/application/diagram-chrome.js +708 -0
- package/src/client/application/mermaid-preview-hydrator.js +44 -524
- package/src/client/application/plantuml-preview-hydrator.js +22 -518
- package/src/client/application/preview-renderer.js +21 -5
- package/src/client/application/quick-switcher-loader.js +14 -0
- package/src/client/application/workspace-route-controller.js +25 -1
- package/src/client/bootstrap/app-shell-feature-surface.js +67 -0
- package/src/client/bootstrap/collabmd-app-shell.js +111 -356
- package/src/client/bootstrap/lazy-controller-feature.js +434 -0
- package/src/client/domain/drawio-frame-load.js +28 -0
- package/src/client/domain/hash-routes.js +16 -1
- package/src/client/domain/runtime-paths.js +7 -0
- package/src/client/drawio-editor.js +23 -10
- package/src/client/excalidraw-editor.js +66 -13
- package/src/client/infrastructure/editor-session.js +4 -0
- package/src/client/infrastructure/editor-view-adapter.js +30 -0
- package/src/client/infrastructure/runtime-config.js +17 -2
- package/src/client/infrastructure/vault-api-client.js +16 -0
- package/src/client/presentation/app-shell-template.js +29 -12
- package/src/client/presentation/bases-preview-controller.js +33 -16
- package/src/client/presentation/comment-overview-controller.js +238 -0
- package/src/client/presentation/comment-ui/comment-ui-state.js +23 -0
- package/src/client/presentation/drawio-embed-controller.js +230 -64
- package/src/client/presentation/excalidraw-embed-controller.js +51 -60
- package/src/client/presentation/file-explorer-controller.js +9 -0
- package/src/client/presentation/file-explorer-view.js +11 -1
- package/src/client/presentation/quick-switcher-controller.js +217 -21
- package/src/client/presentation/quick-switcher-text-search.js +125 -0
- package/src/client/styles/components/navigation.css +43 -8
- package/src/client/styles/components/scrollbars.css +5 -0
- package/src/client/styles/features/comment-overview.css +196 -0
- package/src/client/styles/features/comments.css +1 -0
- package/src/client/styles/features/diagram-preview.css +43 -23
- package/src/client/styles/features/quick-switcher.css +153 -15
- package/src/client/styles/layout/responsive.css +3 -2
- package/src/client/styles/layout/shell.css +6 -3
- package/src/client/styles/surfaces/excalidraw-editor.css +4 -0
- package/src/server/application/workspace-reconciliation.js +446 -0
- package/src/server/config/env.js +74 -0
- package/src/server/create-app-server.js +68 -38
- package/src/server/domain/bases/base-expression-runtime.js +183 -147
- package/src/server/domain/bases/base-index-snapshot-store.js +53 -2
- package/src/server/domain/bases/base-query-service.js +55 -38
- package/src/server/domain/collaboration/collaboration-document-store.js +6 -2
- package/src/server/domain/collaboration/collaboration-room.js +66 -2
- package/src/server/domain/comment-overview.js +108 -0
- package/src/server/domain/hosted-workspace-contract.js +18 -0
- package/src/server/domain/hosted-workspace.js +744 -0
- package/src/server/domain/ripgrep-search-service.js +365 -0
- package/src/server/domain/workspace-state.js +848 -2
- package/src/server/infrastructure/github/github-app-client.js +205 -0
- package/src/server/infrastructure/github/github-setup-flow.js +86 -0
- package/src/server/infrastructure/http/create-git-api-command-handler.js +1 -1
- package/src/server/infrastructure/http/create-hosted-api-handler.js +200 -0
- package/src/server/infrastructure/http/create-request-handler.js +23 -1
- package/src/server/infrastructure/http/create-static-handler.js +14 -1
- package/src/server/infrastructure/http/create-vault-api-command-handler.js +44 -119
- package/src/server/infrastructure/http/create-vault-api-handler.js +2 -0
- package/src/server/infrastructure/http/create-vault-api-query-handler.js +56 -35
- package/src/server/infrastructure/http/request-body.js +12 -2
- package/src/server/infrastructure/persistence/hosted-metadata-store.js +500 -0
- package/src/server/infrastructure/persistence/sidecar-store.js +53 -2
- package/src/server/infrastructure/persistence/vault-content-adapter.js +8 -8
- package/src/server/infrastructure/persistence/vault-file-store.js +64 -135
- package/src/server/infrastructure/websocket/attach-collaboration-gateway.js +49 -5
- package/src/server/infrastructure/workspace/file-system-sync-service.js +28 -411
- package/src/server/infrastructure/workspace/workspace-mutation-coordinator.js +13 -621
- package/src/server/infrastructure/workspace/workspace-state-file-system-adapter.js +37 -0
- package/dist/client/assets/_baseFor-BSErPbF2.js +0 -1
- package/dist/client/assets/architecture-YZFGNWBL-DWWrde02.js +0 -1
- package/dist/client/assets/blockDiagram-DXYQGD6D-6UN-nR8-.js +0 -132
- package/dist/client/assets/channel-XGCkuPi6.js +0 -1
- package/dist/client/assets/chunk-2KRD3SAO-CFcF2aNP.js +0 -1
- package/dist/client/assets/chunk-336JU56O-DvrrHsJT.js +0 -2
- package/dist/client/assets/chunk-426QAEUC-CEbmCgux.js +0 -1
- package/dist/client/assets/chunk-4TB4RGXK-CoouNThi.js +0 -206
- package/dist/client/assets/chunk-5FUZZQ4R-CxIIxXPy.js +0 -62
- package/dist/client/assets/chunk-5PVQY5BW-ciE7eHID.js +0 -2
- package/dist/client/assets/chunk-67CJDMHE-CW-fbgQB.js +0 -1
- package/dist/client/assets/chunk-7N4EOEYR-DbAW6XnF.js +0 -1
- package/dist/client/assets/chunk-AA7GKIK3-ClDHDAza.js +0 -1
- package/dist/client/assets/chunk-CIAEETIT-BnB8a6HR.js +0 -1
- package/dist/client/assets/chunk-ENJZ2VHE-BQj_1YA_.js +0 -10
- package/dist/client/assets/chunk-FOC6F5B3-Bw6XfKDP.js +0 -1
- package/dist/client/assets/chunk-ICPOFSXX-DqJi89rc.js +0 -122
- package/dist/client/assets/chunk-K5T4RW27-CQtjKF2g.js +0 -94
- package/dist/client/assets/chunk-KGLVRYIC-BWSPiKjp.js +0 -1
- package/dist/client/assets/chunk-ORNJ4GCN-Csga44e5.js +0 -1
- package/dist/client/assets/chunk-OYMX7WX6-DvtmCasj.js +0 -231
- package/dist/client/assets/chunk-QZHKN3VN-CHVH9_3S.js +0 -1
- package/dist/client/assets/chunk-YHkbxXgt.js +0 -1
- package/dist/client/assets/chunk-YKPWT25G-GISHuloq.js +0 -35
- package/dist/client/assets/classDiagram-6PBFFD2Q-D1KhAUL3.js +0 -1
- package/dist/client/assets/classDiagram-v2-HSJHXN6E-BSyyJpnR.js +0 -1
- package/dist/client/assets/clone-DI0bYZ1L.js +0 -1
- package/dist/client/assets/dagre-Dn6rkrte.js +0 -1
- package/dist/client/assets/dagre-KV5264BT-COzej2en.js +0 -4
- package/dist/client/assets/diagram-G4DWMVQ6-CbswIU9X.js +0 -24
- package/dist/client/assets/diagram-MMDJMWI5-BE-yOVGX.js +0 -43
- package/dist/client/assets/dist-BCzW2jDH.js +0 -1
- package/dist/client/assets/dist-BEk5kTf_.js +0 -1
- package/dist/client/assets/dist-BOn786F3.js +0 -1
- package/dist/client/assets/dist-BwUX6zpo.js +0 -1
- package/dist/client/assets/dist-D-ixVAsS2.js +0 -1
- package/dist/client/assets/dist-DwgKARew.js +0 -2
- package/dist/client/assets/dist-GgGgSSbl.js +0 -1
- package/dist/client/assets/dist-ZuMKSK7c.js +0 -9
- package/dist/client/assets/dist-tRNsnttY.js +0 -1
- package/dist/client/assets/drawio-editor-B_Sr8Z_Z.js +0 -9
- package/dist/client/assets/drawioEditor-DBSyP3_d.js +0 -2
- package/dist/client/assets/editor-session-C1scHGLl.js +0 -16
- package/dist/client/assets/excalidraw-editor-B0XXVLHd.js +0 -9
- package/dist/client/assets/excalidraw-editor-BZCE9ydu.css +0 -1
- package/dist/client/assets/excalidraw-scene-wAbVSY1L.js +0 -176
- package/dist/client/assets/excalidrawEditor-37sk03H8.js +0 -2
- package/dist/client/assets/exportDocument-WQNApAbg.js +0 -2
- package/dist/client/assets/flatten-DjXjUsvv.js +0 -1
- package/dist/client/assets/ganttDiagram-T4ZO3ILL-B-NMvHWN.js +0 -292
- package/dist/client/assets/gitGraph-7Q5UKJZL-DWNinXu4.js +0 -1
- package/dist/client/assets/gitGraphDiagram-UUTBAWPF-B95qkCUx.js +0 -106
- package/dist/client/assets/graphlib-CAwOVCJc.js +0 -1
- package/dist/client/assets/image-J2CAS7OM-DD4DaQTs.js +0 -1
- package/dist/client/assets/index-BoKmcqkH.js +0 -2
- package/dist/client/assets/index-maPm_Kvk.css +0 -1
- package/dist/client/assets/info-OMHHGYJF-DtYG_rX0.js +0 -1
- package/dist/client/assets/isEmpty-CpfhGGBo.js +0 -1
- package/dist/client/assets/javascript-qUBHINSy.js +0 -1
- package/dist/client/assets/line-BCItEgq3.js +0 -1
- package/dist/client/assets/main-BKumyd95.js +0 -1410
- package/dist/client/assets/mermaid-parser.core-CsTVsPcD.js +0 -4
- package/dist/client/assets/mermaid-runtime-BGlnoUXY.js +0 -11
- package/dist/client/assets/navigation-Du6CLhvs.css +0 -1
- package/dist/client/assets/packet-4T2RLAQJ-CUVefhAv.js +0 -1
- package/dist/client/assets/percentages-5DKR754L-DuhOjTM2.js +0 -1
- package/dist/client/assets/pie-ZZUOXDRM-BHBJ1dLX.js +0 -1
- package/dist/client/assets/pieDiagram-DEJITSTG-BOo-WzjZ.js +0 -30
- package/dist/client/assets/preview-diagram-utils-Nqpp4FNV.js +0 -1
- package/dist/client/assets/preview-render-compiler-9SmLUP5V.js +0 -1
- package/dist/client/assets/preview-render-compiler-IUtgIlOM.js +0 -35
- package/dist/client/assets/preview-render-profile-Bf6R7v4w.js +0 -23
- package/dist/client/assets/preview-render-worker-BwQ5sPy9.js +0 -59
- package/dist/client/assets/quadrantDiagram-34T5L4WZ-2vfo0l5S.js +0 -7
- package/dist/client/assets/quick-switcher-controller-B1erSgJ1.js +0 -5
- package/dist/client/assets/radar-PYXPWWZC-2jR4qZNU.js +0 -1
- package/dist/client/assets/reduce-ChpYjEUB.js +0 -1
- package/dist/client/assets/runtime-config-BcUbZKho.js +0 -1
- package/dist/client/assets/sequenceDiagram-FGHM5R23-DtF-1Kt2.js +0 -157
- package/dist/client/assets/stateDiagram-FHFEXIEX-DKk7Sb0f.js +0 -1
- package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-DJUaiADr.js +0 -1
- package/dist/client/assets/subset-shared.chunk-CWNYNLru.js +0 -1
- package/dist/client/assets/treeView-SZITEDCU-DN5dP2ol.js +0 -1
- package/dist/client/assets/treemap-W4RFUUIX-Dva7DBJR.js +0 -1
- package/dist/client/assets/turtle-BkP3ExOG.js +0 -1
- package/dist/client/assets/vault-api-client-BDKKvtOF.js +0 -1
- package/dist/client/assets/vennDiagram-DHZGUBPP-DNnIjRae.js +0 -34
- package/dist/client/assets/wardley-RL74JXVD-CDZW5uzY.js +0 -1
- /package/dist/client/assets/{apl-C1JYSI8J.js → apl-CnwPGSsG.js} +0 -0
- /package/dist/client/assets/{array-B3agRrCs.js → array-BifhSqXX.js} +0 -0
- /package/dist/client/assets/{asciiarmor-DHW75j1s.js → asciiarmor-qTkVPQu6.js} +0 -0
- /package/dist/client/assets/{asn1-CQiG40kG.js → asn1-Dr8qZg38.js} +0 -0
- /package/dist/client/assets/{asterisk-BWExh0n4.js → asterisk-Bja0s6e1.js} +0 -0
- /package/dist/client/assets/{base-h1uscjTi.js → base-CxPEiHuy.js} +0 -0
- /package/dist/client/assets/{brainfuck-CTNFyOLg.js → brainfuck-D5EjA2JK.js} +0 -0
- /package/dist/client/assets/{chunk-3PELD44J-DymL2rGq.js → chunk-3PELD44J-C625MXe_.js} +0 -0
- /package/dist/client/assets/{chunk-A66AFZZU-BFHL744F.js → chunk-A66AFZZU-BbU3ThId.js} +0 -0
- /package/dist/client/assets/{chunk-LOOWOR4L-C5BUwXgZ.js → chunk-LOOWOR4L-CGCAV5nC.js} +0 -0
- /package/dist/client/assets/{clike-BFTLRaGS.js → clike-DHH8Ad3s.js} +0 -0
- /package/dist/client/assets/{clojure-D-DYVqu7.js → clojure-BflJGmDX.js} +0 -0
- /package/dist/client/assets/{cmake-DtGL-Unu.js → cmake-CyVbuzPu.js} +0 -0
- /package/dist/client/assets/{cobol-DP4QggbL.js → cobol-B_OZ4V-R.js} +0 -0
- /package/dist/client/assets/{coffeescript-B7GZajzV.js → coffeescript-B2pKbFk8.js} +0 -0
- /package/dist/client/assets/{commonlisp-COlJYiQT.js → commonlisp-CcllspGY.js} +0 -0
- /package/dist/client/assets/{crystal-I_dE9xG-.js → crystal-M5-qzICs.js} +0 -0
- /package/dist/client/assets/{css-CmhPNxBE.js → css-CYpP4FRV.js} +0 -0
- /package/dist/client/assets/{cypher-DEGl2llJ.js → cypher-p9eYesGn.js} +0 -0
- /package/dist/client/assets/{d-BspB0dox.js → d-BhMjBjQP.js} +0 -0
- /package/dist/client/assets/{defaultLocale-B_FbTTbl.js → defaultLocale-C8Fc0cco.js} +0 -0
- /package/dist/client/assets/{diff-BWuPUsEo.js → diff-ChtP43wD.js} +0 -0
- /package/dist/client/assets/{drawio-room-1i6Nn0_Z.js → drawio-room-B3OZRHTH.js} +0 -0
- /package/dist/client/assets/{dtd-C6brJFPg.js → dtd-DTF72YNO.js} +0 -0
- /package/dist/client/assets/{dylan-Bft86ZSB.js → dylan-C6jEEEk-.js} +0 -0
- /package/dist/client/assets/{ebnf-D6ifG44A.js → ebnf-D4c0_ac3.js} +0 -0
- /package/dist/client/assets/{ecl-D9rhJ9-u.js → ecl-BSZaIHnp.js} +0 -0
- /package/dist/client/assets/{eiffel-DwxtewZF.js → eiffel-BEjRio4Q.js} +0 -0
- /package/dist/client/assets/{elm-B1TncobV.js → elm-Cshzl8qu.js} +0 -0
- /package/dist/client/assets/{erlang-BDJZNtt8.js → erlang-DaB2Rkuy.js} +0 -0
- /package/dist/client/assets/{excalidraw-mermaid-stub-DzxtBcQW.js → excalidraw-mermaid-stub-BNckbX2n.js} +0 -0
- /package/dist/client/assets/{fcl-CUXJFJn1.js → fcl-ClOhbFR7.js} +0 -0
- /package/dist/client/assets/{file-kind-DmKq2MvD.js → file-kind-BKPOIRPE.js} +0 -0
- /package/dist/client/assets/{forth-nvhcMz63.js → forth-Cezjo90N.js} +0 -0
- /package/dist/client/assets/{fortran-BZID-z10.js → fortran-Bt6PBEDR.js} +0 -0
- /package/dist/client/assets/{gas-DjQsZDGE.js → gas-BHEdbvp9.js} +0 -0
- /package/dist/client/assets/{gherkin-S0kHlzux.js → gherkin-oBAE_ms0.js} +0 -0
- /package/dist/client/assets/{groovy-Di--Vb9Z.js → groovy-BC3IOsC8.js} +0 -0
- /package/dist/client/assets/{haskell-C6qH3-aI.js → haskell-BRsoo5mP.js} +0 -0
- /package/dist/client/assets/{http-DG1Y9fpK.js → http-CLVgA2GD.js} +0 -0
- /package/dist/client/assets/{idl-B64p3NTJ.js → idl-BUZw3wgd.js} +0 -0
- /package/dist/client/assets/{image-blob-reduce.esm-D8JQdTFk.js → image-blob-reduce.esm-NzmDxm1v.js} +0 -0
- /package/dist/client/assets/{init-DtLQcSuO.js → init-D6jRqBbL.js} +0 -0
- /package/dist/client/assets/{julia-B22G9Bym.js → julia-CQfgDRfP.js} +0 -0
- /package/dist/client/assets/{katex-CXYULLWy.js → katex-C7GtLiLd.js} +0 -0
- /package/dist/client/assets/{vault-api-client-D7Ck0CvR.css → keyboard-shortcuts-D7Ck0CvR.css} +0 -0
- /package/dist/client/assets/{livescript-CkcuHqeS.js → livescript-BXxG0Yva.js} +0 -0
- /package/dist/client/assets/{lua-Cg0FqIlO.js → lua-CL1SqxuB.js} +0 -0
- /package/dist/client/assets/{mathematica-CKVhKnoY.js → mathematica-u8YMmbU0.js} +0 -0
- /package/dist/client/assets/{mbox-DANyzFJ2.js → mbox-BEMVcqjs.js} +0 -0
- /package/dist/client/assets/{mirc-BVG2S5rO.js → mirc-C9zpzAZU.js} +0 -0
- /package/dist/client/assets/{mllike-C0p7lv48.js → mllike-B45xgp2S.js} +0 -0
- /package/dist/client/assets/{modelica-vJ-Qa9jV.js → modelica-CqHI_q-D.js} +0 -0
- /package/dist/client/assets/{mscgen-vUD-SWGJ.js → mscgen-qgSLujhx.js} +0 -0
- /package/dist/client/assets/{mumps-D0KfUTSd.js → mumps-CW_TBmxz.js} +0 -0
- /package/dist/client/assets/{nginx-DkVceJrH.js → nginx-BMaDbqW3.js} +0 -0
- /package/dist/client/assets/{ntriples-BBuCIfS0.js → ntriples-d28e9m0E.js} +0 -0
- /package/dist/client/assets/{octave-BTv2CqSQ.js → octave-D2Q8cUp1.js} +0 -0
- /package/dist/client/assets/{oz-D8SjVDNU.js → oz-BwTct_5T.js} +0 -0
- /package/dist/client/assets/{pascal-T-tfhVyx.js → pascal-Dp_KdFgX.js} +0 -0
- /package/dist/client/assets/{path-DIlZIGue.js → path-BWPyau1x.js} +0 -0
- /package/dist/client/assets/{perl-BDrCkHRd.js → perl-CdEHsPfU.js} +0 -0
- /package/dist/client/assets/{pig-BEyI4fPq.js → pig-AF4Hwhju.js} +0 -0
- /package/dist/client/assets/{powershell-DtnFc6GG.js → powershell-CzG71I4L.js} +0 -0
- /package/dist/client/assets/{preload-helper-Bo9GmnuQ.js → preload-helper-kNaey6uv.js} +0 -0
- /package/dist/client/assets/{properties-DWUvbxV9.js → properties-C357ku5U.js} +0 -0
- /package/dist/client/assets/{protobuf-CQGoYyfE.js → protobuf-D1ij_kNL.js} +0 -0
- /package/dist/client/assets/{puppet-Dd-qWO3p.js → puppet-B4hC2X4m.js} +0 -0
- /package/dist/client/assets/{python-BUyhM0Ew.js → python-BqYw9LYJ.js} +0 -0
- /package/dist/client/assets/{q-Dls1OX0D.js → q-B9NhS7L_.js} +0 -0
- /package/dist/client/assets/{r-DeZ8Mdev.js → r-DADKenSm.js} +0 -0
- /package/dist/client/assets/{rough.esm-BU2knLt9.js → rough.esm-CSKSodPl.js} +0 -0
- /package/dist/client/assets/{roundRect-BzEouiv_.js → roundRect-D01gJrlt.js} +0 -0
- /package/dist/client/assets/{rpm-CjWxLM68.js → rpm-gpDK5sbt.js} +0 -0
- /package/dist/client/assets/{ruby-CB34f2Gf.js → ruby-DsYpTuWg.js} +0 -0
- /package/dist/client/assets/{runtime-config-loader-_D2KZKn-.js → runtime-config-loader-BUK56BZz.js} +0 -0
- /package/dist/client/assets/{sas-Bji4HDQq.js → sas-C2OyD2Y6.js} +0 -0
- /package/dist/client/assets/{scheme-C3elI80V.js → scheme-CyDdOh7e.js} +0 -0
- /package/dist/client/assets/{shell-DUveK2Hb.js → shell-Du5Qg9im.js} +0 -0
- /package/dist/client/assets/{sieve-2ogwMVx4.js → sieve-BAxa3IjF.js} +0 -0
- /package/dist/client/assets/{simple-mode-pOKc0mfx.js → simple-mode-DRpGK0lJ.js} +0 -0
- /package/dist/client/assets/{smalltalk-BuGhc6lW.js → smalltalk-BLp5-jwC.js} +0 -0
- /package/dist/client/assets/{solr-DTxshpm8.js → solr-BBopId9w.js} +0 -0
- /package/dist/client/assets/{sparql-vm8qNO8J.js → sparql-Dz-mlCAC.js} +0 -0
- /package/dist/client/assets/{spreadsheet-C6Vbtl9-.js → spreadsheet-CTIncYxj.js} +0 -0
- /package/dist/client/assets/{sql-GL7dVWcd.js → sql-DcCJ9jop.js} +0 -0
- /package/dist/client/assets/{stex-CEwW0Q_0.js → stex-sDrdk2BW.js} +0 -0
- /package/dist/client/assets/{stylus-D1SZIMDs.js → stylus-DLLZ8dgm.js} +0 -0
- /package/dist/client/assets/{swift-CKcKnWv9.js → swift-DKB6_1j6.js} +0 -0
- /package/dist/client/assets/{tcl-SPk7uiDB.js → tcl-BGfruO1u.js} +0 -0
- /package/dist/client/assets/{textile-C48beRus.js → textile-DWBqthVk.js} +0 -0
- /package/dist/client/assets/{tiddlywiki-CiImjFLN.js → tiddlywiki-VlUiK86J.js} +0 -0
- /package/dist/client/assets/{tiki-HkXZ4BIW.js → tiki-CxVlf5KZ.js} +0 -0
- /package/dist/client/assets/{toml-BmfpMy1_.js → toml-LvoKBwCs.js} +0 -0
- /package/dist/client/assets/{troff-BjbEOT5E.js → troff-C2dAgh7P.js} +0 -0
- /package/dist/client/assets/{ttcn-NA-V4KnY.js → ttcn-BePYh-hG.js} +0 -0
- /package/dist/client/assets/{ttcn-cfg-TPHncdGN.js → ttcn-cfg-CY0aot7Q.js} +0 -0
- /package/dist/client/assets/{vb-C19AQWqO.js → vb-BthdM_4N.js} +0 -0
- /package/dist/client/assets/{vbscript-CHJk3s95.js → vbscript-D9f6rSsU.js} +0 -0
- /package/dist/client/assets/{velocity-Ya0P4sQU.js → velocity-CqftRsjg.js} +0 -0
- /package/dist/client/assets/{verilog-DSARZZPc.js → verilog-D-x6ne0Z.js} +0 -0
- /package/dist/client/assets/{vhdl-CnYyYTpa.js → vhdl-CMrOq2q1.js} +0 -0
- /package/dist/client/assets/{webidl-DttrYZRT.js → webidl-D5jiJvOU.js} +0 -0
- /package/dist/client/assets/{xquery-CEDTd8qs.js → xquery-fj_R-kMw.js} +0 -0
- /package/dist/client/assets/{yacas-C7dxlPB0.js → yacas-CXXgtw0p.js} +0 -0
- /package/dist/client/assets/{z80-BqEfFSnA.js → z80-CL1naaMV.js} +0 -0
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
isBaseFilePath,
|
|
3
|
-
isDrawioFilePath,
|
|
4
|
-
isExcalidrawFilePath,
|
|
5
|
-
isMermaidFilePath,
|
|
6
|
-
isPlantUmlFilePath,
|
|
7
|
-
} from '../../../domain/file-kind.js';
|
|
8
|
-
import { createWorkspaceChange } from '../../../domain/workspace-change.js';
|
|
9
1
|
import { basename } from 'node:path';
|
|
10
2
|
import { createRequestError, getRequestErrorStatusCode } from './http-errors.js';
|
|
11
3
|
import { jsonResponse, sendResponse } from './http-response.js';
|
|
@@ -51,30 +43,6 @@ function decodeHeaderMetadata(value) {
|
|
|
51
43
|
}
|
|
52
44
|
}
|
|
53
45
|
|
|
54
|
-
function selectWriteOperation(vaultFileStore, filePath, content) {
|
|
55
|
-
if (isExcalidrawFilePath(filePath)) {
|
|
56
|
-
return vaultFileStore.writeExcalidrawFile(filePath, content);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (isBaseFilePath(filePath)) {
|
|
60
|
-
return vaultFileStore.writeBaseFile(filePath, content);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (isDrawioFilePath(filePath)) {
|
|
64
|
-
return vaultFileStore.writeDrawioFile(filePath, content);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (isMermaidFilePath(filePath)) {
|
|
68
|
-
return vaultFileStore.writeMermaidFile(filePath, content);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (isPlantUmlFilePath(filePath)) {
|
|
72
|
-
return vaultFileStore.writePlantUmlFile(filePath, content);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return vaultFileStore.writeMarkdownFile(filePath, content);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
46
|
function readRequestId(req) {
|
|
79
47
|
const value = String(req.headers['x-collabmd-request-id'] || '').trim();
|
|
80
48
|
return value ? value.slice(0, 120) : null;
|
|
@@ -125,7 +93,7 @@ async function handleExportDocx({ docxExporter }, req, res) {
|
|
|
125
93
|
return true;
|
|
126
94
|
}
|
|
127
95
|
|
|
128
|
-
async function handleWriteFile({
|
|
96
|
+
async function handleWriteFile({ workspaceMutationCoordinator }, req, res) {
|
|
129
97
|
try {
|
|
130
98
|
const body = await parseJsonBody(req);
|
|
131
99
|
if (!body.path || typeof body.content !== 'string') {
|
|
@@ -133,21 +101,16 @@ async function handleWriteFile({ vaultFileStore, workspaceMutationCoordinator },
|
|
|
133
101
|
return true;
|
|
134
102
|
}
|
|
135
103
|
|
|
136
|
-
const result = await
|
|
104
|
+
const result = await workspaceMutationCoordinator.writeEditableContent({
|
|
105
|
+
content: body.content,
|
|
106
|
+
path: body.path,
|
|
107
|
+
requestId: readRequestId(req),
|
|
108
|
+
});
|
|
137
109
|
if (!result.ok) {
|
|
138
110
|
jsonResponse(req, res, 400, { error: result.error });
|
|
139
111
|
return true;
|
|
140
112
|
}
|
|
141
113
|
|
|
142
|
-
await workspaceMutationCoordinator?.apply?.({
|
|
143
|
-
action: 'write-file',
|
|
144
|
-
origin: 'api',
|
|
145
|
-
requestId: readRequestId(req),
|
|
146
|
-
workspaceChange: createWorkspaceChange({
|
|
147
|
-
changedPaths: [body.path],
|
|
148
|
-
}),
|
|
149
|
-
});
|
|
150
|
-
|
|
151
114
|
jsonResponse(req, res, 200, { ok: true });
|
|
152
115
|
} catch (error) {
|
|
153
116
|
handleVaultError(req, res, error, '[api] Failed to write file:', 'Failed to write file');
|
|
@@ -155,7 +118,7 @@ async function handleWriteFile({ vaultFileStore, workspaceMutationCoordinator },
|
|
|
155
118
|
return true;
|
|
156
119
|
}
|
|
157
120
|
|
|
158
|
-
async function handleUploadAttachment({
|
|
121
|
+
async function handleUploadAttachment({ workspaceMutationCoordinator }, req, res) {
|
|
159
122
|
try {
|
|
160
123
|
const sourceDocumentPath = decodeHeaderMetadata(req.headers['x-collabmd-source-path']);
|
|
161
124
|
const originalFileName = decodeHeaderMetadata(req.headers['x-collabmd-file-name']);
|
|
@@ -167,25 +130,18 @@ async function handleUploadAttachment({ vaultFileStore, workspaceMutationCoordin
|
|
|
167
130
|
}
|
|
168
131
|
|
|
169
132
|
const content = await readBinaryRequestBody(req);
|
|
170
|
-
const result = await
|
|
133
|
+
const result = await workspaceMutationCoordinator.uploadAttachment({
|
|
171
134
|
content,
|
|
172
135
|
mimeType,
|
|
173
136
|
originalFileName,
|
|
137
|
+
requestId: readRequestId(req),
|
|
138
|
+
sourceDocumentPath,
|
|
174
139
|
});
|
|
175
140
|
if (!result.ok) {
|
|
176
141
|
jsonResponse(req, res, 400, { error: result.error });
|
|
177
142
|
return true;
|
|
178
143
|
}
|
|
179
144
|
|
|
180
|
-
await workspaceMutationCoordinator?.apply?.({
|
|
181
|
-
action: 'upload-attachment',
|
|
182
|
-
origin: 'api',
|
|
183
|
-
requestId: readRequestId(req),
|
|
184
|
-
workspaceChange: createWorkspaceChange({
|
|
185
|
-
changedPaths: [result.path],
|
|
186
|
-
}),
|
|
187
|
-
});
|
|
188
|
-
|
|
189
145
|
jsonResponse(req, res, 201, {
|
|
190
146
|
markdown: result.markdownSnippet,
|
|
191
147
|
ok: true,
|
|
@@ -197,7 +153,7 @@ async function handleUploadAttachment({ vaultFileStore, workspaceMutationCoordin
|
|
|
197
153
|
return true;
|
|
198
154
|
}
|
|
199
155
|
|
|
200
|
-
async function handleCreateFile({
|
|
156
|
+
async function handleCreateFile({ workspaceMutationCoordinator }, req, res) {
|
|
201
157
|
try {
|
|
202
158
|
const body = await parseJsonBody(req);
|
|
203
159
|
if (!body.path) {
|
|
@@ -205,19 +161,15 @@ async function handleCreateFile({ vaultFileStore, workspaceMutationCoordinator }
|
|
|
205
161
|
return true;
|
|
206
162
|
}
|
|
207
163
|
|
|
208
|
-
const result = await
|
|
164
|
+
const result = await workspaceMutationCoordinator.createFile({
|
|
165
|
+
content: body.content || '',
|
|
166
|
+
path: body.path,
|
|
167
|
+
requestId: readRequestId(req),
|
|
168
|
+
});
|
|
209
169
|
if (!result.ok) {
|
|
210
170
|
jsonResponse(req, res, 409, { error: result.error });
|
|
211
171
|
return true;
|
|
212
172
|
}
|
|
213
|
-
await workspaceMutationCoordinator?.apply?.({
|
|
214
|
-
action: 'create-file',
|
|
215
|
-
origin: 'api',
|
|
216
|
-
requestId: readRequestId(req),
|
|
217
|
-
workspaceChange: createWorkspaceChange({
|
|
218
|
-
changedPaths: [body.path],
|
|
219
|
-
}),
|
|
220
|
-
});
|
|
221
173
|
jsonResponse(req, res, 201, { ok: true, path: body.path });
|
|
222
174
|
} catch (error) {
|
|
223
175
|
handleVaultError(req, res, error, '[api] Failed to create file:', 'Failed to create file');
|
|
@@ -225,7 +177,7 @@ async function handleCreateFile({ vaultFileStore, workspaceMutationCoordinator }
|
|
|
225
177
|
return true;
|
|
226
178
|
}
|
|
227
179
|
|
|
228
|
-
async function handleDeleteFile({
|
|
180
|
+
async function handleDeleteFile({ workspaceMutationCoordinator }, req, res, requestUrl) {
|
|
229
181
|
const filePath = requestUrl.searchParams.get('path');
|
|
230
182
|
if (!filePath) {
|
|
231
183
|
jsonResponse(req, res, 400, { error: 'Missing path parameter' });
|
|
@@ -233,19 +185,14 @@ async function handleDeleteFile({ vaultFileStore, workspaceMutationCoordinator }
|
|
|
233
185
|
}
|
|
234
186
|
|
|
235
187
|
try {
|
|
236
|
-
const result = await
|
|
188
|
+
const result = await workspaceMutationCoordinator.deleteFile({
|
|
189
|
+
path: filePath,
|
|
190
|
+
requestId: readRequestId(req),
|
|
191
|
+
});
|
|
237
192
|
if (!result.ok) {
|
|
238
193
|
jsonResponse(req, res, 400, { error: result.error });
|
|
239
194
|
return true;
|
|
240
195
|
}
|
|
241
|
-
await workspaceMutationCoordinator?.apply?.({
|
|
242
|
-
action: 'delete-file',
|
|
243
|
-
origin: 'api',
|
|
244
|
-
requestId: readRequestId(req),
|
|
245
|
-
workspaceChange: createWorkspaceChange({
|
|
246
|
-
deletedPaths: [filePath],
|
|
247
|
-
}),
|
|
248
|
-
});
|
|
249
196
|
jsonResponse(req, res, 200, { ok: true });
|
|
250
197
|
} catch (error) {
|
|
251
198
|
console.error('[api] Failed to delete file:', error.message);
|
|
@@ -254,7 +201,7 @@ async function handleDeleteFile({ vaultFileStore, workspaceMutationCoordinator }
|
|
|
254
201
|
return true;
|
|
255
202
|
}
|
|
256
203
|
|
|
257
|
-
async function handleRenameFile({
|
|
204
|
+
async function handleRenameFile({ workspaceMutationCoordinator }, req, res) {
|
|
258
205
|
try {
|
|
259
206
|
const body = await parseJsonBody(req);
|
|
260
207
|
if (!body.oldPath || !body.newPath) {
|
|
@@ -262,19 +209,15 @@ async function handleRenameFile({ vaultFileStore, workspaceMutationCoordinator }
|
|
|
262
209
|
return true;
|
|
263
210
|
}
|
|
264
211
|
|
|
265
|
-
const result = await
|
|
212
|
+
const result = await workspaceMutationCoordinator.renameFile({
|
|
213
|
+
newPath: body.newPath,
|
|
214
|
+
oldPath: body.oldPath,
|
|
215
|
+
requestId: readRequestId(req),
|
|
216
|
+
});
|
|
266
217
|
if (!result.ok) {
|
|
267
218
|
jsonResponse(req, res, 400, { error: result.error });
|
|
268
219
|
return true;
|
|
269
220
|
}
|
|
270
|
-
await workspaceMutationCoordinator?.apply?.({
|
|
271
|
-
action: 'rename-file',
|
|
272
|
-
origin: 'api',
|
|
273
|
-
requestId: readRequestId(req),
|
|
274
|
-
workspaceChange: createWorkspaceChange({
|
|
275
|
-
renamedPaths: [{ oldPath: body.oldPath, newPath: body.newPath }],
|
|
276
|
-
}),
|
|
277
|
-
});
|
|
278
221
|
jsonResponse(req, res, 200, { ok: true, path: body.newPath });
|
|
279
222
|
} catch (error) {
|
|
280
223
|
handleVaultError(req, res, error, '[api] Failed to rename file:', 'Failed to rename file');
|
|
@@ -282,7 +225,7 @@ async function handleRenameFile({ vaultFileStore, workspaceMutationCoordinator }
|
|
|
282
225
|
return true;
|
|
283
226
|
}
|
|
284
227
|
|
|
285
|
-
async function handleCreateDirectory({
|
|
228
|
+
async function handleCreateDirectory({ workspaceMutationCoordinator }, req, res) {
|
|
286
229
|
try {
|
|
287
230
|
const body = await parseJsonBody(req);
|
|
288
231
|
if (!body.path) {
|
|
@@ -290,21 +233,15 @@ async function handleCreateDirectory({ vaultFileStore, workspaceMutationCoordina
|
|
|
290
233
|
return true;
|
|
291
234
|
}
|
|
292
235
|
|
|
293
|
-
const result = await
|
|
236
|
+
const result = await workspaceMutationCoordinator.createDirectory({
|
|
237
|
+
path: body.path,
|
|
238
|
+
requestId: readRequestId(req),
|
|
239
|
+
});
|
|
294
240
|
if (!result.ok) {
|
|
295
241
|
jsonResponse(req, res, 400, { error: result.error });
|
|
296
242
|
return true;
|
|
297
243
|
}
|
|
298
244
|
|
|
299
|
-
await workspaceMutationCoordinator?.apply?.({
|
|
300
|
-
action: 'create-directory',
|
|
301
|
-
origin: 'api',
|
|
302
|
-
requestId: readRequestId(req),
|
|
303
|
-
workspaceChange: createWorkspaceChange({
|
|
304
|
-
changedPaths: [body.path],
|
|
305
|
-
}),
|
|
306
|
-
});
|
|
307
|
-
|
|
308
245
|
jsonResponse(req, res, 201, { ok: true });
|
|
309
246
|
} catch (error) {
|
|
310
247
|
handleVaultError(req, res, error, '[api] Failed to create directory:', 'Failed to create directory');
|
|
@@ -312,7 +249,7 @@ async function handleCreateDirectory({ vaultFileStore, workspaceMutationCoordina
|
|
|
312
249
|
return true;
|
|
313
250
|
}
|
|
314
251
|
|
|
315
|
-
async function handleRenameDirectory({
|
|
252
|
+
async function handleRenameDirectory({ workspaceMutationCoordinator }, req, res) {
|
|
316
253
|
try {
|
|
317
254
|
const body = await parseJsonBody(req);
|
|
318
255
|
if (!body.oldPath || !body.newPath) {
|
|
@@ -320,22 +257,16 @@ async function handleRenameDirectory({ vaultFileStore, workspaceMutationCoordina
|
|
|
320
257
|
return true;
|
|
321
258
|
}
|
|
322
259
|
|
|
323
|
-
const
|
|
324
|
-
|
|
260
|
+
const result = await workspaceMutationCoordinator.renameDirectory({
|
|
261
|
+
newPath: body.newPath,
|
|
262
|
+
oldPath: body.oldPath,
|
|
263
|
+
requestId: readRequestId(req),
|
|
264
|
+
});
|
|
325
265
|
if (!result.ok) {
|
|
326
266
|
jsonResponse(req, res, 400, { error: result.error });
|
|
327
267
|
return true;
|
|
328
268
|
}
|
|
329
269
|
|
|
330
|
-
await workspaceMutationCoordinator?.apply?.({
|
|
331
|
-
action: 'rename-directory',
|
|
332
|
-
origin: 'api',
|
|
333
|
-
requestId: readRequestId(req),
|
|
334
|
-
workspaceChange: workspaceChange ?? {
|
|
335
|
-
renamedPaths: [{ oldPath: body.oldPath, newPath: body.newPath }],
|
|
336
|
-
},
|
|
337
|
-
});
|
|
338
|
-
|
|
339
270
|
jsonResponse(req, res, 200, { ok: true, path: body.newPath });
|
|
340
271
|
} catch (error) {
|
|
341
272
|
handleVaultError(req, res, error, '[api] Failed to rename directory:', 'Failed to rename directory');
|
|
@@ -343,7 +274,7 @@ async function handleRenameDirectory({ vaultFileStore, workspaceMutationCoordina
|
|
|
343
274
|
return true;
|
|
344
275
|
}
|
|
345
276
|
|
|
346
|
-
async function handleDeleteDirectory({
|
|
277
|
+
async function handleDeleteDirectory({ workspaceMutationCoordinator }, req, res, requestUrl) {
|
|
347
278
|
const dirPath = requestUrl.searchParams.get('path');
|
|
348
279
|
const recursive = requestUrl.searchParams.get('recursive') === '1';
|
|
349
280
|
if (!dirPath) {
|
|
@@ -352,22 +283,16 @@ async function handleDeleteDirectory({ vaultFileStore, workspaceMutationCoordina
|
|
|
352
283
|
}
|
|
353
284
|
|
|
354
285
|
try {
|
|
355
|
-
const
|
|
356
|
-
|
|
286
|
+
const result = await workspaceMutationCoordinator.deleteDirectory({
|
|
287
|
+
path: dirPath,
|
|
288
|
+
recursive,
|
|
289
|
+
requestId: readRequestId(req),
|
|
290
|
+
});
|
|
357
291
|
if (!result.ok) {
|
|
358
292
|
jsonResponse(req, res, getDirectoryDeleteStatusCode(result.error), { error: result.error });
|
|
359
293
|
return true;
|
|
360
294
|
}
|
|
361
295
|
|
|
362
|
-
await workspaceMutationCoordinator?.apply?.({
|
|
363
|
-
action: 'delete-directory',
|
|
364
|
-
origin: 'api',
|
|
365
|
-
requestId: readRequestId(req),
|
|
366
|
-
workspaceChange: workspaceChange ?? {
|
|
367
|
-
deletedPaths: [dirPath],
|
|
368
|
-
},
|
|
369
|
-
});
|
|
370
|
-
|
|
371
296
|
jsonResponse(req, res, 200, { ok: true });
|
|
372
297
|
} catch (error) {
|
|
373
298
|
handleVaultError(req, res, error, '[api] Failed to delete directory:', 'Failed to delete directory');
|
|
@@ -9,6 +9,7 @@ export function createVaultApiHandler({
|
|
|
9
9
|
docxExporter = null,
|
|
10
10
|
plantUmlRenderer = null,
|
|
11
11
|
roomRegistry = null,
|
|
12
|
+
searchService = null,
|
|
12
13
|
vaultFileStore,
|
|
13
14
|
workspaceMutationCoordinator = null,
|
|
14
15
|
}) {
|
|
@@ -16,6 +17,7 @@ export function createVaultApiHandler({
|
|
|
16
17
|
baseQueryService,
|
|
17
18
|
backlinkIndex,
|
|
18
19
|
config,
|
|
20
|
+
searchService,
|
|
19
21
|
vaultFileStore,
|
|
20
22
|
workspaceMutationCoordinator,
|
|
21
23
|
});
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ZipArchive } from 'archiver';
|
|
2
2
|
import { readdir } from 'node:fs/promises';
|
|
3
3
|
import { basename } from 'node:path';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
isBaseFilePath,
|
|
8
|
-
isDrawioFilePath,
|
|
9
|
-
isExcalidrawFilePath,
|
|
10
|
-
isImageAttachmentFilePath,
|
|
11
|
-
isMermaidFilePath,
|
|
12
|
-
isPlantUmlFilePath,
|
|
13
|
-
} from '../../../domain/file-kind.js';
|
|
6
|
+
import { isImageAttachmentFilePath } from '../../../domain/file-kind.js';
|
|
14
7
|
import { isIgnoredVaultEntry } from '../persistence/path-utils.js';
|
|
15
8
|
import { parseJsonBody } from './request-body.js';
|
|
16
9
|
import { jsonResponse, sendResponse, sendStreamResponse } from './http-response.js';
|
|
@@ -58,36 +51,12 @@ function createDownloadHeaders(fileName, contentType) {
|
|
|
58
51
|
};
|
|
59
52
|
}
|
|
60
53
|
|
|
61
|
-
function selectReadOperation(vaultFileStore, filePath) {
|
|
62
|
-
if (isExcalidrawFilePath(filePath)) {
|
|
63
|
-
return vaultFileStore.readExcalidrawFile(filePath);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (isBaseFilePath(filePath)) {
|
|
67
|
-
return vaultFileStore.readBaseFile(filePath);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (isDrawioFilePath(filePath)) {
|
|
71
|
-
return vaultFileStore.readDrawioFile(filePath);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (isMermaidFilePath(filePath)) {
|
|
75
|
-
return vaultFileStore.readMermaidFile(filePath);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (isPlantUmlFilePath(filePath)) {
|
|
79
|
-
return vaultFileStore.readPlantUmlFile(filePath);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return vaultFileStore.readMarkdownFile(filePath);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
54
|
async function streamDirectoryArchive(req, res, {
|
|
86
55
|
maxEntries = 10_000,
|
|
87
56
|
rootAbsolutePath = '',
|
|
88
57
|
rootName = 'archive',
|
|
89
58
|
} = {}) {
|
|
90
|
-
const archive =
|
|
59
|
+
const archive = new ZipArchive({
|
|
91
60
|
zlib: {
|
|
92
61
|
level: 6,
|
|
93
62
|
},
|
|
@@ -282,6 +251,21 @@ async function handleFileTree(req, res, _requestUrl, { vaultFileStore, workspace
|
|
|
282
251
|
}
|
|
283
252
|
}
|
|
284
253
|
|
|
254
|
+
async function handleCommentOverview(req, res, _requestUrl, { vaultFileStore }) {
|
|
255
|
+
try {
|
|
256
|
+
if (typeof vaultFileStore.readCommentOverview !== 'function') {
|
|
257
|
+
jsonResponse(req, res, 503, { error: 'Comment overview is unavailable' });
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
const overview = await vaultFileStore.readCommentOverview();
|
|
262
|
+
jsonResponse(req, res, 200, { overview });
|
|
263
|
+
} catch (error) {
|
|
264
|
+
console.error('[api] Failed to read comment overview:', error.message);
|
|
265
|
+
jsonResponse(req, res, 500, { error: 'Failed to read comment overview' });
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
285
269
|
async function handleFileRead(req, res, requestUrl, { vaultFileStore }) {
|
|
286
270
|
const filePath = requestUrl.searchParams.get('path');
|
|
287
271
|
if (!filePath) {
|
|
@@ -290,7 +274,7 @@ async function handleFileRead(req, res, requestUrl, { vaultFileStore }) {
|
|
|
290
274
|
}
|
|
291
275
|
|
|
292
276
|
try {
|
|
293
|
-
const content = await
|
|
277
|
+
const content = await vaultFileStore.readEditableVaultContent(filePath);
|
|
294
278
|
if (content === null) {
|
|
295
279
|
jsonResponse(req, res, 404, { error: 'File not found' });
|
|
296
280
|
return;
|
|
@@ -428,6 +412,39 @@ async function handleBacklinks(req, res, requestUrl, { backlinkIndex }) {
|
|
|
428
412
|
}
|
|
429
413
|
}
|
|
430
414
|
|
|
415
|
+
async function handleSearch(req, res, requestUrl, { searchService }) {
|
|
416
|
+
if (!searchService?.search) {
|
|
417
|
+
jsonResponse(req, res, 503, {
|
|
418
|
+
error: 'Global text search is unavailable',
|
|
419
|
+
ok: false,
|
|
420
|
+
search: {
|
|
421
|
+
available: false,
|
|
422
|
+
backend: 'ripgrep',
|
|
423
|
+
},
|
|
424
|
+
});
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
try {
|
|
429
|
+
const result = await searchService.search({
|
|
430
|
+
limit: requestUrl.searchParams.get('limit') || '',
|
|
431
|
+
query: requestUrl.searchParams.get('q') || '',
|
|
432
|
+
});
|
|
433
|
+
jsonResponse(req, res, 200, result);
|
|
434
|
+
} catch (error) {
|
|
435
|
+
const statusCode = Number(error?.statusCode) || 500;
|
|
436
|
+
console.error('[api] Failed to search vault:', error.message);
|
|
437
|
+
jsonResponse(req, res, statusCode, {
|
|
438
|
+
error: error.message || 'Failed to search vault',
|
|
439
|
+
ok: false,
|
|
440
|
+
search: error.search ?? searchService?.getClientConfig?.() ?? {
|
|
441
|
+
available: false,
|
|
442
|
+
backend: 'ripgrep',
|
|
443
|
+
},
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
431
448
|
// --- Route table ---
|
|
432
449
|
|
|
433
450
|
function createRouteTable(context) {
|
|
@@ -437,11 +454,13 @@ function createRouteTable(context) {
|
|
|
437
454
|
{ method: 'POST', path: '/api/base/transform', handler: handleBaseTransform },
|
|
438
455
|
{ method: 'POST', path: '/api/base/export', handler: handleBaseExport },
|
|
439
456
|
{ method: 'GET', path: '/api/files', handler: handleFileTree },
|
|
457
|
+
{ method: 'GET', path: '/api/comments/overview', handler: handleCommentOverview },
|
|
440
458
|
{ method: 'GET', path: '/api/file', handler: handleFileRead },
|
|
441
459
|
{ method: 'GET', path: '/api/download/file', handler: handleFileDownload },
|
|
442
460
|
{ method: 'GET', path: '/api/download/directory', handler: handleDirectoryDownload },
|
|
443
461
|
{ method: 'GET', path: '/api/attachment', handler: handleAttachmentRead },
|
|
444
462
|
{ method: 'GET', path: '/api/backlinks', handler: handleBacklinks },
|
|
463
|
+
{ method: 'GET', path: '/api/search', handler: handleSearch },
|
|
445
464
|
].map((route) => ({
|
|
446
465
|
...route,
|
|
447
466
|
handler: (req, res, requestUrl) => route.handler(req, res, requestUrl, context),
|
|
@@ -452,6 +471,7 @@ export function createVaultApiQueryHandler({
|
|
|
452
471
|
baseQueryService = null,
|
|
453
472
|
backlinkIndex,
|
|
454
473
|
config = {},
|
|
474
|
+
searchService = null,
|
|
455
475
|
vaultFileStore,
|
|
456
476
|
workspaceMutationCoordinator = null,
|
|
457
477
|
}) {
|
|
@@ -459,6 +479,7 @@ export function createVaultApiQueryHandler({
|
|
|
459
479
|
baseQueryService,
|
|
460
480
|
backlinkIndex,
|
|
461
481
|
config,
|
|
482
|
+
searchService,
|
|
462
483
|
vaultFileStore,
|
|
463
484
|
workspaceMutationCoordinator,
|
|
464
485
|
};
|
|
@@ -7,6 +7,7 @@ async function readRequestBuffer(req, maxBytes = REQUEST_BODY_LIMIT_BYTES) {
|
|
|
7
7
|
const chunks = [];
|
|
8
8
|
let size = 0;
|
|
9
9
|
let done = false;
|
|
10
|
+
let limitError = null;
|
|
10
11
|
|
|
11
12
|
const finish = (callback, value) => {
|
|
12
13
|
if (done) {
|
|
@@ -21,10 +22,14 @@ async function readRequestBuffer(req, maxBytes = REQUEST_BODY_LIMIT_BYTES) {
|
|
|
21
22
|
};
|
|
22
23
|
|
|
23
24
|
const onData = (chunk) => {
|
|
25
|
+
if (limitError) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
24
29
|
size += chunk.length;
|
|
25
30
|
if (size > maxBytes) {
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
chunks.length = 0;
|
|
32
|
+
limitError = createRequestError(413, 'Request body too large');
|
|
28
33
|
return;
|
|
29
34
|
}
|
|
30
35
|
|
|
@@ -32,6 +37,11 @@ async function readRequestBuffer(req, maxBytes = REQUEST_BODY_LIMIT_BYTES) {
|
|
|
32
37
|
};
|
|
33
38
|
|
|
34
39
|
const onEnd = () => {
|
|
40
|
+
if (limitError) {
|
|
41
|
+
finish(reject, limitError);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
35
45
|
finish(resolve, Buffer.concat(chunks));
|
|
36
46
|
};
|
|
37
47
|
|