@band-app/server 0.27.3 → 0.28.0
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/dist/client/assets/DockviewBrowserContainer-Cb5tND2-.js +5 -0
- package/dist/client/assets/DockviewTerminalContainer-DtC5tEpc.js +2 -0
- package/dist/client/assets/TerminalPanel-Dvediq7Q.js +1 -0
- package/dist/client/assets/{_basePickBy-DgdWRKVZ.js → _basePickBy-DqPTgiYW.js} +1 -1
- package/dist/client/assets/{_baseUniq-CSLoghI1.js → _baseUniq-eOMdENLf.js} +1 -1
- package/dist/client/assets/addon-fit-tyBwD3Sv.js +1 -0
- package/dist/client/assets/addon-search-DBOYg5r3.js +1 -0
- package/dist/client/assets/addon-web-links-loeDqaBY.js +1 -0
- package/dist/client/assets/addon-webgl-q3t2iERs.js +58 -0
- package/dist/client/assets/arc-E8N50wns.js +1 -0
- package/dist/client/assets/architectureDiagram-VXUJARFQ-CH9xQ4Zk.js +36 -0
- package/dist/client/assets/{blockDiagram-VD42YOAC-C3e5fgZX.js → blockDiagram-VD42YOAC-DfOb0HUa.js} +4 -4
- package/dist/client/assets/{c4Diagram-YG6GDRKO-n3swKPOX.js → c4Diagram-YG6GDRKO-Bs2smElc.js} +3 -3
- package/dist/client/assets/channel-C10diLPc.js +1 -0
- package/dist/client/assets/chunk-4BX2VUAB-D5Leiw3K.js +1 -0
- package/dist/client/assets/chunk-55IACEB6-BffELVEe.js +1 -0
- package/dist/client/assets/{chunk-B4BG7PRW-B3hq3FSg.js → chunk-B4BG7PRW-DAmo4-53.js} +4 -4
- package/dist/client/assets/{chunk-DI55MBZ5-CgA_wYLF.js → chunk-DI55MBZ5-Cmqa18mC.js} +3 -3
- package/dist/client/assets/{chunk-FMBD7UC4-BDVfWVnR.js → chunk-FMBD7UC4-DkdelTF_.js} +1 -1
- package/dist/client/assets/chunk-QN33PNHL-B0MEtBwd.js +1 -0
- package/dist/client/assets/chunk-QZHKN3VN-DjnKSP2T.js +1 -0
- package/dist/client/assets/chunk-TZMSLE5B-MpeQnWpy.js +1 -0
- package/dist/client/assets/classDiagram-2ON5EDUG-Bv-ZmFze.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-Bv-ZmFze.js +1 -0
- package/dist/client/assets/clone-CnJtPTq2.js +1 -0
- package/dist/client/assets/cose-bilkent-S5V4N54A-pmD-JuJG.js +1 -0
- package/dist/client/assets/dagre-6UL2VRFP-3ThpdYzV.js +4 -0
- package/dist/client/assets/diagram-PSM6KHXK-DGAUrhJO.js +24 -0
- package/dist/client/assets/diagram-QEK2KX5R-CIlRM_FB.js +43 -0
- package/dist/client/assets/diagram-S2PKOQOG-CC6fDaBM.js +24 -0
- package/dist/client/assets/{erDiagram-Q2GNP2WA-C9F4suN0.js → erDiagram-Q2GNP2WA-CvBFS94I.js} +2 -2
- package/dist/client/assets/{flowDiagram-NV44I4VS-BSz5UKiy.js → flowDiagram-NV44I4VS-CYeCcso5.js} +5 -5
- package/dist/client/assets/{ganttDiagram-JELNMOA3-sz48kHFc.js → ganttDiagram-JELNMOA3-DJ5kU1c0.js} +4 -4
- package/dist/client/assets/gitGraphDiagram-V2S2FVAM-DAQ0jk-B.js +65 -0
- package/dist/client/assets/{graph-Cz8A8b2j.js → graph-BnATkwQq.js} +1 -1
- package/dist/client/assets/highlighted-body-B3W2YXNL-COns-xxb.js +1 -0
- package/dist/client/assets/{index-BDrFjua5.js → index-0DJQdyWA.js} +1 -1
- package/dist/client/assets/{index-CD30GfqE.js → index-9SJQZibH.js} +1 -1
- package/dist/client/assets/{index-DjlBSiL5.js → index-Bgo7w7OZ.js} +2 -2
- package/dist/client/assets/{index-DJN5GL5X.js → index-Bzp5nisf.js} +1 -1
- package/dist/client/assets/{index-BeWJ05Wl.js → index-CGUMpGrc.js} +1 -1
- package/dist/client/assets/{index-BUZcRm7c.js → index-CLga7XYR.js} +1 -1
- package/dist/client/assets/{index-DJeb2XRM.js → index-CVF6F-lI.js} +1 -1
- package/dist/client/assets/{index-CBR8GRaN.js → index-CZviQNQc.js} +1 -1
- package/dist/client/assets/{index-D3eZY_GR.js → index-CaU7fX0l.js} +4 -4
- package/dist/client/assets/{index-8D38U21D.js → index-Cr3Q8m6x.js} +1 -1
- package/dist/client/assets/{index-D-4b2aAW.js → index-CuhDrGcu.js} +1 -1
- package/dist/client/assets/{index-BDOVs_I_.js → index-D0SneitA.js} +1 -1
- package/dist/client/assets/{index-DAAM93ZF.js → index-D1DlocvQ.js} +1 -1
- package/dist/client/assets/{index-CNjvLb3b.js → index-DS4Cq8BR.js} +1 -1
- package/dist/client/assets/{index-CxvAnQKK.js → index-DTOxIri0.js} +1 -1
- package/dist/client/assets/{index-CJtV93ic.js → index-G5rNv22E.js} +1 -1
- package/dist/client/assets/{index-DkBkAo0o.js → index-QZEUQnMo.js} +1 -1
- package/dist/client/assets/{index-B1SaS9uB.js → index-wtNf4fSu.js} +1 -1
- package/dist/client/assets/infoDiagram-HS3SLOUP-BZpLk1S6.js +2 -0
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-DwrlNcfN.js → journeyDiagram-XKPGCS4Q-B2dN7Ihx.js} +3 -3
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-BwGcueri.js → kanban-definition-3W4ZIXB7-CvAH-1eK.js} +5 -5
- package/dist/client/assets/{layout-D1WkFzlV.js → layout-DsmnOA8K.js} +1 -1
- package/dist/client/assets/{main-BfbNp6IP.js → main-B5xivRU0.js} +227 -225
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-CBhaYhj6.js → mindmap-definition-VGOIOE7T-DrUOg0ee.js} +2 -2
- package/dist/client/assets/pieDiagram-ADFJNKIX-CIffU8Mf.js +30 -0
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-CyRO563r.js → quadrantDiagram-AYHSOK5B-nqfaxOli.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-CtbtuyqL.js → requirementDiagram-UZGBJVZJ-C-VpgYm3.js} +4 -4
- package/dist/client/assets/sankeyDiagram-TZEHDZUN-CyZt6DYw.js +10 -0
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-CNo3RQqX.js → sequenceDiagram-WL72ISMW-9ociS4Pd.js} +1 -1
- package/dist/client/assets/{square-terminal-DEmN84EQ.js → square-terminal-CC59OwZb.js} +1 -1
- package/dist/client/assets/stateDiagram-FKZM4ZOC-CSSR_If4.js +1 -0
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-CJXOhQoa.js +1 -0
- package/dist/client/assets/{timeline-definition-IT6M3QCI-DvS-N2gQ.js → timeline-definition-IT6M3QCI-BW0qFg7u.js} +4 -4
- package/dist/client/assets/{treemap-GDKQZRPO-CH8cAEaj.js → treemap-GDKQZRPO-QXaG9pez.js} +1 -1
- package/dist/client/assets/workspace._workspaceId-BXQv6AEi.js +2 -0
- package/dist/client/assets/{workspace._workspaceId-BVqLW2JP.js → workspace._workspaceId-E9OgN9_r.js} +1 -1
- package/dist/client/assets/xterm-CPJFL3h0.js +10 -0
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-Bzu5NR49.js → xychartDiagram-PRI3JC2R-Le0haBOn.js} +4 -4
- package/dist/openapi.json +93 -0
- package/dist/server/assets/{DockviewBrowserContainer-CnSo-OTW.js → DockviewBrowserContainer-CsuCLGPB.js} +43 -9
- package/dist/server/assets/{DockviewTerminalContainer-CYIzkS7Q.js → DockviewTerminalContainer-CwIvdmWg.js} +80 -24
- package/dist/server/assets/{TerminalPanel-Daobfe0D.js → TerminalPanel-BjFzYnwv.js} +1 -1
- package/dist/server/assets/{_basePickBy-CvqycMoz.js → _basePickBy-Dt032XZR.js} +2 -2
- package/dist/server/assets/{_baseUniq-Ca4dNPYd.js → _baseUniq-Dx805qgm.js} +1 -1
- package/dist/server/assets/{_tanstack-start-manifest_v-Dd2Ahs0X.js → _tanstack-start-manifest_v-COQlJMnu.js} +1 -1
- package/dist/server/assets/addon-fit-CEa6tvg4.js +27 -0
- package/dist/server/assets/addon-search-WCacnXal.js +497 -0
- package/dist/server/assets/addon-web-links-Dxbauyv9.js +100 -0
- package/dist/server/assets/{addon-webgl-BeO2q2vc.js → addon-webgl-hypMW_go.js} +735 -699
- package/dist/server/assets/{arc-Ch2Y82lQ.js → arc-CtEQz2uN.js} +1 -1
- package/dist/server/assets/{architecture-7HQA4BMR-Cn5R-Wc8.js → architecture-7HQA4BMR-Em_GxwB3.js} +6 -6
- package/dist/server/assets/{architectureDiagram-VXUJARFQ-DmPaiPb0.js → architectureDiagram-VXUJARFQ-DWQK_mjx.js} +6 -6
- package/dist/server/assets/{blockDiagram-VD42YOAC-MLospk27.js → blockDiagram-VD42YOAC-qNKSSOiA.js} +6 -6
- package/dist/server/assets/{c4Diagram-YG6GDRKO-Djjx3FUg.js → c4Diagram-YG6GDRKO-icsTEY_q.js} +2 -2
- package/dist/server/assets/{channel-BB5di9g5.js → channel-CocZU9PS.js} +1 -1
- package/dist/server/assets/{chunk-4BX2VUAB-CS6HocXh.js → chunk-4BX2VUAB-u5sgcVwr.js} +1 -1
- package/dist/server/assets/{chunk-55IACEB6-DGQ1mLLd.js → chunk-55IACEB6-BNdWb1PT.js} +1 -1
- package/dist/server/assets/{chunk-B4BG7PRW-pXzDRJ4d.js → chunk-B4BG7PRW-CZXmp53w.js} +4 -4
- package/dist/server/assets/{chunk-DI55MBZ5-Jm4hx3BP.js → chunk-DI55MBZ5-CMkUZy-j.js} +3 -3
- package/dist/server/assets/{chunk-FMBD7UC4-B8oVwHb4.js → chunk-FMBD7UC4-CX48tx4f.js} +1 -1
- package/dist/server/assets/{chunk-QN33PNHL-DZ3FBPok.js → chunk-QN33PNHL-CFUvYjPQ.js} +1 -1
- package/dist/server/assets/{chunk-QZHKN3VN-BQYEjM0Z.js → chunk-QZHKN3VN-gxKoQKS6.js} +1 -1
- package/dist/server/assets/{chunk-TZMSLE5B-CHtaUyz-.js → chunk-TZMSLE5B-BpSwHKhJ.js} +1 -1
- package/dist/server/assets/{classDiagram-2ON5EDUG-X7KqLhKF.js → classDiagram-2ON5EDUG-l6b9Vcgx.js} +5 -5
- package/dist/server/assets/{classDiagram-v2-WZHVMYZB-X7KqLhKF.js → classDiagram-v2-WZHVMYZB-l6b9Vcgx.js} +5 -5
- package/dist/server/assets/{clone-DnwjFOX6.js → clone-ad8kNo9I.js} +1 -1
- package/dist/server/assets/{cose-bilkent-S5V4N54A-8L7qoph4.js → cose-bilkent-S5V4N54A-BLGSoiwZ.js} +1 -1
- package/dist/server/assets/{dagre-6UL2VRFP-C53aXdHn.js → dagre-6UL2VRFP-KhR_sqmC.js} +6 -6
- package/dist/server/assets/{diagram-PSM6KHXK-wT0t2ud3.js → diagram-PSM6KHXK-BbLKP0jy.js} +7 -7
- package/dist/server/assets/{diagram-QEK2KX5R-CGC_d1Cr.js → diagram-QEK2KX5R-D7l4SdBN.js} +6 -6
- package/dist/server/assets/{diagram-S2PKOQOG-H4AlTtTe.js → diagram-S2PKOQOG-DwDdbVOq.js} +6 -6
- package/dist/server/assets/{erDiagram-Q2GNP2WA-mlZJG843.js → erDiagram-Q2GNP2WA-DkXzXPzQ.js} +4 -4
- package/dist/server/assets/{flowDiagram-NV44I4VS-D1kYppZx.js → flowDiagram-NV44I4VS-D9vm5Eu1.js} +5 -5
- package/dist/server/assets/{ganttDiagram-JELNMOA3-BNYjNZVL.js → ganttDiagram-JELNMOA3-D_pyvt8v.js} +1 -1
- package/dist/server/assets/{gitGraph-G5XIXVHT-9lGeZK5f.js → gitGraph-G5XIXVHT-BUeux-e2.js} +6 -6
- package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-CHliXae8.js → gitGraphDiagram-V2S2FVAM-BeazZ91W.js} +7 -7
- package/dist/server/assets/{graph-w_0TxU7c.js → graph-CNGnnvQ_.js} +2 -2
- package/dist/server/assets/{highlighted-body-B3W2YXNL-DxGbXpmP.js → highlighted-body-B3W2YXNL-Cc0SDXhd.js} +1 -1
- package/dist/server/assets/{index-BFYV5eTz.js → index-0fJ_ht8W.js} +5 -5
- package/dist/server/assets/{index-KPo7KIkm.js → index-B5ct-RrF.js} +3 -3
- package/dist/server/assets/{index-BF6XsxA6.js → index-BEy93LTg.js} +2 -2
- package/dist/server/assets/{index-fJY8Y2Yn.js → index-BMO-2AGB.js} +2 -2
- package/dist/server/assets/{index-DArdojNV.js → index-BV_chIS-.js} +2 -2
- package/dist/server/assets/{index-BEsP2c6g.js → index-BgBwz0y4.js} +5 -5
- package/dist/server/assets/{index-B5dMBifU.js → index-BoKSafJT.js} +2 -2
- package/dist/server/assets/{index-BXk4pv-g.js → index-CkzI8Z2i.js} +4 -4
- package/dist/server/assets/{index-RFarsX-T.js → index-D0hk8yWG.js} +2 -2
- package/dist/server/assets/{index-DT6J-4jr.js → index-D1ues4u1.js} +2 -2
- package/dist/server/assets/{index-DiOWAuOY.js → index-D4zK5A96.js} +2 -2
- package/dist/server/assets/{index-B3SSmK1B.js → index-D8vXPgYO.js} +1 -1
- package/dist/server/assets/{index-dm2nvbnJ.js → index-DGBvKhbT.js} +2 -2
- package/dist/server/assets/{index-D6jZJSOh.js → index-D_5qEFDP.js} +2 -2
- package/dist/server/assets/{index-YzyspAIh.js → index-Dyyual9d.js} +1 -1
- package/dist/server/assets/{index-BQv--Qjo.js → index-iV3_VO0S.js} +2 -2
- package/dist/server/assets/{index-CUY0UnXR.js → index-k3jLtfXd.js} +2 -2
- package/dist/server/assets/{index-DdaOGobb.js → index-p3KDRiXO.js} +3 -3
- package/dist/server/assets/{info-VBDWY6EO-CKW09qq3.js → info-VBDWY6EO-DCHnh1Lh.js} +6 -6
- package/dist/server/assets/{infoDiagram-HS3SLOUP-DEOibC6Q.js → infoDiagram-HS3SLOUP-3Bf96R5j.js} +5 -5
- package/dist/server/assets/{journeyDiagram-XKPGCS4Q-CtYwst4K.js → journeyDiagram-XKPGCS4Q-C3jpsK2W.js} +4 -4
- package/dist/server/assets/{kanban-definition-3W4ZIXB7-C9CcRx0A.js → kanban-definition-3W4ZIXB7-SuhPOhJT.js} +2 -2
- package/dist/server/assets/{layout-Dmsqak1g.js → layout-DiEprgI3.js} +4 -4
- package/dist/server/assets/{mermaid-3ZIDBTTL-CqEUholX.js → mermaid-3ZIDBTTL-BaIs0Q9V.js} +1 -1
- package/dist/server/assets/{mermaid-parser.core-LU1bu75S.js → mermaid-parser.core-BsHNgayW.js} +11 -11
- package/dist/server/assets/{mindmap-definition-VGOIOE7T-RAE-a2QS.js → mindmap-definition-VGOIOE7T-ClSZ0Bi7.js} +3 -3
- package/dist/server/assets/{packet-DYOGHKS2-CnlcWEPG.js → packet-DYOGHKS2-BbcJFbJg.js} +6 -6
- package/dist/server/assets/{pie-VRWISCQL-4utIn3ZK.js → pie-VRWISCQL-BwpS1WtZ.js} +6 -6
- package/dist/server/assets/{pieDiagram-ADFJNKIX-BEtrfCpy.js → pieDiagram-ADFJNKIX-Bdy6QbT2.js} +7 -7
- package/dist/server/assets/{quadrantDiagram-AYHSOK5B-DfXQpEA4.js → quadrantDiagram-AYHSOK5B-Bm3BURCs.js} +1 -1
- package/dist/server/assets/{radar-ZZBFDIW7-CPmgHETB.js → radar-ZZBFDIW7-DpsN-_Uw.js} +6 -6
- package/dist/server/assets/{requirementDiagram-UZGBJVZJ-3z4zT_nr.js → requirementDiagram-UZGBJVZJ-C7da6xUV.js} +3 -3
- package/dist/server/assets/{router-CR7HN8s9.js → router-BB0zbB3W.js} +657 -409
- package/dist/server/assets/{sankeyDiagram-TZEHDZUN-BWszyZFo.js → sankeyDiagram-TZEHDZUN-euY8OssP.js} +1 -1
- package/dist/server/assets/{sequenceDiagram-WL72ISMW-ChJn4TpL.js → sequenceDiagram-WL72ISMW-DSSV8Brd.js} +3 -3
- package/dist/server/assets/{square-terminal-CTBeV_JY.js → square-terminal-CrO-90-i.js} +1 -1
- package/dist/server/assets/{stateDiagram-FKZM4ZOC-BRxaFuGJ.js → stateDiagram-FKZM4ZOC-Bl-9xbtT.js} +8 -8
- package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-J4KgDBnn.js → stateDiagram-v2-4FDKWEC3-CRIfvOmK.js} +4 -4
- package/dist/server/assets/{timeline-definition-IT6M3QCI-BNQ8o88X.js → timeline-definition-IT6M3QCI-f-Qf6njy.js} +2 -2
- package/dist/server/assets/{treemap-GDKQZRPO-7ryiCTKu.js → treemap-GDKQZRPO-xMnqR8Mm.js} +6 -6
- package/dist/server/assets/{workspace._workspaceId-tLQe65Z7.js → workspace._workspaceId-5E7ua_uc.js} +10 -172
- package/dist/server/assets/{workspace._workspaceId-BbhvV92H.js → workspace._workspaceId-CUau0op7.js} +1 -1
- package/dist/server/assets/{xterm-CkV9CBvP.js → xterm-DnMRSOdQ.js} +1408 -1146
- package/dist/server/assets/{xychartDiagram-PRI3JC2R-CKCHHdDW.js → xychartDiagram-PRI3JC2R-Dgosu8mP.js} +1 -1
- package/dist/server/server.js +2 -2
- package/dist/start-server.mjs +15945 -10920
- package/package.json +14 -11
- package/dist/client/assets/DockviewBrowserContainer-CFbtu5r1.js +0 -5
- package/dist/client/assets/DockviewTerminalContainer-9vC7tNCU.js +0 -2
- package/dist/client/assets/TerminalPanel-D7KAWKtj.js +0 -1
- package/dist/client/assets/addon-fit-DX4qG4td.js +0 -1
- package/dist/client/assets/addon-search-DCE88ROn.js +0 -7
- package/dist/client/assets/addon-web-links-DIbG5aQx.js +0 -1
- package/dist/client/assets/addon-webgl-CeRvQWkA.js +0 -58
- package/dist/client/assets/arc-Bkvl9HH5.js +0 -1
- package/dist/client/assets/architectureDiagram-VXUJARFQ-DqBl1NqF.js +0 -36
- package/dist/client/assets/channel-D2BCKjX6.js +0 -1
- package/dist/client/assets/chunk-4BX2VUAB-BXm7Um7P.js +0 -1
- package/dist/client/assets/chunk-55IACEB6-Dt2xSCRq.js +0 -1
- package/dist/client/assets/chunk-QN33PNHL-DsmG4ghZ.js +0 -1
- package/dist/client/assets/chunk-QZHKN3VN-tqztBfqO.js +0 -1
- package/dist/client/assets/chunk-TZMSLE5B-DFYLEO8q.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-I3vhtaYY.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-I3vhtaYY.js +0 -1
- package/dist/client/assets/clone-CsYQMA-W.js +0 -1
- package/dist/client/assets/cose-bilkent-S5V4N54A-B_nk9K1G.js +0 -1
- package/dist/client/assets/dagre-6UL2VRFP-DqTxPUwF.js +0 -4
- package/dist/client/assets/diagram-PSM6KHXK-BzjgjDIt.js +0 -24
- package/dist/client/assets/diagram-QEK2KX5R-T_kw9_tH.js +0 -43
- package/dist/client/assets/diagram-S2PKOQOG-RZRCx1Cg.js +0 -24
- package/dist/client/assets/gitGraphDiagram-V2S2FVAM-BFhoH9eu.js +0 -65
- package/dist/client/assets/highlighted-body-B3W2YXNL-BOqi1mq8.js +0 -1
- package/dist/client/assets/infoDiagram-HS3SLOUP-tmwrbaVS.js +0 -2
- package/dist/client/assets/pieDiagram-ADFJNKIX-aTChkbN7.js +0 -30
- package/dist/client/assets/sankeyDiagram-TZEHDZUN-vj6gz8iS.js +0 -10
- package/dist/client/assets/stateDiagram-FKZM4ZOC-CVYfwkTR.js +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-CAMOMe0t.js +0 -1
- package/dist/client/assets/workspace._workspaceId-DCIBQ5hC.js +0 -2
- package/dist/client/assets/xterm-iwIWEtGc.js +0 -10
- package/dist/server/assets/addon-fit-D89xfLfG.js +0 -23
- package/dist/server/assets/addon-search-BS53_-cp.js +0 -1247
- package/dist/server/assets/addon-web-links-CzLDtFWc.js +0 -100
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@band-app/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"band-server": "./bin/band-server.mjs"
|
|
@@ -18,12 +18,15 @@
|
|
|
18
18
|
},
|
|
19
19
|
"os": [
|
|
20
20
|
"darwin",
|
|
21
|
-
"linux"
|
|
21
|
+
"linux",
|
|
22
|
+
"win32"
|
|
22
23
|
],
|
|
23
24
|
"dependencies": {
|
|
24
25
|
"@vscode/ripgrep": "^1.18.0",
|
|
25
|
-
"@xterm/addon-search": "
|
|
26
|
-
"@xterm/addon-
|
|
26
|
+
"@xterm/addon-search": "0.17.0-beta.291",
|
|
27
|
+
"@xterm/addon-serialize": "0.15.0-beta.291",
|
|
28
|
+
"@xterm/addon-webgl": "0.20.0-beta.290",
|
|
29
|
+
"@xterm/headless": "6.1.0-beta.291",
|
|
27
30
|
"fzf": "0.5.2",
|
|
28
31
|
"node-pty": "^1.1.0",
|
|
29
32
|
"prettier": "^3.8.3",
|
|
@@ -83,9 +86,9 @@
|
|
|
83
86
|
"@types/ws": "^8.18.0",
|
|
84
87
|
"@uiw/codemirror-theme-vscode": "^4.25.9",
|
|
85
88
|
"@vitejs/plugin-react": "^4.3.0",
|
|
86
|
-
"@xterm/addon-fit": "
|
|
87
|
-
"@xterm/addon-web-links": "
|
|
88
|
-
"@xterm/xterm": "6.1.0-beta.
|
|
89
|
+
"@xterm/addon-fit": "0.12.0-beta.291",
|
|
90
|
+
"@xterm/addon-web-links": "0.13.0-beta.291",
|
|
91
|
+
"@xterm/xterm": "6.1.0-beta.291",
|
|
89
92
|
"ai": "^6.0.105",
|
|
90
93
|
"class-variance-authority": "^0.7.1",
|
|
91
94
|
"clsx": "^2.1.1",
|
|
@@ -117,9 +120,9 @@
|
|
|
117
120
|
"ws": "^8.18.0",
|
|
118
121
|
"zod": "^3.25.67",
|
|
119
122
|
"zustand": "^5.0.0",
|
|
120
|
-
"@band-app/
|
|
121
|
-
"@band-app/
|
|
122
|
-
"@band-app/
|
|
123
|
+
"@band-app/ui": "^0.28.0",
|
|
124
|
+
"@band-app/coding-agent": "^0.28.0",
|
|
125
|
+
"@band-app/logger": "^0.28.0"
|
|
123
126
|
},
|
|
124
127
|
"scripts": {
|
|
125
128
|
"dev": "NODE_ENV=development tsx watch start-server.ts",
|
|
@@ -129,6 +132,6 @@
|
|
|
129
132
|
"test": "NODE_OPTIONS='--no-warnings=ExperimentalWarning' vitest run",
|
|
130
133
|
"test:e2e": "NODE_OPTIONS='--no-warnings=ExperimentalWarning' playwright test",
|
|
131
134
|
"test:e2e:ui": "NODE_OPTIONS='--no-warnings=ExperimentalWarning' playwright test --ui",
|
|
132
|
-
"postinstall": "chmod +x node_modules/node-pty/prebuilds/*/spawn-helper 2>/dev/null || true"
|
|
135
|
+
"postinstall": "node -e \"process.platform!=='win32'&&require('child_process').execSync('chmod +x node_modules/node-pty/prebuilds/*/spawn-helper 2>/dev/null || true',{stdio:'ignore'})\""
|
|
133
136
|
}
|
|
134
137
|
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{m as we,r as t,bZ as U,cB as z,cC as $,cD as ke,p as M,cE as De,cF as Pe,j as s,cG as le,cw as Te,cH as Ae,cI as Ee,cJ as Ie,cK as Fe,cL as Be,cM as qe,cN as Ue,cO as Le,cP as Me,cQ as Z,cR as Oe,cp as ze,cs as Ke,X as ye,cS as $e,u as He,n as Ge,o as Ve,q as Qe,w as ge,x as We,y as Je,z as Xe,A as Ye,B as Ze,J as ue,K as de,C as et,E as tt,F as rt,G as nt,H as st}from"./main-BfbNp6IP.js";const ot=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],at=we("history",ot);const it=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],ct=we("wrench",it);function lt(e,n){if(!n||n.size===0||typeof e!="object"||e===null)return e;const r=e.panels;if(typeof r!="object"||r===null)return e;let l=!1;const u={};for(const[i,p]of Object.entries(r)){const g=n.get(i);if(g&&typeof p=="object"&&p!==null&&typeof p.params=="object"&&p.params!==null){const x=p.params;if(!x.initialUrl){u[i]={...p,params:{...x,initialUrl:g}},l=!0;continue}}u[i]=p}return l?{...e,panels:u}:e}const ut={caseSensitive:!1,wholeWord:!1,regex:!1};function dt({key:e,keyName:n}){const[r,l]=t.useState(!1),[u,i]=t.useState(""),[p,g]=t.useState(ut),[x,N]=t.useState(null),C=t.useRef(null),_=t.useRef(e);_.current=e;const B=t.useRef(null),I=t.useCallback(R=>n==="browserId"?R.browser_id:R.workspace_id,[n]),q=t.useCallback((R={})=>({[n]:_.current,...R}),[n]),T=t.useCallback(()=>{requestAnimationFrame(()=>{C.current?.focus(),C.current?.select()})},[]),v=t.useCallback(async(R,d={})=>{if(U){if(!R){N(null),B.current=null;try{await z("browser_stop_find_in_page",q({action:"clearSelection"}))}catch{}return}(d.findNext??!1)||(N(null),B.current=null);try{const E=await z("browser_find_in_page",q({text:R,options:{matchCase:p.caseSensitive,findNext:d.findNext??!1,forward:d.forward??!0}}));typeof E=="number"&&(B.current=E)}catch(E){console.error("browser_find_in_page failed:",E)}}},[q,p.caseSensitive]),A=t.useCallback(()=>{l(!1),i(""),N(null),B.current=null,U&&z("browser_stop_find_in_page",q({action:"clearSelection"})).catch(()=>{})},[q]),j=t.useCallback(()=>{l(!0),T()},[T]);t.useEffect(()=>{r&&v(u)},[u,r,v]),t.useEffect(()=>{if(!U)return;let R;return(async()=>R=await $("browser-found-in-page",d=>{I(d.payload)===_.current&&(B.current!==null&&d.payload.request_id!==B.current||N({total:d.payload.matches,current:d.payload.active_match_ordinal}))}))(),()=>R?.()},[I]),t.useEffect(()=>{if(!U)return;let R;return(async()=>R=await $("browser-find-shortcut",d=>{I(d.payload)===_.current&&(l(!0),T())}))(),()=>R?.()},[T,I]),t.useEffect(()=>{if(!U)return;let R;return(async()=>R=await $("browser-url-changed",d=>{I(d.payload)===_.current&&d.payload.loading&&A()}))(),()=>R?.()},[A,I]);const S=t.useCallback(()=>{u&&v(u,{findNext:!0,forward:!0})},[u,v]),K=t.useCallback(()=>{u&&v(u,{findNext:!0,forward:!1})},[u,v]);return{isOpen:r,open:j,close:A,query:u,setQuery:i,options:p,setOptions:g,matchInfo:x,findNext:S,findPrevious:K,searchBarRef:C}}const ft=50,pt=100;function ht(e){const{key:n,keyName:r,workspaceId:l,currentUrlRef:u,setInputUrl:i,inputUrl:p,onNavigate:g}=e,x=dt({key:n,keyName:r}),N=t.useRef(!1),[C,_]=t.useState([]),[B,I]=t.useState(!1),[q,T]=t.useState(0);ke(B);const v=t.useCallback(()=>{I(!1),_([]),T(0)},[]);t.useEffect(()=>{if(!N.current)return;const d=p.trim();if(d===""){v();return}if(d===u.current.trim()){v();return}let E=!1;const H=setTimeout(()=>{M.history.search.query({workspaceId:l,query:d,limit:8}).then(o=>{if(!E){if(o.entries.length===0){v();return}_(o.entries),I(!0),T(0)}}).catch(()=>{E||v()})},ft);return()=>{E=!0,clearTimeout(H)}},[p,l,v,u]);const A=t.useCallback(d=>{N.current=!0,d.target.select()},[]),j=t.useCallback(()=>{N.current=!1,i(u.current),setTimeout(()=>{N.current||v()},pt)},[u,i,v]),S=t.useCallback(d=>{if(B){if(d.key==="ArrowDown"){d.preventDefault(),T(E=>Math.min(E+1,C.length-1));return}if(d.key==="ArrowUp"){d.preventDefault(),T(E=>Math.max(E-1,0));return}if(d.key==="Enter"){const E=C[q];if(E){d.preventDefault(),v(),g(E.url);return}}if(d.key==="Escape"){d.preventDefault(),v();return}}if(d.key==="Enter"){d.preventDefault(),v(),g(p);return}if(d.key==="Escape"){d.preventDefault(),i(u.current);const E=d.currentTarget;requestAnimationFrame(()=>{E.isConnected&&E.select()})}},[p,g,i,u,B,C,q,v]),K=t.useCallback(d=>{d.key.toLowerCase()!=="f"||d.shiftKey||d.altKey||!(/mac/i.test(navigator.userAgent)?d.metaKey&&!d.ctrlKey:d.ctrlKey&&!d.metaKey)||(d.preventDefault(),d.stopPropagation(),x.open())},[x]),R=t.useCallback(async()=>{if(U)try{await z("browser_toggle_dev_tools",{[r]:n})}catch(d){console.error("browser_toggle_dev_tools failed:",d)}},[n,r]);return{find:x,addressInputFocusedRef:N,handleAddressFocus:A,handleAddressBlur:j,handleAddressKeyDown:S,handlePaneKeyDown:K,handleToggleDevTools:R,autocomplete:{isOpen:B,items:C,selectedIndex:q,close:v,setSelectedIndex:T},paneDataAttrs:{"data-band-browser-pane":"","data-band-browser-pane-key":n,"data-band-browser-pane-keyname":r}}}function fe(){return new Promise(e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()))})}function bt(e){const{created:n,visible:r,ipcKeyRef:l}=e,u=De(),[i,p]=t.useState(null),g=t.useRef(!1);return t.useEffect(()=>{if(!U||!n)return;let x=!1;if(u){if(!r)return;const N=l.current;(async()=>{try{const C=await z("browser_capture_page",N);!x&&C&&(Pe.flushSync(()=>p(C)),await fe())}catch{}x||(g.current=!0,z("browser_pause_media",N).catch(()=>{}),z("browser_hide",N).catch(()=>{}))})()}else{const N=g.current;if(g.current=!1,N&&r){const C=l.current;z("browser_show",C).catch(()=>{}),z("browser_resume_media",C).catch(()=>{}),(async()=>(await fe(),x||p(null)))()}else p(null)}return()=>{x=!0}},[u,n,r,l]),{snapshot:i}}let X=new Set;const ne=new Set;let ee=!1;function mt(e){const n=e(X);if(n!==X){X=n;for(const r of ne)r()}}function pe(e){const n=e.toLowerCase();!n||X.has(n)||mt(r=>{const l=new Set(r);return l.add(n),l})}function wt(){ee||U&&(ee=!0,$("browser-host-overridden",e=>{e.payload.host&&pe(e.payload.host)}).catch(e=>{console.error("browser-host-overridden listen failed:",e),ee=!1}),z("browser_get_overridden_hosts").then(e=>{if(Array.isArray(e))for(const n of e)pe(n)}).catch(e=>{console.error("browser_get_overridden_hosts failed:",e)}))}function yt(e){return wt(),ne.add(e),()=>{ne.delete(e)}}function he(){return X}function gt(){const e=t.useSyncExternalStore(yt,he,he);return{isOverriddenHost:t.useCallback(r=>{if(!r)return!1;let l;try{l=new URL(r).hostname.toLowerCase()}catch{return!1}return e.has(l)},[e])}}function xt({state:e,onSelect:n}){return!e.isOpen||e.items.length===0?null:s.jsx("div",{className:"absolute top-full left-0 right-0 z-20 mx-2 mt-1 overflow-hidden rounded-md border border-border bg-popover shadow-md",onMouseDown:r=>{r.preventDefault()},children:s.jsx("ul",{className:"max-h-80 overflow-y-auto py-1",children:e.items.map((r,l)=>{const u=l===e.selectedIndex;return s.jsx("li",{children:s.jsxs("button",{type:"button",onMouseDown:i=>{i.preventDefault(),n(r.url),e.close()},onMouseEnter:()=>e.setSelectedIndex(l),className:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors ${u?"bg-accent text-foreground":"text-foreground hover:bg-accent/60"}`,children:[r.faviconUrl?s.jsx("img",{src:r.faviconUrl,alt:"",className:"size-4 shrink-0 rounded-sm",onError:i=>{i.currentTarget.style.display="none"}}):s.jsx(le,{className:"size-4 shrink-0 text-muted-foreground"}),s.jsxs("div",{className:"flex min-w-0 flex-1 flex-col",children:[r.title?s.jsx("span",{className:"truncate font-medium leading-tight",children:r.title}):null,s.jsx("span",{className:`truncate text-xs leading-tight ${r.title?"text-muted-foreground":"text-foreground"}`,children:r.url})]})]})},r.id)})})})}function vt({find:e}){return e.isOpen?s.jsx(Te,{ref:e.searchBarRef,query:e.query,onQueryChange:e.setQuery,options:e.options,onOptionsChange:e.setOptions,placeholder:"Find in page",matchInfo:e.matchInfo??void 0,onNext:e.findNext,onPrevious:e.findPrevious,onClose:e.close,visibleOptions:["caseSensitive"]}):null}const jt=150,Ct=200;function Nt(e){const n=new Map,r=[];for(const l of e){const u=se(l.lastVisitedAt);let i=n.get(u);i||(i={label:_t(u),entries:[]},n.set(u,i),r.push(u)),i.entries.push(l)}return r.map(l=>n.get(l))}function se(e){const n=new Date(e),r=n.getFullYear(),l=String(n.getMonth()+1).padStart(2,"0"),u=String(n.getDate()).padStart(2,"0");return`${r}-${l}-${u}`}function _t(e){const n=new Date,r=se(n.getTime()),l=new Date(n.getFullYear(),n.getMonth(),n.getDate()-1),u=se(l.getTime());if(e===r)return"Today";if(e===u)return"Yesterday";const[i,p,g]=e.split("-").map(Number),x=new Date(i,p-1,g);return Math.floor((Date.now()-x.getTime())/(1440*60*1e3))<=7?x.toLocaleDateString(void 0,{weekday:"long",month:"short",day:"numeric"}):x.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}function St(e){return new Date(e).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}function Rt({workspaceId:e,onNavigate:n}){const r=t.useId(),[l,u]=t.useState(!1),[i,p]=t.useState(""),[g,x]=t.useState([]),[N,C]=t.useState(!1),[_,B]=t.useState(0),I=t.useCallback(()=>{B(j=>j+1)},[]);t.useEffect(()=>{if(!l)return;let j=!1;C(!0);const S=i.trim(),d=setTimeout(()=>{(S?M.history.search.query({workspaceId:e,query:S,limit:50}):M.history.list.query({workspaceId:e,limit:Ct})).then(H=>{j||x(H.entries)}).catch(()=>{j||x([])}).finally(()=>{j||C(!1)})},S?jt:0);return()=>{j=!0,clearTimeout(d)}},[l,i,e,_]);const q=t.useMemo(()=>Nt(g),[g]),T=t.useCallback(j=>{n(j),u(!1)},[n]),v=t.useCallback(async j=>{await M.history.delete.mutate({id:j,workspaceId:e}).catch(()=>{}),I()},[I,e]),A=t.useCallback(async j=>{await M.history.clear.mutate({workspaceId:e,range:j}).catch(()=>{}),I()},[I,e]);return s.jsxs(Ae,{open:l,onOpenChange:u,children:[s.jsx(Ee,{asChild:!0,children:s.jsx("button",{type:"button",className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"History","aria-label":"Browser history",children:s.jsx(at,{className:"size-4"})})}),s.jsxs(Ie,{align:"end",sideOffset:6,className:"w-[440px] p-0",onOpenAutoFocus:j=>{j.preventDefault();const S=document.getElementById(r);S&&S.focus()},children:[s.jsxs("div",{className:"flex items-center gap-2 border-b border-border px-3 py-2",children:[s.jsx(Fe,{className:"size-4 shrink-0 text-muted-foreground"}),s.jsx("input",{id:r,type:"text",value:i,onChange:j=>p(j.target.value),placeholder:"Search history",className:"min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground"})]}),s.jsx("div",{className:"max-h-[420px] overflow-y-auto",children:N&&g.length===0?s.jsx("div",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Loading…"}):q.length===0?s.jsx("div",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:i?"No matching history":"No history yet"}):q.map(j=>s.jsxs("div",{children:[s.jsx("div",{className:"sticky top-0 z-10 border-b border-border bg-popover px-3 py-1 text-xs font-medium text-muted-foreground",children:j.label}),s.jsx("ul",{children:j.entries.map(S=>s.jsxs("li",{className:"group relative flex min-w-0 items-center gap-2 py-1.5 pl-3 pr-2 hover:bg-accent/60",children:[S.faviconUrl?s.jsx("img",{src:S.faviconUrl,alt:"",className:"size-4 shrink-0 rounded-sm",onError:K=>{K.currentTarget.style.display="none"}}):s.jsx(le,{className:"size-4 shrink-0 text-muted-foreground"}),s.jsxs("button",{type:"button",onClick:()=>T(S.url),className:"flex min-w-0 flex-1 flex-col items-stretch gap-0.5 overflow-hidden pr-6 text-left",children:[s.jsx("span",{className:"block truncate text-sm font-medium leading-tight text-foreground",children:S.title||S.url}),s.jsxs("span",{className:"flex min-w-0 items-baseline gap-2 leading-tight",children:[s.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",children:S.url}),s.jsx("span",{className:"shrink-0 text-[11px] text-muted-foreground tabular-nums",children:St(S.lastVisitedAt)})]})]}),s.jsx("button",{type:"button",onClick:()=>v(S.id),className:"absolute right-2 top-1/2 -translate-y-1/2 rounded p-0.5 text-muted-foreground opacity-0 transition-opacity hover:bg-destructive/10 hover:text-destructive group-hover:opacity-100",title:"Delete entry","aria-label":"Delete entry",children:s.jsx(Be,{className:"size-3.5"})})]},S.id))})]},j.label))}),s.jsx("div",{className:"flex items-center justify-end border-t border-border px-3 py-2",children:s.jsxs(qe,{children:[s.jsx(Ue,{asChild:!0,children:s.jsxs("button",{type:"button",className:"flex items-center gap-1 rounded px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:["Clear ",s.jsx(Le,{className:"size-3"})]})}),s.jsxs(Me,{align:"end",children:[s.jsx(Z,{onSelect:()=>A("hour"),children:"Last hour"}),s.jsx(Z,{onSelect:()=>A("day"),children:"Last 24 hours"}),s.jsx(Z,{onSelect:()=>A("week"),children:"Last week"}),s.jsx(Z,{onSelect:()=>A("all"),children:"All time"})]})]})})]})]})}function kt(){return s.jsxs("span",{className:"inline-flex shrink-0 items-center gap-1 rounded bg-destructive/10 px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-destructive",title:"The certificate for this site was overridden for the current session. Use with caution.","data-testid":"cert-not-secure-badge",children:[s.jsx(Oe,{className:"size-3","aria-hidden":!0}),"Not secure"]})}const be="",Q="about:blank",oe=new Map,ae=new Set;function Dt(e,n){if(oe.get(e)!==n){oe.set(e,n);for(const r of ae)r()}}function Pt(e){return ae.add(e),()=>{ae.delete(e)}}function Tt(e){return t.useSyncExternalStore(Pt,()=>oe.get(e))}function At({params:e,api:n}){const{browserId:r,initialUrl:l,workspaceId:u}=e,[i,p]=t.useState(()=>l??be),[g,x]=t.useState(()=>l??be),[N,C]=t.useState(!1),[_,B]=t.useState(!1),I=t.useRef(!1),q=t.useRef(null),T=t.useRef(!1),v=t.useRef(null),A=t.useRef(r);A.current=r;const j=t.useRef(i);j.current=i;const[S,K]=t.useState(u??""),R=t.useRef(S);R.current=S;const d=t.useRef({browserId:r});d.current={browserId:r};const{snapshot:E}=bt({created:_,visible:n.isVisible&&e.wsActive!==!1,ipcKeyRef:d}),{isOverriddenHost:H}=gt(),o=t.useCallback(()=>{const y=q.current;if(!y)return null;const m=y.getBoundingClientRect();return{x:m.left+1,y:m.top,width:Math.max(0,m.width-2),height:m.height}},[]),a=t.useCallback(async(y,m)=>{if(U)return z(y,m)},[]);t.useEffect(()=>{if(!r||l)return;let y=!1;return M.browsers.get.query({browserId:r}).then(m=>{if(y)return;const w=m.browser?.workspaceId;w&&!R.current&&K(w);const P=m.browser?.url;!P||P===""||P===Q||(p(P),x(P),I.current?a("browser_navigate",{browserId:r,url:P}).catch(()=>{}):v.current=P)}).catch(()=>{}),()=>{y=!0}},[r,l,a]),t.useEffect(()=>{if(!U||_||T.current)return;const y=q.current;if(!y)return;let m=!1;const w=async()=>{if(m||I.current||T.current)return;const V=o();if(!(!V||V.width===0||V.height===0)){P.disconnect(),T.current=!0;try{await a("browser_create",{browserId:r,...V,url:j.current||Q}),I.current=!0,B(!0);const Y=v.current;Y&&(v.current=null,await a("browser_navigate",{browserId:A.current,url:Y}))}catch(Y){console.error("Failed to create browser webview:",Y)}finally{T.current=!1}}},P=new ResizeObserver(()=>{w()});P.observe(y);const O=setTimeout(w,50);return()=>{m=!0,clearTimeout(O),P.disconnect()}},[_,o,a,r]);const h=t.useRef(null);t.useEffect(()=>{if(!U)return;let y,m;return(async()=>(y=await $("browser-url-changed",w=>{if(w.payload.browser_id!==A.current)return;const P=w.payload.url;if(C(w.payload.loading),P===Q)return;p(P),L.current||x(P),h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{M.browsers.navigate.mutate({browserId:A.current,url:P}).catch(()=>{})},500);let O;try{O=`${new URL(P).origin}/favicon.ico`,Dt(A.current,O)}catch{}!w.payload.loading&&R.current&&M.history.record.mutate({workspaceId:R.current,url:P,faviconUrl:O}).catch(()=>{})}),m=await $("browser-title-changed",w=>{if(w.payload.browser_id===A.current&&w.payload.title){n.setTitle(w.payload.title);const P=j.current;P&&P!==Q&&R.current&&M.history.updateMeta.mutate({workspaceId:R.current,url:P,title:w.payload.title}).catch(()=>{})}})))(),()=>{if(y?.(),m?.(),h.current){clearTimeout(h.current),h.current=null;const w=j.current;w&&w!==Q&&M.browsers.navigate.mutate({browserId:A.current,url:w}).catch(()=>{})}}},[n]),t.useEffect(()=>{if(!U||!_)return;const y=O=>V=>console.error(`[BrowserPane] ${O} failed`,V),m=()=>{const O=o();O&&O.width>0&&O.height>0&&a("browser_set_bounds",{browserId:r,...O}).catch(y("browser_set_bounds")),a("browser_show",{browserId:r}).catch(y("browser_show"))},w=()=>{a("browser_hide",{browserId:r}).catch(y("browser_hide"))},P=n.onDidVisibilityChange(O=>{O.isVisible?m():w()});return()=>{P.dispose()}},[n,_,o,a,r]),t.useEffect(()=>{if(!U||!_)return;const y=e.wsActive!==!1,m=w=>P=>console.error(`[BrowserPane] ${w} failed`,P);if(!y)a("browser_hide",{browserId:r}).catch(m("browser_hide"));else if(n.isVisible){const w=o();w&&w.width>0&&w.height>0&&a("browser_set_bounds",{browserId:r,...w}).catch(m("browser_set_bounds")),a("browser_show",{browserId:r}).catch(m("browser_show"))}},[e.wsActive,n,_,o,a,r]),t.useEffect(()=>{if(!U||!_)return;const y=q.current;if(!y)return;const m=new ResizeObserver(()=>{const w=o();!w||w.width===0||w.height===0||a("browser_set_bounds",{browserId:r,...w}).catch(()=>{})});return m.observe(y),()=>m.disconnect()},[_,o,a,r]),t.useEffect(()=>()=>{if(U){const y=A.current;z("browser_destroy",{browserId:y}).catch(()=>{})}},[]);const f=t.useCallback(async y=>{let m=y.trim();if(!m){if(p(""),x(""),C(!1),I.current)try{await a("browser_navigate",{browserId:r,url:Q})}catch(w){console.error("browser_navigate failed:",w)}else v.current=Q;return}if(!m.startsWith("http://")&&!m.startsWith("https://")&&(m.includes(".")&&!m.includes(" ")?m=`https://${m}`:m=`https://www.google.com/search?q=${encodeURIComponent(m)}`),p(m),x(m),C(!0),I.current)try{await a("browser_navigate",{browserId:r,url:m})}catch(w){console.error("browser_navigate failed:",w)}else v.current=m},[a,r]),c=t.useCallback(async()=>{try{await a("browser_go_back",{browserId:r})}catch(y){console.error("browser_go_back failed:",y)}},[a,r]),b=t.useCallback(async()=>{try{await a("browser_go_forward",{browserId:r})}catch(y){console.error("browser_go_forward failed:",y)}},[a,r]),k=t.useCallback(async()=>{try{C(!0),await a("browser_reload",{browserId:r})}catch(y){console.error("browser_reload failed:",y)}},[a,r]),D=t.useCallback(async()=>{try{await a("browser_eval",{browserId:r,js:"window.stop()"}),C(!1)}catch{C(!1)}},[a,r]),{find:F,addressInputFocusedRef:L,handleAddressFocus:G,handleAddressBlur:je,handleAddressKeyDown:Ce,handlePaneKeyDown:Ne,handleToggleDevTools:_e,autocomplete:Se,paneDataAttrs:Re}=ht({key:r,keyName:"browserId",workspaceId:S,currentUrlRef:j,setInputUrl:x,inputUrl:g,onNavigate:f});return r?U?s.jsxs("div",{className:"flex h-full w-full flex-col",onKeyDown:Ne,...Re,children:[s.jsx("style",{children:`@keyframes browser-bar-slide {
|
|
2
|
-
0% { transform: translateX(-100%); }
|
|
3
|
-
50% { transform: translateX(200%); }
|
|
4
|
-
100% { transform: translateX(-100%); }
|
|
5
|
-
}`}),s.jsxs("div",{className:"relative flex h-10 shrink-0 items-center gap-1 border-b border-border bg-background px-2",children:[s.jsx("button",{type:"button",onClick:c,className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"Back",children:s.jsx(ze,{className:"size-4"})}),s.jsx("button",{type:"button",onClick:b,className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"Forward",children:s.jsx(Ke,{className:"size-4"})}),N?s.jsx("button",{type:"button",onClick:D,className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"Stop",children:s.jsx(ye,{className:"size-4"})}):s.jsx("button",{type:"button",onClick:k,className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"Reload",children:s.jsx($e,{className:"size-4"})}),H(i)?s.jsx(kt,{}):null,s.jsx("input",{type:"text",value:g,onChange:y=>x(y.target.value),onKeyDown:Ce,onFocus:G,onBlur:je,className:"min-w-0 flex-1 rounded border border-transparent bg-muted/50 px-3 py-1.5 text-sm text-foreground outline-none transition-colors focus:border-border",placeholder:"Enter URL or search...","data-band-address-input":""}),S?s.jsx(Rt,{workspaceId:S,onNavigate:f}):null,s.jsx("button",{type:"button",onClick:_e,className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"Toggle DevTools",children:s.jsx(ct,{className:"size-4"})}),N&&s.jsx("div",{className:"absolute inset-x-0 bottom-0 h-0.5 overflow-hidden bg-blue-500/10",children:s.jsx("div",{className:"h-full w-2/5 rounded-full bg-blue-500",style:{animation:"browser-bar-slide 1.4s ease-in-out infinite"}})}),s.jsx(xt,{state:Se,onSelect:f})]}),s.jsx(vt,{find:F}),s.jsx("div",{ref:q,className:"relative min-h-0 flex-1",children:E?s.jsx("img",{src:E,alt:"",className:"pointer-events-none absolute inset-0 size-full object-contain object-top",draggable:!1}):null})]}):s.jsx("div",{className:"flex h-full items-center justify-center text-muted-foreground",children:"Browser panel is only available in the desktop app"}):null}const xe=new Set;function me(e){xe.add(e)}function zt(e){return xe.delete(e)}function Et(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();const e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;const n=Array.from(e,r=>r.toString(16).padStart(2,"0")).join("");return`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`}function ie(){return`browser_${Et()}`}function ce(e){return["browserLayout",e]}const te=new Map;function It(e){if(typeof e=="object"&&e!==null){const n=e.panels;if(typeof n=="object"&&n!==null)return new Set(Object.keys(n))}return new Set}function re(e,n,r){if(r?.queryClient){const u=r.queryClient.getQueryData(ce(e));r.queryClient.setQueryData(ce(e),{layout:n,browserIds:It(n),urls:u?.urls??new Map})}const l=te.get(e);l&&clearTimeout(l),te.set(e,setTimeout(()=>{te.delete(e),M.browserLayout.save.mutate({workspaceId:e,tree:n}).catch(u=>{console.error("[DockviewBrowserContainer] failed to persist layout:",u)})},500))}function Ft(e){if(typeof e!="object"||e===null)return!1;const n=e;return typeof n.grid=="object"&&typeof n.panels=="object"}const Bt={name:"band",className:"dockview-theme-band dockview-browser-tabs"};function qt({params:e,api:n}){const{visible:r}=st();if(!e.workspaceId||!e.browserId)return null;const l={workspaceId:e.workspaceId,browserId:e.browserId,wsActive:r,initialUrl:e.initialUrl};return s.jsx("div",{className:"flex h-full w-full flex-col overflow-hidden","data-testid":`dockview-browser-tab__visible-${r?"true":"false"}`,children:s.jsx(At,{params:l,api:n})})}function ve(e){const[n,r]=t.useState(e.api.title??"New Tab"),[l,u]=t.useState(!1),i=e.params.browserId,p=Tt(i),g=t.useRef(p);p!==g.current&&(g.current=p,l&&u(!1)),t.useEffect(()=>{const _=e.api.onDidTitleChange(()=>r(e.api.title??"New Tab"));return()=>_.dispose()},[e.api]);const x=e.containerApi,N=t.useCallback(_=>{_.stopPropagation(),W.get(x.id)?.current?.onClose(i)},[x,i]),C=p&&!l;return s.jsxs("div",{className:"dv-default-tab",children:[s.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[C?s.jsx("img",{src:p,alt:"",className:"size-3.5 shrink-0",onError:()=>u(!0)}):s.jsx(le,{className:"size-3.5 shrink-0 text-muted-foreground"}),s.jsx("span",{className:"truncate",children:n})]}),s.jsx("button",{type:"button",className:"ml-1 inline-flex size-4 items-center justify-center rounded-sm opacity-60 hover:opacity-100 hover:bg-accent transition-colors",onClick:N,title:"Close tab",children:s.jsx(ye,{className:"size-3"})})]})}const W=new Map,Ut=et.memo(function(n){const r=(n.location?.type??"grid")==="grid",l=n.containerApi.id,u=n.group.id;return s.jsxs("div",{className:"flex h-full w-full items-center justify-center","data-testid":r?"dockview-browser__toolbar":void 0,children:[r&&s.jsxs(s.Fragment,{children:[s.jsx("button",{type:"button",className:"inline-flex size-8 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>W.get(l)?.current?.onSplit(u,"right"),title:"Split right",children:s.jsx(tt,{className:"size-3.5"})}),s.jsx("button",{type:"button",className:"inline-flex size-8 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>W.get(l)?.current?.onSplit(u,"below"),title:"Split down",children:s.jsx(rt,{className:"size-3.5"})})]}),s.jsx("button",{type:"button",className:"inline-flex size-8 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>W.get(l)?.current?.onAdd(u),title:"New browser tab",children:s.jsx(nt,{className:"size-4"})})]})}),Lt={browserTab:qt},Mt={browserTab:ve};function Kt({workspaceId:e,visible:n,wsActive:r}){const l=He(),u=Ge(),i=t.useRef(null),p=t.useRef(!1),g=t.useRef(null),x=t.useRef(r);x.current=r;const N=t.useRef(null),C=t.useRef(null),{data:_}=Ve({queryKey:ce(e),queryFn:async()=>{const[{tree:o},{browsers:a}]=await Promise.all([M.browserLayout.get.query({workspaceId:e}).catch(()=>({tree:null})),M.browsers.list.query({workspaceId:e}).catch(()=>({browsers:[]}))]),h=new Map;for(const f of a)f.url&&f.url!=="about:blank"&&h.set(f.id,f.url);return{layout:o,browserIds:new Set(a.map(f=>f.id)),urls:h}},staleTime:Number.POSITIVE_INFINITY}),B=t.useRef(u);B.current=u;const I=t.useCallback(()=>{if(p.current)return;const o=i.current;o&&re(e,o.toJSON(),{queryClient:B.current})},[e]),q=t.useCallback(()=>{if(p.current||x.current===!1)return;const o=i.current?.activePanel?.id;o&&M.panelFocus.set.mutate({workspaceId:e,panelType:"browser",panelId:o}).catch(()=>{})},[e]),T=t.useCallback(async(o,a)=>{const h=i.current;if(!h)return;const f=ie();me(f);const c=a?.initialUrl,b={id:f,component:"browserTab",tabComponent:"browserTab",title:"New Tab",params:{workspaceId:e,browserId:f,...c?{initialUrl:c}:{}}};o&&(b.position={referenceGroup:o}),h.addPanel(b);try{await M.browsers.create.mutate({workspaceId:e,id:f,...c?{url:c}:{}})}catch(k){console.error("[DockviewBrowserContainer] error pre-creating browser:",k)}},[e]),v=t.useCallback(async(o,a)=>{const h=i.current;if(!h)return;const f=ie();me(f);try{h.addPanel({id:f,component:"browserTab",tabComponent:"browserTab",title:"New Tab",params:{workspaceId:e,browserId:f},position:{referenceGroup:o,direction:a}})}catch(c){console.error("[DockviewBrowserContainer] split addPanel threw:",c);return}try{await M.browsers.create.mutate({workspaceId:e,id:f})}catch(c){console.error("[DockviewBrowserContainer] error creating split browser:",c)}},[e]),A=t.useCallback(o=>{const a=i.current;if(!a)return;Qe(a,o);const h=a.getPanel(o);h&&a.removePanel(h),a.panels.length===0&&J(a,e),requestAnimationFrame(()=>{const f=a.activePanel;f&&f.view.content.element.querySelector("[data-band-address-input]")?.focus()}),M.browsers.remove.mutate({browserId:o}).catch(f=>{console.error("[DockviewBrowserContainer] failed to remove browser:",f)})},[e]);t.useEffect(()=>{if(!n)return;const o=()=>{const c=i.current?.activePanel;c&&c.view.content.element.querySelector("[data-band-address-input]")?.focus()},a=c=>{ue(i.current,c,()=>{requestAnimationFrame(o)})},h=c=>{de(i.current,c,()=>{requestAnimationFrame(o)})},f=c=>{if(!g.current?.contains(document.activeElement))return;const b=c.key.toLowerCase();if(c.ctrlKey&&!c.metaKey&&b==="tab"){c.preventDefault(),c.stopPropagation(),a(c.shiftKey?-1:1);return}if(c.metaKey||c.ctrlKey){if(c.shiftKey&&(b==="["||b==="]")){c.preventDefault(),c.stopPropagation(),a(b==="]"?1:-1);return}if(!c.shiftKey&&(b==="["||b==="]")){c.preventDefault(),c.stopPropagation(),h(b==="]"?1:-1);return}if(b==="t"&&!c.shiftKey)c.preventDefault(),c.stopPropagation(),T().then(()=>{requestAnimationFrame(()=>{const D=i.current?.activePanel;D&&D.view.content.element.querySelector("[data-band-address-input]")?.focus()})});else if(b==="w"&&!c.shiftKey){const D=i.current;if(!D)return;c.preventDefault(),c.stopPropagation();const F=D.activePanel;F&&A(F.id)}else if(b==="d"){c.preventDefault(),c.stopPropagation();const D=i.current;if(!D)return;const F=D.activeGroup;if(!F)return;const L=c.shiftKey?"below":"right";v(F.id,L)}else if(b==="r"&&!c.shiftKey&&U){const D=i.current;if(!D)return;const L=D.activePanel?.params?.browserId;if(!L)return;c.preventDefault(),c.stopPropagation(),z("browser_reload",{browserId:L}).catch(G=>{console.error("[DockviewBrowserContainer] browser_reload failed:",G)})}}};return window.addEventListener("keydown",f,!0),()=>window.removeEventListener("keydown",f,!0)},[n,A,v,T]),t.useLayoutEffect(()=>{if(!n)return;const o=i.current,a=g.current;if(!o||!a)return;let h=0,f=0;const c=(D,F)=>{const L=Math.round(D),G=Math.round(F);L<=0||G<=0||L===h&&G===f||(h=L,f=G,o.layout(L,G,!0))},b=a.getBoundingClientRect();c(b.width,b.height);const k=new ResizeObserver(D=>{const F=D[0];F&&c(F.contentRect.width,F.contentRect.height)});return k.observe(a),()=>k.disconnect()},[n]),t.useEffect(()=>{if(!n)return;const o=requestAnimationFrame(()=>{const a=i.current?.activePanel;a&&a.view.content.element.querySelector("[data-band-address-input]")?.focus()});return()=>cancelAnimationFrame(o)},[n]),t.useEffect(()=>{if(!U)return;let o;return(async()=>o=await $("browser-new-tab-shortcut",a=>{const h=i.current;if(!h)return;const f=a.payload.browser_id;!f||!h.getPanel(f)||T().then(()=>{requestAnimationFrame(()=>{i.current?.activePanel?.view.content.element.querySelector("[data-band-address-input]")?.focus()})})}))(),()=>o?.()},[T]),t.useEffect(()=>{if(!U)return;let o,a=!1;return(async()=>{const h=await $("browser-open-window",f=>{const c=i.current;if(!c)return;const b=f.payload.browser_id,k=b?c.getPanel(b):void 0;if(!k)return;const D=k.group?.id,F=f.payload.url;F&&T(D,{initialUrl:F}).then(()=>{requestAnimationFrame(()=>{i.current?.activePanel?.view.content.element.querySelector("[data-band-address-input]")?.focus()})}).catch(L=>{console.error("[DockviewBrowserContainer] browser-open-window add-tab failed:",L)})});a?h():o=h})(),()=>{a=!0,o?.()}},[T]),t.useEffect(()=>{if(!U)return;const o=[];let a=!1;const h=()=>{i.current?.activePanel?.view.content.element.querySelector("[data-band-address-input]")?.focus()};return(async()=>{const f=await Promise.all([$("browser-split-shortcut",c=>{const b=i.current;if(!b)return;const k=b.getPanel(c.payload.browser_id);k?.group&&v(k.group.id,c.payload.direction)}),$("browser-close-shortcut",c=>{const b=i.current;if(!b)return;const k=c.payload.browser_id;b.getPanel(k)&&A(k)}),$("browser-cycle-shortcut",c=>{const b=i.current;if(!b)return;const k=b.getPanel(c.payload.browser_id);if(!k)return;k.api.setActive();const D=()=>requestAnimationFrame(h);c.payload.target==="tabs"?ue(i.current,c.payload.direction,D):de(i.current,c.payload.direction,D)})]);if(a)for(const c of f)c();else o.push(...f)})(),()=>{a=!0;for(const f of o)f()}},[v,A]),t.useEffect(()=>{const o=()=>{const a=g.current;if(!a||a.offsetParent===null)return;const h=a.querySelectorAll("[data-band-address-input]");for(const f of h)if(f.offsetParent!==null){f.focus({preventScroll:!0});return}};return window.addEventListener("band:focus-browser",o),()=>window.removeEventListener("band:focus-browser",o)},[]),t.useEffect(()=>l.subscribeStatusEvents(o=>{if(o.workspaceId!==e)return;const a=i.current;if(a){if(o.kind==="browser-created"&&typeof o.browserId=="string"){if(a.getPanel(o.browserId))return;a.addPanel({id:o.browserId,component:"browserTab",tabComponent:"browserTab",title:"New Tab",params:{workspaceId:e,browserId:o.browserId},position:ge(a)})}else if(o.kind==="browser-removed"&&typeof o.browserId=="string"){const h=a.getPanel(o.browserId);h&&(a.removePanel(h),a.panels.length===0&&J(a,e))}}}),[l,e]);const j=t.useRef({onAdd:()=>{},onSplit:()=>{},onClose:()=>{}});j.current={onAdd:T,onSplit:v,onClose:A},t.useEffect(()=>()=>{const o=i.current;o&&W.delete(o.id),N.current?.(),N.current=null,C.current?.(),C.current=null},[]);const S=t.useRef(null);S.current=_?.layout??null;const K=t.useRef(null);K.current=_?.browserIds??null;const R=t.useRef(null);R.current=_?.urls??null;const d=t.useRef(n);d.current=n;const E=t.useCallback(o=>{const a=i.current;a&&a.id!==o.api.id&&W.delete(a.id),i.current=o.api,W.set(o.api.id,j);const h=S.current,f=K.current,c=R.current;if(h&&Ft(h)){p.current=!0;const k=lt(h,c);try{o.api.fromJSON(k)}catch(F){console.error("[DockviewBrowserContainer] fromJSON failed, creating default:",F),J(o.api,e)}let D=0;if(f){const F=o.api.panels.filter(L=>!f.has(L.id));for(const L of F)o.api.removePanel(L),D++;o.api.panels.length===0&&(J(o.api,e),D++)}setTimeout(()=>{p.current=!1},0),D>0&&re(e,o.api.toJSON(),{queryClient:B.current})}else J(o.api,e),re(e,o.api.toJSON(),{queryClient:B.current});We(o.api),N.current?.(),N.current=Je(o.api),C.current?.(),g.current&&(C.current=Xe(g.current,o.api));const b=()=>I();if(o.api.onDidLayoutChange(b),o.api.onDidAddPanel(b),o.api.onDidRemovePanel(b),o.api.onDidActivePanelChange(()=>{b(),q()}),o.api.onDidAddGroup(b),o.api.onDidRemoveGroup(b),d.current&&g.current){const k=g.current.getBoundingClientRect();k.width>0&&k.height>0&&o.api.layout(Math.round(k.width),Math.round(k.height),!0)}},[e,I,q]),H=t.useMemo(()=>({visible:n&&r!==!1,wsActive:r!==!1}),[n,r]);return _?s.jsx("div",{ref:g,className:"flex h-full w-full flex-col overflow-hidden",children:s.jsx(Ye.Provider,{value:H,children:s.jsx(Ze,{theme:Bt,className:"h-full",components:Lt,tabComponents:Mt,defaultTabComponent:ve,onReady:E,rightHeaderActionsComponent:Ut})})}):s.jsx("div",{className:"flex h-full w-full items-center justify-center"})}function J(e,n){const r=ie();M.browsers.create.mutate({workspaceId:n,id:r}).catch(l=>{console.error("[DockviewBrowserContainer] error creating default browser:",l)}),e.addPanel({id:r,component:"browserTab",tabComponent:"browserTab",title:"Browser",params:{workspaceId:n,browserId:r},position:ge(e)})}export{Kt as DockviewBrowserContainer,zt as consumeBrowserFresh,me as markBrowserFresh,ie as newBrowserId};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TerminalPanel-D7KAWKtj.js","assets/main-BfbNp6IP.js","assets/main-Cd3W1s-m.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{u as U,n as Q,r as o,o as W,p as b,q as X,v as M,w as G,x as Y,y as Z,z as ee,j as f,A as te,B as ne,C as re,E as ie,F as ae,G as oe,X as le,H as ce,J as se,K as ue,_ as fe}from"./main-BfbNp6IP.js";import{S as me}from"./square-terminal-DEmN84EQ.js";const de=o.lazy(()=>fe(()=>import("./TerminalPanel-D7KAWKtj.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.TerminalPanel})));function pe(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();const e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;const r=Array.from(e,a=>a.toString(16).padStart(2,"0")).join("");return`${r.slice(0,8)}-${r.slice(8,12)}-${r.slice(12,16)}-${r.slice(16,20)}-${r.slice(20)}`}function S(){return pe()}function V(e){return["terminalLayout",e]}const F=new Map;function ye(e){if(typeof e=="object"&&e!==null){const r=e.panels;if(typeof r=="object"&&r!==null)return new Set(Object.keys(r))}return new Set}function L(e,r,a){a?.queryClient&&a.queryClient.setQueryData(V(e),{layout:r,terminalIds:ye(r)});const l=F.get(e);l&&clearTimeout(l),F.set(e,setTimeout(()=>{F.delete(e),b.terminalLayout.save.mutate({workspaceId:e,tree:r}).catch(d=>{console.error("[DockviewTerminalContainer] failed to persist layout:",d)})},500))}function he(e){if(typeof e!="object"||e===null)return!1;const r=e;return typeof r.grid=="object"&&typeof r.panels=="object"}const ge={name:"band",className:"dockview-theme-band dockview-terminal-tabs"};function be({params:e,api:r}){const{visible:a}=ce(),l=o.useCallback(c=>{r.setTitle(c)},[r]);if(!e.workspaceId||!e.terminalId)return null;const d=e.command||e.cwd||e.env?{command:e.command,cwd:e.cwd,env:e.env}:void 0;return f.jsx("div",{className:"flex h-full w-full flex-col overflow-hidden","data-testid":`dockview-terminal-tab__visible-${a?"true":"false"}`,children:f.jsx(o.Suspense,{fallback:null,children:f.jsx(de,{workspaceId:e.workspaceId,terminalId:e.terminalId,visible:a,paneMetadata:d,autoFocus:e.autoFocus,onTitleChange:l})})})}function J(e){const[r,a]=o.useState(e.api.title??"Terminal"),[l,d]=o.useState(e.containerApi.panels.length);o.useEffect(()=>{const y=e.api.onDidTitleChange(()=>{a(e.api.title??"Terminal")});return()=>y.dispose()},[e.api]),o.useEffect(()=>{const y=e.containerApi,T=()=>d(y.panels.length),R=y.onDidAddPanel(T),w=y.onDidRemovePanel(T);return()=>{R.dispose(),w.dispose()}},[e.containerApi]);const c=e.containerApi,p=e.params.terminalId,v=o.useCallback(y=>{y.stopPropagation(),P.get(c.id)?.current?.onClose(p)},[c,p]),D=l>1;return f.jsxs("div",{className:"dv-default-tab",children:[f.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[f.jsx(me,{className:"size-3.5 shrink-0 text-muted-foreground"}),f.jsx("span",{className:"truncate",children:r})]}),D&&f.jsx("button",{type:"button",className:"ml-1 inline-flex size-4 items-center justify-center rounded-sm opacity-60 hover:opacity-100 hover:bg-accent transition-colors",onClick:v,title:"Close terminal",children:f.jsx(le,{className:"size-3"})})]})}const P=new Map,ve=re.memo(function(r){const a=(r.location?.type??"grid")==="grid",l=r.containerApi.id,d=r.group.id;return f.jsxs("div",{className:"flex h-full w-full items-center justify-center","data-testid":a?"dockview-terminal__toolbar":void 0,children:[a&&f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",className:"inline-flex size-7 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>P.get(l)?.current?.onSplit(d,"right"),title:"Split right",children:f.jsx(ie,{className:"size-3.5"})}),f.jsx("button",{type:"button",className:"inline-flex size-7 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>P.get(l)?.current?.onSplit(d,"below"),title:"Split down",children:f.jsx(ae,{className:"size-3.5"})})]}),f.jsx("button",{type:"button",className:"inline-flex size-7 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>P.get(l)?.current?.onAdd(d),title:"New terminal",children:f.jsx(oe,{className:"size-4"})})]})}),Te={terminalTab:be},Ce={terminalTab:J};function Re({workspaceId:e,visible:r,wsActive:a}){const l=U(),d=Q(),c=o.useRef(null),p=o.useRef(!1),v=o.useRef(null),D=o.useRef(a);D.current=a;const y=o.useRef(null),T=o.useRef(null),{data:R}=W({queryKey:V(e),queryFn:async()=>{const[{tree:t},{terminals:i}]=await Promise.all([b.terminalLayout.get.query({workspaceId:e}).catch(()=>({tree:null})),b.terminal.list.query({workspaceId:e}).catch(()=>({terminals:[]}))]);return{layout:t,terminalIds:new Set(i.map(s=>s.terminalId))}},staleTime:Number.POSITIVE_INFINITY}),w=o.useRef(d);w.current=d;const k=o.useCallback(()=>{if(p.current)return;const t=c.current;t&&L(e,t.toJSON(),{queryClient:w.current})},[e]),j=o.useCallback(()=>{if(p.current||D.current===!1)return;const t=c.current?.activePanel?.id;t&&b.panelFocus.set.mutate({workspaceId:e,panelType:"terminal",panelId:t}).catch(()=>{})},[e]),E=o.useCallback(async t=>{const i=c.current;if(!i)return;const s=S(),m={id:s,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:e,terminalId:s,autoFocus:!0}};t&&(m.position={referenceGroup:t}),i.addPanel(m);try{await b.terminal.create.mutate({workspaceId:e,id:s})}catch(n){console.error("[DockviewTerminalContainer] error creating terminal:",n)}},[e]),q=o.useCallback(async(t,i)=>{const s=c.current;if(!s)return;const m=S();s.addPanel({id:m,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:e,terminalId:m,autoFocus:!0},position:{referenceGroup:t,direction:i}});try{await b.terminal.create.mutate({workspaceId:e,id:m})}catch(n){console.error("[DockviewTerminalContainer] error creating split terminal:",n)}},[e]),K=o.useCallback(t=>{const i=c.current;if(!i||i.panels.length<=1)return;X(i,t);const s=i.getPanel(t);s&&i.removePanel(s),requestAnimationFrame(()=>{const m=i.activePanel;m&&m.view.content.element.querySelector(".xterm-helper-textarea")?.focus()}),M(t),b.terminal.kill.mutate({terminalId:t}).catch(m=>{console.error("[DockviewTerminalContainer] failed to kill terminal:",m)})},[]);o.useEffect(()=>{if(!r)return;const t=()=>{const n=c.current?.activePanel;n&&n.view.content.element.querySelector(".xterm-helper-textarea")?.focus()},i=n=>{se(c.current,n,()=>{requestAnimationFrame(t)})},s=n=>{ue(c.current,n,()=>{requestAnimationFrame(t)})},m=n=>{if(!v.current?.contains(document.activeElement))return;const u=n.key.toLowerCase();if(n.ctrlKey&&!n.metaKey&&u==="tab"){n.preventDefault(),n.stopPropagation(),i(n.shiftKey?-1:1);return}if(!(n.metaKey||n.ctrlKey))return;if(n.shiftKey&&(u==="["||u==="]")){n.preventDefault(),n.stopPropagation(),i(u==="]"?1:-1);return}if(!n.shiftKey&&(u==="["||u==="]")){n.preventDefault(),n.stopPropagation(),s(u==="]"?1:-1);return}const g=()=>{const h=c.current;if(!h||h.panels.length<=1)return!1;const x=h.activePanel;return x?(K(x.id),!0):!1};if(u==="t"&&!n.shiftKey)n.preventDefault(),n.stopPropagation(),E();else if(u==="w"&&!n.shiftKey)g()&&(n.preventDefault(),n.stopPropagation());else if(u==="d")if(n.metaKey&&!n.ctrlKey){n.preventDefault(),n.stopPropagation();const h=c.current?.activeGroup;if(!h)return;q(h.id,n.shiftKey?"below":"right")}else n.ctrlKey&&!n.metaKey&&!n.shiftKey?g()&&(n.preventDefault(),n.stopPropagation()):(n.preventDefault(),n.stopPropagation())};return window.addEventListener("keydown",m,!0),()=>window.removeEventListener("keydown",m,!0)},[r,K,q,E]),o.useLayoutEffect(()=>{if(!r)return;const t=c.current,i=v.current;if(!t||!i)return;let s=0,m=0;const n=(g,h)=>{const x=Math.round(g),A=Math.round(h);x<=0||A<=0||x===s&&A===m||(s=x,m=A,t.layout(x,A,!0))},u=i.getBoundingClientRect();n(u.width,u.height);const C=new ResizeObserver(g=>{const h=g[0];h&&n(h.contentRect.width,h.contentRect.height)});return C.observe(i),()=>C.disconnect()},[r]),o.useEffect(()=>{if(!r)return;const t=requestAnimationFrame(()=>{const i=c.current?.activePanel;i&&(i.view.content.element.querySelector(".xterm-helper-textarea")?.focus(),j())});return()=>cancelAnimationFrame(t)},[r,j]),o.useEffect(()=>{const t=i=>{const s=i.detail;!s?.terminalId||s.workspaceId!==e||c.current?.getPanel(s.terminalId)?.api.setActive()};return window.addEventListener("band:terminal-insert",t),()=>window.removeEventListener("band:terminal-insert",t)},[e]),o.useEffect(()=>l.subscribeStatusEvents(t=>{if(t.workspaceId!==e)return;const i=c.current;if(i){if(t.kind==="terminal-created"&&typeof t.terminalId=="string"){if(i.getPanel(t.terminalId))return;i.addPanel({id:t.terminalId,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:e,terminalId:t.terminalId},position:G(i)})}else if(t.kind==="terminal-killed"&&typeof t.terminalId=="string"){M(t.terminalId);const s=i.getPanel(t.terminalId);s&&(i.removePanel(s),i.panels.length===0&&N(i,e))}}}),[l,e]);const _=o.useRef({onAdd:()=>{},onSplit:()=>{},onClose:()=>{}});_.current={onAdd:E,onSplit:q,onClose:K},o.useEffect(()=>()=>{const t=c.current;t&&P.delete(t.id),y.current?.(),y.current=null,T.current?.(),T.current=null},[]);const z=o.useRef(null);z.current=R?.layout??null;const I=o.useRef(null);I.current=R?.terminalIds??null;const O=o.useRef(r);O.current=r;const B=o.useCallback(t=>{const i=c.current;i&&i.id!==t.api.id&&P.delete(i.id),c.current=t.api,P.set(t.api.id,_);const s=z.current,m=I.current;if(s&&he(s)){p.current=!0;try{t.api.fromJSON(s)}catch(C){console.error("[DockviewTerminalContainer] fromJSON failed, creating default:",C),N(t.api,e)}let u=0;if(m){const C=t.api.panels.filter(g=>!m.has(g.id));for(const g of C)t.api.removePanel(g),u++;t.api.panels.length===0&&(N(t.api,e),u++)}setTimeout(()=>{p.current=!1},0),u>0&&L(e,t.api.toJSON(),{queryClient:w.current})}else xe(t.api,e,w.current);Y(t.api),y.current?.(),y.current=Z(t.api),T.current?.(),v.current&&(T.current=ee(v.current,t.api));const n=()=>k();if(t.api.onDidLayoutChange(n),t.api.onDidAddPanel(n),t.api.onDidRemovePanel(n),t.api.onDidActivePanelChange(()=>{n(),j()}),t.api.onDidAddGroup(n),t.api.onDidRemoveGroup(n),O.current&&v.current){const u=v.current.getBoundingClientRect();u.width>0&&u.height>0&&t.api.layout(Math.round(u.width),Math.round(u.height),!0)}},[e,k,j]),H=o.useMemo(()=>({visible:r&&a!==!1,wsActive:a!==!1}),[r,a]);return R?f.jsx("div",{ref:v,className:"flex h-full w-full flex-col overflow-hidden",children:f.jsx(te.Provider,{value:H,children:f.jsx(ne,{theme:ge,className:"h-full",components:Te,tabComponents:Ce,defaultTabComponent:J,onReady:B,rightHeaderActionsComponent:ve})})}):f.jsx("div",{className:"flex h-full w-full items-center justify-center"})}function N(e,r){const a=S();e.addPanel({id:a,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:r,terminalId:a},position:G(e)}),b.terminal.create.mutate({workspaceId:r,id:a}).catch(l=>{console.error("[DockviewTerminalContainer] error creating default terminal:",l)})}async function xe(e,r,a){try{const{config:l}=await b.workspace.getTerminalConfig.query({workspaceId:r});if(l?.layout){const d=$(l.layout);if(d.length>0){for(const c of d)try{const p=S();e.addPanel({id:p,component:"terminalTab",tabComponent:"terminalTab",title:c.name??"Terminal",params:{workspaceId:r,terminalId:p,command:c.command,cwd:c.cwd,env:c.env},position:G(e)}),await b.terminal.create.mutate({workspaceId:r,id:p,command:c.command,cwd:c.cwd,env:c.env})}catch(p){console.error("[DockviewTerminalContainer] error creating terminal from config:",p)}L(r,e.toJSON(),{queryClient:a});return}}}catch{}N(e,r)}function $(e,r=0){if(r>10||typeof e!="object"||e===null)return[];const a=e;if("pane"in a&&typeof a.pane=="object"&&a.pane!==null){const l=a.pane;return[{name:typeof l.name=="string"?l.name:void 0,command:typeof l.command=="string"?l.command:void 0,cwd:typeof l.cwd=="string"?l.cwd:void 0,env:typeof l.env=="object"&&l.env!==null?l.env:void 0}]}if("children"in a&&Array.isArray(a.children)){const l=[];for(const d of a.children)l.push(...$(d,r+1));return l}return[]}export{Re as DockviewTerminalContainer,S as newTerminalId};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{m as L,r as n,cn as _,co as P,cp as S,cq as N,cr as k,cs as C,j as e,ct as D,X as O,cu as I,ck as B,cv as M,cw as z}from"./main-BfbNp6IP.js";const Q=[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]],q=L("corner-down-left",Q);const H=[["path",{d:"M22 2 2 22",key:"y4kqgn"}]],W=L("slash",H);const U=[["path",{d:"M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6",key:"1528k5"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1",key:"1mj8rg"}],["path",{d:"M9 6v12",key:"velyjx"}]],F=L("text-cursor-input",U),G=49,T="(hover: none) and (pointer: coarse)";function R(){const[c,a]=n.useState(()=>typeof window>"u"?!1:window.matchMedia(T).matches),[o,h]=n.useState(0);return n.useEffect(()=>{if(typeof window>"u")return;const s=window.matchMedia(T),i=d=>a(d.matches);return a(s.matches),s.addEventListener("change",i),()=>s.removeEventListener("change",i)},[]),n.useEffect(()=>{if(typeof window>"u")return;if(!c){h(0);return}const s=window.visualViewport;if(!s)return;const i=()=>{const d=Math.max(0,window.innerHeight-(s.offsetTop+s.height));h(d)};return i(),s.addEventListener("resize",i),s.addEventListener("scroll",i),window.addEventListener("resize",i),()=>{s.removeEventListener("resize",i),s.removeEventListener("scroll",i),window.removeEventListener("resize",i)}},[c]),{enabled:c,bottomOffset:o,contentBottomInset:c?G:0}}const K="\x1B",V=" ",X="\r",$="/",Y="\x1B[A",J="\x1B[B",Z="\x1B[C",ee="\x1B[D",m=c=>a=>{a.preventDefault(),c()};function te({terminal:c,sendInput:a,pendingCtrl:o,onToggleCtrl:h,selectionMode:s,onExtendSelection:i,onExitSelection:d,onSelectAll:b}){const{enabled:j,bottomOffset:v}=R(),p=n.useCallback(async()=>{if(!c.hasSelection())return;const l=c.getSelection();if(!l)return;await _(l)||console.warn("[TerminalToolbar] clipboard write failed")},[c]),t=n.useCallback(async()=>{await p(),d()},[p,d]),u=n.useCallback(async()=>{const l=await P();l&&a(l)},[a]),g=n.useMemo(()=>[{label:"Esc",seq:K,ariaLabel:"Send Escape"},{label:"Tab",seq:V,ariaLabel:"Send Tab"}],[]),y=n.useMemo(()=>[{Icon:S,seq:ee,ariaLabel:"Arrow Left"},{Icon:N,seq:Y,ariaLabel:"Arrow Up"},{Icon:k,seq:J,ariaLabel:"Arrow Down"},{Icon:C,seq:Z,ariaLabel:"Arrow Right"}],[]),w=n.useMemo(()=>[{Icon:S,dir:"left",ariaLabel:"Extend selection left"},{Icon:N,dir:"up",ariaLabel:"Extend selection up"},{Icon:k,dir:"down",ariaLabel:"Extend selection down"},{Icon:C,dir:"right",ariaLabel:"Extend selection right"}],[]);return j?e.jsx("div",{"data-testid":"terminal-toolbar","data-mode":s?"selection":"idle",role:"toolbar","aria-label":s?"Terminal selection controls":"Terminal accessory keys",style:{bottom:v},className:"fixed inset-x-0 z-50 flex justify-center border-t border-border bg-background/95 shadow-lg backdrop-blur-md",children:e.jsxs("div",{className:"flex w-full max-w-3xl items-center gap-1 px-2 py-1.5",children:[e.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-1 overflow-x-auto",children:s?e.jsxs(e.Fragment,{children:[e.jsxs(x,{ariaLabel:"Copy selection and exit",title:"Copy",onPointerDown:m(t),variant:"primary",children:[e.jsx(D,{className:"size-4"}),e.jsx("span",{className:"text-xs",children:"Copy"})]}),e.jsxs(x,{ariaLabel:"Exit selection mode",title:"Done",onPointerDown:m(d),children:[e.jsx(O,{className:"size-4"}),e.jsx("span",{className:"text-xs",children:"Done"})]}),e.jsx("div",{className:"mx-1 h-6 w-px shrink-0 bg-border","aria-hidden":"true"}),e.jsx("span",{className:"mr-1 shrink-0 select-none text-xs font-medium uppercase tracking-wide text-muted-foreground","aria-hidden":"true",children:"Extend"}),w.map(({Icon:l,dir:f,ariaLabel:r})=>e.jsx(x,{ariaLabel:r,title:r,onPointerDown:m(()=>i(f)),children:e.jsx(l,{className:"size-4"})},f))]}):e.jsxs(e.Fragment,{children:[e.jsxs(x,{ariaLabel:"Paste from clipboard",title:"Paste",onPointerDown:m(u),children:[e.jsx(I,{className:"size-4"}),e.jsx("span",{className:"text-xs",children:"Paste"})]}),e.jsxs(x,{ariaLabel:"Select all",title:"Select all",onPointerDown:m(b),children:[e.jsx(F,{className:"size-4"}),e.jsx("span",{className:"text-xs",children:"All"})]}),e.jsx("div",{className:"mx-1 h-6 w-px shrink-0 bg-border","aria-hidden":"true"}),g.map(({label:l,seq:f,ariaLabel:r})=>e.jsx(x,{ariaLabel:r,title:l,onPointerDown:m(()=>a(f)),children:e.jsx("span",{className:"text-xs font-medium",children:l})},l)),e.jsx(x,{ariaLabel:"Send slash",title:"Slash command",onPointerDown:m(()=>a($)),children:e.jsx(W,{className:"size-4"})}),e.jsx(x,{ariaLabel:o?"Cancel pending Ctrl":"Arm Ctrl modifier",title:"Ctrl (sticky — taps the next key as Ctrl+key)",onPointerDown:m(h),active:o,children:e.jsx("span",{className:"text-xs font-medium",children:"Ctrl"})}),e.jsx("div",{className:"mx-1 h-6 w-px shrink-0 bg-border","aria-hidden":"true"}),y.map(({Icon:l,seq:f,ariaLabel:r})=>e.jsx(x,{ariaLabel:r,title:r,onPointerDown:m(()=>a(f)),children:e.jsx(l,{className:"size-4"})},r))]})}),e.jsx("div",{className:"h-6 w-px shrink-0 bg-border","aria-hidden":"true"}),e.jsx(x,{ariaLabel:"Send Enter",title:"Enter",onPointerDown:m(()=>a(X)),variant:"primary",children:e.jsx(q,{className:"size-4"})})]})}):null}function x({ariaLabel:c,title:a,onPointerDown:o,active:h,variant:s="default",disabled:i,children:d}){const b=h?"bg-primary text-primary-foreground":s==="primary"?"bg-primary text-primary-foreground hover:bg-primary/90":"bg-muted/60 hover:bg-muted active:bg-muted";return e.jsx("button",{type:"button","aria-label":c,"aria-pressed":h,title:a,onPointerDown:o,disabled:i,className:["inline-flex h-9 min-w-9 shrink-0 items-center justify-center gap-1 rounded-md px-2","text-foreground transition-colors",b,"disabled:opacity-40"].join(" "),children:d})}function re({workspaceId:c,terminalId:a,visible:o,paneMetadata:h,autoFocus:s,onTitleChange:i}){const d=n.useRef(null),b=n.useRef(null),{settings:j}=B(),v=j.useWebGLTerminalRenderer??!0,p=n.useRef(null);(!p.current||p.current.terminalId!==a||p.current.isDestroyed())&&(p.current=M(a,{workspaceId:c,paneMetadata:h,useWebGL:v,autoFocus:s}));const t=p.current,u=n.useSyncExternalStore(t.subscribe,t.getSnapshot);n.useEffect(()=>{const r=d.current;r&&(o?t.attach(r,{autoFocus:s}):t.detach())},[o,t,s]),n.useEffect(()=>()=>t.detach(),[t]);const g=n.useRef(i);g.current=i,n.useEffect(()=>t.registerTitleListener(r=>g.current?.(r)),[t]),n.useEffect(()=>{const r=()=>{o&&t.focus()};return window.addEventListener("band:focus-terminal",r),()=>window.removeEventListener("band:focus-terminal",r)},[o,t]),n.useEffect(()=>{if(!u.searchOpen)return;const r=requestAnimationFrame(()=>{b.current?.focus(),b.current?.select()});return()=>cancelAnimationFrame(r)},[u.searchOpen]);const y=n.useRef(null),w=n.useCallback(()=>{const r=y.current;r&&t.isSocketOpen()&&(t.sendInput(r),y.current=null,t.focus())},[t]);n.useEffect(()=>{o?w():y.current=null},[o,w]),n.useEffect(()=>t.subscribeConnect(()=>{o&&w()}),[t,o,w]),n.useEffect(()=>{const r=A=>{const E=A.detail;!E?.reference||E.workspaceId!==c||E.terminalId&&E.terminalId!==a||(y.current=E.reference,o&&w())};return window.addEventListener("band:terminal-insert",r),()=>window.removeEventListener("band:terminal-insert",r)},[o,c,a,w]);const{contentBottomInset:l}=R(),f=t.getTerminal();return e.jsxs("div",{className:"relative flex h-full w-full flex-col",children:[u.searchOpen&&e.jsx(z,{ref:b,query:u.searchQuery,onQueryChange:t.setSearchQuery,options:u.searchOptions,onOptionsChange:t.setSearchOptions,placeholder:"Find in terminal...",matchInfo:u.matchInfo,onNext:t.findNext,onPrevious:t.findPrevious,onClose:t.closeSearch}),e.jsx("div",{className:"relative min-h-0 flex-1",children:e.jsx("div",{ref:d,className:"absolute inset-x-2 top-2 overflow-hidden",style:{bottom:8+l}})}),u.ready&&f&&e.jsx(te,{terminal:f,sendInput:t.sendInput,pendingCtrl:u.pendingCtrl,onToggleCtrl:t.toggleCtrl,selectionMode:u.selectionMode,onExtendSelection:t.extendSelection,onExitSelection:t.exitSelection,onSelectAll:t.selectAll})]})}export{re as TerminalPanel};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var p=2,c=1,d=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let i=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(i._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let i=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,s=window.getComputedStyle(this._terminal.element.parentElement),l=parseInt(s.getPropertyValue("height")),o=Math.max(0,parseInt(s.getPropertyValue("width"))),t=window.getComputedStyle(this._terminal.element),r={top:parseInt(t.getPropertyValue("padding-top")),bottom:parseInt(t.getPropertyValue("padding-bottom")),right:parseInt(t.getPropertyValue("padding-right")),left:parseInt(t.getPropertyValue("padding-left"))},a=r.top+r.bottom,n=r.right+r.left,h=l-a,m=o-n-i;return{cols:Math.max(p,Math.floor(m/e.css.cell.width)),rows:Math.max(c,Math.floor(h/e.css.cell.height))}}};export{d as FitAddon};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
var De=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?le.isErrorNoTelemetry(e)?new le(e.message+`
|
|
2
|
-
|
|
3
|
-
`+e.stack):new Error(e.message+`
|
|
4
|
-
|
|
5
|
-
`+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}},xe=new De;function Z(e){Re(e)||xe.onUnexpectedError(e)}var ie="Canceled";function Re(e){return e instanceof ke?!0:e instanceof Error&&e.name===ie&&e.message===ie}var ke=class extends Error{constructor(){super(ie),this.name=this.message}},le=class se extends Error{constructor(t){super(t),this.name="CodeExpectedError"}static fromError(t){if(t instanceof se)return t;let i=new se;return i.message=t.message,i.stack=t.stack,i}static isErrorNoTelemetry(t){return t.name==="CodeExpectedError"}},Ee;(e=>{function t(a){return a<0}e.isLessThan=t;function i(a){return a<=0}e.isLessThanOrEqual=i;function s(a){return a>0}e.isGreaterThan=s;function r(a){return a===0}e.isNeitherLessOrGreaterThan=r,e.greaterThan=1,e.lessThan=-1,e.neitherLessOrGreaterThan=0})(Ee||={});function Oe(e,t){let i=this,s=!1,r;return function(){return s||(s=!0,t||(r=e.apply(i,arguments))),r}}var ue;(e=>{function t(f){return f&&typeof f=="object"&&typeof f[Symbol.iterator]=="function"}e.is=t;let i=Object.freeze([]);function s(){return i}e.empty=s;function*r(f){yield f}e.single=r;function a(f){return t(f)?f:r(f)}e.wrap=a;function u(f){return f||i}e.from=u;function*d(f){for(let p=f.length-1;p>=0;p--)yield f[p]}e.reverse=d;function _(f){return!f||f[Symbol.iterator]().next().done===!0}e.isEmpty=_;function w(f){return f[Symbol.iterator]().next().value}e.first=w;function T(f,p){let v=0;for(let D of f)if(p(D,v++))return!0;return!1}e.some=T;function L(f,p){for(let v of f)if(p(v))return v}e.find=L;function*b(f,p){for(let v of f)p(v)&&(yield v)}e.filter=b;function*y(f,p){let v=0;for(let D of f)yield p(D,v++)}e.map=y;function*C(f,p){let v=0;for(let D of f)yield*p(D,v++)}e.flatMap=C;function*U(...f){for(let p of f)yield*p}e.concat=U;function j(f,p,v){let D=v;for(let N of f)D=p(D,N);return D}e.reduce=j;function*M(f,p,v=f.length){for(p<0&&(p+=f.length),v<0?v+=f.length:v>f.length&&(v=f.length);p<v;p++)yield f[p]}e.slice=M;function Q(f,p=Number.POSITIVE_INFINITY){let v=[];if(p===0)return[v,f];let D=f[Symbol.iterator]();for(let N=0;N<p;N++){let $=D.next();if($.done)return[v,e.empty()];v.push($.value)}return[v,{[Symbol.iterator](){return D}}]}e.consume=Q;async function K(f){let p=[];for await(let v of f)p.push(v);return Promise.resolve(p)}e.asyncToArray=K})(ue||={});function B(e){if(ue.is(e)){let t=[];for(let i of e)if(i)try{i.dispose()}catch(s){t.push(s)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,"Encountered errors while disposing of store");return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function de(...e){return H(()=>B(e))}function H(e){return{dispose:Oe(()=>{e()})}}var fe=class _e{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{B(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?_e.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}delete(t){if(t){if(t===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.has(t)&&(this._toDispose.delete(t),void 0)}};fe.DISABLE_DISPOSED_WARNING=!1;var ae=fe,W=class{constructor(){this._store=new ae,this._store}dispose(){this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}};W.None=Object.freeze({dispose(){}});var X=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}clearAndLeak(){let e=this._value;return this._value=void 0,e}},Me=globalThis.performance&&typeof globalThis.performance.now=="function",Ae=class ge{static create(t){return new ge(t)}constructor(t){this._now=Me&&t===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}},oe;(e=>{e.None=()=>W.None;function t(h,n){return L(h,()=>{},0,void 0,!0,void 0,n)}e.defer=t;function i(h){return(n,l=null,o)=>{let c=!1,g;return g=h(m=>{if(!c)return g?g.dispose():c=!0,n.call(l,m)},null,o),c&&g.dispose(),g}}e.once=i;function s(h,n,l){return w((o,c=null,g)=>h(m=>o.call(c,n(m)),null,g),l)}e.map=s;function r(h,n,l){return w((o,c=null,g)=>h(m=>{n(m),o.call(c,m)},null,g),l)}e.forEach=r;function a(h,n,l){return w((o,c=null,g)=>h(m=>n(m)&&o.call(c,m),null,g),l)}e.filter=a;function u(h){return h}e.signal=u;function d(...h){return(n,l=null,o)=>{let c=de(...h.map(g=>g(m=>n.call(l,m))));return T(c,o)}}e.any=d;function _(h,n,l,o){let c=l;return s(h,g=>(c=n(c,g),c),o)}e.reduce=_;function w(h,n){let l,o={onWillAddFirstListener(){l=h(c.fire,c)},onDidRemoveLastListener(){l?.dispose()}},c=new E(o);return n?.add(c),c.event}function T(h,n){return n instanceof Array?n.push(h):n&&n.add(h),h}function L(h,n,l=100,o=!1,c=!1,g,m){let S,x,F,Y=0,z,Le={leakWarningThreshold:g,onWillAddFirstListener(){S=h(be=>{Y++,x=n(x,be),o&&!F&&(G.fire(x),x=void 0),z=()=>{let Te=x;x=void 0,F=void 0,(!o||Y>1)&&G.fire(Te),Y=0},typeof l=="number"?(clearTimeout(F),F=setTimeout(z,l)):F===void 0&&(F=0,queueMicrotask(z))})},onWillRemoveListener(){c&&Y>0&&z?.()},onDidRemoveLastListener(){z=void 0,S.dispose()}},G=new E(Le);return m?.add(G),G.event}e.debounce=L;function b(h,n=0,l){return e.debounce(h,(o,c)=>o?(o.push(c),o):[c],n,void 0,!0,void 0,l)}e.accumulate=b;function y(h,n=(o,c)=>o===c,l){let o=!0,c;return a(h,g=>{let m=o||!n(g,c);return o=!1,c=g,m},l)}e.latch=y;function C(h,n,l){return[e.filter(h,n,l),e.filter(h,o=>!n(o),l)]}e.split=C;function U(h,n=!1,l=[],o){let c=l.slice(),g=h(x=>{c?c.push(x):S.fire(x)});o&&o.add(g);let m=()=>{c?.forEach(x=>S.fire(x)),c=null},S=new E({onWillAddFirstListener(){g||(g=h(x=>S.fire(x)),o&&o.add(g))},onDidAddFirstListener(){c&&(n?setTimeout(m):m())},onDidRemoveLastListener(){g&&g.dispose(),g=null}});return o&&o.add(S),S.event}e.buffer=U;function j(h,n){return(l,o,c)=>{let g=n(new Q);return h(function(m){let S=g.evaluate(m);S!==M&&l.call(o,S)},void 0,c)}}e.chain=j;let M=Symbol("HaltChainable");class Q{constructor(){this.steps=[]}map(n){return this.steps.push(n),this}forEach(n){return this.steps.push(l=>(n(l),l)),this}filter(n){return this.steps.push(l=>n(l)?l:M),this}reduce(n,l){let o=l;return this.steps.push(c=>(o=n(o,c),o)),this}latch(n=(l,o)=>l===o){let l=!0,o;return this.steps.push(c=>{let g=l||!n(c,o);return l=!1,o=c,g?c:M}),this}evaluate(n){for(let l of this.steps)if(n=l(n),n===M)break;return n}}function K(h,n,l=o=>o){let o=(...S)=>m.fire(l(...S)),c=()=>h.on(n,o),g=()=>h.removeListener(n,o),m=new E({onWillAddFirstListener:c,onDidRemoveLastListener:g});return m.event}e.fromNodeEventEmitter=K;function f(h,n,l=o=>o){let o=(...S)=>m.fire(l(...S)),c=()=>h.addEventListener(n,o),g=()=>h.removeEventListener(n,o),m=new E({onWillAddFirstListener:c,onDidRemoveLastListener:g});return m.event}e.fromDOMEventEmitter=f;function p(h){return new Promise(n=>i(h)(n))}e.toPromise=p;function v(h){let n=new E;return h.then(l=>{n.fire(l)},()=>{n.fire(void 0)}).finally(()=>{n.dispose()}),n.event}e.fromPromise=v;function D(h,n){return h(l=>n.fire(l))}e.forward=D;function N(h,n,l){return n(l),h(o=>n(o))}e.runAndSubscribe=N;class ${constructor(n,l){this._observable=n,this._counter=0,this._hasChanged=!1;let o={onWillAddFirstListener:()=>{n.addObserver(this)},onDidRemoveLastListener:()=>{n.removeObserver(this)}};this.emitter=new E(o),l&&l.add(this.emitter)}beginUpdate(n){this._counter++}handlePossibleChange(n){}handleChange(n,l){this._hasChanged=!0}endUpdate(n){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function Se(h,n){return new $(h,n).emitter.event}e.fromObservable=Se;function ye(h){return(n,l,o)=>{let c=0,g=!1,m={beginUpdate(){c++},endUpdate(){c--,c===0&&(h.reportChanges(),g&&(g=!1,n.call(l)))},handlePossibleChange(){},handleChange(){g=!0}};h.addObserver(m),h.reportChanges();let S={dispose(){h.removeObserver(m)}};return o instanceof ae?o.add(S):Array.isArray(o)&&o.push(S),S}}e.fromObservableLight=ye})(oe||={});var re=class ne{constructor(t){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${t}_${ne._idPool++}`,ne.all.add(this)}start(t){this._stopWatch=new Ae,this.listenerCount=t}stop(){if(this._stopWatch){let t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}};re.all=new Set,re._idPool=0;var Ie=re,We=-1,pe=class me{constructor(t,i,s=(me._idPool++).toString(16).padStart(3,"0")){this._errorHandler=t,this.threshold=i,this.name=s,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(t,i){let s=this.threshold;if(s<=0||i<s)return;this._stacks||(this._stacks=new Map);let r=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,r+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=s*.5;let[a,u]=this.getMostFrequentStack(),d=`[${this.name}] potential listener LEAK detected, having ${i} listeners already. MOST frequent listener (${u}):`;console.warn(d),console.warn(a);let _=new Fe(d,a);this._errorHandler(_)}return()=>{let a=this._stacks.get(t.value)||0;this._stacks.set(t.value,a-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,i=0;for(let[s,r]of this._stacks)(!t||i<r)&&(t=[s,r],i=r);return t}};pe._idPool=1;var Pe=pe,Ne=class ve{constructor(t){this.value=t}static create(){let t=new Error;return new ve(t.stack??"")}print(){console.warn(this.value.split(`
|
|
6
|
-
`).slice(2).join(`
|
|
7
|
-
`))}},Fe=class extends Error{constructor(e,t){super(e),this.name="ListenerLeakError",this.stack=t}},qe=class extends Error{constructor(e,t){super(e),this.name="ListenerRefusalError",this.stack=t}},He=0,ee=class{constructor(e){this.value=e,this.id=He++}},Ue=2,je,E=class{constructor(e){this._size=0,this._options=e,this._leakageMon=this._options?.leakWarningThreshold?new Pe(e?.onListenerError??Z,this._options?.leakWarningThreshold??We):void 0,this._perfMon=this._options?._profName?new Ie(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){this._disposed||(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose())}get event(){return this._event??=(e,t,i)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let u=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(u);let d=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],_=new qe(`${u}. HINT: Stack shows most frequent listener (${d[1]}-times)`,d[0]);return(this._options?.onListenerError||Z)(_),W.None}if(this._disposed)return W.None;t&&(e=e.bind(t));let s=new ee(e),r;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(s.stack=Ne.create(),r=this._leakageMon.check(s.stack,this._size+1)),this._listeners?this._listeners instanceof ee?(this._deliveryQueue??=new Qe,this._listeners=[this._listeners,s]):this._listeners.push(s):(this._options?.onWillAddFirstListener?.(this),this._listeners=s,this._options?.onDidAddFirstListener?.(this)),this._size++;let a=H(()=>{r?.(),this._removeListener(s)});return i instanceof ae?i.add(a):Array.isArray(i)&&i.push(a),a},this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,i=t.indexOf(e);if(i===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,t[i]=void 0;let s=this._deliveryQueue.current===this;if(this._size*Ue<=t.length){let r=0;for(let a=0;a<t.length;a++)t[a]?t[r++]=t[a]:s&&(this._deliveryQueue.end--,r<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=r}}_deliver(e,t){if(!e)return;let i=this._options?.onListenerError||Z;if(!i){e.value(t);return}try{e.value(t)}catch(s){i(s)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof ee)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}this._perfMon?.stop()}hasListeners(){return this._size>0}},Qe=class{constructor(){this.i=-1,this.end=0}enqueue(e,t,i){this.i=0,this.end=i,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}},we=Object.freeze(function(e,t){let i=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(i)}}}),ze;(e=>{function t(i){return i===e.None||i===e.Cancelled||i instanceof Be?!0:!i||typeof i!="object"?!1:typeof i.isCancellationRequested=="boolean"&&typeof i.onCancellationRequested=="function"}e.isCancellationToken=t,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:oe.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:we})})(ze||={});var Be=class{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?we:(this._emitter||(this._emitter=new E),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}},q="en",te=!1,V,J=q,he=q,$e,A,P=globalThis,R;typeof P.vscode<"u"&&typeof P.vscode.process<"u"?R=P.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(R=process);var Ye=typeof R?.versions?.electron=="string",Ge=Ye&&R?.type==="renderer";if(typeof R=="object"){R.platform,R.platform,te=R.platform==="linux",te&&R.env.SNAP&&R.env.SNAP_REVISION,R.env.CI||R.env.BUILD_ARTIFACTSTAGINGDIRECTORY,V=q,J=q;let e=R.env.VSCODE_NLS_CONFIG;if(e)try{let t=JSON.parse(e);V=t.userLocale,he=t.osLocale,J=t.resolvedLanguage||q,$e=t.languagePack?.translationsConfigFile}catch{}}else typeof navigator=="object"&&!Ge?(A=navigator.userAgent,A.indexOf("Windows")>=0,A.indexOf("Macintosh")>=0,(A.indexOf("Macintosh")>=0||A.indexOf("iPad")>=0||A.indexOf("iPhone")>=0)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>0,te=A.indexOf("Linux")>=0,A?.indexOf("Mobi")>=0,J=globalThis._VSCODE_NLS_LANGUAGE||q,V=navigator.language.toLowerCase(),he=V):console.error("Unable to resolve platform.");var O=A,I=J,Ve;(e=>{function t(){return I}e.value=t;function i(){return I.length===2?I==="en":I.length>=3?I[0]==="e"&&I[1]==="n"&&I[2]==="-":!1}e.isDefaultVariant=i;function s(){return I==="en"}e.isDefault=s})(Ve||={});var Je=typeof P.postMessage=="function"&&!P.importScripts;(()=>{if(Je){let e=[];P.addEventListener("message",i=>{if(i.data&&i.data.vscodeScheduleAsyncWork)for(let s=0,r=e.length;s<r;s++){let a=e[s];if(a.id===i.data.vscodeScheduleAsyncWork){e.splice(s,1),a.callback();return}}});let t=0;return i=>{let s=++t;e.push({id:s,callback:i}),P.postMessage({vscodeScheduleAsyncWork:s},"*")}}return e=>setTimeout(e)})();var Xe=!!(O&&O.indexOf("Chrome")>=0);O&&O.indexOf("Firefox")>=0;!Xe&&O&&O.indexOf("Safari")>=0;O&&O.indexOf("Edg/")>=0;O&&O.indexOf("Android")>=0;function Ce(e,t=0,i){let s=setTimeout(()=>{e()},t);return H(()=>{clearTimeout(s)})}var Ke;(e=>{async function t(s){let r,a=await Promise.all(s.map(u=>u.then(d=>d,d=>{r||(r=d)})));if(typeof r<"u")throw r;return a}e.settled=t;function i(s){return new Promise(async(r,a)=>{try{await s(r,a)}catch(u){a(u)}})}e.withAsyncBody=i})(Ke||={});var ce=class k{static fromArray(t){return new k(i=>{i.emitMany(t)})}static fromPromise(t){return new k(async i=>{i.emitMany(await t)})}static fromPromises(t){return new k(async i=>{await Promise.all(t.map(async s=>i.emitOne(await s)))})}static merge(t){return new k(async i=>{await Promise.all(t.map(async s=>{for await(let r of s)i.emitOne(r)}))})}constructor(t,i){this._state=0,this._results=[],this._error=null,this._onReturn=i,this._onStateChanged=new E,queueMicrotask(async()=>{let s={emitOne:r=>this.emitOne(r),emitMany:r=>this.emitMany(r),reject:r=>this.reject(r)};try{await Promise.resolve(t(s)),this.resolve()}catch(r){this.reject(r)}finally{s.emitOne=void 0,s.emitMany=void 0,s.reject=void 0}})}[Symbol.asyncIterator](){let t=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(t<this._results.length)return{done:!1,value:this._results[t++]};if(this._state===1)return{done:!0,value:void 0};await oe.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,i){return new k(async s=>{for await(let r of t)s.emitOne(i(r))})}map(t){return k.map(this,t)}static filter(t,i){return new k(async s=>{for await(let r of t)i(r)&&s.emitOne(r)})}filter(t){return k.filter(this,t)}static coalesce(t){return k.filter(t,i=>!!i)}coalesce(){return k.coalesce(this)}static async toPromise(t){let i=[];for await(let s of t)i.push(s);return i}toPromise(){return k.toPromise(this)}emitOne(t){this._state===0&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){this._state===0&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(t){this._state===0&&(this._state=2,this._error=t,this._onStateChanged.fire())}};ce.EMPTY=ce.fromArray([]);var Ze=class extends W{constructor(e){super(),this._terminal=e,this._linesCacheTimeout=this._register(new X),this._linesCacheDisposables=this._register(new X),this._register(H(()=>this._destroyLinesCache()))}initLinesCache(){this._linesCache||(this._linesCache=new Array(this._terminal.buffer.active.length),this._linesCacheDisposables.value=de(this._terminal.onLineFeed(()=>this._destroyLinesCache()),this._terminal.onCursorMove(()=>this._destroyLinesCache()),this._terminal.onResize(()=>this._destroyLinesCache()))),this._linesCacheTimeout.value=Ce(()=>this._destroyLinesCache(),15e3)}_destroyLinesCache(){this._linesCache=void 0,this._linesCacheDisposables.clear(),this._linesCacheTimeout.clear()}getLineFromCache(e){return this._linesCache?.[e]}setLineInCache(e,t){this._linesCache&&(this._linesCache[e]=t)}translateBufferLineToStringWithWrap(e,t){let i=[],s=[0],r=this._terminal.buffer.active.getLine(e);for(;r;){let a=this._terminal.buffer.active.getLine(e+1),u=a?a.isWrapped:!1,d=r.translateToString(!u&&t);if(u&&a){let _=r.getCell(r.length-1);_&&_.getCode()===0&&_.getWidth()===1&&a.getCell(0)?.getWidth()===2&&(d=d.slice(0,-1))}if(i.push(d),u)s.push(s[s.length-1]+d.length);else break;e++,r=a}return[i.join(""),s]}},et=class{get cachedSearchTerm(){return this._cachedSearchTerm}set cachedSearchTerm(e){this._cachedSearchTerm=e}get lastSearchOptions(){return this._lastSearchOptions}set lastSearchOptions(e){this._lastSearchOptions=e}isValidSearchTerm(e){return!!(e&&e.length>0)}didOptionsChange(e){return this._lastSearchOptions?e?this._lastSearchOptions.caseSensitive!==e.caseSensitive||this._lastSearchOptions.regex!==e.regex||this._lastSearchOptions.wholeWord!==e.wholeWord:!1:!0}shouldUpdateHighlighting(e,t){return t?.decorations?this._cachedSearchTerm===void 0||e!==this._cachedSearchTerm||this.didOptionsChange(t):!1}clearCachedTerm(){this._cachedSearchTerm=void 0}reset(){this._cachedSearchTerm=void 0,this._lastSearchOptions=void 0}},tt=class{constructor(e,t){this._terminal=e,this._lineCache=t}find(e,t,i,s){if(!e||e.length===0){this._terminal.clearSelection();return}if(i>this._terminal.cols)throw new Error(`Invalid col: ${i} to search in terminal of ${this._terminal.cols} cols`);this._lineCache.initLinesCache();let r={startRow:t,startCol:i},a=this._findInLine(e,r,s);if(!a)for(let u=t+1;u<this._terminal.buffer.active.baseY+this._terminal.rows&&(r.startRow=u,r.startCol=0,a=this._findInLine(e,r,s),!a);u++);return a}findNextWithSelection(e,t,i){if(!e||e.length===0){this._terminal.clearSelection();return}let s=this._terminal.getSelectionPosition();this._terminal.clearSelection();let r=0,a=0;s&&(i===e?(r=s.end.x,a=s.end.y):(r=s.start.x,a=s.start.y)),this._lineCache.initLinesCache();let u={startRow:a,startCol:r},d=this._findInLine(e,u,t);if(!d)for(let _=a+1;_<this._terminal.buffer.active.baseY+this._terminal.rows&&(u.startRow=_,u.startCol=0,d=this._findInLine(e,u,t),!d);_++);if(!d&&a!==0)for(let _=0;_<a&&(u.startRow=_,u.startCol=0,d=this._findInLine(e,u,t),!d);_++);return!d&&s&&(u.startRow=s.start.y,u.startCol=0,d=this._findInLine(e,u,t)),d}findPreviousWithSelection(e,t,i){if(!e||e.length===0){this._terminal.clearSelection();return}let s=this._terminal.getSelectionPosition();this._terminal.clearSelection();let r=this._terminal.buffer.active.baseY+this._terminal.rows-1,a=this._terminal.cols,u=!0;this._lineCache.initLinesCache();let d={startRow:r,startCol:a},_;if(s&&(d.startRow=r=s.start.y,d.startCol=a=s.start.x,i!==e&&(_=this._findInLine(e,d,t,!1),_||(d.startRow=r=s.end.y,d.startCol=a=s.end.x))),_||(_=this._findInLine(e,d,t,u)),!_){d.startCol=Math.max(d.startCol,this._terminal.cols);for(let w=r-1;w>=0&&(d.startRow=w,_=this._findInLine(e,d,t,u),!_);w--);}if(!_&&r!==this._terminal.buffer.active.baseY+this._terminal.rows-1)for(let w=this._terminal.buffer.active.baseY+this._terminal.rows-1;w>=r&&(d.startRow=w,_=this._findInLine(e,d,t,u),!_);w--);return _}_isWholeWord(e,t,i){return(e===0||" ~!@#$%^&*()+`-=[]{}|\\;:\"',./<>?".includes(t[e-1]))&&(e+i.length===t.length||" ~!@#$%^&*()+`-=[]{}|\\;:\"',./<>?".includes(t[e+i.length]))}_findInLine(e,t,i={},s=!1){let r=t.startRow,a=t.startCol;if(this._terminal.buffer.active.getLine(r)?.isWrapped){if(s){t.startCol+=this._terminal.cols;return}return t.startRow--,t.startCol+=this._terminal.cols,this._findInLine(e,t,i)}let u=this._lineCache.getLineFromCache(r);u||(u=this._lineCache.translateBufferLineToStringWithWrap(r,!0),this._lineCache.setLineInCache(r,u));let[d,_]=u,w=this._bufferColsToStringOffset(r,a),T=e,L=d;i.regex||(T=i.caseSensitive?e:e.toLowerCase(),L=i.caseSensitive?d:d.toLowerCase());let b=-1;if(i.regex){let y=RegExp(T,i.caseSensitive?"g":"gi"),C;if(s)for(;C=y.exec(L.slice(0,w));)b=y.lastIndex-C[0].length,e=C[0],y.lastIndex-=e.length-1;else C=y.exec(L.slice(w)),C&&C[0].length>0&&(b=w+(y.lastIndex-C[0].length),e=C[0])}else s?w-T.length>=0&&(b=L.lastIndexOf(T,w-T.length)):b=L.indexOf(T,w);if(b>=0){if(i.wholeWord&&!this._isWholeWord(b,L,e))return;let y=0;for(;y<_.length-1&&b>=_[y+1];)y++;let C=y;for(;C<_.length-1&&b+e.length>=_[C+1];)C++;let U=b-_[y],j=b+e.length-_[C],M=this._stringLengthToBufferSize(r+y,U),Q=this._stringLengthToBufferSize(r+C,j)-M+this._terminal.cols*(C-y);return{term:e,col:M,row:r+y,size:Q}}}_stringLengthToBufferSize(e,t){let i=this._terminal.buffer.active.getLine(e);if(!i)return 0;for(let s=0;s<t;s++){let r=i.getCell(s);if(!r)break;let a=r.getChars();a.length>1&&(t-=a.length-1);let u=i.getCell(s+1);u&&u.getWidth()===0&&t++}return t}_bufferColsToStringOffset(e,t){let i=e,s=0,r=this._terminal.buffer.active.getLine(i);for(;t>0&&r;){for(let a=0;a<t&&a<this._terminal.cols;a++){let u=r.getCell(a);if(!u)break;u.getWidth()&&(s+=u.getCode()===0?1:u.getChars().length)}if(i++,r=this._terminal.buffer.active.getLine(i),r&&!r.isWrapped)break;t-=this._terminal.cols}return s}},it=class extends W{constructor(e){super(),this._terminal=e,this._highlightDecorations=[],this._highlightedLines=new Set,this._register(H(()=>this.clearHighlightDecorations()))}createHighlightDecorations(e,t){this.clearHighlightDecorations();for(let i of e){let s=this._createResultDecorations(i,t,!1);if(s)for(let r of s)this._storeDecoration(r,i)}}createActiveDecoration(e,t){let i=this._createResultDecorations(e,t,!0);if(i)return{decorations:i,match:e,dispose(){B(i)}}}clearHighlightDecorations(){B(this._highlightDecorations),this._highlightDecorations=[],this._highlightedLines.clear()}_storeDecoration(e,t){this._highlightedLines.add(e.marker.line),this._highlightDecorations.push({decoration:e,match:t,dispose(){e.dispose()}})}_applyStyles(e,t,i){e.classList.contains("xterm-find-result-decoration")||(e.classList.add("xterm-find-result-decoration"),t&&(e.style.outline=`1px solid ${t}`)),i&&e.classList.add("xterm-find-active-result-decoration")}_createResultDecorations(e,t,i){let s=[],r=e.col,a=e.size,u=-this._terminal.buffer.active.baseY-this._terminal.buffer.active.cursorY+e.row;for(;a>0;){let _=Math.min(this._terminal.cols-r,a);s.push([u,r,_]),r=0,a-=_,u++}let d=[];for(let _ of s){let w=this._terminal.registerMarker(_[0]),T=this._terminal.registerDecoration({marker:w,x:_[1],width:_[2],backgroundColor:i?t.activeMatchBackground:t.matchBackground,overviewRulerOptions:this._highlightedLines.has(w.line)?void 0:{color:i?t.activeMatchColorOverviewRuler:t.matchOverviewRuler,position:"center"}});if(T){let L=[];L.push(w),L.push(T.onRender(b=>this._applyStyles(b,i?t.activeMatchBorder:t.matchBorder,!1))),L.push(T.onDispose(()=>B(L))),d.push(T)}}return d.length===0?void 0:d}},st=class extends W{constructor(){super(...arguments),this._searchResults=[],this._onDidChangeResults=this._register(new E)}get onDidChangeResults(){return this._onDidChangeResults.event}get searchResults(){return this._searchResults}get selectedDecoration(){return this._selectedDecoration}set selectedDecoration(e){this._selectedDecoration=e}updateResults(e,t){this._searchResults=e.slice(0,t)}clearResults(){this._searchResults=[]}clearSelectedDecoration(){this._selectedDecoration&&(this._selectedDecoration.dispose(),this._selectedDecoration=void 0)}findResultIndex(e){for(let t=0;t<this._searchResults.length;t++){let i=this._searchResults[t];if(i.row===e.row&&i.col===e.col&&i.size===e.size)return t}return-1}fireResultsChanged(e){if(!e)return;let t=-1;this._selectedDecoration&&(t=this.findResultIndex(this._selectedDecoration.match)),this._onDidChangeResults.fire({resultIndex:t,resultCount:this._searchResults.length})}reset(){this.clearSelectedDecoration(),this.clearResults()}},rt=class extends W{constructor(e){super(),this._highlightTimeout=this._register(new X),this._lineCache=this._register(new X),this._state=new et,this._resultTracker=this._register(new st),this._highlightLimit=e?.highlightLimit??1e3}get onDidChangeResults(){return this._resultTracker.onDidChangeResults}activate(e){this._terminal=e,this._lineCache.value=new Ze(e),this._engine=new tt(e,this._lineCache.value),this._decorationManager=new it(e),this._register(this._terminal.onWriteParsed(()=>this._updateMatches())),this._register(this._terminal.onResize(()=>this._updateMatches())),this._register(H(()=>this.clearDecorations()))}_updateMatches(){this._highlightTimeout.clear(),this._state.cachedSearchTerm&&this._state.lastSearchOptions?.decorations&&(this._highlightTimeout.value=Ce(()=>{let e=this._state.cachedSearchTerm;this._state.clearCachedTerm(),this.findPrevious(e,{...this._state.lastSearchOptions,incremental:!0},{noScroll:!0})},200))}clearDecorations(e){this._resultTracker.clearSelectedDecoration(),this._decorationManager?.clearHighlightDecorations(),this._resultTracker.clearResults(),e||this._state.clearCachedTerm()}clearActiveDecoration(){this._resultTracker.clearSelectedDecoration()}findNext(e,t,i){if(!this._terminal||!this._engine)throw new Error("Cannot use addon until it has been loaded");this._state.lastSearchOptions=t,this._state.shouldUpdateHighlighting(e,t)&&this._highlightAllMatches(e,t);let s=this._findNextAndSelect(e,t,i);return this._fireResults(t),this._state.cachedSearchTerm=e,s}_highlightAllMatches(e,t){if(!this._terminal||!this._engine||!this._decorationManager)throw new Error("Cannot use addon until it has been loaded");if(!this._state.isValidSearchTerm(e)){this.clearDecorations();return}this.clearDecorations(!0);let i=[],s,r=this._engine.find(e,0,0,t);for(;r&&(s?.row!==r.row||s?.col!==r.col)&&!(i.length>=this._highlightLimit);)s=r,i.push(s),r=this._engine.find(e,s.col+s.term.length>=this._terminal.cols?s.row+1:s.row,s.col+s.term.length>=this._terminal.cols?0:s.col+1,t);this._resultTracker.updateResults(i,this._highlightLimit),t.decorations&&this._decorationManager.createHighlightDecorations(i,t.decorations)}_findNextAndSelect(e,t,i){if(!this._terminal||!this._engine)return!1;if(!this._state.isValidSearchTerm(e))return this._terminal.clearSelection(),this.clearDecorations(),!1;let s=this._engine.findNextWithSelection(e,t,this._state.cachedSearchTerm);return this._selectResult(s,t?.decorations,i?.noScroll)}findPrevious(e,t,i){if(!this._terminal||!this._engine)throw new Error("Cannot use addon until it has been loaded");this._state.lastSearchOptions=t,this._state.shouldUpdateHighlighting(e,t)&&this._highlightAllMatches(e,t);let s=this._findPreviousAndSelect(e,t,i);return this._fireResults(t),this._state.cachedSearchTerm=e,s}_fireResults(e){this._resultTracker.fireResultsChanged(!!e?.decorations)}_findPreviousAndSelect(e,t,i){if(!this._terminal||!this._engine)return!1;if(!this._state.isValidSearchTerm(e))return this._terminal.clearSelection(),this.clearDecorations(),!1;let s=this._engine.findPreviousWithSelection(e,t,this._state.cachedSearchTerm);return this._selectResult(s,t?.decorations,i?.noScroll)}_selectResult(e,t,i){if(!this._terminal||!this._decorationManager)return!1;if(this._resultTracker.clearSelectedDecoration(),!e)return this._terminal.clearSelection(),!1;if(this._terminal.select(e.col,e.row,e.size),t){let s=this._decorationManager.createActiveDecoration(e,t);s&&(this._resultTracker.selectedDecoration=s)}if(!i&&(e.row>=this._terminal.buffer.active.viewportY+this._terminal.rows||e.row<this._terminal.buffer.active.viewportY)){let s=e.row-this._terminal.buffer.active.viewportY;s-=Math.floor(this._terminal.rows/2),this._terminal.scrollLines(s)}return!0}};export{rt as SearchAddon};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var L=class{constructor(s,e,t,r={}){this._terminal=s,this._regex=e,this._handler=t,this._options=r}provideLinks(s,e){let t=x.computeLink(s,this._regex,this._terminal,this._handler);e(this._addCallbacks(t))}_addCallbacks(s){return s.map(e=>(e.leave=this._options.leave,e.hover=(t,r)=>{if(this._options.hover){let{range:l}=e;this._options.hover(t,r,l)}},e))}};function m(s){try{let e=new URL(s),t=e.password&&e.username?`${e.protocol}//${e.username}:${e.password}@${e.host}`:e.username?`${e.protocol}//${e.username}@${e.host}`:`${e.protocol}//${e.host}`;return s.toLocaleLowerCase().startsWith(t.toLocaleLowerCase())}catch{return!1}}var x=class d{static computeLink(e,t,r,l){let h=new RegExp(t.source,(t.flags||"")+"g"),[i,n]=d._getWindowedLineStrings(e-1,r),a=i.join(""),o,c=[];for(;o=h.exec(a);){let p=o[0];if(!m(p))continue;let[u,g]=d._mapStrIdx(r,n,0,o.index),[f,_]=d._mapStrIdx(r,u,g,p.length);if(u===-1||g===-1||f===-1||_===-1)continue;let v={start:{x:g+1,y:u+1},end:{x:_,y:f+1}};c.push({range:v,text:p,activate:l})}return c}static _getWindowedLineStrings(e,t){let r,l=e,h=e,i=0,n="",a=[];if(r=t.buffer.active.getLine(e)){let o=r.translateToString(!0);if(r.isWrapped&&o[0]!==" "){for(i=0;(r=t.buffer.active.getLine(--l))&&i<2048&&(n=r.translateToString(!0),i+=n.length,a.push(n),!(!r.isWrapped||n.indexOf(" ")!==-1)););a.reverse()}for(a.push(o),i=0;(r=t.buffer.active.getLine(++h))&&r.isWrapped&&i<2048&&(n=r.translateToString(!0),i+=n.length,a.push(n),n.indexOf(" ")===-1););}return[a,l]}static _mapStrIdx(e,t,r,l){let h=e.buffer.active,i=h.getNullCell(),n=r;for(;l;){let a=h.getLine(t);if(!a)return[-1,-1];for(let o=n;o<a.length;++o){a.getCell(o,i);let c=i.getChars();if(i.getWidth()&&(l-=c.length||1,o===a.length-1&&c==="")){let p=h.getLine(t+1);p&&p.isWrapped&&(p.getCell(0,i),i.getWidth()===2&&(l+=1))}if(l<0)return[t,o]}t++,n=0}return[t,n]}},w=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function k(s,e){let t=window.open();if(t){try{t.opener=null}catch{}t.location.href=e}else console.warn("Opening link blocked as opener could not be cleared")}var b=class{constructor(s=k,e={}){this._handler=s,this._options=e}activate(s){this._terminal=s;let e=this._options,t=e.urlRegex||w;this._linkProvider=this._terminal.registerLinkProvider(new L(this._terminal,t,this._handler,e))}dispose(){this._linkProvider?.dispose()}};export{b as WebLinksAddon};
|