termdock 1.4.238 → 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-BvnU5iIE.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-CSeMFrtl.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-D-5YkY_H.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-CWjl-8Pe.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-BPsVQrjM.js → DiffViewer-GLkd1zMQ.js} +1 -1
- 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-BFycVhUy.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-BX6rhGB4.js → RightSidebar-aoJjOQGX.js} +9 -9
- 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-BTzZAuBK.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-B6ME9Eob.js → app-Ctrh4Bku.js} +3 -3
- 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-DIV29t9b.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-DgHv-608.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-DwJbcw0g.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-I_d1HrDr.js → c4Diagram-7LVT6UL2-B8VGhLwN.js} +1 -1
- package/dist/client/assets/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-D8Up9_Qq.js → chunk-2Q5K7J3B-D56jCJTr.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-Bqu4flXy.js → chunk-5VM5RSS4-cga3WKIM.js} +1 -1
- package/dist/client/assets/{chunk-F27PBJKO-BEx-OJOh.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-DXRKd1hc.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-SPMqs5Ed.js → chunk-JWPE2WC7-CVqdLg0d.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-BP5FdWvP.js → chunk-POPQ4Y6H-Y6gEzK15.js} +1 -1
- package/dist/client/assets/{chunk-SVP7TREG-Cd1MiWuY.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-Bp824MdF.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-BgSF02Yo.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-MIotlu8S.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-Bx5fAwL9.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-Dq1IWXBH.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-1uJhB1J8.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-immgVZRx.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-DY0SJCkK.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-M6gBY9G0.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--S_w2OZo.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-HEropZ-M.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-DkeQP1kU.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-1dq1ilk2.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-CDX2AeEa.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-BF9-qd5G.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-CahhrDMO.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-Dr4H-ZZx.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-Bhu1F8ZQ.js → infoDiagram-27XIBGKW-CWjxPUb1.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-D5U3zNlZ.js → ishikawaDiagram-5VMMS53U-2dN_H6WK.js} +1 -1
- package/dist/client/assets/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-Cf3flu2q.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-UtUZxvq0.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-BtJol8tT.js → layout-BxIcRRf7.js} +1 -1
- package/dist/client/assets/layout-BxIcRRf7.js.br +0 -0
- package/dist/client/assets/{layout-BtJol8tT.js.gz → layout-BxIcRRf7.js.gz} +0 -0
- package/dist/client/assets/{linear-NTUDg_k8.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-B2sd_0VA.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-BvnyWmZW.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-B-JP42Ue.js → passwordBootstrap-BkAa-DO2.js} +1 -1
- package/dist/client/assets/{passwordBootstrap-B-JP42Ue.js.br → passwordBootstrap-BkAa-DO2.js.br} +0 -0
- package/dist/client/assets/passwordBootstrap-BkAa-DO2.js.gz +0 -0
- package/dist/client/assets/{pegDiagram-XKGWAZYB-BEfaiRkj.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-BJfWnKSk.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-BTvO0D46.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-DBt4EfEX.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-CJDSbgHQ.js → referenceLongPress-CG4k8F2W.js} +1 -1
- package/dist/client/assets/referenceLongPress-CG4k8F2W.js.br +0 -0
- package/dist/client/assets/referenceLongPress-CG4k8F2W.js.gz +0 -0
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-lxRII39y.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-Dzx7pHhn.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-A72IGdL2.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-DBDKkK1y.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-CWd8p2g-.js → sparkles-Zi8g0TMb.js} +1 -1
- package/dist/client/assets/{stateDiagram-D77RDMKH-CYH1Rw0N.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-GvNJG8iK.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-CXGKAjVh.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-DcjHEFq_.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-DYHafp-J.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-B6LMaSHZ.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-DIvCDJHZ.js +0 -155
- package/dist/client/assets/App-DIvCDJHZ.js.br +0 -0
- package/dist/client/assets/App-DIvCDJHZ.js.gz +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-BlM9ZAiG.js +0 -2
- package/dist/client/assets/ChangeWalkthroughPanel-BlM9ZAiG.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-BlM9ZAiG.js.gz +0 -0
- package/dist/client/assets/DagPlayground-BvnU5iIE.js.br +0 -0
- package/dist/client/assets/DagPlayground-BvnU5iIE.js.gz +0 -0
- package/dist/client/assets/DiffLab-CSeMFrtl.js.br +0 -0
- package/dist/client/assets/DiffLab-CSeMFrtl.js.gz +0 -0
- package/dist/client/assets/DiffReview-D-5YkY_H.js.br +0 -0
- package/dist/client/assets/DiffReview-D-5YkY_H.js.gz +0 -0
- package/dist/client/assets/DiffReviewLab-CWjl-8Pe.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-CWjl-8Pe.js.gz +0 -0
- package/dist/client/assets/DiffViewer-BPsVQrjM.js.br +0 -0
- package/dist/client/assets/DiffViewer-BPsVQrjM.js.gz +0 -0
- package/dist/client/assets/ModelPreview-BFycVhUy.js.br +0 -0
- package/dist/client/assets/ModelPreview-BFycVhUy.js.gz +0 -0
- package/dist/client/assets/RightSidebar-BX6rhGB4.js.br +0 -0
- package/dist/client/assets/RightSidebar-BX6rhGB4.js.gz +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-BTzZAuBK.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-BTzZAuBK.js.gz +0 -0
- package/dist/client/assets/app-B6ME9Eob.js.br +0 -0
- package/dist/client/assets/app-B6ME9Eob.js.gz +0 -0
- package/dist/client/assets/arc-DIV29t9b.js.br +0 -0
- package/dist/client/assets/arc-DIV29t9b.js.gz +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-DgHv-608.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-DgHv-608.js.gz +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-DwJbcw0g.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-DwJbcw0g.js.gz +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-I_d1HrDr.js.br +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-I_d1HrDr.js.gz +0 -0
- package/dist/client/assets/channel-BOGwCQT3.js +0 -1
- package/dist/client/assets/chunk-F27PBJKO-BEx-OJOh.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-BEx-OJOh.js.gz +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-DXRKd1hc.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-DXRKd1hc.js.gz +0 -0
- package/dist/client/assets/chunk-SVP7TREG-Cd1MiWuY.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-Cd1MiWuY.js.gz +0 -0
- package/dist/client/assets/chunk-TICWLB2K-Bp824MdF.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-Bp824MdF.js.gz +0 -0
- package/dist/client/assets/classDiagram-ZZMXUADV--MBMAd-k.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY--MBMAd-k.js +0 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-MIotlu8S.js.br +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-MIotlu8S.js.gz +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-Bx5fAwL9.js.br +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-Bx5fAwL9.js.gz +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-Dq1IWXBH.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-Dq1IWXBH.js.gz +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-1uJhB1J8.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-1uJhB1J8.js.gz +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-immgVZRx.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-immgVZRx.js.gz +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-DY0SJCkK.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-DY0SJCkK.js.gz +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-M6gBY9G0.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-M6gBY9G0.js.gz +0 -0
- package/dist/client/assets/diagram-VX7I27RA--S_w2OZo.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA--S_w2OZo.js.gz +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-HEropZ-M.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-HEropZ-M.js.gz +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-DkeQP1kU.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-DkeQP1kU.js.gz +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-1dq1ilk2.js.br +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-1dq1ilk2.js.gz +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-CDX2AeEa.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-CDX2AeEa.js.gz +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-BF9-qd5G.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-BF9-qd5G.js.gz +0 -0
- package/dist/client/assets/gestureArbiter-CahhrDMO.js.br +0 -0
- package/dist/client/assets/gestureArbiter-CahhrDMO.js.gz +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-Dr4H-ZZx.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-Dr4H-ZZx.js.gz +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-D5U3zNlZ.js.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-D5U3zNlZ.js.gz +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-Cf3flu2q.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-Cf3flu2q.js.gz +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-UtUZxvq0.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-UtUZxvq0.js.gz +0 -0
- package/dist/client/assets/layout-BtJol8tT.js.br +0 -0
- package/dist/client/assets/linear-NTUDg_k8.js.br +0 -0
- package/dist/client/assets/linear-NTUDg_k8.js.gz +0 -0
- package/dist/client/assets/mermaid.core-B2sd_0VA.js.br +0 -0
- package/dist/client/assets/mermaid.core-B2sd_0VA.js.gz +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-BvnyWmZW.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-BvnyWmZW.js.gz +0 -0
- package/dist/client/assets/passwordBootstrap-B-JP42Ue.js.gz +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-BEfaiRkj.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-BEfaiRkj.js.gz +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-BJfWnKSk.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-BJfWnKSk.js.gz +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-BTvO0D46.js.br +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-BTvO0D46.js.gz +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-DBt4EfEX.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-DBt4EfEX.js.gz +0 -0
- package/dist/client/assets/referenceLongPress-CJDSbgHQ.js.br +0 -0
- package/dist/client/assets/referenceLongPress-CJDSbgHQ.js.gz +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-lxRII39y.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-lxRII39y.js.gz +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-Dzx7pHhn.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-Dzx7pHhn.js.gz +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-A72IGdL2.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-A72IGdL2.js.gz +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-DBDKkK1y.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-DBDKkK1y.js.gz +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-CYH1Rw0N.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-CYH1Rw0N.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-ClPva5pp.js +0 -1
- package/dist/client/assets/swimlanes-42K2YHIH-GvNJG8iK.js.br +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH-GvNJG8iK.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-D0YOfmzt.js +0 -8
- package/dist/client/assets/timeline-definition-24CTP7MA-CXGKAjVh.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-CXGKAjVh.js.gz +0 -0
- package/dist/client/assets/triangle-alert--V4KOVlD.js +0 -1
- package/dist/client/assets/vennDiagram-4TSXK5OY-DcjHEFq_.js.br +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-DcjHEFq_.js.gz +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-DYHafp-J.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-DYHafp-J.js.gz +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-B6LMaSHZ.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-B6LMaSHZ.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
|
}
|