@hienlh/ppm 0.20.7 → 0.20.9
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/CHANGELOG.md +14 -0
- package/assets/skills/ppm/SKILL.md +1 -1
- package/assets/skills/ppm/references/cli-reference.md +4 -4
- package/assets/skills/ppm/references/http-api.md +1 -1
- package/dist/web/assets/accounts-settings-section-ByM99C7p.js +1 -0
- package/dist/web/assets/{ai-resource-editor-C6s6A57b.js → ai-resource-editor-BsB9wa0z.js} +1 -1
- package/dist/web/assets/{ai-settings-section-BQTsEJzp.js → ai-settings-section-BT-QVUBa.js} +1 -1
- package/dist/web/assets/ai-settings-section-BUPOINaw.js +1 -0
- package/dist/web/assets/{angular-html-K0aKyuHe.js → angular-html-CTx8qAkv.js} +1 -1
- package/dist/web/assets/{angular-ts-CLY0DVNM.js → angular-ts-BhBGUAnu.js} +1 -1
- package/dist/web/assets/api-client-C6VTn7cG.js +1 -0
- package/dist/web/assets/{api-client-CEYCBt_0.js → api-client-DKvkxuDr.js} +1 -1
- package/dist/web/assets/{api-settings-ClKLkiR9.js → api-settings-CqiVKFUX.js} +1 -1
- package/dist/web/assets/{api-themes-B_Za9tdP.js → api-themes-DtLXqXpC.js} +1 -1
- package/dist/web/assets/{apl-Cl1oeOZc.js → apl-Dec3pSzF.js} +1 -1
- package/dist/web/assets/{appearance-settings-section-B7CwHA7Y.js → appearance-settings-section-DJEoECoJ.js} +1 -1
- package/dist/web/assets/architecture-PBZL5I3N-D55g5j-p.js +1 -0
- package/dist/web/assets/arrow-left-DpXaakMC.js +1 -0
- package/dist/web/assets/arrow-right-BqNSIscF.js +1 -0
- package/dist/web/assets/{astro-S8gLldib.js → astro-Cb_3-S86.js} +1 -1
- package/dist/web/assets/{audio-preview-C2PCzvr5.js → audio-preview-CF4tTFv_.js} +1 -1
- package/dist/web/assets/{blade-DZ96Anzi.js → blade-1QMj5JxI.js} +1 -1
- package/dist/web/assets/{bot-D6sx11y0.js → bot-D3-n2i31.js} +1 -1
- package/dist/web/assets/{brain-KDa9jFRq.js → brain-CuAQMSBE.js} +1 -1
- package/dist/web/assets/{bsl-BrlZLefQ.js → bsl-D0bT3Wjp.js} +1 -1
- package/dist/web/assets/{button-DX32ffge.js → button-DhnNoqpV.js} +1 -1
- package/dist/web/assets/{cairo-B0UdH8CG.js → cairo-DTuGb2w7.js} +1 -1
- package/dist/web/assets/{calendar-clock-C1asT-gk.js → calendar-clock-CDP7AVjA.js} +1 -1
- package/dist/web/assets/{chat-tab-BJokwok-.js → chat-tab-fD2vWwj2.js} +8 -8
- package/dist/web/assets/check-BQKbhtoA.js +1 -0
- package/dist/web/assets/{chevron-down-Dp0rpHb8.js → chevron-down-B9puixxZ.js} +1 -1
- package/dist/web/assets/chevron-right-DK_HbYZC.js +1 -0
- package/dist/web/assets/{chevron-up-8PbsNiJp.js → chevron-up-BPAINgoK.js} +1 -1
- package/dist/web/assets/circle-BpGTLAas.js +1 -0
- package/dist/web/assets/circle-question-mark-DUaySkoB.js +1 -0
- package/dist/web/assets/clock-Dqq0H9yH.js +1 -0
- package/dist/web/assets/{cobol-DCeQgIC6.js → cobol-DSx_Nb7T.js} +1 -1
- package/dist/web/assets/code-CX6640Tv.js +1 -0
- package/dist/web/assets/code-editor-CyFLXCsD.js +7 -0
- package/dist/web/assets/codex-daily-guard-Cg19EWxk.js +1 -0
- package/dist/web/assets/{coffee-D3V0ISG7.js → coffee-DBcQ7DKB.js} +1 -1
- package/dist/web/assets/{conflict-editor-hGsVMmtG.js → conflict-editor-DSjo2FRy.js} +1 -1
- package/dist/web/assets/{context-menu-CJL8L98s.js → context-menu-DchAkdnL.js} +1 -1
- package/dist/web/assets/{copy-BewHj66E.js → copy-Bt_1tjoJ.js} +1 -1
- package/dist/web/assets/{cpp-UPgqRL5h.js → cpp-Bj1azGr-.js} +1 -1
- package/dist/web/assets/{createLucideIcon-D8pyde1A.js → createLucideIcon-D6fVXe3s.js} +1 -1
- package/dist/web/assets/{crystal-B7BOJUR4.js → crystal-CCgkDI0i.js} +1 -1
- package/dist/web/assets/{csv-preview-DiSiq6UJ.js → csv-preview-BIE3Wpww.js} +1 -1
- package/dist/web/assets/data-grid-overlay-editor-C2NAQ-88.js +1 -0
- package/dist/web/assets/data-grid-types-tNj9zuRV.js +1 -0
- package/dist/web/assets/{database-Y3ESDK4-.js → database-9_p74TtY.js} +1 -1
- package/dist/web/assets/database-viewer-CMvIORcM.js +1 -0
- package/dist/web/assets/{diff-viewer-Usuuf35X.js → diff-viewer-BQQ6fUr6.js} +1 -1
- package/dist/web/assets/dist-BDpuZ376.js +11 -0
- package/dist/web/assets/{dist-BuUB-Gou.js → dist-BiqPfYiP.js} +1 -1
- package/dist/web/assets/{docx-preview-Dg8lD3f3.js → docx-preview-DcCh59Oe.js} +1 -1
- package/dist/web/assets/{download-DG3_9xXy.js → download-CEPFebri.js} +1 -1
- package/dist/web/assets/{edge-Dw-s4XKj.js → edge-ClBfeO7z.js} +1 -1
- package/dist/web/assets/{edit-diff-preview-F7YlT9fY.js → edit-diff-preview-CRjufuw_.js} +1 -1
- package/dist/web/assets/{elixir-Dntyzyed.js → elixir-ir__-3kt.js} +1 -1
- package/dist/web/assets/{elm-C83eppJ0.js → elm-CUv-xMuU.js} +1 -1
- package/dist/web/assets/{erb-Bjv2Lozz.js → erb-DcRwHyUq.js} +1 -1
- package/dist/web/assets/{erlang-5PAcE8_t.js → erlang-DW-GAdmv.js} +1 -1
- package/dist/web/assets/esm-DBm5LSCw.js +2 -0
- package/dist/web/assets/{explorer-body-BL9hg1yr.js → explorer-body-DRo2JHP9.js} +2 -2
- package/dist/web/assets/explorer-window-content-7mnRpSqn.js +1 -0
- package/dist/web/assets/{extension-manager-section-CE0aB9ed.js → extension-manager-section-CEfr7-Kv.js} +1 -1
- package/dist/web/assets/{extension-webview-CGhuot2v.js → extension-webview-D7HqqdTv.js} +1 -1
- package/dist/web/assets/{eye-gWwaF4Lg.js → eye-BQaWPI4P.js} +1 -1
- package/dist/web/assets/{eye-off-GjXVuAOn.js → eye-off-BlB3QV90.js} +1 -1
- package/dist/web/assets/{file-exclamation-point-JzhTU2TX.js → file-exclamation-point-BDmSZbxs.js} +1 -1
- package/dist/web/assets/{files-settings-section-D_sgDKwF.js → files-settings-section-h6a-WpSO.js} +1 -1
- package/dist/web/assets/{flask-conical-tp8gyZGh.js → flask-conical-Cj-J6cxs.js} +1 -1
- package/dist/web/assets/{folder-symlink-fQRoG_rV.js → folder-symlink-BSYalAHC.js} +1 -1
- package/dist/web/assets/{fortran-fixed-form-Di9Yw_ao.js → fortran-fixed-form-DrQbMSkt.js} +1 -1
- package/dist/web/assets/{fsharp-IRAdAkHt.js → fsharp-DvDj84Ys.js} +1 -1
- package/dist/web/assets/{gdresource-DVdwnvP-.js → gdresource-CPgY7R2s.js} +1 -1
- package/dist/web/assets/{general-settings-section-D7DMjoNj.js → general-settings-section-Bt3KNcyM.js} +1 -1
- package/dist/web/assets/{git-commit-CD6jLHvg.js → git-commit-NJ9iGbTd.js} +1 -1
- package/dist/web/assets/{git-log-panel-prL5-n-F.js → git-log-panel-H-Bg9p7m.js} +1 -1
- package/dist/web/assets/{git-rebase-DvxNkg7t.js → git-rebase-DBSy9OKE.js} +1 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-At-P8hlA.js +1 -0
- package/dist/web/assets/glide-data-grid-D3Xc_WGh.js +141 -0
- package/dist/web/assets/{glimmer-js-aM9jbY2M.js → glimmer-js-EGWSSdwJ.js} +1 -1
- package/dist/web/assets/{glimmer-ts-Bd4jKeuF.js → glimmer-ts-BpfXRYRV.js} +1 -1
- package/dist/web/assets/{glsl-CUUtWNTx.js → glsl-BtWQ4j8X.js} +1 -1
- package/dist/web/assets/{graphql-DkY6xCcc.js → graphql-DHR5AO2c.js} +1 -1
- package/dist/web/assets/{group-chat-tab-C4oY3IKi.js → group-chat-tab-BkLt7J_s.js} +1 -1
- package/dist/web/assets/{hack-DnaR9DJk.js → hack-A3iOItmC.js} +1 -1
- package/dist/web/assets/{haml-BDubxAIK.js → haml-DXA8NXfZ.js} +1 -1
- package/dist/web/assets/{hand-x0ejq3fS.js → hand-BkDyLfcc.js} +1 -1
- package/dist/web/assets/{handlebars-OxsbI1gt.js → handlebars-BdIFK4pP.js} +1 -1
- package/dist/web/assets/{html-Cjiwd8dp.js → html-BTA4eRkb.js} +1 -1
- package/dist/web/assets/{html-derivative-CfzXt9Cs.js → html-derivative-Cd_vDV4L.js} +1 -1
- package/dist/web/assets/{http-DRF6Wp6Y.js → http-CMY5fp9k.js} +1 -1
- package/dist/web/assets/{hurl-6SunVID_.js → hurl-DJZLRi6K.js} +1 -1
- package/dist/web/assets/{hxml-CR72N708.js → hxml-C2EdtM37.js} +1 -1
- package/dist/web/assets/{image-preview-C7dCEQCx.js → image-preview-D_6-FhZP.js} +1 -1
- package/dist/web/assets/{index-A3ripVe5.js → index-BV_sFdHY.js} +8 -8
- package/dist/web/assets/index-Di9nVG3y.css +2 -0
- package/dist/web/assets/info-3K5VOQVL-btSsuixb.js +1 -0
- package/dist/web/assets/{jinja-CYjAWnk3.js → jinja-DWU92jHm.js} +1 -1
- package/dist/web/assets/{jira-watcher-section-DvKEiqtb.js → jira-watcher-section-BhQzWJ3r.js} +1 -1
- package/dist/web/assets/{jison-UERnq4ds.js → jison-Bt3f5-S6.js} +1 -1
- package/dist/web/assets/{julia-WAZzVFSs.js → julia-BS-e0jQg.js} +1 -1
- package/dist/web/assets/{just-B1YYfl1D.js → just-OU89Ot3I.js} +1 -1
- package/dist/web/assets/{key-round-CQpDrDxg.js → key-round-Cv4z7_KG.js} +1 -1
- package/dist/web/assets/keybindings-store-alreySno.js +1 -0
- package/dist/web/assets/{keyboard-DiOYrs6C.js → keyboard-HG0BUtuN.js} +1 -1
- package/dist/web/assets/{keyboard-shortcuts-section-CPsFUned.js → keyboard-shortcuts-section-B_D0FamP.js} +1 -1
- package/dist/web/assets/{latex-B6zwM9GI.js → latex-Bt5mTs31.js} +1 -1
- package/dist/web/assets/{lib-Bss7BrXJ.js → lib-DUBAP_Gd.js} +1 -1
- package/dist/web/assets/{liquid-n4OK-yxz.js → liquid-C03IGCJ6.js} +1 -1
- package/dist/web/assets/loader-circle-H81ywCuQ.js +1 -0
- package/dist/web/assets/{lua-DJYn-zFg.js → lua-Dl4zPu0P.js} +1 -1
- package/dist/web/assets/markdown-renderer-CG_nGh7k.js +3 -0
- package/dist/web/assets/markdown-renderer-CgbqvSuc.js +1 -0
- package/dist/web/assets/{marko-C27Qtq0P.js → marko-BEnkIoHY.js} +1 -1
- package/dist/web/assets/{mdc-CypKG7qW.js → mdc-DGglct19.js} +1 -1
- package/dist/web/assets/{media-url-TGgkntUW.js → media-url-LiPp2UsV.js} +1 -1
- package/dist/web/assets/{mobile-bottom-sheet-CmySDB6I.js → mobile-bottom-sheet-BizNfPAu.js} +1 -1
- package/dist/web/assets/mobile-explorer-sheet-DAZTzi1k.js +1 -0
- package/dist/web/assets/{monitor-C835ucWH.js → monitor-CKcYUoAV.js} +1 -1
- package/dist/web/assets/{nextflow-DuRHA0PY.js → nextflow-DKFYidyC.js} +1 -1
- package/dist/web/assets/{nginx-vxFTb1fh.js → nginx-Bhq0tzlh.js} +1 -1
- package/dist/web/assets/{nim-ChQDNOKe.js → nim-CSuBzart.js} +1 -1
- package/dist/web/assets/notification-store-HCg5Shw9.js +1 -0
- package/dist/web/assets/{notifications-settings-section-CaQVTa3a.js → notifications-settings-section-BAs_p_ai.js} +1 -1
- package/dist/web/assets/{number-overlay-editor-HmOZ3ETg.js → number-overlay-editor-CYHlP43e.js} +1 -1
- package/dist/web/assets/{overview-panel-CaU5AtCB.js → overview-panel-xn2BYvn6.js} +1 -1
- package/dist/web/assets/packet-RMMSAZCW-B20_sIFd.js +1 -0
- package/dist/web/assets/{panel-store-BmdcSBNb.js → panel-store-XhAruR6D.js} +1 -1
- package/dist/web/assets/{pdf-preview-QeXX_VpL.js → pdf-preview-BJjqU3AX.js} +1 -1
- package/dist/web/assets/{perl-BKH-mNmF.js → perl-uDVR7Ceh.js} +1 -1
- package/dist/web/assets/{php-W3oWF62o.js → php-Bby8J3zk.js} +1 -1
- package/dist/web/assets/pie-UPGHQEXC-nzfJdXCC.js +1 -0
- package/dist/web/assets/portal-container-context-Bqn516X4.js +1 -0
- package/dist/web/assets/postgres-viewer-CJbHLcGE.js +3 -0
- package/dist/web/assets/power-D_wlLkC0.js +1 -0
- package/dist/web/assets/{ppmbot-settings-section-B_00Zb-K.js → ppmbot-settings-section-5U0a58oj.js} +1 -1
- package/dist/web/assets/{process-table-DweR4FR3.js → process-table-CqGL0Bcj.js} +1 -1
- package/dist/web/assets/{project-store-wWZ6bjwq.js → project-store-Dy3A3LJT.js} +1 -1
- package/dist/web/assets/{proxy-settings-section-sGhA3t_m.js → proxy-settings-section-B1LDpGSc.js} +1 -1
- package/dist/web/assets/{pug-DscH2YvH.js → pug-EapfojTW.js} +1 -1
- package/dist/web/assets/{qml-CbBrfy74.js → qml-DiR6J5_C.js} +1 -1
- package/dist/web/assets/{query-audit-section-BtqND9WE.js → query-audit-section-DfCvY94_.js} +1 -1
- package/dist/web/assets/radar-KQ55EAFF-CS4sHKD5.js +1 -0
- package/dist/web/assets/{razor-_oKX4NEv.js → razor-B2QvlGNY.js} +1 -1
- package/dist/web/assets/{react-D1Yg256j.js → react-Bcm1Oab0.js} +1 -1
- package/dist/web/assets/remote-desktop-mobile-sheet-_LH4uCcA.js +2 -0
- package/dist/web/assets/{remote-desktop-mobile-view-xlO-gk_f.js → remote-desktop-mobile-view-C5TUPDh_.js} +1 -1
- package/dist/web/assets/{remote-desktop-readiness-gate-BmyUd1vt.js → remote-desktop-readiness-gate-DuT4A893.js} +1 -1
- package/dist/web/assets/{remote-desktop-window-content-BaPixhFs.js → remote-desktop-window-content-B4V-1aJn.js} +1 -1
- package/dist/web/assets/{rst-C3yqfWYA.js → rst-D2eJ0kH4.js} +1 -1
- package/dist/web/assets/{ruby-BaanPyyv.js → ruby-DzpnBpz-.js} +1 -1
- package/dist/web/assets/{run-in-terminal-Sb6TFU4f.js → run-in-terminal-DisO5HC-.js} +1 -1
- package/dist/web/assets/{sas-DQg1FY8E.js → sas-WDAKsX0U.js} +1 -1
- package/dist/web/assets/{save-CipGrG1k.js → save-BehCuMf4.js} +1 -1
- package/dist/web/assets/{schedules-settings-section-Ctu9STMV.js → schedules-settings-section-C2SjwWFB.js} +1 -1
- package/dist/web/assets/{scss-N-LxVilh.js → scss-Ci6PdscL.js} +1 -1
- package/dist/web/assets/{send-Bb0jtcR6.js → send-CtXcGcsk.js} +1 -1
- package/dist/web/assets/{send-to-chat-BDws0-k0.js → send-to-chat-DDFdKWNf.js} +1 -1
- package/dist/web/assets/{separator-GeVzERIl.js → separator-CyisF27O.js} +1 -1
- package/dist/web/assets/settings-body-CdFauCAU.js +2 -0
- package/dist/web/assets/{settings-store-Bsu_5zIU.js → settings-store-BkNrLdjk.js} +2 -2
- package/dist/web/assets/settings-tab-DGUlmMbc.js +1 -0
- package/dist/web/assets/settings-window-content-CIH5sihe.js +1 -0
- package/dist/web/assets/{shaderlab-BShqbudx.js → shaderlab-Cv3mWofL.js} +1 -1
- package/dist/web/assets/{shellsession-B8_nNEok.js → shellsession-D1KVtQa1.js} +1 -1
- package/dist/web/assets/{shield-check-BsG3LV8i.js → shield-check-z9PX8HVZ.js} +1 -1
- package/dist/web/assets/{shield-off-7jKWpJBD.js → shield-off-Du0U5dVI.js} +1 -1
- package/dist/web/assets/{soy-CW5oqa-M.js → soy-BGLBwFZT.js} +1 -1
- package/dist/web/assets/{sparkles-Dh-_J2Rd.js → sparkles-CO9zx1f-.js} +1 -1
- package/dist/web/assets/{sparql-BJFHPosZ.js → sparql-TvnQmFDh.js} +1 -1
- package/dist/web/assets/{sql-query-editor-DPtExW0C.js → sql-query-editor-DaQqRBNA.js} +1 -1
- package/dist/web/assets/sqlite-viewer-Bpz7QnBk.js +1 -0
- package/dist/web/assets/{stata-twP3WAnN.js → stata-Gi-BKyEv.js} +1 -1
- package/dist/web/assets/{streaming-store-9XVmAMfV.js → streaming-store-DAbnOfLu.js} +1 -1
- package/dist/web/assets/{surrealql-CqwoQxwG.js → surrealql-BVXs6tkz.js} +1 -1
- package/dist/web/assets/{svelte-CoTGkG7y.js → svelte-BlnFpLWV.js} +1 -1
- package/dist/web/assets/{system-monitor-body-Bfx7yImc.js → system-monitor-body-BBJOWFCa.js} +2 -2
- package/dist/web/assets/system-monitor-tab-D7RIwhmg.js +1 -0
- package/dist/web/assets/system-monitor-window-content-CH0UmMP9.js +1 -0
- package/dist/web/assets/{tab-host-window-content-By35Ri11.js → tab-host-window-content-C_yU5MH_.js} +1 -1
- package/dist/web/assets/{tab-store-1xYJb0gM.js → tab-store-B7BksLr-.js} +1 -1
- package/dist/web/assets/{table-CRJsmfeg.js → table-BK4h8E7u.js} +1 -1
- package/dist/web/assets/team-member-sheet-CopMME1E.js +2 -0
- package/dist/web/assets/{team-member-window-content-2_P22CXN.js → team-member-window-content-CUDQ6oX7.js} +1 -1
- package/dist/web/assets/{templ-BSuNrgD0.js → templ-YJYH5r1A.js} +1 -1
- package/dist/web/assets/{terminal-tab-DqAZMwhA.js → terminal-tab-BjI95uG5.js} +1 -1
- package/dist/web/assets/{tex-DTdKTZSa.js → tex-IVZLDIeh.js} +1 -1
- package/dist/web/assets/{text-wrap-oiekm5SB.js → text-wrap-DLtVgSnU.js} +1 -1
- package/dist/web/assets/{tool-cards-CiCZqw1w.js → tool-cards-I71v1w5Z.js} +6 -6
- package/dist/web/assets/treemap-KZPCXAKY-BBrhTPZk.js +1 -0
- package/dist/web/assets/{ts-tags-jpjff8fb.js → ts-tags-DBd321I-.js} +1 -1
- package/dist/web/assets/{twig-Utgjq3Am.js → twig-DQENQjEn.js} +1 -1
- package/dist/web/assets/{use-blob-url-BMtoAEL4.js → use-blob-url-CGChX4vi.js} +1 -1
- package/dist/web/assets/{use-coarse-long-press-BmI_GVW5.js → use-coarse-long-press-XrJ4Upuv.js} +1 -1
- package/dist/web/assets/{use-inline-blame-C1G-_NjC.js → use-inline-blame-CRUwd6FF.js} +1 -1
- package/dist/web/assets/{use-is-mobile-D1weanbj.js → use-is-mobile-Dypg-2ZO.js} +1 -1
- package/dist/web/assets/use-monaco-theme-qzMbRfCW.js +1 -0
- package/dist/web/assets/use-open-team-member-kmNnlzDD.js +1 -0
- package/dist/web/assets/{use-remote-desktop-display-choice-DVDOUQg2.js → use-remote-desktop-display-choice-0zDkCmsK.js} +1 -1
- package/dist/web/assets/{use-visual-viewport-Bfl3Bxxb.js → use-visual-viewport-Bj3QHRkF.js} +1 -1
- package/dist/web/assets/{use-websocket-BkBvJbEt.js → use-websocket-D8OGBwH8.js} +1 -1
- package/dist/web/assets/{vendor-markdown-Ls5AcU91.js → vendor-markdown-CuWCHIVb.js} +1 -1
- package/dist/web/assets/{vendor-mermaid-CXxglerV.js → vendor-mermaid-BoRFiriK.js} +193 -193
- package/dist/web/assets/{vendor-ui-CaeeFO0B.js → vendor-ui-BBdkypKW.js} +1 -1
- package/dist/web/assets/{video-preview-DzzFr0gI.js → video-preview-Mlgl7hGr.js} +1 -1
- package/dist/web/assets/{vue-CUms54DI.js → vue-Do2JXEwi.js} +1 -1
- package/dist/web/assets/{vue-html-D7fbWTZW.js → vue-html-Bse0CwSC.js} +1 -1
- package/dist/web/assets/{vue-vine-BontZ1iR.js → vue-vine-C8JSXu5Z.js} +1 -1
- package/dist/web/assets/{window-pip-registry-CrCYYTTf.js → window-pip-registry-C2dcY0pE.js} +1 -1
- package/dist/web/assets/{window-store-D0HbQ1pM.js → window-store-2z4t5YAt.js} +1 -1
- package/dist/web/assets/ws-auth-DI1E6Fe7.js +1 -0
- package/dist/web/assets/x-DlnNFF2t.js +1 -0
- package/dist/web/assets/{xml-CVHJ-Tda.js → xml-OX6YmzGK.js} +1 -1
- package/dist/web/assets/{xsl-BUDXwDuV.js → xsl-RQUQgcgy.js} +1 -1
- package/dist/web/index.html +43 -43
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
- package/packages/vscode-compat/node_modules/.bin/tsc.bunx +0 -0
- package/packages/vscode-compat/node_modules/.bin/tsc.exe +0 -0
- package/packages/vscode-compat/node_modules/.bin/tsserver.bunx +0 -0
- package/packages/vscode-compat/node_modules/.bin/tsserver.exe +0 -0
- package/src/providers/codex-app-server/codex-event-mapper.ts +28 -1
- package/src/providers/codex-app-server/codex-provider.ts +38 -5
- package/src/providers/codex-app-server/codex-usage-parser.ts +3 -1
- package/src/server/routes/codex-accounts.ts +9 -5
- package/src/services/codex-account-login.ts +33 -5
- package/src/services/codex-account-portability.ts +3 -2
- package/src/services/codex-account.service.ts +48 -7
- package/src/services/codex-login-callback.ts +18 -0
- package/src/services/db.service.ts +14 -0
- package/src/services/edge-forwarder.ts +191 -191
- package/src/services/windows-process-tree.ts +351 -351
- package/src/shared/codex-daily-guard.ts +27 -0
- package/src/shared/codex-plan-label.ts +17 -0
- package/src/web/components/chat/codex-usage-panel.tsx +22 -2
- package/src/web/components/settings/accounts/account-card.tsx +43 -2
- package/src/web/components/settings/accounts/codex-accounts-section.tsx +43 -2
- package/src/web/components/settings/accounts/use-codex-accounts.ts +14 -2
- package/src/web/components/shared/markdown-context.ts +6 -0
- package/src/web/components/shared/markdown-renderer.tsx +7 -3
- package/dist/web/assets/accounts-settings-section-Df1KoGg7.js +0 -1
- package/dist/web/assets/ai-settings-section-CMIkIxZU.js +0 -1
- package/dist/web/assets/api-client-QfreGirP.js +0 -1
- package/dist/web/assets/architecture-PBZL5I3N-CkWx_Sv3.js +0 -1
- package/dist/web/assets/arrow-left-CyFcsyzD.js +0 -1
- package/dist/web/assets/check-DN75Ucvz.js +0 -1
- package/dist/web/assets/chevron-right-De-Wz5Lz.js +0 -1
- package/dist/web/assets/circle-BCy0AUCo.js +0 -1
- package/dist/web/assets/circle-question-mark-CzR7YRc-.js +0 -1
- package/dist/web/assets/click-outside-container-XmmmdSm7.js +0 -1
- package/dist/web/assets/clock-C1CQUQPZ.js +0 -1
- package/dist/web/assets/code-DJgYrFzm.js +0 -1
- package/dist/web/assets/code-editor-BVyFjaoM.js +0 -7
- package/dist/web/assets/data-grid-overlay-editor-QyH_oklj.js +0 -1
- package/dist/web/assets/database-viewer-BWQMTwjf.js +0 -1
- package/dist/web/assets/dist-CQbltjRp.js +0 -11
- package/dist/web/assets/esm-Brdy2Atb.js +0 -2
- package/dist/web/assets/explorer-window-content-C3BSd4Qf.js +0 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-BUlbZgyf.js +0 -1
- package/dist/web/assets/glide-data-grid-lbUFJwCD.js +0 -141
- package/dist/web/assets/index-B9Wbjl0o.css +0 -2
- package/dist/web/assets/info-3K5VOQVL-DXzjBxZf.js +0 -1
- package/dist/web/assets/keybindings-store-BOJPwIOB.js +0 -1
- package/dist/web/assets/loader-circle-DPMrnLQ2.js +0 -1
- package/dist/web/assets/markdown-renderer-C1KVXiXr.js +0 -3
- package/dist/web/assets/markdown-renderer-HPQE8ilD.js +0 -1
- package/dist/web/assets/mobile-explorer-sheet-DkvtLBgs.js +0 -1
- package/dist/web/assets/notification-store-B1pBUO0W.js +0 -1
- package/dist/web/assets/packet-RMMSAZCW-DrX3I-bv.js +0 -1
- package/dist/web/assets/pie-UPGHQEXC-czhViDrP.js +0 -1
- package/dist/web/assets/portal-container-context-DKymYOY-.js +0 -1
- package/dist/web/assets/postgres-viewer-DO50GwMs.js +0 -3
- package/dist/web/assets/power-CriQkeK5.js +0 -1
- package/dist/web/assets/radar-KQ55EAFF-BAHP0n2V.js +0 -1
- package/dist/web/assets/remote-desktop-mobile-sheet-DMn2uDXn.js +0 -2
- package/dist/web/assets/settings-body-B0ZdO6qx.js +0 -2
- package/dist/web/assets/settings-tab-BQvukPz5.js +0 -1
- package/dist/web/assets/settings-window-content-DUmULFsq.js +0 -1
- package/dist/web/assets/sqlite-viewer-DkzvIzyG.js +0 -1
- package/dist/web/assets/system-monitor-tab-Bn7sDAiO.js +0 -1
- package/dist/web/assets/system-monitor-window-content-DVwdAvly.js +0 -1
- package/dist/web/assets/team-member-sheet-B8vZnJrJ.js +0 -2
- package/dist/web/assets/treemap-KZPCXAKY-DL_-JS7u.js +0 -1
- package/dist/web/assets/use-accounts-data-DMQAUXSO.js +0 -1
- package/dist/web/assets/use-monaco-theme-Ck1i7NEe.js +0 -1
- package/dist/web/assets/use-open-team-member-C9EUqPvl.js +0 -1
- package/dist/web/assets/ws-auth-D111jj32.js +0 -1
- package/dist/web/assets/x-CxoBA0po.js +0 -1
- /package/dist/web/assets/{abap-BGbkXtK3.js → abap-BIHt2d9F.js} +0 -0
- /package/dist/web/assets/{actionscript-3-CTWUcAG5.js → actionscript-3-rbCNRHFj.js} +0 -0
- /package/dist/web/assets/{ada-2xQ2Am_-.js → ada-CN94LQTJ.js} +0 -0
- /package/dist/web/assets/{andromeeda-DfXLrHKa.js → andromeeda-BsmcoXuQ.js} +0 -0
- /package/dist/web/assets/{apache-CBLZGsyo.js → apache-pRQmqcVZ.js} +0 -0
- /package/dist/web/assets/{apex-UYnVUoc7.js → apex-CNEumC1X.js} +0 -0
- /package/dist/web/assets/{applescript-9me9Xoqf.js → applescript-DjEVsS-3.js} +0 -0
- /package/dist/web/assets/{apply-theme-BVXAUYoN.js → apply-theme-Abd1TNqE.js} +0 -0
- /package/dist/web/assets/{ara-CHhiJzie.js → ara-DbhZRlTL.js} +0 -0
- /package/dist/web/assets/{asciidoc-CKk0H4sD.js → asciidoc-BsfbAXIK.js} +0 -0
- /package/dist/web/assets/{asm-CVc_SeQB.js → asm-Vw5NMXjI.js} +0 -0
- /package/dist/web/assets/{aurora-x-BRYBKvUk.js → aurora-x-CoahU6sR.js} +0 -0
- /package/dist/web/assets/{awk-BsBtss7k.js → awk-ChKjCxHz.js} +0 -0
- /package/dist/web/assets/{ayu-dark-x3ChmRrr.js → ayu-dark-By9RKxTf.js} +0 -0
- /package/dist/web/assets/{ayu-light-DUbhGec6.js → ayu-light-CEsgeLON.js} +0 -0
- /package/dist/web/assets/{ayu-mirage-Bc9Dyu4v.js → ayu-mirage-CYrtwSLW.js} +0 -0
- /package/dist/web/assets/{ballerina-B0CV6yyC.js → ballerina-CCSVz22W.js} +0 -0
- /package/dist/web/assets/{bat-BmukVhcd.js → bat-DU4--CMj.js} +0 -0
- /package/dist/web/assets/{beancount-DfRKW4qX.js → beancount-DF_tlRlF.js} +0 -0
- /package/dist/web/assets/{berry-BXO-GbOz.js → berry-CZTnatvO.js} +0 -0
- /package/dist/web/assets/{bibtex-BIMgGN81.js → bibtex-BSpXy8jk.js} +0 -0
- /package/dist/web/assets/{bicep-CIaj_N_V.js → bicep-yv1Ydq5Z.js} +0 -0
- /package/dist/web/assets/{bird2-Ca5CJ-1r.js → bird2-Db7Z7SMN.js} +0 -0
- /package/dist/web/assets/{c-BgN-FzVO.js → c-C3ivhwA4.js} +0 -0
- /package/dist/web/assets/{c3-B366g85t.js → c3-N4mKyst9.js} +0 -0
- /package/dist/web/assets/{cadence-BDCY3xvX.js → cadence-BYK8tFFk.js} +0 -0
- /package/dist/web/assets/{can-open-in-ppm-DyFXJvuW.js → can-open-in-ppm-DU5MH6XF.js} +0 -0
- /package/dist/web/assets/{catppuccin-frappe-C2dWlEOM.js → catppuccin-frappe-BK9Tv2XG.js} +0 -0
- /package/dist/web/assets/{catppuccin-latte-B6AgUzC2.js → catppuccin-latte-De4mVCp3.js} +0 -0
- /package/dist/web/assets/{catppuccin-macchiato-D2r_sUYa.js → catppuccin-macchiato-Bxt_D7cs.js} +0 -0
- /package/dist/web/assets/{catppuccin-mocha-CCJOmGcr.js → catppuccin-mocha-Dz2o8gN7.js} +0 -0
- /package/dist/web/assets/{clarity-7c_yM38y.js → clarity-BJdh0Pw-.js} +0 -0
- /package/dist/web/assets/{clojure-Cx30u1gg.js → clojure-DG-FYGzn.js} +0 -0
- /package/dist/web/assets/{cmake-D8nfcw9r.js → cmake-D1imEXan.js} +0 -0
- /package/dist/web/assets/{codeowners-z9VeFgy0.js → codeowners-YpylTFB5.js} +0 -0
- /package/dist/web/assets/{codeql-DXYEc0p7.js → codeql-ajDEPgqi.js} +0 -0
- /package/dist/web/assets/{common-lisp-QB2DYRB7.js → common-lisp-C2sCrd-m.js} +0 -0
- /package/dist/web/assets/{coq-DC4-vZSI.js → coq-BqybyDc9.js} +0 -0
- /package/dist/web/assets/{csharp-iBJcXIuz.js → csharp-nKCEiujy.js} +0 -0
- /package/dist/web/assets/{css-DzLteUnC.js → css-CJSp2CsD.js} +0 -0
- /package/dist/web/assets/{csv-plVZ5iV_.js → csv-Nh9vQwQm.js} +0 -0
- /package/dist/web/assets/{csv-parser-0OmrzV4G.js → csv-parser-iow1WWML.js} +0 -0
- /package/dist/web/assets/{cue-MFyM4FwJ.js → cue-Ch79RPsU.js} +0 -0
- /package/dist/web/assets/{cypher-BmV76dTw.js → cypher-CgiOQ6hs.js} +0 -0
- /package/dist/web/assets/{d-CukQ97B6.js → d-CmBcySpH.js} +0 -0
- /package/dist/web/assets/{dark-plus-BDhlhnd-.js → dark-plus-COLEX2ui.js} +0 -0
- /package/dist/web/assets/{dart-BEDiNp89.js → dart-BTAArMcJ.js} +0 -0
- /package/dist/web/assets/{dax-CKMJPpmb.js → dax-BbZzRY9i.js} +0 -0
- /package/dist/web/assets/{desktop-CjjGerHK.js → desktop-OmQvU3-J.js} +0 -0
- /package/dist/web/assets/{diff-CuRWQEJk.js → diff-BEPnb9Fb.js} +0 -0
- /package/dist/web/assets/{docker-BzeqNwXY.js → docker-Cg17HgTD.js} +0 -0
- /package/dist/web/assets/{dotenv-maAByz4s.js → dotenv-DEMIaY7V.js} +0 -0
- /package/dist/web/assets/{dracula-BK-58eQL.js → dracula-BkCFq8SO.js} +0 -0
- /package/dist/web/assets/{dracula-soft-BiBFiJ4B.js → dracula-soft-Cjp6-ltF.js} +0 -0
- /package/dist/web/assets/{dream-maker-SLz866k9.js → dream-maker-Ce7Y_UKj.js} +0 -0
- /package/dist/web/assets/{emacs-lisp-DVVSBvYb.js → emacs-lisp-BjpyfTbN.js} +0 -0
- /package/dist/web/assets/{everforest-dark-B3wCaZGh.js → everforest-dark-9r4okw1s.js} +0 -0
- /package/dist/web/assets/{everforest-light-BOv6DEcT.js → everforest-light-GCQTZ3Ju.js} +0 -0
- /package/dist/web/assets/{fennel-mxeAVgSR.js → fennel-ITjY5Z6u.js} +0 -0
- /package/dist/web/assets/{fish-CNPEh-7O.js → fish-DP2uEzyg.js} +0 -0
- /package/dist/web/assets/{fluent-DzjF371g.js → fluent-irzaP1f6.js} +0 -0
- /package/dist/web/assets/{format-bytes-BxBoqnS1.js → format-bytes-B9Dbme9a.js} +0 -0
- /package/dist/web/assets/{fortran-free-form-BwcDAA-k.js → fortran-free-form-BAPoainr.js} +0 -0
- /package/dist/web/assets/{gdscript-Dw53oyoq.js → gdscript-DJ098V1z.js} +0 -0
- /package/dist/web/assets/{gdshader-Ch4uX8TL.js → gdshader-DS2Jfy-K.js} +0 -0
- /package/dist/web/assets/{genie-BmyA3sav.js → genie-CqfOaFFx.js} +0 -0
- /package/dist/web/assets/{gherkin-TJfGbfw6.js → gherkin-CoZ2ucDH.js} +0 -0
- /package/dist/web/assets/{github-dark-DfjGEBZm.js → github-dark-BNLgnSO9.js} +0 -0
- /package/dist/web/assets/{github-dark-default-C05CO5WG.js → github-dark-default-CYlSggwi.js} +0 -0
- /package/dist/web/assets/{github-dark-dimmed-tc58hIbY.js → github-dark-dimmed-DumUysDk.js} +0 -0
- /package/dist/web/assets/{github-dark-high-contrast-Cbjouhax.js → github-dark-high-contrast-TKrcDJ2I.js} +0 -0
- /package/dist/web/assets/{github-light-DyPx5kxT.js → github-light-DVENFHLJ.js} +0 -0
- /package/dist/web/assets/{github-light-default-CwQhvvq0.js → github-light-default-DtN8AGcE.js} +0 -0
- /package/dist/web/assets/{github-light-high-contrast-BSEfGuGA.js → github-light-high-contrast-NSyF37x4.js} +0 -0
- /package/dist/web/assets/{gleam-CO9BliEd.js → gleam-hp4NMSb5.js} +0 -0
- /package/dist/web/assets/{gn-3w7c2jXR.js → gn-Dptw2PEu.js} +0 -0
- /package/dist/web/assets/{gnuplot-B9V8Da0h.js → gnuplot-9juRzjwv.js} +0 -0
- /package/dist/web/assets/{go-DZFS3BH_.js → go-D-QLCda0.js} +0 -0
- /package/dist/web/assets/{groovy-BoXoCYbJ.js → groovy-DHKNy6Eh.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-hard-PlwQadvn.js → gruvbox-dark-hard-BFD6aQdB.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-medium-BCuSx7jF.js → gruvbox-dark-medium-D5llYBNp.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-soft-BxNVGg5m.js → gruvbox-dark-soft-DOztQmNR.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-hard-Caj_mHvE.js → gruvbox-light-hard-BFGD-8Pd.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-medium-BbWauaVM.js → gruvbox-light-medium-DzoyXgT7.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-soft-sTtAiBhF.js → gruvbox-light-soft-B1Ix2zLN.js} +0 -0
- /package/dist/web/assets/{haskell-DdAcCutT.js → haskell-BnrJ0k7G.js} +0 -0
- /package/dist/web/assets/{haxe-CAaBQSbQ.js → haxe-DwShHT_-.js} +0 -0
- /package/dist/web/assets/{hcl-D1Y6h8Ni.js → hcl-VOjEibVB.js} +0 -0
- /package/dist/web/assets/{hjson-C7gAy4J-.js → hjson-BHEn7pNn.js} +0 -0
- /package/dist/web/assets/{hlsl-BLCpvTDs.js → hlsl-CrvxlGii.js} +0 -0
- /package/dist/web/assets/{horizon-A4TcfP_V.js → horizon-D3T-P0u6.js} +0 -0
- /package/dist/web/assets/{horizon-bright-D4gSyLkJ.js → horizon-bright-vifGsEdk.js} +0 -0
- /package/dist/web/assets/{houston-B57jZ5OJ.js → houston-IrOgT7r4.js} +0 -0
- /package/dist/web/assets/{hy-C-_Ikdzx.js → hy-5eSgTJ8G.js} +0 -0
- /package/dist/web/assets/{image-gallery-DZFo6X0Q.js → image-gallery-COea0nSk.js} +0 -0
- /package/dist/web/assets/{imba-BwypdGq0.js → imba-Dp0I4DVl.js} +0 -0
- /package/dist/web/assets/{ini-DFC2fVTV.js → ini-CHDKad9O.js} +0 -0
- /package/dist/web/assets/{java-K2R-OeI_.js → java-YLv7IDJ1.js} +0 -0
- /package/dist/web/assets/{javascript-Dwc_x-Qy.js → javascript-jr4kIdgl.js} +0 -0
- /package/dist/web/assets/{json-BWJ0jCOR.js → json-EJWSOZfp.js} +0 -0
- /package/dist/web/assets/{json5-CyjYMs2j.js → json5-D6f_uNwJ.js} +0 -0
- /package/dist/web/assets/{jsonc-DpY-971T.js → jsonc-DrHCdmos.js} +0 -0
- /package/dist/web/assets/{jsonl-MOid1Cv5.js → jsonl-Cwc3cXEL.js} +0 -0
- /package/dist/web/assets/{jsonnet-C8r7u8hK.js → jsonnet-BwZfaIFT.js} +0 -0
- /package/dist/web/assets/{jssm-aiVzgRKq.js → jssm-BpEmg_MT.js} +0 -0
- /package/dist/web/assets/{jsx-BouDi2uL.js → jsx-DBGPwcr4.js} +0 -0
- /package/dist/web/assets/{kanagawa-dragon-BDBacW42.js → kanagawa-dragon-DRfVaGIX.js} +0 -0
- /package/dist/web/assets/{kanagawa-lotus-Bjc_h4S5.js → kanagawa-lotus-CjOlny0Q.js} +0 -0
- /package/dist/web/assets/{kanagawa-wave-h12w2GK-.js → kanagawa-wave-DvdM88a4.js} +0 -0
- /package/dist/web/assets/{kdl-By4Gal6E.js → kdl-DSo3PvM0.js} +0 -0
- /package/dist/web/assets/{kotlin-BaieUpjq.js → kotlin-BV8TwCGu.js} +0 -0
- /package/dist/web/assets/{kusto-bFewy_Sb.js → kusto-DCo1Fdmm.js} +0 -0
- /package/dist/web/assets/{laserwave-DpFhqINu.js → laserwave-DPX9FvD9.js} +0 -0
- /package/dist/web/assets/{lean-DDn2i30H.js → lean-Cya8dqZu.js} +0 -0
- /package/dist/web/assets/{less-DtaLKtJv.js → less-CJUPgkIs.js} +0 -0
- /package/dist/web/assets/{libesm-DJd6dkYL.js → libesm-CcPYXCKp.js} +0 -0
- /package/dist/web/assets/{light-plus-BiMMZ8in.js → light-plus-BXXrlFJH.js} +0 -0
- /package/dist/web/assets/{llvm-BI0xMYjk.js → llvm-CUbQanZr.js} +0 -0
- /package/dist/web/assets/{log-BDnXCvPh.js → log-B3fFlSMd.js} +0 -0
- /package/dist/web/assets/{logo-DeOTbfcP.js → logo-ucAyw6zf.js} +0 -0
- /package/dist/web/assets/{luau-C8pWPPhP.js → luau-C4l6TSTB.js} +0 -0
- /package/dist/web/assets/{make-Du6n4Vqb.js → make-CDtGIVc7.js} +0 -0
- /package/dist/web/assets/{markdown-CQOwzr1d.js → markdown-CH1zKu2p.js} +0 -0
- /package/dist/web/assets/{material-theme-V1uvvG3T.js → material-theme-CEuGVTmh.js} +0 -0
- /package/dist/web/assets/{material-theme-darker-YOeOea0A.js → material-theme-darker-CUZ3MoIr.js} +0 -0
- /package/dist/web/assets/{material-theme-lighter-gsPcqGZh.js → material-theme-lighter-DxAqJSid.js} +0 -0
- /package/dist/web/assets/{material-theme-ocean-DXpcGhUO.js → material-theme-ocean-BSvvHJp6.js} +0 -0
- /package/dist/web/assets/{material-theme-palenight-CuXKc4Kv.js → material-theme-palenight-QVOl50_m.js} +0 -0
- /package/dist/web/assets/{matlab-DKfAoKWM.js → matlab-CZLQLwUp.js} +0 -0
- /package/dist/web/assets/{mdx-B3lHrBfA.js → mdx-DO4NJsOo.js} +0 -0
- /package/dist/web/assets/{mermaid-aFxjKRiq.js → mermaid-CIwzg1uO.js} +0 -0
- /package/dist/web/assets/{min-dark-z_K9sY1g.js → min-dark-BdIgslXy.js} +0 -0
- /package/dist/web/assets/{min-light-CKEPOwP-.js → min-light-DyU-T1r2.js} +0 -0
- /package/dist/web/assets/{mipsasm-Czl4687V.js → mipsasm-DRad-Klm.js} +0 -0
- /package/dist/web/assets/{mojo-XEmb6dMz.js → mojo-DXp5LDOc.js} +0 -0
- /package/dist/web/assets/{monokai-CeewfP-T.js → monokai-BiKX3qby.js} +0 -0
- /package/dist/web/assets/{moonbit-BFs6rC9o.js → moonbit-BOUoLF5r.js} +0 -0
- /package/dist/web/assets/{move-Dru-OXAq.js → move-Dlk64FWK.js} +0 -0
- /package/dist/web/assets/{narrat-C6i2yGbz.js → narrat-B-qd2Lh0.js} +0 -0
- /package/dist/web/assets/{nextflow-groovy-CNbSHaJ-.js → nextflow-groovy-iAMYas0F.js} +0 -0
- /package/dist/web/assets/{night-owl-XXoqvAPs.js → night-owl-3YNqjftR.js} +0 -0
- /package/dist/web/assets/{night-owl-light-Dm8251t1.js → night-owl-light-GIncHb5w.js} +0 -0
- /package/dist/web/assets/{nix-DUvtyLsY.js → nix-xjlEb3uw.js} +0 -0
- /package/dist/web/assets/{nord-DapQODEA.js → nord-C8tvWx7P.js} +0 -0
- /package/dist/web/assets/{nushell-WDWgg9A2.js → nushell-BqBb4pU6.js} +0 -0
- /package/dist/web/assets/{objective-c-Dg6Li1Kw.js → objective-c-Bk6s0Cn5.js} +0 -0
- /package/dist/web/assets/{objective-cpp-DLTQ4Pyg.js → objective-cpp-DGTVWQ3V.js} +0 -0
- /package/dist/web/assets/{ocaml-gH2M-t6b.js → ocaml-D6wPQ4kw.js} +0 -0
- /package/dist/web/assets/{odin-BBj0SPaN.js → odin-C9mw2xRN.js} +0 -0
- /package/dist/web/assets/{one-dark-pro-C8irccD3.js → one-dark-pro-SMBlneFb.js} +0 -0
- /package/dist/web/assets/{one-light-THMntV-R.js → one-light-C9JMU1Cx.js} +0 -0
- /package/dist/web/assets/{openscad-BEjRF8ZV.js → openscad-C0I9CtuA.js} +0 -0
- /package/dist/web/assets/{pascal-C7Kr1uH_.js → pascal-D0z4DJnY.js} +0 -0
- /package/dist/web/assets/{pkl-CBAaOrr-.js → pkl-CITYNGVz.js} +0 -0
- /package/dist/web/assets/{plastic-B1qtUEVU.js → plastic-Bf0T6rmg.js} +0 -0
- /package/dist/web/assets/{plsql-KzVm4VQQ.js → plsql-Chr907pu.js} +0 -0
- /package/dist/web/assets/{po-BDthh1AB.js → po-07U75CYV.js} +0 -0
- /package/dist/web/assets/{poimandres-DIsV0oVO.js → poimandres-B0T4qwXY.js} +0 -0
- /package/dist/web/assets/{polar-HfZSDZob.js → polar-BvNJMMV5.js} +0 -0
- /package/dist/web/assets/{postcss-D2mpQWcD.js → postcss-BSdf-zzo.js} +0 -0
- /package/dist/web/assets/{powerquery-BmWOahNZ.js → powerquery-B2Ad_HK8.js} +0 -0
- /package/dist/web/assets/{powershell-DuBkKB6U.js → powershell-DO5WY2v2.js} +0 -0
- /package/dist/web/assets/{prisma-DMOCr8t3.js → prisma-BfaRPYzs.js} +0 -0
- /package/dist/web/assets/{prolog-OntlFpI5.js → prolog-Cz0Nue9e.js} +0 -0
- /package/dist/web/assets/{proto-kD5tYlX3.js → proto-FVleUZJO.js} +0 -0
- /package/dist/web/assets/{puppet-CO4XS5MF.js → puppet-BEX5o7hE.js} +0 -0
- /package/dist/web/assets/{purescript-D_e2LzQx.js → purescript-BZX6Kw4j.js} +0 -0
- /package/dist/web/assets/{python-BcK-Cw6k.js → python-CO89UIxE.js} +0 -0
- /package/dist/web/assets/{qmldir-B-9b87fC.js → qmldir-DH526DWB.js} +0 -0
- /package/dist/web/assets/{qss-hWjUDAxi.js → qss-wp8im4Iz.js} +0 -0
- /package/dist/web/assets/{r-D0sNqudq.js → r-F9n--bvq.js} +0 -0
- /package/dist/web/assets/{racket-9cjYYXcq.js → racket-BQvbOE5D.js} +0 -0
- /package/dist/web/assets/{raku-ntPupo_R.js → raku-B0iWSynj.js} +0 -0
- /package/dist/web/assets/{red-D814sEjX.js → red-Cm00r9eI.js} +0 -0
- /package/dist/web/assets/{reg-bPzNEQh4.js → reg-CBuhna22.js} +0 -0
- /package/dist/web/assets/{regexp-B_zg64Ge.js → regexp-C9j1_6oU.js} +0 -0
- /package/dist/web/assets/{rel-CoB0Qjm-.js → rel-BYzlBhbq.js} +0 -0
- /package/dist/web/assets/{resolve-theme-CMp5xxCW.js → resolve-theme-Dm8ehbOv.js} +0 -0
- /package/dist/web/assets/{riscv-DcVTEi_B.js → riscv-CQQP0Ro9.js} +0 -0
- /package/dist/web/assets/{ron-CcAQMYzM.js → ron-j1ON9YzM.js} +0 -0
- /package/dist/web/assets/{rose-pine-jtG38kvA.js → rose-pine-Cbri3jon.js} +0 -0
- /package/dist/web/assets/{rose-pine-dawn-DkSLvjDV.js → rose-pine-dawn-BMuvKrGo.js} +0 -0
- /package/dist/web/assets/{rose-pine-moon-DJx8AxMs.js → rose-pine-moon-4biZzaYD.js} +0 -0
- /package/dist/web/assets/{rosmsg-BnfYFiWk.js → rosmsg-CXx22rtz.js} +0 -0
- /package/dist/web/assets/{rust-DxgQnpfl.js → rust-D28cFIhL.js} +0 -0
- /package/dist/web/assets/{sass-DTgjjspH.js → sass-DtNw4V28.js} +0 -0
- /package/dist/web/assets/{scala-xEozebyS.js → scala-hv69_YQC.js} +0 -0
- /package/dist/web/assets/{scheme-sfgxdr_D.js → scheme-Dtp9B_ng.js} +0 -0
- /package/dist/web/assets/{sdbl-BpdzD-Uv.js → sdbl-DEwEngAE.js} +0 -0
- /package/dist/web/assets/{shellscript-B2o7zCrN.js → shellscript-CCOF9tox.js} +0 -0
- /package/dist/web/assets/{slack-dark-DxfgNfgJ.js → slack-dark-DT0E0ABt.js} +0 -0
- /package/dist/web/assets/{slack-ochin-BMSGMkt8.js → slack-ochin-DHHiQnxo.js} +0 -0
- /package/dist/web/assets/{smalltalk-DCb8haRt.js → smalltalk-BF_I35xJ.js} +0 -0
- /package/dist/web/assets/{snazzy-light-Y06j56Vj.js → snazzy-light-Cv7tIZo9.js} +0 -0
- /package/dist/web/assets/{solarized-dark-z1W-RVhp.js → solarized-dark-wZ5YPCys.js} +0 -0
- /package/dist/web/assets/{solarized-light-BRAGTpW5.js → solarized-light-DGDOr1AS.js} +0 -0
- /package/dist/web/assets/{solidity-CDTZVMHy.js → solidity-BJknuPqJ.js} +0 -0
- /package/dist/web/assets/{splunk-CFjv6-V_.js → splunk-B1ClO_KU.js} +0 -0
- /package/dist/web/assets/{sql-Ce-1ETwT.js → sql-CXZ66NtF.js} +0 -0
- /package/dist/web/assets/{ssh-config-Bcs3SD-x.js → ssh-config-kgM67Sf6.js} +0 -0
- /package/dist/web/assets/{stylus-Co5Var6O.js → stylus-RcVaInR-.js} +0 -0
- /package/dist/web/assets/{swift-Irt_r7Fy.js → swift-Cm0fh2lX.js} +0 -0
- /package/dist/web/assets/{synthwave-84-BOgCDIL-.js → synthwave-84-CwLiazxr.js} +0 -0
- /package/dist/web/assets/{system-verilog-DSwfS0ci.js → system-verilog-CzYaDVLH.js} +0 -0
- /package/dist/web/assets/{systemd-C-HqVFLV.js → systemd-DbSagfLw.js} +0 -0
- /package/dist/web/assets/{talonscript-B7lshRGY.js → talonscript-BCFnWejL.js} +0 -0
- /package/dist/web/assets/{tasl-BZXSTCA-.js → tasl-BUdqtEe1.js} +0 -0
- /package/dist/web/assets/{tcl-B_vaMM01.js → tcl-CR_lTV9N.js} +0 -0
- /package/dist/web/assets/{terraform-B7kDBVtX.js → terraform-Bqsha-xe.js} +0 -0
- /package/dist/web/assets/{tokyo-night-CW1uC1bG.js → tokyo-night-Cnuo6JB6.js} +0 -0
- /package/dist/web/assets/{toml-Af6Dxufp.js → toml-CLFdhT22.js} +0 -0
- /package/dist/web/assets/{tsv-BSFZ-g3s.js → tsv-Dw3tLrZN.js} +0 -0
- /package/dist/web/assets/{tsx-CN8kIwG_.js → tsx-B8k1sFqw.js} +0 -0
- /package/dist/web/assets/{turtle-BSUyR8DV.js → turtle-BMKMfTrj.js} +0 -0
- /package/dist/web/assets/{typescript-2AZeIhCA.js → typescript-D38LfGSl.js} +0 -0
- /package/dist/web/assets/{typespec-DRZ0XiHC.js → typespec-EbgGJHV_.js} +0 -0
- /package/dist/web/assets/{typst-p1gfDr4O.js → typst-CQXV2SzX.js} +0 -0
- /package/dist/web/assets/{utils-IrnQujwR.js → utils-CwNUra6_.js} +0 -0
- /package/dist/web/assets/{v-B705HYgD.js → v-Ci1jObJJ.js} +0 -0
- /package/dist/web/assets/{vala-CyU0S4KW.js → vala-C_NdfqrY.js} +0 -0
- /package/dist/web/assets/{vb-DCWUzR_1.js → vb-K_r_h_s8.js} +0 -0
- /package/dist/web/assets/{vendor-xterm-MrmaYoD2.js → vendor-xterm-BtjgHRUe.js} +0 -0
- /package/dist/web/assets/{verilog-CrRE3TC7.js → verilog-DQPYLsZI.js} +0 -0
- /package/dist/web/assets/{vesper-BH5N5eRr.js → vesper-BrmzEV8s.js} +0 -0
- /package/dist/web/assets/{vhdl-CT1Mz-fu.js → vhdl-CjxQGaH2.js} +0 -0
- /package/dist/web/assets/{viml-B0LtAesb.js → viml-CTKJNQH1.js} +0 -0
- /package/dist/web/assets/{vitesse-black-DqQvxGCJ.js → vitesse-black-i-H_3p1i.js} +0 -0
- /package/dist/web/assets/{vitesse-dark-C6MRSe2N.js → vitesse-dark-DZC_Yy3_.js} +0 -0
- /package/dist/web/assets/{vitesse-light-B-8DQ5R9.js → vitesse-light-rf4kpmk8.js} +0 -0
- /package/dist/web/assets/{vyper-D7YgYuMk.js → vyper-BLnOw4Nf.js} +0 -0
- /package/dist/web/assets/{wasm-BgEp8ivq.js → wasm-CWeHvGNG.js} +0 -0
- /package/dist/web/assets/{wasm-Dj9JHuDf.js → wasm-DbLMmiW0.js} +0 -0
- /package/dist/web/assets/{wenyan-CLcU30u4.js → wenyan-CLwdRuzd.js} +0 -0
- /package/dist/web/assets/{wgsl-DEtNo0DR.js → wgsl-CBTDMVJR.js} +0 -0
- /package/dist/web/assets/{wikitext-CXiDN9zY.js → wikitext-CQHrF84e.js} +0 -0
- /package/dist/web/assets/{wit-0hROlx_P.js → wit-8xdbdipU.js} +0 -0
- /package/dist/web/assets/{wolfram-nhKFI8Qz.js → wolfram-tFwx32a_.js} +0 -0
- /package/dist/web/assets/{yaml-CNoUgoPD.js → yaml-BP8N91fU.js} +0 -0
- /package/dist/web/assets/{zenscript-BgGAyJ15.js → zenscript-B10Pj7JT.js} +0 -0
- /package/dist/web/assets/{zig-Be_I-6Rs.js → zig-BZKcTtrK.js} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/markdown-renderer-HPQE8ilD.js","assets/vendor-mermaid-CXxglerV.js","assets/rolldown-runtime-FhOqtrmT.js","assets/window-store-D0HbQ1pM.js","assets/react-D1Yg256j.js","assets/vendor-markdown-Ls5AcU91.js","assets/markdown-renderer-C1KVXiXr.js","assets/index-A3ripVe5.js","assets/window-pip-registry-CrCYYTTf.js","assets/panel-store-BmdcSBNb.js","assets/utils-IrnQujwR.js","assets/use-coarse-long-press-BmI_GVW5.js","assets/createLucideIcon-D8pyde1A.js","assets/button-DX32ffge.js","assets/vendor-ui-CaeeFO0B.js","assets/context-menu-CJL8L98s.js","assets/portal-container-context-DKymYOY-.js","assets/chevron-right-De-Wz5Lz.js","assets/circle-BCy0AUCo.js","assets/mobile-bottom-sheet-CmySDB6I.js","assets/use-visual-viewport-Bfl3Bxxb.js","assets/use-is-mobile-D1weanbj.js","assets/api-client-CEYCBt_0.js","assets/project-store-wWZ6bjwq.js","assets/ws-auth-D111jj32.js","assets/settings-store-Bsu_5zIU.js","assets/streaming-store-9XVmAMfV.js","assets/tab-store-1xYJb0gM.js","assets/apply-theme-BVXAUYoN.js","assets/resolve-theme-CMp5xxCW.js","assets/arrow-left-CyFcsyzD.js","assets/bot-D6sx11y0.js","assets/check-DN75Ucvz.js","assets/chevron-down-Dp0rpHb8.js","assets/chevron-up-8PbsNiJp.js","assets/clock-C1CQUQPZ.js","assets/sparkles-Dh-_J2Rd.js","assets/copy-BewHj66E.js","assets/database-Y3ESDK4-.js","assets/download-DG3_9xXy.js","assets/eye-off-GjXVuAOn.js","assets/eye-gWwaF4Lg.js","assets/loader-circle-DPMrnLQ2.js","assets/monitor-C835ucWH.js","assets/x-CxoBA0po.js","assets/index-B9Wbjl0o.css","assets/image-gallery-DZFo6X0Q.js","assets/run-in-terminal-Sb6TFU4f.js","assets/csv-preview-DiSiq6UJ.js","assets/csv-parser-0OmrzV4G.js","assets/lib-Bss7BrXJ.js","assets/image-preview-C7dCEQCx.js","assets/use-blob-url-BMtoAEL4.js","assets/file-exclamation-point-JzhTU2TX.js","assets/pdf-preview-QeXX_VpL.js","assets/video-preview-DzzFr0gI.js","assets/can-open-in-ppm-DyFXJvuW.js","assets/media-url-TGgkntUW.js","assets/audio-preview-C2PCzvr5.js","assets/docx-preview-Dg8lD3f3.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{S as t,x as n}from"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import{t as r}from"./createLucideIcon-D8pyde1A.js";import{t as i}from"./chevron-right-De-Wz5Lz.js";import{t as a}from"./code-DJgYrFzm.js";import{t as o}from"./database-Y3ESDK4-.js";import{t as s}from"./download-DG3_9xXy.js";import{t as c}from"./eye-gWwaF4Lg.js";import{t as l}from"./file-exclamation-point-JzhTU2TX.js";import{a as u,i as d,o as f,r as p,t as m}from"./glide-data-grid-lbUFJwCD.js";import{t as h}from"./loader-circle-DPMrnLQ2.js";import{t as ee}from"./shield-check-BsG3LV8i.js";import{t as te}from"./shield-off-7jKWpJBD.js";import{t as ne}from"./table-CRJsmfeg.js";import{t as re}from"./text-wrap-oiekm5SB.js";import{n as g,t as ie}from"./use-inline-blame-C1G-_NjC.js";import{t as _}from"./x-CxoBA0po.js";import{i as ae,n as v}from"./api-client-CEYCBt_0.js";import{q as y}from"./vendor-mermaid-CXxglerV.js";import{t as b}from"./settings-store-Bsu_5zIU.js";import{t as x}from"./utils-IrnQujwR.js";import"./portal-container-context-DKymYOY-.js";import{t as oe}from"./panel-store-BmdcSBNb.js";import"./window-store-D0HbQ1pM.js";import{i as S}from"./project-store-wWZ6bjwq.js";import{t as se}from"./tab-store-1xYJb0gM.js";import{t as C}from"./button-DX32ffge.js";import{$n as ce,$t as w,Cr as T,Dr as E,Er as le,Fn as ue,Gt as de,It as fe,K as pe,Kt as D,Lt as O,Qt as me,Rt as k,Sr as he,Tr as A,Wt as j,X as ge,Xn as _e,Xt as ve,Yt as ye,an as be,en as M,gn as N,gr as xe,kr as Se,q as Ce,qt as we,rn as Te,s as Ee,xr as De,yr as Oe,zt as P}from"./index-A3ripVe5.js";import{t as ke}from"./use-monaco-theme-Ck1i7NEe.js";import"./click-outside-container-XmmmdSm7.js";import{i as Ae,n as je,r as Me,t as Ne}from"./can-open-in-ppm-DyFXJvuW.js";var F=r(`redo-2`,[[`path`,{d:`m15 14 5-5-5-5`,key:`12vg1m`}],[`path`,{d:`M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13`,key:`6uklza`}]]),I=e(t(),1),L=n();function R(e){let t=e.startsWith(`/`),n=e.split(/[/\\]/).filter(Boolean),r=e=>{let r=(t?`/`:``)+n.slice(0,e+1).join(`/`);return/^[A-Za-z]:$/.test(r)?r+`/`:r},i=t?`/`:(n[0]??``)+`/`;return n.map((e,t)=>({name:e,absPath:r(t),parentDir:t>0?r(t-1):i}))}async function Pe(e){return(await v.get(`/api/fs/browse?path=${encodeURIComponent(e)}`)).entries}function Fe({filePath:e,projectName:t,tabId:n,className:r}){let{updateTab:a,openTab:o}=se(fe(e=>({updateTab:e.updateTab,openTab:e.openTab}))),s=(0,I.useRef)(null),c=(0,I.useMemo)(()=>R(e),[e]);(0,I.useEffect)(()=>{s.current&&(s.current.scrollLeft=s.current.scrollWidth)},[c]);let l=(0,I.useCallback)((e,r)=>{let i=x(e),s={filePath:e,projectName:t};r.metaKey||r.ctrlKey?o({type:`editor`,title:i,metadata:s,projectId:t,closable:!0}):a(n,{title:i,metadata:s})},[t,n,o,a]);return(0,L.jsx)(`div`,{ref:s,className:r,children:c.map((e,t)=>(0,L.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[t>0&&(0,L.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,L.jsx)(Ie,{segment:e,isLast:t===c.length-1,onFileClick:l})]},e.absPath))})}function Ie({segment:e,isLast:t,onFileClick:n}){let[r,i]=(0,I.useState)(null),[a,o]=(0,I.useState)(null);function s(t){t&&r===null&&Pe(e.parentDir).then(i).catch(e=>{o(e.message||`Failed to browse`),i([])})}return(0,L.jsxs)(O,{onOpenChange:s,children:[(0,L.jsx)(we,{asChild:!0,children:(0,L.jsx)(`button`,{type:`button`,className:`text-xs px-1 py-0.5 rounded hover:bg-muted transition-colors truncate max-w-[120px] ${t?`text-foreground font-medium`:`text-muted-foreground`}`,children:e.name})}),(0,L.jsx)(k,{align:`start`,className:`max-h-[300px] overflow-y-auto p-1`,children:r===null?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):a?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-destructive`,children:a}):r.length===0?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Empty`}):r.map(t=>(0,L.jsx)(Le,{entry:t,activePath:e.absPath,onFileClick:n},t.path))})]})}function Le({entry:e,activePath:t,onFileClick:n}){let r=ze(e.name,e.type===`directory`),i=e.path===t,[a,o]=(0,I.useState)(null);if(e.type===`directory`){function s(t){t&&a===null&&Pe(e.path).then(o).catch(()=>o([]))}return(0,L.jsxs)(j,{onOpenChange:s,children:[(0,L.jsxs)(D,{className:`text-xs gap-1.5 ${i?`bg-muted`:``}`,children:[(0,L.jsx)(r,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,L.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,L.jsx)(de,{className:`max-h-[300px] overflow-y-auto p-1`,children:a===null?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):a.length===0?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Empty`}):a.map(e=>(0,L.jsx)(Le,{entry:e,activePath:t,onFileClick:n},e.path))})]})}return(0,L.jsxs)(P,{className:`text-xs gap-1.5 cursor-pointer ${i?`bg-muted`:``}`,onClick:t=>n(e.path,t),children:[(0,L.jsx)(r,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,L.jsx)(`span`,{className:`truncate`,children:e.name})]})}var Re={ts:A,tsx:A,js:A,jsx:A,py:A,rs:A,go:A,html:A,css:A,scss:A,json:le,md:T,txt:T,yaml:he,yml:he};function ze(e,t){return t?Oe:Re[e.split(`.`).pop()?.toLowerCase()??``]??De}function Be(e,t){let n=[],r=e,i=``;for(let e=0;e<t.length;e++){let a=t[e],o=t.slice(0,e+1).join(`/`),s=r.find(e=>e.name===a);if(n.push({name:a,fullPath:o,node:s??null,siblings:r,parentPath:i}),s?.children)i=s.path,r=s.children;else{for(let r=e+1;r<t.length;r++)n.push({name:t[r],fullPath:t.slice(0,r+1).join(`/`),node:null,siblings:[],parentPath:t.slice(0,r).join(`/`)});break}}return n}function Ve(e){return[...e].sort((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1)}function He({filePath:e,projectName:t,tabId:n,className:r}){let a=N(e=>e.tree),{updateTab:o,openTab:s}=se(fe(e=>({updateTab:e.updateTab,openTab:e.openTab}))),c=S(e=>e.projects.find(e=>e.name===t)?.path??``),l=(0,I.useRef)(null),{prefixParts:u,relativePath:d,isExternal:f}=(0,I.useMemo)(()=>{let t=e.startsWith(`/`)?e.slice(1):e,n=c.startsWith(`/`)?c.slice(1):c;if(n&&t.startsWith(n+`/`)){let e=t.slice(n.length+1);return{prefixParts:n.split(`/`),relativePath:e,isExternal:!1}}return{prefixParts:[],relativePath:t,isExternal:/^(\/|[A-Za-z]:[/\\])/.test(e)}},[e,c]),p=(0,I.useMemo)(()=>Be(a,d.split(`/`).filter(Boolean)),[a,d]);(0,I.useEffect)(()=>{l.current&&(l.current.scrollLeft=l.current.scrollWidth)},[p]);function m(e,r){let i=x(e);r.metaKey||r.ctrlKey?s({type:`editor`,title:i,metadata:{filePath:e,projectName:t},projectId:t,closable:!0}):o(n,{title:i,metadata:{filePath:e,projectName:t}})}return f?(0,L.jsx)(Fe,{filePath:e,projectName:t,tabId:n,className:r}):(0,L.jsxs)(`div`,{ref:l,className:r,children:[u.map((e,t)=>(0,L.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[t>0&&(0,L.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,L.jsx)(`span`,{className:`text-xs text-muted-foreground px-1 py-0.5`,children:e})]},`prefix-${t}`)),p.map((e,n)=>(0,L.jsxs)(`div`,{className:`flex items-center shrink-0`,children:[(n>0||u.length>0)&&(0,L.jsx)(i,{className:`size-3 text-muted-foreground shrink-0 mx-0.5`}),(0,L.jsx)(z,{segment:e,isLast:n===p.length-1,projectName:t,onFileClick:m})]},e.fullPath))]})}function z({segment:e,isLast:t,projectName:n,onFileClick:r}){let i=N(e=>e.loadChildren),a=N(e=>e.loadedPaths),o=(0,I.useMemo)(()=>Ve(e.siblings),[e.siblings]),s=a.has(e.parentPath);function c(t){if(t&&!s){let t=e.parentPath.split(`/`).filter(Boolean);(async()=>{for(let e=0;e<=t.length;e++)await i(n,t.slice(0,e).join(`/`))})()}}return(0,L.jsxs)(O,{onOpenChange:c,children:[(0,L.jsx)(we,{asChild:!0,children:(0,L.jsx)(`button`,{type:`button`,className:`text-xs px-1 py-0.5 rounded hover:bg-muted transition-colors truncate max-w-[120px] ${t?`text-foreground font-medium`:`text-muted-foreground`}`,children:e.name})}),(0,L.jsx)(k,{align:`start`,className:`max-h-[300px] p-1`,children:o.length===0?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):o.map(t=>(0,L.jsx)(B,{node:t,projectName:n,activePath:e.fullPath,onFileClick:r},t.path))})]})}function B({node:e,projectName:t,activePath:n,onFileClick:r}){let i=ze(e.name,e.type===`directory`),a=e.path===n,o=N(e=>e.loadChildren),s=N(e=>e.loadedPaths);if(e.type===`directory`){let c=e.children??[],l=s.has(e.path);function u(n){n&&!l&&o(t,e.path)}return(0,L.jsxs)(j,{onOpenChange:u,children:[(0,L.jsxs)(D,{className:`text-xs gap-1.5 ${a?`bg-muted`:``}`,children:[(0,L.jsx)(i,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,L.jsx)(`span`,{className:`truncate`,children:e.name})]}),(0,L.jsx)(de,{className:`max-h-[300px] overflow-y-auto p-1`,children:c.length===0?(0,L.jsx)(P,{disabled:!0,className:`text-xs text-muted-foreground`,children:`Loading…`}):Ve(c).map(e=>(0,L.jsx)(B,{node:e,projectName:t,activePath:n,onFileClick:r},e.path))})]})}return(0,L.jsxs)(P,{className:`text-xs gap-1.5 cursor-pointer ${a?`bg-muted`:``}`,onSelect:e=>{},onClick:t=>{r(e.path,t)},children:[(0,L.jsx)(i,{className:`size-3.5 shrink-0 text-muted-foreground`}),(0,L.jsx)(`span`,{className:`truncate`,children:e.name})]})}function V({active:e,onClick:t,icon:n,label:r,title:i}){return(0,L.jsxs)(`button`,{type:`button`,title:i,onClick:t,className:`flex items-center gap-1 px-2 py-1 rounded text-xs transition-colors ${e?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`}`,children:[(0,L.jsx)(n,{className:`size-3`}),(0,L.jsx)(`span`,{className:`hidden sm:inline`,children:r})]})}function Ue({ext:e,mdMode:t,onMdModeChange:n,csvMode:r,onCsvModeChange:i,wordWrap:o,onToggleWordWrap:l,inlineBlame:u,onToggleInlineBlame:d,blameStale:f,onRefresh:p,refreshing:m,filePath:h,projectName:ee,className:te}){return(0,L.jsxs)(`div`,{className:te,children:[(e===`md`||e===`mdx`)&&n&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(V,{active:t===`edit`,onClick:()=>n(`edit`),icon:a,label:`Edit`}),(0,L.jsx)(V,{active:t===`preview`,onClick:()=>n(`preview`),icon:c,label:`Preview`})]}),e===`csv`&&i&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(V,{active:r===`table`,onClick:()=>i(`table`),icon:ne,label:`Table`}),(0,L.jsx)(V,{active:r===`raw`,onClick:()=>i(`raw`),icon:a,label:`Raw`})]}),(0,L.jsx)(V,{active:o,onClick:l,icon:re,label:`Wrap`}),d&&(0,L.jsx)(V,{active:u===!0,onClick:d,icon:g,label:`Blame`,title:u&&f?`Blame is hidden until this file is saved — the line numbers have moved`:`Inline blame (Alt+B)`}),p&&(0,L.jsxs)(`button`,{type:`button`,onClick:p,disabled:m,title:`Reload file from disk`,className:`flex items-center gap-1 px-2 py-1 rounded text-xs text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50`,children:[(0,L.jsx)(_e,{className:`size-3 ${m?`animate-spin`:``}`}),(0,L.jsx)(`span`,{className:`hidden sm:inline`,children:`Refresh`})]}),h&&ee&&(0,L.jsx)(V,{active:!1,onClick:()=>Te(ee,h),icon:s,label:`Download`})]})}var H=[{id:`plaintext`,label:`Plain Text`},{id:`javascript`,label:`JavaScript`},{id:`typescript`,label:`TypeScript`},{id:`sql`,label:`SQL`},{id:`json`,label:`JSON`},{id:`xml`,label:`XML`},{id:`html`,label:`HTML`},{id:`css`,label:`CSS`},{id:`python`,label:`Python`},{id:`markdown`,label:`Markdown`},{id:`yaml`,label:`YAML`},{id:`shell`,label:`Shell`}];function We({value:e,onChange:t}){return(0,L.jsxs)(`div`,{className:`shrink-0 flex items-center gap-1 px-2 border-l border-border`,children:[(0,L.jsx)(A,{className:`size-3 text-muted-foreground`}),(0,L.jsx)(`select`,{value:e,onChange:e=>t(e.target.value),className:`h-5 text-[10px] bg-transparent border border-border rounded px-1 text-foreground outline-none max-w-[120px]`,title:`Select editor language`,children:H.map(e=>(0,L.jsx)(`option`,{value:e.id,children:e.label},e.id))})]})}function Ge({open:e,defaultName:t,content:n,onSave:r,onCancel:i}){let[a,o]=(0,I.useState)(t),[s,c]=(0,I.useState)(!1),[l,u]=(0,I.useState)(``),d=S(e=>e.activeProject),f=(0,I.useCallback)(()=>{let e=a.trim();if(!e){u(`Filename cannot be empty`);return}if(/[/\\]/.test(e)){u(`Filename cannot contain / or \\`);return}u(``),c(!0)},[a]),p=(0,I.useCallback)(e=>{let t=e.includes(`\\`)?`\\`:`/`;r(e.endsWith(t)?`${e}${a.trim()}`:`${e}${t}${a.trim()}`,n)},[a,n,r]);return s?(0,L.jsx)(Ce,{open:!0,mode:`folder`,root:d?.path,title:`Save "${a.trim()}" to...`,onSelect:p,onCancel:()=>c(!1)}):(0,L.jsx)(ye,{open:e,onOpenChange:e=>{e||i()},children:(0,L.jsxs)(ve,{className:`sm:max-w-md`,children:[(0,L.jsx)(w,{children:(0,L.jsx)(M,{children:`Save As`})}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-2 py-2`,children:[(0,L.jsx)(`label`,{className:`text-sm text-muted-foreground`,children:`Filename`}),(0,L.jsx)(ge,{value:a,onChange:e=>{o(e.target.value),u(``)},onKeyDown:e=>{e.key===`Enter`&&f()},placeholder:`e.g. my-file.ts`,autoFocus:!0}),l&&(0,L.jsx)(`p`,{className:`text-xs text-destructive`,children:l})]}),(0,L.jsxs)(me,{children:[(0,L.jsx)(C,{variant:`outline`,onClick:i,children:`Cancel`}),(0,L.jsx)(C,{onClick:f,children:`Choose Folder...`})]})]})})}var U=typeof window<`u`&&window.isSecureContext,W=[`(`,`)`,`{`,`}`,`[`,`]`,`<`,`>`,`;`,`:`,`=`,`"`,`'`,"`",`/`,`\\`,`_`,`#`],Ke=`px-2 py-1.5 rounded text-xs min-w-[36px] min-h-[32px] bg-surface-elevated text-text-primary active:bg-primary active:text-primary-foreground transition-colors select-none`,G=`px-3 py-1.5 rounded text-xs font-mono min-w-[36px] min-h-[32px] bg-surface-elevated text-text-primary active:bg-primary active:text-primary-foreground transition-colors select-none`,K=`w-px h-5 bg-border mx-0.5 shrink-0`;function qe({editorRef:e,readOnly:t}){let n=(0,I.useCallback)(()=>e.current,[e]),r=(0,I.useCallback)(e=>{let t=n();if(!t)return;t.focus();let r=t.getSelection();r&&t.executeEdits(`mobile-toolbar`,[{range:r,text:e}])},[n]),[i,a]=(0,I.useState)(!1),o=(0,I.useRef)(null),s=(0,I.useCallback)(async()=>{try{let e=await navigator.clipboard.readText();e&&r(e)}catch{}},[r]),c=(0,I.useCallback)(()=>{a(!0),requestAnimationFrame(()=>o.current?.focus())},[]),l=(0,I.useCallback)(e=>{e.preventDefault();let t=e.clipboardData.getData(`text/plain`);t&&(a(!1),r(t))},[r]),u=(0,I.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`undo`,null))},[n]),d=(0,I.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`redo`,null))},[n]),f=(0,I.useCallback)(()=>{let e=n();e&&(e.focus(),e.trigger(`mobile-toolbar`,`tab`,null))},[n]);return t?null:(0,L.jsxs)(`div`,{className:`shrink-0 border-t border-border bg-surface`,children:[!U&&i&&(0,L.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1.5 border-b border-border bg-muted/50`,children:[(0,L.jsx)(`textarea`,{ref:o,onPaste:l,placeholder:`Long-press here → Paste`,className:`flex-1 h-8 rounded border border-border bg-background text-foreground text-xs px-2 py-1.5 resize-none focus:outline-none focus:ring-1 focus:ring-primary`}),(0,L.jsx)(`button`,{type:`button`,onClick:()=>a(!1),className:`p-1.5 rounded text-muted-foreground active:bg-muted transition-colors`,children:(0,L.jsx)(_,{size:14})})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1.5 overflow-x-auto`,children:[(0,L.jsx)(`button`,{type:`button`,onClick:U?s:c,className:Ke,title:`Paste`,children:(0,L.jsx)(Se,{size:14})}),(0,L.jsx)(`button`,{type:`button`,onClick:u,className:Ke,title:`Undo`,children:(0,L.jsx)(ue,{size:14})}),(0,L.jsx)(`button`,{type:`button`,onClick:d,className:Ke,title:`Redo`,children:(0,L.jsx)(F,{size:14})}),(0,L.jsx)(`div`,{className:K}),(0,L.jsx)(`button`,{type:`button`,onClick:f,className:G,children:`Tab`}),(0,L.jsx)(`div`,{className:K}),W.map(e=>(0,L.jsx)(`button`,{type:`button`,onClick:()=>r(e),className:G,children:e},e))]})]})}var Je=(0,I.lazy)(()=>y(()=>import(`./markdown-renderer-HPQE8ilD.js`).then(e=>({default:e.MarkdownRenderer})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47]))),Ye=(0,I.lazy)(()=>y(()=>import(`./csv-preview-DiSiq6UJ.js`).then(e=>({default:e.CsvPreview})),__vite__mapDeps([48,2,7,1,3,4,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,49,50]))),Xe=(0,I.lazy)(()=>y(()=>import(`./image-preview-C7dCEQCx.js`).then(e=>({default:e.ImagePreview})),__vite__mapDeps([51,52,2,22,14,5,53,12,42]))),Ze=(0,I.lazy)(()=>y(()=>import(`./pdf-preview-QeXX_VpL.js`).then(e=>({default:e.PdfPreview})),__vite__mapDeps([54,2,7,1,3,4,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,53]))),Qe=(0,I.lazy)(()=>y(()=>import(`./video-preview-DzzFr0gI.js`).then(e=>({default:e.VideoPreview})),__vite__mapDeps([55,2,7,1,3,4,5,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,56,57,53]))),$e=(0,I.lazy)(()=>y(()=>import(`./audio-preview-C2PCzvr5.js`).then(e=>({default:e.AudioPreview})),__vite__mapDeps([58,2,22,14,5,57,10,12,53]))),et=(0,I.lazy)(()=>y(()=>import(`./docx-preview-Dg8lD3f3.js`).then(e=>({default:e.DocxPreview})),__vite__mapDeps([59,2,22,14,5,53,12,42])));function tt(e){return e.split(`.`).pop()?.toLowerCase()??``}function nt(e){return{js:`javascript`,jsx:`javascript`,ts:`typescript`,tsx:`typescript`,py:`python`,html:`html`,css:`css`,scss:`scss`,json:`json`,md:`markdown`,mdx:`markdown`,yaml:`yaml`,yml:`yaml`,sh:`shell`,bash:`shell`,sql:`sql`}[tt(e)]??`plaintext`}var rt=(0,I.memo)(function({metadata:e,tabId:t}){let n=e?.filePath,r=e?.projectName,i=e?.inlineContent,a=e?.inlineLanguage,[s,c]=(0,I.useState)(i??null),[m,ne]=(0,I.useState)(`utf-8`),[re,g]=(0,I.useState)(!0),[_,y]=(0,I.useState)(null),[S,C]=(0,I.useState)(!1),w=(0,I.useRef)(null),T=(0,I.useRef)(``),E=(0,I.useRef)(null),[le,ue]=(0,I.useState)(null),{tabs:de,updateTab:D}=se(fe(e=>({tabs:e.tabs,updateTab:e.updateTab}))),{wordWrap:O,toggleWordWrap:me}=b(fe(e=>({wordWrap:e.wordWrap,toggleWordWrap:e.toggleWordWrap}))),k=b(e=>e.inlineBlame),he=b(e=>e.toggleInlineBlame),A=ke(),j=e?.isUntitled===!0,ge=e?.unsavedContent,[_e,ve]=(0,I.useState)(!1),ye=de.find(e=>e.id===t),M=n?tt(n):``,N=je.has(M),xe=M===`pdf`,Se=M===`docx`,Ce=Ae.has(M),we=Ne.has(M),Te=Me.has(M),De=M===`md`||M===`mdx`,Oe=M===`csv`,P=e?.language,F=a??P??nt(n??``),R=F===`sql`,[Pe,Fe]=(0,I.useState)(`preview`),[Ie,Le]=(0,I.useState)(`table`),{connections:Re,cachedTables:ze,refreshTables:Be,updateConnection:Ve}=pe(),z=n?`ppm:sql-conn:${n}`:t?`ppm:sql-conn:tab:${t}`:null,[B,V]=(0,I.useState)(()=>{if(!z)return null;let e=localStorage.getItem(z);return e?Number(e):null}),H=(0,I.useRef)(null),U=(0,I.useRef)(null),W=(0,I.useMemo)(()=>Re.find(e=>e.id===B)??null,[Re,B]),Ke=i!=null&&(a===`json`||a===`xml`),[G,K]=(0,I.useState)(!1),Je=(0,I.useCallback)(()=>{if(i)if(G)c(i),K(!1);else{let e=i.trimStart();if(a===`json`)try{c(JSON.stringify(JSON.parse(e),null,2)),K(!0)}catch{}else if(a===`xml`){let t=0;c(e.replace(/(>)(<)(\/*)/g,`$1
|
|
3
|
-
$2$3`).split(`
|
|
4
|
-
`).map(e=>{let n=e.trim();n.startsWith(`</`)&&(t=Math.max(0,t-1));let r=` `.repeat(t)+n;return n.startsWith(`<`)&&!n.startsWith(`</`)&&!n.endsWith(`/>`)&&!n.includes(`</`)&&t++,r}).join(`
|
|
5
|
-
`)),K(!0)}}},[i,a,G]),rt=(0,I.useCallback)(e=>{V(e),z&&localStorage.setItem(z,String(e)),Be(e).catch(()=>{})},[z,Be]),q=(0,I.useCallback)(n=>{t&&D(t,{metadata:{...e,language:n}})},[t,e,D]),Y=(0,I.useMemo)(()=>{if(!R||!B)return;let e=(ze.get(B)??[]).map(e=>({name:e.tableName,schema:e.schemaName}));if(e.length!==0)return{tables:e,getColumns:async(e,t)=>v.get(`/api/db/connections/${B}/schema?table=${encodeURIComponent(e)}${t?`&schema=${encodeURIComponent(t)}`:``}`)}},[R,B,ze]);(0,I.useEffect)(()=>{if(!(!H.current||!Y))return U.current?.dispose(),p(),U.current=H.current.languages.registerCompletionItemProvider(`sql`,d(H.current,Y)),()=>{U.current?.dispose()}},[Y]);let ot=se(e=>e.openTab),[st,ct]=(0,I.useState)(null),[lt,ut]=(0,I.useState)(null),[dt,ft]=(0,I.useState)(!1),[pt,mt]=(0,I.useState)(``),ht=(0,I.useCallback)(async e=>{if(W){ft(!0),ut(null),mt(e);try{ct(await v.post(`/api/db/connections/${W.id}/query`,{sql:e}))}catch(e){ut(e.message),ct(null)}finally{ft(!1)}}},[W]),gt=(0,I.useCallback)(()=>{!W||!pt||ot({type:`database`,title:`${W.name} · Query`,projectId:null,closable:!0,metadata:{connectionId:W.id,connectionName:W.name,dbType:W.type,initialSql:pt}})},[W,ot,pt]),_t=(0,I.useCallback)(()=>{if(!E.current||!W)return;let e=E.current,t=e.getSelection();ht(t&&!t.isEmpty()?e.getModel()?.getValueInRange(t)??e.getValue():e.getValue())},[W,ht]),vt=typeof window<`u`&&`ontouchstart`in window,yt=(0,I.useRef)(null),[bt,xt]=(0,I.useState)(null);(0,I.useEffect)(()=>{if(!vt)return;let e=window.visualViewport;if(!e)return;let t=()=>{let t=yt.current;if(!t)return;let n=t.getBoundingClientRect().top;xt(e.height-Math.max(0,n))};return e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t),()=>{e.removeEventListener(`resize`,t),e.removeEventListener(`scroll`,t)}},[vt]),(0,I.useEffect)(()=>be(yt.current,()=>E.current?.layout()),[re,_]);let X=(0,I.useRef)([]),St=(0,I.useRef)(ht);St.current=ht,(0,I.useEffect)(()=>()=>{X.current.forEach(e=>e.dispose()),X.current=[]},[]),(0,I.useEffect)(()=>{Te&&t&&D(t,{type:`sqlite`})},[Te,t,D]);let Z=n?/^(\/|[A-Za-z]:[/\\])/.test(n):!1;(0,I.useEffect)(()=>{if(i!=null){g(!1);return}if(j){c(ge??``),T.current=ge??``,g(!1),ge&&C(!0);return}if(!n||!Z&&!r)return;if(N||xe||Se||Ce||we){g(!1);return}g(!0),y(null);let e=Z?`/api/fs/read?path=${encodeURIComponent(n)}`:`${ae(r)}/files/read?path=${encodeURIComponent(n)}`;return v.get(e).then(e=>{c(e.content),e.encoding&&ne(e.encoding),T.current=e.content,g(!1)}).catch(e=>{y(e instanceof Error?e.message:`Failed to load file`),g(!1)}),()=>{w.current&&clearTimeout(w.current)}},[n,r,N,xe,Se,Z,j]);let[Ct,wt]=(0,I.useState)(!1),Tt=(0,I.useCallback)(()=>{if(!n||i!=null||j||!Z&&!r)return;let e=Z?`/api/fs/read?path=${encodeURIComponent(n)}`:`${ae(r)}/files/read?path=${encodeURIComponent(n)}`;wt(!0),v.get(e).then(e=>{c(e.content),T.current=e.content,e.encoding&&ne(e.encoding),C(!1),y(null)}).catch(e=>y(e instanceof Error?e.message:`Failed to reload file`)).finally(()=>wt(!1))},[n,r,Z,i,j]),Et=(0,I.useRef)(S);Et.current=S,(0,I.useEffect)(()=>{if(!n||!r||i!=null||j)return;let e=e=>{let t=e.detail;if(t.projectName!==r||t.path!==n||Et.current)return;let i=Z?`/api/fs/read?path=${encodeURIComponent(n)}`:`${ae(r)}/files/read?path=${encodeURIComponent(n)}`;v.get(i).then(e=>{e.content!==T.current&&(c(e.content),T.current=e.content,e.encoding&&ne(e.encoding))}).catch(()=>{})};return window.addEventListener(`file:changed`,e),()=>window.removeEventListener(`file:changed`,e)},[n,r,Z,i,j]),(0,I.useEffect)(()=>{if(!ye||i!=null)return;let t=j?`Untitled-${e?.untitledNumber??1}`:n?x(n):`Untitled`,r=S?`${t} \u25CF`:t;ye.title!==r&&D(ye.id,{title:r})},[S]);let Dt=!j&&i==null&&!!n&&!!r,Ot=ie({editor:le?.editor??null,monaco:le?.monaco??null,projectName:r,filePath:Dt?n:void 0,enabled:k&&Dt}),kt=(0,I.useCallback)(async e=>{if(n&&!(!Z&&!r))try{Z?await v.put(`/api/fs/write`,{path:n,content:e}):await v.put(`${ae(r)}/files/write`,{path:n,content:e}),C(!1),Ot.refresh()}catch{}},[n,r,Z,Ot.refresh]);function At(n){let r=n??``;c(r),T.current=r,C(!0),w.current&&clearTimeout(w.current),j?w.current=setTimeout(()=>{t&&D(t,{metadata:{...e,unsavedContent:T.current}})},2e3):w.current=setTimeout(()=>kt(T.current),1e3)}let jt=(0,I.useCallback)(async(e,n)=>{try{if(w.current&&clearTimeout(w.current),await v.put(`/api/fs/write`,{path:e,content:n}),t){let{closeTab:n,openTab:r}=oe.getState();n(t),r({type:`editor`,title:x(e),projectId:null,metadata:{filePath:e},closable:!0})}C(!1),ve(!1)}catch{}},[t]),Q=e?.lineNumber,$=e?.endLine,Mt=e?.revealAt,Nt=(0,I.useCallback)(()=>{let e=E.current;if(!(!e||!Q||Q<=0)){if(e.revealLineInCenter(Q),e.setPosition({lineNumber:Q,column:1}),$&&$>=Q){let t=e.getModel(),n=t?.getLineCount()??Q,r=Math.min($,n),i=t?.getLineMaxColumn(r)??1;e.setSelection({startLineNumber:Q,startColumn:1,endLineNumber:r,endColumn:i})}e.focus()}},[Q,$]);(0,I.useEffect)(()=>{Mt!=null&&Nt()},[Mt,Nt]);let Pt=(0,I.useCallback)((e,t)=>{if(E.current=e,H.current=t,ue({editor:e,monaco:t}),Q&&Q>0&&setTimeout(()=>Nt(),100),j&&e.addCommand(t.KeyMod.CtrlCmd|t.KeyCode.KeyS,()=>ve(!0)),e.addCommand(t.KeyMod.Alt|t.KeyCode.KeyZ,()=>b.getState().toggleWordWrap()),e.addCommand(t.KeyMod.Alt|t.KeyCode.KeyB,()=>b.getState().toggleInlineBlame()),t.languages.typescript.typescriptDefaults.setDiagnosticsOptions({noSemanticValidation:!0,noSyntaxValidation:!0,noSuggestionDiagnostics:!0}),t.languages.typescript.javascriptDefaults.setDiagnosticsOptions({noSemanticValidation:!0,noSyntaxValidation:!0,noSuggestionDiagnostics:!0}),Y&&(U.current?.dispose(),U.current=t.languages.registerCompletionItemProvider(`sql`,d(t,Y))),R){e.addAction({id:`run-sql-at-cursor`,label:`Run Statement at Cursor`,keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.Enter],run:e=>{let t=e.getPosition();if(!t)return;let n=u(e.getValue(),t.lineNumber);n&&St.current(n)}}),X.current.forEach(e=>e.dispose()),X.current=[];let n=e.getModel(),r=e.addCommand(0,(e,t)=>{t&&St.current(t)});if(r&&n){let e=t.languages.registerCodeLensProvider(`sql`,{provideCodeLenses:e=>{if(e!==n)return{lenses:[],dispose:()=>{}};let t=[],i=(e,n,i=`▷ Run`)=>{let a=n.trim();a&&t.push({range:{startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1},command:{id:r,title:i,arguments:[a]}})},a=/^(BEGIN|COMMIT|ROLLBACK|END)(;|\s|$)/i,o=-1,s=[];for(let{sql:t,startLine:n}of f(e.getValue())){let e=/^BEGIN(;|\s|$)/i.test(t),r=/^(COMMIT|ROLLBACK|END)(;|\s|$)/i.test(t);o===-1&&e?(o=n,s=[t]):o>-1?(s.push(t),!r&&!a.test(t)&&i(n,t),r&&(i(o,s.join(`
|
|
6
|
-
`),`▷ Run Transaction`),o=-1,s=[])):i(n,t)}return o>-1&&s.length>1&&i(o,s.join(`
|
|
7
|
-
`),`▷ Run Transaction`),{lenses:t,dispose:()=>{}}}});X.current.push(e);let i=t.languages.registerFoldingRangeProvider(`sql`,{provideFoldingRanges:e=>{if(e!==n)return[];let r=[],i=e.getLineCount(),a=[];for(let n=1;n<=i;n++){let i=e.getLineContent(n).trim();if(/^BEGIN(;|\s|$)/i.test(i))a.push(n);else if(/^(COMMIT|ROLLBACK|END)(;|\s|$)/i.test(i)&&a.length>0){let e=a.pop();r.push({start:e,end:n,kind:t.languages.FoldingRangeKind.Region})}}return r}});X.current.push(i)}}},[Y,R]);if(!i&&!j&&(!n||!Z&&!r))return(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full text-text-secondary text-sm`,children:`No file selected.`});if(re)return(0,L.jsxs)(`div`,{className:`flex items-center justify-center h-full gap-2 text-text-secondary`,children:[(0,L.jsx)(h,{className:`size-5 animate-spin`}),(0,L.jsx)(`span`,{className:`text-sm`,children:`Loading file...`})]});if(_)return(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full text-error text-sm`,children:_});if(N)return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(J,{}),children:(0,L.jsx)(Xe,{filePath:n,projectName:r})});if(xe)return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(J,{}),children:(0,L.jsx)(Ze,{filePath:n,projectName:r})});if(Se)return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(J,{}),children:(0,L.jsx)(et,{filePath:n,projectName:r})});if(Ce)return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(J,{}),children:(0,L.jsx)(Qe,{filePath:n,projectName:r})});if(we)return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(J,{}),children:(0,L.jsx)($e,{filePath:n,projectName:r})});if(m===`base64`)return(0,L.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-text-secondary`,children:[(0,L.jsx)(l,{className:`size-10 text-text-subtle`}),(0,L.jsx)(`p`,{className:`text-sm`,children:`This file is a binary format and cannot be displayed.`}),(0,L.jsx)(`p`,{className:`text-xs text-text-subtle`,children:n})]});let Ft=R?(0,L.jsxs)(`div`,{className:`shrink-0 flex items-center gap-1 px-2 border-l border-border`,children:[(0,L.jsx)(o,{className:`size-3 text-muted-foreground`}),(0,L.jsxs)(`select`,{value:B??``,onChange:e=>{let t=Number(e.target.value);t&&rt(t)},className:`h-5 text-[10px] bg-transparent border border-border rounded px-1 text-foreground outline-none max-w-[140px]`,title:`Select connection for autocomplete`,children:[(0,L.jsx)(`option`,{value:``,children:`Connection…`}),Re.map(e=>(0,L.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,L.jsx)(`button`,{type:`button`,onClick:_t,disabled:!W,className:`p-0.5 rounded text-muted-foreground hover:text-primary disabled:opacity-30 transition-colors`,title:`Run SQL`,children:(0,L.jsx)(ce,{className:`size-3.5`})}),W&&(0,L.jsx)(`button`,{type:`button`,onClick:()=>Ve(W.id,{readonly:W.readonly?0:1}),className:`flex items-center gap-0.5 px-1 py-0.5 rounded text-[10px] transition-colors ${W.readonly?`text-muted-foreground hover:text-foreground`:`bg-destructive/15 text-destructive`}`,title:W.readonly?`Readonly — click to allow writes`:`WRITE mode — click to enable readonly`,children:W.readonly?(0,L.jsx)(ee,{className:`size-3`}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(te,{className:`size-3`}),(0,L.jsx)(`span`,{className:`font-medium`,children:`WRITE`})]})})]}):null;return(0,L.jsxs)(`div`,{ref:yt,className:`flex flex-col h-full w-full overflow-hidden`,style:bt?{height:`${bt}px`,maxHeight:`${bt}px`}:void 0,children:[i!=null&&Ke&&(0,L.jsx)(`div`,{className:`flex items-center h-7 border-b border-border bg-background shrink-0 px-2 gap-2`,children:(0,L.jsx)(`button`,{type:`button`,onClick:Je,className:`text-[10px] px-2 py-0.5 rounded border border-border hover:bg-muted transition-colors text-foreground`,children:G?`Raw`:`Beautify`})}),n&&r&&t&&(0,L.jsxs)(`div`,{className:`hidden md:flex items-center h-7 border-b border-border bg-background shrink-0`,children:[(0,L.jsx)(He,{filePath:n,projectName:r,tabId:t,className:`flex items-center flex-1 min-w-0 overflow-x-auto scrollbar-none px-2 gap-0.5`}),(0,L.jsx)(We,{value:F,onChange:q}),Ft,(0,L.jsx)(Ue,{ext:M,mdMode:Pe,onMdModeChange:Fe,csvMode:Ie,onCsvModeChange:Le,wordWrap:O,onToggleWordWrap:me,inlineBlame:k,onToggleInlineBlame:Dt?he:void 0,blameStale:Ot.stale,onRefresh:Tt,refreshing:Ct,filePath:n,projectName:r,className:`shrink-0 flex items-center gap-1 px-2`})]}),i==null&&t&&(j||n&&!r)&&(0,L.jsxs)(`div`,{className:`hidden md:flex items-center h-7 border-b border-border bg-background shrink-0 px-2`,children:[(0,L.jsx)(`span`,{className:`text-xs text-muted-foreground truncate flex-1`,children:j?`Untitled-${e?.untitledNumber??1}`:n?x(n):`Untitled`}),(0,L.jsx)(We,{value:F,onChange:q}),Ft]}),Oe&&Ie===`table`?(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,L.jsx)(h,{className:`size-5 animate-spin text-text-subtle`})}),children:(0,L.jsx)(Ye,{content:s??``,onContentChange:At,wordWrap:O})}):De&&Pe===`preview`?(0,L.jsx)(at,{content:s??``}):(0,L.jsx)(`div`,{className:`flex-1 overflow-hidden min-h-0`,children:(0,L.jsx)(Ee,{height:`100%`,language:F,value:s??``,onChange:i==null?At:void 0,onMount:Pt,theme:A,options:{fontSize:13,fontFamily:`Menlo, Monaco, Consolas, monospace`,wordWrap:O?`on`:`off`,minimap:{enabled:!1},scrollBeyondLastLine:!1,automaticLayout:!0,lineNumbers:`on`,folding:!0,bracketPairColorization:{enabled:!0},readOnly:i!=null},loading:(0,L.jsx)(h,{className:`size-5 animate-spin text-text-subtle`})},F)}),R&&(st||lt||dt)&&(0,L.jsx)(it,{result:st,error:lt,loading:dt,connName:W?.name,onClose:()=>{ct(null),ut(null),ft(!1)},onOpenInTab:gt}),vt&&(0,L.jsx)(qe,{editorRef:E,readOnly:i!=null}),_e&&(0,L.jsx)(Ge,{open:_e,defaultName:`Untitled-${e?.untitledNumber??1}`,content:T.current,onSave:jt,onCancel:()=>ve(!1)})]})}),q=()=>{};function it({result:e,error:t,loading:n,connName:r,onClose:i,onOpenInTab:a}){let s=(0,I.useMemo)(()=>e?.changeType===`select`&&e.rows.length>0?{columns:e.columns,rows:e.rows,total:e.rows.length,limit:e.rows.length}:null,[e]),c=(0,I.useMemo)(()=>(e?.columns??[]).map(e=>({name:e,type:`text`,nullable:!0,pk:!1,defaultValue:null})),[e?.columns]),[l,u]=(0,I.useState)(250),d=(0,I.useCallback)(e=>{e.preventDefault();let t=e.clientY,n=l,r=e.currentTarget.ownerDocument,i=e=>u(Math.max(80,n+(t-e.clientY))),a=()=>{r.removeEventListener(`mousemove`,i),r.removeEventListener(`mouseup`,a)};r.addEventListener(`mousemove`,i),r.addEventListener(`mouseup`,a)},[l]);return(0,L.jsxs)(`div`,{className:`shrink-0 border-t border-border flex flex-col`,style:{height:l},children:[(0,L.jsx)(`div`,{onMouseDown:d,className:`shrink-0 h-1.5 cursor-row-resize bg-border/50 hover:bg-primary/30 flex items-center justify-center transition-colors`,children:(0,L.jsx)(xe,{className:`size-3 text-muted-foreground/50`})}),(0,L.jsxs)(`div`,{className:`flex items-center gap-2 px-2 py-1 bg-muted/50 border-b border-border shrink-0`,children:[(0,L.jsx)(o,{className:`size-3 text-muted-foreground`}),(0,L.jsxs)(`span`,{className:`text-xs font-medium text-foreground truncate flex-1`,children:[r?`${r} · Results`:`Query Results`,e?.executionTimeMs!=null&&(0,L.jsxs)(`span`,{className:`text-muted-foreground ml-1.5 font-normal`,children:[e.executionTimeMs,`ms`]})]}),(0,L.jsxs)(`button`,{type:`button`,onClick:a,title:`Open in DB Viewer tab`,className:`flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] text-muted-foreground hover:text-foreground hover:bg-muted transition-colors`,children:[(0,L.jsx)(E,{className:`size-3`}),(0,L.jsx)(`span`,{className:`hidden sm:inline`,children:`Open in Tab`})]}),(0,L.jsx)(`button`,{type:`button`,onClick:i,title:`Close results`,className:`p-0.5 rounded text-muted-foreground hover:text-foreground transition-colors`,children:(0,L.jsx)(_,{className:`size-3`})})]}),(0,L.jsxs)(`div`,{className:`flex-1 overflow-hidden min-h-0`,children:[n&&(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,L.jsx)(h,{className:`size-4 animate-spin text-muted-foreground`})}),t&&(0,L.jsx)(`div`,{className:`px-3 py-2 text-xs text-destructive bg-destructive/5`,children:t}),e?.changeType===`modify`&&(0,L.jsxs)(`div`,{className:`px-3 py-2 text-xs text-success`,children:[e.rowsAffected,` row(s) affected`]}),s&&(0,L.jsx)(m,{columns:s.columns,rows:s.rows,total:s.total,limit:s.limit,schema:c,loading:!1,page:1,onPageChange:q,onCellUpdate:q,readOnly:!0,orderBy:null,orderDir:`ASC`,onToggleSort:q,connectionName:r}),e?.changeType===`select`&&e.rows.length===0&&(0,L.jsx)(`div`,{className:`px-3 py-2 text-xs text-muted-foreground`,children:`No results`})]})]})}function J(){return(0,L.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,L.jsx)(h,{className:`size-5 animate-spin text-text-subtle`})})}function at({content:e}){return(0,L.jsx)(I.Suspense,{fallback:(0,L.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded m-4`}),children:(0,L.jsx)(Je,{content:e,className:`flex-1 overflow-auto p-4`})})}export{rt as CodeEditor};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{S as t}from"./vendor-markdown-Ls5AcU91.js";import{ft as n}from"./vendor-ui-CaeeFO0B.js";import{g as r,h as i,i as a,m as o,n as s,t as c}from"./click-outside-container-XmmmdSm7.js";import{t as l}from"./dist-BuUB-Gou.js";var u=e(n(),1),d=e(t(),1),f=()=>e=>e.targetX,p=()=>e=>e.targetY,m=()=>e=>e.targetWidth,h=()=>e=>e.targetHeight,g=()=>e=>e.targetY+10,_=()=>e=>Math.max(0,(e.targetHeight-28)/2),v=l(`div`)({name:`DataGridOverlayEditorStyle`,class:`gdg-d19meir1`,propsAsIs:!1,vars:{"d19meir1-0":[p(),`px`],"d19meir1-1":[f(),`px`],"d19meir1-2":[m(),`px`],"d19meir1-3":[h(),`px`],"d19meir1-4":[g(),`px`],"d19meir1-5":[_(),`px`]}});function y(){let[e,t]=d.useState();return[e??void 0,t]}function b(){let[e,t]=y(),[n,r]=d.useState(0),[i,a]=d.useState(!0);return d.useLayoutEffect(()=>{if(e===void 0||!(`IntersectionObserver`in window))return;let t=new IntersectionObserver(e=>{e.length!==0&&a(e[0].isIntersecting)},{threshold:1});return t.observe(e),()=>t.disconnect()},[e]),d.useEffect(()=>{if(i||e===void 0)return;let t,n=()=>{let{right:i}=e.getBoundingClientRect();r(e=>Math.min(e+window.innerWidth-i-10,0)),t=requestAnimationFrame(n)};return t=requestAnimationFrame(n),()=>{t!==void 0&&cancelAnimationFrame(t)}},[e,i]),{ref:t,style:d.useMemo(()=>({transform:`translateX(${n}px)`}),[n])}}var x=e=>{let{target:t,content:n,onFinishEditing:l,forceEditMode:f,initialValue:p,imageEditorOverride:m,markdownDivCreateNode:h,highlight:g,className:_,theme:y,id:x,cell:S,bloom:C,validateCell:w,getCellRenderer:T,provideEditor:E,isOutsideClick:D}=e,[O,k]=d.useState(f?n:void 0),A=d.useRef(O??n);A.current=O??n;let[j,M]=d.useState(()=>w===void 0?!0:!(o(n)&&w?.(S,n,A.current)===!1)),N=d.useCallback((e,t)=>{l(j?e:void 0,t)},[j,l]),P=d.useCallback(e=>{if(w!==void 0&&e!==void 0&&o(e)){let t=w(S,e,A.current);t===!1?M(!1):(typeof t==`object`&&(e=t),M(!0))}k(e)},[S,w]),F=d.useRef(!1),I=d.useRef(void 0),L=d.useCallback(()=>{N(O,[0,0]),F.current=!0},[O,N]),R=d.useCallback((e,t)=>{N(e,t??I.current??[0,0]),F.current=!0},[N]),z=d.useCallback(async e=>{let t=!1;e.key===`Escape`?(e.stopPropagation(),e.preventDefault(),I.current=[0,0]):e.key===`Enter`&&!e.shiftKey?(e.stopPropagation(),e.preventDefault(),I.current=[0,1],t=!0):e.key===`Tab`&&(e.stopPropagation(),e.preventDefault(),I.current=[e.shiftKey?-1:1,0],t=!0),window.setTimeout(()=>{!F.current&&I.current!==void 0&&(N(t?O:void 0,I.current),F.current=!0)},0)},[N,O]),B=O??n,[V,H]=d.useMemo(()=>{if(i(n))return[];let e=E?.(n);return e===void 0?[T(n)?.provideEditor?.(n),!1]:[e,!1]},[n,T,E]),{ref:U,style:W}=b(),G=!0,K,q=!0,J;if(V!==void 0){G=V.disablePadding!==!0,q=V.disableStyling!==!0;let e=r(V);e&&(J=V.styleOverride);let n=e?V.editor:V;K=d.createElement(n,{isHighlighted:g,onChange:P,value:B,initialValue:p,onFinishedEditing:R,validatedSelection:o(B)?B.selectionRange:void 0,forceEditMode:f,target:t,imageEditorOverride:m,markdownDivCreateNode:h,isValid:j,theme:y})}J={...J,...W};let Y=document.getElementById(`portal`);if(Y===null)return console.error('Cannot open Data Grid overlay editor, because portal not found. Please add `<div id="portal" />` as the last child of your `<body>`.'),null;let X=q?`gdg-style`:`gdg-unstyle`;j||(X+=` gdg-invalid`),G&&(X+=` gdg-pad`);let Z=C?.[0]??1,Q=C?.[1]??1;return(0,u.createPortal)(d.createElement(s.Provider,{value:y},d.createElement(c,{style:a(y),className:_,onClickOutside:L,isOutsideClick:D},d.createElement(v,{ref:U,id:x,className:X,style:J,as:H===!0?`label`:void 0,targetX:t.x-Z,targetY:t.y-Q,targetWidth:t.width+Z*2,targetHeight:t.height+Q*2},d.createElement(`div`,{className:`gdg-clip-region`,onKeyDown:z},K)))),Y)};export{x as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{S as t,x as n}from"./vendor-markdown-Ls5AcU91.js";import"./vendor-ui-CaeeFO0B.js";import{t as r}from"./database-Y3ESDK4-.js";import{n as i,t as a}from"./glide-data-grid-lbUFJwCD.js";import{t as o}from"./loader-circle-DPMrnLQ2.js";import{t as s}from"./shield-check-BsG3LV8i.js";import{t as c}from"./shield-off-7jKWpJBD.js";import{n as l,s as u}from"./api-client-CEYCBt_0.js";import"./vendor-mermaid-CXxglerV.js";import"./settings-store-Bsu_5zIU.js";import"./panel-store-BmdcSBNb.js";import"./window-store-D0HbQ1pM.js";import{t as d}from"./tab-store-1xYJb0gM.js";import{K as f,Xn as p,gr as m}from"./index-A3ripVe5.js";import"./use-monaco-theme-Ck1i7NEe.js";import{t as h}from"./sql-query-editor-DPtExW0C.js";import"./click-outside-container-XmmmdSm7.js";var g=e(t(),1);function _(e,t,n,r){return`ppm-db-${e}-${n}.${t}-p${r}`}function v(e,t,n,r){try{let i=sessionStorage.getItem(_(e,t,n,r));return i?JSON.parse(i):null}catch{return null}}function y(e,t,n,r,i,a){try{sessionStorage.setItem(_(e,t,n,r),JSON.stringify({data:i,cols:a}))}catch{}}function b(e){let t=`/api/db/connections/${e}`,[n,r]=(0,g.useState)(null),[i,a]=(0,g.useState)(`public`),[o,s]=(0,g.useState)(null),[c,d]=(0,g.useState)([]),[f,p]=(0,g.useState)(!1),[m,h]=(0,g.useState)(null),[_,b]=(0,g.useState)(1),[x,S]=(0,g.useState)(null),[C,w]=(0,g.useState)(null),[T,E]=(0,g.useState)(!1),[D,O]=(0,g.useState)(null),[k,A]=(0,g.useState)(`ASC`),j=(0,g.useRef)(null),M=(0,g.useCallback)(async(r,a,o,c,u)=>{let f=r??n,m=a??i;if(!f)return;j.current=null,p(!0);let g=c===void 0?D:c,v=u??k;try{let n=g?`&orderBy=${encodeURIComponent(g)}&orderDir=${v}`:``,[r,i]=await Promise.all([l.get(`${t}/data?table=${encodeURIComponent(f)}&schema=${m}&page=${o??_}&limit=100${n}`),l.get(`${t}/schema?table=${encodeURIComponent(f)}&schema=${m}`)]);s(r),d(i),y(e,f,m,o??_,r,i)}catch(e){h(e.message)}finally{p(!1)}},[t,e,n,i,_,D,k]),N=(0,g.useCallback)((t,n=`public`)=>{r(t),a(n),b(1),S(null);let i=v(e,t,n,1);i?(s(i.data),d(i.cols),p(!1),M(t,n,1)):M(t,n,1)},[e,M]),P=(0,g.useCallback)(e=>{b(e),M(void 0,void 0,e)},[M]),F=(0,g.useCallback)(async e=>{j.current={sql:e,mode:`table`},p(!0);try{let n=await l.post(`${t}/query`,{sql:e,source:`filter`});n.changeType===`select`&&s({columns:n.columns,rows:n.rows,total:n.rows.length,page:1,limit:n.rows.length})}catch(e){h(e.message)}finally{p(!1)}},[t]),I=(0,g.useCallback)(async e=>{E(!0),w(null);try{let r=await l.post(`${t}/query`,{sql:e});S(r),r.changeType===`modify`?(j.current=null,M(n??void 0,i)):j.current={sql:e,mode:`query`}}catch(e){w(e.message)}finally{E(!1)}},[t,n,i,M]),L=(0,g.useCallback)((e,t)=>{let n=j.current;if(n?.mode===`table`){F(n.sql);return}M(e,t)},[F,M]),R=(0,g.useCallback)((e,t)=>{let n=t.message;h(n),u.error(`${e} failed`,{description:n})},[]),z=(0,g.useCallback)(async(e,r,a,o)=>{if(!n)return;let s=n,c=i;try{await l.put(`${t}/cell`,{table:s,schema:c,pkColumn:e,pkValue:r,column:a,value:o}),L(s,c)}catch(e){R(`Update cell`,e)}},[t,n,i,L,R]),B=(0,g.useCallback)(async(e,r)=>{if(!n)return;let a=n,o=i;try{await l.del(`${t}/row`,{table:a,schema:o,pkColumn:e,pkValue:r}),L(a,o)}catch(e){R(`Delete row`,e)}},[t,n,i,L,R]),V=(0,g.useCallback)(e=>{let t,n=`ASC`;D===e?k===`ASC`?(t=e,n=`DESC`):(t=null,n=`ASC`):(t=e,n=`ASC`),O(t),A(n),b(1),M(void 0,void 0,1,t,n)},[D,k,M]),H=(0,g.useCallback)(()=>{O(null),A(`ASC`),b(1),M(void 0,void 0,1,null,`ASC`)},[M]),U=(0,g.useCallback)(async(e,r)=>{if(!n)return;let a=n,o=i;try{await l.post(`${t}/rows/delete`,{table:a,schema:o,pkColumn:e,pkValues:r}),L(a,o)}catch(e){R(`Delete rows`,e)}},[t,n,i,L,R]),W=(0,g.useCallback)(async e=>{if(!n)return;let r=n,a=i;try{await l.post(`${t}/row`,{table:r,schema:a,values:e}),L(r,a)}catch(e){throw R(`Insert row`,e),e}},[t,n,i,L,R]),G=(0,g.useCallback)(()=>{let e=j.current;if(e?.mode===`query`){I(e.sql);return}if(e?.mode===`table`){F(e.sql);return}M()},[I,F,M]);return{selectedTable:n,selectedSchema:i,selectTable:N,tableData:o,schema:c,loading:f,error:m,page:_,setPage:P,orderBy:D,orderDir:k,toggleSort:V,clearSort:H,queryResult:x,queryError:C,queryLoading:T,executeQuery:I,updateCell:z,updateCellIn:(0,g.useCallback)(async(e,n,r,i,a,o)=>{try{await l.put(`${t}/cell`,{table:e,schema:n,pkColumn:r,pkValue:i,column:a,value:o}),G()}catch(e){R(`Update cell`,e)}},[t,G,R]),deleteRow:B,bulkDelete:U,insertRow:W,refreshData:M,queryAsTable:F,reload:G}}function x(e,t){let n=e.replace(/--[^\r\n]*/g,` `).replace(/\/\*[\s\S]*?\*\//g,` `).trim().replace(/;\s*$/,``);if(!/^select\s/i.test(n)||/\b(join|union|intersect|except|group\s+by|distinct)\b/i.test(n)||(n.match(/\bfrom\b/gi)??[]).length!==1)return null;let r=/\bfrom\s+(?:"([^"]+)"|(\w+))\s*(?:\.\s*(?:"([^"]+)"|(\w+)))?/i.exec(n);if(!r)return null;let i=r[1]??r[2],a=r[3]??r[4];return a?{schema:i,table:a}:{table:i,schema:t}}var S=n();function C(e){let t={},n=/"(\w+)"\s+ILIKE\s+'%([^']*?)%'/gi,r;for(;(r=n.exec(e))!==null;)t[r[1]]=r[2].replace(/''/g,`'`);return t}function w({metadata:e,tabId:t}){let n=e?.connectionId,u=e?.connectionName,_=e?.tableName,v=e?.schemaName??`public`,y=e?.initialSql,w=e?.currentSql,T=d(e=>e.updateTab),D=(0,g.useRef)(e);D.current=e;let O=(0,g.useCallback)(e=>{t&&T(t,{metadata:{...D.current,currentSql:e}})},[t,T]),k=b(n),{connections:A,updateConnection:j}=f(),M=(0,g.useMemo)(()=>A.find(e=>e.id===n),[A,n]),[N,P]=(0,g.useState)([]),[F,I]=(0,g.useState)(180),L=(0,g.useRef)(null),[R,z]=(0,g.useState)({}),B=(0,g.useMemo)(()=>{if(y&&!k.selectedTable)return y;if(k.selectedTable){let e=`SELECT * FROM "${k.selectedTable}"`,t=Object.entries(R).filter(([,e])=>e.trim()).map(([e,t])=>`"${e}" ILIKE '%${t.replace(/'/g,`''`)}%'`);t.length>0&&(e+=` WHERE ${t.join(` AND `)}`),k.orderBy&&(e+=` ORDER BY "${k.orderBy}" ${k.orderDir}`);let n=(k.page-1)*100;return e+=` LIMIT 100`,n>0&&(e+=` OFFSET ${n}`),e}return`SELECT * FROM `},[y,k.selectedTable,k.orderBy,k.orderDir,k.page,R]),V=(0,g.useCallback)(e=>{z(e)},[]),H=(0,g.useRef)(void 0),U=(0,g.useRef)(!1);(0,g.useEffect)(()=>{if(!k.selectedTable)return;let e=Object.values(R).some(e=>e.trim());if(!(!e&&!U.current))return U.current=e,clearTimeout(H.current),H.current=setTimeout(()=>{e?k.queryAsTable(B):k.refreshData()},500),()=>clearTimeout(H.current)},[R]);let W=(0,g.useCallback)(e=>{e.preventDefault();let t=e.clientY,n=F,r=e=>{let r=e.clientY-t;I(Math.max(80,Math.min(n+r,(L.current?.clientHeight??600)-100)))},i=()=>{document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[F]);(0,g.useEffect)(()=>{l.get(`/api/db/connections/${n}/tables?cached=1`).then(e=>P(e.map(e=>({name:e.name,schema:e.schema})))).catch(()=>{})},[n]);let G=(0,g.useMemo)(()=>{if(N.length!==0)return{tables:N,getColumns:async(e,t)=>await l.get(`/api/db/connections/${n}/schema?table=${encodeURIComponent(e)}${t?`&schema=${encodeURIComponent(t)}`:``}`)}},[n,N]),K=(0,g.useRef)(!1);(0,g.useEffect)(()=>{K.current||(K.current=!0,y?k.executeQuery(y):_&&k.selectTable(_,v))},[_,v,y]);let[q,J]=(0,g.useState)(!!y),[Y,ee]=(0,g.useState)(y??null),te=(0,g.useCallback)(e=>{let t=e.trim();if(k.selectedTable&&RegExp(`^SELECT\\s+\\*\\s+FROM\\s+"?${k.selectedTable.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}"?\\b`,`i`).test(t)){z(C(t)),k.queryAsTable(t);return}J(!0),ee(t),k.executeQuery(e)},[k.executeQuery,k.queryAsTable,k.selectedTable]),ne=(0,g.useCallback)(e=>{J(!1),k.toggleSort(e)},[k.toggleSort]),re=(0,g.useCallback)(()=>{J(!1),k.clearSort()},[k.clearSort]),ie=(0,g.useCallback)(e=>{J(!1),k.setPage(e)},[k.setPage]),X=(0,g.useMemo)(()=>M&&!M.readonly&&Y?x(Y,k.selectedSchema):null,[M,Y,k.selectedSchema]),ae=(0,g.useCallback)((e,t,n,r)=>{X&&k.updateCellIn(X.table,X.schema,e,t,n,r)},[X,k.updateCellIn]),Z=k.queryResult,Q=q&&!!(Z||k.queryError),$=k.selectedTable&&!Q,oe=!($&&k.tableData)&&!Q&&(k.loading||k.queryLoading);return(0,S.jsx)(`div`,{ref:L,className:`flex h-full w-full overflow-hidden`,children:(0,S.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden`,children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 border-b border-border bg-background shrink-0`,children:[(0,S.jsx)(r,{className:`size-3.5 text-muted-foreground`}),(0,S.jsx)(`span`,{className:`text-xs text-muted-foreground truncate`,children:u??`Database`}),k.selectedTable&&(0,S.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`/ `,k.selectedTable]}),(0,S.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[k.tableData&&(0,S.jsx)(i,{columns:k.tableData.columns,rows:k.tableData.rows,filename:u?`${u}-${k.selectedTable??`data`}`:k.selectedTable??`data`,exportAllUrl:k.selectedTable?`/api/db/connections/${n}/export?table=${encodeURIComponent(k.selectedTable)}&schema=${k.selectedSchema}`:void 0}),M&&(0,S.jsx)(`button`,{type:`button`,onClick:()=>j(M.id,{readonly:M.readonly?0:1}),className:`flex items-center gap-0.5 px-1 py-0.5 rounded text-[10px] transition-colors ${M.readonly?`text-muted-foreground hover:text-foreground`:`bg-destructive/15 text-destructive`}`,title:M.readonly?`Readonly — click to allow writes`:`WRITE mode — click to enable readonly`,children:M.readonly?(0,S.jsx)(s,{className:`size-3`}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(c,{className:`size-3`}),(0,S.jsx)(`span`,{className:`font-medium`,children:`WRITE`})]})}),(0,S.jsx)(`button`,{type:`button`,onClick:()=>k.reload(),title:`Reload data`,className:`p-1 rounded text-muted-foreground hover:text-foreground transition-colors`,children:(0,S.jsx)(p,{className:`size-3 ${k.loading||k.queryLoading?`animate-spin`:``}`})})]})]}),(0,S.jsx)(`div`,{className:`shrink-0 border-b border-border`,style:{height:F},children:(0,S.jsx)(h,{onExecute:te,loading:k.queryLoading,defaultValue:B,schemaInfo:G,onSqlChange:O,persistedSql:w})}),(0,S.jsx)(`div`,{onMouseDown:W,className:`shrink-0 h-1.5 cursor-row-resize bg-border/50 hover:bg-primary/30 flex items-center justify-center transition-colors`,children:(0,S.jsx)(m,{className:`size-3 text-muted-foreground/50`})}),(0,S.jsxs)(`div`,{className:`flex-1 overflow-hidden`,children:[$&&k.tableData&&(0,S.jsx)(a,{columns:k.tableData.columns,rows:k.tableData.rows,total:k.tableData.total,limit:k.tableData.limit,schema:k.schema,loading:k.loading,page:k.page,onPageChange:ie,onCellUpdate:k.updateCell,onRowDelete:k.deleteRow,orderBy:k.orderBy,orderDir:k.orderDir,onToggleSort:ne,onClearSort:re,onBulkDelete:k.bulkDelete,onInsertRow:k.insertRow,connectionId:n,selectedTable:k.selectedTable,selectedSchema:k.selectedSchema,connectionName:u,columnFilters:R,onColumnFilter:V}),Q&&(0,S.jsx)(E,{result:Z,error:k.queryError,loading:k.queryLoading,schema:k.schema,connectionName:u,onCellUpdate:X?ae:void 0}),oe&&(0,S.jsx)(`div`,{className:`flex items-center justify-center h-full text-muted-foreground`,children:(0,S.jsx)(o,{className:`size-4 animate-spin`})})]})]})})}var T=()=>{};function E({result:e,error:t,loading:n,schema:r,connectionName:i,onCellUpdate:s}){let c=(0,g.useMemo)(()=>e?.changeType===`select`&&e.rows.length>0?{columns:e.columns,rows:e.rows,total:e.rows.length,limit:e.rows.length}:null,[e]),l=(0,g.useMemo)(()=>{let t=e?.columns??[],n=new Set((r??[]).map(e=>e.name));return r?.length&&t.every(e=>n.has(e))?r:t.map(e=>({name:e,type:`text`,nullable:!0,pk:!1,defaultValue:null}))},[r,e?.columns]);return(0,S.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden text-xs`,children:[t&&(0,S.jsx)(`div`,{className:`px-3 py-2 text-destructive bg-destructive/5 shrink-0`,children:t}),e?.changeType===`modify`&&(0,S.jsxs)(`div`,{className:`px-3 py-2 text-success shrink-0`,children:[e.rowsAffected,` row(s) affected`,e.executionTimeMs!=null&&(0,S.jsxs)(`span`,{className:`text-muted-foreground ml-2`,children:[e.executionTimeMs,`ms`]})]}),c&&(0,S.jsxs)(`div`,{className:`flex-1 overflow-hidden`,children:[(0,S.jsx)(a,{columns:c.columns,rows:c.rows,total:c.total,limit:c.limit,schema:l,loading:!!n,page:1,onPageChange:T,onCellUpdate:s??T,readOnly:!s,orderBy:null,orderDir:`ASC`,onToggleSort:T,connectionName:i}),e?.executionTimeMs!=null&&(0,S.jsxs)(`div`,{className:`px-3 py-0.5 border-t border-border text-[10px] text-muted-foreground shrink-0`,children:[e.rows.length,` rows · `,e.executionTimeMs,`ms`]})]}),e?.changeType===`select`&&e.rows.length===0&&(0,S.jsxs)(`div`,{className:`px-3 py-2 text-muted-foreground shrink-0`,children:[`No results`,e.executionTimeMs!=null&&(0,S.jsxs)(`span`,{className:`ml-2 text-muted-foreground/60`,children:[e.executionTimeMs,`ms`]})]}),!e&&!t&&(0,S.jsx)(`div`,{className:`flex items-center justify-center h-full text-muted-foreground`,children:n?(0,S.jsx)(o,{className:`size-4 animate-spin`}):`Run a query to see results`})]})}export{w as DatabaseViewer};
|