@hienlh/ppm 0.12.6 → 0.12.8
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/dist/web/assets/{ai-settings-section-BHdBBJtS.js → ai-settings-section-QE6nBNgN.js} +1 -1
- package/dist/web/assets/api-client-Dvzcc_EO.js +1 -0
- package/dist/web/assets/{api-settings-ByUGHhTB.js → api-settings-DAk7D-NP.js} +1 -1
- package/dist/web/assets/architecture-PBZL5I3N-DvZbltvY.js +1 -0
- package/dist/web/assets/{audio-preview-BMmzgbUs.js → audio-preview-DnQmf9fu.js} +1 -1
- package/dist/web/assets/chat-tab-Cf6T3mGO.js +12 -0
- package/dist/web/assets/code-editor-B-lU1fz3.js +8 -0
- package/dist/web/assets/{conflict-editor-CBietP8L.js → conflict-editor-BYzf3LuW.js} +1 -1
- package/dist/web/assets/{database-viewer-CZgooyFp.js → database-viewer-DjvnIn8p.js} +2 -2
- package/dist/web/assets/{diff-viewer-BVYjlTcF.js → diff-viewer-CP2jcR5J.js} +1 -1
- package/dist/web/assets/{extension-webview-DyZOGDb1.js → extension-webview-4xMREn_x.js} +1 -1
- package/dist/web/assets/file-store-BrbCNyLm.js +1 -0
- package/dist/web/assets/gitGraph-HDMCJU4V-BxhdxFgj.js +1 -0
- package/dist/web/assets/github-dark-dimmed.min-BrpRStFV.css +1 -0
- package/dist/web/assets/github.min-D2BCvnWf.css +1 -0
- package/dist/web/assets/{image-preview-k8_kzoHe.js → image-preview-CkS2PVdQ.js} +1 -1
- package/dist/web/assets/index-BTjuH4fn.css +2 -0
- package/dist/web/assets/index-FGlF8IWZ.js +23 -0
- package/dist/web/assets/info-3K5VOQVL-BwAZ2zd8.js +1 -0
- package/dist/web/assets/{keybindings-store-CThBg3hS.js → keybindings-store-B-zET-0o.js} +1 -1
- package/dist/web/assets/keybindings-store-DaBV6qhz.js +1 -0
- package/dist/web/assets/{markdown-renderer-CJOPseDk.js → markdown-renderer-Bj2B05Km.js} +3 -3
- package/dist/web/assets/packet-RMMSAZCW-tx2n5Qry.js +1 -0
- package/dist/web/assets/{pdf-preview-GCIIaZVw.js → pdf-preview-CCyw5cuH.js} +1 -1
- package/dist/web/assets/pie-UPGHQEXC-D6S2MqVT.js +1 -0
- package/dist/web/assets/{port-forwarding-tab-DzLa02_D.js → port-forwarding-tab-Cebb5Eix.js} +1 -1
- package/dist/web/assets/{postgres-viewer-JCT24Yqh.js → postgres-viewer-BrOiliEv.js} +2 -2
- package/dist/web/assets/radar-KQ55EAFF-BviZcL-b.js +1 -0
- package/dist/web/assets/settings-store-BLLR7ed8.js +2 -0
- package/dist/web/assets/settings-tab-D0XjupJm.js +1 -0
- package/dist/web/assets/{sql-query-editor-JwymAmuK.js → sql-query-editor-CVAnRFbi.js} +1 -1
- package/dist/web/assets/{sqlite-viewer-nA_Biwex.js → sqlite-viewer-OEVq_-Po.js} +1 -1
- package/dist/web/assets/{terminal-tab-DvKxdDv4.js → terminal-tab-MjmJaQyA.js} +1 -1
- package/dist/web/assets/treemap-KZPCXAKY-CM54VdaB.js +1 -0
- package/dist/web/assets/{use-blob-url-BU9hYOj9.js → use-blob-url-e9uTXjv5.js} +1 -1
- package/dist/web/assets/{use-monaco-theme-o7Ip-BDL.js → use-monaco-theme-BkZDwoVd.js} +1 -1
- package/dist/web/assets/{vendor-mermaid-BlWh9BJO.js → vendor-mermaid-Dx86tuVP.js} +1 -1
- package/dist/web/assets/{video-preview-CAGgINCA.js → video-preview-B819qvlp.js} +1 -1
- package/dist/web/index.html +10 -10
- package/dist/web/sw.js +1 -1
- package/docs/journals/260421-lazy-load-file-tree-palette-index.md +125 -0
- package/docs/project-changelog.md +13 -1
- package/docs/system-architecture.md +79 -1
- package/package.json +1 -1
- package/src/server/index.ts +1 -1
- package/src/server/routes/files.ts +40 -2
- package/src/server/routes/projects.ts +53 -0
- package/src/server/routes/settings.ts +50 -1
- package/src/services/config.service.ts +41 -0
- package/src/services/db.service.ts +57 -1
- package/src/services/file-filter.service.ts +121 -0
- package/src/services/file-list-index.service.ts +170 -0
- package/src/services/file-watcher.service.ts +8 -4
- package/src/services/file.service.ts +55 -53
- package/src/services/upgrade.service.ts +2 -2
- package/src/types/chat.ts +2 -1
- package/src/types/project.ts +31 -0
- package/src/web/components/chat/file-picker.tsx +0 -13
- package/src/web/components/chat/message-input.tsx +11 -14
- package/src/web/components/chat/tool-cards.tsx +4 -2
- package/src/web/components/explorer/file-tree.tsx +91 -26
- package/src/web/components/layout/command-palette.tsx +26 -3
- package/src/web/components/settings/files-settings-section.tsx +230 -0
- package/src/web/components/settings/glob-list-editor.tsx +121 -0
- package/src/web/components/settings/settings-tab.tsx +5 -2
- package/src/web/lib/api-client.ts +2 -1
- package/src/web/lib/api-files-settings.ts +42 -0
- package/src/web/main.tsx +1 -1
- package/src/web/stores/file-store.ts +139 -14
- package/src/web/stores/file-tree-merge-helpers.ts +44 -0
- package/src/web/stores/jira-store.ts +1 -1
- package/src/web/stores/settings-store.ts +20 -0
- package/src/web/styles/globals.css +2 -8
- package/dist/web/assets/api-client-CwbMRXYl.js +0 -1
- package/dist/web/assets/architecture-PBZL5I3N-XX6_EZsC.js +0 -1
- package/dist/web/assets/chat-tab-NteLsEST.js +0 -12
- package/dist/web/assets/code-editor-Da9GXN5w.js +0 -8
- package/dist/web/assets/gitGraph-HDMCJU4V-BhjTKsbg.js +0 -1
- package/dist/web/assets/index-CDSox8V2.css +0 -2
- package/dist/web/assets/index-CXR1vYHY.js +0 -23
- package/dist/web/assets/info-3K5VOQVL-CzgVqYTx.js +0 -1
- package/dist/web/assets/keybindings-store-BIQHClUy.js +0 -1
- package/dist/web/assets/packet-RMMSAZCW-C7agXrtd.js +0 -1
- package/dist/web/assets/pie-UPGHQEXC-BRZ7alnf.js +0 -1
- package/dist/web/assets/project-store-IB6pAGQh.js +0 -1
- package/dist/web/assets/radar-KQ55EAFF-DSn_ekR5.js +0 -1
- package/dist/web/assets/settings-store-fDOEursg.js +0 -2
- package/dist/web/assets/settings-tab-bYmVV0Ww.js +0 -1
- package/dist/web/assets/treemap-KZPCXAKY-C8puYVyN.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{B as e}from"./vendor-mermaid-BlWh9BJO.js";export{e as createInfoServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./vendor-markdown-0Mxgxy0L.js";import"./api-client-CwbMRXYl.js";import{o as e}from"./keybindings-store-CThBg3hS.js";export{e as useKeybindingsStore};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{R as e}from"./vendor-mermaid-BlWh9BJO.js";export{e as createPacketServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as e}from"./vendor-mermaid-BlWh9BJO.js";export{e as createPieServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./react-GqWghJ-L.js";import{t}from"./api-client-CwbMRXYl.js";var n=`ppm-custom-order`;function r(){try{let e=localStorage.getItem(n);return e?JSON.parse(e):null}catch{return null}}function i(e){try{localStorage.setItem(n,JSON.stringify(e))}catch{}}function a(e,t){if(!t)return[...e];let n=new Map(t.map((e,t)=>[e,t]));return[...e].sort((e,t)=>(n.get(e.name)??1/0)-(n.get(t.name)??1/0))}var o=e((e,n)=>({projects:[],activeProject:null,customOrder:r(),loading:!1,error:null,fetchProjects:async()=>{e({loading:!0,error:null});try{e({projects:await t.get(`/api/projects`),loading:!1})}catch(t){e({error:t instanceof Error?t.message:`Failed to fetch projects`,loading:!1})}},setActiveProject:t=>{e({activeProject:t})},addProject:async(r,i)=>{let a=await t.post(`/api/projects`,{path:r,name:i});await n().fetchProjects();let o=n().projects.find(e=>e.name===(i??a.name)||e.path===r);return o&&e({activeProject:o}),a},setProjectColor:async(e,r)=>{await t.patch(`/api/projects/${encodeURIComponent(e)}/color`,{color:r}),await n().fetchProjects()},moveProject:async(r,o)=>{let{projects:s,customOrder:c}=n(),l=a(s,c),u=l.findIndex(e=>e.name===r);if(u===-1)return;let d=o===`up`?u-1:u+1;if(d<0||d>=l.length)return;let f=l.map(e=>e.name);[f[u],f[d]]=[f[d],f[u]],i(f),await t.patch(`/api/projects/reorder`,{order:f}),e({customOrder:f})},reorderProjects:async n=>{i(n),e({customOrder:n}),await t.patch(`/api/projects/reorder`,{order:n}).catch(()=>{})},renameProject:async(e,r)=>{await t.patch(`/api/projects/${encodeURIComponent(e)}`,{name:r}),await n().fetchProjects()},deleteProject:async n=>{await t.del(`/api/projects/${encodeURIComponent(n)}`),e(e=>{let t=e.projects.filter(e=>e.name!==n),r=e.customOrder?e.customOrder.filter(e=>e!==n):null;return r&&i(r),{projects:t,customOrder:r,activeProject:e.activeProject?.name===n?t[0]??null:e.activeProject}})}}));export{o as n,a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{P as e}from"./vendor-mermaid-BlWh9BJO.js";export{e as createRadarServices};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/api-settings-ByUGHhTB.js","assets/rolldown-runtime-FhOqtrmT.js","assets/api-client-CwbMRXYl.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{t as e}from"./react-GqWghJ-L.js";import{r as t}from"./api-client-CwbMRXYl.js";import{G as n}from"./vendor-mermaid-BlWh9BJO.js";var r=`ppm-settings`;function i(){try{let e=localStorage.getItem(r);if(e)return JSON.parse(e)}catch{}return{}}function a(e){return typeof e==`string`?[`explorer`,`git`,`settings`,`database`,`search`,`jira`].includes(e)||e.startsWith(`ext:`):!1}function o(e){let t=i();localStorage.setItem(r,JSON.stringify({...t,...e}))}function s(e){let t=e===`system`?window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:e;document.documentElement.classList.toggle(`dark`,t===`dark`),document.documentElement.classList.toggle(`light`,t===`light`);let n=document.querySelector(`meta[name="theme-color"]`);n&&n.setAttribute(`content`,t===`dark`?`#0f1419`:`#ffffff`)}var c=i(),l=e((e,r)=>({theme:c.theme===`light`||c.theme===`dark`||c.theme===`system`?c.theme:`system`,sidebarCollapsed:c.sidebarCollapsed??!1,sidebarWidth:c.sidebarWidth??280,gitStatusViewMode:c.gitStatusViewMode===`flat`?`flat`:`tree`,wordWrap:c.wordWrap??!1,sidebarActiveTab:a(c.sidebarActiveTab)?c.sidebarActiveTab:`explorer`,jiraEnabled:c.jiraEnabled??!1,deviceName:null,version:null,setTheme:n=>{o({theme:n}),s(n),e({theme:n});let r=t();fetch(`/api/settings/theme`,{method:`PUT`,headers:{"Content-Type":`application/json`,...r?{Authorization:`Bearer ${r}`}:{}},body:JSON.stringify({theme:n})}).catch(()=>{})},setDeviceName:async t=>{let r=t.trim();e({deviceName:r||null}),r?document.title=`PPM — ${r}`:document.title=`PPM`;try{let{updateDeviceName:e}=await n(async()=>{let{updateDeviceName:e}=await import(`./api-settings-ByUGHhTB.js`).then(e=>e.n);return{updateDeviceName:e}},__vite__mapDeps([0,1,2]));await e(r)}catch{}},setJiraEnabled:t=>{if(o({jiraEnabled:t}),e({jiraEnabled:t}),!t&&r().sidebarActiveTab===`jira`){let t=`explorer`;o({sidebarActiveTab:t}),e({sidebarActiveTab:t})}},toggleSidebar:()=>{let t=!r().sidebarCollapsed;o({sidebarCollapsed:t}),e({sidebarCollapsed:t})},setSidebarWidth:t=>{let n=Math.max(200,Math.min(600,t));o({sidebarWidth:n}),e({sidebarWidth:n})},setGitStatusViewMode:t=>{o({gitStatusViewMode:t}),e({gitStatusViewMode:t})},toggleWordWrap:()=>{let t=!r().wordWrap;o({wordWrap:t}),e({wordWrap:t})},setSidebarActiveTab:t=>{o({sidebarActiveTab:t}),e({sidebarActiveTab:t})},fetchServerInfo:async()=>{try{let n=t(),r=n?{headers:{Authorization:`Bearer ${n}`}}:{},[i,a]=await Promise.all([fetch(`/api/info`,r),fetch(`/api/settings/theme`,r)]),c=await i.json();if(c.ok){let{device_name:t,version:n}=c.data;e({deviceName:t||null,version:n||null}),t&&(document.title=`PPM — ${t}`)}let l=await a.json();if(l.ok&&l.data?.theme){let t=l.data.theme;o({theme:t}),s(t),e({theme:t})}}catch{}}}));export{l as n,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./vendor-markdown-0Mxgxy0L.js";import"./vendor-ui-B-89Uj8i.js";import"./scroll-area-BEllam7_.js";import"./ai-settings-section-BHdBBJtS.js";import"./dist-D7KGU7Vl.js";import"./input-Dk49gO8E.js";import"./api-client-CwbMRXYl.js";import"./vendor-mermaid-BlWh9BJO.js";import"./settings-store-fDOEursg.js";import"./keybindings-store-CThBg3hS.js";import"./extension-store-3yZYn07W.js";import"./api-settings-ByUGHhTB.js";import{s as e}from"./index-CXR1vYHY.js";export{e as SettingsTab};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{M as e}from"./vendor-mermaid-BlWh9BJO.js";export{e as createTreemapServices};
|