@hienlh/ppm 0.13.8 → 0.13.10
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 +6 -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-ysK_Eixc.js +1 -0
- package/dist/web/assets/architecture-PBZL5I3N-By4Nv3Gj.js +1 -0
- package/dist/web/assets/{audio-preview-DQbX8gfL.js → audio-preview-DISP-2AE.js} +1 -1
- package/dist/web/assets/{chat-tab-BJQT9kie.js → chat-tab-lp_mVSG-.js} +8 -8
- package/dist/web/assets/code-editor-BofKrbM8.js +8 -0
- package/dist/web/assets/{conflict-editor-BKwJLX0D.js → conflict-editor-kaAZUFD5.js} +1 -1
- package/dist/web/assets/csv-parser-Dly5nqE1.js +6 -0
- package/dist/web/assets/{csv-preview-D5lmgVEy.js → csv-preview-7TsYBQI6.js} +3 -3
- package/dist/web/assets/data-grid-overlay-editor-BjjuE4-G.js +1 -0
- package/dist/web/assets/data-grid-types-BTQHYBUh.js +1 -0
- package/dist/web/assets/database-DOWH9-Vv.js +1 -0
- package/dist/web/assets/database-viewer-P38Vxzkx.js +1 -0
- package/dist/web/assets/{diff-viewer-SAtaBwNI.js → diff-viewer-DlJfbgNJ.js} +1 -1
- package/dist/web/assets/dist-0kPgRaVx.js +1 -0
- package/dist/web/assets/{esm-nXReYVnB.js → esm-zjerHxpO.js} +1 -1
- package/dist/web/assets/{extension-webview-PiV4bKJ1.js → extension-webview-5s2MUx38.js} +1 -1
- package/dist/web/assets/gitGraph-HDMCJU4V-BLXEKVf1.js +1 -0
- package/dist/web/assets/glide-data-grid-D5D1N3L7.js +136 -0
- package/dist/web/assets/glide-data-grid-nthEL3fk.css +1 -0
- package/dist/web/assets/{image-preview-CbFFD9BS.js → image-preview-C9osjEPa.js} +1 -1
- package/dist/web/assets/index-COOnLKGB.css +2 -0
- package/dist/web/assets/index-CpcqiQOx.js +27 -0
- package/dist/web/assets/info-3K5VOQVL-CEkPcChg.js +1 -0
- package/dist/web/assets/{input-BMvRUOr7.js → input-ozrR2DAV.js} +1 -1
- package/dist/web/assets/keybindings-store-COxqSoML.js +1 -0
- package/dist/web/assets/{markdown-renderer-CHWA0KAo.js → markdown-renderer-k3EA9XmF.js} +3 -3
- package/dist/web/assets/number-overlay-editor-BoRxunFN.js +9 -0
- package/dist/web/assets/packet-RMMSAZCW-DECxYTOi.js +1 -0
- package/dist/web/assets/{pdf-preview-DQMdjqa2.js → pdf-preview-DvgyxJX7.js} +1 -1
- package/dist/web/assets/pie-UPGHQEXC-cjpNfVG5.js +1 -0
- package/dist/web/assets/{port-forwarding-tab-9BpNC9_7.js → port-forwarding-tab-CUkU6wac.js} +1 -1
- package/dist/web/assets/{postgres-viewer-Bm5T51n6.js → postgres-viewer-C1w0tqQw.js} +3 -3
- package/dist/web/assets/radar-KQ55EAFF-Dnpi068b.js +1 -0
- package/dist/web/assets/{settings-store-BHBb62gq.js → settings-store-B-OmHo3J.js} +1 -1
- package/dist/web/assets/settings-tab-D0zKyVwg.js +1 -0
- package/dist/web/assets/sql-query-editor-46hLU7MI.js +3 -0
- package/dist/web/assets/sqlite-viewer-DrLi8P6y.js +1 -0
- package/dist/web/assets/terminal-tab-DqA3fEoQ.js +1 -0
- package/dist/web/assets/treemap-KZPCXAKY-DRyb1eiw.js +1 -0
- package/dist/web/assets/{use-monaco-theme-CP-vyTF8.js → use-monaco-theme-DgzxiZS5.js} +1 -1
- package/dist/web/assets/{vendor-mermaid-CMiurk2b.js → vendor-mermaid-CCmA_6Y0.js} +3 -3
- package/dist/web/assets/{video-preview-BLI_RruT.js → video-preview-BU7tibc4.js} +1 -1
- package/dist/web/assets/x-CG-_0yIW.js +1 -0
- package/dist/web/index.html +13 -14
- package/dist/web/sw.js +1 -1
- package/package.json +2 -1
- package/src/web/components/database/data-grid.tsx +18 -2
- package/src/web/components/database/database-viewer.tsx +19 -8
- package/src/web/components/database/export-button.tsx +38 -18
- package/src/web/components/database/glide-column-search.tsx +81 -0
- package/src/web/components/database/glide-context-menu.tsx +95 -0
- package/src/web/components/database/glide-data-grid.tsx +207 -0
- package/src/web/components/database/glide-data-preview-panel.tsx +113 -0
- package/src/web/components/database/glide-grid-pagination.tsx +34 -0
- package/src/web/components/database/glide-grid-theme.ts +82 -0
- package/src/web/components/database/glide-grid-toolbar.tsx +105 -0
- package/src/web/components/database/glide-grid-types.ts +81 -0
- package/src/web/components/database/glide-header-menu.tsx +111 -0
- package/src/web/components/database/glide-save-bar.tsx +33 -0
- package/src/web/components/database/sql-query-editor.tsx +14 -4
- package/src/web/components/database/use-database.ts +10 -2
- package/src/web/components/database/use-glide-cell-content.ts +159 -0
- package/src/web/components/database/use-glide-columns.ts +69 -0
- package/src/web/components/database/use-glide-grid-actions.ts +164 -0
- package/src/web/components/database/use-glide-pending-edits.ts +72 -0
- package/src/web/components/database/use-glide-row-pinning.ts +35 -0
- package/src/web/components/database/use-glide-selection.ts +48 -0
- package/src/web/components/editor/code-editor.tsx +126 -7
- package/src/web/components/layout/editor-panel.tsx +2 -2
- package/src/web/components/sqlite/sqlite-viewer.tsx +21 -12
- package/src/web/components/sqlite/use-sqlite.ts +1 -1
- package/src/web/hooks/use-terminal.ts +1 -1
- package/src/web/index.html +1 -0
- package/test.sql +1 -0
- package/dist/web/assets/ai-settings-section-CHgpQ_OP.js +0 -1
- package/dist/web/assets/architecture-PBZL5I3N-WMbLpD5Y.js +0 -1
- package/dist/web/assets/code-editor-CeKTvfyz.js +0 -8
- package/dist/web/assets/csv-parser-DO0dz4x_.js +0 -6
- package/dist/web/assets/database-DCT0OjgQ.js +0 -1
- package/dist/web/assets/database-viewer-DixWWvjx.js +0 -5
- package/dist/web/assets/gitGraph-HDMCJU4V-BdPTuzO3.js +0 -1
- package/dist/web/assets/index-C1RBJe0a.css +0 -2
- package/dist/web/assets/index-ZFyltHwi.js +0 -27
- package/dist/web/assets/info-3K5VOQVL-MHX_1JfR.js +0 -1
- package/dist/web/assets/keybindings-store-D0C-Pq2o.js +0 -1
- package/dist/web/assets/packet-RMMSAZCW-CreFbf9A.js +0 -1
- package/dist/web/assets/pie-UPGHQEXC-CnaHXUh8.js +0 -1
- package/dist/web/assets/plus-51UQ45rf.js +0 -1
- package/dist/web/assets/radar-KQ55EAFF-UxsdRHvt.js +0 -1
- package/dist/web/assets/settings-tab-BUstSDLR.js +0 -1
- package/dist/web/assets/sql-completion-provider-tCzZfqWs.js +0 -1
- package/dist/web/assets/sql-query-editor-CMQpaOjA.js +0 -3
- package/dist/web/assets/sqlite-viewer-C7rhO4bn.js +0 -1
- package/dist/web/assets/terminal-tab-Xtj6RN0d.js +0 -1
- package/dist/web/assets/trash-2-CJYoLw7Q.js +0 -1
- package/dist/web/assets/treemap-KZPCXAKY-CBVPi4NV.js +0 -1
- package/dist/web/assets/x-BtqbfkR7.js +0 -1
- /package/dist/web/assets/{arrow-up-Dtrfv490.js → arrow-up-Rcw6_KKu.js} +0 -0
- /package/dist/web/assets/{chevron-right-BzAdxJRG.js → chevron-right-DnHIvvcy.js} +0 -0
- /package/dist/web/assets/{code-CuravVys.js → code-DGBecc50.js} +0 -0
- /package/dist/web/assets/{dist-D7KGU7Vl.js → dist-CaKCIxem.js} +0 -0
- /package/dist/web/assets/{dist-CGvx1c8C.js → dist-DGSkE2Ml.js} +0 -0
- /package/dist/web/assets/{katex-BFE6i_OH.js → katex-BuytEdO1.js} +0 -0
- /package/dist/web/assets/{lib-D_kRA9p6.js → lib-DQHnkzGy.js} +0 -0
- /package/dist/web/assets/{refresh-cw-CSFrDtiu.js → refresh-cw-LlbZDJpO.js} +0 -0
- /package/dist/web/assets/{scroll-area-BEllam7_.js → scroll-area-7H-Q_k8c.js} +0 -0
- /package/dist/web/assets/{sparkles-B0mRBy_j.js → sparkles-fWUT5Vzq.js} +0 -0
- /package/dist/web/assets/{table-Dq575bPF.js → table-tf7pRkME.js} +0 -0
- /package/dist/web/assets/{text-wrap-Cn6BNQfq.js → text-wrap-BV-R4Vvy.js} +0 -0
- /package/dist/web/assets/{use-blob-url-Hn6n1730.js → use-blob-url-e9uTXjv5.js} +0 -0
- /package/dist/web/assets/{vendor-xterm-u3AZMvTx.js → vendor-xterm-CU2c3f0A.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{B as e}from"./vendor-mermaid-CMiurk2b.js";export{e as createInfoServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./vendor-markdown-0Mxgxy0L.js";import"./api-client-Dvzcc_EO.js";import{E as e}from"./index-ZFyltHwi.js";export{e as useKeybindingsStore};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{R as e}from"./vendor-mermaid-CMiurk2b.js";export{e as createPacketServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as e}from"./vendor-mermaid-CMiurk2b.js";export{e as createPieServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-BjHrJDVb.js";var t=e(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),n=e(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),r=e(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]);export{n,t as r,r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{P as e}from"./vendor-mermaid-CMiurk2b.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-CHgpQ_OP.js";import"./dist-D7KGU7Vl.js";import"./input-BMvRUOr7.js";import"./api-client-Dvzcc_EO.js";import"./settings-store-BHBb62gq.js";import"./vendor-mermaid-CMiurk2b.js";import"./file-store-BrbCNyLm.js";import"./api-settings-D0_eiIYv.js";import{s as e}from"./index-ZFyltHwi.js";export{e as SettingsTab};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`SELECT.FROM.WHERE.INSERT.INTO.VALUES.UPDATE.SET.DELETE.CREATE.TABLE.ALTER.DROP.INDEX.JOIN.LEFT.RIGHT.INNER.OUTER.ON.AND.OR.NOT.NULL.IS.IN.LIKE.BETWEEN.HAVING.LIMIT.OFFSET.AS.DISTINCT.COUNT.SUM.AVG.MIN.MAX.CASE.WHEN.THEN.ELSE.END.EXISTS.UNION.ALL.ASC.DESC.ORDER BY.GROUP BY.LEFT JOIN.RIGHT JOIN.INNER JOIN.CROSS JOIN.FULL OUTER JOIN.IS NULL.IS NOT NULL`.split(`.`),t=[`COUNT`,`SUM`,`AVG`,`MIN`,`MAX`],n=[`=`,`!=`,`<>`,`>`,`<`,`>=`,`<=`,`LIKE`,`ILIKE`,`IN`,`NOT IN`,`BETWEEN`,`IS NULL`,`IS NOT NULL`],r=[`ASC`,`DESC`],i=new Map,a=new Set(`WHERE.SET.ON.ORDER.GROUP.HAVING.LIMIT.LEFT.RIGHT.INNER.OUTER.CROSS.FULL.JOIN.AND.OR.VALUES.SELECT.FROM.INTO.UPDATE.DELETE.INSERT.CREATE.ALTER.DROP`.split(`.`));function o(e){let t=new Set,n=new Map,r=e.matchAll(/\b(?:FROM|JOIN|UPDATE|INTO)\s+"?(\w+)"?(?:\s+AS\s+(\w+)|\s+(?!(?:FROM|JOIN|UPDATE|INTO|WHERE|SET|ON|ORDER|GROUP|HAVING|LIMIT|LEFT|RIGHT|INNER|OUTER|CROSS|FULL|AND|OR|VALUES|SELECT)\b)(\w+))?/gi);for(let e of r){let r=e[1];t.add(r);let i=e[2]??e[3];i&&!a.has(i.toUpperCase())&&n.set(i.toLowerCase(),r)}return{tableRefs:t,aliasMap:n}}function s(e,t){return t.get(e.toLowerCase())??e}async function c(e,t){let n=e.toLowerCase(),r=i.get(n);if(!r)try{r=await t.getColumns(e),i.set(n,r)}catch{r=[]}return r}async function l(e,t,n,r){let i=[],a=new Set;for(let o of e){let e=await c(o,t);for(let t of e){if(a.has(t.name))continue;a.add(t.name);let e=/[A-Z]/.test(t.name);i.push({label:t.name,kind:n.languages.CompletionItemKind.Field,detail:`${o} · ${t.type}`,insertText:e?`"${t.name}"`:t.name,range:r,sortText:`0`+t.name})}}return i}function u(e){if(/(\w+)\.\s*$/.test(e))return`dot`;let t=e.match(/\b(?:ORDER|GROUP)\s+BY\s+(?:[\w"]+\s+(?:ASC|DESC)\s*,\s*)*[\w"]+\s+(\w*)$/i);if(t){let e=t[1].toUpperCase();return e===`ASC`||e===`DESC`?`after-direction`:`sort-direction`}return/\b(?:ORDER|GROUP)\s+BY\s+.*(?:ASC|DESC)\s*,\s*\w*$/i.test(e)?`order-by-next-col`:/\b(?:WHERE|AND|OR)\s+[\w"]+\s+\S*$/i.test(e)?`operator`:/\b(?:FROM|JOIN|INTO|UPDATE|TABLE)\s+\w*$/i.test(e)?`table`:/\bINSERT\s+INTO\s+[\w"]+\s*\(\s*(?:[\w"]+\s*,\s*)*\w*$/i.test(e)?`insert-cols`:/\b(?:SELECT|WHERE|ORDER\s+BY|GROUP\s+BY|HAVING|SET|ON|AND|OR)\s+(?:[\w"]+\s*,\s*)*\w*$/i.test(e)?`columns`:/,\s*\w*$/.test(e)?`comma-cols`:`default`}function d(i,a){return{triggerCharacters:[`.`,`,`],provideCompletionItems:async(d,f)=>{try{let p=d.getValueInRange({startLineNumber:1,startColumn:1,endLineNumber:f.lineNumber,endColumn:f.column}),m=d.getWordUntilPosition(f),h={startLineNumber:f.lineNumber,endLineNumber:f.lineNumber,startColumn:m.startColumn,endColumn:m.endColumn},{tableRefs:g,aliasMap:_}=o(d.getValue()),v=[],y=u(p);if(y===`dot`){let e=p.match(/(\w+)\.\s*$/);if(e){let t=e[1],n=await c(s(t,_),a);for(let e of n){let t=/[A-Z]/.test(e.name);v.push({label:e.name,kind:i.languages.CompletionItemKind.Field,detail:e.type,insertText:t?`"${e.name}"`:e.name,range:h})}}return{suggestions:v}}if(y===`sort-direction`){for(let e of r)v.push({label:e,kind:i.languages.CompletionItemKind.Keyword,insertText:e,range:h,sortText:`0`+e});return{suggestions:v}}if(y===`after-direction`)return{suggestions:[]};if(y===`order-by-next-col`)return v.push(...await l(g,a,i,h)),{suggestions:v};if(y===`operator`){for(let e of n)v.push({label:e,kind:i.languages.CompletionItemKind.Operator,insertText:e,range:h,sortText:`0`+e});return{suggestions:v}}if(y===`table`){for(let e of a.tables)v.push({label:e.name,kind:i.languages.CompletionItemKind.Struct,detail:e.schema,insertText:e.name,range:h,sortText:`0`+e.name});return{suggestions:v}}if(y===`insert-cols`)return v.push(...await l(g,a,i,h)),{suggestions:v};if(y===`columns`){if(v.push(...await l(g,a,i,h)),/\bSELECT\s+/i.test(p)){v.push({label:`*`,kind:i.languages.CompletionItemKind.Value,insertText:`*`,range:h,sortText:`00*`});for(let e of t)v.push({label:`${e}()`,kind:i.languages.CompletionItemKind.Function,insertText:`${e}($0)`,insertTextRules:i.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:h,sortText:`1`+e})}for(let t of e)v.push({label:t,kind:i.languages.CompletionItemKind.Keyword,insertText:t,range:h,sortText:`3`+t});return{suggestions:v}}if(y===`comma-cols`&&g.size>0)return v.push(...await l(g,a,i,h)),{suggestions:v};for(let t of e)v.push({label:t,kind:i.languages.CompletionItemKind.Keyword,insertText:t,range:h,sortText:`2`+t});for(let e of a.tables)v.push({label:e.name,kind:i.languages.CompletionItemKind.Struct,detail:e.schema,insertText:e.name,range:h,sortText:`1`+e.name});return{suggestions:v}}catch{return{suggestions:[]}}}}}function f(){i.clear()}export{d as n,f as t};
|
|
@@ -1,3 +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{n as r,t as i}from"./use-monaco-theme-CP-vyTF8.js";import{n as a,t as o}from"./sql-completion-provider-tCzZfqWs.js";var s=e(n(),1),c=t();function l(e,t){let n=e.split(`
|
|
2
|
-
`),r=0;for(let e=0;e<n.length;e++){let i=n[e].trim();e<t-1&&i.endsWith(`;`)&&(r=e+1)}let i=n.length-1;for(let e=t-1;e<n.length;e++)if(n[e].trim().endsWith(`;`)){i=e;break}for(;r<=i;){let e=n[r].trim();if(e&&!e.startsWith(`--`))break;r++}return n.slice(r,i+1).join(`
|
|
3
|
-
`).trim()}function u({onExecute:e,loading:t,defaultValue:n=`SELECT * FROM `,schemaInfo:u}){let[d,f]=(0,s.useState)(n),p=(0,s.useRef)(null),m=(0,s.useRef)(null),h=(0,s.useRef)(null),g=(0,s.useRef)(e);g.current=e;let _=i();(0,s.useEffect)(()=>{if(!(!m.current||!u))return h.current?.dispose(),o(),h.current=m.current.languages.registerCompletionItemProvider(`sql`,a(m.current,u)),()=>{h.current?.dispose()}},[u]);let v=(0,s.useCallback)((e,t)=>{p.current=e,m.current=t,e.addAction({id:`run-query-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=l(e.getValue(),t.lineNumber);n&&g.current(n)}}),u&&(h.current?.dispose(),h.current=t.languages.registerCompletionItemProvider(`sql`,a(t,u)))},[u]);return(0,s.useEffect)(()=>{f(n)},[n]),(0,c.jsx)(`div`,{className:`h-full overflow-hidden`,children:(0,c.jsx)(r,{height:`100%`,language:`sql`,theme:_,value:d,onChange:e=>f(e??``),onMount:v,options:{minimap:{enabled:!1},lineNumbers:`off`,scrollBeyondLastLine:!1,wordWrap:`on`,fontSize:12,tabSize:2,renderLineHighlight:`none`,overviewRulerLanes:0,hideCursorInOverviewRuler:!0,scrollbar:{vertical:`auto`,horizontal:`auto`,verticalScrollbarSize:6,horizontalScrollbarSize:6},padding:{top:4,bottom:4},lineDecorationsWidth:4,lineNumbersMinChars:0,glyphMargin:!1,folding:!1,fixedOverflowWidgets:!0}})})}export{u as t};
|
|
@@ -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-DCT0OjgQ.js";import{t as a}from"./refresh-cw-CSFrDtiu.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-BHBb62gq.js";import"./vendor-mermaid-CMiurk2b.js";import{G as u,at as d,it as f}from"./index-ZFyltHwi.js";import"./use-monaco-theme-CP-vyTF8.js";import{t as p}from"./sql-query-editor-CMQpaOjA.js";import{n as m,r as h,t as g}from"./lib-D_kRA9p6.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)(d,{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),d=(0,_.useRef)(!1);return(0,_.useEffect)(()=>{a&&!d.current&&l.tables.length>0&&(d.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)(f,{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-BHBb62gq.js";import"./vendor-mermaid-CMiurk2b.js";import{n as i}from"./utils-CTg5uAYR.js";import{R as a,et as o,nt as s}from"./index-ZFyltHwi.js";import{n as c,r as l,t as u}from"./vendor-xterm-u3AZMvTx.js";var d=e(n(),1),f={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`},p={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 m(e){return e===`system`?window.matchMedia(`(prefers-color-scheme: dark)`).matches?f:p:e===`light`?p:f}var h=`RESIZE:`;function g(e){let{sessionId:t,containerRef:n}=e,i=(0,d.useRef)(null),a=(0,d.useRef)(null),o=(0,d.useRef)(null),s=(0,d.useRef)(null),f=(0,d.useRef)(0),[p,g]=(0,d.useState)(!1),[_,v]=(0,d.useState)(!1),[y,b]=(0,d.useState)(!1),x=(0,d.useRef)(t),S=(0,d.useCallback)(e=>{let t=o.current;t?.readyState===WebSocket.OPEN&&t.send(e)},[]),C=(0,d.useCallback)(()=>i.current?.getSelection()??``,[]),w=(0,d.useCallback)(()=>{let e=i.current,t=o.current;e&&t?.readyState===WebSocket.OPEN&&t.send(`${h}${e.cols},${e.rows}`)},[]),T=(0,d.useCallback)(()=>{s.current&&clearTimeout(s.current),o.current?.close(),o.current=null,x.current=`new`,f.current=0,b(!1),g(!1),v(!1),setTimeout(()=>E(),0)},[]),E=(0,d.useCallback)(()=>{let t=i.current;if(!t)return;let n=window.location.protocol===`https:`?`wss:`:`ws:`,r=e.projectName??``,a=x.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,w()},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===`exited`){n.type===`session`&&n.id&&(x.current=n.id),n.type===`error`&&t.write(`\r\n\x1b[31mError: ${n.message}\x1b[0m\r\n`),n.type===`exited`&&b(!0);return}}catch{}t.write(e.data)}},c.onclose=()=>{g(!1),D()},c.onerror=()=>{c.close()}},[t,w]);function D(){let e=Math.min(1e3*2**f.current,3e4);f.current++,v(!0),s.current=setTimeout(()=>{E()},e)}return(0,d.useEffect)(()=>{let e=n.current;if(!e)return;let t=new l({cursorBlink:!0,fontSize:13,fontFamily:`var(--font-mono)`,theme:m(r.getState().theme)}),d=new c,f=new u;t.loadAddon(d),t.loadAddon(f),t.open(e),d.fit(),i.current=t,a.current=d,t.onData(e=>{let t=o.current;t?.readyState===WebSocket.OPEN&&t.send(e)}),E();let p=new ResizeObserver(()=>{try{d.fit(),w()}catch{}});p.observe(e);let h=r.getState().theme,g=r.subscribe(e=>{e.theme!==h&&(h=e.theme,t.options.theme=m(e.theme))});return()=>{g(),p.disconnect(),s.current&&clearTimeout(s.current),o.current?.close(),o.current=null,t.dispose(),i.current=null,a.current=null}},[t]),{connected:p,reconnecting:_,exited:y,sendData:S,getSelection:C,restart:T}}var _=t(),v=[{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`}],y=(0,d.memo)(function({metadata:e}){let t=e?.sessionId??`new`,n=e?.projectName,r=(0,d.useRef)(null),{connected:c,reconnecting:l,exited:u,sendData:f,getSelection:p,restart:m}=g({sessionId:t,projectName:n,containerRef:r}),[h,y]=(0,d.useState)(!1),[b,x]=(0,d.useState)(null);(0,d.useEffect)(()=>{let e=window.visualViewport;if(!e)return;function t(){e&&x(e.height)}return e.addEventListener(`resize`,t),()=>e.removeEventListener(`resize`,t)},[]);let S=(0,d.useCallback)(()=>{(r.current?.querySelector(`.xterm-helper-textarea`))?.focus()},[]),C=(0,d.useCallback)(e=>{if(S(),h&&e.length===1){let t=e.toLowerCase().charCodeAt(0)-96;t>=1&&t<=26&&f(String.fromCharCode(t)),y(!1);return}f(e)},[h,f,S]),w=(0,d.useCallback)(async()=>{let e=p();e&&await navigator.clipboard.writeText(e)},[p]),T=(0,d.useCallback)(async()=>{try{let e=await navigator.clipboard.readText();e&&(f(e),S())}catch{}},[f,S]),E=typeof window<`u`&&`ontouchstart`in window;return(0,_.jsxs)(`div`,{className:`flex flex-col h-full`,style:b?{maxHeight:`${b}px`}:void 0,children:[(0,_.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-1 bg-surface border-b border-border text-xs`,children:[(0,_.jsx)(`span`,{className:i(`size-2 rounded-full`,u?`bg-error`:c?`bg-success`:l?`bg-warning`:`bg-error`)}),(0,_.jsx)(`span`,{className:`text-text-secondary`,children:u?`Process exited`:c?`Connected`:l?`Reconnecting...`:`Disconnected`}),u&&(0,_.jsxs)(`button`,{onClick:m,className:`flex items-center gap-1 px-1.5 py-0.5 rounded text-xs bg-surface-elevated text-text-primary hover:bg-primary hover:text-primary-foreground active:bg-primary active:text-primary-foreground transition-colors`,children:[(0,_.jsx)(a,{size:10}),`Restart`]}),(0,_.jsx)(`span`,{className:`text-text-subtle ml-auto font-mono`,children:t})]}),(0,_.jsx)(`div`,{ref:r,className:`flex-1 min-h-0 bg-background p-1`}),E&&(0,_.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1.5 bg-surface border-t border-border overflow-x-auto`,children:[(0,_.jsx)(`button`,{onClick:w,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,_.jsx)(o,{size:14})}),(0,_.jsx)(`button`,{onClick:T,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,_.jsx)(s,{size:14})}),(0,_.jsx)(`div`,{className:`w-px h-5 bg-border mx-0.5`}),v.map(e=>(0,_.jsx)(`button`,{onClick:()=>{e.label===`Ctrl`?y(!h):e.value&&C(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`&&h&&`bg-primary text-primary-foreground`),children:e.label},e.label))]})]})});export{y as TerminalTab};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-BjHrJDVb.js";var t=e(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{M as e}from"./vendor-mermaid-CMiurk2b.js";export{e as createTreemapServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./createLucideIcon-BjHrJDVb.js";var t=e(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),n=e(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),r=e(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);export{n,t as r,r as t};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|