@tequila99/githuman 0.10.0 → 0.11.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/README.md +10 -0
- package/dist/server/services/notes-external-assets.service.js +5 -5
- package/dist/server/services/notes-identity.service.js +4 -2
- package/dist/server/services/terminal/tokens.js +1 -1
- package/dist/server/utils/remote-asset-request.js +9 -2
- package/dist/web/assets/AccessPage-_OKn9U0P.js +1 -0
- package/dist/web/assets/AccessPage-l5Yiiw9T.css +1 -0
- package/dist/web/assets/AppPage-oQ9Rz0be.js +1 -0
- package/dist/web/assets/CreateButton-D1EtoicG.js +1 -0
- package/dist/web/assets/CreateReviewFabButton-B2Td8Wno.css +1 -0
- package/dist/web/assets/CreateReviewFabButton-BxvT3i9e.js +1 -0
- package/dist/web/assets/ErrorNotFound-DtnO85PU.js +1 -0
- package/dist/web/assets/IndexPage-D5PvyGrX.css +1 -0
- package/dist/web/assets/IndexPage-gdD7BHxA.js +1 -0
- package/dist/web/assets/MainLayout-47PTLKZf.js +6 -0
- package/dist/web/assets/MainLayout-ikSrFqBh.css +1 -0
- package/dist/web/assets/NoteVisualEditor-BQ6mVfj0.js +1054 -0
- package/dist/web/assets/{NoteVisualEditor-IH3s3d3W.css → NoteVisualEditor-BYikrY7Q.css} +1 -1
- package/dist/web/assets/NotesPage-DNR9iW_G.js +4 -0
- package/dist/web/assets/NotesPage-_8naQciW.css +1 -0
- package/dist/web/assets/PanelResize-CAQFVc8b.js +1 -0
- package/dist/web/assets/PanelResize-XjrbOj2S.css +1 -0
- package/dist/web/assets/{PdfPreview-DIgRK8Vh.js → PdfPreview-kL_nk9my.js} +2 -2
- package/dist/web/assets/PdfPreview-l_xzsLJ_.css +1 -0
- package/dist/web/assets/{QBtn-DoggJe1Q.js → QBtn-CB-yw_iP.js} +1 -1
- package/dist/web/assets/QExpansionItem-Dr5oXO0m.js +4 -0
- package/dist/web/assets/QFab-DPz8RiP0.js +1 -0
- package/dist/web/assets/{QForm-tsecXm87.js → QForm-CASiKhGm.js} +1 -1
- package/dist/web/assets/{QInput-DJgTh2Qy.js → QInput-k34nCPWg.js} +1 -1
- package/dist/web/assets/QSelect-CaKn9Tkg.js +1 -0
- package/dist/web/assets/QSpace-Di_bZQY6.js +1 -0
- package/dist/web/assets/QVirtualScroll-oGN_Tl5J.js +1 -0
- package/dist/web/assets/ReviewDetailPage-BKgIprY0.js +1 -0
- package/dist/web/assets/ReviewsPage-6PJ6wofN.js +1 -0
- package/dist/web/assets/{StatusSwitcher-BCv_9MtI.css → StatusSwitcher-D6i8_OfR.css} +1 -1
- package/dist/web/assets/StatusSwitcher-s9w6iKpR.js +1 -0
- package/dist/web/assets/{TerminalView-C1jFlfLH.css → TerminalView-617DZuPt.css} +1 -1
- package/dist/web/assets/TerminalView-BsO_SZut.js +19 -0
- package/dist/web/assets/{abnfDiagram-O67JEVCF-BMF1j0ZS.js → abnfDiagram-O67JEVCF-qUSrlp_c.js} +1 -1
- package/dist/web/assets/{access-store-Y2QO4AK-.js → access-store-Q8nkv4Nb.js} +1 -1
- package/dist/web/assets/agent-store-D2jgeBgi.js +113 -0
- package/dist/web/assets/architecture-7GRP2DOG-D6PShS0_.js +1 -0
- package/dist/web/assets/{architectureDiagram-NJMV4G6O-Bz4u-gZC.js → architectureDiagram-NJMV4G6O-D7RC6OS2.js} +1 -1
- package/dist/web/assets/{blockDiagram-BEXU5L5S-qQW37qVK.js → blockDiagram-BEXU5L5S-CmNtTpfK.js} +1 -1
- package/dist/web/assets/{c4Diagram-YGBWAQC7-BBwd76CZ.js → c4Diagram-YGBWAQC7-CKCcu1qx.js} +1 -1
- package/dist/web/assets/channel-D6lb5DbY.js +1 -0
- package/dist/web/assets/{chunk-3FUC2YCW-BnhnfUz2.js → chunk-3FUC2YCW-Drz6oeKx.js} +1 -1
- package/dist/web/assets/{chunk-5DYCD2WN-DdK6RzN0.js → chunk-5DYCD2WN-RItzEgV_.js} +1 -1
- package/dist/web/assets/{chunk-742MDFTN-e_JaY6d5.js → chunk-742MDFTN-D6hKdOv7.js} +1 -1
- package/dist/web/assets/{chunk-7INBJB4K-CQjEZWay.js → chunk-7INBJB4K-Dk7-Eior.js} +1 -1
- package/dist/web/assets/{chunk-7M6MHVWA-Dhx8Ycf8.js → chunk-7M6MHVWA-Cw8E0Nkn.js} +1 -1
- package/dist/web/assets/{chunk-7PRAP22T-DDWxOzU1.js → chunk-7PRAP22T-t-mTeNXF.js} +1 -1
- package/dist/web/assets/{chunk-GTNCS2PH-B-ZscolZ.js → chunk-GTNCS2PH-C7j2atV8.js} +1 -1
- package/dist/web/assets/{chunk-GWA4HPMP-CboS0KEV.js → chunk-GWA4HPMP-CH9T9LZO.js} +1 -1
- package/dist/web/assets/{chunk-MBY4JIJT-CiI_FkjG.js → chunk-MBY4JIJT-yXOO37xD.js} +1 -1
- package/dist/web/assets/{chunk-NETBCI7D-D9ennL0_.js → chunk-NETBCI7D-C-s2UtAR.js} +1 -1
- package/dist/web/assets/{chunk-O7XYJQB3-y25ZXdWk.js → chunk-O7XYJQB3-5Me_aV8o.js} +1 -1
- package/dist/web/assets/{chunk-UA2S7LBM-BRHq7OMm.js → chunk-UA2S7LBM-BQaibeff.js} +1 -1
- package/dist/web/assets/{chunk-WEXAMYUT-CQu7edQh.js → chunk-WEXAMYUT-UBcOE4Lf.js} +1 -1
- package/dist/web/assets/{chunk-Z7XXMR3K-B3dBNvo3.js → chunk-Z7XXMR3K-BsA8o3Pt.js} +1 -1
- package/dist/web/assets/{chunk-ZIGJFQKS-CbyA33sL.js → chunk-ZIGJFQKS--KwSI1U0.js} +1 -1
- package/dist/web/assets/{classDiagram-v2-NBCMYWYE-CgFqOQ8k.js → classDiagram-v2-NBCMYWYE-pMF8oCmq.js} +1 -1
- package/dist/web/assets/create-B9Tn5Xvi.js +1 -0
- package/dist/web/assets/{cynefin-OW5HDTMX-DJ9N0QYa.js → cynefin-OW5HDTMX-DFgtXolF.js} +1 -1
- package/dist/web/assets/{cynefinDiagram-VND7K2PF-DIWysrbV.js → cynefinDiagram-VND7K2PF-CPY0JRyq.js} +1 -1
- package/dist/web/assets/{dagre-6A5THRUB-Dt2w_dKa.js → dagre-6A5THRUB-KdjJKAB7.js} +1 -1
- package/dist/web/assets/devices-store-CrZ4MxyY.js +1 -0
- package/dist/web/assets/{diagram-22UHCM2B-DYd638CD.js → diagram-22UHCM2B-BDcOcvF_.js} +1 -1
- package/dist/web/assets/{diagram-3UASUU5V-B0a-K-41.js → diagram-3UASUU5V-6j2nlZL3.js} +1 -1
- package/dist/web/assets/{diagram-ATOU4E4O-oH2KoPKR.js → diagram-ATOU4E4O-BN8cdxED.js} +1 -1
- package/dist/web/assets/{diagram-CDSNMT55-B5DGBpGB.js → diagram-CDSNMT55-cWPiXHkr.js} +1 -1
- package/dist/web/assets/{diagram-MLGK6HIB-C-bsgsc0.js → diagram-MLGK6HIB-DcgkH_Vl.js} +1 -1
- package/dist/web/assets/{diagram-MPIPVDR6-BrlKNYLc.js → diagram-MPIPVDR6-D_e86L99.js} +1 -1
- package/dist/web/assets/diff-store-ByxMCKoa.js +93 -0
- package/dist/web/assets/{dist-Dz9Y2yQi.js → dist-BMFtkY2y.js} +1 -1
- package/dist/web/assets/{dist-DMe9nqcB.js → dist-BP40mvwJ.js} +1 -1
- package/dist/web/assets/{dist-CNHlSxJl.js → dist-BVVhgjWT.js} +1 -1
- package/dist/web/assets/{dist-Bso6nKGK.js → dist-Bdsq-Ze1.js} +1 -1
- package/dist/web/assets/{dist-CfIeEdHm.js → dist-BwpyANeW.js} +1 -1
- package/dist/web/assets/{dist-C-lnpukg.js → dist-Bz40Nd9I.js} +1 -1
- package/dist/web/assets/{dist-Bf4bAu7y.js → dist-C9enVshI.js} +1 -1
- package/dist/web/assets/{dist-B9umI5Mp.js → dist-CLCP7f3x.js} +1 -1
- package/dist/web/assets/{dist-B8irqXQ_.js → dist-CU43ytsh.js} +1 -1
- package/dist/web/assets/{dist-CxiJzNsC.js → dist-CjkUzU4s.js} +1 -1
- package/dist/web/assets/{dist-Bi2OWZ35.js → dist-MUQaJRtC.js} +1 -1
- package/dist/web/assets/{ebnfDiagram-ZINNZB2B-BEpTgssQ.js → ebnfDiagram-ZINNZB2B-D8xHOFOi.js} +1 -1
- package/dist/web/assets/{elk-276RUBZZ-lzj6IMyM.js → elk-276RUBZZ-JiDwNyLy.js} +1 -1
- package/dist/web/assets/{erDiagram-OPXOYQCR-CHOMf2bq.js → erDiagram-OPXOYQCR-D3J6u81a.js} +1 -1
- package/dist/web/assets/eventmodeling-NTZA5JFV-QCwZLvmm.js +1 -0
- package/dist/web/assets/flowDiagram-KWPJA3E3-CgF90hDi.js +1 -0
- package/dist/web/assets/{ganttDiagram-FUAMR5RP-TumKIsrB.js → ganttDiagram-FUAMR5RP-nvAVhbgI.js} +1 -1
- package/dist/web/assets/{gitGraph-4MIJSDKK-H-1qnbZy.js → gitGraph-4MIJSDKK-Bv_wkB2T.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-X574FWY7-DRIXoFhM.js → gitGraphDiagram-X574FWY7-DxxwadhH.js} +1 -1
- package/dist/web/assets/i18n-DDCqtTTW.js +1 -0
- package/dist/web/assets/index-BNHt6zmP.js +2 -0
- package/dist/web/assets/index-BwbM_RKi.css +1 -0
- package/dist/web/assets/{info-A6RAGUB7-W0vgdn7h.js → info-A6RAGUB7-Dw18yeIE.js} +1 -1
- package/dist/web/assets/{infoDiagram-VRGFBTTK-Dkb5juPW.js → infoDiagram-VRGFBTTK-C3BrgjYg.js} +1 -1
- package/dist/web/assets/{init-app-DlPQG9dK.js → init-app-BouXTk8p.js} +1 -1
- package/dist/web/assets/{is-CE4jkrGQ.js → is-D0waCELe.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-OU5B5YK6-BHH8nvlH.js → ishikawaDiagram-OU5B5YK6-DU2p9szX.js} +1 -1
- package/dist/web/assets/{journeyDiagram-ZHPQQLJL-DDyceAFf.js → journeyDiagram-ZHPQQLJL-Bs2zQnew.js} +1 -1
- package/dist/web/assets/{kanban-definition-PNTS6WVX-DKE8pxuA.js → kanban-definition-PNTS6WVX-pqXd5uNi.js} +1 -1
- package/dist/web/assets/{line-Cw6FtNmb.js → line-CN4Dxpei.js} +1 -1
- package/dist/web/assets/{markdown-CIA-pqWB.js → markdown-jR0fhe4d.js} +1 -1
- package/dist/web/assets/{mermaid-parser.core-CWHLi3M4.js → mermaid-parser.core-DZqDOGRM.js} +3 -3
- package/dist/web/assets/{mermaid.core-DbTjxMTH.js → mermaid.core-CUndCvkz.js} +4 -4
- package/dist/web/assets/{mindmap-definition-NLK3R4M7-B3MzGWwm.js → mindmap-definition-NLK3R4M7-DyK7YqB7.js} +1 -1
- package/dist/web/assets/{packet-AYTQ26CC-B5qqn_tj.js → packet-AYTQ26CC-DvlW_0BP.js} +1 -1
- package/dist/web/assets/{pegDiagram-GJSIUBJH-DtcoRpgi.js → pegDiagram-GJSIUBJH-k2e_-FWQ.js} +1 -1
- package/dist/web/assets/{pie-WAS4IAKB-BP-vRsnM.js → pie-WAS4IAKB-B99zaYjO.js} +1 -1
- package/dist/web/assets/{pieDiagram-5QR66LMP-CYy6L6IC.js → pieDiagram-5QR66LMP-BPbS05lK.js} +1 -1
- package/dist/web/assets/pinia-BETEFLDG.js +1 -0
- package/dist/web/assets/pinia-DO0AdKGg.js +1 -0
- package/dist/web/assets/{quadrantDiagram-O4NWA36T-Hi2aHxKi.js → quadrantDiagram-O4NWA36T-DqNNdsd2.js} +1 -1
- package/dist/web/assets/{radar-RG4KPBEZ-BumlhyD5.js → radar-RG4KPBEZ-BIAAr9LO.js} +1 -1
- package/dist/web/assets/{railroad-74A4TZTK-CROMzUe6.js → railroad-74A4TZTK-DYxr-1-f.js} +1 -1
- package/dist/web/assets/railroad-abnf-HS5TGJTU-GESjhc3t.js +1 -0
- package/dist/web/assets/railroad-ebnf-LZEXJU2U-Cybu0A7J.js +1 -0
- package/dist/web/assets/railroad-peg-WCYAUIDC-DCHxrtbI.js +1 -0
- package/dist/web/assets/{railroadDiagram-XR7U4H2S-De5-oSrU.js → railroadDiagram-XR7U4H2S-TNg-LqRR.js} +1 -1
- package/dist/web/assets/{requirementDiagram-PLB6GJNP-CBqteg6M.js → requirementDiagram-PLB6GJNP-hKAyJR6W.js} +1 -1
- package/dist/web/assets/runtime-core.esm-bundler-CAvPiMpd.js +1 -0
- package/dist/web/assets/{safe-storage-BACMX75F.js → safe-storage-B1Aq5CGi.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-IPEJSGJF-DfKF1Ck-.js → sankeyDiagram-IPEJSGJF-_MSL-tES.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-PO4LG4MO-D-sVWt3S.js → sequenceDiagram-PO4LG4MO-Byq-joBG.js} +1 -1
- package/dist/web/assets/{stateDiagram-v2-GCMORJYK-DruoQvcn.js → stateDiagram-v2-GCMORJYK-BR2jAgaa.js} +1 -1
- package/dist/web/assets/{swimlanes-2SLR337P-BxFZLbJA.js → swimlanes-2SLR337P-Nt8ojGKK.js} +1 -1
- package/dist/web/assets/swimlanesDiagram-TC7HE7FX-Ds1hVYqh.js +8 -0
- package/dist/web/assets/terminal-store-D0abibMa.js +1 -0
- package/dist/web/assets/theme-QEcOl0lf.js +1 -0
- package/dist/web/assets/{timeline-definition-EJHVYXUP-BixIZZx_.js → timeline-definition-EJHVYXUP-BtihLvxk.js} +1 -1
- package/dist/web/assets/{treeView-Q6P3EWNA-Nzi6VzwD.js → treeView-Q6P3EWNA-D5HzXeKd.js} +1 -1
- package/dist/web/assets/{treemap-WGGIJYW6-DmAPjB44.js → treemap-WGGIJYW6-Dovjuutg.js} +1 -1
- package/dist/web/assets/use-add-agent-context-BaPUIO93.js +1 -0
- package/dist/web/assets/use-app-theme-B1cdbnHn.js +1 -0
- package/dist/web/assets/use-countdown-CTag4T13.js +1 -0
- package/dist/web/assets/use-panel-width-CB-0S3zX.js +1 -0
- package/dist/web/assets/use-router-link-Dr9wnnyZ.js +1 -0
- package/dist/web/assets/use-row-height-DQHVMtUe.js +1 -0
- package/dist/web/assets/{use-virtual-scroll-BSXYZjZ5.js → use-virtual-scroll-DG0UKjVk.js} +1 -1
- package/dist/web/assets/{usecaseDiagram-POWQR4AR-BlNkvrZH.js → usecaseDiagram-POWQR4AR-DSwRE8zj.js} +1 -1
- package/dist/web/assets/{vennDiagram-UO4OBE2U-BFjSeLM4.js → vennDiagram-UO4OBE2U-C-B8yP1K.js} +1 -1
- package/dist/web/assets/{vue-i18n.runtime-BpRrzZrT.js → vue-i18n.runtime-CEtihHHL.js} +2 -2
- package/dist/web/assets/{wardley-WFR3VGLG-DTs7R1tQ.js → wardley-WFR3VGLG-wWgaZuh6.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-VNRHLVJA-BNMmP3TU.js → wardleyDiagram-VNRHLVJA-DbhenrHd.js} +1 -1
- package/dist/web/assets/weighted-lru-BSxRnMHR.js +1 -0
- package/dist/web/assets/{xychartDiagram-PMCCYNJV-Bi24Uotp.js → xychartDiagram-PMCCYNJV-CxFDmAEt.js} +1 -1
- package/dist/web/index.html +8 -8
- package/package.json +1 -1
- package/dist/web/assets/AccessPage-CAjilkAc.js +0 -1
- package/dist/web/assets/AccessPage-DntcW7f8.css +0 -1
- package/dist/web/assets/AppPage-DdmqiV2R.js +0 -1
- package/dist/web/assets/ClosePopup-p9VBZw3j.js +0 -1
- package/dist/web/assets/CreateButton-B7-yiqQx.js +0 -93
- package/dist/web/assets/CreateReviewFabButton-BJOAdPG1.js +0 -1
- package/dist/web/assets/CreateReviewFabButton-Cufd8hVJ.css +0 -1
- package/dist/web/assets/ErrorNotFound-Cq0wNQMu.js +0 -1
- package/dist/web/assets/IndexPage-B0itnrts.js +0 -1
- package/dist/web/assets/IndexPage-F8MMAAkn.css +0 -1
- package/dist/web/assets/MainLayout-CP6Bz7DA.js +0 -6
- package/dist/web/assets/MainLayout-vDaYlRjL.css +0 -1
- package/dist/web/assets/NoteVisualEditor-oWUBSuDR.js +0 -1054
- package/dist/web/assets/NotesPage-KaCEnfdz.css +0 -1
- package/dist/web/assets/NotesPage-Ou5XG64h.js +0 -4
- package/dist/web/assets/PanelResize-C51WwwLD.css +0 -1
- package/dist/web/assets/PanelResize-D1cRotAi.js +0 -1
- package/dist/web/assets/PdfPreview-Cb0xawi0.css +0 -1
- package/dist/web/assets/QExpansionItem-BouBPgdb.js +0 -4
- package/dist/web/assets/QFab-B5iz2kQR.js +0 -1
- package/dist/web/assets/QResizeObserver-gIKjGVQ7.js +0 -1
- package/dist/web/assets/QScrollArea-BrOkfO1I.js +0 -1
- package/dist/web/assets/QSelect-B5EBNlJ4.js +0 -1
- package/dist/web/assets/QSpace-CqqgY-zX.js +0 -1
- package/dist/web/assets/QVirtualScroll-BoXSHM25.js +0 -1
- package/dist/web/assets/ReviewDetailPage-C3NBR_xR.js +0 -1
- package/dist/web/assets/ReviewsPage-Bkinx_Bm.js +0 -1
- package/dist/web/assets/StatusSwitcher-8QUHj5Rq.js +0 -1
- package/dist/web/assets/TerminalView-elu1dIYU.js +0 -19
- package/dist/web/assets/agent-store-1i-UjEzZ.js +0 -113
- package/dist/web/assets/architecture-7GRP2DOG-DcZ4-ijA.js +0 -1
- package/dist/web/assets/channel-Cgf35HIt.js +0 -1
- package/dist/web/assets/create-BSmXD9Zr.js +0 -1
- package/dist/web/assets/devices-store-CtEl_8An.js +0 -1
- package/dist/web/assets/eventmodeling-NTZA5JFV-CyXHXiX_.js +0 -1
- package/dist/web/assets/flowDiagram-KWPJA3E3-C4espOge.js +0 -1
- package/dist/web/assets/i18n-xttkoi4H.js +0 -1
- package/dist/web/assets/index-BQi8n0xV.js +0 -2
- package/dist/web/assets/index-Dma-RXBR.css +0 -1
- package/dist/web/assets/pinia-CJGnEjj3.js +0 -1
- package/dist/web/assets/pinia-DCsnCHsH.js +0 -1
- package/dist/web/assets/railroad-abnf-HS5TGJTU-C5G3FxcO.js +0 -1
- package/dist/web/assets/railroad-ebnf-LZEXJU2U-BrTMLAtv.js +0 -1
- package/dist/web/assets/railroad-peg-WCYAUIDC-CXVDExl0.js +0 -1
- package/dist/web/assets/runtime-core.esm-bundler-BKFI1w28.js +0 -1
- package/dist/web/assets/swimlanesDiagram-TC7HE7FX-C3zKO6Gm.js +0 -8
- package/dist/web/assets/theme-B01ZDSW1.js +0 -1
- package/dist/web/assets/use-add-agent-context-BE_z8acF.js +0 -1
- package/dist/web/assets/use-app-theme-C1KrIJLx.js +0 -1
- package/dist/web/assets/use-countdown-2uTxlnFE.js +0 -1
- package/dist/web/assets/use-panel-width-DFOmK5Az.js +0 -1
- package/dist/web/assets/use-router-link-BGc0noIO.js +0 -1
- package/dist/web/assets/window-store-CIFm3O3S.js +0 -1
package/README.md
CHANGED
|
@@ -66,6 +66,16 @@ node dist/cli/index.js list --status in_progress # список ре
|
|
|
66
66
|
node dist/cli/index.js export last --format markdown -o review.md
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
+
### Браузерная совместимость
|
|
70
|
+
|
|
71
|
+
Production JS и CSS собираются с целью Chrome 103 и новее; для остальных
|
|
72
|
+
браузеров цели — Edge 111, Firefox 114, Safari/iOS 16.4. Мобильная компоновка,
|
|
73
|
+
Notes и терминал проверены в Chrome 103 на Android 13 в эмуляторе.
|
|
74
|
+
Цель сборки не добавляет полифилы всех браузерных API: отдельные возможности
|
|
75
|
+
(например, fullscreen) зависят от поддержки браузером. CSS Quasar и редактора
|
|
76
|
+
заметок (Milkdown) использует `:has()` и `dvh`; в Chrome до 105/108 эти правила
|
|
77
|
+
пропускаются, и меняется только оформление отдельных элементов.
|
|
78
|
+
|
|
69
79
|
### Доступ из локальной сети
|
|
70
80
|
|
|
71
81
|
`--host` принимает `localhost` (по умолчанию), `127.0.0.1`, `::1`, а для
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import PQueue from 'p-queue';
|
|
2
2
|
import { BadRequestError } from "../errors/http.js";
|
|
3
3
|
import { NoteAssetLimitError, NoteAssetQueueError } from "../errors/note-assets.js";
|
|
4
|
-
import { remoteAssetRequest, translateRemoteAssetError } from "../utils/remote-asset-request.js";
|
|
4
|
+
import { destroyRemoteAssetResponse, remoteAssetRequest, translateRemoteAssetError } from "../utils/remote-asset-request.js";
|
|
5
5
|
import { detectNoteAssetFormat } from "../utils/note-asset-format.js";
|
|
6
6
|
import { MAX_NOTE_ASSET_BYTES, NOTE_PDF_WARNING_BYTES } from "../../shared/notes/constants.js";
|
|
7
7
|
import { maxNoteAssetBytes } from "../../shared/notes/asset-formats.js";
|
|
@@ -26,7 +26,7 @@ async function* boundedChunks(source, limit, counter, signal, message) {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
function isSuccess(response) {
|
|
29
|
-
return (
|
|
29
|
+
return (response.statusCode !== undefined &&
|
|
30
30
|
response.statusCode >= 200 &&
|
|
31
31
|
response.statusCode < 300);
|
|
32
32
|
}
|
|
@@ -61,7 +61,7 @@ export class NotesExternalAssetsService {
|
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
63
|
finally {
|
|
64
|
-
response
|
|
64
|
+
destroyRemoteAssetResponse(response);
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
}
|
|
@@ -137,7 +137,7 @@ export class NotesExternalAssetsService {
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
finally {
|
|
140
|
-
response
|
|
140
|
+
destroyRemoteAssetResponse(response);
|
|
141
141
|
}
|
|
142
142
|
});
|
|
143
143
|
}
|
|
@@ -161,7 +161,7 @@ export class NotesExternalAssetsService {
|
|
|
161
161
|
return { body, mime: format.mime };
|
|
162
162
|
}
|
|
163
163
|
finally {
|
|
164
|
-
response
|
|
164
|
+
destroyRemoteAssetResponse(response);
|
|
165
165
|
}
|
|
166
166
|
});
|
|
167
167
|
}
|
|
@@ -444,7 +444,9 @@ export class NotesIdentityService {
|
|
|
444
444
|
!source.deletedAt &&
|
|
445
445
|
this.catalog
|
|
446
446
|
.links(source.id)
|
|
447
|
-
.some(link =>
|
|
447
|
+
.some(link => link.targetId !== null &&
|
|
448
|
+
link.targetId !== '' &&
|
|
449
|
+
this.record(link.targetId).id === note.id));
|
|
448
450
|
return { note, backlinks };
|
|
449
451
|
});
|
|
450
452
|
}
|
|
@@ -742,7 +744,7 @@ export class NotesIdentityService {
|
|
|
742
744
|
(() => {
|
|
743
745
|
const target = referenceTarget(ref, source.path, paths);
|
|
744
746
|
const clicked = referenceTarget({ ...ref, format: 'markdown', href }, source.path, paths);
|
|
745
|
-
return (
|
|
747
|
+
return (target !== null &&
|
|
746
748
|
target.path === clicked?.path &&
|
|
747
749
|
target.anchor === clicked.anchor);
|
|
748
750
|
})()));
|
|
@@ -20,7 +20,7 @@ export class TerminalTokens {
|
|
|
20
20
|
consume(token, origin) {
|
|
21
21
|
const info = this.tokens.get(token);
|
|
22
22
|
this.tokens.delete(token);
|
|
23
|
-
return
|
|
23
|
+
return (info !== undefined && info.expires > this.now() && info.origin === origin);
|
|
24
24
|
}
|
|
25
25
|
prune() {
|
|
26
26
|
for (const [token, info] of this.tokens) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { lookup } from 'node:dns/promises';
|
|
2
2
|
import { BlockList, isIP } from 'node:net';
|
|
3
|
+
import { finished } from 'node:stream';
|
|
3
4
|
import { Agent, request } from 'undici';
|
|
4
5
|
import { BadRequestError } from "../errors/http.js";
|
|
5
6
|
import { isCredentialFreeWebUrl } from "../../shared/utils/web-url.js";
|
|
@@ -65,6 +66,12 @@ export function isPublicAssetAddress(address) {
|
|
|
65
66
|
PUBLIC_IPV6.check(address, 'ipv6') &&
|
|
66
67
|
!BLOCKED_IPV6.check(address, 'ipv6'));
|
|
67
68
|
}
|
|
69
|
+
/** Unread Undici bodies emit an abort error when destroyed, even without an explicit error. */
|
|
70
|
+
export function destroyRemoteAssetResponse(response) {
|
|
71
|
+
// Keep the error listener for late transport errors after disposal.
|
|
72
|
+
finished(response, () => { });
|
|
73
|
+
response.destroy();
|
|
74
|
+
}
|
|
68
75
|
/**
|
|
69
76
|
* Resolves a host name and refuses non-public results. The socket connects to
|
|
70
77
|
* the checked address, so no second lookup can change the target.
|
|
@@ -153,11 +160,11 @@ export async function remoteAssetRequest(source, method, signal, options = {}) {
|
|
|
153
160
|
if (isIP(host) && !isPublicAssetAddress(host)) {
|
|
154
161
|
throw new BadRequestError('Attachment address is not public');
|
|
155
162
|
}
|
|
156
|
-
const { statusCode, headers, body } = await untilAborted(request(url, { method, signal, dispatcher, headers: REQUEST_HEADERS }), signal, late => late.body
|
|
163
|
+
const { statusCode, headers, body } = await untilAborted(request(url, { method, signal, dispatcher, headers: REQUEST_HEADERS }), signal, late => destroyRemoteAssetResponse(late.body));
|
|
157
164
|
if (!REDIRECT_STATUSES.includes(statusCode)) {
|
|
158
165
|
return Object.assign(body, { statusCode, headers });
|
|
159
166
|
}
|
|
160
|
-
body
|
|
167
|
+
destroyRemoteAssetResponse(body);
|
|
161
168
|
if (redirects >= MAX_REDIRECTS) {
|
|
162
169
|
throw new BadRequestError('Too many attachment redirects');
|
|
163
170
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{At as e,F as t,M as n,Y as r,c as i,d as a,f as o,g as s,h as c,l,lt as u,mt as d,q as f,u as p,v as m}from"./runtime-core.esm-bundler-CAvPiMpd.js";import{t as h}from"./QInput-k34nCPWg.js";import{t as g}from"./QBtn-CB-yw_iP.js";import{c as _,s as v}from"./index-BNHt6zmP.js";import{n as y}from"./vue-i18n.runtime-CEtihHHL.js";import{r as b}from"./pinia-DO0AdKGg.js";import{n as x,t as S}from"./single-flight-DLCbzLI3.js";import{t as C}from"./access-store-Q8nkv4Nb.js";import{n as w}from"./use-app-theme-B1cdbnHn.js";import{t as T}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as E}from"./QForm-CASiKhGm.js";import{n as D,t as ee}from"./use-countdown-CTag4T13.js";var O={class:`access-page fullscreen flex flex-center q-pa-md`},k={class:`text-h6`},A={key:0,class:`text-caption text-negative`},j={class:`access-page__code text-primary`,"aria-live":`polite`},M={class:`text-caption`},N={key:0,role:`alert`,class:`text-caption text-negative`},P={key:0,role:`alert`,class:`text-warning`},F={key:1,role:`alert`,class:`text-negative q-mt-sm`},I=2e3,L=T(m({__name:`AccessPage`,setup(m){let{t:T}=y(),{isDark:L}=w(),R=C(),{status:z,pairing:B,pairingDeadline:V,mode:H,error:U}=b(R),{registerInterval:W,removeInterval:G}=D(),K=ee(()=>V.value??void 0),q=u(``),J=u(!1),Y=u(``),X=u(!1),Z=u(!1),Q=i(()=>z.value===`pending`),$=S(async()=>{await R.check(),H.value===`app`&&window.location.reload()});async function te(){if(!J.value){J.value=!0,Y.value=``,X.value=!1;try{await R.requestAccess(q.value.trim()||void 0),H.value===`app`&&window.location.reload()}catch(e){Y.value=x(e)}finally{J.value=!1}}}return f(z,e=>{e===`pending`?Z.value=!0:e!==null&&(e===`none`&&Z.value&&(X.value=!0),Z.value=!1)},{immediate:!0}),f(Z,e=>{e?W(()=>void $(),I):G()},{immediate:!0}),n(()=>{Q.value&&$()}),(n,i)=>(t(),o(`div`,O,[s(_,{flat:``,bordered:``,class:`access-page__card`,dark:d(L)},{default:r(()=>[s(v,null,{default:r(()=>[l(`div`,k,e(d(T)(`access.title`)),1)]),_:1}),d(H)===`unavailable`?(t(),p(v,{key:0},{default:r(()=>[l(`p`,null,e(d(T)(`access.unavailable`)),1),d(U)?(t(),o(`p`,A,e(d(U)),1)):a(``,!0),s(g,{color:`primary`,label:d(T)(`access.retry`),onClick:d($)},null,8,[`label`,`onClick`])]),_:1})):Q.value&&d(B)?(t(),p(v,{key:1},{default:r(()=>[l(`p`,null,e(d(T)(`access.pending`)),1),l(`div`,j,e(d(B).code),1),l(`p`,M,e(d(T)(`access.expiresIn`,{time:d(K).label.value})),1),d(U)?(t(),o(`p`,N,e(d(T)(`access.unavailable`))+`: `+e(d(U)),1)):a(``,!0)]),_:1})):(t(),p(v,{key:2},{default:r(()=>[l(`p`,null,e(d(T)(`access.noAccess`)),1),X.value?(t(),o(`p`,P,e(d(T)(`access.ended`)),1)):a(``,!0),s(E,{class:`column q-gutter-sm`,onSubmit:te},{default:r(()=>[s(h,{modelValue:q.value,"onUpdate:modelValue":i[0]||=e=>q.value=e,dense:``,outlined:``,maxlength:d(64),label:d(T)(`access.nameLabel`),disable:J.value,dark:d(L)},null,8,[`modelValue`,`maxlength`,`label`,`disable`,`dark`]),s(g,{color:`primary`,type:`submit`,label:d(T)(`access.request`),loading:J.value},null,8,[`label`,`loading`])]),_:1}),Y.value?(t(),o(`p`,F,e(d(T)(`access.requestFailed`))+`: `+e(Y.value),1)):a(``,!0)]),_:1})),s(v,{class:`text-caption text-grey-7`},{default:r(()=>[c(e(d(T)(`access.httpWarning`)),1)]),_:1})]),_:1},8,[`dark`])]))}}),[[`__scopeId`,`data-v-2ced0245`]]);export{L as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.access-page[data-v-2ced0245]{overflow-y:auto}.access-page[data-v-2ced0245] .q-btn,.access-page[data-v-2ced0245] .q-field__control{min-height:44px}.access-page__card[data-v-2ced0245]{width:420px;max-width:100%}.access-page__code[data-v-2ced0245]{font-family:var(--font-mono);letter-spacing:.3em;text-align:center;margin:16px 0;font-size:2.5rem}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e,F as t,R as n,Y as r,c as i,u as a,v as o,x as s}from"./runtime-core.esm-bundler-CAvPiMpd.js";import{_ as c,m as l,o as u,p as d}from"./use-router-link-Dr9wnnyZ.js";import{t as f}from"./create-B9Tn5Xvi.js";import{l as p}from"./weighted-lru-BSxRnMHR.js";var m=f({name:`QPage`,props:{padding:Boolean,styleFn:Function},setup(t,{slots:n}){let r=d(),a=e(c,l);if(a===l)return console.error(`QPage needs to be a deep child of QLayout`),l;if(e(`_q_pc_`,l)===l)return console.error(`QPage needs to be child of QPageContainer`),l;let o=i(()=>{let e=(a.header.space?a.header.size:0)+(a.footer.space?a.footer.size:0);if(typeof t.styleFn==`function`){let n=a.isContainer.value?a.containerHeight.value:r.screen.height;return t.styleFn(e,n)}return{minHeight:a.isContainer.value?a.containerHeight.value-e+`px`:r.screen.height===0?e===0?`100vh`:`calc(100vh - ${e}px)`:r.screen.height-e+`px`}}),f=i(()=>`q-page${t.padding?` q-layout-padding`:``}`);return()=>s(`main`,{class:f.value,style:o.value},u(n.default))}}),h=o({__name:`AppPage`,setup(e){let i=p();function o(e,t){let n=i.metrics.scale===1&&i.metrics.height>0?Math.min(t,i.metrics.height):t;return{height:`${Math.max(0,n-e)}px`,minHeight:`0px`}}return(e,i)=>(t(),a(m,{"style-fn":o},{default:r(()=>[n(e.$slots,`default`)]),_:3}))}});export{h as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{F as e,T as t,c as n,mt as r,st as i,u as a,v as o}from"./runtime-core.esm-bundler-CAvPiMpd.js";import{t as s}from"./QBtn-CB-yw_iP.js";import{n as c}from"./vue-i18n.runtime-CEtihHHL.js";import{n as l}from"./pinia-DO0AdKGg.js";import{a as u,c as d,i as f,s as p}from"./single-flight-DLCbzLI3.js";function m(e){let{snapshotData:t,...n}=e;return n}var h=l(`active-review`,()=>{let e=i(null),t=i([]),r=i(!1),a=n(()=>{let e=new Map;for(let n of t.value){let t=e.get(n.filePath);t?t.push(n):e.set(n.filePath,[n])}return e});async function o(){r.value=!0;try{let n=(await u(`/api/reviews`)).filter(e=>e.status===`in_progress`).sort((e,t)=>t.createdAt.localeCompare(e.createdAt));e.value=n[0]??null,t.value=e.value?await u(`/api/reviews/${e.value.id}/comments`):[]}finally{r.value=!1}}function s(n){e.value=m(n),t.value=[]}async function c(t){e.value&&(await p(`/api/reviews/${e.value.id}`,{status:t}),await o())}async function l(n){if(!e.value)throw Error(`No active review`);let r=await d(`/api/reviews/${e.value.id}/comments`,n);return t.value=[...t.value,r],r}async function h(e,n){let r=await p(`/api/comments/${e}`,{content:n});t.value=t.value.map(t=>t.id===e?r:t)}async function g(e){await f(`/api/comments/${e}`),t.value=t.value.filter(t=>t.id!==e)}async function _(e){let n=await p(`/api/comments/${e}/resolve`);t.value=t.value.map(t=>t.id===e?n:t)}async function v(e){let n=await p(`/api/comments/${e}/unresolve`);t.value=t.value.map(t=>t.id===e?n:t)}return{activeReview:e,comments:t,loading:r,commentsByFile:a,refresh:o,setActiveReview:s,setStatus:c,createComment:l,editComment:h,deleteComment:g,resolveComment:_,unresolveComment:v}}),g=o({__name:`CancelButton`,setup(n){let{t:i}=c();return(n,o)=>(e(),a(s,t({padding:`2px 8px`},n.$attrs,{dense:``,flat:``,color:`warning`,label:r(i)(`reviews.comments.cancel`)}),null,16,[`label`]))}}),_=o({__name:`CreateButton`,setup(n){let{t:i}=c();return(n,o)=>(e(),a(s,t({padding:`2px 8px`,label:r(i)(`reviews.create.submit`)},n.$attrs,{unelevated:``,dense:``,color:`accent`}),null,16,[`label`]))}});export{m as i,g as n,h as r,_ as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.review-create-dialog[data-v-dd3d2128]{width:420px;max-width:90vw}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{At as e,C as t,F as n,T as r,W as i,X as a,Y as o,c as s,f as c,g as l,l as u,mt as d,r as f,st as p,u as m,v as h,w as g,x as _,y as v}from"./runtime-core.esm-bundler-CAvPiMpd.js";import{O as y,_ as b,m as x,o as S,p as C}from"./use-router-link-Dr9wnnyZ.js";import{t as w}from"./create-B9Tn5Xvi.js";import{t as T}from"./QInput-k34nCPWg.js";import{l as E}from"./QBtn-CB-yw_iP.js";import{c as D,l as O,o as k,s as A}from"./index-BNHt6zmP.js";import{n as j}from"./vue-i18n.runtime-CEtihHHL.js";import{n as M,r as N}from"./pinia-DO0AdKGg.js";import{a as P,c as F,n as I}from"./single-flight-DLCbzLI3.js";import{n as L,o as R}from"./weighted-lru-BSxRnMHR.js";import{t as z}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as B}from"./diff-store-ByxMCKoa.js";import{i as V,n as H,r as U,t as W}from"./CreateButton-D1EtoicG.js";import{t as G}from"./QFab-DPz8RiP0.js";var K=h({__name:`SearchInput`,props:{modelValue:{},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=i(e,`modelValue`);return(e,i)=>(n(),m(T,r({modelValue:t.value,"onUpdate:modelValue":i[0]||=e=>t.value=e},e.$attrs,{dense:``,outlined:``,clearable:``}),{prepend:o(()=>[l(E,{name:`search`,size:`xs`})]),_:1},16,[`modelValue`]))}}),q={position:{type:String,default:`bottom-right`,validator:e=>[`top-right`,`top-left`,`bottom-right`,`bottom-left`,`top`,`right`,`bottom`,`left`].includes(e)},offset:{type:Array,validator:e=>e.length===2},expand:Boolean};function J(){let{props:e}=v(),n=C(),r=t(b,x);if(r===x)return console.error(`QPageSticky needs to be child of QLayout`),x;let i=s(()=>{let t=e.position;return{top:t.includes(`top`),right:t.includes(`right`),bottom:t.includes(`bottom`),left:t.includes(`left`),vertical:t===`top`||t===`bottom`,horizontal:t===`left`||t===`right`}}),a=s(()=>r.header.offset),o=s(()=>r.right.offset),c=s(()=>r.footer.offset),l=s(()=>r.left.offset),u=s(()=>{let t=0,r=0,s=i.value,u=n.lang.rtl?-1:1;s.top&&a.value!==0?r=`${a.value}px`:s.bottom&&c.value!==0&&(r=`${-c.value}px`),s.left&&l.value!==0?t=`${u*l.value}px`:s.right&&o.value!==0&&(t=`${-u*o.value}px`);let d={transform:`translate(${t}, ${r})`};return e.offset&&(d.margin=`${e.offset[1]}px ${e.offset[0]}px`),s.vertical?(l.value!==0&&(d[n.lang.rtl?`right`:`left`]=`${l.value}px`),o.value!==0&&(d[n.lang.rtl?`left`:`right`]=`${o.value}px`)):s.horizontal&&(a.value!==0&&(d.top=`${a.value}px`),c.value!==0&&(d.bottom=`${c.value}px`)),d}),d=s(()=>`q-page-sticky row flex-center fixed-${e.position} q-page-sticky--${e.expand?`expand`:`shrink`}`);function f(t){let n=S(t.default);return _(`div`,{class:d.value,style:u.value},e.expand?n:[_(`div`,n)])}return{$layout:r,getStickyContent:f}}var Y=w({name:`QPageSticky`,props:q,setup(e,{slots:t}){let{getStickyContent:n}=J();return()=>n(t)}});function X(e){let t=new URLSearchParams;e.search&&t.set(`search`,e.search),e.createdFrom&&t.set(`createdFrom`,e.createdFrom),e.createdTo&&t.set(`createdTo`,e.createdTo),e.files&&e.files.length>0&&t.set(`files`,e.files.join(`,`));let n=t.toString();return n?`?${n}`:``}var Z=M(`reviews`,()=>{let e=p([]),t=p(!1),n=p(null);async function r(r={}){t.value=!0,n.value=null;try{e.value=await P(`/api/reviews${X(r)}`)}catch(t){e.value=[],n.value=I(t)}finally{t.value=!1}}async function i(t){let n=await F(`/api/reviews`,t);return e.value=[V(n),...e.value],n}return{reviews:e,loading:t,error:n,fetchReviews:r,createReview:i}}),Q={class:`text-h6`},$=z(h({__name:`ReviewCreateDialog`,props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:g([`created`,`hide`],[`update:modelValue`]),setup(t,{emit:r}){let s=i(t,`modelValue`),c=r,{t:f}=j(),h=Z(),g=p(``),_=p(!1),v=p(null);function b(){g.value=``,_.value=!1,v.value=null}async function x(){_.value=!0,v.value=null;try{let e=g.value.trim(),t=await h.createReview(e?{name:e}:{});s.value=!1,b(),c(`created`,t)}catch(e){v.value=I(e)}finally{_.value=!1}}function S(){b(),c(`hide`)}return(t,r)=>(n(),m(O,{modelValue:s.value,"onUpdate:modelValue":r[1]||=e=>s.value=e,onHide:S},{default:o(()=>[l(D,{class:`review-create-dialog`},{default:o(()=>[l(A,null,{default:o(()=>[u(`div`,Q,e(d(f)(`reviews.create.title`)),1)]),_:1}),l(A,{class:`q-gutter-y-md`},{default:o(()=>[l(T,{modelValue:g.value,"onUpdate:modelValue":r[0]||=e=>g.value=e,dense:``,outlined:``,label:d(f)(`reviews.create.nameLabel`),hint:d(f)(`reviews.create.nameHint`),error:!!v.value,"error-message":v.value??void 0,onKeyup:y(x,[`enter`])},null,8,[`modelValue`,`label`,`hint`,`error`,`error-message`])]),_:1}),l(k,{align:`right`},{default:o(()=>[a(l(H,null,null,512),[[L]]),l(W,{loading:_.value,onClick:x},null,8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]))}}),[[`__scopeId`,`data-v-dd3d2128`]]),ee=h({__name:`CreateReviewFabButton`,emits:[`created`],setup(e,{emit:t}){let r=t,i=U(),u=B(),{activeReview:d}=N(i),{changedPaths:m}=N(u),h=p(!1),g=p(!1),_=p([18,18]),v=p(!1),y=s(()=>m.value.length===0||d.value!==null);function b(e){v.value=e.isFirst!==!0&&e.isFinal!==!0,_.value=[_.value[0]-(e.delta?.x??0),_.value[1]-(e.delta?.y??0)]}function x(e){i.setActiveReview(e),r(`created`,e)}return(e,t)=>(n(),c(f,null,[l(Y,{position:`bottom-right`,offset:_.value},{default:o(()=>[a(l(G,{modelValue:g.value,"onUpdate:modelValue":t[0]||=e=>g.value=e,icon:`add`,color:`accent`,disable:y.value||v.value,onClick:t[1]||=e=>h.value=!0},null,8,[`modelValue`,`disable`]),[[R,b,void 0,{prevent:!0,mouse:!0}]])]),_:1},8,[`offset`]),l($,{modelValue:h.value,"onUpdate:modelValue":t[2]||=e=>h.value=e,onCreated:x,onHide:t[3]||=e=>g.value=!1},null,8,[`modelValue`])],64))}});export{Z as n,K as r,ee as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{F as e,f as t,g as n,l as r}from"./runtime-core.esm-bundler-CAvPiMpd.js";import{t as i}from"./QBtn-CB-yw_iP.js";import{t as a}from"./_plugin-vue_export-helper-BDNMzG2s.js";var o={},s={class:`fullscreen bg-blue text-white text-center q-pa-md flex flex-center`};function c(a,o){return e(),t(`div`,s,[r(`div`,null,[o[0]||=r(`div`,{style:{"font-size":`30vh`}},`404`,-1),o[1]||=r(`div`,{class:`text-h2`,style:{opacity:`0.4`}},`Oops. Nothing here...`,-1),n(i,{class:`q-mt-xl`,color:`white`,"text-color":`blue`,unelevated:``,to:`/`,label:`Go Home`,"no-caps":``})])])}var l=a(o,[[`render`,c]]);export{l as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.file-tree-node__icon-section[data-v-ef4a1d44]{min-width:0!important;padding-right:6px!important}.file-tree-node__label[data-v-ef4a1d44]{width:100%;min-width:0}.file-tree-node__chevron[data-v-ef4a1d44]{transition:transform .15s}.file-tree-node__chevron--expanded[data-v-ef4a1d44]{transform:rotate(90deg)}.file-tree-node--selected[data-v-ef4a1d44]{font-weight:500}.file-list-item__icon-section[data-v-3c335b20]{min-width:0!important;padding-right:6px!important}.file-list-item__path-row[data-v-3c335b20]{width:100%;min-width:0}.file-list-item__path-label[data-v-3c335b20]{flex:0 auto;min-width:0}.file-list-item__badge[data-v-3c335b20]{flex:none}.file-list-item--selected[data-v-3c335b20],[data-v-3c335b20] .file-list-item--selected{font-weight:500}.file-list-item__actions[data-v-3c335b20]{gap:2px;flex-direction:row!important;padding:0 0 0 6px!important}.file-list-item__stats[data-v-3c335b20]{padding-right:0!important}.diff-tree-folder-row__icons[data-v-e82c6cd4]{min-width:0!important;padding-right:6px!important}.diff-tree-folder-row__chevron[data-v-e82c6cd4]{transition:transform .15s}.diff-tree-folder-row__chevron--expanded[data-v-e82c6cd4]{transform:rotate(90deg)}.file-list-panel__scroll[data-v-bdc095b7] .q-scrollarea__content{width:100%}.diff-status-bar[data-v-6335a458]{cursor:pointer;gap:4px 16px}.diff-status-bar[data-v-6335a458]:focus-visible{outline:2px solid var(--q-primary);outline-offset:-2px}.diff-status-bar__files[data-v-6335a458]{min-width:0;max-width:100%}.diff-status-bar__lines[data-v-6335a458]{white-space:nowrap}.workspace--narrow .diff-status-bar__files[data-v-6335a458]{flex-basis:100%}.card-shell-placeholder[data-v-39faff44]{border:1px solid #80808033;border-radius:4px}.card-shell-placeholder__title[data-v-39faff44]{background:var(--diff-header-bg);text-overflow:ellipsis;white-space:nowrap;height:44px;padding:6px 12px;overflow:hidden}.active-review-bar[data-v-2b6e4bdd]{min-height:36px}.touch-comment-toolbar[data-v-55ab315b]{border-top:1px solid var(--q-separator-color,#8080804d);flex:none}.diff-scroll-container[data-v-30b76bdf]{min-width:0;min-height:0}.diff-virtual-slot[data-v-30b76bdf]{padding-bottom:8px}.diff-virtual-slot[data-v-30b76bdf] .diff-file-card{margin-bottom:0}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{At as e,E as t,F as n,G as r,I as i,J as a,L as o,M as s,N as c,Ot as l,W as u,X as d,Y as f,c as p,d as m,f as h,g,h as _,it as v,k as y,kt as b,l as x,lt as S,mt as C,nt as w,pt as T,q as E,r as D,st as O,u as k,v as A,w as j,z as M}from"./runtime-core.esm-bundler-CAvPiMpd.js";import{O as N,k as P}from"./use-router-link-Dr9wnnyZ.js";import{a as F,i as I,l as L,t as R}from"./QBtn-CB-yw_iP.js";import{M as z,a as B,j as V,n as ee}from"./index-BNHt6zmP.js";import{n as H}from"./vue-i18n.runtime-CEtihHHL.js";import{r as U}from"./pinia-DO0AdKGg.js";import{f as te,t as ne}from"./agent-store-D2jgeBgi.js";import{n as re}from"./use-server-events-BrBCbeHu.js";import{c as ie,n as ae,t as oe}from"./QSpace-Di_bZQY6.js";import{r as se,t as ce}from"./use-add-agent-context-BaPUIO93.js";import{r as le}from"./use-virtual-scroll-DG0UKjVk.js";import{d as W,f as G}from"./weighted-lru-BSxRnMHR.js";import{t as K}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{l as q,o as ue,s as J,t as Y,u as de}from"./diff-store-ByxMCKoa.js";import{c as X,l as fe,n as pe,o as Z}from"./use-row-height-DQHVMtUe.js";import{n as me,r as he,t as Q}from"./QVirtualScroll-oGN_Tl5J.js";import{r as $}from"./CreateButton-D1EtoicG.js";import{t as ge}from"./PanelResize-CAQFVc8b.js";import{r as _e,t as ve}from"./CreateReviewFabButton-BxvT3i9e.js";import{C as ye,S as be,T as xe,_ as Se,a as Ce,b as we,c as Te,d as Ee,f as De,g as Oe,h as ke,i as Ae,l as je,m as Me,n as Ne,o as Pe,p as Fe,r as Ie,s as Le,t as Re,u as ze,v as Be,w as Ve,x as He,y as Ue}from"./StatusSwitcher-s9w6iKpR.js";import{t as We}from"./AppPage-oQ9Rz0be.js";var Ge={class:`row items-center no-wrap q-gutter-x-xs`},Ke={class:`row items-center no-wrap q-gutter-x-xs`},qe=A({__name:`FileExplorerTabs`,props:j({stagedFilesLength:{},unstagedFilesLength:{}},{modelValue:{default:`unstaged`},modelModifiers:{}}),emits:[`update:modelValue`],setup(t){let r=u(t,`modelValue`),{t:i}=H();return(a,o)=>(n(),k(me,{modelValue:r.value,"onUpdate:modelValue":o[0]||=e=>r.value=e,dense:``,"no-caps":``,align:`left`,"narrow-indicator":``,class:`text-primary q-mb-sm`},{default:f(()=>[g(he,{name:`unstaged`},{default:f(()=>[x(`div`,Ge,[x(`span`,null,e(C(i)(`changes.unstaged`)),1),g(de,{color:`warning`,rounded:``},{default:f(()=>[_(e(t.unstagedFilesLength),1)]),_:1})])]),_:1}),g(he,{name:`staged`},{default:f(()=>[x(`div`,Ke,[x(`span`,null,e(C(i)(`changes.staged`)),1),g(de,{color:`positive`,rounded:``},{default:f(()=>[_(e(t.stagedFilesLength),1)]),_:1})])]),_:1})]),_:1},8,[`modelValue`]))}}),Je={class:`file-tree-node`},Ye={class:`row items-center no-wrap q-gutter-x-xs`},Xe=[`data-tooltip`],Ze=[`data-tooltip`],Qe={key:2},$e=K(A({__name:`FileTreeNode`,props:{node:{},selectedPath:{},expandedFolders:{},level:{}},emits:[`toggle-folder`,`file-select`],setup(t,{emit:r}){let i=r;return(r,a)=>{let s=M(`FileTreeNode`,!0);return n(),h(`div`,Je,[t.node.type===`directory`?d((n(),k(W,{key:0,clickable:``,dense:``,style:b({paddingLeft:`${C(X)(t.level,!1)}px`}),onClick:a[0]||=e=>i(`toggle-folder`,t.node.path)},{default:f(()=>[g(G,{avatar:``,class:`file-tree-node__icon-section`},{default:f(()=>[x(`div`,Ye,[g(L,{name:`chevron_right`,size:`xs`,class:l([`file-tree-node__chevron`,{"file-tree-node__chevron--expanded":t.expandedFolders.has(t.node.path)}])},null,8,[`class`]),g(L,{name:t.expandedFolders.has(t.node.path)?`folder_open`:`folder`,size:`xs`,color:`warning`},null,8,[`name`])])]),_:1}),g(G,{class:`text-mono`},{default:f(()=>[x(`div`,{class:`ellipsis file-tree-node__label`,"data-tooltip":t.node.path},e(t.node.name),9,Xe)]),_:1}),t.node.children?(n(),k(G,{key:0,side:``,class:`text-caption text-grey-6`},{default:f(()=>[_(e(t.node.children.length),1)]),_:1})):m(``,!0)]),_:1},8,[`style`])),[[I]]):d((n(),k(W,{key:1,clickable:``,dense:``,active:t.node.path===t.selectedPath,"active-class":`file-tree-node--selected`,style:b({paddingLeft:`${C(X)(t.level,!0)}px`}),onClick:a[1]||=e=>i(`file-select`,t.node.path)},{default:f(()=>[g(G,{avatar:``,class:`file-tree-node__icon-section`},{default:f(()=>[g(L,{name:`insert_drive_file`,size:`xs`,color:`grey-6`})]),_:1}),g(G,{class:`text-mono`},{default:f(()=>[x(`div`,{class:`ellipsis file-tree-node__label`,"data-tooltip":t.node.path},e(t.node.name),9,Ze)]),_:1}),t.node.isChanged?(n(),k(G,{key:0,side:``},{default:f(()=>[g(L,{name:`fiber_manual_record`,size:`8px`,color:`warning`})]),_:1})):m(``,!0)]),_:1},8,[`active`,`style`])),[[I]]),t.node.type===`directory`&&t.expandedFolders.has(t.node.path)&&t.node.children?(n(),h(`div`,Qe,[(n(!0),h(D,null,o(t.node.children,e=>(n(),k(s,{key:e.path,node:e,"selected-path":t.selectedPath,"expanded-folders":t.expandedFolders,level:t.level+1,onToggleFolder:a[2]||=e=>i(`toggle-folder`,e),onFileSelect:a[3]||=e=>i(`file-select`,e)},null,8,[`node`,`selected-path`,`expanded-folders`,`level`]))),128))])):m(``,!0)])}}}),[[`__scopeId`,`data-v-ef4a1d44`]]),et={class:`file-list-item__path-row row no-wrap items-center`},tt=[`data-tooltip`],nt={class:`text-caption`},rt={class:`text-positive`},it={class:`text-negative q-ml-xs`},at=K(A({__name:`FileListItem`,props:{file:{},selected:{type:Boolean},source:{},label:{},depth:{}},emits:[`click`],setup(t){let r={added:`A`,modified:`M`,deleted:`D`,renamed:`R`},i={added:`positive`,modified:`warning`,deleted:`negative`,renamed:`purple`},a=t,o=$(),s=p(()=>J(a.file)),c=p(()=>o.commentsByFile.get(s.value)?.length??0);return(a,o)=>d((n(),k(W,{clickable:``,dense:``,class:`file-list-item`,active:t.selected,"active-class":`file-list-item--selected`,"aria-label":t.label===void 0?void 0:s.value,style:b(t.depth===void 0?void 0:{paddingLeft:`${C(X)(t.depth,!0)}px`}),onClick:o[0]||=e=>a.$emit(`click`)},{default:f(()=>[g(G,{avatar:``,class:`file-list-item__icon-section`},{default:f(()=>[x(`span`,{class:l([`text-caption text-weight-bold text-mono`,`text-${i[t.file.status]}`])},e(r[t.file.status]),3)]),_:1}),g(G,{class:`text-mono`},{default:f(()=>[x(`div`,et,[x(`span`,{class:`ellipsis file-list-item__path-label`,"data-tooltip":s.value},e(t.label??s.value),9,tt),c.value>0?(n(),k(Ve,{key:0,compact:``,class:`file-list-item__badge`,count:c.value},null,8,[`count`])):m(``,!0)])]),_:1}),g(G,{side:``,class:`file-list-item__stats`},{default:f(()=>[x(`span`,nt,[x(`span`,rt,`+`+e(t.file.additions),1),x(`span`,it,`-`+e(t.file.deletions),1)])]),_:1}),g(G,{side:``,class:`file-list-item__actions`},{default:f(()=>[g(xe,{path:s.value,source:t.source},null,8,[`path`,`source`])]),_:1})]),_:1},8,[`active`,`aria-label`,`style`])),[[I]])}}),[[`__scopeId`,`data-v-3c335b20`]]),ot=A({__name:`BrowseModeToggle`,props:{modelValue:{type:Boolean,default:!1},modelModifiers:{}},emits:[`update:modelValue`],setup(t){let r=u(t,`modelValue`),{t:i}=H();return(t,a)=>(n(),k(W,null,{default:f(()=>[g(G,null,{default:f(()=>[g(le,null,{default:f(()=>[_(e(C(i)(`browse.toggle`)),1)]),_:1})]),_:1}),g(G,{side:``},{default:f(()=>[g(ee,{modelValue:r.value,"onUpdate:modelValue":a[0]||=e=>r.value=e,dense:``,size:`xs`},null,8,[`modelValue`])]),_:1})]),_:1}))}}),st={class:`row items-center no-wrap q-gutter-x-xs`},ct=[`data-tooltip`],lt=K(A({__name:`DiffTreeFolderRow`,props:{name:{},path:{},depth:{},expanded:{type:Boolean},locked:{type:Boolean}},emits:[`toggle`],setup(t){let{t:r}=H();return(i,a)=>d((n(),k(W,{clickable:!t.locked,dense:``,class:`file-list-item diff-tree-folder-row`,style:b({paddingLeft:`${C(X)(t.depth,!1)}px`}),"aria-expanded":t.locked?void 0:t.expanded,"aria-label":t.locked?void 0:C(r)(`changes.listMode.folder`,{path:t.path}),onClick:a[0]||=e=>i.$emit(`toggle`)},{default:f(()=>[g(G,{avatar:``,class:`diff-tree-folder-row__icons`},{default:f(()=>[x(`div`,st,[g(L,{name:`chevron_right`,size:`xs`,class:l([`diff-tree-folder-row__chevron`,{"diff-tree-folder-row__chevron--expanded":t.expanded,invisible:t.locked}])},null,8,[`class`]),g(L,{name:t.expanded?`folder_open`:`folder`,size:`xs`,color:`warning`},null,8,[`name`])])]),_:1}),g(G,{class:`text-mono`},{default:f(()=>[x(`span`,{class:`ellipsis`,"data-tooltip":t.path},e(t.name),9,ct)]),_:1})]),_:1},8,[`clickable`,`style`,`aria-expanded`,`aria-label`])),[[I,!t.locked]])}}),[[`__scopeId`,`data-v-e82c6cd4`]]),ut={class:`file-list-panel__header q-pa-sm`},dt={key:1,class:`text-subtitle2 q-mb-sm`},ft={key:0,class:`text-primary`},pt={class:`row no-wrap items-center q-gutter-x-xs`},mt={key:0,class:`row justify-center q-pa-lg`},ht={key:0,class:`text-caption text-grey-6 q-px-md q-py-sm`},gt={key:0,class:`text-caption text-grey-6 q-px-md q-py-sm`},_t=32,vt=K(A({__name:`FileListPanel`,setup(t){let{t:r}=H(),{stagedFiles:i,unstagedFiles:a,initialLoading:s,error:c}=U(Y()),l=Z(),{source:u,browseMode:d,filter:v,selectedPath:y,expandedFolders:b,treeInitialLoading:S,treeError:T,filteredDiffFiles:E,diffTreeRows:A,diffListMode:j,filtering:M,filteredTree:N,totalTreeFiles:P}=U(l),I=O(null),L=p(()=>I.value?.getScrollTarget()??null);return(t,p)=>(n(),h(D,null,[x(`div`,ut,[C(d)?(n(),h(`div`,dt,[_(e(C(r)(`browse.allFiles`))+` `,1),C(P)>0||!C(T)?(n(),h(`span`,ft,`(`+e(C(P))+`)`,1)):m(``,!0)])):(n(),k(qe,{key:0,modelValue:C(u),"onUpdate:modelValue":p[0]||=e=>w(u)?u.value=e:null,"staged-files-length":C(i).length,"unstaged-files-length":C(a).length},null,8,[`modelValue`,`staged-files-length`,`unstaged-files-length`])),x(`div`,pt,[g(_e,{modelValue:C(v),"onUpdate:modelValue":p[1]||=e=>w(v)?v.value=e:null,class:`col`,placeholder:C(d)?C(r)(`browse.searchPlaceholder`):C(r)(`changes.filterPlaceholder`)},null,8,[`modelValue`,`placeholder`]),C(d)?m(``,!0):(n(),k(R,{key:0,flat:``,dense:``,round:``,size:`sm`,icon:`account_tree`,color:C(j)===`tree`?`primary`:void 0,"aria-label":C(r)(`changes.listMode.tree`),"aria-pressed":C(j)===`tree`,onClick:p[2]||=e=>j.value=C(j)===`tree`?`list`:`tree`},{default:f(()=>[g(z,{delay:C(500)},{default:f(()=>[_(e(C(r)(`changes.listMode.tree`)),1)]),_:1},8,[`delay`])]),_:1},8,[`color`,`aria-label`,`aria-pressed`]))])]),g(B),g(q,{ref_key:`scrollArea`,ref:I,class:`col file-list-panel__scroll`,"content-style":`padding: 4px 0`,"content-active-style":`padding: 4px 0`},{default:f(()=>[(C(d)?C(S):C(s))?(n(),h(`div`,mt,[g(F,{color:`primary`,size:`2em`})])):C(d)?(n(),h(D,{key:1},[C(N).length===0&&(!C(T)||C(v)&&C(P)>0)?(n(),h(`p`,ht,e(C(v)?C(r)(`browse.noMatchingFiles`):C(r)(`browse.noFiles`)),1)):m(``,!0),(n(!0),h(D,null,o(C(N),e=>(n(),k($e,{key:e.path,node:e,"selected-path":C(y),"expanded-folders":C(b),level:0,onToggleFolder:C(l).toggleFolder,onFileSelect:C(l).selectFile},null,8,[`node`,`selected-path`,`expanded-folders`,`onToggleFolder`,`onFileSelect`]))),128))],64)):(n(),h(D,{key:2},[C(E).length===0&&(C(v)||!C(c))?(n(),h(`p`,gt,e(C(v)?C(r)(`browse.noMatchingFiles`):C(r)(`changes.emptyFileList`)),1)):m(``,!0),L.value&&C(j)===`tree`?(n(),k(Q,{key:`${C(u)}:tree`,"scroll-target":L.value,items:C(A),"virtual-scroll-item-size":_t},{default:f(({item:e})=>[e.kind===`folder`?(n(),k(lt,{key:`d:${e.path}`,name:e.name,path:e.path,depth:e.depth,expanded:e.expanded,locked:C(M),onToggle:t=>C(l).toggleDiffFolder(e.paths)},null,8,[`name`,`path`,`depth`,`expanded`,`locked`,`onToggle`])):(n(),k(at,{key:`f:${e.path}`,file:e.file,label:e.name,depth:e.depth,selected:C(y)===e.path,source:C(u),onClick:t=>C(l).selectFile(e.path)},null,8,[`file`,`label`,`depth`,`selected`,`source`,`onClick`]))]),_:1},8,[`scroll-target`,`items`])):L.value?(n(),k(Q,{key:`${C(u)}:list`,"scroll-target":L.value,items:C(E),"virtual-scroll-item-size":_t},{default:f(({item:e})=>[(n(),k(at,{key:C(J)(e),file:e,selected:C(y)===C(J)(e),source:C(u),onClick:t=>C(l).selectFile(C(J)(e))},null,8,[`file`,`selected`,`source`,`onClick`]))]),_:1},8,[`scroll-target`,`items`])):m(``,!0)],64))]),_:1},512),g(B),g(ot,{modelValue:C(d),"onUpdate:modelValue":p[3]||=e=>w(d)?d.value=e:null},null,8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-bdc095b7`]]),yt=[`wheel`,`pointerdown`,`keydown`,`touchstart`];function bt(e){let n=e.inputTarget??(typeof document>`u`?null:document),r=e.follow??we,i=null,a;function o(){(e.ready===void 0||T(e.ready))&&(i=T(e.request),a?.(),a=void 0)}for(let e of yt)n?.addEventListener(e,o,{capture:!0,passive:!0});let s=E([()=>T(e.request),()=>T(e.list),()=>T(e.root),()=>e.ready===void 0||T(e.ready)],([n,o,s,c],l,u)=>{if(!n||n===i||!o||!s||!c)return;let d=!1,f=!1,p,m=()=>{d=!0,p?.(),p=void 0};a=m,u(()=>{m(),T(e.request)===n&&(f||T(e.list)!==o||T(e.root)!==s)&&(i=n),a===m&&(a=void 0)}),t().then(()=>{d||n===i||e.ready!==void 0&&!T(e.ready)||(f=!0,o.scrollTo(n.index,`start`),p=r({root:s,target:()=>e.target?e.target(n):document.getElementById(`diff-file-${n.path}`)}))})},{immediate:!0,flush:`post`});v(()=>{s(),a?.();for(let e of yt)n?.removeEventListener(e,o,!0)})}var xt=[`aria-label`,`aria-expanded`],St={class:`diff-status-bar__files ellipsis`},Ct={class:`text-weight-medium`},wt={key:0,class:`text-grey-6 q-ml-sm`},Tt={key:1,class:`text-grey-6 q-ml-sm`},Et={key:2,class:`text-grey-6 q-ml-sm`},Dt={key:3,class:`text-grey-6 q-ml-sm`},Ot={class:`diff-status-bar__lines row items-center q-gutter-x-md no-wrap`},kt={class:`text-positive`},At={class:`text-negative`},jt=K(A({__name:`DiffStatusBar`,props:{files:{},anyExpanded:{type:Boolean}},emits:[`toggle-all`],setup(t,{emit:r}){let i=t,a=r,{t:o}=H(),s=p(()=>{let e=i.files.reduce((e,t)=>e+t.additions,0),t=i.files.reduce((e,t)=>e+t.deletions,0),n=i.files.filter(e=>e.status===`added`).length,r=i.files.filter(e=>e.status===`modified`).length,a=i.files.filter(e=>e.status===`deleted`).length,o=i.files.filter(e=>e.status===`renamed`).length;return{total:i.files.length,additions:e,deletions:t,added:n,modified:r,deleted:a,renamed:o}});return(r,i)=>(n(),h(`div`,{class:`diff-status-bar row items-center q-pa-sm text-body2 non-selectable`,role:`button`,tabindex:`0`,"aria-label":C(o)(t.anyExpanded?`changes.collapseAll`:`changes.expandAll`),"aria-expanded":t.anyExpanded,onDblclick:i[0]||=e=>a(`toggle-all`),onKeydown:[i[1]||=N(P(e=>!e.repeat&&a(`toggle-all`),[`prevent`]),[`enter`]),i[2]||=N(P(e=>!e.repeat&&a(`toggle-all`),[`prevent`]),[`space`])]},[x(`div`,St,[x(`span`,Ct,e(C(o)(`changes.filesChanged`,s.value.total))+`:`,1),s.value.added?(n(),h(`span`,wt,e(s.value.added)+` `+e(C(o)(`changes.added`)),1)):m(``,!0),s.value.modified?(n(),h(`span`,Tt,e(s.value.modified)+` `+e(C(o)(`changes.modified`)),1)):m(``,!0),s.value.deleted?(n(),h(`span`,Et,e(s.value.deleted)+` `+e(C(o)(`changes.deletedPlural`)),1)):m(``,!0),s.value.renamed?(n(),h(`span`,Dt,e(s.value.renamed)+` `+e(C(o)(`changes.renamed`)),1)):m(``,!0)]),x(`div`,Ot,[x(`span`,kt,`+`+e(s.value.additions)+` `+e(C(o)(`changes.additions`)),1),x(`span`,At,`-`+e(s.value.deletions)+` `+e(C(o)(`changes.deletions`)),1)]),g(z,{delay:C(500)},{default:f(()=>[_(e(C(o)(t.anyExpanded?`changes.collapseAllHint`:`changes.expandAllHint`)),1)]),_:1},8,[`delay`])],40,xt))}}),[[`__scopeId`,`data-v-6335a458`]]),Mt=6e3,Nt=40;function Pt(e,t,n){let r=S(n(t())?.clientWidth??0),i=p(()=>JSON.stringify([e.version,r.value])),a=Me({get minHeight(){return e.minHeight},get heightOwner(){return e.owner},heightKey:`card-reserve`,get heightVersion(){return i.value},get cacheHeight(){return e.cacheHeight},get keep(){return e.keep},cost:Nt,mountMargin:Mt},t),o;function s(){let e=n(t());e&&(r.value=e.clientWidth,o=ke(e,()=>{r.value=e.clientWidth})),a.start(e)}function c(){a.stop(),o?.(),o=void 0}return v(c),{mounted:a.mounted,height:a.height,start:s,stop:c}}var Ft={key:1,class:`card-shell-placeholder__title text-mono`,"aria-busy":`true`},It=K(A({__name:`ChangesFileCard`,props:{file:{}},setup(t){let i=t,a=Z(),o=Y(),c=$(),{expandedFiles:u}=U(a),{activeReview:d,commentsByFile:f}=U(c),m=p(()=>J(i.file)),g=p(()=>ue(a.source,m.value)),_=p(()=>o.hunksOf(a.source,i.file)),v=p(()=>o.hunksFresh(a.source,i.file)),x=p(()=>o.hunksError(a.source,i.file)),S=p(()=>u.value.has(m.value)),w=p(()=>f.value.get(m.value)),T=p(()=>!!d.value),E=pe(T),D={key:g.value},O=De(`wrap`,()=>je(m.value),D),A=De(`viewMode`,()=>`diff`,D),j=Ee(D),M=ze(D),N=p(()=>A.value===`full`?M.value:j.value),P=p(()=>46+(S.value?Ue(i.file,_.value,E.value)+Be(w.value??[],A.value)+(N.value?90:0):0)),F=p(()=>Se({expanded:S.value,mode:A.value,wrap:O.value,activeReview:T.value,rowHeight:E.value,pending:N.value,comments:w.value})),I=r(`el`),{mounted:L,height:R,start:z,stop:B}=Pt({get minHeight(){return P.value},get owner(){return _.value??i.file},get version(){return F.value},get cacheHeight(){return S.value&&v.value&&A.value===`diff`&&!O.value&&!w.value?.length&&!N.value},get keep(){return!!N.value}},()=>I.value,ye());s(z),y(B);function V(){o.ensureHunks(a.source,i.file)}function ee(){o.retryHunks(a.source,i.file)}return(r,i)=>(n(),h(`div`,{ref_key:`el`,ref:I,class:l({"card-shell-placeholder":!C(L)}),style:b(C(L)?void 0:{height:`${C(R)}px`})},[C(L)?(n(),k(Ne,{key:0,file:t.file,"state-key":g.value,detail:_.value,"hunks-loaded":v.value,"hunks-error":x.value,expanded:S.value,"agent-source":C(a).source,commentable:T.value,"comments-editable":T.value,comments:w.value,onLoadHunks:V,onRetryHunks:ee,onClearHunksError:i[0]||=e=>C(o).clearHunksError(C(a).source,t.file),onToggle:i[1]||=e=>C(a).handleCardToggle(m.value),onExpand:i[2]||=e=>C(a).expandFile(m.value)},null,8,[`file`,`state-key`,`detail`,`hunks-loaded`,`hunks-error`,`expanded`,`agent-source`,`commentable`,`comments-editable`,`comments`])):(n(),h(`div`,Ft,e(m.value),1))],6))}}),[[`__scopeId`,`data-v-39faff44`]]),Lt={key:0,class:`active-review-bar row items-center q-gutter-x-sm q-px-sm no-wrap`},Rt={class:`text-body2 ellipsis`},zt=K(A({__name:`ActiveReviewBar`,setup(t){let{t:r}=H(),i=ie(),a=$(),{activeReview:o}=U(a),s=ne(),c=ce();function l(e){a.setStatus(e).catch(e=>{i(r(`reviews.comments.error`),e)})}return(t,i)=>C(o)?(n(),h(`div`,Lt,[g(L,{name:`rate_review`,size:`18px`,color:`primary`}),x(`span`,Rt,e(C(o).name??C(r)(`reviews.list.unnamed`)),1),g(oe),C(s).enabled?(n(),k(R,{key:0,flat:``,dense:``,"no-caps":``,size:`sm`,icon:C(ae),label:C(r)(`agent.context.addReview`),onClick:i[0]||=e=>C(c)({kind:`review`,reviewId:C(o).id})},null,8,[`icon`,`label`])):m(``,!0),g(Re,{status:C(o).status,onChange:l},null,8,[`status`])])):m(``,!0)}}),[[`__scopeId`,`data-v-2b6e4bdd`]]),Bt=[`aria-label`],Vt={class:`text-caption ellipsis`},Ht={class:`row items-center q-gutter-sm`},Ut=K(A({__name:`TouchCommentToolbar`,props:{path:{},start:{},end:{},confirming:{type:Boolean}},emits:[`confirm`,`cancel`],setup(t,{emit:r}){let i=r,{t:a}=H();return(r,o)=>(n(),h(`div`,{class:`touch-comment-toolbar q-pa-sm`,role:`region`,"aria-label":C(a)(`workspace.selectLines`)},[x(`div`,Vt,e(t.path)+` · `+e(C(a)(`workspace.extendSelection`)),1),x(`div`,Ht,[g(R,{color:`primary`,"no-caps":``,label:C(a)(`workspace.commentRange`,{start:t.start,end:t.end}),loading:t.confirming,onClick:o[0]||=e=>i(`confirm`)},null,8,[`label`,`loading`]),g(R,{flat:``,"no-caps":``,label:C(a)(`workspace.cancelSelection`),onClick:o[1]||=e=>i(`cancel`)},null,8,[`label`])])],8,Bt))}}),[[`__scopeId`,`data-v-55ab315b`]]);function Wt(e){let t=e.follow??we,n,r;function i(){r?.(),r=void 0}function a(t=!1){if(n&&!t)return;let r=T(e.root);if(!r?.clientWidth||!r.clientHeight)return;let i=r.getBoundingClientRect().top,a=[...r.querySelectorAll(`[data-file-path]`)].find(e=>e.getBoundingClientRect().bottom>i);if(!a?.dataset.filePath)return;let o=a.querySelector(`.file-card-frame__header`)?.getBoundingClientRect().height??0,s=[...a.querySelectorAll(`[data-line-key]`)].find(e=>e.getBoundingClientRect().bottom>i+o),c=s??a;n={root:r,path:a.dataset.filePath,line:s?.getAttribute(`data-line-key`)??null,offset:He(r,c),request:T(e.request)}}return E(()=>T(e.active),e=>{e||a(!0),i()},{flush:`sync`}),E(()=>T(e.request),i,{flush:`sync`}),E(()=>T(e.root),()=>{n=void 0,i()},{flush:`sync`}),E(()=>T(e.ready),a=>{if(i(),!a||!T(e.active))return;let o=n;n=void 0,o&&o.root===T(e.root)&&o.request===T(e.request)&&(r=t({root:o.root,offset:o.offset,target:()=>{let e=[...o.root.querySelectorAll(`[data-file-path]`)].find(e=>e.dataset.filePath===o.path);return o.line?[...e?.querySelectorAll(`[data-line-key]`)??[]].find(e=>e.getAttribute(`data-line-key`)===o.line)??null:e??null}}))},{flush:`post`}),V(()=>typeof document>`u`?null:document,[`wheel`,`pointerdown`,`touchstart`,`keydown`],i,{capture:!0,passive:!0}),v(i),{capture:a}}var Gt={key:1,class:`q-pa-md text-grey-6`},Kt={class:`col column diff-scroll-container`},qt=[`data-file-path`],Jt=12,Yt=1.5,Xt=2,Zt=K(A({__name:`DiffPanel`,setup(r){let o=se(),{t:s}=H(),c=Z(),l=Fe(),u=Te({reveal:e=>{c.expandFile(e),c.scrollToFile(e)}});a(()=>{let e=u.selection.value;if(!e)return;let t=l.get(e.cardKey,`viewMode`)??`diff`;(e.cardKey!==ue(c.source,e.path)||t!==e.mode)&&u.cancel(e.cardKey)});let{diffFiles:d}=U(c),{error:_,loading:v}=U(Y()),y=$(),{activeReview:b}=U(y);Oe({create:e=>y.createComment(e),edit:(e,t)=>y.editComment(e,t),remove:e=>y.deleteComment(e),resolve:e=>y.resolveComment(e),unresolve:e=>y.unresolveComment(e)});let S=O(null),w=p(()=>S.value?.getScrollTarget()??null);i(be,()=>w.value);let T=O(null),A=O({width:0,height:0}),j=O(!1),M=Wt({active:o,ready:j,root:w,request:()=>c.scrollRequest});return E([o,A,T],async([e,n,r],i,a)=>{if(j.value=!1,!e||!r||n.width<=0||n.height<=0)return;let o=!0;M.capture(),a(()=>{o=!1}),await t(),o&&(r.refresh(-1),await t(),o&&(j.value=!0))},{flush:`post`}),bt({request:()=>c.scrollRequest,list:T,root:w,ready:j}),E(()=>c.layoutVersion,async()=>{await t(),T.value?.reset()}),E(d,async(e,n)=>{te(e,n,(e,t)=>J(e)===J(t))||(await t(),T.value?.reset())}),(t,r)=>(n(),h(D,null,[C(_)?(n(),k(Pe,{key:0,title:C(s)(`changes.loadError`),message:C(_),loading:C(v),onRetry:r[0]||=e=>C(c).refresh()},null,8,[`title`,`message`,`loading`])):m(``,!0),C(d).length===0&&!C(_)?(n(),h(`div`,Gt,e(C(s)(`changes.emptyDiffPanel`)),1)):C(d).length>0?(n(),h(D,{key:2},[g(zt),C(b)?(n(),k(B,{key:0})):m(``,!0),g(jt,{files:C(d),"any-expanded":C(c).hasExpandedFiles,onToggleAll:C(c).toggleAllFiles},null,8,[`files`,`any-expanded`,`onToggleAll`]),g(B),x(`div`,Kt,[g(fe,{onResize:r[1]||=e=>A.value=e}),g(q,{ref_key:`scrollArea`,ref:S,class:`col sticky-header-scroll`,"content-style":`padding: 8px; width: 100%; max-width: 100%`,"content-active-style":`padding: 8px; width: 100%; max-width: 100%`},{default:f(()=>[w.value?(n(),k(Q,{key:C(c).source,ref_key:`virtualScroll`,ref:T,"scroll-target":w.value,items:C(d),"virtual-scroll-item-size":C(46),"virtual-scroll-slice-size":Jt,"virtual-scroll-slice-ratio-before":Yt,"virtual-scroll-slice-ratio-after":Xt},{default:f(({item:e})=>[(n(),h(`div`,{key:C(J)(e),"data-file-path":C(J)(e),class:`diff-virtual-slot`},[g(It,{file:e},null,8,[`file`])],8,qt))]),_:1},8,[`scroll-target`,`items`,`virtual-scroll-item-size`])):m(``,!0)]),_:1},512)])],64)):m(``,!0),!C(b)&&C(d).length>0?(n(),k(ve,{key:3})):m(``,!0),C(u).selection.value?(n(),k(Ut,{key:4,path:C(u).selection.value.path,start:C(u).selection.value.anchor.startKey,end:C(u).selection.value.anchor.endKey,confirming:C(u).selection.value.phase===`confirming`,onConfirm:C(u).confirm,onCancel:r[2]||=e=>C(u).cancel()},null,8,[`path`,`start`,`end`,`confirming`,`onConfirm`])):m(``,!0)],64))}}),[[`__scopeId`,`data-v-30b76bdf`]]),Qt={key:1,class:`q-pa-md text-grey-6`},$t={key:0,class:`row justify-center q-pa-lg`},en={key:1,class:`q-pa-md text-grey-6`},tn={class:`text-caption`},nn={key:2,class:`q-pa-md text-grey-6`},rn=A({__name:`FileContentPanel`,setup(t){let{t:r}=H(),i=Z(),{selectedPath:a,browseFileLines:o,browseFileIsBinary:s,browseFileLoading:c,browseFileError:l,treeError:u,refreshing:d}=U(i),{error:v}=U(Y()),y=p(()=>v.value?{title:r(`changes.loadError`),message:v.value}:u.value?{title:r(`browse.treeLoadError`),message:u.value}:null),b=O(!1);return E(a,e=>{b.value=e?je(e):!1},{immediate:!0}),(t,u)=>(n(),h(D,null,[y.value?(n(),k(Pe,{key:0,title:y.value.title,message:y.value.message,loading:C(d),onRetry:u[0]||=e=>C(i).refresh()},null,8,[`title`,`message`,`loading`])):m(``,!0),C(a)?(n(),k(Ie,{key:2,class:`col`},{header:f(()=>[g(Ce,{path:C(a)},{default:f(()=>[g(Ae,{modelValue:b.value,"onUpdate:modelValue":u[1]||=e=>b.value=e,path:C(a)},null,8,[`modelValue`,`path`])]),_:1},8,[`path`])]),default:f(()=>[C(c)&&C(o).length===0&&!C(l)?(n(),h(`div`,$t,[g(F,{color:`primary`,size:`2em`})])):C(l)?(n(),h(`div`,en,[_(e(C(r)(`changes.fullFileLoadError`))+` `,1),x(`div`,tn,e(C(l)),1),g(R,{flat:``,dense:``,color:`primary`,class:`q-mt-sm`,label:C(r)(`changes.retry`),loading:C(d),onClick:u[2]||=e=>C(i).refresh()},null,8,[`label`,`loading`])])):C(s)?(n(),h(`div`,nn,e(C(r)(`changes.binaryFile`)),1)):(n(),k(q,{key:3,class:`col`,"content-style":`padding: 8px`,"content-active-style":`padding: 8px`},{default:f(()=>[g(Le,{path:C(a),lines:C(o),wrap:b.value},null,8,[`path`,`lines`,`wrap`])]),_:1}))]),_:1})):(n(),h(`div`,Qt,e(C(r)(`browse.selectFile`)),1))],64))}}),an=A({__name:`FileExplorer`,setup(e){let t=Z(),r=$(),{browseMode:i}=U(t);s(()=>{t.refresh(),r.refresh()});let a=re([`files:changed`],()=>void t.refreshFromServerEvent());c(()=>a.close());let o=re([`review:created`,`review:updated`,`review:deleted`,`comment:created`,`comment:updated`,`comment:deleted`],()=>void r.refresh());return c(()=>o.close()),(e,t)=>(n(),k(ge,null,{panel:f(()=>[g(vt)]),content:f(()=>[C(i)?(n(),k(rn,{key:0})):(n(),k(Zt,{key:1}))]),_:1}))}}),on=A({__name:`IndexPage`,setup(e){return(e,t)=>(n(),k(We,null,{default:f(()=>[g(an)]),_:1}))}});export{on as default};
|