@hienlh/ppm 0.13.3 → 0.13.5
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 +28 -0
- package/assets/skills/ppm/SKILL.md +1 -1
- package/assets/skills/ppm/references/http-api.md +1 -1
- package/dist/web/assets/{ai-settings-section-QE6nBNgN.js → ai-settings-section-DeW4WN43.js} +1 -1
- package/dist/web/assets/{api-settings-DAk7D-NP.js → api-settings-t7Leca7J.js} +1 -1
- package/dist/web/assets/architecture-PBZL5I3N-Dy3PgD6O.js +1 -0
- package/dist/web/assets/{audio-preview-R7cq1uhJ.js → audio-preview-BdRw2cYi.js} +1 -1
- package/dist/web/assets/chat-tab-C2NBEXEX.js +12 -0
- package/dist/web/assets/code-editor-BhmUC3pD.js +8 -0
- package/dist/web/assets/{conflict-editor-dzofjxab.js → conflict-editor-Br_CSQdA.js} +1 -1
- package/dist/web/assets/{csv-preview-HMSavgBb.js → csv-preview-C9qGhDlb.js} +1 -1
- package/dist/web/assets/{database-viewer-5Uf8Rrls.js → database-viewer-CbIMjroK.js} +2 -2
- package/dist/web/assets/diff-viewer-oq0RiOpV.js +4 -0
- package/dist/web/assets/{esm-K1XIK4vc.js → esm-B3je8j5P.js} +1 -1
- package/dist/web/assets/{extension-webview-HILvTnnn.js → extension-webview-DxP22X_y.js} +2 -2
- package/dist/web/assets/{file-store-BrbCNyLm.js → file-store-BgZggznw.js} +1 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-Bu1SIFFq.js +1 -0
- package/dist/web/assets/{image-preview-0cJMnFZK.js → image-preview-yX0yZtyd.js} +1 -1
- package/dist/web/assets/index-BJ76xcQz.css +2 -0
- package/dist/web/assets/index-DJQJu6Ef.js +27 -0
- package/dist/web/assets/info-3K5VOQVL-DzfAxmVd.js +1 -0
- package/dist/web/assets/{input-Dk49gO8E.js → input-bGJExpJZ.js} +1 -1
- package/dist/web/assets/keybindings-store-zxSQXdFL.js +1 -0
- package/dist/web/assets/{markdown-renderer-D0MrsVJB.js → markdown-renderer-DHD3HPwK.js} +3 -3
- package/dist/web/assets/packet-RMMSAZCW-DpzHf4xp.js +1 -0
- package/dist/web/assets/{pdf-preview-BBVDS-z5.js → pdf-preview-BlRtar7G.js} +1 -1
- package/dist/web/assets/pie-UPGHQEXC-BpzFCKJ8.js +1 -0
- package/dist/web/assets/{port-forwarding-tab-ByKzBs-R.js → port-forwarding-tab-DOYZIXHo.js} +1 -1
- package/dist/web/assets/{postgres-viewer-BnCbdR7g.js → postgres-viewer-DM6b5mZl.js} +3 -3
- package/dist/web/assets/radar-KQ55EAFF-DAxWKxM4.js +1 -0
- package/dist/web/assets/{scroll-area-BEllam7_.js → scroll-area-D0EQpAH2.js} +1 -1
- package/dist/web/assets/{settings-store-BLLR7ed8.js → settings-store-CdcSAgEZ.js} +2 -2
- package/dist/web/assets/settings-tab-JzeC-QC7.js +1 -0
- package/dist/web/assets/{sql-query-editor-CVAnRFbi.js → sql-query-editor-vpD0I0KG.js} +1 -1
- package/dist/web/assets/sqlite-viewer-IvosQxK2.js +1 -0
- package/dist/web/assets/{tab-store-B3M9hjho.js → tab-store-Jvy1eZGM.js} +1 -1
- package/dist/web/assets/terminal-tab-D4xxia2I.js +1 -0
- package/dist/web/assets/treemap-KZPCXAKY-D6dgXbAe.js +1 -0
- package/dist/web/assets/{use-blob-url-e9uTXjv5.js → use-blob-url-BgxxT-n_.js} +1 -1
- package/dist/web/assets/{use-monaco-theme-BkZDwoVd.js → use-monaco-theme-dtPsv6sh.js} +1 -1
- package/dist/web/assets/{vendor-mermaid-Dx86tuVP.js → vendor-mermaid-DCxaaPi4.js} +2 -2
- package/dist/web/assets/{video-preview-CKaht6nI.js → video-preview-ClY8ALGJ.js} +1 -1
- package/dist/web/index.html +17 -19
- package/dist/web/sw.js +1 -1
- package/docs/codebase-summary.md +2 -0
- package/docs/project-changelog.md +9 -1
- package/package.json +1 -1
- package/src/server/routes/chat.ts +2 -1
- package/src/services/file-filter.service.ts +17 -4
- package/src/services/file-list-index.service.ts +7 -3
- package/src/services/jsonl-transcript-parser.ts +10 -1
- package/src/services/supervisor.ts +35 -35
- package/src/types/project.ts +2 -0
- package/src/web/app.tsx +4 -0
- package/src/web/components/chat/message-list.tsx +49 -2
- package/src/web/components/editor/compare-picker.tsx +245 -0
- package/src/web/components/explorer/file-tree.tsx +42 -1
- package/src/web/components/layout/command-palette.tsx +31 -1
- package/src/web/components/layout/draggable-tab.tsx +8 -0
- package/src/web/components/layout/tab-bar.tsx +101 -27
- package/src/web/hooks/use-chat.ts +8 -1
- package/src/web/hooks/use-global-keybindings.ts +20 -0
- package/src/web/lib/open-compare-tab.ts +76 -0
- package/src/web/stores/compare-store.ts +57 -0
- package/src/web/stores/keybindings-store.ts +1 -0
- package/dist/web/assets/architecture-PBZL5I3N-DvZbltvY.js +0 -1
- package/dist/web/assets/chat-tab-umei1UkV.js +0 -12
- package/dist/web/assets/code-editor-BTosKXkr.js +0 -8
- package/dist/web/assets/columns-2-4fQcE4PF.js +0 -1
- package/dist/web/assets/diff-viewer-DKLeIBkK.js +0 -4
- package/dist/web/assets/extension-store-3yZYn07W.js +0 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-BxhdxFgj.js +0 -1
- package/dist/web/assets/index-Bce0weeW.css +0 -2
- package/dist/web/assets/index-DDBvHVVr.js +0 -27
- package/dist/web/assets/info-3K5VOQVL-BwAZ2zd8.js +0 -1
- package/dist/web/assets/keybindings-store-B-zET-0o.js +0 -1
- package/dist/web/assets/keybindings-store-DaBV6qhz.js +0 -1
- package/dist/web/assets/packet-RMMSAZCW-tx2n5Qry.js +0 -1
- package/dist/web/assets/pie-UPGHQEXC-D6S2MqVT.js +0 -1
- package/dist/web/assets/radar-KQ55EAFF-BviZcL-b.js +0 -1
- package/dist/web/assets/settings-tab-BPdzUw3v.js +0 -1
- package/dist/web/assets/sqlite-viewer-D6mSIIx2.js +0 -1
- package/dist/web/assets/terminal-tab-BLIA53mt.js +0 -1
- package/dist/web/assets/treemap-KZPCXAKY-CM54VdaB.js +0 -1
- /package/dist/web/assets/{api-client-Dvzcc_EO.js → api-client-r4nyVy7H.js} +0 -0
- /package/dist/web/assets/{csv-parser--2WJNgS7.js → csv-parser-DxVplKKB.js} +0 -0
- /package/dist/web/assets/{database-D4DIhgi-.js → database-DCT0OjgQ.js} +0 -0
- /package/dist/web/assets/{dist-im4ynINo.js → dist-BqoEabX7.js} +0 -0
- /package/dist/web/assets/{file-exclamation-point-BwzaQ50n.js → file-exclamation-point-Baz81y5z.js} +0 -0
- /package/dist/web/assets/{katex-CKoArbIw.js → katex-bpagxk3Z.js} +0 -0
- /package/dist/web/assets/{lib-DQHnkzGy.js → lib-BqkcKGFq.js} +0 -0
- /package/dist/web/assets/{react-GqWghJ-L.js → react-BkWDCPD7.js} +0 -0
- /package/dist/web/assets/{refresh-cw-LlbZDJpO.js → refresh-cw-CSFrDtiu.js} +0 -0
- /package/dist/web/assets/{sql-completion-provider-C3cq9j99.js → sql-completion-provider-EzHOQLfo.js} +0 -0
- /package/dist/web/assets/{table-Dq575bPF.js → table-DbSviOmw.js} +0 -0
- /package/dist/web/assets/{text-wrap-Cn6BNQfq.js → text-wrap-DzvCTq_i.js} +0 -0
- /package/dist/web/assets/{trash-2-CJYoLw7Q.js → trash-2-BgDIBl6f.js} +0 -0
- /package/dist/web/assets/{utils-CTg5uAYR.js → utils-ChWX7pZv.js} +0 -0
- /package/dist/web/assets/{vendor-xterm-CU2c3f0A.js → vendor-xterm-D7SePDJp.js} +0 -0
- /package/dist/web/assets/{x-DlFGzN8d.js → x-BtqbfkR7.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{B as e}from"./vendor-mermaid-Dx86tuVP.js";export{e as createInfoServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./react-GqWghJ-L.js";import{t}from"./api-client-Dvzcc_EO.js";var n=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.userAgent),r=[{id:`command-palette`,label:`Command Palette`,category:`general`,defaultKey:`F1`,note:`Shift+Shift also opens (not customizable)`},{id:`toggle-sidebar`,label:`Toggle Sidebar`,category:`general`,defaultKey:`Mod+B`},{id:`save-prevent`,label:`Prevent Save Dialog`,category:`general`,defaultKey:`Mod+S`,locked:!0,note:`Always active — prevents browser save`},{id:`next-tab`,label:`Next Tab`,category:`tabs`,defaultKey:`Alt+]`},{id:`prev-tab`,label:`Previous Tab`,category:`tabs`,defaultKey:`Alt+[`},{id:`new-file`,label:`New File`,category:`tabs`,defaultKey:`Mod+N`},{id:`open-chat`,label:`Open Chat`,category:`tabs`,defaultKey:`Mod+L`},{id:`open-terminal`,label:`Open Terminal`,category:`tabs`,defaultKey:`Mod+'`},{id:`open-settings`,label:`Open Settings`,category:`tabs`,defaultKey:`Mod+,`},{id:`open-git-status`,label:`Git Status (sidebar)`,category:`tabs`,defaultKey:`Mod+Shift+E`},{id:`open-search`,label:`Search Files (sidebar)`,category:`tabs`,defaultKey:`Mod+Shift+F`},{id:`voice-input`,label:`Voice Input`,category:`general`,defaultKey:`Mod+Shift+V`,note:`Toggle speech-to-text in chat`},...Array.from({length:9},(e,t)=>({id:`switch-project-${t+1}`,label:`Switch to Project ${t+1}`,category:`projects`,defaultKey:`Mod+${t+1}`}))],i=new Map(r.map(e=>[e.id,e.defaultKey]));function a(e){let t=e.split(`+`),r={ctrl:!1,meta:!1,alt:!1,shift:!1,key:``};for(let e of t){let t=e.trim();switch(t){case`Mod`:n?r.meta=!0:r.ctrl=!0;break;case`Ctrl`:r.ctrl=!0;break;case`Meta`:case`Cmd`:r.meta=!0;break;case`Alt`:r.alt=!0;break;case`Shift`:r.shift=!0;break;default:r.key=t.toLowerCase();break}}return r}function o(e,t){return e.ctrlKey!==t.ctrl||e.metaKey!==t.meta||e.altKey!==t.alt||e.shiftKey!==t.shift?!1:e.key.toLowerCase()===t.key}function s(e){return e.replace(/Mod/g,n?`⌘`:`Ctrl`).replace(/Shift/g,n?`⇧`:`Shift`).replace(/Alt/g,n?`⌥`:`Alt`).replace(/Meta|Cmd/g,`⌘`).replace(/Ctrl/g,n?`⌃`:`Ctrl`)}function c(e){if([`Control`,`Meta`,`Alt`,`Shift`].includes(e.key))return null;let t=[];e.ctrlKey&&!e.metaKey&&t.push(n?`Ctrl`:`Mod`),e.metaKey&&t.push(n?`Mod`:`Meta`),e.altKey&&t.push(`Alt`),e.shiftKey&&t.push(`Shift`);let r=e.key;return r===` `?r=`Space`:r.length===1&&(r=r.toUpperCase()),t.push(r),t.join(`+`)}function l(e){let t=new Map;for(let n of r){let r=e[n.id]??n.defaultKey;r&&t.set(n.id,a(r))}return t}var u=l({}),d=e((e,n)=>({overrides:{},parsedCache:u,loaded:!1,getBinding:e=>n().overrides[e]??i.get(e)??``,matchesEvent:(e,t)=>{let r=n().parsedCache.get(t);return r?o(e,r):!1},setBinding:(r,i)=>{let a={...n().overrides,[r]:i};e({overrides:a,parsedCache:l(a)}),t.put(`/api/settings/keybindings`,{[r]:i}).catch(()=>{})},resetBinding:r=>{let i={...n().overrides};delete i[r],e({overrides:i,parsedCache:l(i)}),t.put(`/api/settings/keybindings`,{[r]:null}).catch(()=>{})},resetAll:()=>{let r={};for(let e of Object.keys(n().overrides))r[e]=null;e({overrides:{},parsedCache:l({})}),Object.keys(r).length>0&&t.put(`/api/settings/keybindings`,r).catch(()=>{})},loadFromServer:async()=>{try{let n=await t.get(`/api/settings/keybindings`);e({overrides:n,parsedCache:l(n),loaded:!0})}catch{e({loaded:!0})}}}));export{a,s as i,c as n,d as o,o as r,r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./vendor-markdown-0Mxgxy0L.js";import"./api-client-Dvzcc_EO.js";import{o as e}from"./keybindings-store-B-zET-0o.js";export{e as useKeybindingsStore};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{R as e}from"./vendor-mermaid-Dx86tuVP.js";export{e as createPacketServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as e}from"./vendor-mermaid-Dx86tuVP.js";export{e as createPieServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{P as e}from"./vendor-mermaid-Dx86tuVP.js";export{e as createRadarServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./vendor-markdown-0Mxgxy0L.js";import"./vendor-ui-B-89Uj8i.js";import"./scroll-area-BEllam7_.js";import"./ai-settings-section-QE6nBNgN.js";import"./dist-D7KGU7Vl.js";import"./input-Dk49gO8E.js";import"./api-client-Dvzcc_EO.js";import"./settings-store-BLLR7ed8.js";import"./vendor-mermaid-Dx86tuVP.js";import"./file-store-BrbCNyLm.js";import"./keybindings-store-B-zET-0o.js";import"./extension-store-3yZYn07W.js";import"./api-settings-DAk7D-NP.js";import{s as e}from"./index-DDBvHVVr.js";export{e as SettingsTab};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{b as t,x as n}from"./vendor-markdown-0Mxgxy0L.js";import{t as r}from"./chevron-right-BzAdxJRG.js";import{t as i}from"./database-D4DIhgi-.js";import{t as a}from"./refresh-cw-LlbZDJpO.js";import{t as o}from"./table-Dq575bPF.js";import{t as s}from"./trash-2-CJYoLw7Q.js";import{i as c,t as l}from"./api-client-Dvzcc_EO.js";import"./settings-store-BLLR7ed8.js";import"./vendor-mermaid-Dx86tuVP.js";import{I as u,J as d,Y as f}from"./index-DDBvHVVr.js";import"./use-monaco-theme-BkZDwoVd.js";import{t as p}from"./sql-query-editor-CVAnRFbi.js";import{n as m,r as h,t as g}from"./lib-DQHnkzGy.js";var _=e(n(),1);function v(e,t,n){let[r,i]=(0,_.useState)([]),[a,o]=(0,_.useState)(null),[s,u]=(0,_.useState)(null),[d,f]=(0,_.useState)([]),[p,m]=(0,_.useState)(!1),[h,g]=(0,_.useState)(null),[v,y]=(0,_.useState)(1),[b,x]=(0,_.useState)(null),[S,C]=(0,_.useState)(null),[w,T]=(0,_.useState)(!1),E=n?`/api/db/connections/${n}`:null,D=E??`${c(e)}/sqlite`,O=E?``:`path=${encodeURIComponent(t)}`,k=(0,_.useCallback)(async()=>{m(!0),g(null);try{let e=E?`?cached=1`:O?`?${O}`:``,t=await l.get(`${D}/tables${e}`);i(t),!E&&t.length>0&&!a&&o(t[0].name)}catch(e){g(e.message)}finally{m(!1)}},[D,O,E]);(0,_.useEffect)(()=>{k()},[k]);let A=(0,_.useCallback)(async()=>{if(a){m(!0);try{let e=O?`${O}&`:``,[t,n]=await Promise.all([l.get(`${D}/data?${e}table=${encodeURIComponent(a)}&page=${v}&limit=100`),l.get(`${D}/schema?${e}table=${encodeURIComponent(a)}`)]);u(t),f(n)}catch(e){g(e.message)}finally{m(!1)}}},[D,O,a,v]);return(0,_.useEffect)(()=>{A()},[A]),{tables:r,selectedTable:a,selectTable:(0,_.useCallback)(e=>{o(e),y(1),x(null)},[]),tableData:s,schema:d,loading:p,error:h,page:v,setPage:y,queryResult:b,queryError:S,queryLoading:w,executeQuery:(0,_.useCallback)(async e=>{T(!0),C(null);try{let n=E?{sql:e}:{path:t,sql:e},r=await l.post(`${D}/query`,n);x(r),r.changeType===`modify`&&A()}catch(e){C(e.message)}finally{T(!1)}},[D,E,t,A]),updateCell:(0,_.useCallback)(async(e,n,r)=>{if(a)try{E?await l.put(`${D}/cell`,{table:a,pkColumn:`rowid`,pkValue:e,column:n,value:r}):await l.put(`${D}/cell`,{path:t,table:a,rowid:e,column:n,value:r}),A()}catch(e){g(e.message)}},[D,E,t,a,A]),deleteRow:(0,_.useCallback)(async e=>{if(a)try{E?await l.del(`${D}/row`,{table:a,pkColumn:`rowid`,pkValue:e}):await l.del(`${D}/row`,{path:t,table:a,rowid:e}),A(),k()}catch(e){g(e.message)}},[D,E,t,a,A,k]),refreshTables:k,refreshData:A}}var y=t();function b({tables:e,selectedTable:t,onSelect:n,onRefresh:r}){return(0,y.jsxs)(`div`,{className:`w-48 shrink-0 flex flex-col bg-background overflow-hidden`,children:[(0,y.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border`,children:[(0,y.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wider`,children:`Tables`}),(0,y.jsx)(`button`,{type:`button`,onClick:r,className:`text-muted-foreground hover:text-foreground transition-colors`,title:`Refresh tables`,children:(0,y.jsx)(a,{className:`size-3`})})]}),(0,y.jsxs)(`div`,{className:`flex-1 overflow-y-auto`,children:[e.map(e=>(0,y.jsxs)(`button`,{type:`button`,onClick:()=>n(e.name),className:`w-full flex items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors ${t===e.name?`bg-muted text-foreground`:`text-muted-foreground hover:bg-muted/50 hover:text-foreground`}`,children:[(0,y.jsx)(o,{className:`size-3 shrink-0`}),(0,y.jsx)(`span`,{className:`truncate flex-1`,children:e.name}),(0,y.jsx)(`span`,{className:`text-[10px] opacity-60`,children:e.rowCount})]},e.name)),e.length===0&&(0,y.jsx)(`p`,{className:`px-3 py-4 text-xs text-muted-foreground text-center`,children:`No tables found`})]})]})}function x({tableData:e,schema:t,loading:n,page:i,onPageChange:a,onCellUpdate:o,onRowDelete:s}){if(!e)return(0,y.jsx)(`div`,{className:`flex items-center justify-center h-full text-xs text-muted-foreground`,children:n?(0,y.jsx)(u,{className:`size-4 animate-spin`}):`Select a table`});let c=Math.ceil(e.total/e.limit)||1;return(0,y.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,y.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,y.jsx)(S,{columns:e.columns,rows:e.rows,schema:t,onCellUpdate:o,onRowDelete:s})}),(0,y.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-1.5 border-t border-border bg-background shrink-0 text-xs text-muted-foreground`,children:[(0,y.jsxs)(`span`,{children:[e.total.toLocaleString(),` rows`]}),(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`button`,{type:`button`,disabled:i<=1,onClick:()=>a(i-1),className:`p-0.5 rounded hover:bg-muted disabled:opacity-30`,children:(0,y.jsx)(f,{className:`size-3.5`})}),(0,y.jsxs)(`span`,{children:[i,` / `,c]}),(0,y.jsx)(`button`,{type:`button`,disabled:i>=c,onClick:()=>a(i+1),className:`p-0.5 rounded hover:bg-muted disabled:opacity-30`,children:(0,y.jsx)(r,{className:`size-3.5`})})]})]})]})}function S({columns:e,rows:t,schema:n,onCellUpdate:r,onRowDelete:i}){let[a,o]=(0,_.useState)(null),[c,l]=(0,_.useState)(``),[u,d]=(0,_.useState)(null),f=(0,_.useMemo)(()=>new Set(n.filter(e=>e.pk).map(e=>e.name)),[n]),p=(0,_.useCallback)((e,t,n)=>{t!==`rowid`&&(o({rowIdx:e,col:t}),l(n==null?``:String(n)))},[]),v=(0,_.useCallback)(()=>{if(!a)return;let e=t[a.rowIdx];if(!e)return;let n=e.rowid,i=e[a.col];String(i??``)!==c&&r(n,a.col,c===``?null:c),o(null)},[a,c,t,r]),b=(0,_.useCallback)(()=>o(null),[]),x=(0,_.useCallback)(e=>{let n=t[e];!n||!i||(i(n.rowid),d(null))},[t,i]),S=m({data:t,columns:(0,_.useMemo)(()=>{let t=e.map(e=>({id:e,accessorFn:t=>t[e],header:()=>(0,y.jsx)(`span`,{className:`${f.has(e)?`font-bold`:``} ${e===`rowid`?`text-muted-foreground/50`:``}`,children:e}),cell:({row:t,getValue:n})=>{let r=t.index,i=a?.rowIdx===r&&a?.col===e,o=n();return i?(0,y.jsx)(`input`,{autoFocus:!0,className:`w-full bg-transparent border border-primary/50 rounded px-1 py-0 text-xs outline-none`,value:c,onChange:e=>l(e.target.value),onBlur:v,onKeyDown:e=>{e.key===`Enter`&&v(),e.key===`Escape`&&b()}}):(0,y.jsx)(`span`,{className:`cursor-pointer truncate block ${o==null?`text-muted-foreground/40 italic`:``} ${e===`rowid`?`text-muted-foreground/50`:``}`,onDoubleClick:()=>p(r,e,o),title:o==null?`NULL`:String(o),children:o==null?`NULL`:String(o)})}}));return i&&t.push({id:`_actions`,header:()=>null,cell:({row:e})=>{let t=e.index;return u===t?(0,y.jsxs)(`span`,{className:`flex items-center gap-1 whitespace-nowrap`,children:[(0,y.jsx)(`button`,{type:`button`,onClick:()=>x(t),className:`text-destructive text-[10px] font-medium hover:underline`,children:`Confirm`}),(0,y.jsx)(`button`,{type:`button`,onClick:()=>d(null),className:`text-muted-foreground text-[10px] hover:underline`,children:`Cancel`})]}):(0,y.jsx)(`button`,{type:`button`,onClick:()=>d(t),className:`p-0.5 rounded opacity-0 group-hover:opacity-100 hover:bg-destructive/10 hover:text-destructive transition-opacity`,title:`Delete row`,children:(0,y.jsx)(s,{className:`size-3`})})},size:60}),t},[e,f,a,c,v,b,p,i,u,x]),getCoreRowModel:h()});return(0,y.jsxs)(`table`,{className:`w-full text-xs border-collapse`,children:[(0,y.jsx)(`thead`,{className:`sticky top-0 z-10 bg-muted`,children:S.getHeaderGroups().map(e=>(0,y.jsx)(`tr`,{children:e.headers.map(e=>(0,y.jsx)(`th`,{className:`px-2 py-1.5 text-left font-medium text-muted-foreground border-b border-border whitespace-nowrap`,children:g(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,y.jsxs)(`tbody`,{children:[S.getRowModel().rows.map(e=>(0,y.jsx)(`tr`,{className:`group hover:bg-muted/30 border-b border-border/50`,children:e.getVisibleCells().map(e=>(0,y.jsx)(`td`,{className:`px-2 py-1 max-w-[300px]`,children:g(e.column.columnDef.cell,e.getContext())},e.id))},e.id)),t.length===0&&(0,y.jsx)(`tr`,{children:(0,y.jsx)(`td`,{colSpan:e.length,className:`px-2 py-8 text-center text-muted-foreground`,children:`No data`})})]})]})}function C({onExecute:e,loading:t}){return(0,y.jsx)(p,{onExecute:e,loading:t})}function w({metadata:e}){let t=e?.filePath,n=e?.projectName,r=e?.connectionId,a=e?.tableName,[o,s]=(0,_.useState)(!1);return r?(0,y.jsx)(T,{projectName:``,dbPath:``,connectionId:r,connectionName:e?.connectionName,initialTable:a,queryPanelOpen:o,onToggleQueryPanel:()=>s(e=>!e),hideTableList:!0}):!t||!n?(0,y.jsxs)(`div`,{className:`flex items-center justify-center h-full text-text-secondary text-sm`,children:[(0,y.jsx)(i,{className:`size-5 mr-2`}),` No database file selected.`]}):(0,y.jsx)(T,{projectName:n,dbPath:t,queryPanelOpen:o,onToggleQueryPanel:()=>s(e=>!e)})}function T({projectName:e,dbPath:t,connectionId:n,connectionName:r,initialTable:a,queryPanelOpen:o,onToggleQueryPanel:s,hideTableList:c}){let l=v(e,t,n),f=(0,_.useRef)(!1);return(0,_.useEffect)(()=>{a&&!f.current&&l.tables.length>0&&(f.current=!0,l.selectTable(a))},[a,l.tables]),l.error&&l.tables.length===0?(0,y.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-text-secondary`,children:[(0,y.jsx)(d,{className:`size-10 text-destructive`}),(0,y.jsx)(`p`,{className:`text-sm`,children:l.error})]}):l.loading&&l.tables.length===0?(0,y.jsxs)(`div`,{className:`flex items-center justify-center h-full gap-2 text-text-secondary`,children:[(0,y.jsx)(u,{className:`size-5 animate-spin`}),(0,y.jsx)(`span`,{className:`text-sm`,children:`Loading database...`})]}):(0,y.jsxs)(`div`,{className:`flex h-full w-full overflow-hidden`,children:[!c&&(0,y.jsx)(b,{tables:l.tables,selectedTable:l.selectedTable,onSelect:l.selectTable,onRefresh:l.refreshTables}),(0,y.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden ${c?``:`border-l border-border`}`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1.5 border-b border-border bg-background shrink-0`,children:[(0,y.jsx)(i,{className:`size-3.5 text-muted-foreground`}),(0,y.jsx)(`span`,{className:`text-xs text-muted-foreground truncate`,children:r??t}),(0,y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:l.selectedTable&&`/ ${l.selectedTable}`}),(0,y.jsx)(`div`,{className:`ml-auto`,children:(0,y.jsx)(`button`,{type:`button`,onClick:s,className:`px-2 py-1 rounded text-xs transition-colors ${o?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`}`,children:`SQL`})})]}),(0,y.jsx)(`div`,{className:`flex-1 overflow-hidden ${o?`max-h-[60%]`:``}`,children:(0,y.jsx)(x,{tableData:l.tableData,schema:l.schema,loading:l.loading,page:l.page,onPageChange:l.setPage,onCellUpdate:l.updateCell,onRowDelete:l.deleteRow})}),o&&(0,y.jsx)(`div`,{className:`border-t border-border h-[40%] shrink-0`,children:(0,y.jsx)(C,{onExecute:l.executeQuery,loading:l.queryLoading})})]})]})}export{w as SqliteViewer};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-FhOqtrmT.js";import{b as t,x as n}from"./vendor-markdown-0Mxgxy0L.js";import"./api-client-Dvzcc_EO.js";import{n as r}from"./settings-store-BLLR7ed8.js";import"./vendor-mermaid-Dx86tuVP.js";import{n as i}from"./utils-CTg5uAYR.js";import{G as a,K as o}from"./index-DDBvHVVr.js";import{n as s,r as c,t as l}from"./vendor-xterm-CU2c3f0A.js";var u=e(n(),1),d={background:`#0f1419`,foreground:`#e5e7eb`,cursor:`#e5e7eb`,selectionBackground:`#3b82f640`,black:`#1a1f2e`,red:`#ef4444`,green:`#10b981`,yellow:`#f59e0b`,blue:`#3b82f6`,magenta:`#a855f7`,cyan:`#06b6d4`,white:`#e5e7eb`,brightBlack:`#6b7280`,brightRed:`#f87171`,brightGreen:`#34d399`,brightYellow:`#fbbf24`,brightBlue:`#60a5fa`,brightMagenta:`#c084fc`,brightCyan:`#22d3ee`,brightWhite:`#f9fafb`},f={background:`#ffffff`,foreground:`#1a1f2e`,cursor:`#1a1f2e`,selectionBackground:`#2563eb30`,black:`#1a1f2e`,red:`#dc2626`,green:`#059669`,yellow:`#d97706`,blue:`#2563eb`,magenta:`#9333ea`,cyan:`#0891b2`,white:`#f8fafc`,brightBlack:`#64748b`,brightRed:`#ef4444`,brightGreen:`#10b981`,brightYellow:`#f59e0b`,brightBlue:`#3b82f6`,brightMagenta:`#a855f7`,brightCyan:`#06b6d4`,brightWhite:`#ffffff`};function p(e){return e===`system`?window.matchMedia(`(prefers-color-scheme: dark)`).matches?d:f:e===`light`?f:d}var m=`RESIZE:`;function h(e){let{sessionId:t,containerRef:n}=e,i=(0,u.useRef)(null),a=(0,u.useRef)(null),o=(0,u.useRef)(null),d=(0,u.useRef)(null),f=(0,u.useRef)(0),[h,g]=(0,u.useState)(!1),[_,v]=(0,u.useState)(!1),y=(0,u.useRef)(t),b=(0,u.useCallback)(e=>{let t=o.current;t?.readyState===WebSocket.OPEN&&t.send(e)},[]),x=(0,u.useCallback)(()=>i.current?.getSelection()??``,[]),S=(0,u.useCallback)(()=>{let e=i.current,t=o.current;e&&t?.readyState===WebSocket.OPEN&&t.send(`${m}${e.cols},${e.rows}`)},[]),C=(0,u.useCallback)(()=>{let t=i.current;if(!t)return;let n=window.location.protocol===`https:`?`wss:`:`ws:`,r=e.projectName??``,a=y.current,s=`${n}//${window.location.host}/ws/project/${encodeURIComponent(r)}/terminal/${a}`,c=new WebSocket(s);o.current=c,c.onopen=()=>{g(!0),v(!1),f.current=0,S()},c.onmessage=e=>{if(typeof e.data==`string`){if(e.data.startsWith(`{`))try{let n=JSON.parse(e.data);if(n.type===`session`||n.type===`error`){n.type===`session`&&n.id&&(y.current=n.id),n.type===`error`&&t.write(`\r\n\x1b[31mError: ${n.message}\x1b[0m\r\n`);return}}catch{}t.write(e.data)}},c.onclose=()=>{g(!1),w()},c.onerror=()=>{c.close()}},[t,S]);function w(){let e=Math.min(1e3*2**f.current,3e4);f.current++,v(!0),d.current=setTimeout(()=>{C()},e)}return(0,u.useEffect)(()=>{let e=n.current;if(!e)return;let t=new c({cursorBlink:!0,fontSize:13,fontFamily:`var(--font-mono)`,theme:p(r.getState().theme)}),u=new s,f=new l;t.loadAddon(u),t.loadAddon(f),t.open(e),u.fit(),i.current=t,a.current=u,t.onData(e=>{let t=o.current;t?.readyState===WebSocket.OPEN&&t.send(e)}),C();let m=new ResizeObserver(()=>{try{u.fit(),S()}catch{}});m.observe(e);let h=r.getState().theme,g=r.subscribe(e=>{e.theme!==h&&(h=e.theme,t.options.theme=p(e.theme))});return()=>{g(),m.disconnect(),d.current&&clearTimeout(d.current),o.current?.close(),o.current=null,t.dispose(),i.current=null,a.current=null}},[t]),{connected:h,reconnecting:_,sendData:b,getSelection:x}}var g=t(),_=[{label:`Tab`,value:` `},{label:`Esc`,value:`\x1B`},{label:`Ctrl`,value:null,isModifier:!0},{label:`↑`,value:`\x1B[A`},{label:`↓`,value:`\x1B[B`},{label:`←`,value:`\x1B[D`},{label:`→`,value:`\x1B[C`}],v=(0,u.memo)(function({metadata:e}){let t=e?.sessionId??`new`,n=e?.projectName,r=(0,u.useRef)(null),{connected:s,reconnecting:c,sendData:l,getSelection:d}=h({sessionId:t,projectName:n,containerRef:r}),[f,p]=(0,u.useState)(!1),[m,v]=(0,u.useState)(null);(0,u.useEffect)(()=>{let e=window.visualViewport;if(!e)return;function t(){e&&v(e.height)}return e.addEventListener(`resize`,t),()=>e.removeEventListener(`resize`,t)},[]);let y=(0,u.useCallback)(()=>{(r.current?.querySelector(`.xterm-helper-textarea`))?.focus()},[]),b=(0,u.useCallback)(e=>{if(y(),f&&e.length===1){let t=e.toLowerCase().charCodeAt(0)-96;t>=1&&t<=26&&l(String.fromCharCode(t)),p(!1);return}l(e)},[f,l,y]),x=(0,u.useCallback)(async()=>{let e=d();e&&await navigator.clipboard.writeText(e)},[d]),S=(0,u.useCallback)(async()=>{try{let e=await navigator.clipboard.readText();e&&(l(e),y())}catch{}},[l,y]),C=typeof window<`u`&&`ontouchstart`in window;return(0,g.jsxs)(`div`,{className:`flex flex-col h-full`,style:m?{maxHeight:`${m}px`}:void 0,children:[(0,g.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1 bg-surface border-b border-border text-xs`,children:[(0,g.jsx)(`span`,{className:i(`size-2 rounded-full`,s?`bg-success`:c?`bg-warning`:`bg-error`)}),(0,g.jsx)(`span`,{className:`text-text-secondary`,children:s?`Connected`:c?`Reconnecting...`:`Disconnected`}),(0,g.jsx)(`span`,{className:`text-text-subtle ml-auto font-mono`,children:t})]}),(0,g.jsx)(`div`,{ref:r,className:`flex-1 min-h-0 bg-background p-1`}),C&&(0,g.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1.5 bg-surface border-t border-border overflow-x-auto`,children:[(0,g.jsx)(`button`,{onClick:x,className:`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`,children:(0,g.jsx)(a,{size:14})}),(0,g.jsx)(`button`,{onClick:S,className:`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`,children:(0,g.jsx)(o,{size:14})}),(0,g.jsx)(`div`,{className:`w-px h-5 bg-border mx-0.5`}),_.map(e=>(0,g.jsx)(`button`,{onClick:()=>{e.label===`Ctrl`?p(!f):e.value&&b(e.value)},className:i(`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`,e.label===`Ctrl`&&f&&`bg-primary text-primary-foreground`),children:e.label},e.label))]})]})});export{v as TerminalTab};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{M as e}from"./vendor-mermaid-Dx86tuVP.js";export{e as createTreemapServices};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/web/assets/{file-exclamation-point-BwzaQ50n.js → file-exclamation-point-Baz81y5z.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/web/assets/{sql-completion-provider-C3cq9j99.js → sql-completion-provider-EzHOQLfo.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|