octiqflow-darwin-arm64 0.3.40 → 0.3.44

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.
Files changed (78) hide show
  1. package/bin/octiq-server +0 -0
  2. package/bin/v2/assets/DiskPage-B_A2pIXn.js +5 -0
  3. package/bin/v2/assets/DiskPage-B_A2pIXn.js.br +0 -0
  4. package/bin/v2/assets/DiskPage-B_A2pIXn.js.gz +0 -0
  5. package/bin/v2/assets/{index-aAg8nx4n.js → index-4QGYafcv.js} +1 -1
  6. package/bin/v2/assets/index-4QGYafcv.js.br +0 -0
  7. package/bin/v2/assets/index-4QGYafcv.js.gz +0 -0
  8. package/bin/v2/assets/index-B8DT5HKJ.css +1 -0
  9. package/bin/v2/assets/index-B8DT5HKJ.css.br +0 -0
  10. package/bin/v2/assets/index-B8DT5HKJ.css.gz +0 -0
  11. package/bin/v2/assets/index-BEnG7EBl.js +593 -0
  12. package/bin/v2/assets/index-BEnG7EBl.js.br +0 -0
  13. package/bin/v2/assets/index-BEnG7EBl.js.gz +0 -0
  14. package/bin/v2/assets/index-Bfgpu-Be.js +1 -0
  15. package/bin/v2/assets/index-Bfgpu-Be.js.br +0 -0
  16. package/bin/v2/assets/index-Bfgpu-Be.js.gz +0 -0
  17. package/bin/v2/assets/{index-BBZdXhTn.js → index-C4lBhvt5.js} +1 -1
  18. package/bin/v2/assets/index-C4lBhvt5.js.br +0 -0
  19. package/bin/v2/assets/index-C4lBhvt5.js.gz +0 -0
  20. package/bin/v2/assets/{index-CW5FXoOo.js → index-CQcqpmBe.js} +1 -1
  21. package/bin/v2/assets/index-CQcqpmBe.js.br +0 -0
  22. package/bin/v2/assets/index-CQcqpmBe.js.gz +0 -0
  23. package/bin/v2/assets/{index-BoxTWDHI.js → index-C_nCGOiw.js} +1 -1
  24. package/bin/v2/assets/index-C_nCGOiw.js.br +0 -0
  25. package/bin/v2/assets/index-C_nCGOiw.js.gz +0 -0
  26. package/bin/v2/assets/{index-CSV8GzPE.js → index-CnCfdzag.js} +1 -1
  27. package/bin/v2/assets/index-CnCfdzag.js.br +0 -0
  28. package/bin/v2/assets/index-CnCfdzag.js.gz +0 -0
  29. package/bin/v2/assets/{index-Dtc_UqPy.js → index-Cqgygv7O.js} +1 -1
  30. package/bin/v2/assets/index-Cqgygv7O.js.br +0 -0
  31. package/bin/v2/assets/index-Cqgygv7O.js.gz +0 -0
  32. package/bin/v2/assets/{index-CQqBwqod.js → index-D-dEcMHf.js} +1 -1
  33. package/bin/v2/assets/index-D-dEcMHf.js.br +0 -0
  34. package/bin/v2/assets/index-D-dEcMHf.js.gz +0 -0
  35. package/bin/v2/assets/index-DATjxDfB.js +1 -0
  36. package/bin/v2/assets/index-DATjxDfB.js.br +0 -0
  37. package/bin/v2/assets/index-DATjxDfB.js.gz +0 -0
  38. package/bin/v2/assets/{index-BC2HBfQL.js → index-Den3rRVe.js} +1 -1
  39. package/bin/v2/assets/index-Den3rRVe.js.br +0 -0
  40. package/bin/v2/assets/index-Den3rRVe.js.gz +0 -0
  41. package/bin/v2/assets/{index-C5V7BLmd.js → index-T2t1J2pm.js} +1 -1
  42. package/bin/v2/assets/index-T2t1J2pm.js.br +0 -0
  43. package/bin/v2/assets/index-T2t1J2pm.js.gz +0 -0
  44. package/bin/v2/index.html +2 -2
  45. package/package.json +1 -1
  46. package/bin/v2/assets/DiskPage-DXlF2rYQ.js +0 -5
  47. package/bin/v2/assets/DiskPage-DXlF2rYQ.js.br +0 -0
  48. package/bin/v2/assets/DiskPage-DXlF2rYQ.js.gz +0 -0
  49. package/bin/v2/assets/index-BBZdXhTn.js.br +0 -0
  50. package/bin/v2/assets/index-BBZdXhTn.js.gz +0 -0
  51. package/bin/v2/assets/index-BC2HBfQL.js.br +0 -0
  52. package/bin/v2/assets/index-BC2HBfQL.js.gz +0 -0
  53. package/bin/v2/assets/index-BoxTWDHI.js.br +0 -0
  54. package/bin/v2/assets/index-BoxTWDHI.js.gz +0 -0
  55. package/bin/v2/assets/index-Bsdxgapi.js +0 -1
  56. package/bin/v2/assets/index-Bsdxgapi.js.br +0 -0
  57. package/bin/v2/assets/index-Bsdxgapi.js.gz +0 -0
  58. package/bin/v2/assets/index-C5V7BLmd.js.br +0 -0
  59. package/bin/v2/assets/index-C5V7BLmd.js.gz +0 -0
  60. package/bin/v2/assets/index-C6QslKFr.js +0 -593
  61. package/bin/v2/assets/index-C6QslKFr.js.br +0 -0
  62. package/bin/v2/assets/index-C6QslKFr.js.gz +0 -0
  63. package/bin/v2/assets/index-CQqBwqod.js.br +0 -0
  64. package/bin/v2/assets/index-CQqBwqod.js.gz +0 -0
  65. package/bin/v2/assets/index-CSV8GzPE.js.br +0 -0
  66. package/bin/v2/assets/index-CSV8GzPE.js.gz +0 -0
  67. package/bin/v2/assets/index-CW5FXoOo.js.br +0 -0
  68. package/bin/v2/assets/index-CW5FXoOo.js.gz +0 -0
  69. package/bin/v2/assets/index-DJH66ly-.css +0 -1
  70. package/bin/v2/assets/index-DJH66ly-.css.br +0 -0
  71. package/bin/v2/assets/index-DJH66ly-.css.gz +0 -0
  72. package/bin/v2/assets/index-Dtc_UqPy.js.br +0 -0
  73. package/bin/v2/assets/index-Dtc_UqPy.js.gz +0 -0
  74. package/bin/v2/assets/index-aAg8nx4n.js.br +0 -0
  75. package/bin/v2/assets/index-aAg8nx4n.js.gz +0 -0
  76. package/bin/v2/assets/index-pkfg-T0o.js +0 -1
  77. package/bin/v2/assets/index-pkfg-T0o.js.br +0 -0
  78. package/bin/v2/assets/index-pkfg-T0o.js.gz +0 -0
package/bin/octiq-server CHANGED
Binary file
@@ -0,0 +1,5 @@
1
+ import{r as g,b as M,u as je,j as s,a as he,d as q,o as Ne,c as P,F as K,e as G,f as pe,n as fe,W as ve,A as Se}from"./index-BEnG7EBl.js";const T=e=>e&&typeof e=="object"?e:{},v=(e,n="")=>typeof e=="string"?e:n,L=e=>typeof e=="number"&&Number.isFinite(e)&&e>=0?e:0,H=e=>typeof e=="number"&&Number.isFinite(e)&&e>=0?e:null;function $e(e){const n=T(e);if(!v(n.scanId))return null;const i=new Set,d=(Array.isArray(n.items)?n.items:[]).flatMap(r=>{const o=T(r),m=v(o.id);if(!m||i.has(m))return[];i.add(m);const f=o.worktree?T(o.worktree):null;return[{id:m,key:v(o.key,m),group:o.group==="clean"||o.group==="review"?o.group:"work",kind:v(o.kind),label:v(o.label,v(o.kind,"Folder")),path:v(o.path),bytes:L(o.bytes),effect:v(o.effect),note:v(o.note),notRecommended:o.notRecommended===!0,action:["tool","docker","worktree","rm","rmOlderThan"].includes(v(T(o.action).type))?o.action:null,previousBytes:H(o.previousBytes),grew:o.grew===!0,worktree:f?{repo:v(f.repo),branch:v(f.branch),clean:typeof f.clean=="boolean"?f.clean:void 0,merged:typeof f.merged=="boolean"?f.merged:void 0,mainline:typeof f.mainline=="boolean"?f.mainline:void 0,inUse:typeof f.inUse=="boolean"?f.inUse:void 0,eligible:typeof f.eligible=="boolean"?f.eligible:void 0,idleDays:H(f.idleDays)??void 0,ignoredBytes:L(f.ignoredBytes)}:void 0}]});return{scanId:v(n.scanId),scannedAt:L(n.scannedAt),platform:n.platform==="macos"||n.platform==="windows"||n.platform==="linux"?n.platform:"unknown",home:v(n.home),thresholdBytes:L(n.thresholdBytes),totalBytes:H(n.totalBytes)??d.reduce((r,o)=>r+o.bytes,0),items:d,skipped:(Array.isArray(n.skipped)?n.skipped:[]).map(r=>{const o=T(r);return{path:v(o.path),reason:v(o.reason,"Unknown reason")}}),previousScanAt:H(n.previousScanAt)}}function me(e){const n=T(e);return v(n.scanId)?{scanId:v(n.scanId),startedAt:L(n.startedAt),phase:v(n.phase,"home"),entries:L(n.entries),bytes:L(n.bytes),path:v(n.path)}:null}function Ce(e){const n=T(e);return{running:me(n.running),report:$e(n.report)}}function Ie(e,n){return e.filter(i=>i.group===n).sort((i,d)=>d.bytes-i.bytes)}function _(e){return e.group!=="work"&&e.action!==null}function Ae(e,n){const i=new Set(e),d=n.filter(_),r=d.every(o=>e.has(o.id));return d.forEach(o=>r?i.delete(o.id):i.add(o.id)),i}function Fe(e,n,i){const d=e.filter(r=>_(r)&&n.has(r.id));return{ids:d.map(r=>r.id),count:d.length,bytes:d.reduce((r,o)=>r+o.bytes,0),skippedCount:d.filter(r=>!i&&(!r.action||r.action.type==="rm"||r.action.type==="rmOlderThan")).length}}function I(e){const n=L(e);return n<1e6?`${(n/1e3).toLocaleString("en-US",{maximumFractionDigits:0})} KB`:n<1e9?`${(n/1e6).toLocaleString("en-US",{maximumFractionDigits:1})} MB`:`${(n/1e9).toLocaleString("en-US",{maximumFractionDigits:2})} GB`}function Q(e){if(!e)return"an unknown date";const n=new Date(e<1e12?e*1e3:e);return Number.isNaN(n.getTime())?"an unknown date":n.toLocaleString("en-US",{dateStyle:"medium",timeStyle:"short"})}const R={clean:"Safe to clean",review:"Review first",work:"Your work"};function re(e,n,i){if(!(n>0&&i>0&&Number.isFinite(n*i)))return[];const d=e.filter(c=>c.bytes>0&&Number.isFinite(c.bytes)),r=d.reduce((c,x)=>Math.max(c,x.bytes),0),o=d.reduce((c,x)=>c+x.bytes/r,0),m=d.map(c=>({id:c.id,area:c.bytes/r/o*n*i})),f=[];let w=0,b=0,h=n,t=i,p=0;const k=(c,x)=>{const j=c.reduce((l,u)=>l+u.area,0),a=c.map(l=>l.area);return Math.max(x*x*Math.max(...a)/(j*j),j*j/(x*x*Math.min(...a)))};for(;p<m.length;){const c=[m[p++]],x=Math.min(h,t);for(;p<m.length&&k([...c,m[p]],x)<=k(c,x);)c.push(m[p++]);const j=c.reduce((y,N)=>y+N.area,0),a=h>=t,l=j/(a?t:h);let u=0;c.forEach((y,N)=>{const $=N===c.length-1?(a?t:h)-u:y.area/l;f.push({id:y.id,x:w+(a?0:u),y:b+(a?u:0),width:a?l:$,height:a?$:l}),u+=$}),a?(w+=l,h=Math.max(0,n-w)):(b+=l,t=Math.max(0,i-b))}return f}function De(e,n,i=.015){const d=[];for(const r of["clean","review","work"]){const o=new Map;for(const t of e){if(t.group!==r||!(t.bytes>0&&Number.isFinite(t.bytes)))continue;const p=o.get(t.kind)??[];p.push(t),o.set(t.kind,p)}const m=(t,p,k)=>({id:t,group:r,label:p,items:[...k].sort((c,x)=>x.bytes-c.bytes),bytes:k.reduce((c,x)=>c+x.bytes,0),selectedCount:k.filter(c=>_(c)&&n.has(c.id)).length}),f=[...o].map(([t,p])=>{const k=p.length===1?p[0].label:t==="git-worktree"?"Linked Git worktrees":p.every(c=>c.label===p[0].label)?p[0].label:(t.replace(/[-_]/g," ")||"Folders").replace(/^./,c=>c.toUpperCase());return m(JSON.stringify([r,t]),k,p)}),w=f.reduce((t,p)=>t+p.bytes,0),b=f.filter(t=>t.bytes/w<i),h=f.filter(t=>t.bytes/w>=i);b.length&&h.push(m(JSON.stringify([r,null]),"Other",b.flatMap(t=>[...t.items]))),d.push(...h.sort((t,p)=>p.bytes-t.bytes||t.id.localeCompare(p.id)))}return d}const ae=(e,n)=>n.bytes-e.bytes||e.id.localeCompare(n.id);function O(e,n,i){return{id:i,label:n,group:e[0].group,bytes:e.reduce((d,r)=>d+r.bytes,0),selectedCount:e.reduce((d,r)=>d+r.selectedCount,0),items:e.flatMap(d=>[...d.items]).sort((d,r)=>r.bytes-d.bytes)}}function Re(e,n,i,d){const r=["clean","review","work"].flatMap(b=>{const h=e.filter(t=>t.group===b);return h.length?[O(h,R[b],JSON.stringify([b]))]:[]}),o=(b,h)=>{const t=d(h);return b.width>=t.width&&b.height>=t.height},m=[],f=new Map(r.map(b=>[b.id,e.filter(h=>h.group===b.group).sort(ae)]));let w=r;for(;;){const b=re(w,n,i),h=[];let t=!1;for(const p of w){const k=b.find(u=>u.id===p.id);if(!k||!o(k,p)){m.push(p),f.delete(p.id),t=!0;continue}let c=f.get(p.id);const x=re(c,k.width,k.height),j=c.filter(u=>!o(x.find(y=>y.id===u.id),u));if(!j.length){h.push({box:k,tiles:x.map(u=>({...c.find(y=>y.id===u.id),...u}))});continue}if(t=!0,c.length===1){f.set(p.id,[p]);continue}const a=JSON.stringify([p.group,null]),l=c.find(u=>u.id===a);if(l&&j.every(u=>u===l))m.push(l),c=c.filter(u=>u!==l);else{const u=c.filter(N=>N!==l).at(-1);c=c.filter(N=>N!==u&&N!==l);const y=m.findIndex(N=>N.id===a);y>=0?m[y]=O([u,m[y]],"Other",a):(c.push(O(l?[u,l]:[u],"Other",a)),c.sort(ae)),c.length===1&&(c=[O(c,p.label,p.id)])}f.set(p.id,c)}if(!t)return{regions:h,summaries:m};w=w.filter(p=>f.has(p.id)).map(p=>O(f.get(p.id),p.label,p.id))}}const ie=e=>String(e?.message??e);function Be(e){const[n,i]=g.useState({running:null,report:null}),[d,r]=g.useState(null),[o,m]=g.useState(!1),[f,w]=g.useState(!0),b=g.useRef(0),h=g.useRef(!1),t=g.useRef(n),p=g.useRef(new Set),k=g.useCallback(j=>{t.current=j,i(j)},[]),c=g.useCallback(async()=>{const j=++b.current;try{const a=await M.invoke("disk_scan_state",{});if(!h.current||j!==b.current)return;const l=Ce(a);l.running&&p.current.has(l.running.scanId)&&(l.running=null),k(l),r(null)}catch(a){h.current&&j===b.current&&r(ie(a))}finally{h.current&&j===b.current&&w(!1)}},[k]);g.useEffect(()=>(h.current=!0,()=>{h.current=!1,++b.current}),[]),g.useEffect(()=>{if(!e){w(!1);return}const j=M.on("disk-scan-progress",l=>{const u=me(l);!u||p.current.has(u.scanId)||t.current.running&&t.current.running.scanId!==u.scanId||(++b.current,k({...t.current,running:u}),w(!1))}),a=M.on("disk-scan-done",l=>{l?.scanId&&(p.current.add(l.scanId),t.current.running?.scanId===l.scanId&&k({...t.current,running:null}),c().then(()=>{h.current&&l.error&&r(String(l.error))}))});return c(),()=>{j(),a(),++b.current}},[e,c,k]);const x=g.useCallback(async()=>{if(!e||o)return;m(!0),r(null);const j=t.current.running;try{await M.invoke(j?"disk_scan_cancel":"disk_scan_start",j?{scanId:j.scanId}:{}),h.current&&await c()}catch(a){h.current&&r(ie(a))}finally{h.current&&m(!1)}},[e,o,c]);return{...n,error:d,pending:o,loading:f,scan:x}}const Me={enabled:!0,buildAfterDays:3,removeAfterDays:14},Z=e=>`worktree-lifespan:${e}`,Ee=["Needs you","Waiting to clear","Kept","In use"];function Le(e){return e.owner.kind==="unknown"?"In use":e.pinned?"Kept":e.state==="abandoned"?"Needs you":e.state==="finished"||e.state==="idle"?"Waiting to clear":"In use"}function le(e){const n=[e.stripAt,e.removeAt].filter(i=>i!==null);return n.length?Math.min(...n):null}function Ue(e){return Ee.map(n=>({label:n,items:e.filter(i=>Le(i)===n).sort((i,d)=>(n==="Waiting to clear"?(le(i)??1/0)-(le(d)??1/0):0)||i.owner.label.localeCompare(d.owner.label)||i.key.localeCompare(d.key))})).filter(n=>n.items.length)}function W(e){return new Date(e).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function Te(e){const n=Math.floor(e);return n<1?"Idle less than a day":`${n} idle ${n===1?"day":"days"}`}const ge="The host could not check for ignored files. Archive and remove is unavailable.";function be(e){return e.ignoredFiles!=null&&e.ignoredFiles>0?`${e.ignoredFiles} ignored ${e.ignoredFiles===1?"file":"files"}${e.ignoredBytes!=null?` (${I(e.ignoredBytes)})`:""}`:""}function V(e){return[e.dirtyFiles>0&&`${e.dirtyFiles} changed`,e.untrackedFiles>0&&`${e.untrackedFiles} new ${e.untrackedFiles===1?"file":"files"}`,be(e),e.unmergedCommits>0&&`${e.unmergedCommits} ${e.unmergedCommits===1?"commit":"commits"} not merged`,e.pushed===!1&&"Not pushed"].filter(Boolean).join(" · ")}function _e(e,n=!0){if(e.owner.kind==="unknown")return"Unknown owner · OctiqFlow leaves it alone";if(e.pinned)return"Kept · Automatic clearing paused";if(e.state==="active")return"In use";if(e.state==="abandoned")return"Abandoned · Waiting for you";const i=e.state==="finished"?"Finished":"Idle";if(!n)return`${i} · Automatic clearing off`;const d=[e.stripAt!==null&&`Build output clears ${W(e.stripAt)}`,e.removeAt!==null&&`Folder clears ${W(e.removeAt)}`].filter(Boolean);return[i,...d.length?d:["No clearing scheduled"]].join(" · ")}function We(e){return e.some(n=>n.bytes===null)?null:e.reduce((n,i)=>n+i.bytes,0)}function ke(e,n=!1){return`${n?"Last sweep":"Sweep"} removed ${e.removed.length} and freed ${I(e.freedBytes)}${e.stripped>0?` · ${e.stripped} build ${e.stripped===1?"output":"outputs"} cleared`:""}`}function ze(e,n){return!/^\d+$/.test(e)||!/^\d+$/.test(n)||!Number.isSafeInteger(Number(e))||!Number.isSafeInteger(Number(n))||Number(e)<1||Number(n)<1?"Use a whole number of at least 1 day for each window.":Number(e)>Number(n)?"Build output must clear no later than folders.":null}function Oe(e){const n=be(e),i=e.ignoredFiles==null?ge:n?`${n} will be deleted and ${e.ignoredFiles===1?"is":"are"} not in the archive.`:"";return{title:`Archive and remove ${e.owner.label}?`,body:`${i?`${i}
2
+ `:""}${e.path}
3
+ ${V(e)||"No changed files or unmerged commits reported."}
4
+ The archive keeps tracked changes and new files before removing this worktree.${i?"":" Ignored files are not kept."}`,confirmLabel:"Archive and remove",cancelLabel:"Keep worktree",decision:!0}}const J=e=>/'worktree_lifespan_\w+' is not available on this backend/.test(e),oe=e=>String(e?.message??e);function Pe({connected:e}){const[n,i]=g.useState(null),[d,r]=g.useState(!1),[o,m]=g.useState(null),[f,w]=g.useState({}),[b,h]=g.useState({}),t=g.useRef(!1),p=g.useRef(0),k=je(),c=g.useCallback(async()=>{const l=++p.current;try{const u=await M.invoke("worktree_lifespan_list",{});if(!t.current||l!==p.current)return;i(u),r(!1),m(null)}catch(u){if(!t.current||l!==p.current)return;const y=oe(u);r(J(y)),J(y)&&i(null),m(J(y)?null:y)}},[]);g.useEffect(()=>{if(t.current=!0,!e)return()=>{t.current=!1,++p.current};const l=M.on("worktree-swept",()=>{c()}),u=M.on("worktree-lifespan-changed",()=>{c()});return c(),()=>{t.current=!1,++p.current,l(),u()}},[e,c]);const x=async(l,u,y,N)=>{e&&(N&&N.ignoredFiles==null||await Ne(Z(l),async()=>{if(!(N&&!await k(Oe(N)))){t.current&&w($=>{const A={...$};return delete A[l],A});try{const $=await M.invoke(u,y);u==="worktree_lifespan_restore"&&t.current&&h(A=>({...A,[l]:$}))}catch($){t.current&&w(A=>({...A,[l]:oe($)}))}finally{await c()}}}))},j=n?We(n.items):null,a=n?.history.reduce((l,u)=>!l||u.at>l.at?u:l,null);return s.jsxs("section",{className:"worktree-lifespan","aria-label":"Worktrees",children:[s.jsxs("div",{className:"wt-head",children:[s.jsxs("h2",{children:["Worktrees",n?` · ${n.items.length}`:"",j!==null&&` · ${I(j)}`]}),n?.scanning&&s.jsx("span",{role:"status",children:"Scanning worktrees…"})]}),d?s.jsx("p",{className:"wt-quiet",children:"Worktree lifespan is not available on this backend."}):s.jsxs(s.Fragment,{children:[!e&&s.jsx("p",{className:"wt-quiet",children:"Connect to the host to review worktrees."}),o&&s.jsx("p",{className:"wt-error",role:"alert",children:o}),!n&&e&&!o&&s.jsx("p",{className:"wt-quiet",children:"Reading worktrees…"}),n&&s.jsxs(s.Fragment,{children:[s.jsx("p",{className:"wt-quiet",children:a?ke(a,!0):n.lastSweepAt!==null?`Last sweep ${W(n.lastSweepAt)}`:"No sweep yet"}),s.jsx(He,{settings:n.settings,connected:e,error:f.settings,action:x}),Ue(n.items).map(l=>s.jsxs("section",{className:`wt-group${l.label==="Needs you"?" wt-needs":""}`,"aria-label":l.label,children:[s.jsxs("h3",{children:[l.label," · ",l.items.length]}),l.items.map(u=>s.jsx(Ke,{item:u,enabled:n.settings.enabled,connected:e,error:f[u.key],action:x},u.key))]},l.label)),!!n.archives.length&&s.jsxs("section",{className:"wt-group","aria-label":"Archived",children:[s.jsxs("h3",{children:["Archived · ",n.archives.length]}),n.archives.map(l=>s.jsx(Ge,{archive:l,restored:b[l.key],connected:e,error:f[l.key],action:x},l.key))]}),!n.items.length&&!n.archives.length&&s.jsx("p",{className:"wt-quiet",children:"No managed worktrees."}),!!n.history.length&&s.jsx(Ye,{history:n.history})]})]})]})}function X({flightKey:e,connected:n,children:i,onClick:d,leading:r=!1}){const o=he(Z(e));return s.jsx("button",{type:"button",className:`wt-button${r?" wt-answer":""}`,disabled:!n||o,onKeyDown:q,onClick:m=>{pe(m)||(fe(m),d())},children:i})}function Ke({item:e,enabled:n,connected:i,error:d,action:r}){const o=P(e.key),m=e.owner.kind!=="unknown",f=m&&!e.pinned&&e.state==="abandoned";return s.jsxs("article",{className:`wt-row${f?" wt-needs-row":""}`,"aria-label":e.owner.label,children:[s.jsxs("div",{className:"wt-row-head",children:[s.jsx("strong",{children:e.owner.label}),e.bytes!==null&&s.jsx("span",{children:I(e.bytes)})]}),s.jsxs("p",{children:[e.repo,e.branch!==null&&` · ${e.branch}`," · ",Te(e.idleDays)]}),s.jsx("p",{className:"wt-fact",children:_e(e,n)}),f&&V(e)&&s.jsx("p",{children:V(e)}),f&&e.ignoredFiles==null&&s.jsx("p",{children:ge}),s.jsx(K,{fold:o,labels:["Path and details"],what:`details for ${e.owner.label}`}),s.jsxs(G,{fold:o,children:[s.jsx("code",{className:"wt-path",children:e.path}),s.jsx("p",{children:e.why}),e.unmergedCommits>0&&s.jsxs("p",{children:[e.unmergedCommits," ",e.unmergedCommits===1?"commit":"commits"," not merged"]}),e.pushed!==null&&s.jsx("p",{children:e.pushed?"Pushed":"Not pushed"}),e.buildBytes!==null&&s.jsxs("p",{children:["Build output · ",I(e.buildBytes)]})]}),m&&(e.pinned||e.state!=="active")&&s.jsxs("div",{className:"wt-actions",children:[s.jsx(X,{flightKey:e.key,connected:i,leading:f,onClick:()=>{r(e.key,"worktree_lifespan_keep",{key:e.key,keep:!e.pinned})},children:e.pinned?"Stop keeping":"Keep"}),f&&e.ignoredFiles!=null&&s.jsx(X,{flightKey:e.key,connected:i,onClick:()=>{r(e.key,"worktree_lifespan_archive",{key:e.key,expectedHead:e.head,expectedStatusHash:e.statusHash},e)},children:"Archive and remove"})]}),d&&s.jsx("p",{className:"wt-error",role:"alert",children:d})]})}function Ge({archive:e,restored:n,connected:i,error:d,action:r}){const o=P(e.key);return s.jsxs("article",{className:"wt-row","aria-label":`Archive ${e.branch??e.ref}`,children:[s.jsxs("strong",{children:[e.repo,e.branch!==null&&` · ${e.branch}`]}),s.jsxs("p",{children:["Archived ",W(e.archivedAt),e.files>0&&` · ${e.files} ${e.files===1?"file":"files"}`]}),s.jsx(K,{fold:o,labels:["Archive and original path"],what:`archive details for ${e.branch??e.ref}`}),s.jsxs(G,{fold:o,children:[s.jsx("code",{className:"wt-path",children:e.path}),s.jsx("code",{className:"wt-path",children:e.ref})]}),n?s.jsxs("p",{role:"status",children:["Restored ",s.jsx("code",{children:n.path}),n.branch!==null&&` · ${n.branch}`]}):e.restoredAt!==null?s.jsxs("p",{children:["Restored ",W(e.restoredAt)]}):s.jsx(X,{flightKey:e.key,connected:i,onClick:()=>{r(e.key,"worktree_lifespan_restore",{key:e.key})},children:"Restore"}),d&&s.jsx("p",{className:"wt-error",role:"alert",children:d})]})}function He({settings:e=Me,connected:n,error:i,action:d}){const[r,o]=g.useState({enabled:e.enabled,build:String(e.buildAfterDays),remove:String(e.removeAfterDays)});g.useEffect(()=>o({enabled:e.enabled,build:String(e.buildAfterDays),remove:String(e.removeAfterDays)}),[e.enabled,e.buildAfterDays,e.removeAfterDays]);const m=ze(r.build,r.remove),f=r.enabled!==e.enabled||Number(r.build)!==e.buildAfterDays||Number(r.remove)!==e.removeAfterDays,w=he(Z("settings")),b=h=>pe(h)?(h.preventDefault(),!1):(fe(h),!0);return s.jsxs("form",{className:"wt-settings","aria-label":"Worktree lifespan settings",onSubmit:h=>{h.preventDefault(),!m&&f&&n&&d("settings","worktree_lifespan_set",{enabled:r.enabled,buildAfterDays:Number(r.build),removeAfterDays:Number(r.remove)})},children:[s.jsxs("label",{children:[s.jsx("input",{type:"checkbox",role:"switch",checked:r.enabled,disabled:!n||w,onKeyDown:q,onClick:b,onChange:h=>o(t=>({...t,enabled:h.target.checked}))}),"Automatic clearing ",r.enabled?"on":"off"]}),s.jsxs("label",{children:["Build output after ",s.jsx("input",{"aria-label":"Build output idle days",type:"number",min:"1",step:"1",value:r.build,disabled:!n||w,onChange:h=>o(t=>({...t,build:h.target.value}))})," idle days"]}),s.jsxs("label",{children:["Folders after ",s.jsx("input",{"aria-label":"Folder idle days",type:"number",min:"1",step:"1",value:r.remove,disabled:!n||w,onChange:h=>o(t=>({...t,remove:h.target.value}))})," idle days"]}),s.jsx("button",{className:"wt-button",type:"submit",disabled:!n||w||!f||!!m,onKeyDown:q,onClick:h=>{b(h)},children:"Save settings"}),m&&s.jsx("p",{className:"wt-validation",role:"status",children:m}),i&&s.jsx("p",{className:"wt-error",role:"alert",children:i})]})}function Ye({history:e}){const n=P("worktree-sweep-history");return s.jsxs("div",{className:"wt-history",children:[s.jsx(K,{fold:n,labels:[`Past sweeps · ${e.length}`],what:"past sweeps"}),s.jsx(G,{fold:n,children:[...e].sort((i,d)=>d.at-i.at).map((i,d)=>s.jsxs("div",{className:"wt-sweep",children:[s.jsx("strong",{children:W(i.at)}),s.jsx("p",{children:ke(i)}),i.removed.map((r,o)=>s.jsxs("p",{children:[s.jsx("code",{className:"wt-path",children:r.path}),r.owner.label,r.branch!==null&&` · ${r.branch}`,r.bytes!==null&&` · ${I(r.bytes)}`]},o)),i.failed.map((r,o)=>s.jsxs("p",{className:"wt-error",children:[s.jsx("code",{className:"wt-path",children:r.path}),r.why]},o))]},`${i.at}:${d}`))})]})}function ts({connected:e,onClose:n}){const i=Be(e);return s.jsx(qe,{...i,worktrees:s.jsx(Pe,{connected:e}),connected:e,onScan:()=>{i.scan()},onClose:n})}const Je=[],ce=new Set;function qe({report:e,running:n=null,error:i,pending:d=!1,loading:r=!1,connected:o=!0,worktrees:m,onScan:f,onClose:w}){const[b,h]=g.useState({scanId:"",ids:ce}),[t,p]=g.useState(null),k=!!e&&t===e.scanId,[c,x]=g.useState(null),[j,a]=g.useState(null),[l,u]=g.useState(!1),y=g.useRef(e?.scanId);y.current=e?.scanId;const N=g.useRef(!0);g.useEffect(()=>(N.current=!0,()=>{N.current=!1}),[]),g.useEffect(()=>{x(null),a(null)},[e?.scanId]);const $=g.useRef(new Map),A=e?.items??Je,B=b.scanId===e?.scanId?b.ids:ce,U=Fe(A,B,k),ee=S=>{e&&h({scanId:e.scanId,ids:S})},[se,ne]=g.useState(null),z=se?.scanId===e?.scanId?se:null,xe=S=>{ne({scanId:e.scanId,ids:new Set(S.items.map(E=>E.id)),label:S.label});const C=$.current.get(S.items[0].id);C?.scrollIntoView({block:"center",behavior:"instant"}),C?.focus({preventScroll:!0})},Y=o?n?"Wait for the scan to finish before downloading a script.":U.count?null:"Select at least one item to download a script.":"Connect to the host to download a script.",ye=async()=>{if(!e||Y||l)return;const S=e.scanId;u(!0),a(null);try{const C=await M.invoke("disk_cleanup_script",{scanId:S,itemIds:U.ids,allowRm:k});if(!N.current||y.current!==S)return;if(typeof C?.script!="string"||typeof C?.fileName!="string"||!C.fileName)throw new Error("The host did not return a cleanup script.");const E=C.fileName.split(/[\\/]/).pop()||(e.platform==="windows"?"disk-cleanup.ps1":"disk-cleanup.sh"),F=URL.createObjectURL(new Blob([C.script],{type:"text/plain;charset=utf-8"})),D=document.createElement("a");D.href=F,D.download=E,document.body.append(D),D.click(),D.remove(),window.setTimeout(()=>URL.revokeObjectURL(F),1e3),x({scanId:S,fileName:E})}catch(C){N.current&&y.current===S&&a(String(C?.message??C))}finally{N.current&&u(!1)}},te=c?.scanId===e?.scanId?c?.fileName:e?.platform==="windows"?"disk-cleanup.ps1":"disk-cleanup.sh";return s.jsxs("section",{className:"disk-page","aria-label":"Disk report",children:[s.jsx(ve,{root:!0,title:s.jsx("h1",{children:"Disk"}),back:{label:"Chat",onClick:w},actions:s.jsx("button",{className:`disk-button${n?" is-scanning":""}`,type:"button",disabled:!o||d||r,onClick:f,"data-icon-action":!0,title:d?n?"Cancelling…":"Starting…":n?"Cancel scan":"Scan","aria-label":d?n?"Cancelling…":"Starting…":n?"Cancel scan":"Scan",children:s.jsx(Se,{name:n?"cancel":"refresh"})})}),s.jsxs("div",{className:"disk-body",children:[m,s.jsxs("div",{className:"disk-intro",children:[s.jsxs("div",{children:[s.jsx("h2",{children:"Development leftovers"}),s.jsx("p",{children:"Manual scans of your home folder and system temp. Metadata, Git and open-file checks only."})]}),e&&s.jsxs("div",{className:"disk-total",children:[s.jsx("strong",{children:I(e.totalBytes)}),s.jsxs("span",{children:[e.platform==="macos"?"macOS":e.platform==="windows"?"Windows":e.platform==="linux"?"Linux":"Unknown platform"," · Last scanned ",Q(e.scannedAt)]})]})]}),s.jsx("p",{className:"disk-promise",children:"This manual scan never deletes anything. You choose items, download a cleanup script and run it yourself."}),!o&&s.jsx("p",{className:"disk-message",role:"status",children:"Connect to the host to scan."}),i&&s.jsx("p",{className:"disk-error",role:"alert",children:i}),n&&s.jsxs("div",{className:"disk-progress",role:"status",children:[s.jsx("span",{className:"disk-progress-mark","aria-hidden":"true"}),s.jsxs("span",{children:["Scanning ",Qe(n.phase)," · ",n.entries.toLocaleString("en-US")," entries · ",I(n.bytes)," counted"]})]}),r&&!e&&s.jsx("p",{className:"disk-message",children:"Reading the last report…"}),!e&&!r&&s.jsxs("div",{className:"disk-empty",children:[s.jsx("h2",{children:"No scan yet"}),s.jsx("p",{children:"Scan when you want to review large development leftovers. Nothing is selected automatically."})]}),e&&s.jsxs(s.Fragment,{children:[s.jsxs("p",{className:"disk-threshold",children:["Items ≥ ",I(e.thresholdBytes)," · Size history: ",s.jsx("code",{children:"~/disk-report/sizes.csv"}),e.previousScanAt?` · Compared with ${Q(e.previousScanAt)}`:" · First recorded scan"]}),s.jsxs("div",{className:"disk-layout",children:[s.jsxs("div",{className:"disk-map-column",children:[s.jsx(Ve,{items:A,selected:B,onFocus:xe}),s.jsx("p",{className:"disk-map-help",children:"Area represents size. Choose a cleanup tile to highlight its rows. Your work is labelled only."})]}),s.jsxs("div",{className:"disk-list-column",children:[z&&s.jsxs("div",{className:"disk-found",role:"status",children:[z.label," · ",z.ids.size," ",z.ids.size===1?"row":"rows"," highlighted ",s.jsx("button",{type:"button",onClick:()=>ne(null),children:"Clear highlight"})]}),["clean","review"].map(S=>{const C=Ie(A,S),E=C.filter(_);return s.jsxs("section",{className:`disk-section disk-${S}`,"aria-label":R[S],children:[s.jsxs("div",{className:"disk-section-heading",children:[s.jsxs("h2",{children:[R[S]," ",s.jsx("span",{children:C.length})]}),s.jsxs("label",{className:"disk-tick-all",children:[s.jsx("input",{type:"checkbox",checked:E.length>0&&E.every(F=>B.has(F.id)),disabled:!E.length,onChange:()=>ee(Ae(B,C))}),"Select all",s.jsxs("span",{className:"sr-only",children:[" ",R[S]]})]})]}),!C.length&&s.jsx("p",{className:"disk-message",children:"No items in this section."}),C.map(F=>s.jsx(es,{item:F,highlighted:z?.ids.has(F.id),previousScanAt:e.previousScanAt,checked:B.has(F.id),onTick:()=>{if(!_(F))return;const D=new Set(B);D.has(F.id)?D.delete(F.id):D.add(F.id),ee(D)},rowRef:D=>{D?$.current.set(F.id,D):$.current.delete(F.id)}},`${e.scanId}:${F.id}`))]},S)}),s.jsx(ss,{report:e}),s.jsxs("section",{className:"disk-controls","aria-label":"Cleanup script",children:[s.jsxs("label",{className:"disk-rm-switch",children:[s.jsx("input",{type:"checkbox",role:"switch",checked:k,onChange:S=>p(S.target.checked?e.scanId:null)}),s.jsx("span",{children:"Use rm -rf for items with no tool command"})]}),s.jsx("p",{children:k?e.platform==="windows"?"The script can use PowerShell Remove-Item for these items.":"The script can use rm -rf for these items.":"Items with no tool command are printed as Skipped."}),s.jsxs("div",{className:"disk-download-row",children:[s.jsxs("strong",{children:[U.count," selected · ",I(U.bytes)]}),s.jsx("button",{className:"disk-button",type:"button",disabled:!!Y||l,"aria-describedby":"disk-download-reason",onClick:()=>{ye()},children:l?"Preparing script…":"Download cleanup script"})]}),U.skippedCount>0&&s.jsxs("p",{children:[U.skippedCount," selected ",U.skippedCount===1?"item will":"items will"," be printed as Skipped."]}),s.jsx("p",{id:"disk-download-reason",children:Y??"Review the script before running it."}),j&&s.jsx("p",{className:"disk-error",role:"alert",children:j}),s.jsxs("p",{className:"disk-run-example",children:["Run it in your terminal, for example: ",s.jsx("code",{children:e.platform==="windows"?`powershell -File "$HOME\\Downloads\\${te}"`:`bash ~/Downloads/${te}`})]})]})]})]})]})]})]})}function Qe(e){return{home:"home folder",temp:"system temp",git:"Git worktrees",history:"size history"}[e]??e}function de(e,n,i){return{left:`${e.x/n*100}%`,top:`${e.y/i*100}%`,width:`${e.width/n*100}%`,height:`${e.height/i*100}%`}}function Ve({items:e,selected:n,onFocus:i}){const d=g.useRef(null),[r,o]=g.useState(0),[m,f]=g.useState(null),[w,b]=Xe();g.useLayoutEffect(()=>{const a=d.current;if(!a)return;o(a.getBoundingClientRect().width);const l=new ResizeObserver(u=>{const y=u[0]?.contentRect.width;y>0&&o(y)});return l.observe(a),()=>l.disconnect()},[]);const h=Math.max(340,Math.min(520,r*1.1)),t=g.useMemo(()=>De(e,n),[e,n]),p=g.useMemo(()=>["clean","review","work"].map(a=>({id:a,bytes:t.filter(l=>l.group===a).reduce((l,u)=>l+u.bytes,0)})),[t]),k=g.useMemo(()=>w?Re(t,r,h,w):{regions:[],summaries:t},[t,r,h,w]),c=[...k.regions.flatMap(a=>a.tiles),...k.summaries],x=c.find(a=>a.id===m),j=(a,l)=>{const u=ue(a),y=!l,N=y?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"disk-tile-label",children:[a.label,a.label==="Other"?` in ${R[a.group]}`:""," · ",a.items.length," ",a.items.length===1?"item":"items"]}),s.jsx("span",{className:"disk-tile-size",children:we(a)})]}):s.jsx(Ze,{entry:a}),$=`${u}
5
+ ${a.items.length===1?a.items[0].path:`${a.items.length} items in ${R[a.group]}`}`,A={onMouseEnter:()=>{d.current?.parentElement?.contains(document.activeElement)||f(a.id)},onFocus:()=>f(a.id)},B=`${y?"disk-map-summary":"disk-tile"} disk-${a.group}${a.group==="work"?" is-work":""}${a.selectedCount?" is-selected":""}`;return a.group==="work"?s.jsx("div",{className:B,style:l,title:$,"aria-label":`${u}. Your work is labelled only.`,tabIndex:0,...A,children:N},a.id):s.jsx("button",{type:"button",className:B,style:l,title:$,"aria-label":`${u}. Find in ${R[a.group]}`,onClick:()=>i(a),...A,children:N},a.id)};return s.jsxs("section",{className:"disk-map-panel","aria-label":"Disk size treemap",children:[s.jsx("h2",{children:"Where the space goes"}),s.jsx("div",{className:"disk-map-legend",children:p.map(a=>s.jsxs("span",{className:`disk-${a.id}`,children:[s.jsx("i",{"aria-hidden":"true"}),R[a.id]," · ",I(a.bytes)]},a.id))}),b,s.jsx("div",{className:"disk-map",ref:d,style:{height:k.regions.length?h:0},children:k.regions.map(({box:a,tiles:l})=>s.jsx("div",{className:`disk-map-region disk-${l[0].group}`,style:de(a,r,h),"aria-label":R[l[0].group],children:l.map(u=>j(u,de(u,a.width,a.height)))},a.id))}),!t.length&&s.jsx("p",{className:"disk-message",children:"No large development leftovers found."}),!!k.summaries.length&&s.jsxs("div",{className:"disk-map-summaries","aria-label":"Groups summarized outside the map",children:[w&&s.jsx("p",{className:"disk-message",children:"Small items are summarized here. Map area represents only the items shown above."}),k.summaries.map(a=>j(a))]}),c.some(a=>a.selectedCount>0)&&s.jsx("p",{className:"disk-map-ticked","aria-live":"polite",children:c.filter(a=>a.selectedCount>0).map(a=>`${a.label} · ${a.selectedCount} ticked`).join("; ")}),s.jsx("div",{className:"disk-map-inspector","aria-live":"polite",children:x?s.jsxs(s.Fragment,{children:[s.jsx("strong",{children:ue(x)}),s.jsx("code",{children:x.items.length===1?x.items[0].path:`${x.items.length} items in ${R[x.group]}${x.group==="work"?" · Your work is labelled only.":" · Choose to highlight their rows."}`})]}):"Hover or focus a tile to see its full name, count and size."})]})}function ue(e){return`${e.label}, ${e.items.length} ${e.items.length===1?"item":"items"}, ${I(e.bytes)}${e.selectedCount?`, ${e.selectedCount} ticked`:""}`}function we(e){return`${I(e.bytes)}${e.selectedCount?` · ${e.selectedCount} ticked`:""}`}function Xe(){const e=g.useRef(null),n=g.useRef(null),[i,d]=g.useState(null);return g.useLayoutEffect(()=>{const r=e.current,o=n.current;if(!r||!o)return;let m=!0,f="";const w=()=>{if(!m)return;const h=getComputedStyle(r),t=getComputedStyle(o),p=r.getBoundingClientRect(),k=o.getBoundingClientRect(),c=[h.font,t.font,h.letterSpacing,t.letterSpacing,p.width,p.height,k.width,k.height].join("|");if(c===f)return;f=c;const x=document.createElement("canvas").getContext("2d");if(!x)return;const j=(y,N)=>(x.font=N.font,x.measureText(y).width+(parseFloat(N.letterSpacing)||0)*y.length),a={font:h.font,letterSpacing:h.letterSpacing},l={font:t.font,letterSpacing:t.letterSpacing},u=Math.max(..."0123456789".split("").map(y=>j(y,l)));d(()=>y=>{const N=y.items.filter(_).length,$=j(I(y.bytes),l)+(N?j(" · ticked",l)+String(N).length*u:0),A=j(`${y.label.split(/\s+/)[0].slice(0,10)}…`,a);return{width:Math.ceil(Math.max($,A))+26,height:Math.ceil(p.height+k.height)+6+26}})},b=new ResizeObserver(w);return b.observe(r),b.observe(o),w(),document.fonts.ready.then(w),()=>{m=!1,b.disconnect()}},[]),[i,s.jsxs("span",{className:"disk-map-probes","aria-hidden":"true",children:[s.jsx("span",{className:"disk-tile-label",ref:e,children:"Overview…"}),s.jsx("span",{className:"disk-tile-size",ref:n,children:"888.8 GB · 888 ticked"})]},"font-probes")]}function Ze({entry:e}){return s.jsxs("span",{className:"disk-tile-content","data-fit":"full","aria-hidden":"true",children:[s.jsxs("span",{className:"disk-tile-label disk-tile-visible-label",children:[e.label,e.items.length>1?` · ${e.items.length} items`:""]}),s.jsx("span",{className:"disk-tile-size disk-tile-visible-size",children:we(e)})]})}function es({item:e,checked:n,highlighted:i,onTick:d,previousScanAt:r,rowRef:o}){const m=P(e.id),f=g.useId(),w=_(e),b=e.effect.length>200,h=(e.note?.length??0)>200,t=e.worktree,p=t?[{label:"Working tree clean",pass:t.clean},{label:"Merged to mainline",pass:t.merged},{label:"Not a mainline worktree",pass:t.mainline===void 0?void 0:!t.mainline},{label:"Not in use",pass:t.inUse===void 0?void 0:!t.inUse}]:[];return s.jsxs("article",{ref:o,tabIndex:-1,className:`disk-item${n?" is-selected":""}${i?" is-found":""}`,"aria-label":e.label,children:[s.jsxs("div",{className:"disk-item-heading",children:[s.jsxs("label",{children:[s.jsx("input",{type:"checkbox",checked:w&&n,"aria-disabled":!w||void 0,"aria-describedby":!w||e.notRecommended?f:void 0,onChange:()=>{w&&d()}}),s.jsx("strong",{children:e.label})]}),s.jsx("strong",{className:"disk-item-size",children:I(e.bytes)})]}),s.jsx("code",{className:"disk-path",title:e.path,children:e.path}),(!w||e.notRecommended)&&s.jsx("p",{id:f,className:"disk-not-recommended",children:e.notRecommended?"Not recommended to delete":"No safe cleanup command for this item"}),!b&&e.effect&&s.jsx("p",{children:e.effect}),!h&&e.note&&s.jsx("p",{className:"disk-note",children:e.note}),e.grew&&e.previousBytes!==null&&e.bytes>e.previousBytes&&s.jsxs("p",{className:"disk-growth",children:["+",((e.bytes-e.previousBytes)/1e6).toLocaleString("en-US",{maximumFractionDigits:1})," MB since ",Q(r)]}),t&&s.jsxs(s.Fragment,{children:[s.jsx("ul",{className:"disk-worktree-facts",children:p.map(k=>s.jsxs("li",{className:k.pass===!0?"is-pass":"is-fail",children:[s.jsx("span",{children:k.pass===!0?"✓ Pass":k.pass===!1?"✕ Fail":"? Unknown"})," ",k.label]},k.label))}),!!t.ignoredBytes&&s.jsxs("p",{className:"disk-not-recommended",children:["Includes ",I(t.ignoredBytes)," of ignored files. Git does not protect these files."]})]}),s.jsx(K,{fold:m,labels:["Full path",b&&`Effect · ${e.effect.length} characters`,h&&`Note · ${e.note.length} characters`,t&&"Worktree details"],what:`details for ${e.label}`}),s.jsxs(G,{fold:m,bounded:!1,children:[s.jsx("code",{className:"disk-full-path",children:e.path}),b&&s.jsx("p",{children:e.effect}),h&&s.jsx("p",{children:e.note}),t&&s.jsxs("p",{children:["Repository: ",s.jsx("code",{children:t.repo||"Unknown"}),s.jsx("br",{}),"Branch: ",s.jsx("code",{children:t.branch||"Unknown"}),s.jsx("br",{}),"Idle: ",t.idleDays??"Unknown"," days · Eligible: ",t.eligible===void 0?"Unknown":t.eligible?"Yes":"No"]})]})]})}function ss({report:e}){const n=P(`${e.scanId}:skipped`);return s.jsxs("div",{className:"disk-skipped",children:[s.jsx(K,{fold:n,labels:[`${e.skipped.length} folders skipped`],what:"skipped folders"}),s.jsxs(G,{fold:n,bounded:!1,children:[s.jsx("ul",{children:e.skipped.map((i,d)=>s.jsxs("li",{children:[s.jsx("code",{children:i.path}),s.jsx("p",{children:i.reason})]},d))}),!e.skipped.length&&s.jsx("p",{children:"No folders were skipped."})]})]})}export{Ve as DiskMap,qe as DiskReportPage,ts as default};
@@ -1 +1 @@
1
- import{P as L,p as $,N as E,a4 as j,m as y,q as S,U as G}from"./index-C6QslKFr.js";var N={};class v{constructor(t,e,s,i,h,r,n,o,a,u=0,f){this.p=t,this.stack=e,this.state=s,this.reducePos=i,this.pos=h,this.score=r,this.buffer=n,this.bufferBase=o,this.curContext=a,this.lookAhead=u,this.parent=f}toString(){return`[${this.stack.filter((t,e)=>e%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,e,s=0){let i=t.parser.context;return new v(t,[],e,s,s,0,[],0,i?new R(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var e;let s=t>>19,i=t&65535,{parser:h}=this.p,r=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),n=h.dynamicPrecedence(i);if(n&&(this.score+=n),s==0){i<h.minRepeatTerm&&this.reducePos<this.pos&&(this.reducePos=this.pos),this.pushState(h.getGoto(this.state,i,!0),this.reducePos),i<h.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,r?8:4,!0),this.reduceContext(i,this.reducePos);return}let o=this.stack.length-(s-1)*3-(t&262144?6:0),a=o?this.stack[o-2]:this.p.ranges[0].from;i<h.minRepeatTerm&&a==this.reducePos&&this.reducePos<this.pos&&(this.reducePos=this.pos);let u=this.reducePos-a;u>=2e3&&!(!((e=this.p.parser.nodeSet.types[i])===null||e===void 0)&&e.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=u));let f=o?this.stack[o-1]:0,d=this.bufferBase+this.buffer.length-f;if(i<h.minRepeatTerm||t&131072){let c=h.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,a,c,d+4,!0)}if(t&262144)this.state=this.stack[o];else{let c=this.stack[o-3];this.state=h.getGoto(c,i,!0)}for(;this.stack.length>o;)this.stack.pop();this.reduceContext(i,a)}storeNode(t,e,s,i=4,h=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let r=this.buffer.length;if(r>0&&this.buffer[r-4]==0&&this.buffer[r-1]>-1){if(e==s)return;if(this.buffer[r-2]>=e){this.buffer[r-2]=s;return}}}if(!h||this.pos==s)this.buffer.push(t,e,s,i);else{let r=this.buffer.length;if(r>0&&(this.buffer[r-4]!=0||this.buffer[r-1]<0)){let n=!1;for(let o=r;o>0&&this.buffer[o-2]>s;o-=4)if(this.buffer[o-1]>=0){n=!0;break}if(n)for(;r>0&&this.buffer[r-2]>s;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,i>4&&(i-=4)}this.buffer[r]=t,this.buffer[r+1]=e,this.buffer[r+2]=s,this.buffer[r+3]=i}}shift(t,e,s,i){if(t&131072)this.pushState(t&65535,this.pos);else if((t&262144)==0){let h=t,{parser:r}=this.p;this.pos=i;let n=r.stateFlag(h,1);!n&&(i>s||e<=r.maxNode)&&(this.reducePos=i),this.pushState(h,n?s:Math.min(s,this.reducePos)),this.shiftContext(e,s),e<=r.maxNode&&this.buffer.push(e,s,i,4)}else this.pos=i,this.shiftContext(e,s),e<=this.p.parser.maxNode&&this.buffer.push(e,s,i,4)}apply(t,e,s,i){t&65536?this.reduce(t):this.shift(t,e,s,i)}useNode(t,e){let s=this.p.reused.length-1;(s<0||this.p.reused[s]!=t)&&(this.p.reused.push(t),s++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(e,i),this.buffer.push(s,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,e=t.buffer.length;for(e&&t.buffer[e-4]==0&&(e-=4);e>0&&t.buffer[e-2]>t.reducePos;)e-=4;let s=t.buffer.slice(e),i=t.bufferBase+e;for(;t&&i==t.bufferBase;)t=t.parent;return new v(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,s,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,e){let s=t<=this.p.parser.maxNode;s&&this.storeNode(t,this.pos,e,4),this.storeNode(0,this.pos,e,s?8:4),this.pos=this.reducePos=e,this.score-=190}canShift(t){for(let e=new U(this);;){let s=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,t);if(s==0)return!1;if((s&65536)==0)return!0;e.reduce(s)}}recoverByInsert(t){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>8||this.stack.length>=120){let i=[];for(let h=0,r;h<e.length;h+=2)(r=e[h+1])!=this.state&&this.p.parser.hasAction(r,t)&&i.push(e[h],r);if(this.stack.length<120)for(let h=0;i.length<8&&h<e.length;h+=2){let r=e[h+1];i.some((n,o)=>o&1&&n==r)||i.push(e[h],r)}e=i}let s=[];for(let i=0;i<e.length&&s.length<4;i+=2){let h=e[i+1];if(h==this.state)continue;let r=this.split();r.pushState(h,this.pos),r.storeNode(0,r.pos,r.pos,4,!0),r.shiftContext(e[i],this.pos),r.reducePos=this.pos,r.score-=200,s.push(r)}return s}forceReduce(){let{parser:t}=this.p,e=t.stateSlot(this.state,5);if((e&65536)==0)return!1;if(!t.validAction(this.state,e)){let s=e>>19,i=e&65535,h=this.stack.length-s*3;if(h<0||t.getGoto(this.stack[h],i,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;e=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}findForcedReduction(){let{parser:t}=this.p,e=[],s=(i,h)=>{if(!e.includes(i))return e.push(i),t.allActions(i,r=>{if(!(r&393216))if(r&65536){let n=(r>>19)-h;if(n>1){let o=r&65535,a=this.stack.length-n*3;if(a>=0&&t.getGoto(this.stack[a],o,!1)>=0)return n<<19|65536|o}}else{let n=s(r,h+1);if(n!=null)return n}})};return s(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let e=0;e<this.stack.length;e+=3)if(this.stack[e]!=t.stack[e])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(t){return this.p.parser.dialect.flags[t]}shiftContext(t,e){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,t,this,this.p.stream.reset(e)))}reduceContext(t,e){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,t,this,this.p.stream.reset(e)))}emitContext(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(t){if(t!=this.curContext.context){let e=new R(this.curContext.tracker,t);e.hash!=this.curContext.hash&&this.emitContext(),this.curContext=e}}setLookAhead(t){return t<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=t,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class R{constructor(t,e){this.tracker=t,this.context=e,this.hash=t.strict?t.hash(e):0}}class U{constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let e=t&65535,s=t>>19;s==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(s-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],e,!0);this.state=i}}class A{constructor(t,e,s){this.stack=t,this.pos=e,this.index=s,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,e=t.bufferBase+t.buffer.length){return new A(t,e,e-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new A(this.stack,this.pos,this.index)}}function x(l,t=Uint16Array){if(typeof l!="string")return l;let e=null;for(let s=0,i=0;s<l.length;){let h=0;for(;;){let r=l.charCodeAt(s++),n=!1;if(r==126){h=65535;break}r>=92&&r--,r>=34&&r--;let o=r-32;if(o>=46&&(o-=46,n=!0),h+=o,n)break;h*=46}e?e[i++]=h:e=new t(h)}return e}class P{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const z=new P;class H{constructor(t,e){this.input=t,this.ranges=e,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=z,this.rangeIndex=0,this.pos=this.chunkPos=e[0].from,this.range=e[0],this.end=e[e.length-1].to,this.readNext()}resolveOffset(t,e){let s=this.range,i=this.rangeIndex,h=this.pos+t;for(;h<s.from;){if(!i)return null;let r=this.ranges[--i];h-=s.from-r.to,s=r}for(;e<0?h>s.to:h>=s.to;){if(i==this.ranges.length-1)return null;let r=this.ranges[++i];h+=r.from-s.to,s=r}return h}clipPos(t){if(t>=this.range.from&&t<this.range.to)return t;for(let e of this.ranges)if(e.to>t)return Math.max(t,e.from);return this.end}peek(t){let e=this.chunkOff+t,s,i;if(e>=0&&e<this.chunk.length)s=this.pos+t,i=this.chunk.charCodeAt(e);else{let h=this.resolveOffset(t,1);if(h==null)return-1;if(s=h,s>=this.chunk2Pos&&s<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(s-this.chunk2Pos);else{let r=this.rangeIndex,n=this.range;for(;n.to<=s;)n=this.ranges[++r];this.chunk2=this.input.chunk(this.chunk2Pos=s),s+this.chunk2.length>n.to&&(this.chunk2=this.chunk2.slice(0,n.to-s)),i=this.chunk2.charCodeAt(0)}}return s>=this.token.lookAhead&&(this.token.lookAhead=s+1),i}acceptToken(t,e=0){let s=e?this.resolveOffset(e,-1):this.pos;if(s==null||s<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=t,this.token.end=s}acceptTokenTo(t,e){this.token.value=t,this.token.end=e}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:t,chunkPos:e}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=t,this.chunk2Pos=e,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let t=this.input.chunk(this.pos),e=this.pos+t.length;this.chunk=e>this.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,e){if(e?(this.token=e,e.start=t,e.lookAhead=t+1,e.value=e.extended=-1):this.token=z,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;t>=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t<this.chunkPos+this.chunk.length?this.chunkOff=t-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(t,e){if(t>=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,e-this.chunkPos);if(t>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,e-this.chunk2Pos);if(t>=this.range.from&&e<=this.range.to)return this.input.read(t,e);let s="";for(let i of this.ranges){if(i.from>=e)break;i.to>t&&(s+=this.input.read(Math.max(i.from,t),Math.min(i.to,e)))}return s}}class m{constructor(t,e){this.data=t,this.id=e}token(t,e){let{parser:s}=e.p;O(this.data,t,e,this.id,s.data,s.tokenPrecTable)}}m.prototype.contextual=m.prototype.fallback=m.prototype.extend=!1;class W{constructor(t,e,s){this.precTable=e,this.elseToken=s,this.data=typeof t=="string"?x(t):t}token(t,e){let s=t.pos,i=0;for(;;){let h=t.next<0,r=t.resolveOffset(1,1);if(O(this.data,t,e,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(h||i++,r==null)break;t.reset(r,t.token)}i&&(t.reset(s,t.token),t.acceptToken(this.elseToken,i))}}W.prototype.contextual=m.prototype.fallback=m.prototype.extend=!1;class Z{constructor(t,e={}){this.token=t,this.contextual=!!e.contextual,this.fallback=!!e.fallback,this.extend=!!e.extend}}function O(l,t,e,s,i,h){let r=0,n=1<<s,{dialect:o}=e.p.parser;t:for(;(n&l[r])!=0;){let a=l[r+1];for(let c=r+3;c<a;c+=2)if((l[c+1]&n)>0){let p=l[c];if(o.allows(p)&&(t.token.value==-1||t.token.value==p||q(p,t.token.value,i,h))){t.acceptToken(p);break}}let u=t.next,f=0,d=l[r+2];if(t.next<0&&d>f&&l[a+d*3-3]==65535){r=l[a+d*3-1];continue t}for(;f<d;){let c=f+d>>1,p=a+c+(c<<1),b=l[p],M=l[p+1]||65536;if(u<b)d=c;else if(u>=M)f=c+1;else{r=l[p+2],t.advance();continue t}}break}}function I(l,t,e){for(let s=t,i;(i=l[s])!=65535;s++)if(i==e)return s-t;return-1}function q(l,t,e,s){let i=I(e,s,t);return i<0||I(e,s,l)<i}const g=typeof process<"u"&&N&&/\bparse\b/.test(N.LOG);let T=null;function D(l,t,e){let s=l.cursor(G.IncludeAnonymous);for(s.moveTo(t);;)if(!(e<0?s.childBefore(t):s.childAfter(t)))for(;;){if((e<0?s.to<t:s.from>t)&&!s.type.isError)return e<0?Math.max(0,Math.min(s.to-1,t-25)):Math.min(l.length,Math.max(s.from+1,t+25));if(e<0?s.prevSibling():s.nextSibling())break;if(!s.parent())return e<0?0:l.length}}class J{constructor(t,e){this.fragments=t,this.nodeSet=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?D(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?D(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(t<this.nextStart)return null;for(;this.fragment&&this.safeTo<=t;)this.nextFragment();if(!this.fragment)return null;for(;;){let e=this.trees.length-1;if(e<0)return this.nextFragment(),null;let s=this.trees[e],i=this.index[e];if(i==s.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let h=s.children[i],r=this.start[e]+s.positions[i];if(r>t)return this.nextStart=r,null;if(h instanceof S){if(r==t){if(r<this.safeFrom)return null;let n=r+h.length;if(n<=this.safeTo){let o=h.prop(y.lookAhead);if(!o||n+o<this.fragment.to)return h}}this.index[e]++,r+h.length>=Math.max(this.safeFrom,t)&&(this.trees.push(h),this.start.push(r),this.index.push(0))}else this.index[e]++,this.nextStart=r+h.length}}}class K{constructor(t,e){this.stream=e,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(s=>new P)}getActions(t){let e=0,s=null,{parser:i}=t.p,{tokenizers:h}=i,r=i.stateSlot(t.state,3),n=t.curContext?t.curContext.hash:0,o=0;for(let a=0;a<h.length;a++){if((1<<a&r)==0)continue;let u=h[a],f=this.tokens[a];if(!(s&&!u.fallback)&&((u.contextual||f.start!=t.pos||f.mask!=r||f.context!=n)&&(this.updateCachedToken(f,u,t),f.mask=r,f.context=n),f.lookAhead>f.end+25&&(o=Math.max(f.lookAhead,o)),f.value!=0)){let d=e;if(f.extended>-1&&(e=this.addActions(t,f.extended,f.end,e)),e=this.addActions(t,f.value,f.end,e),!u.extend&&(s=f,e>d))break}}for(;this.actions.length>e;)this.actions.pop();return o&&t.setLookAhead(o),!s&&t.pos==this.stream.end&&(s=new P,s.value=t.p.parser.eofTerm,s.start=s.end=t.pos,e=this.addActions(t,s.value,s.end,e)),this.mainToken=s,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let e=new P,{pos:s,p:i}=t;return e.start=s,e.end=Math.min(s+1,i.stream.end),e.value=s==i.stream.end?i.parser.eofTerm:0,e}updateCachedToken(t,e,s){let i=this.stream.clipPos(s.pos);if(e.token(this.stream.reset(i,t),s),t.value>-1){let{parser:h}=s.p;for(let r=0;r<h.specialized.length;r++)if(h.specialized[r]==t.value){let n=h.specializers[r](this.stream.read(t.start,t.end),s);if(n>=0&&s.p.parser.dialect.allows(n>>1)){(n&1)==0?t.value=n>>1:t.extended=n>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,e,s,i){for(let h=0;h<i;h+=3)if(this.actions[h]==t)return i;return this.actions[i++]=t,this.actions[i++]=e,this.actions[i++]=s,i}addActions(t,e,s,i){let{state:h}=t,{parser:r}=t.p,{data:n}=r;for(let o=0;o<2;o++)for(let a=r.stateSlot(h,o?2:1);;a+=3){if(n[a]==65535)if(n[a+1]==1)a=k(n,a+2);else{i==0&&n[a+1]==2&&(i=this.putAction(k(n,a+2),e,s,i));break}n[a]==e&&(i=this.putAction(k(n,a+1),e,s,i))}return i}}class Q{constructor(t,e,s,i){this.parser=t,this.input=e,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new H(e,i),this.tokens=new K(t,this.stream),this.topTerm=t.top[1];let{from:h}=i[0];this.stacks=[v.start(this,t.top[0],h)],this.fragments=s.length&&this.stream.end-h>t.bufferLength*4?new J(s,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,e=this.minStackPos,s=this.stacks=[],i,h;if(this.bigReductionCount>300&&t.length==1){let[r]=t;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;r<t.length;r++){let n=t[r];for(;;){if(this.tokens.mainToken=null,n.pos>e)s.push(n);else{if(this.advanceStack(n,s,t))continue;{i||(i=[],h=[]),i.push(n);let o=this.tokens.getMainToken(n);h.push(o.value,o.end)}}break}}if(!s.length){let r=i&&X(i);if(r)return g&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw g&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+e);this.recovering||(this.recovering=5)}if(this.recovering&&i){let r=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,h,s);if(r)return g&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(s.length>r)for(s.sort((n,o)=>o.score-n.score);s.length>r;)s.pop();s.some(n=>n.reducePos>e)&&this.recovering--}else if(s.length>1){t:for(let r=0;r<s.length-1;r++){let n=s[r];for(let o=r+1;o<s.length;o++){let a=s[o];if(n.sameState(a)||n.buffer.length>500&&a.buffer.length>500)if((n.score-a.score||n.buffer.length-a.buffer.length)>0)s.splice(o--,1);else{s.splice(r--,1);continue t}}}s.length>12&&(s.sort((r,n)=>n.score-r.score),s.splice(12,s.length-12))}this.minStackPos=s[0].pos;for(let r=1;r<s.length;r++)s[r].pos<this.minStackPos&&(this.minStackPos=s[r].pos);return null}stopAt(t){if(this.stoppedAt!=null&&this.stoppedAt<t)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=t}advanceStack(t,e,s){let i=t.pos,{parser:h}=this,r=g?this.stackID(t)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let a=t.curContext&&t.curContext.tracker.strict,u=a?t.curContext.hash:0;for(let f=this.fragments.nodeAt(i);f;){let d=this.parser.nodeSet.types[f.type.id]==f.type?h.getGoto(t.state,f.type.id):-1;if(d>-1&&f.length&&(!a||(f.prop(y.contextHash)||0)==u))return t.useNode(f,d),g&&console.log(r+this.stackID(t)+` (via reuse of ${h.getName(f.type.id)})`),!0;if(!(f instanceof S)||f.children.length==0||f.positions[0]>0)break;let c=f.children[0];if(c instanceof S&&f.positions[0]==0)f=c;else break}}let n=h.stateSlot(t.state,4);if(n>0)return t.reduce(n),g&&console.log(r+this.stackID(t)+` (via always-reduce ${h.getName(n&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let o=this.tokens.getActions(t);for(let a=0;a<o.length;){let u=o[a++],f=o[a++],d=o[a++],c=a==o.length||!s,p=c?t:t.split(),b=this.tokens.mainToken;if(p.apply(u,f,b?b.start:p.pos,d),g&&console.log(r+this.stackID(p)+` (via ${(u&65536)==0?"shift":`reduce of ${h.getName(u&65535)}`} for ${h.getName(f)} @ ${i}${p==t?"":", split"})`),c)return!0;p.pos>i?e.push(p):s.push(p)}return!1}advanceFully(t,e){let s=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>s)return B(t,e),!0}}runRecovery(t,e,s){let i=null,h=!1;for(let r=0;r<t.length;r++){let n=t[r],o=e[r<<1],a=e[(r<<1)+1],u=g?this.stackID(n)+" -> ":"";if(n.deadEnd&&(h||(h=!0,n.restart(),g&&console.log(u+this.stackID(n)+" (restarted)"),this.advanceFully(n,s))))continue;let f=n.split(),d=u;for(let c=0;c<10&&f.forceReduce()&&(g&&console.log(d+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,s));c++)g&&(d=this.stackID(f)+" -> ");for(let c of n.recoverByInsert(o))g&&console.log(u+this.stackID(c)+" (via recover-insert)"),this.advanceFully(c,s);this.stream.end>n.pos?(a==n.pos&&(a++,o=0),n.recoverByDelete(o,a),g&&console.log(u+this.stackID(n)+` (via recover-delete ${this.parser.getName(o)})`),B(n,s)):(!i||i.score<f.score)&&(i=f)}return i}stackToTree(t){return t.close(),S.build({buffer:A.create(t),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:t.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(t){let e=(T||(T=new WeakMap)).get(t);return e||T.set(t,e=String.fromCodePoint(this.nextStackID++)),e+t}}function B(l,t){for(let e=0;e<t.length;e++){let s=t[e];if(s.pos==l.pos&&s.sameState(l)){t[e].score<l.score&&(t[e]=l);return}}t.push(l)}class V{constructor(t,e,s){this.source=t,this.flags=e,this.disabled=s}allows(t){return!this.disabled||this.disabled[t]==0}}const C=l=>l;class _{constructor(t){this.start=t.start,this.shift=t.shift||C,this.reduce=t.reduce||C,this.reuse=t.reuse||C,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}}class w extends L{constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let e=t.nodeNames.split(" ");this.minRepeatTerm=e.length;for(let n=0;n<t.repeatNodeCount;n++)e.push("");let s=Object.keys(t.topRules).map(n=>t.topRules[n][1]),i=[];for(let n=0;n<e.length;n++)i.push([]);function h(n,o,a){i[n].push([o,o.deserialize(String(a))])}if(t.nodeProps)for(let n of t.nodeProps){let o=n[0];typeof o=="string"&&(o=y[o]);for(let a=1;a<n.length;){let u=n[a++];if(u>=0)h(u,o,n[a++]);else{let f=n[a+-u];for(let d=-u;d>0;d--)h(n[a++],o,f);a++}}}this.nodeSet=new $(e.map((n,o)=>E.define({name:o>=this.minRepeatTerm?void 0:n,id:o,props:i[o],top:s.indexOf(o)>-1,error:o==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(o)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=j;let r=x(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let n=0;n<this.specializerSpecs.length;n++)this.specialized[n]=this.specializerSpecs[n].term;this.specializers=this.specializerSpecs.map(F),this.states=x(t.states,Uint32Array),this.data=x(t.stateData),this.goto=x(t.goto),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map(n=>typeof n=="number"?new m(r,n):n),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,e,s){let i=new Q(this,t,e,s);for(let h of this.wrappers)i=h(i,t,e,s);return i}getGoto(t,e,s=!1){let i=this.goto;if(e>=i[0])return-1;for(let h=i[e+1];;){let r=i[h++],n=r&1,o=i[h++];if(n&&s)return o;for(let a=h+(r>>1);h<a;h++)if(i[h]==t)return o;if(n)return-1}}hasAction(t,e){let s=this.data;for(let i=0;i<2;i++)for(let h=this.stateSlot(t,i?2:1),r;;h+=3){if((r=s[h])==65535)if(s[h+1]==1)r=s[h=k(s,h+2)];else{if(s[h+1]==2)return k(s,h+2);break}if(r==e||r==0)return k(s,h+1)}return 0}stateSlot(t,e){return this.states[t*6+e]}stateFlag(t,e){return(this.stateSlot(t,0)&e)>0}validAction(t,e){return!!this.allActions(t,s=>s==e?!0:null)}allActions(t,e){let s=this.stateSlot(t,4),i=s?e(s):void 0;for(let h=this.stateSlot(t,1);i==null;h+=3){if(this.data[h]==65535)if(this.data[h+1]==1)h=k(this.data,h+2);else break;i=e(k(this.data,h+1))}return i}nextStates(t){let e=[];for(let s=this.stateSlot(t,1);;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=k(this.data,s+2);else break;if((this.data[s+2]&1)==0){let i=this.data[s+1];e.some((h,r)=>r&1&&h==i)||e.push(this.data[s],i)}}return e}configure(t){let e=Object.assign(Object.create(w.prototype),this);if(t.props&&(e.nodeSet=this.nodeSet.extend(...t.props)),t.top){let s=this.topRules[t.top];if(!s)throw new RangeError(`Invalid top rule name ${t.top}`);e.top=s}return t.tokenizers&&(e.tokenizers=this.tokenizers.map(s=>{let i=t.tokenizers.find(h=>h.from==s);return i?i.to:s})),t.specializers&&(e.specializers=this.specializers.slice(),e.specializerSpecs=this.specializerSpecs.map((s,i)=>{let h=t.specializers.find(n=>n.from==s.external);if(!h)return s;let r=Object.assign(Object.assign({},s),{external:h.to});return e.specializers[i]=F(r),r})),t.contextTracker&&(e.context=t.contextTracker),t.dialect&&(e.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(e.strict=t.strict),t.wrap&&(e.wrappers=e.wrappers.concat(t.wrap)),t.bufferLength!=null&&(e.bufferLength=t.bufferLength),e}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let e=this.dynamicPrecedences;return e==null?0:e[t]||0}parseDialect(t){let e=Object.keys(this.dialects),s=e.map(()=>!1);if(t)for(let h of t.split(" ")){let r=e.indexOf(h);r>=0&&(s[r]=!0)}let i=null;for(let h=0;h<e.length;h++)if(!s[h])for(let r=this.dialects[e[h]],n;(n=this.data[r++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[n]=1;return new V(t,s,i)}static deserialize(t){return new w(t)}}function k(l,t){return l[t]|l[t+1]<<16}function X(l){let t=null;for(let e of l){let s=e.p.stoppedAt;(e.pos==e.p.stream.end||s!=null&&e.pos>s)&&e.p.parser.stateFlag(e.state,2)&&(!t||t.score<e.score)&&(t=e)}return t}function F(l){if(l.external){let t=l.extend?1:0;return(e,s)=>l.external(e,s)<<1|t}return l.get}export{_ as C,Z as E,w as L,W as a};
1
+ import{P as L,p as $,N as E,a5 as j,m as y,q as S,V as G}from"./index-BEnG7EBl.js";var N={};class v{constructor(t,e,s,i,h,r,n,o,a,u=0,f){this.p=t,this.stack=e,this.state=s,this.reducePos=i,this.pos=h,this.score=r,this.buffer=n,this.bufferBase=o,this.curContext=a,this.lookAhead=u,this.parent=f}toString(){return`[${this.stack.filter((t,e)=>e%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,e,s=0){let i=t.parser.context;return new v(t,[],e,s,s,0,[],0,i?new R(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var e;let s=t>>19,i=t&65535,{parser:h}=this.p,r=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),n=h.dynamicPrecedence(i);if(n&&(this.score+=n),s==0){i<h.minRepeatTerm&&this.reducePos<this.pos&&(this.reducePos=this.pos),this.pushState(h.getGoto(this.state,i,!0),this.reducePos),i<h.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,r?8:4,!0),this.reduceContext(i,this.reducePos);return}let o=this.stack.length-(s-1)*3-(t&262144?6:0),a=o?this.stack[o-2]:this.p.ranges[0].from;i<h.minRepeatTerm&&a==this.reducePos&&this.reducePos<this.pos&&(this.reducePos=this.pos);let u=this.reducePos-a;u>=2e3&&!(!((e=this.p.parser.nodeSet.types[i])===null||e===void 0)&&e.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=u));let f=o?this.stack[o-1]:0,d=this.bufferBase+this.buffer.length-f;if(i<h.minRepeatTerm||t&131072){let c=h.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,a,c,d+4,!0)}if(t&262144)this.state=this.stack[o];else{let c=this.stack[o-3];this.state=h.getGoto(c,i,!0)}for(;this.stack.length>o;)this.stack.pop();this.reduceContext(i,a)}storeNode(t,e,s,i=4,h=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let r=this.buffer.length;if(r>0&&this.buffer[r-4]==0&&this.buffer[r-1]>-1){if(e==s)return;if(this.buffer[r-2]>=e){this.buffer[r-2]=s;return}}}if(!h||this.pos==s)this.buffer.push(t,e,s,i);else{let r=this.buffer.length;if(r>0&&(this.buffer[r-4]!=0||this.buffer[r-1]<0)){let n=!1;for(let o=r;o>0&&this.buffer[o-2]>s;o-=4)if(this.buffer[o-1]>=0){n=!0;break}if(n)for(;r>0&&this.buffer[r-2]>s;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,i>4&&(i-=4)}this.buffer[r]=t,this.buffer[r+1]=e,this.buffer[r+2]=s,this.buffer[r+3]=i}}shift(t,e,s,i){if(t&131072)this.pushState(t&65535,this.pos);else if((t&262144)==0){let h=t,{parser:r}=this.p;this.pos=i;let n=r.stateFlag(h,1);!n&&(i>s||e<=r.maxNode)&&(this.reducePos=i),this.pushState(h,n?s:Math.min(s,this.reducePos)),this.shiftContext(e,s),e<=r.maxNode&&this.buffer.push(e,s,i,4)}else this.pos=i,this.shiftContext(e,s),e<=this.p.parser.maxNode&&this.buffer.push(e,s,i,4)}apply(t,e,s,i){t&65536?this.reduce(t):this.shift(t,e,s,i)}useNode(t,e){let s=this.p.reused.length-1;(s<0||this.p.reused[s]!=t)&&(this.p.reused.push(t),s++);let i=this.pos;this.reducePos=this.pos=i+t.length,this.pushState(e,i),this.buffer.push(s,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,e=t.buffer.length;for(e&&t.buffer[e-4]==0&&(e-=4);e>0&&t.buffer[e-2]>t.reducePos;)e-=4;let s=t.buffer.slice(e),i=t.bufferBase+e;for(;t&&i==t.bufferBase;)t=t.parent;return new v(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,s,i,this.curContext,this.lookAhead,t)}recoverByDelete(t,e){let s=t<=this.p.parser.maxNode;s&&this.storeNode(t,this.pos,e,4),this.storeNode(0,this.pos,e,s?8:4),this.pos=this.reducePos=e,this.score-=190}canShift(t){for(let e=new U(this);;){let s=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,t);if(s==0)return!1;if((s&65536)==0)return!0;e.reduce(s)}}recoverByInsert(t){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>8||this.stack.length>=120){let i=[];for(let h=0,r;h<e.length;h+=2)(r=e[h+1])!=this.state&&this.p.parser.hasAction(r,t)&&i.push(e[h],r);if(this.stack.length<120)for(let h=0;i.length<8&&h<e.length;h+=2){let r=e[h+1];i.some((n,o)=>o&1&&n==r)||i.push(e[h],r)}e=i}let s=[];for(let i=0;i<e.length&&s.length<4;i+=2){let h=e[i+1];if(h==this.state)continue;let r=this.split();r.pushState(h,this.pos),r.storeNode(0,r.pos,r.pos,4,!0),r.shiftContext(e[i],this.pos),r.reducePos=this.pos,r.score-=200,s.push(r)}return s}forceReduce(){let{parser:t}=this.p,e=t.stateSlot(this.state,5);if((e&65536)==0)return!1;if(!t.validAction(this.state,e)){let s=e>>19,i=e&65535,h=this.stack.length-s*3;if(h<0||t.getGoto(this.stack[h],i,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;e=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}findForcedReduction(){let{parser:t}=this.p,e=[],s=(i,h)=>{if(!e.includes(i))return e.push(i),t.allActions(i,r=>{if(!(r&393216))if(r&65536){let n=(r>>19)-h;if(n>1){let o=r&65535,a=this.stack.length-n*3;if(a>=0&&t.getGoto(this.stack[a],o,!1)>=0)return n<<19|65536|o}}else{let n=s(r,h+1);if(n!=null)return n}})};return s(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let e=0;e<this.stack.length;e+=3)if(this.stack[e]!=t.stack[e])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(t){return this.p.parser.dialect.flags[t]}shiftContext(t,e){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,t,this,this.p.stream.reset(e)))}reduceContext(t,e){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,t,this,this.p.stream.reset(e)))}emitContext(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let t=this.buffer.length-1;(t<0||this.buffer[t]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(t){if(t!=this.curContext.context){let e=new R(this.curContext.tracker,t);e.hash!=this.curContext.hash&&this.emitContext(),this.curContext=e}}setLookAhead(t){return t<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=t,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class R{constructor(t,e){this.tracker=t,this.context=e,this.hash=t.strict?t.hash(e):0}}class U{constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let e=t&65535,s=t>>19;s==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(s-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],e,!0);this.state=i}}class A{constructor(t,e,s){this.stack=t,this.pos=e,this.index=s,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,e=t.bufferBase+t.buffer.length){return new A(t,e,e-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new A(this.stack,this.pos,this.index)}}function x(l,t=Uint16Array){if(typeof l!="string")return l;let e=null;for(let s=0,i=0;s<l.length;){let h=0;for(;;){let r=l.charCodeAt(s++),n=!1;if(r==126){h=65535;break}r>=92&&r--,r>=34&&r--;let o=r-32;if(o>=46&&(o-=46,n=!0),h+=o,n)break;h*=46}e?e[i++]=h:e=new t(h)}return e}class P{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const z=new P;class H{constructor(t,e){this.input=t,this.ranges=e,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=z,this.rangeIndex=0,this.pos=this.chunkPos=e[0].from,this.range=e[0],this.end=e[e.length-1].to,this.readNext()}resolveOffset(t,e){let s=this.range,i=this.rangeIndex,h=this.pos+t;for(;h<s.from;){if(!i)return null;let r=this.ranges[--i];h-=s.from-r.to,s=r}for(;e<0?h>s.to:h>=s.to;){if(i==this.ranges.length-1)return null;let r=this.ranges[++i];h+=r.from-s.to,s=r}return h}clipPos(t){if(t>=this.range.from&&t<this.range.to)return t;for(let e of this.ranges)if(e.to>t)return Math.max(t,e.from);return this.end}peek(t){let e=this.chunkOff+t,s,i;if(e>=0&&e<this.chunk.length)s=this.pos+t,i=this.chunk.charCodeAt(e);else{let h=this.resolveOffset(t,1);if(h==null)return-1;if(s=h,s>=this.chunk2Pos&&s<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(s-this.chunk2Pos);else{let r=this.rangeIndex,n=this.range;for(;n.to<=s;)n=this.ranges[++r];this.chunk2=this.input.chunk(this.chunk2Pos=s),s+this.chunk2.length>n.to&&(this.chunk2=this.chunk2.slice(0,n.to-s)),i=this.chunk2.charCodeAt(0)}}return s>=this.token.lookAhead&&(this.token.lookAhead=s+1),i}acceptToken(t,e=0){let s=e?this.resolveOffset(e,-1):this.pos;if(s==null||s<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=t,this.token.end=s}acceptTokenTo(t,e){this.token.value=t,this.token.end=e}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:t,chunkPos:e}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=t,this.chunk2Pos=e,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let t=this.input.chunk(this.pos),e=this.pos+t.length;this.chunk=e>this.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,e){if(e?(this.token=e,e.start=t,e.lookAhead=t+1,e.value=e.extended=-1):this.token=z,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;t>=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t<this.chunkPos+this.chunk.length?this.chunkOff=t-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(t,e){if(t>=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,e-this.chunkPos);if(t>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,e-this.chunk2Pos);if(t>=this.range.from&&e<=this.range.to)return this.input.read(t,e);let s="";for(let i of this.ranges){if(i.from>=e)break;i.to>t&&(s+=this.input.read(Math.max(i.from,t),Math.min(i.to,e)))}return s}}class m{constructor(t,e){this.data=t,this.id=e}token(t,e){let{parser:s}=e.p;O(this.data,t,e,this.id,s.data,s.tokenPrecTable)}}m.prototype.contextual=m.prototype.fallback=m.prototype.extend=!1;class W{constructor(t,e,s){this.precTable=e,this.elseToken=s,this.data=typeof t=="string"?x(t):t}token(t,e){let s=t.pos,i=0;for(;;){let h=t.next<0,r=t.resolveOffset(1,1);if(O(this.data,t,e,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(h||i++,r==null)break;t.reset(r,t.token)}i&&(t.reset(s,t.token),t.acceptToken(this.elseToken,i))}}W.prototype.contextual=m.prototype.fallback=m.prototype.extend=!1;class Z{constructor(t,e={}){this.token=t,this.contextual=!!e.contextual,this.fallback=!!e.fallback,this.extend=!!e.extend}}function O(l,t,e,s,i,h){let r=0,n=1<<s,{dialect:o}=e.p.parser;t:for(;(n&l[r])!=0;){let a=l[r+1];for(let c=r+3;c<a;c+=2)if((l[c+1]&n)>0){let p=l[c];if(o.allows(p)&&(t.token.value==-1||t.token.value==p||q(p,t.token.value,i,h))){t.acceptToken(p);break}}let u=t.next,f=0,d=l[r+2];if(t.next<0&&d>f&&l[a+d*3-3]==65535){r=l[a+d*3-1];continue t}for(;f<d;){let c=f+d>>1,p=a+c+(c<<1),b=l[p],M=l[p+1]||65536;if(u<b)d=c;else if(u>=M)f=c+1;else{r=l[p+2],t.advance();continue t}}break}}function I(l,t,e){for(let s=t,i;(i=l[s])!=65535;s++)if(i==e)return s-t;return-1}function q(l,t,e,s){let i=I(e,s,t);return i<0||I(e,s,l)<i}const g=typeof process<"u"&&N&&/\bparse\b/.test(N.LOG);let T=null;function D(l,t,e){let s=l.cursor(G.IncludeAnonymous);for(s.moveTo(t);;)if(!(e<0?s.childBefore(t):s.childAfter(t)))for(;;){if((e<0?s.to<t:s.from>t)&&!s.type.isError)return e<0?Math.max(0,Math.min(s.to-1,t-25)):Math.min(l.length,Math.max(s.from+1,t+25));if(e<0?s.prevSibling():s.nextSibling())break;if(!s.parent())return e<0?0:l.length}}class V{constructor(t,e){this.fragments=t,this.nodeSet=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?D(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?D(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(t<this.nextStart)return null;for(;this.fragment&&this.safeTo<=t;)this.nextFragment();if(!this.fragment)return null;for(;;){let e=this.trees.length-1;if(e<0)return this.nextFragment(),null;let s=this.trees[e],i=this.index[e];if(i==s.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let h=s.children[i],r=this.start[e]+s.positions[i];if(r>t)return this.nextStart=r,null;if(h instanceof S){if(r==t){if(r<this.safeFrom)return null;let n=r+h.length;if(n<=this.safeTo){let o=h.prop(y.lookAhead);if(!o||n+o<this.fragment.to)return h}}this.index[e]++,r+h.length>=Math.max(this.safeFrom,t)&&(this.trees.push(h),this.start.push(r),this.index.push(0))}else this.index[e]++,this.nextStart=r+h.length}}}class J{constructor(t,e){this.stream=e,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(s=>new P)}getActions(t){let e=0,s=null,{parser:i}=t.p,{tokenizers:h}=i,r=i.stateSlot(t.state,3),n=t.curContext?t.curContext.hash:0,o=0;for(let a=0;a<h.length;a++){if((1<<a&r)==0)continue;let u=h[a],f=this.tokens[a];if(!(s&&!u.fallback)&&((u.contextual||f.start!=t.pos||f.mask!=r||f.context!=n)&&(this.updateCachedToken(f,u,t),f.mask=r,f.context=n),f.lookAhead>f.end+25&&(o=Math.max(f.lookAhead,o)),f.value!=0)){let d=e;if(f.extended>-1&&(e=this.addActions(t,f.extended,f.end,e)),e=this.addActions(t,f.value,f.end,e),!u.extend&&(s=f,e>d))break}}for(;this.actions.length>e;)this.actions.pop();return o&&t.setLookAhead(o),!s&&t.pos==this.stream.end&&(s=new P,s.value=t.p.parser.eofTerm,s.start=s.end=t.pos,e=this.addActions(t,s.value,s.end,e)),this.mainToken=s,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let e=new P,{pos:s,p:i}=t;return e.start=s,e.end=Math.min(s+1,i.stream.end),e.value=s==i.stream.end?i.parser.eofTerm:0,e}updateCachedToken(t,e,s){let i=this.stream.clipPos(s.pos);if(e.token(this.stream.reset(i,t),s),t.value>-1){let{parser:h}=s.p;for(let r=0;r<h.specialized.length;r++)if(h.specialized[r]==t.value){let n=h.specializers[r](this.stream.read(t.start,t.end),s);if(n>=0&&s.p.parser.dialect.allows(n>>1)){(n&1)==0?t.value=n>>1:t.extended=n>>1;break}}}else t.value=0,t.end=this.stream.clipPos(i+1)}putAction(t,e,s,i){for(let h=0;h<i;h+=3)if(this.actions[h]==t)return i;return this.actions[i++]=t,this.actions[i++]=e,this.actions[i++]=s,i}addActions(t,e,s,i){let{state:h}=t,{parser:r}=t.p,{data:n}=r;for(let o=0;o<2;o++)for(let a=r.stateSlot(h,o?2:1);;a+=3){if(n[a]==65535)if(n[a+1]==1)a=k(n,a+2);else{i==0&&n[a+1]==2&&(i=this.putAction(k(n,a+2),e,s,i));break}n[a]==e&&(i=this.putAction(k(n,a+1),e,s,i))}return i}}class K{constructor(t,e,s,i){this.parser=t,this.input=e,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new H(e,i),this.tokens=new J(t,this.stream),this.topTerm=t.top[1];let{from:h}=i[0];this.stacks=[v.start(this,t.top[0],h)],this.fragments=s.length&&this.stream.end-h>t.bufferLength*4?new V(s,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,e=this.minStackPos,s=this.stacks=[],i,h;if(this.bigReductionCount>300&&t.length==1){let[r]=t;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;r<t.length;r++){let n=t[r];for(;;){if(this.tokens.mainToken=null,n.pos>e)s.push(n);else{if(this.advanceStack(n,s,t))continue;{i||(i=[],h=[]),i.push(n);let o=this.tokens.getMainToken(n);h.push(o.value,o.end)}}break}}if(!s.length){let r=i&&X(i);if(r)return g&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw g&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+e);this.recovering||(this.recovering=5)}if(this.recovering&&i){let r=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,h,s);if(r)return g&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(s.length>r)for(s.sort((n,o)=>o.score-n.score);s.length>r;)s.pop();s.some(n=>n.reducePos>e)&&this.recovering--}else if(s.length>1){t:for(let r=0;r<s.length-1;r++){let n=s[r];for(let o=r+1;o<s.length;o++){let a=s[o];if(n.sameState(a)||n.buffer.length>500&&a.buffer.length>500)if((n.score-a.score||n.buffer.length-a.buffer.length)>0)s.splice(o--,1);else{s.splice(r--,1);continue t}}}s.length>12&&(s.sort((r,n)=>n.score-r.score),s.splice(12,s.length-12))}this.minStackPos=s[0].pos;for(let r=1;r<s.length;r++)s[r].pos<this.minStackPos&&(this.minStackPos=s[r].pos);return null}stopAt(t){if(this.stoppedAt!=null&&this.stoppedAt<t)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=t}advanceStack(t,e,s){let i=t.pos,{parser:h}=this,r=g?this.stackID(t)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let a=t.curContext&&t.curContext.tracker.strict,u=a?t.curContext.hash:0;for(let f=this.fragments.nodeAt(i);f;){let d=this.parser.nodeSet.types[f.type.id]==f.type?h.getGoto(t.state,f.type.id):-1;if(d>-1&&f.length&&(!a||(f.prop(y.contextHash)||0)==u))return t.useNode(f,d),g&&console.log(r+this.stackID(t)+` (via reuse of ${h.getName(f.type.id)})`),!0;if(!(f instanceof S)||f.children.length==0||f.positions[0]>0)break;let c=f.children[0];if(c instanceof S&&f.positions[0]==0)f=c;else break}}let n=h.stateSlot(t.state,4);if(n>0)return t.reduce(n),g&&console.log(r+this.stackID(t)+` (via always-reduce ${h.getName(n&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let o=this.tokens.getActions(t);for(let a=0;a<o.length;){let u=o[a++],f=o[a++],d=o[a++],c=a==o.length||!s,p=c?t:t.split(),b=this.tokens.mainToken;if(p.apply(u,f,b?b.start:p.pos,d),g&&console.log(r+this.stackID(p)+` (via ${(u&65536)==0?"shift":`reduce of ${h.getName(u&65535)}`} for ${h.getName(f)} @ ${i}${p==t?"":", split"})`),c)return!0;p.pos>i?e.push(p):s.push(p)}return!1}advanceFully(t,e){let s=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>s)return B(t,e),!0}}runRecovery(t,e,s){let i=null,h=!1;for(let r=0;r<t.length;r++){let n=t[r],o=e[r<<1],a=e[(r<<1)+1],u=g?this.stackID(n)+" -> ":"";if(n.deadEnd&&(h||(h=!0,n.restart(),g&&console.log(u+this.stackID(n)+" (restarted)"),this.advanceFully(n,s))))continue;let f=n.split(),d=u;for(let c=0;c<10&&f.forceReduce()&&(g&&console.log(d+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,s));c++)g&&(d=this.stackID(f)+" -> ");for(let c of n.recoverByInsert(o))g&&console.log(u+this.stackID(c)+" (via recover-insert)"),this.advanceFully(c,s);this.stream.end>n.pos?(a==n.pos&&(a++,o=0),n.recoverByDelete(o,a),g&&console.log(u+this.stackID(n)+` (via recover-delete ${this.parser.getName(o)})`),B(n,s)):(!i||i.score<f.score)&&(i=f)}return i}stackToTree(t){return t.close(),S.build({buffer:A.create(t),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:t.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(t){let e=(T||(T=new WeakMap)).get(t);return e||T.set(t,e=String.fromCodePoint(this.nextStackID++)),e+t}}function B(l,t){for(let e=0;e<t.length;e++){let s=t[e];if(s.pos==l.pos&&s.sameState(l)){t[e].score<l.score&&(t[e]=l);return}}t.push(l)}class Q{constructor(t,e,s){this.source=t,this.flags=e,this.disabled=s}allows(t){return!this.disabled||this.disabled[t]==0}}const C=l=>l;class _{constructor(t){this.start=t.start,this.shift=t.shift||C,this.reduce=t.reduce||C,this.reuse=t.reuse||C,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}}class w extends L{constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let e=t.nodeNames.split(" ");this.minRepeatTerm=e.length;for(let n=0;n<t.repeatNodeCount;n++)e.push("");let s=Object.keys(t.topRules).map(n=>t.topRules[n][1]),i=[];for(let n=0;n<e.length;n++)i.push([]);function h(n,o,a){i[n].push([o,o.deserialize(String(a))])}if(t.nodeProps)for(let n of t.nodeProps){let o=n[0];typeof o=="string"&&(o=y[o]);for(let a=1;a<n.length;){let u=n[a++];if(u>=0)h(u,o,n[a++]);else{let f=n[a+-u];for(let d=-u;d>0;d--)h(n[a++],o,f);a++}}}this.nodeSet=new $(e.map((n,o)=>E.define({name:o>=this.minRepeatTerm?void 0:n,id:o,props:i[o],top:s.indexOf(o)>-1,error:o==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(o)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=j;let r=x(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let n=0;n<this.specializerSpecs.length;n++)this.specialized[n]=this.specializerSpecs[n].term;this.specializers=this.specializerSpecs.map(F),this.states=x(t.states,Uint32Array),this.data=x(t.stateData),this.goto=x(t.goto),this.maxTerm=t.maxTerm,this.tokenizers=t.tokenizers.map(n=>typeof n=="number"?new m(r,n):n),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,e,s){let i=new K(this,t,e,s);for(let h of this.wrappers)i=h(i,t,e,s);return i}getGoto(t,e,s=!1){let i=this.goto;if(e>=i[0])return-1;for(let h=i[e+1];;){let r=i[h++],n=r&1,o=i[h++];if(n&&s)return o;for(let a=h+(r>>1);h<a;h++)if(i[h]==t)return o;if(n)return-1}}hasAction(t,e){let s=this.data;for(let i=0;i<2;i++)for(let h=this.stateSlot(t,i?2:1),r;;h+=3){if((r=s[h])==65535)if(s[h+1]==1)r=s[h=k(s,h+2)];else{if(s[h+1]==2)return k(s,h+2);break}if(r==e||r==0)return k(s,h+1)}return 0}stateSlot(t,e){return this.states[t*6+e]}stateFlag(t,e){return(this.stateSlot(t,0)&e)>0}validAction(t,e){return!!this.allActions(t,s=>s==e?!0:null)}allActions(t,e){let s=this.stateSlot(t,4),i=s?e(s):void 0;for(let h=this.stateSlot(t,1);i==null;h+=3){if(this.data[h]==65535)if(this.data[h+1]==1)h=k(this.data,h+2);else break;i=e(k(this.data,h+1))}return i}nextStates(t){let e=[];for(let s=this.stateSlot(t,1);;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=k(this.data,s+2);else break;if((this.data[s+2]&1)==0){let i=this.data[s+1];e.some((h,r)=>r&1&&h==i)||e.push(this.data[s],i)}}return e}configure(t){let e=Object.assign(Object.create(w.prototype),this);if(t.props&&(e.nodeSet=this.nodeSet.extend(...t.props)),t.top){let s=this.topRules[t.top];if(!s)throw new RangeError(`Invalid top rule name ${t.top}`);e.top=s}return t.tokenizers&&(e.tokenizers=this.tokenizers.map(s=>{let i=t.tokenizers.find(h=>h.from==s);return i?i.to:s})),t.specializers&&(e.specializers=this.specializers.slice(),e.specializerSpecs=this.specializerSpecs.map((s,i)=>{let h=t.specializers.find(n=>n.from==s.external);if(!h)return s;let r=Object.assign(Object.assign({},s),{external:h.to});return e.specializers[i]=F(r),r})),t.contextTracker&&(e.context=t.contextTracker),t.dialect&&(e.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(e.strict=t.strict),t.wrap&&(e.wrappers=e.wrappers.concat(t.wrap)),t.bufferLength!=null&&(e.bufferLength=t.bufferLength),e}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let e=this.dynamicPrecedences;return e==null?0:e[t]||0}parseDialect(t){let e=Object.keys(this.dialects),s=e.map(()=>!1);if(t)for(let h of t.split(" ")){let r=e.indexOf(h);r>=0&&(s[r]=!0)}let i=null;for(let h=0;h<e.length;h++)if(!s[h])for(let r=this.dialects[e[h]],n;(n=this.data[r++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[n]=1;return new Q(t,s,i)}static deserialize(t){return new w(t)}}function k(l,t){return l[t]|l[t+1]<<16}function X(l){let t=null;for(let e of l){let s=e.p.stoppedAt;(e.pos==e.p.stream.end||s!=null&&e.pos>s)&&e.p.parser.stateFlag(e.state,2)&&(!t||t.score<e.score)&&(t=e)}return t}function F(l){if(l.external){let t=l.extend?1:0;return(e,s)=>l.external(e,s)<<1|t}return l.get}export{_ as C,Z as E,w as L,W as a};