termdock 1.4.237 → 1.4.239
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 +2 -0
- package/dist/client/assets/App-CmlGDKDj.js +155 -0
- package/dist/client/assets/App-CmlGDKDj.js.br +0 -0
- package/dist/client/assets/App-CmlGDKDj.js.gz +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-9whVVXTr.js +2 -0
- package/dist/client/assets/ChangeWalkthroughPanel-9whVVXTr.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-9whVVXTr.js.gz +0 -0
- package/dist/client/assets/{DagPlayground-9DE-yoRV.js → DagPlayground-y80OTTQj.js} +1 -1
- package/dist/client/assets/DagPlayground-y80OTTQj.js.br +0 -0
- package/dist/client/assets/DagPlayground-y80OTTQj.js.gz +0 -0
- package/dist/client/assets/{DiffLab-CjyMoL77.js → DiffLab-BY2wbRtg.js} +1 -1
- package/dist/client/assets/DiffLab-BY2wbRtg.js.br +0 -0
- package/dist/client/assets/DiffLab-BY2wbRtg.js.gz +0 -0
- package/dist/client/assets/{DiffReview-kSV-dlGf.js → DiffReview-DLlDJbK1.js} +1 -1
- package/dist/client/assets/DiffReview-DLlDJbK1.js.br +0 -0
- package/dist/client/assets/DiffReview-DLlDJbK1.js.gz +0 -0
- package/dist/client/assets/{DiffReviewLab-DL8o3FzO.js → DiffReviewLab-CEpa_B8I.js} +1 -1
- package/dist/client/assets/DiffReviewLab-CEpa_B8I.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-CEpa_B8I.js.gz +0 -0
- package/dist/client/assets/{DiffViewer-8lX1Yp21.js → DiffViewer-GLkd1zMQ.js} +7 -7
- package/dist/client/assets/DiffViewer-GLkd1zMQ.js.br +0 -0
- package/dist/client/assets/DiffViewer-GLkd1zMQ.js.gz +0 -0
- package/dist/client/assets/{ModelPreview-Di9v8eC8.js → ModelPreview-DB8tw45f.js} +1 -1
- package/dist/client/assets/ModelPreview-DB8tw45f.js.br +0 -0
- package/dist/client/assets/ModelPreview-DB8tw45f.js.gz +0 -0
- package/dist/client/assets/{RightSidebar-C4BW2Wwm.js → RightSidebar-aoJjOQGX.js} +33 -33
- package/dist/client/assets/RightSidebar-aoJjOQGX.js.br +0 -0
- package/dist/client/assets/RightSidebar-aoJjOQGX.js.gz +0 -0
- package/dist/client/assets/{abnfDiagram-VCTEODGH-hlnPn1XS.js → abnfDiagram-VCTEODGH-RBGYciHa.js} +1 -1
- package/dist/client/assets/abnfDiagram-VCTEODGH-RBGYciHa.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-RBGYciHa.js.gz +0 -0
- package/dist/client/assets/{app-CSIciOPl.js → app-Ctrh4Bku.js} +13 -13
- package/dist/client/assets/app-Ctrh4Bku.js.br +0 -0
- package/dist/client/assets/app-Ctrh4Bku.js.gz +0 -0
- package/dist/client/assets/{arc-DRWaGXMR.js → arc-CzQsNCup.js} +1 -1
- package/dist/client/assets/arc-CzQsNCup.js.br +0 -0
- package/dist/client/assets/arc-CzQsNCup.js.gz +0 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-CGgjTR71.js → architectureDiagram-5GKGNRK7-sDp6hSiy.js} +1 -1
- package/dist/client/assets/architectureDiagram-5GKGNRK7-sDp6hSiy.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-sDp6hSiy.js.gz +0 -0
- package/dist/client/assets/{blockDiagram-I7D4REHJ-CoSXp3bo.js → blockDiagram-I7D4REHJ-C-AHqZPo.js} +1 -1
- package/dist/client/assets/blockDiagram-I7D4REHJ-C-AHqZPo.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-C-AHqZPo.js.gz +0 -0
- package/dist/client/assets/{c4Diagram-7LVT6UL2-T24R2Qbf.js → c4Diagram-7LVT6UL2-B8VGhLwN.js} +1 -1
- package/dist/client/assets/{c4Diagram-7LVT6UL2-T24R2Qbf.js.br → c4Diagram-7LVT6UL2-B8VGhLwN.js.br} +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-B8VGhLwN.js.gz +0 -0
- package/dist/client/assets/channel-zK78er-R.js +1 -0
- package/dist/client/assets/{chunk-2Q5K7J3B--LXR3vbd.js → chunk-2Q5K7J3B-D56jCJTr.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-CCATC1Bu.js → chunk-5VM5RSS4-cga3WKIM.js} +1 -1
- package/dist/client/assets/{chunk-F27PBJKO-BZcc7Ic4.js → chunk-F27PBJKO-BNOR_7WA.js} +1 -1
- package/dist/client/assets/chunk-F27PBJKO-BNOR_7WA.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-BNOR_7WA.js.gz +0 -0
- package/dist/client/assets/{chunk-IMKFNOWR-CwEcJlSi.js → chunk-IMKFNOWR-Dk12DKtC.js} +1 -1
- package/dist/client/assets/chunk-IMKFNOWR-Dk12DKtC.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-Dk12DKtC.js.gz +0 -0
- package/dist/client/assets/{chunk-JWPE2WC7-BgzA4uHj.js → chunk-JWPE2WC7-CVqdLg0d.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-BS7G7nLt.js → chunk-POPQ4Y6H-Y6gEzK15.js} +1 -1
- package/dist/client/assets/{chunk-SVP7TREG-MyWxRYxW.js → chunk-SVP7TREG-BIJtdFBL.js} +1 -1
- package/dist/client/assets/chunk-SVP7TREG-BIJtdFBL.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-BIJtdFBL.js.gz +0 -0
- package/dist/client/assets/{chunk-TICWLB2K-By-otV7X.js → chunk-TICWLB2K-CS3jsxv7.js} +1 -1
- package/dist/client/assets/chunk-TICWLB2K-CS3jsxv7.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-CS3jsxv7.js.gz +0 -0
- package/dist/client/assets/{chunk-XXDRQBXY-dFHhSKLr.js → chunk-XXDRQBXY-BYgvxPrj.js} +1 -1
- package/dist/client/assets/classDiagram-ZZMXUADV-BMh5Sak3.js +1 -0
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-BMh5Sak3.js +1 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-S4CHO_jm.js → cose-bilkent-JH36ORCC-9udJiW7h.js} +1 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-9udJiW7h.js.br +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-9udJiW7h.js.gz +0 -0
- package/dist/client/assets/{cynefin-OW5HDTMX-D-Tdm--u.js → cynefin-OW5HDTMX-D-6q-6N2.js} +1 -1
- package/dist/client/assets/cynefin-OW5HDTMX-D-6q-6N2.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-D-6q-6N2.js.gz +0 -0
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-FSHeEj_r.js → cynefinDiagram-5FMLGOSQ-B5c37uFA.js} +1 -1
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-B5c37uFA.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-B5c37uFA.js.gz +0 -0
- package/dist/client/assets/{dagre-GXQ25YYZ-BdeaoJ-E.js → dagre-GXQ25YYZ-DoFMIka4.js} +1 -1
- package/dist/client/assets/dagre-GXQ25YYZ-DoFMIka4.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-DoFMIka4.js.gz +0 -0
- package/dist/client/assets/{diagram-S7CK7UJ4-BmneUVZf.js → diagram-S7CK7UJ4-DrAwxGx7.js} +1 -1
- package/dist/client/assets/diagram-S7CK7UJ4-DrAwxGx7.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-DrAwxGx7.js.gz +0 -0
- package/dist/client/assets/{diagram-UQ7AKVKN-SsDlu1y-.js → diagram-UQ7AKVKN-DbWfEzKd.js} +1 -1
- package/dist/client/assets/diagram-UQ7AKVKN-DbWfEzKd.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-DbWfEzKd.js.gz +0 -0
- package/dist/client/assets/{diagram-VSXAHHWV-D8x3I59I.js → diagram-VSXAHHWV-zKcVacRq.js} +1 -1
- package/dist/client/assets/diagram-VSXAHHWV-zKcVacRq.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-zKcVacRq.js.gz +0 -0
- package/dist/client/assets/{diagram-VX7I27RA-Cxdgnfbh.js → diagram-VX7I27RA-BNAI-5sG.js} +1 -1
- package/dist/client/assets/diagram-VX7I27RA-BNAI-5sG.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-BNAI-5sG.js.gz +0 -0
- package/dist/client/assets/{diagram-Z3DM3KII-Bn-Md8Cr.js → diagram-Z3DM3KII-ChB9ZeuK.js} +1 -1
- package/dist/client/assets/diagram-Z3DM3KII-ChB9ZeuK.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-ChB9ZeuK.js.gz +0 -0
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-C3FeaeR-.js → ebnfDiagram-PWID7BFC-Fe8VFmWJ.js} +1 -1
- package/dist/client/assets/ebnfDiagram-PWID7BFC-Fe8VFmWJ.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-Fe8VFmWJ.js.gz +0 -0
- package/dist/client/assets/{erDiagram-RLTQ6QDP-Dkl931on.js → erDiagram-RLTQ6QDP-CC7DagoX.js} +1 -1
- package/dist/client/assets/erDiagram-RLTQ6QDP-CC7DagoX.js.br +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-CC7DagoX.js.gz +0 -0
- package/dist/client/assets/{flowDiagram-HODETNUW-DJHNp3k9.js → flowDiagram-HODETNUW-BBIgixMV.js} +1 -1
- package/dist/client/assets/flowDiagram-HODETNUW-BBIgixMV.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-BBIgixMV.js.gz +0 -0
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-DaY1g-nz.js → ganttDiagram-EL5Y4UJY-CHRaIQ9P.js} +1 -1
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CHRaIQ9P.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CHRaIQ9P.js.gz +0 -0
- package/dist/client/assets/{gestureArbiter-4U4PoLbc.js → gestureArbiter-5c1oGojb.js} +1 -1
- package/dist/client/assets/gestureArbiter-5c1oGojb.js.br +0 -0
- package/dist/client/assets/gestureArbiter-5c1oGojb.js.gz +0 -0
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX--yhLbQDf.js → gitGraphDiagram-WWUBYQGX-iJPivC9C.js} +1 -1
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-iJPivC9C.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-iJPivC9C.js.gz +0 -0
- package/dist/client/assets/{infoDiagram-27XIBGKW-Cx-8WBsL.js → infoDiagram-27XIBGKW-CWjxPUb1.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-BXGub2Wj.js → ishikawaDiagram-5VMMS53U-2dN_H6WK.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-BXGub2Wj.js.br → ishikawaDiagram-5VMMS53U-2dN_H6WK.js.br} +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-2dN_H6WK.js.gz +0 -0
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-DXFRBC7a.js → journeyDiagram-3NMN7TZE-BqY-OLE2.js} +1 -1
- package/dist/client/assets/journeyDiagram-3NMN7TZE-BqY-OLE2.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-BqY-OLE2.js.gz +0 -0
- package/dist/client/assets/{kanban-definition-UXKFOSKX-D5DbjYN0.js → kanban-definition-UXKFOSKX-CSOXhjNh.js} +1 -1
- package/dist/client/assets/kanban-definition-UXKFOSKX-CSOXhjNh.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-CSOXhjNh.js.gz +0 -0
- package/dist/client/assets/{layout-v1om_wqK.js → layout-BxIcRRf7.js} +1 -1
- package/dist/client/assets/layout-BxIcRRf7.js.br +0 -0
- package/dist/client/assets/layout-BxIcRRf7.js.gz +0 -0
- package/dist/client/assets/{linear-B0oeh-Ux.js → linear-BYWiw-Yd.js} +1 -1
- package/dist/client/assets/linear-BYWiw-Yd.js.br +0 -0
- package/dist/client/assets/linear-BYWiw-Yd.js.gz +0 -0
- package/dist/client/assets/{mermaid.core-Dd5NfkiJ.js → mermaid.core-DhRpdkKn.js} +5 -5
- package/dist/client/assets/mermaid.core-DhRpdkKn.js.br +0 -0
- package/dist/client/assets/mermaid.core-DhRpdkKn.js.gz +0 -0
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-aItop2_3.js → mindmap-definition-YA3MSWOX-DwBcGwTF.js} +1 -1
- package/dist/client/assets/mindmap-definition-YA3MSWOX-DwBcGwTF.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-DwBcGwTF.js.gz +0 -0
- package/dist/client/assets/{passwordBootstrap-CkZxpps_.js → passwordBootstrap-BkAa-DO2.js} +1 -1
- package/dist/client/assets/passwordBootstrap-BkAa-DO2.js.br +0 -0
- package/dist/client/assets/passwordBootstrap-BkAa-DO2.js.gz +0 -0
- package/dist/client/assets/{pegDiagram-XKGWAZYB-io_H-_O0.js → pegDiagram-XKGWAZYB-D_04AQMs.js} +1 -1
- package/dist/client/assets/pegDiagram-XKGWAZYB-D_04AQMs.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-D_04AQMs.js.gz +0 -0
- package/dist/client/assets/{pieDiagram-E7YTZNPT-DW51U3Vc.js → pieDiagram-E7YTZNPT-DgHIGdDc.js} +1 -1
- package/dist/client/assets/pieDiagram-E7YTZNPT-DgHIGdDc.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-DgHIGdDc.js.gz +0 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-Bb7_7BbB.js → quadrantDiagram-AXDQQJYC-BrxP_uCp.js} +1 -1
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-BrxP_uCp.js.br +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-BrxP_uCp.js.gz +0 -0
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-Cch7xSel.js → railroadDiagram-O6MQD6OU-Bj8aV8et.js} +1 -1
- package/dist/client/assets/railroadDiagram-O6MQD6OU-Bj8aV8et.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-Bj8aV8et.js.gz +0 -0
- package/dist/client/assets/{referenceLongPress-EA0xcUM0.js → referenceLongPress-CG4k8F2W.js} +1 -1
- package/dist/client/assets/referenceLongPress-CG4k8F2W.js.br +0 -0
- package/dist/client/assets/{referenceLongPress-EA0xcUM0.js.gz → referenceLongPress-CG4k8F2W.js.gz} +0 -0
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-VF-s2PGq.js → requirementDiagram-BXWQKSXE-DHOBnmaH.js} +1 -1
- package/dist/client/assets/requirementDiagram-BXWQKSXE-DHOBnmaH.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-DHOBnmaH.js.gz +0 -0
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-DgyDYPKU.js → sankeyDiagram-P5KCCOFB-B46rNwzQ.js} +1 -1
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-B46rNwzQ.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-B46rNwzQ.js.gz +0 -0
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-tcxB1wCN.js → sequenceDiagram-WJ2MYXX4-D8PnDgC6.js} +1 -1
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-D8PnDgC6.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-D8PnDgC6.js.gz +0 -0
- package/dist/client/assets/{sizeCapture-INFHLROL-4D8RAV4f.js → sizeCapture-INFHLROL-CjofpSnZ.js} +1 -1
- package/dist/client/assets/sizeCapture-INFHLROL-CjofpSnZ.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-CjofpSnZ.js.gz +0 -0
- package/dist/client/assets/{sparkles-C_kAT_YI.js → sparkles-Zi8g0TMb.js} +1 -1
- package/dist/client/assets/{stateDiagram-D77RDMKH-C5AtNVsT.js → stateDiagram-D77RDMKH-BX_StFJV.js} +1 -1
- package/dist/client/assets/stateDiagram-D77RDMKH-BX_StFJV.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-BX_StFJV.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-CMG96YGj.js +1 -0
- package/dist/client/assets/{swimlanes-42K2YHIH-jeWNfuDW.js → swimlanes-42K2YHIH-bxGulCYh.js} +1 -1
- package/dist/client/assets/swimlanes-42K2YHIH-bxGulCYh.js.br +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH-bxGulCYh.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-sPKOywKp.js +8 -0
- package/dist/client/assets/{timeline-definition-24CTP7MA--h_HSNFo.js → timeline-definition-24CTP7MA-DcHYPI0d.js} +1 -1
- package/dist/client/assets/timeline-definition-24CTP7MA-DcHYPI0d.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-DcHYPI0d.js.gz +0 -0
- package/dist/client/assets/triangle-alert-BXXcxTk8.js +1 -0
- package/dist/client/assets/{vennDiagram-4TSXK5OY-DtCIS7M_.js → vennDiagram-4TSXK5OY-CjIGwkZf.js} +1 -1
- package/dist/client/assets/vennDiagram-4TSXK5OY-CjIGwkZf.js.br +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-CjIGwkZf.js.gz +0 -0
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-wWbcTCgW.js → wardleyDiagram-VM6X3IG4-B-WK3Fil.js} +1 -1
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-B-WK3Fil.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-B-WK3Fil.js.gz +0 -0
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-CiqNySOJ.js → xychartDiagram-S5SC5T6Z-4RzKQfNK.js} +1 -1
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-4RzKQfNK.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-4RzKQfNK.js.gz +0 -0
- package/dist/client/index.html +1 -1
- package/dist/client/index.html.br +0 -0
- package/dist/client/index.html.gz +0 -0
- package/dist/client/sw.js +1 -1
- package/dist/client/sw.js.br +0 -0
- package/dist/client/sw.js.gz +0 -0
- package/dist/server/agent/collaborationPrompt.js +31 -16
- package/dist/server/agent/collaborationStore.js +17 -3
- package/dist/server/routes/filesystem.js +15 -11
- package/package.json +1 -1
- package/runtime-manifest.json +3 -3
- package/dist/client/assets/App-zSykqDrK.js +0 -155
- package/dist/client/assets/App-zSykqDrK.js.br +0 -0
- package/dist/client/assets/App-zSykqDrK.js.gz +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-Bhk5u4ei.js +0 -2
- package/dist/client/assets/ChangeWalkthroughPanel-Bhk5u4ei.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-Bhk5u4ei.js.gz +0 -0
- package/dist/client/assets/DagPlayground-9DE-yoRV.js.br +0 -0
- package/dist/client/assets/DagPlayground-9DE-yoRV.js.gz +0 -0
- package/dist/client/assets/DiffLab-CjyMoL77.js.br +0 -0
- package/dist/client/assets/DiffLab-CjyMoL77.js.gz +0 -0
- package/dist/client/assets/DiffReview-kSV-dlGf.js.br +0 -0
- package/dist/client/assets/DiffReview-kSV-dlGf.js.gz +0 -0
- package/dist/client/assets/DiffReviewLab-DL8o3FzO.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-DL8o3FzO.js.gz +0 -0
- package/dist/client/assets/DiffViewer-8lX1Yp21.js.br +0 -0
- package/dist/client/assets/DiffViewer-8lX1Yp21.js.gz +0 -0
- package/dist/client/assets/ModelPreview-Di9v8eC8.js.br +0 -0
- package/dist/client/assets/ModelPreview-Di9v8eC8.js.gz +0 -0
- package/dist/client/assets/RightSidebar-C4BW2Wwm.js.br +0 -0
- package/dist/client/assets/RightSidebar-C4BW2Wwm.js.gz +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-hlnPn1XS.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-hlnPn1XS.js.gz +0 -0
- package/dist/client/assets/app-CSIciOPl.js.br +0 -0
- package/dist/client/assets/app-CSIciOPl.js.gz +0 -0
- package/dist/client/assets/arc-DRWaGXMR.js.br +0 -0
- package/dist/client/assets/arc-DRWaGXMR.js.gz +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-CGgjTR71.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-CGgjTR71.js.gz +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-CoSXp3bo.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-CoSXp3bo.js.gz +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-T24R2Qbf.js.gz +0 -0
- package/dist/client/assets/channel-3gIaLXRE.js +0 -1
- package/dist/client/assets/chunk-F27PBJKO-BZcc7Ic4.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-BZcc7Ic4.js.gz +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-CwEcJlSi.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-CwEcJlSi.js.gz +0 -0
- package/dist/client/assets/chunk-SVP7TREG-MyWxRYxW.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-MyWxRYxW.js.gz +0 -0
- package/dist/client/assets/chunk-TICWLB2K-By-otV7X.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-By-otV7X.js.gz +0 -0
- package/dist/client/assets/classDiagram-ZZMXUADV-BZRR_eIG.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-BZRR_eIG.js +0 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-S4CHO_jm.js.br +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-S4CHO_jm.js.gz +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-D-Tdm--u.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-D-Tdm--u.js.gz +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-FSHeEj_r.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-FSHeEj_r.js.gz +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-BdeaoJ-E.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-BdeaoJ-E.js.gz +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-BmneUVZf.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-BmneUVZf.js.gz +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-SsDlu1y-.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-SsDlu1y-.js.gz +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-D8x3I59I.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-D8x3I59I.js.gz +0 -0
- package/dist/client/assets/diagram-VX7I27RA-Cxdgnfbh.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-Cxdgnfbh.js.gz +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-Bn-Md8Cr.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-Bn-Md8Cr.js.gz +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-C3FeaeR-.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-C3FeaeR-.js.gz +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-Dkl931on.js.br +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-Dkl931on.js.gz +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-DJHNp3k9.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-DJHNp3k9.js.gz +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-DaY1g-nz.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-DaY1g-nz.js.gz +0 -0
- package/dist/client/assets/gestureArbiter-4U4PoLbc.js.br +0 -0
- package/dist/client/assets/gestureArbiter-4U4PoLbc.js.gz +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX--yhLbQDf.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX--yhLbQDf.js.gz +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-BXGub2Wj.js.gz +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-DXFRBC7a.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-DXFRBC7a.js.gz +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-D5DbjYN0.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-D5DbjYN0.js.gz +0 -0
- package/dist/client/assets/layout-v1om_wqK.js.br +0 -0
- package/dist/client/assets/layout-v1om_wqK.js.gz +0 -0
- package/dist/client/assets/linear-B0oeh-Ux.js.br +0 -0
- package/dist/client/assets/linear-B0oeh-Ux.js.gz +0 -0
- package/dist/client/assets/mermaid.core-Dd5NfkiJ.js.br +0 -0
- package/dist/client/assets/mermaid.core-Dd5NfkiJ.js.gz +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-aItop2_3.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-aItop2_3.js.gz +0 -0
- package/dist/client/assets/passwordBootstrap-CkZxpps_.js.br +0 -0
- package/dist/client/assets/passwordBootstrap-CkZxpps_.js.gz +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-io_H-_O0.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-io_H-_O0.js.gz +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-DW51U3Vc.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-DW51U3Vc.js.gz +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-Bb7_7BbB.js.br +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-Bb7_7BbB.js.gz +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-Cch7xSel.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-Cch7xSel.js.gz +0 -0
- package/dist/client/assets/referenceLongPress-EA0xcUM0.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-VF-s2PGq.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-VF-s2PGq.js.gz +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-DgyDYPKU.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-DgyDYPKU.js.gz +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-tcxB1wCN.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-tcxB1wCN.js.gz +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-4D8RAV4f.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-4D8RAV4f.js.gz +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-C5AtNVsT.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-C5AtNVsT.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-BTojZbKH.js +0 -1
- package/dist/client/assets/swimlanes-42K2YHIH-jeWNfuDW.js.br +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH-jeWNfuDW.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DAkPyl3g.js +0 -8
- package/dist/client/assets/timeline-definition-24CTP7MA--h_HSNFo.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA--h_HSNFo.js.gz +0 -0
- package/dist/client/assets/triangle-alert-BoF7CWrV.js +0 -1
- package/dist/client/assets/vennDiagram-4TSXK5OY-DtCIS7M_.js.br +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-DtCIS7M_.js.gz +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-wWbcTCgW.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-wWbcTCgW.js.gz +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-CiqNySOJ.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-CiqNySOJ.js.gz +0 -0
|
@@ -10,7 +10,7 @@ import busboy from 'busboy';
|
|
|
10
10
|
import { validatePreview } from '../utils/previewValidation.js';
|
|
11
11
|
import { pathValidator } from '../utils/pathValidator.js';
|
|
12
12
|
import { isAuthEnabled, isRequestAuthenticated } from '../utils/authProtection.js';
|
|
13
|
-
import { isEncryptedRequest } from '../federation/requestContext.js';
|
|
13
|
+
import { encryptedRequestSubject, isEncryptedRequest } from '../federation/requestContext.js';
|
|
14
14
|
import { getImageDimensions, parseImageDimensions } from '../utils/imageDimensions.js';
|
|
15
15
|
import { writeDiffTraceLog, writeErrorLog, writeJsonLog } from '../utils/serverLogger.js';
|
|
16
16
|
import { clearBranchAuditRecords, clearChangeAuditRecords, listBranchAuditRecords, listChangeAuditRecords, buildChangeAuditFingerprint } from '../utils/changeAuditStore.js';
|
|
@@ -3580,20 +3580,23 @@ export function isPathWithinPreviewRoot(root, targetPath) {
|
|
|
3580
3580
|
const prefix = resolvedRoot.endsWith(path.sep) ? resolvedRoot : `${resolvedRoot}${path.sep}`;
|
|
3581
3581
|
return resolvedTarget === resolvedRoot || resolvedTarget.startsWith(prefix);
|
|
3582
3582
|
}
|
|
3583
|
-
//
|
|
3584
|
-
|
|
3583
|
+
// Device tokens require the verified channel on every read; its runtime rechecks
|
|
3584
|
+
// current authorization. Legacy cookie tokens retain their session validation.
|
|
3585
|
+
export function validatePreviewToken(token, targetPath, subjectId) {
|
|
3585
3586
|
const entry = previewTokens.get(token);
|
|
3586
3587
|
if (!entry)
|
|
3587
3588
|
return false;
|
|
3588
|
-
if (entry.expiresAt <= Date.now() || (entry.ownerSession ? !isSessionValid(entry.ownerSession) : isAuthEnabled())) {
|
|
3589
|
+
if (entry.expiresAt <= Date.now() || (!entry.ownerSubject && (entry.ownerSession ? !isSessionValid(entry.ownerSession) : isAuthEnabled()))) {
|
|
3589
3590
|
previewTokens.delete(token);
|
|
3590
3591
|
return false;
|
|
3591
3592
|
}
|
|
3593
|
+
if (entry.ownerSubject && entry.ownerSubject !== subjectId)
|
|
3594
|
+
return false;
|
|
3592
3595
|
if (!isPathWithinPreviewRoot(entry.root, targetPath))
|
|
3593
3596
|
return false;
|
|
3594
3597
|
return true;
|
|
3595
3598
|
}
|
|
3596
|
-
export function mintPreviewToken(root, ownerSession) {
|
|
3599
|
+
export function mintPreviewToken(root, ownerSession, ownerSubject) {
|
|
3597
3600
|
const now = Date.now();
|
|
3598
3601
|
for (const [token, entry] of previewTokens) {
|
|
3599
3602
|
if (entry.expiresAt < now)
|
|
@@ -3602,7 +3605,7 @@ export function mintPreviewToken(root, ownerSession) {
|
|
|
3602
3605
|
if (previewTokens.size >= 128)
|
|
3603
3606
|
previewTokens.delete(previewTokens.keys().next().value);
|
|
3604
3607
|
const token = crypto.randomBytes(16).toString('hex');
|
|
3605
|
-
previewTokens.set(token, { root: path.resolve(root), expiresAt: now + PREVIEW_TOKEN_TTL_MS, ownerSession });
|
|
3608
|
+
previewTokens.set(token, { root: path.resolve(root), expiresAt: now + PREVIEW_TOKEN_TTL_MS, ownerSession, ownerSubject });
|
|
3606
3609
|
return token;
|
|
3607
3610
|
}
|
|
3608
3611
|
function tokenizePreviewUrl(previewBaseUrl, token) {
|
|
@@ -3664,6 +3667,7 @@ router.get('/preview/*path', async (req, res) => {
|
|
|
3664
3667
|
// injected <base> so it always equals the document URL.
|
|
3665
3668
|
const previewBaseUrl = req.originalUrl.split('?', 1)[0];
|
|
3666
3669
|
const authEnabled = isAuthEnabled();
|
|
3670
|
+
const subjectId = encryptedRequestSubject(req);
|
|
3667
3671
|
// Token requests carry their own credential in the URL. Document requests
|
|
3668
3672
|
// must present the session cookie before we mint a token for them.
|
|
3669
3673
|
if (!maybeToken && authEnabled && !isRequestAuthenticated(req)) {
|
|
@@ -3672,13 +3676,13 @@ router.get('/preview/*path', async (req, res) => {
|
|
|
3672
3676
|
}
|
|
3673
3677
|
if (maybeToken) {
|
|
3674
3678
|
const entry = previewTokens.get(maybeToken);
|
|
3675
|
-
if (!entry || !validatePreviewToken(maybeToken, entry.root)) {
|
|
3679
|
+
if (!entry || !validatePreviewToken(maybeToken, entry.root, subjectId)) {
|
|
3676
3680
|
res.status(403).json({ error: 'Preview token invalid or expired', code: 'PREVIEW_TOKEN_INVALID' });
|
|
3677
3681
|
return;
|
|
3678
3682
|
}
|
|
3679
3683
|
}
|
|
3680
3684
|
const validatedPath = await pathValidator.validatePathAsync(requestedPath);
|
|
3681
|
-
if (maybeToken && !validatePreviewToken(maybeToken, validatedPath)) {
|
|
3685
|
+
if (maybeToken && !validatePreviewToken(maybeToken, validatedPath, subjectId)) {
|
|
3682
3686
|
res.status(403).json({ error: 'Preview path outside token scope', code: 'PREVIEW_TOKEN_INVALID' });
|
|
3683
3687
|
return;
|
|
3684
3688
|
}
|
|
@@ -3708,10 +3712,10 @@ router.get('/preview/*path', async (req, res) => {
|
|
|
3708
3712
|
// relative reference the document makes.
|
|
3709
3713
|
if ((authEnabled || isEncryptedRequest(req)) && !maybeToken) {
|
|
3710
3714
|
const root = stat.isDirectory() ? validatedPath : path.dirname(validatedPath);
|
|
3711
|
-
const tokenized = tokenizePreviewUrl(previewBaseUrl, mintPreviewToken(root, req.cookies?.[AUTH_COOKIE]));
|
|
3715
|
+
const tokenized = tokenizePreviewUrl(previewBaseUrl, mintPreviewToken(root, req.cookies?.[AUTH_COOKIE], subjectId));
|
|
3712
3716
|
redirectUrl = stat.isDirectory() && !previewBaseUrl.endsWith('/') ? `${tokenized}/` : tokenized;
|
|
3713
3717
|
}
|
|
3714
|
-
if (maybeToken && !validatePreviewToken(maybeToken, targetPath)) {
|
|
3718
|
+
if (maybeToken && !validatePreviewToken(maybeToken, targetPath, subjectId)) {
|
|
3715
3719
|
res.status(403).json({ error: 'Preview token invalid or expired', code: 'PREVIEW_TOKEN_INVALID' });
|
|
3716
3720
|
return;
|
|
3717
3721
|
}
|
|
@@ -3723,7 +3727,7 @@ router.get('/preview/*path', async (req, res) => {
|
|
|
3723
3727
|
res.status(400).json({ error: 'Path is not a file' });
|
|
3724
3728
|
return;
|
|
3725
3729
|
}
|
|
3726
|
-
if (maybeToken && !validatePreviewToken(maybeToken, targetPath)) {
|
|
3730
|
+
if (maybeToken && !validatePreviewToken(maybeToken, targetPath, subjectId)) {
|
|
3727
3731
|
res.status(403).json({ error: 'Preview token invalid or expired', code: 'PREVIEW_TOKEN_INVALID' });
|
|
3728
3732
|
return;
|
|
3729
3733
|
}
|
package/package.json
CHANGED
package/runtime-manifest.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"packageName": "termdock",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.239",
|
|
5
5
|
"runtimeProtocolVersion": 1,
|
|
6
6
|
"minimumDesktopVersion": "1.4.46",
|
|
7
7
|
"nodeMajor": 22,
|
|
8
8
|
"dependencyHash": "sha256-K4KyYJuVoQDpZsBM8ZX1Rw3MddOxAzVdp/cPm0iGZz0=",
|
|
9
|
-
"serverBundleHash": "sha256-
|
|
10
|
-
"clientBundleHash": "sha256-
|
|
9
|
+
"serverBundleHash": "sha256-b2hW5XzG58ErGFDet7CETfl7sHtPoDhHjTnL3mzU63s=",
|
|
10
|
+
"clientBundleHash": "sha256-1wPbozETRlatzFMaBkX5wcha5zbSwUdAw4I0XckzdLk=",
|
|
11
11
|
"entrypoint": "dist/server/cli.js",
|
|
12
12
|
"clientEntrypoint": "dist/client/index.html"
|
|
13
13
|
}
|