just-git 1.6.1 → 1.6.2

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/dist/index.js CHANGED
@@ -18,60 +18,60 @@ Run
18
18
 
19
19
  git config user.email "you@example.com"
20
20
  git config user.name "Your Name"
21
- `);return{name:a,email:c,timestamp:s,timezone:i}}async function Hn(e,t){try{let n=await Xr(e,t);return{name:n.name,email:n.email,timestamp:n.timestamp,tz:n.timezone}}catch{return{name:t.get("GIT_COMMITTER_NAME")??"",email:t.get("GIT_COMMITTER_EMAIL")??"",timestamp:Math.floor(Date.now()/1e3),tz:"+0000"}}}function Su(e){let t={timestamp:Math.floor(Date.now()/1e3),timezone:"+0000"};if(!e)return t;let n=e.trim();if(!n)return t;if(n.startsWith("@")){let s=n.slice(1).trim(),i=parseInt(s,10);if(!Number.isNaN(i))return{timestamp:i,timezone:"+0000"}}if(/^\d+$/.test(n))return{timestamp:parseInt(n,10),timezone:"+0000"};let r=n.match(/^(\d+)\s+([+-]\d{4})$/);if(r)return{timestamp:parseInt(r[1],10),timezone:r[2]};let o=Date.parse(n);return Number.isNaN(o)?t:{timestamp:Math.floor(o/1e3),timezone:Iu(n)}}function Iu(e){if(/Z$/i.test(e))return"+0000";let t=e.match(/([+-])(\d{2}):(\d{2})$/);if(t)return`${t[1]}${t[2]}${t[3]}`;let n=e.match(/([+-]\d{4})$/);return n?n[1]:"+0000"}var Ou,rr=xe(()=>{"use strict";Ue();Ou={author:{name:"GIT_AUTHOR_NAME",email:"GIT_AUTHOR_EMAIL",date:"GIT_AUTHOR_DATE"},committer:{name:"GIT_COMMITTER_NAME",email:"GIT_COMMITTER_EMAIL",date:"GIT_COMMITTER_DATE"}}});function An(e){let t="";for(let n=0;n<20;n++)t+=lc[e[n]];return t}function Zr(e,t){let n="";for(let r=0;r<20;r++)n+=lc[e[t+r]];return n}function jt(e){let t=new Uint8Array(20);for(let n=0;n<20;n++)t[n]=parseInt(e.slice(n*2,n*2+2),16);return t}var ne,lc,pt=xe(()=>{"use strict";ne="0000000000000000000000000000000000000000",lc=(()=>{let e=new Array(256);for(let t=0;t<256;t++)e[t]=(t>>4).toString(16)+(t&15).toString(16);return e})()});function dc(e){return e.length===4&&e.toLowerCase()===".git"}function sr(e){if(e.length===0||e.includes("\0")||e.charCodeAt(0)===47||e.charCodeAt(e.length-1)===47)return!1;let t=e.split("/");for(let n of t)if(n.length===0||n==="."||n===".."||dc(n))return!1;return!0}function Bs(e,t){return t===e?!1:e==="/"?t.startsWith("/")&&t.length>1:t.startsWith(e+"/")}function uc(e){if(e.length===0||e.charCodeAt(0)===47)return!1;let t=e.split("/");for(let n of t)if(n===".."||dc(n))return!1;return!0}var Ws=xe(()=>{"use strict"});function ki(e){return typeof e=="string"?Tu.encode(e):e}function vu(){if(typeof globalThis.Bun<"u")return()=>{let e=new Bun.CryptoHasher("sha1"),t={update(n){return e.update(ki(n)),t},hex:()=>Promise.resolve(e.digest("hex"))};return t};try{let e=js(["node","crypto"].join(":"));if(typeof e.createHash=="function")return()=>{let t=e.createHash("sha1"),n={update(r){return t.update(ki(r)),n},hex:()=>Promise.resolve(t.digest("hex"))};return n}}catch{}if(typeof globalThis.crypto?.subtle?.digest=="function")return()=>{let e=[],t={update(n){return e.push(ki(n)),t},async hex(){let n=0;for(let i of e)n+=i.byteLength;let r=new Uint8Array(n),o=0;for(let i of e)r.set(i,o),o+=i.byteLength;let s=await crypto.subtle.digest("SHA-1",r);return An(new Uint8Array(s))}};return t};throw new Error("No SHA-1 implementation available. Requires Bun, Node.js, Deno, or a browser with Web Crypto.")}async function Mn(e){return hc().update(e).hex()}var Tu,hc,Dn,or=xe(()=>{"use strict";pt();Tu=new TextEncoder;hc=vu(),Dn=hc});async function V(e){let t=H(e.gitDir,"index");if(!await e.fs.exists(t))return{version:Ri,entries:[]};let n=await e.fs.readFileBuffer(t);return Hu(n)}async function ae(e,t){let n=H(e.gitDir,"index"),r=await Au(t);await e.fs.writeFile(n,r)}function Pt(e,t){if(!sr(t.path))throw new Error(`refusing to add unsafe path to index: '${t.path}'`);let n;return t.stage===0?n=e.entries.filter(r=>r.path!==t.path):n=e.entries.filter(r=>!(r.path===t.path&&r.stage===t.stage)),n.push(t),n.sort(xi),{...e,entries:n}}function lt(e,t){return{...e,entries:e.entries.filter(n=>n.path!==t)}}function qs(e,t,n=0){return e.entries.find(r=>r.path===t&&r.stage===n)}function Lt(e){return e.entries.some(t=>t.stage>0)}function Kt(e){return[...new Set(e.entries.filter(t=>t.stage>0).map(t=>t.path))]}function Ge(e){return e.entries.filter(t=>t.stage===0)}function pc(){return{version:Ri,entries:[]}}function Ks(e){let t=[...e].sort(xi);return{version:Ri,entries:t}}function He(){return{ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,uid:0,gid:0,size:0}}function Hu(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=0,r=t.getUint32(n);if(n+=4,r!==mc)throw new Error(`Invalid index signature: 0x${r.toString(16)}`);let o=t.getUint32(n);n+=4;let s=t.getUint32(n);n+=4;let i=[];for(let a=0;a<s;a++){let c=n,f={ctimeSeconds:t.getUint32(n),ctimeNanoseconds:t.getUint32(n+4),mtimeSeconds:t.getUint32(n+8),mtimeNanoseconds:t.getUint32(n+12),dev:t.getUint32(n+16),ino:t.getUint32(n+20),uid:t.getUint32(n+28),gid:t.getUint32(n+32),size:t.getUint32(n+36)},l=t.getUint32(n+24);n+=40;let d=e.subarray(n,n+20),u=An(d);n+=20;let h=t.getUint16(n);n+=2;let m=h>>12&3,p=h&4095,g,w;if(p<4095)w=new TextDecoder().decode(e.subarray(n,n+p)),g=p;else{let E=n;for(;E<e.byteLength&&e[E]!==0;)E++;w=new TextDecoder().decode(e.subarray(n,E)),g=E-n}let b=62+g+1,k=Math.ceil(b/8)*8;n=c+k,i.push({path:w,mode:l,hash:u,stage:m,stat:f})}return{version:o,entries:i}}async function Au(e){let t=new TextEncoder,n=[...e.entries].sort(xi),r=[],o=12;for(let u of n){let h=t.encode(u.path);r.push(h);let m=62+h.byteLength+1;o+=Math.ceil(m/8)*8}o+=20;let s=new ArrayBuffer(o),i=new Uint8Array(s),a=new DataView(s),c=0;a.setUint32(c,mc),c+=4,a.setUint32(c,e.version),c+=4,a.setUint32(c,n.length),c+=4;for(let u=0;u<n.length;u++){let h=n[u],m=r[u],p=c;a.setUint32(c,h.stat.ctimeSeconds),a.setUint32(c+4,h.stat.ctimeNanoseconds),a.setUint32(c+8,h.stat.mtimeSeconds),a.setUint32(c+12,h.stat.mtimeNanoseconds),a.setUint32(c+16,h.stat.dev),a.setUint32(c+20,h.stat.ino),a.setUint32(c+24,h.mode),a.setUint32(c+28,h.stat.uid),a.setUint32(c+32,h.stat.gid),a.setUint32(c+36,h.stat.size),c+=40;let g=jt(h.hash);i.set(g,c),c+=20;let w=Math.min(m.byteLength,4095),b=(h.stage&3)<<12|w;a.setUint16(c,b),c+=2,i.set(m,c),c+=m.byteLength,i[c]=0,c+=1;let k=62+m.byteLength+1,E=Math.ceil(k/8)*8;c=p+E}let f=i.subarray(0,c),l=await Mn(f),d=jt(l);return i.set(d,c),i}function xi(e,t){return e.path<t.path?-1:e.path>t.path?1:e.stage-t.stage}var mc,Ri,Ce=xe(()=>{"use strict";pt();Ws();me();or();mc=1145655875,Ri=2});var Du,zs,gc=xe(()=>{"use strict";Du=new Set(["tree","commit","tag"]),zs=class{map=new Map;currentBytes=0;maxBytes;constructor(t=16*1024*1024){this.maxBytes=t}get(t){return this.map.get(t)}set(t,n){if(!Du.has(n.type))return;let r=n.content.byteLength;if(!(r>this.maxBytes/2)&&!this.map.has(t)){for(;this.currentBytes+r>this.maxBytes&&this.map.size>0;){let o=this.map.keys().next().value;this.currentBytes-=this.map.get(o).content.byteLength,this.map.delete(o)}this.map.set(t,n),this.currentBytes+=r}}get size(){return this.map.size}get bytes(){return this.currentBytes}clear(){this.map.clear(),this.currentBytes=0}}});function Ci(e){let t=4294967295;for(let n=0;n<e.byteLength;n++)t=wc[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var wc,bc=xe(()=>{"use strict";wc=new Uint32Array(256);for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t=t&1?3988292384^t>>>1:t>>>1;wc[e]=t}});function Oc(e){let t=$c(e);return Pc(e.subarray(t,-4),{i:2})}function Si(e){let t=$c(e),n={i:2},r=Pc(e.subarray(t),n),o=Cc(n.p);return{result:r,bytesConsumed:t+o+4}}var Vt,Pr,Mu,yc,Ec,ju,kc,Rc,Lu,Oi,Jr,Qr,xc,Gu,Nu,Pi,zt,$i,Cc,Fu,on,Pc,$c,Sc=xe(()=>{"use strict";Vt=Uint8Array,Pr=Uint16Array,Mu=Int32Array,yc=new Vt([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Ec=new Vt([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ju=new Vt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),kc=(e,t)=>{let n=new Pr(31);for(let o=0;o<31;++o)n[o]=t+=1<<e[o-1];let r=new Mu(n[30]);for(let o=1;o<30;++o)for(let s=n[o];s<n[o+1];++s)r[s]=s-n[o]<<5|o;return{b:n,r}},{b:Rc}=kc(yc,2);Rc[28]=258;({b:Lu}=kc(Ec,0)),Oi=new Pr(32768);for(let e=0;e<32768;++e){let t=(e&43690)>>1|(e&21845)<<1;t=(t&52428)>>2|(t&13107)<<2,t=(t&61680)>>4|(t&3855)<<4,Oi[e]=((t&65280)>>8|(t&255)<<8)>>1}Jr=(e,t,n)=>{let r=e.length,o=0,s=new Pr(t);for(;o<r;++o)e[o]&&++s[e[o]-1];let i=new Pr(t);for(o=1;o<t;++o)i[o]=i[o-1]+s[o-1]<<1;let a;if(n){a=new Pr(1<<t);let c=15-t;for(o=0;o<r;++o)if(e[o]){let f=o<<4|e[o],l=t-e[o],d=i[e[o]-1]++<<l;for(let u=d|(1<<l)-1;d<=u;++d)a[Oi[d]>>c]=f}}else for(a=new Pr(r),o=0;o<r;++o)e[o]&&(a[o]=Oi[i[e[o]-1]++]>>15-e[o]);return a},Qr=new Vt(288);for(let e=0;e<144;++e)Qr[e]=8;for(let e=144;e<256;++e)Qr[e]=9;for(let e=256;e<280;++e)Qr[e]=7;for(let e=280;e<288;++e)Qr[e]=8;xc=new Vt(32);for(let e=0;e<32;++e)xc[e]=5;Gu=Jr(Qr,9,1),Nu=Jr(xc,5,1),Pi=e=>{let t=e[0];for(let n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},zt=(e,t,n)=>{let r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},$i=(e,t)=>{let n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},Cc=e=>(e+7)/8|0,Fu=(e,t,n)=>((t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new Vt(e.subarray(t,n))),on=(e,t)=>{let n=["unexpected EOF","invalid block type","invalid length/literal","invalid distance"];throw new Error(t||n[e]||"unknown inflate error")},Pc=(e,t,n,r)=>{let o=e.length,s=r?r.length:0;if(!o||t.f&&!t.l)return n||new Vt(0);let i=!n,a=i||t.i!=2,c=t.i;i&&(n=new Vt(o*3));let f=b=>{let k=n.length;if(b>k){let E=new Vt(Math.max(k*2,b));E.set(n),n=E}},l=t.f||0,d=t.p||0,u=t.b||0,h=t.l,m=t.d,p=t.m,g=t.n,w=o*8;do{if(!h){l=zt(e,d,1);let R=zt(e,d+1,3);if(d+=3,R)if(R==1)h=Gu,m=Nu,p=9,g=5;else if(R==2){let x=zt(e,d,31)+257,y=zt(e,d+10,15)+4,C=x+zt(e,d+5,31)+1;d+=14;let P=new Vt(C),D=new Vt(19);for(let I=0;I<y;++I)D[ju[I]]=zt(e,d+I*3,7);d+=y*3;let A=Pi(D),$=(1<<A)-1,v=Jr(D,A,1);for(let I=0;I<C;){let T=v[zt(e,d,$)];d+=T&15;let L=T>>4;if(L<16)P[I++]=L;else{let W=0,N=0;for(L==16?(N=3+zt(e,d,3),d+=2,W=P[I-1]):L==17?(N=3+zt(e,d,7),d+=3):L==18&&(N=11+zt(e,d,127),d+=7);N--;)P[I++]=W}}let _=P.subarray(0,x),G=P.subarray(x);p=Pi(_),g=Pi(G),h=Jr(_,p,1),m=Jr(G,g,1)}else on(1);else{let x=Cc(d)+4,y=e[x-4]|e[x-3]<<8,C=x+y;if(C>o){c&&on(0);break}a&&f(u+y),n.set(e.subarray(x,C),u),t.b=u+=y,t.p=d=C*8,t.f=l;continue}if(d>w){c&&on(0);break}}a&&f(u+131072);let b=(1<<p)-1,k=(1<<g)-1,E=d;for(;;E=d){let R=h[$i(e,d)&b],x=R>>4;if(d+=R&15,d>w){c&&on(0);break}if(R||on(2),x<256)n[u++]=x;else if(x==256){E=d,h=null;break}else{let y=x-254;if(x>264){let $=x-257,v=yc[$];y=zt(e,d,(1<<v)-1)+Rc[$],d+=v}let C=m[$i(e,d)&k],P=C>>4;C||on(3),d+=C&15;let D=Lu[P];if(P>3){let $=Ec[P];D+=$i(e,d)&(1<<$)-1,d+=$}if(d>w){c&&on(0);break}a&&f(u+131072);let A=u+y;if(u<D){let $=s-D,v=Math.min(D,A);for($+u<0&&on(3);u<v;++u)n[u]=r[$+u]}for(;u<A;++u)n[u]=n[u-D]}}t.l=h,t.p=E,t.b=u,t.f=l,h&&(l=1,t.m=p,t.d=m,t.n=g)}while(!l);return u!=n.length&&i?Fu(n,0,u):n.subarray(0,u)},$c=e=>(((e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31)&&on(0,"invalid zlib data"),e[1]&32&&on(0,"zlib dictionaries are not supported"),2)});async function _u(){let e;if(!(typeof document<"u"))try{e=js(["node","zlib"].join(":"))}catch{try{e=await import(["node","zlib"].join(":"))}catch{}}if(e&&typeof e.deflateSync=="function"&&typeof e.inflateSync=="function"){let r=null;try{let o=e.inflateSync(e.deflateSync(Buffer.from("x")),{info:!0});o?.engine&&typeof o.engine.bytesWritten=="number"&&(r=s=>{let i=e.inflateSync(s,{info:!0});return{result:new Uint8Array(i.buffer),bytesConsumed:i.engine.bytesWritten}})}catch{}return{deflateSync:o=>new Uint8Array(e.deflateSync(o)),inflateSync:o=>new Uint8Array(e.inflateSync(o)),inflateWithConsumed:r??Si}}let n;return typeof globalThis.CompressionStream=="function"?n=async r=>{let o=new CompressionStream("deflate"),s=o.writable.getWriter();return s.write(r),s.close(),new Uint8Array(await new Response(o.readable).arrayBuffer())}:n=()=>{throw new Error("No deflate implementation available. Requires node:zlib or CompressionStream.")},{deflateSync:n,inflateSync:Oc,inflateWithConsumed:Si}}function Ii(){return Uu??=_u()}async function $r(e){return await(await Ii()).deflateSync(e)}async function Or(e){return await(await Ii()).inflateSync(e)}async function Ic(e,t){let n=await Ii(),{result:r,bytesConsumed:o}=n.inflateWithConsumed(e);if(r.byteLength!==t)throw new Error(`Inflate size mismatch: got ${r.byteLength}, expected ${t}`);return{result:r,bytesConsumed:o}}var Uu,Vs=xe(()=>{"use strict";Sc();Uu=null});async function Lc(e,t){let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=n.getUint32(0);if(r!==Ys)throw new Error(`Invalid pack signature: 0x${r.toString(16)} (expected 0x${Ys.toString(16)})`);let o=n.getUint32(4);if(o!==Hi)throw new Error(`Unsupported pack version: ${o}`);if(e.byteLength>=32){let f=Zr(e,e.byteLength-20),l=Dn();l.update(e.subarray(0,e.byteLength-20));let d=await l.hex();if(d!==f)throw new Error(`pack checksum mismatch: expected ${f}, computed ${d}`)}let s=n.getUint32(8),i=[],a=12;for(let f=0;f<s;f++){let l=await Wu(e,a);i.push(l),a=l.nextOffset}return(await qu(i,t)).map((f,l)=>({...f,offset:i[l].headerOffset,nextOffset:i[l].nextOffset}))}async function Wu(e,t){let n=t,r=e[t++],o=r>>4&7,s=r&15,i=4;for(;r&128;)r=e[t++],s|=(r&127)<<i,i+=7;let a,c;if(o===es){let d=e[t++];for(a=d&127;d&128;)a+=1,d=e[t++],a=(a<<7)+(d&127);a=n-a}else o===Ai&&(c=Zr(e,t),t+=20);let{result:f,bytesConsumed:l}=await Ic(e.subarray(t),s);return{headerOffset:n,typeNum:o,inflated:f,baseOffset:a,baseHash:c,nextOffset:t+l}}async function qu(e,t){let n=new Map;for(let s=0;s<e.length;s++)n.set(e[s].headerOffset,s);let r=new Array(e.length).fill(null);async function o(s,i=0){if(i>Tc)throw new Error(`delta chain depth ${i} exceeds limit of ${Tc}`);let a=r[s];if(a)return a;let c=e[s];if(c.typeNum!==es&&c.typeNum!==Ai){let h=Bu[c.typeNum];if(!h)throw new Error(`Unknown object type: ${c.typeNum}`);let m={type:h,content:c.inflated,hash:await Ti(h,c.inflated)};return r[s]=m,m}if(c.typeNum===es){let h=n.get(c.baseOffset);if(h===void 0)throw new Error(`OFS_DELTA base not found at offset ${c.baseOffset}`);let m=await o(h,i+1),p=ts(m.content,c.inflated),g={type:m.type,content:p,hash:await Ti(m.type,p)};return r[s]=g,g}let f=await Ku(e,r,c.baseHash,o),l;if(f!==void 0)l=await o(f,i+1);else if(t){let h=await t(c.baseHash);h&&(l=h)}if(!l)throw new Error(`REF_DELTA base not found for hash ${c.baseHash}`);let d=ts(l.content,c.inflated),u={type:l.type,content:d,hash:await Ti(l.type,d)};return r[s]=u,u}for(let s=0;s<e.length;s++)await o(s);return r}async function Ku(e,t,n,r){for(let o=0;o<t.length;o++)if(t[o]?.hash===n)return o;for(let o=0;o<e.length;o++){let s=e[o];if(s.typeNum!==es&&s.typeNum!==Ai&&(await r(o)).hash===n)return o}}function ts(e,t){let n=0,{value:r,newPos:o}=vc(t,n);if(n=o,r!==e.byteLength)throw new Error(`Delta base size mismatch: expected ${r}, got ${e.byteLength}`);let{value:s,newPos:i}=vc(t,n);n=i;let a=new Uint8Array(s),c=0;for(;n<t.byteLength;){let f=t[n++];if(f&128){let l=0,d=0;f&1&&(l=t[n++]),f&2&&(l|=t[n++]<<8),f&4&&(l|=t[n++]<<16),f&8&&(l|=t[n++]<<24),f&16&&(d=t[n++]),f&32&&(d|=t[n++]<<8),f&64&&(d|=t[n++]<<16),d===0&&(d=65536),a.set(e.subarray(l,l+d),c),c+=d}else if(f>0)a.set(t.subarray(n,n+f),c),c+=f,n+=f;else throw new Error("Unexpected delta opcode 0x00 (reserved)")}if(c!==s)throw new Error(`Delta produced ${c} bytes, expected ${s}`);return a}async function Gc(e){let t=[],n=new Uint8Array(12),r=new DataView(n.buffer);r.setUint32(0,Ys),r.setUint32(4,Hi),r.setUint32(8,e.length),t.push(n);for(let o of e){let s=jc[o.type],i=await $r(o.content);t.push(vi(s,o.content.byteLength)),t.push(i)}return Nc(t)}async function Xs(e){let t=[],n=new Map,r=new Uint8Array(12),o=new DataView(r.buffer);o.setUint32(0,Ys),o.setUint32(4,Hi),o.setUint32(8,e.length),t.push(r);let s=12,i=[];for(let a of e){let c=s;n.set(a.hash,s);let f=a.delta&&a.deltaBaseHash?n.get(a.deltaBaseHash):void 0;if(a.delta&&f!==void 0){let l=vi(es,a.delta.byteLength),d=zu(s-f),u=await $r(a.delta);t.push(l,d,u),s+=l.byteLength+d.byteLength+u.byteLength}else{let l=jc[a.type],d=vi(l,a.content.byteLength),u=await $r(a.content);t.push(d,u),s+=d.byteLength+u.byteLength}i.push({hash:a.hash,offset:c,nextOffset:s})}return{data:await Nc(t),entries:i}}async function Nc(e){let t=0;for(let i of e)t+=i.byteLength;t+=20;let n=new Uint8Array(t),r=0;for(let i of e)n.set(i,r),r+=i.byteLength;let o=Dn();o.update(n.subarray(0,r));let s=await o.hex();return n.set(jt(s),r),n}function zu(e){let t=[];t.push(e&127);let n=e>>>7;for(;n>0;)t.unshift(128|--n&127),n>>>=7;return new Uint8Array(t)}function vi(e,t){let n=[],r=e<<4|t&15;for(t>>=4;t>0;)n.push(r|128),r=t&127,t>>=7;return n.push(r),new Uint8Array(n)}function vc(e,t){let n=0,r=0,o;do o=e[t++],n|=(o&127)<<r,r+=7;while(o&128);return{value:n,newPos:t}}async function Ti(e,t){let n=Vu.encode(`${e} ${t.byteLength}\0`),r=Dn();return r.update(n),r.update(t),r.hex()}var Ys,Hi,Hc,Ac,Dc,Mc,es,Ai,Bu,jc,Tc,Vu,Sr=xe(()=>{"use strict";pt();or();Vs();Ys=1346454347,Hi=2,Hc=1,Ac=2,Dc=3,Mc=4,es=6,Ai=7,Bu={[Hc]:"commit",[Ac]:"tree",[Dc]:"blob",[Mc]:"tag"},jc={commit:Hc,tree:Ac,blob:Dc,tag:Mc};Tc=50;Vu=new TextEncoder});async function Uc(e,t){let n=[...e].sort((h,m)=>h.hash<m.hash?-1:h.hash>m.hash?1:0),r=n.length,o=[];for(let h of n)h.offset>=2147483648&&o.push(BigInt(h.offset));let s=8+256*4+r*20+r*4+r*4+o.length*8+20+20,i=new Uint8Array(s),a=new DataView(i.buffer),c=0;a.setUint32(c,Fc),c+=4,a.setUint32(c,_c),c+=4;let f=new Uint32Array(256);for(let h of n){let m=parseInt(h.hash.slice(0,2),16);for(let p=m;p<256;p++)f[p]++}for(let h=0;h<256;h++)a.setUint32(c,f[h]),c+=4;for(let h of n)i.set(jt(h.hash),c),c+=20;for(let h of n)a.setUint32(c,h.crc),c+=4;let l=0;for(let h of n)h.offset>=2147483648?a.setUint32(c,2147483648|l++):a.setUint32(c,h.offset),c+=4;for(let h of o)a.setBigUint64(c,h),c+=8;i.set(t,c),c+=20;let d=Dn();d.update(i.subarray(0,c));let u=await d.hex();return i.set(jt(u),c),i}async function Bc(e){let n=(await Lc(e)).map(o=>({hash:o.hash,offset:o.offset,crc:Ci(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return Uc(n,r)}async function Wc(e,t){let n=t.map(o=>({hash:o.hash,offset:o.offset,crc:Ci(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return Uc(n,r)}var Fc,_c,Yt,Zs=xe(()=>{"use strict";pt();or();bc();Sr();Fc=4285812579,_c=2,Yt=class{fanout;hashes;offsets;largeOffsets;count;constructor(t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(n.getUint32(0)!==Fc)throw new Error("Invalid pack index: bad magic");if(n.getUint32(4)!==_c)throw new Error(`Unsupported pack index version: ${n.getUint32(4)}`);this.fanout=new Uint32Array(256);let r=8;for(let s=0;s<256;s++)this.fanout[s]=n.getUint32(r),r+=4;this.count=this.fanout[255],this.hashes=new Uint8Array(t.buffer,t.byteOffset+r,this.count*20),r+=this.count*20,r+=this.count*4,this.offsets=new Uint32Array(this.count);for(let s=0;s<this.count;s++)this.offsets[s]=n.getUint32(r),r+=4;let o=!1;for(let s=0;s<this.count;s++)if(this.offsets[s]&2147483648){o=!0;break}this.largeOffsets=o?new DataView(t.buffer,t.byteOffset+r):null}lookup(t){let n=jt(t),r=n[0],o=r===0?0:this.fanout[r-1],s=this.fanout[r],i=o,a=s;for(;i<a;){let c=i+a>>>1,f=this.compareAt(c,n);if(f<0)i=c+1;else if(f>0)a=c;else return this.getOffset(c)}return null}has(t){return this.lookup(t)!==null}get objectCount(){return this.count}allHashes(){let t=[];for(let n=0;n<this.count;n++)t.push(this.hashAtSlot(n));return t}findByPrefix(t){if(t.length<2)return[];let n=parseInt(t.slice(0,2),16),r=n===0?0:this.fanout[n-1],o=this.fanout[n],s=jt(t.padEnd(40,"0")),i=t.length,a=[];for(let c=r;c<o;c++){let f=c*20,l=!0;for(let d=0;d<i;d++){let u=d%2===0?this.hashes[f+(d>>1)]>>4&15:this.hashes[f+(d>>1)]&15,h=d%2===0?s[d>>1]>>4&15:s[d>>1]&15;if(u!==h){l=!1;break}}l&&a.push(this.hashAtSlot(c))}return a}hashAtSlot(t){let n="",r=t*20;for(let o=0;o<20;o++){let s=this.hashes[r+o];n+=(s>>4).toString(16)+(s&15).toString(16)}return n}compareAt(t,n){let r=t*20;for(let o=0;o<20;o++){let s=this.hashes[r+o],i=n[o];if(s<i)return-1;if(s>i)return 1}return 0}getOffset(t){let n=this.offsets[t];if(n&2147483648){let r=n&2147483647;return Number(this.largeOffsets.getBigUint64(r*8))}return n}}});var Yu,Xu,Zu,qc,ns,Kc=xe(()=>{"use strict";pt();Zs();Sr();Vs();Yu=6,Xu=7,Zu={1:"commit",2:"tree",3:"blob",4:"tag"},qc=50,ns=class{constructor(t,n){this.data=t;this.index=n instanceof Yt?n:new Yt(n)}index;hasObject(t){return this.index.has(t)}findByPrefix(t){return this.index.findByPrefix(t)}async readObject(t){let n=this.index.lookup(t);return n===null?null:this.readAt(n,0)}get objectCount(){return this.index.objectCount}async readAt(t,n){if(n>qc)throw new Error(`delta chain depth ${n} exceeds limit of ${qc}`);let r=this.data,o=t,s=r[o++],i=s>>4&7,a=s&15,c=4;for(;s&128;)s=r[o++],a|=(s&127)<<c,c+=7;if(i===Yu){let d=r[o++],u=d&127;for(;d&128;)u+=1,d=r[o++],u=(u<<7)+(d&127);let h=await Or(r.subarray(o)),m=await this.readAt(t-u,n+1);return{type:m.type,content:ts(m.content,h)}}if(i===Xu){let d=Zr(r,o);o+=20;let u=await Or(r.subarray(o)),h=this.index.lookup(d);if(h===null)throw new Error(`REF_DELTA base ${d} not found in pack`);let m=await this.readAt(h,n+1);return{type:m.type,content:ts(m.content,u)}}let f=Zu[i];if(!f)throw new Error(`Unknown pack object type: ${i}`);let l=await Or(r.subarray(o));if(l.byteLength!==a)throw new Error(`Pack inflate size mismatch at offset ${t}: got ${l.byteLength}, expected ${a}`);return{type:f,content:l}}}});function Mi(e,t){let n=Ju.encode(`${e} ${t.byteLength}\0`),r=new Uint8Array(n.byteLength+t.byteLength);return r.set(n),r.set(t,n.byteLength),r}function eh(e,t){let n=t.indexOf(0);if(n===-1)throw new Error(`Corrupt object ${e}: no null byte in header`);let r=Qu.decode(t.subarray(0,n)),o=r.indexOf(" ");if(o===-1)throw new Error(`Corrupt object ${e}: malformed header "${r}"`);let s=r.slice(0,o),i=parseInt(r.slice(o+1),10),a=t.subarray(n+1);if(a.byteLength!==i)throw new Error(`Corrupt object ${e}: expected ${i} bytes, got ${a.byteLength}`);return{type:s,content:a}}function Di(e,t){return H(e,"objects",t.slice(0,2),t.slice(2))}var Ju,Qu,Ir,ji=xe(()=>{"use strict";pt();gc();Zs();Kc();Sr();Vs();me();or();Ju=new TextEncoder,Qu=new TextDecoder;Ir=class{constructor(t,n,r){this.fs=t;this.gitDir=n;this.cache=new zs(r),this.packDir=H(n,"objects","pack")}packs=[];loadedPackNames=new Set;discoverPromise=null;cache;packDir;async write(t,n){let r=Mi(t,n),o=await Mn(r),s=Di(this.gitDir,o);if(await this.fs.exists(s))return o;let i=H(this.gitDir,"objects",o.slice(0,2));return await this.fs.mkdir(i,{recursive:!0}),await this.fs.writeFile(s,await $r(r)),o}async read(t){let n=this.cache.get(t);if(n)return n;let r=Di(this.gitDir,t);if(await this.fs.exists(r)){let o=await this.fs.readFileBuffer(r),s=await Or(o),i=await Mn(s);if(i!==t)throw new Error(`corrupt loose object ${t}: SHA-1 mismatch (computed ${i})`);let a=eh(t,s);return this.cache.set(t,a),a}await this.discover();for(let o of this.packs){if(!o.index.has(t))continue;let i=await(await this.ensureReader(o)).readObject(t);if(i)return this.cache.set(t,i),i}throw new Error(`object ${t} not found`)}async exists(t){if(await this.fs.exists(Di(this.gitDir,t)))return!0;await this.discover();for(let n of this.packs)if(n.index.has(t))return!0;return!1}async ingestPack(t){if(t.byteLength<32)return 0;let n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=n.getUint32(0);if(r!==1346454347)throw new Error(`invalid pack signature: 0x${r.toString(16)} (expected 0x5041434b)`);let o=n.getUint32(4);if(o!==2)throw new Error(`unsupported pack version: ${o}`);let s=n.getUint32(8);if(s===0)return 0;let i=t.subarray(t.byteLength-20),a=An(i),c=await Mn(t.subarray(0,t.byteLength-20));if(c!==a)throw new Error(`pack checksum mismatch: expected ${a}, computed ${c}`);await this.fs.mkdir(this.packDir,{recursive:!0});let f=`pack-${a}`,l=H(this.packDir,`${f}.pack`);await this.fs.writeFile(l,t);let d=await Bc(t),u=H(this.packDir,`${f}.idx`);await this.fs.writeFile(u,d),this.loadedPackNames.add(f);let h=new Yt(d);return this.packs.push({name:f,index:h,reader:new ns(t,h)}),s}async ingestPackStream(t){let n=[];for await(let o of t)n.push(o);if(n.length===0)return 0;let r=await Gc(n);return this.ingestPack(r)}invalidatePacks(){this.packs=[],this.loadedPackNames.clear(),this.discoverPromise=null,this.cache.clear()}async findByPrefix(t){if(t.length<4)return[];let n=t.slice(0,2),r=t.slice(2),o=H(this.gitDir,"objects",n),s=[];if(await this.fs.exists(o)){let i=await this.fs.readdir(o);for(let a of i)a.startsWith(r)&&s.push(`${n}${a}`)}await this.discover();for(let i of this.packs)for(let a of i.index.findByPrefix(t))s.includes(a)||s.push(a);return s}async ensureReader(t){if(t.reader)return t.reader;let n=H(this.packDir,`${t.name}.pack`),r=await this.fs.readFileBuffer(n);return t.reader=new ns(r,t.index),t.reader}discover(){return this.discoverPromise||(this.discoverPromise=this.doDiscover()),this.discoverPromise}async doDiscover(){if(!await this.fs.exists(this.packDir))return;let t=await this.fs.readdir(this.packDir);for(let n of t){if(!n.endsWith(".idx"))continue;let r=n.slice(0,-4);if(this.loadedPackNames.has(r))continue;let o=H(this.packDir,`${r}.pack`);if(!await this.fs.exists(o))continue;let s=await this.fs.readFileBuffer(H(this.packDir,n));this.loadedPackNames.add(r),this.packs.push({name:r,index:new Yt(s),reader:null})}}}});function rs(e){let t=e.indexOf("<"),n=e.indexOf(">");if(t===-1||n===-1)throw new Error(`Malformed identity line: "${e}"`);let r=e.slice(0,t).trimEnd(),o=e.slice(t+1,n),s=e.slice(n+2),[i="0",a="+0000"]=s.split(" "),c=parseInt(i,10);return{name:r,email:o,timestamp:c,timezone:a}}function ss(e){return`${e.name} <${e.email}> ${e.timestamp} ${e.timezone}`}var Li=xe(()=>{"use strict"});function an(e){let t=nh.decode(e),n=t.indexOf(`
21
+ `);return{name:a,email:c,timestamp:s,timezone:i}}async function Mn(e,t){try{let n=await Xr(e,t);return{name:n.name,email:n.email,timestamp:n.timestamp,tz:n.timezone}}catch{return{name:t.get("GIT_COMMITTER_NAME")??"",email:t.get("GIT_COMMITTER_EMAIL")??"",timestamp:Math.floor(Date.now()/1e3),tz:"+0000"}}}function Su(e){let t={timestamp:Math.floor(Date.now()/1e3),timezone:"+0000"};if(!e)return t;let n=e.trim();if(!n)return t;if(n.startsWith("@")){let s=n.slice(1).trim(),i=parseInt(s,10);if(!Number.isNaN(i))return{timestamp:i,timezone:"+0000"}}if(/^\d+$/.test(n))return{timestamp:parseInt(n,10),timezone:"+0000"};let r=n.match(/^(\d+)\s+([+-]\d{4})$/);if(r)return{timestamp:parseInt(r[1],10),timezone:r[2]};let o=Date.parse(n);return Number.isNaN(o)?t:{timestamp:Math.floor(o/1e3),timezone:Iu(n)}}function Iu(e){if(/Z$/i.test(e))return"+0000";let t=e.match(/([+-])(\d{2}):(\d{2})$/);if(t)return`${t[1]}${t[2]}${t[3]}`;let n=e.match(/([+-]\d{4})$/);return n?n[1]:"+0000"}var Ou,sr=xe(()=>{"use strict";Ue();Ou={author:{name:"GIT_AUTHOR_NAME",email:"GIT_AUTHOR_EMAIL",date:"GIT_AUTHOR_DATE"},committer:{name:"GIT_COMMITTER_NAME",email:"GIT_COMMITTER_EMAIL",date:"GIT_COMMITTER_DATE"}}});function jn(e){let t="";for(let n=0;n<20;n++)t+=lc[e[n]];return t}function Zr(e,t){let n="";for(let r=0;r<20;r++)n+=lc[e[t+r]];return n}function jt(e){let t=new Uint8Array(20);for(let n=0;n<20;n++)t[n]=parseInt(e.slice(n*2,n*2+2),16);return t}var ne,lc,pt=xe(()=>{"use strict";ne="0000000000000000000000000000000000000000",lc=(()=>{let e=new Array(256);for(let t=0;t<256;t++)e[t]=(t>>4).toString(16)+(t&15).toString(16);return e})()});function dc(e){return e.length===4&&e.toLowerCase()===".git"}function or(e){if(e.length===0||e.includes("\0")||e.charCodeAt(0)===47||e.charCodeAt(e.length-1)===47)return!1;let t=e.split("/");for(let n of t)if(n.length===0||n==="."||n===".."||dc(n))return!1;return!0}function Bs(e,t){return t===e?!1:e==="/"?t.startsWith("/")&&t.length>1:t.startsWith(e+"/")}function uc(e){if(e.length===0||e.charCodeAt(0)===47)return!1;let t=e.split("/");for(let n of t)if(n===".."||dc(n))return!1;return!0}var Ws=xe(()=>{"use strict"});function ki(e){return typeof e=="string"?Tu.encode(e):e}function vu(){if(typeof globalThis.Bun<"u")return()=>{let e=new Bun.CryptoHasher("sha1"),t={update(n){return e.update(ki(n)),t},hex:()=>Promise.resolve(e.digest("hex"))};return t};try{let e=js(["node","crypto"].join(":"));if(typeof e.createHash=="function")return()=>{let t=e.createHash("sha1"),n={update(r){return t.update(ki(r)),n},hex:()=>Promise.resolve(t.digest("hex"))};return n}}catch{}if(typeof globalThis.crypto?.subtle?.digest=="function")return()=>{let e=[],t={update(n){return e.push(ki(n)),t},async hex(){let n=0;for(let i of e)n+=i.byteLength;let r=new Uint8Array(n),o=0;for(let i of e)r.set(i,o),o+=i.byteLength;let s=await crypto.subtle.digest("SHA-1",r);return jn(new Uint8Array(s))}};return t};throw new Error("No SHA-1 implementation available. Requires Bun, Node.js, Deno, or a browser with Web Crypto.")}async function Gn(e){return hc().update(e).hex()}var Tu,hc,Ln,ir=xe(()=>{"use strict";pt();Tu=new TextEncoder;hc=vu(),Ln=hc});async function V(e){let t=H(e.gitDir,"index");if(!await e.fs.exists(t))return{version:Ri,entries:[]};let n=await e.fs.readFileBuffer(t);return Hu(n)}async function ae(e,t){let n=H(e.gitDir,"index"),r=await Au(t);await e.fs.writeFile(n,r)}function Pt(e,t){if(!or(t.path))throw new Error(`refusing to add unsafe path to index: '${t.path}'`);let n;return t.stage===0?n=e.entries.filter(r=>r.path!==t.path):n=e.entries.filter(r=>!(r.path===t.path&&r.stage===t.stage)),n.push(t),n.sort(xi),{...e,entries:n}}function lt(e,t){return{...e,entries:e.entries.filter(n=>n.path!==t)}}function qs(e,t,n=0){return e.entries.find(r=>r.path===t&&r.stage===n)}function Lt(e){return e.entries.some(t=>t.stage>0)}function zt(e){return[...new Set(e.entries.filter(t=>t.stage>0).map(t=>t.path))]}function Ge(e){return e.entries.filter(t=>t.stage===0)}function pc(){return{version:Ri,entries:[]}}function Ks(e){let t=[...e].sort(xi);return{version:Ri,entries:t}}function He(){return{ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,uid:0,gid:0,size:0}}function Hu(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=0,r=t.getUint32(n);if(n+=4,r!==mc)throw new Error(`Invalid index signature: 0x${r.toString(16)}`);let o=t.getUint32(n);n+=4;let s=t.getUint32(n);n+=4;let i=[];for(let a=0;a<s;a++){let c=n,f={ctimeSeconds:t.getUint32(n),ctimeNanoseconds:t.getUint32(n+4),mtimeSeconds:t.getUint32(n+8),mtimeNanoseconds:t.getUint32(n+12),dev:t.getUint32(n+16),ino:t.getUint32(n+20),uid:t.getUint32(n+28),gid:t.getUint32(n+32),size:t.getUint32(n+36)},l=t.getUint32(n+24);n+=40;let d=e.subarray(n,n+20),u=jn(d);n+=20;let h=t.getUint16(n);n+=2;let m=h>>12&3,p=h&4095,g,w;if(p<4095)w=new TextDecoder().decode(e.subarray(n,n+p)),g=p;else{let E=n;for(;E<e.byteLength&&e[E]!==0;)E++;w=new TextDecoder().decode(e.subarray(n,E)),g=E-n}let b=62+g+1,R=Math.ceil(b/8)*8;n=c+R,i.push({path:w,mode:l,hash:u,stage:m,stat:f})}return{version:o,entries:i}}async function Au(e){let t=new TextEncoder,n=[...e.entries].sort(xi),r=[],o=12;for(let u of n){let h=t.encode(u.path);r.push(h);let m=62+h.byteLength+1;o+=Math.ceil(m/8)*8}o+=20;let s=new ArrayBuffer(o),i=new Uint8Array(s),a=new DataView(s),c=0;a.setUint32(c,mc),c+=4,a.setUint32(c,e.version),c+=4,a.setUint32(c,n.length),c+=4;for(let u=0;u<n.length;u++){let h=n[u],m=r[u],p=c;a.setUint32(c,h.stat.ctimeSeconds),a.setUint32(c+4,h.stat.ctimeNanoseconds),a.setUint32(c+8,h.stat.mtimeSeconds),a.setUint32(c+12,h.stat.mtimeNanoseconds),a.setUint32(c+16,h.stat.dev),a.setUint32(c+20,h.stat.ino),a.setUint32(c+24,h.mode),a.setUint32(c+28,h.stat.uid),a.setUint32(c+32,h.stat.gid),a.setUint32(c+36,h.stat.size),c+=40;let g=jt(h.hash);i.set(g,c),c+=20;let w=Math.min(m.byteLength,4095),b=(h.stage&3)<<12|w;a.setUint16(c,b),c+=2,i.set(m,c),c+=m.byteLength,i[c]=0,c+=1;let R=62+m.byteLength+1,E=Math.ceil(R/8)*8;c=p+E}let f=i.subarray(0,c),l=await Gn(f),d=jt(l);return i.set(d,c),i}function xi(e,t){return e.path<t.path?-1:e.path>t.path?1:e.stage-t.stage}var mc,Ri,Ce=xe(()=>{"use strict";pt();Ws();me();ir();mc=1145655875,Ri=2});var Du,zs,gc=xe(()=>{"use strict";Du=new Set(["tree","commit","tag"]),zs=class{map=new Map;currentBytes=0;maxBytes;constructor(t=16*1024*1024){this.maxBytes=t}get(t){return this.map.get(t)}set(t,n){if(!Du.has(n.type))return;let r=n.content.byteLength;if(!(r>this.maxBytes/2)&&!this.map.has(t)){for(;this.currentBytes+r>this.maxBytes&&this.map.size>0;){let o=this.map.keys().next().value;this.currentBytes-=this.map.get(o).content.byteLength,this.map.delete(o)}this.map.set(t,n),this.currentBytes+=r}}get size(){return this.map.size}get bytes(){return this.currentBytes}clear(){this.map.clear(),this.currentBytes=0}}});function Ci(e){let t=4294967295;for(let n=0;n<e.byteLength;n++)t=wc[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var wc,bc=xe(()=>{"use strict";wc=new Uint32Array(256);for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t=t&1?3988292384^t>>>1:t>>>1;wc[e]=t}});function Oc(e){let t=$c(e);return Pc(e.subarray(t,-4),{i:2})}function Si(e){let t=$c(e),n={i:2},r=Pc(e.subarray(t),n),o=Cc(n.p);return{result:r,bytesConsumed:t+o+4}}var Yt,Pr,Mu,yc,Ec,ju,kc,Rc,Lu,Oi,Jr,Qr,xc,Gu,Nu,Pi,Vt,$i,Cc,Fu,on,Pc,$c,Sc=xe(()=>{"use strict";Yt=Uint8Array,Pr=Uint16Array,Mu=Int32Array,yc=new Yt([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Ec=new Yt([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ju=new Yt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),kc=(e,t)=>{let n=new Pr(31);for(let o=0;o<31;++o)n[o]=t+=1<<e[o-1];let r=new Mu(n[30]);for(let o=1;o<30;++o)for(let s=n[o];s<n[o+1];++s)r[s]=s-n[o]<<5|o;return{b:n,r}},{b:Rc}=kc(yc,2);Rc[28]=258;({b:Lu}=kc(Ec,0)),Oi=new Pr(32768);for(let e=0;e<32768;++e){let t=(e&43690)>>1|(e&21845)<<1;t=(t&52428)>>2|(t&13107)<<2,t=(t&61680)>>4|(t&3855)<<4,Oi[e]=((t&65280)>>8|(t&255)<<8)>>1}Jr=(e,t,n)=>{let r=e.length,o=0,s=new Pr(t);for(;o<r;++o)e[o]&&++s[e[o]-1];let i=new Pr(t);for(o=1;o<t;++o)i[o]=i[o-1]+s[o-1]<<1;let a;if(n){a=new Pr(1<<t);let c=15-t;for(o=0;o<r;++o)if(e[o]){let f=o<<4|e[o],l=t-e[o],d=i[e[o]-1]++<<l;for(let u=d|(1<<l)-1;d<=u;++d)a[Oi[d]>>c]=f}}else for(a=new Pr(r),o=0;o<r;++o)e[o]&&(a[o]=Oi[i[e[o]-1]++]>>15-e[o]);return a},Qr=new Yt(288);for(let e=0;e<144;++e)Qr[e]=8;for(let e=144;e<256;++e)Qr[e]=9;for(let e=256;e<280;++e)Qr[e]=7;for(let e=280;e<288;++e)Qr[e]=8;xc=new Yt(32);for(let e=0;e<32;++e)xc[e]=5;Gu=Jr(Qr,9,1),Nu=Jr(xc,5,1),Pi=e=>{let t=e[0];for(let n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Vt=(e,t,n)=>{let r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},$i=(e,t)=>{let n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},Cc=e=>(e+7)/8|0,Fu=(e,t,n)=>((t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new Yt(e.subarray(t,n))),on=(e,t)=>{let n=["unexpected EOF","invalid block type","invalid length/literal","invalid distance"];throw new Error(t||n[e]||"unknown inflate error")},Pc=(e,t,n,r)=>{let o=e.length,s=r?r.length:0;if(!o||t.f&&!t.l)return n||new Yt(0);let i=!n,a=i||t.i!=2,c=t.i;i&&(n=new Yt(o*3));let f=b=>{let R=n.length;if(b>R){let E=new Yt(Math.max(R*2,b));E.set(n),n=E}},l=t.f||0,d=t.p||0,u=t.b||0,h=t.l,m=t.d,p=t.m,g=t.n,w=o*8;do{if(!h){l=Vt(e,d,1);let k=Vt(e,d+1,3);if(d+=3,k)if(k==1)h=Gu,m=Nu,p=9,g=5;else if(k==2){let x=Vt(e,d,31)+257,y=Vt(e,d+10,15)+4,P=x+Vt(e,d+5,31)+1;d+=14;let C=new Yt(P),A=new Yt(19);for(let I=0;I<y;++I)A[ju[I]]=Vt(e,d+I*3,7);d+=y*3;let D=Pi(A),$=(1<<D)-1,v=Jr(A,D,1);for(let I=0;I<P;){let T=v[Vt(e,d,$)];d+=T&15;let G=T>>4;if(G<16)C[I++]=G;else{let W=0,F=0;for(G==16?(F=3+Vt(e,d,3),d+=2,W=C[I-1]):G==17?(F=3+Vt(e,d,7),d+=3):G==18&&(F=11+Vt(e,d,127),d+=7);F--;)C[I++]=W}}let N=C.subarray(0,x),L=C.subarray(x);p=Pi(N),g=Pi(L),h=Jr(N,p,1),m=Jr(L,g,1)}else on(1);else{let x=Cc(d)+4,y=e[x-4]|e[x-3]<<8,P=x+y;if(P>o){c&&on(0);break}a&&f(u+y),n.set(e.subarray(x,P),u),t.b=u+=y,t.p=d=P*8,t.f=l;continue}if(d>w){c&&on(0);break}}a&&f(u+131072);let b=(1<<p)-1,R=(1<<g)-1,E=d;for(;;E=d){let k=h[$i(e,d)&b],x=k>>4;if(d+=k&15,d>w){c&&on(0);break}if(k||on(2),x<256)n[u++]=x;else if(x==256){E=d,h=null;break}else{let y=x-254;if(x>264){let $=x-257,v=yc[$];y=Vt(e,d,(1<<v)-1)+Rc[$],d+=v}let P=m[$i(e,d)&R],C=P>>4;P||on(3),d+=P&15;let A=Lu[C];if(C>3){let $=Ec[C];A+=$i(e,d)&(1<<$)-1,d+=$}if(d>w){c&&on(0);break}a&&f(u+131072);let D=u+y;if(u<A){let $=s-A,v=Math.min(A,D);for($+u<0&&on(3);u<v;++u)n[u]=r[$+u]}for(;u<D;++u)n[u]=n[u-A]}}t.l=h,t.p=E,t.b=u,t.f=l,h&&(l=1,t.m=p,t.d=m,t.n=g)}while(!l);return u!=n.length&&i?Fu(n,0,u):n.subarray(0,u)},$c=e=>(((e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31)&&on(0,"invalid zlib data"),e[1]&32&&on(0,"zlib dictionaries are not supported"),2)});async function _u(){let e;if(!(typeof document<"u"))try{e=js(["node","zlib"].join(":"))}catch{try{e=await import(["node","zlib"].join(":"))}catch{}}if(e&&typeof e.deflateSync=="function"&&typeof e.inflateSync=="function"){let r=null;try{let o=e.inflateSync(e.deflateSync(Buffer.from("x")),{info:!0});o?.engine&&typeof o.engine.bytesWritten=="number"&&(r=s=>{let i=e.inflateSync(s,{info:!0});return{result:new Uint8Array(i.buffer),bytesConsumed:i.engine.bytesWritten}})}catch{}return{deflateSync:o=>new Uint8Array(e.deflateSync(o)),inflateSync:o=>new Uint8Array(e.inflateSync(o)),inflateWithConsumed:r??Si}}let n;return typeof globalThis.CompressionStream=="function"?n=async r=>{let o=new CompressionStream("deflate"),s=o.writable.getWriter();return s.write(r),s.close(),new Uint8Array(await new Response(o.readable).arrayBuffer())}:n=()=>{throw new Error("No deflate implementation available. Requires node:zlib or CompressionStream.")},{deflateSync:n,inflateSync:Oc,inflateWithConsumed:Si}}function Ii(){return Uu??=_u()}async function $r(e){return await(await Ii()).deflateSync(e)}async function Or(e){return await(await Ii()).inflateSync(e)}async function Ic(e,t){let n=await Ii(),{result:r,bytesConsumed:o}=n.inflateWithConsumed(e);if(r.byteLength!==t)throw new Error(`Inflate size mismatch: got ${r.byteLength}, expected ${t}`);return{result:r,bytesConsumed:o}}var Uu,Vs=xe(()=>{"use strict";Sc();Uu=null});async function Lc(e,t){let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=n.getUint32(0);if(r!==Ys)throw new Error(`Invalid pack signature: 0x${r.toString(16)} (expected 0x${Ys.toString(16)})`);let o=n.getUint32(4);if(o!==Hi)throw new Error(`Unsupported pack version: ${o}`);if(e.byteLength>=32){let f=Zr(e,e.byteLength-20),l=Ln();l.update(e.subarray(0,e.byteLength-20));let d=await l.hex();if(d!==f)throw new Error(`pack checksum mismatch: expected ${f}, computed ${d}`)}let s=n.getUint32(8),i=[],a=12;for(let f=0;f<s;f++){let l=await Wu(e,a);i.push(l),a=l.nextOffset}return(await qu(i,t)).map((f,l)=>({...f,offset:i[l].headerOffset,nextOffset:i[l].nextOffset}))}async function Wu(e,t){let n=t,r=e[t++],o=r>>4&7,s=r&15,i=4;for(;r&128;)r=e[t++],s|=(r&127)<<i,i+=7;let a,c;if(o===es){let d=e[t++];for(a=d&127;d&128;)a+=1,d=e[t++],a=(a<<7)+(d&127);a=n-a}else o===Ai&&(c=Zr(e,t),t+=20);let{result:f,bytesConsumed:l}=await Ic(e.subarray(t),s);return{headerOffset:n,typeNum:o,inflated:f,baseOffset:a,baseHash:c,nextOffset:t+l}}async function qu(e,t){let n=new Map;for(let s=0;s<e.length;s++)n.set(e[s].headerOffset,s);let r=new Array(e.length).fill(null);async function o(s,i=0){if(i>Tc)throw new Error(`delta chain depth ${i} exceeds limit of ${Tc}`);let a=r[s];if(a)return a;let c=e[s];if(c.typeNum!==es&&c.typeNum!==Ai){let h=Bu[c.typeNum];if(!h)throw new Error(`Unknown object type: ${c.typeNum}`);let m={type:h,content:c.inflated,hash:await Ti(h,c.inflated)};return r[s]=m,m}if(c.typeNum===es){let h=n.get(c.baseOffset);if(h===void 0)throw new Error(`OFS_DELTA base not found at offset ${c.baseOffset}`);let m=await o(h,i+1),p=ts(m.content,c.inflated),g={type:m.type,content:p,hash:await Ti(m.type,p)};return r[s]=g,g}let f=await Ku(e,r,c.baseHash,o),l;if(f!==void 0)l=await o(f,i+1);else if(t){let h=await t(c.baseHash);h&&(l=h)}if(!l)throw new Error(`REF_DELTA base not found for hash ${c.baseHash}`);let d=ts(l.content,c.inflated),u={type:l.type,content:d,hash:await Ti(l.type,d)};return r[s]=u,u}for(let s=0;s<e.length;s++)await o(s);return r}async function Ku(e,t,n,r){for(let o=0;o<t.length;o++)if(t[o]?.hash===n)return o;for(let o=0;o<e.length;o++){let s=e[o];if(s.typeNum!==es&&s.typeNum!==Ai&&(await r(o)).hash===n)return o}}function ts(e,t){let n=0,{value:r,newPos:o}=vc(t,n);if(n=o,r!==e.byteLength)throw new Error(`Delta base size mismatch: expected ${r}, got ${e.byteLength}`);let{value:s,newPos:i}=vc(t,n);n=i;let a=new Uint8Array(s),c=0;for(;n<t.byteLength;){let f=t[n++];if(f&128){let l=0,d=0;f&1&&(l=t[n++]),f&2&&(l|=t[n++]<<8),f&4&&(l|=t[n++]<<16),f&8&&(l|=t[n++]<<24),f&16&&(d=t[n++]),f&32&&(d|=t[n++]<<8),f&64&&(d|=t[n++]<<16),d===0&&(d=65536),a.set(e.subarray(l,l+d),c),c+=d}else if(f>0)a.set(t.subarray(n,n+f),c),c+=f,n+=f;else throw new Error("Unexpected delta opcode 0x00 (reserved)")}if(c!==s)throw new Error(`Delta produced ${c} bytes, expected ${s}`);return a}async function Gc(e){let t=[],n=new Uint8Array(12),r=new DataView(n.buffer);r.setUint32(0,Ys),r.setUint32(4,Hi),r.setUint32(8,e.length),t.push(n);for(let o of e){let s=jc[o.type],i=await $r(o.content);t.push(vi(s,o.content.byteLength)),t.push(i)}return Nc(t)}async function Xs(e){let t=[],n=new Map,r=new Uint8Array(12),o=new DataView(r.buffer);o.setUint32(0,Ys),o.setUint32(4,Hi),o.setUint32(8,e.length),t.push(r);let s=12,i=[];for(let a of e){let c=s;n.set(a.hash,s);let f=a.delta&&a.deltaBaseHash?n.get(a.deltaBaseHash):void 0;if(a.delta&&f!==void 0){let l=vi(es,a.delta.byteLength),d=zu(s-f),u=await $r(a.delta);t.push(l,d,u),s+=l.byteLength+d.byteLength+u.byteLength}else{let l=jc[a.type],d=vi(l,a.content.byteLength),u=await $r(a.content);t.push(d,u),s+=d.byteLength+u.byteLength}i.push({hash:a.hash,offset:c,nextOffset:s})}return{data:await Nc(t),entries:i}}async function Nc(e){let t=0;for(let i of e)t+=i.byteLength;t+=20;let n=new Uint8Array(t),r=0;for(let i of e)n.set(i,r),r+=i.byteLength;let o=Ln();o.update(n.subarray(0,r));let s=await o.hex();return n.set(jt(s),r),n}function zu(e){let t=[];t.push(e&127);let n=e>>>7;for(;n>0;)t.unshift(128|--n&127),n>>>=7;return new Uint8Array(t)}function vi(e,t){let n=[],r=e<<4|t&15;for(t>>=4;t>0;)n.push(r|128),r=t&127,t>>=7;return n.push(r),new Uint8Array(n)}function vc(e,t){let n=0,r=0,o;do o=e[t++],n|=(o&127)<<r,r+=7;while(o&128);return{value:n,newPos:t}}async function Ti(e,t){let n=Vu.encode(`${e} ${t.byteLength}\0`),r=Ln();return r.update(n),r.update(t),r.hex()}var Ys,Hi,Hc,Ac,Dc,Mc,es,Ai,Bu,jc,Tc,Vu,Sr=xe(()=>{"use strict";pt();ir();Vs();Ys=1346454347,Hi=2,Hc=1,Ac=2,Dc=3,Mc=4,es=6,Ai=7,Bu={[Hc]:"commit",[Ac]:"tree",[Dc]:"blob",[Mc]:"tag"},jc={commit:Hc,tree:Ac,blob:Dc,tag:Mc};Tc=50;Vu=new TextEncoder});async function Uc(e,t){let n=[...e].sort((h,m)=>h.hash<m.hash?-1:h.hash>m.hash?1:0),r=n.length,o=[];for(let h of n)h.offset>=2147483648&&o.push(BigInt(h.offset));let s=8+256*4+r*20+r*4+r*4+o.length*8+20+20,i=new Uint8Array(s),a=new DataView(i.buffer),c=0;a.setUint32(c,Fc),c+=4,a.setUint32(c,_c),c+=4;let f=new Uint32Array(256);for(let h of n){let m=parseInt(h.hash.slice(0,2),16);for(let p=m;p<256;p++)f[p]++}for(let h=0;h<256;h++)a.setUint32(c,f[h]),c+=4;for(let h of n)i.set(jt(h.hash),c),c+=20;for(let h of n)a.setUint32(c,h.crc),c+=4;let l=0;for(let h of n)h.offset>=2147483648?a.setUint32(c,2147483648|l++):a.setUint32(c,h.offset),c+=4;for(let h of o)a.setBigUint64(c,h),c+=8;i.set(t,c),c+=20;let d=Ln();d.update(i.subarray(0,c));let u=await d.hex();return i.set(jt(u),c),i}async function Bc(e){let n=(await Lc(e)).map(o=>({hash:o.hash,offset:o.offset,crc:Ci(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return Uc(n,r)}async function Wc(e,t){let n=t.map(o=>({hash:o.hash,offset:o.offset,crc:Ci(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return Uc(n,r)}var Fc,_c,Xt,Zs=xe(()=>{"use strict";pt();ir();bc();Sr();Fc=4285812579,_c=2,Xt=class{fanout;hashes;offsets;largeOffsets;count;constructor(t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(n.getUint32(0)!==Fc)throw new Error("Invalid pack index: bad magic");if(n.getUint32(4)!==_c)throw new Error(`Unsupported pack index version: ${n.getUint32(4)}`);this.fanout=new Uint32Array(256);let r=8;for(let s=0;s<256;s++)this.fanout[s]=n.getUint32(r),r+=4;this.count=this.fanout[255],this.hashes=new Uint8Array(t.buffer,t.byteOffset+r,this.count*20),r+=this.count*20,r+=this.count*4,this.offsets=new Uint32Array(this.count);for(let s=0;s<this.count;s++)this.offsets[s]=n.getUint32(r),r+=4;let o=!1;for(let s=0;s<this.count;s++)if(this.offsets[s]&2147483648){o=!0;break}this.largeOffsets=o?new DataView(t.buffer,t.byteOffset+r):null}lookup(t){let n=jt(t),r=n[0],o=r===0?0:this.fanout[r-1],s=this.fanout[r],i=o,a=s;for(;i<a;){let c=i+a>>>1,f=this.compareAt(c,n);if(f<0)i=c+1;else if(f>0)a=c;else return this.getOffset(c)}return null}has(t){return this.lookup(t)!==null}get objectCount(){return this.count}allHashes(){let t=[];for(let n=0;n<this.count;n++)t.push(this.hashAtSlot(n));return t}findByPrefix(t){if(t.length<2)return[];let n=parseInt(t.slice(0,2),16),r=n===0?0:this.fanout[n-1],o=this.fanout[n],s=jt(t.padEnd(40,"0")),i=t.length,a=[];for(let c=r;c<o;c++){let f=c*20,l=!0;for(let d=0;d<i;d++){let u=d%2===0?this.hashes[f+(d>>1)]>>4&15:this.hashes[f+(d>>1)]&15,h=d%2===0?s[d>>1]>>4&15:s[d>>1]&15;if(u!==h){l=!1;break}}l&&a.push(this.hashAtSlot(c))}return a}hashAtSlot(t){let n="",r=t*20;for(let o=0;o<20;o++){let s=this.hashes[r+o];n+=(s>>4).toString(16)+(s&15).toString(16)}return n}compareAt(t,n){let r=t*20;for(let o=0;o<20;o++){let s=this.hashes[r+o],i=n[o];if(s<i)return-1;if(s>i)return 1}return 0}getOffset(t){let n=this.offsets[t];if(n&2147483648){let r=n&2147483647;return Number(this.largeOffsets.getBigUint64(r*8))}return n}}});var Yu,Xu,Zu,qc,ns,Kc=xe(()=>{"use strict";pt();Zs();Sr();Vs();Yu=6,Xu=7,Zu={1:"commit",2:"tree",3:"blob",4:"tag"},qc=50,ns=class{constructor(t,n){this.data=t;this.index=n instanceof Xt?n:new Xt(n)}index;hasObject(t){return this.index.has(t)}findByPrefix(t){return this.index.findByPrefix(t)}async readObject(t){let n=this.index.lookup(t);return n===null?null:this.readAt(n,0)}get objectCount(){return this.index.objectCount}async readAt(t,n){if(n>qc)throw new Error(`delta chain depth ${n} exceeds limit of ${qc}`);let r=this.data,o=t,s=r[o++],i=s>>4&7,a=s&15,c=4;for(;s&128;)s=r[o++],a|=(s&127)<<c,c+=7;if(i===Yu){let d=r[o++],u=d&127;for(;d&128;)u+=1,d=r[o++],u=(u<<7)+(d&127);let h=await Or(r.subarray(o)),m=await this.readAt(t-u,n+1);return{type:m.type,content:ts(m.content,h)}}if(i===Xu){let d=Zr(r,o);o+=20;let u=await Or(r.subarray(o)),h=this.index.lookup(d);if(h===null)throw new Error(`REF_DELTA base ${d} not found in pack`);let m=await this.readAt(h,n+1);return{type:m.type,content:ts(m.content,u)}}let f=Zu[i];if(!f)throw new Error(`Unknown pack object type: ${i}`);let l=await Or(r.subarray(o));if(l.byteLength!==a)throw new Error(`Pack inflate size mismatch at offset ${t}: got ${l.byteLength}, expected ${a}`);return{type:f,content:l}}}});function Mi(e,t){let n=Ju.encode(`${e} ${t.byteLength}\0`),r=new Uint8Array(n.byteLength+t.byteLength);return r.set(n),r.set(t,n.byteLength),r}function eh(e,t){let n=t.indexOf(0);if(n===-1)throw new Error(`Corrupt object ${e}: no null byte in header`);let r=Qu.decode(t.subarray(0,n)),o=r.indexOf(" ");if(o===-1)throw new Error(`Corrupt object ${e}: malformed header "${r}"`);let s=r.slice(0,o),i=parseInt(r.slice(o+1),10),a=t.subarray(n+1);if(a.byteLength!==i)throw new Error(`Corrupt object ${e}: expected ${i} bytes, got ${a.byteLength}`);return{type:s,content:a}}function Di(e,t){return H(e,"objects",t.slice(0,2),t.slice(2))}var Ju,Qu,Ir,ji=xe(()=>{"use strict";pt();gc();Zs();Kc();Sr();Vs();me();ir();Ju=new TextEncoder,Qu=new TextDecoder;Ir=class{constructor(t,n,r){this.fs=t;this.gitDir=n;this.cache=new zs(r),this.packDir=H(n,"objects","pack")}packs=[];loadedPackNames=new Set;discoverPromise=null;cache;packDir;async write(t,n){let r=Mi(t,n),o=await Gn(r),s=Di(this.gitDir,o);if(await this.fs.exists(s))return o;let i=H(this.gitDir,"objects",o.slice(0,2));return await this.fs.mkdir(i,{recursive:!0}),await this.fs.writeFile(s,await $r(r)),o}async read(t){let n=this.cache.get(t);if(n)return n;let r=Di(this.gitDir,t);if(await this.fs.exists(r)){let o=await this.fs.readFileBuffer(r),s=await Or(o),i=await Gn(s);if(i!==t)throw new Error(`corrupt loose object ${t}: SHA-1 mismatch (computed ${i})`);let a=eh(t,s);return this.cache.set(t,a),a}await this.discover();for(let o of this.packs){if(!o.index.has(t))continue;let i=await(await this.ensureReader(o)).readObject(t);if(i)return this.cache.set(t,i),i}throw new Error(`object ${t} not found`)}async exists(t){if(await this.fs.exists(Di(this.gitDir,t)))return!0;await this.discover();for(let n of this.packs)if(n.index.has(t))return!0;return!1}async ingestPack(t){if(t.byteLength<32)return 0;let n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=n.getUint32(0);if(r!==1346454347)throw new Error(`invalid pack signature: 0x${r.toString(16)} (expected 0x5041434b)`);let o=n.getUint32(4);if(o!==2)throw new Error(`unsupported pack version: ${o}`);let s=n.getUint32(8);if(s===0)return 0;let i=t.subarray(t.byteLength-20),a=jn(i),c=await Gn(t.subarray(0,t.byteLength-20));if(c!==a)throw new Error(`pack checksum mismatch: expected ${a}, computed ${c}`);await this.fs.mkdir(this.packDir,{recursive:!0});let f=`pack-${a}`,l=H(this.packDir,`${f}.pack`);await this.fs.writeFile(l,t);let d=await Bc(t),u=H(this.packDir,`${f}.idx`);await this.fs.writeFile(u,d),this.loadedPackNames.add(f);let h=new Xt(d);return this.packs.push({name:f,index:h,reader:new ns(t,h)}),s}async ingestPackStream(t){let n=[];for await(let o of t)n.push(o);if(n.length===0)return 0;let r=await Gc(n);return this.ingestPack(r)}invalidatePacks(){this.packs=[],this.loadedPackNames.clear(),this.discoverPromise=null,this.cache.clear()}async findByPrefix(t){if(t.length<4)return[];let n=t.slice(0,2),r=t.slice(2),o=H(this.gitDir,"objects",n),s=[];if(await this.fs.exists(o)){let i=await this.fs.readdir(o);for(let a of i)a.startsWith(r)&&s.push(`${n}${a}`)}await this.discover();for(let i of this.packs)for(let a of i.index.findByPrefix(t))s.includes(a)||s.push(a);return s}async ensureReader(t){if(t.reader)return t.reader;let n=H(this.packDir,`${t.name}.pack`),r=await this.fs.readFileBuffer(n);return t.reader=new ns(r,t.index),t.reader}discover(){return this.discoverPromise||(this.discoverPromise=this.doDiscover()),this.discoverPromise}async doDiscover(){if(!await this.fs.exists(this.packDir))return;let t=await this.fs.readdir(this.packDir);for(let n of t){if(!n.endsWith(".idx"))continue;let r=n.slice(0,-4);if(this.loadedPackNames.has(r))continue;let o=H(this.packDir,`${r}.pack`);if(!await this.fs.exists(o))continue;let s=await this.fs.readFileBuffer(H(this.packDir,n));this.loadedPackNames.add(r),this.packs.push({name:r,index:new Xt(s),reader:null})}}}});function rs(e){let t=e.indexOf("<"),n=e.indexOf(">");if(t===-1||n===-1)throw new Error(`Malformed identity line: "${e}"`);let r=e.slice(0,t).trimEnd(),o=e.slice(t+1,n),s=e.slice(n+2),[i="0",a="+0000"]=s.split(" "),c=parseInt(i,10);return{name:r,email:o,timestamp:c,timezone:a}}function ss(e){return`${e.name} <${e.email}> ${e.timestamp} ${e.timezone}`}var Li=xe(()=>{"use strict"});function an(e){let t=nh.decode(e),n=t.indexOf(`
22
22
 
23
23
  `),r=n===-1?t:t.slice(0,n),o=n===-1?"":t.slice(n+2),s="",i=[],a,c;for(let f of r.split(`
24
24
  `)){let l=f.indexOf(" ");if(l===-1)continue;let d=f.slice(0,l),u=f.slice(l+1);switch(d){case"tree":s=u;break;case"parent":i.push(u);break;case"author":a=rs(u);break;case"committer":c=rs(u);break}}if(!s)throw new Error("Commit missing tree field");if(!a)throw new Error("Commit missing author field");if(!c)throw new Error("Commit missing committer field");return{type:"commit",tree:s,parents:i,author:a,committer:c,message:o}}function cn(e){let t=[];t.push(`tree ${e.tree}`);for(let n of e.parents)t.push(`parent ${n}`);return t.push(`author ${ss(e.author)}`),t.push(`committer ${ss(e.committer)}`),t.push(""),t.push(e.message),th.encode(t.join(`
25
- `))}var th,nh,wn=xe(()=>{"use strict";Li();th=new TextEncoder,nh=new TextDecoder});function Xt(e){let t=sh.decode(e),n=t.indexOf(`
25
+ `))}var th,nh,bn=xe(()=>{"use strict";Li();th=new TextEncoder,nh=new TextDecoder});function Zt(e){let t=sh.decode(e),n=t.indexOf(`
26
26
 
27
27
  `),r=n===-1?t:t.slice(0,n),o=n===-1?"":t.slice(n+2),s="",i="commit",a="",c;for(let f of r.split(`
28
28
  `)){let l=f.indexOf(" ");if(l===-1)continue;let d=f.slice(0,l),u=f.slice(l+1);switch(d){case"object":s=u;break;case"type":i=u;break;case"tag":a=u;break;case"tagger":c=rs(u);break}}if(!s)throw new Error("Tag missing object field");if(!a)throw new Error("Tag missing tag name field");if(!c)throw new Error("Tag missing tagger field");return{type:"tag",object:s,objectType:i,name:a,tagger:c,message:o}}function zc(e){let t=[];return t.push(`object ${e.object}`),t.push(`type ${e.objectType}`),t.push(`tag ${e.name}`),t.push(`tagger ${ss(e.tagger)}`),t.push(""),t.push(e.message),rh.encode(t.join(`
29
- `))}var rh,sh,Tr=xe(()=>{"use strict";Li();rh=new TextEncoder,sh=new TextDecoder});async function gt(e,t){return Mn(Mi(e,t))}async function Ie(e,t,n){let r=await e.objectStore.write(t,n);return e.hooks?.onObjectWrite?.({repo:e,type:t,hash:r}),r}async function we(e,t){return e.objectStore.read(t)}async function wt(e,t){return e.objectStore.exists(t)}async function Js(e,t){return e.objectStore.ingestPack(t)}async function Vc(e,t){return e.objectStore.findByPrefix(t)}function De(e){let t=Math.min(e.length,8e3);for(let n=0;n<t;n++)if(e.charCodeAt(n)===0)return!0;return!1}function jn(e){let t=Math.min(e.byteLength,8e3);for(let n=0;n<t;n++)if(e[n]===0)return!0;return!1}async function oe(e,t){let n=await we(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return oh.decode(n.content)}async function $t(e,t){let n=await we(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return n.content}async function j(e,t){let n=await we(e,t);if(n.type!=="commit")throw new Error(`Expected commit object for ${t}, got ${n.type}`);return an(n.content)}async function Yc(e,t){let n=await we(e,t);if(n.type!=="tag")throw new Error(`Expected tag object for ${t}, got ${n.type}`);return Xt(n.content)}async function Te(e,t){let n=t;for(let r=0;r<100;r++){let o=await we(e,n);if(o.type==="commit")return n;if(o.type==="tag"){n=Xt(o.content).object;continue}throw new Error(`Cannot peel ${o.type} object ${t} to commit`)}throw new Error(`Tag chain too deep for ${t}`)}var oh,ie=xe(()=>{"use strict";ji();wn();Tr();or();oh=new TextDecoder});function Xc(e){return typeof e=="string"?{type:"direct",hash:e}:e}var bn,Gi=xe(()=>{"use strict";bn={REGULAR:"100644",EXECUTABLE:"100755",SYMLINK:"120000",DIRECTORY:"040000",SUBMODULE:"160000"}});function ah(e,t,n){let r=0,o=!1,s=t;for(;s<e.length;s++){let a=e.charCodeAt(s);switch(a<128?ih[a]:0){case 1:break;case 2:if(r===46)return{len:-1,starConsumed:o};r=a;continue;case 3:if(r===64)return{len:-1,starConsumed:o};r=a;continue;case 4:return{len:-1,starConsumed:o};case 5:if(!n)return{len:-1,starConsumed:o};o=!0,r=a;continue;default:r=a;continue}break}let i=s-t;return i===0?{len:0,starConsumed:o}:e.charCodeAt(t)===46?{len:-1,starConsumed:o}:i>=Ni.length&&e.slice(s-Ni.length,s)===Ni?{len:-1,starConsumed:o}:{len:i,starConsumed:o}}function os(e,t=0){if(e==="@"||e.length===0)return!1;let n=0,r=0,o=!!(t&2);for(;n<=e.length;){let{len:s,starConsumed:i}=ah(e,n,o);if(s<0||s===0)return!1;i&&(o=!1),r++,n+=s+1}return!(e.charCodeAt(e.length-1)===46||!(t&1)&&r<2)}function yn(e){return!e||e.startsWith("-")?!1:os(`refs/heads/${e}`,0)}function Zc(e){return e?os(`refs/tags/${e}`,0):!1}async function Qc(e,t){return e.refStore.readRef(t)}async function U(e,t){let n=t;for(let r=0;r<Jc;r++){let o=await Qc(e,n);if(!o)return null;if(o.type==="direct")return o.hash;n=o.target}throw new Error(`Symbolic ref loop detected resolving "${t}"`)}async function te(e){return Qc(e,"HEAD")}async function Z(e){return U(e,"HEAD")}async function J(e,t,n){let r=e.hooks?await U(e,t):null;await e.refStore.writeRef(t,{type:"direct",hash:n}),e.hooks?.onRefUpdate?.({repo:e,ref:t,oldHash:r,newHash:n})}async function Ze(e,t,n){await e.refStore.writeRef(t,{type:"symbolic",target:n})}async function vr(e,t,n,r){let o=n.find(f=>f.name==="HEAD");if(!o)return;let s;if(r?.startsWith("refs/heads/"))s=r.slice(11);else{let f=n.find(l=>l.name.startsWith("refs/heads/")&&l.hash===o.hash);if(!f)return;s=f.name.slice(11)}let i=`refs/remotes/${t}/HEAD`;if(await e.refStore.readRef(i))return;let c=`refs/remotes/${t}/${s}`;await e.refStore.writeRef(i,{type:"symbolic",target:c})}async function he(e,t){let n=e.hooks?await U(e,t):null;await e.refStore.deleteRef(t),await as(e,t),e.hooks&&n&&e.hooks.onRefDelete?.({repo:e,ref:t,oldHash:n})}async function ye(e,t="refs"){return e.refStore.listRefs(t)}function Pe(e){return e.replace("refs/heads/","")}function Gt(e){return e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/tags/")?e.slice(10):e.startsWith("refs/remotes/")?e.slice(13):e}async function Gn(e,t){let n=await te(e);n&&n.type==="symbolic"?await J(e,n.target,t):await J(e,"HEAD",t)}async function ef(e){if(e.refStore&&!(e.refStore instanceof Ln))return;let t=await ye(e,"refs");if(t.length===0)return;let n=["# pack-refs with: peeled fully-peeled sorted"],r=[];for(let s of t){let i=H(e.gitDir,s.name);if(!(await e.fs.exists(i)&&(await e.fs.readFile(i)).trim().startsWith("ref: "))&&(r.push(s.name),n.push(`${s.hash} ${s.name}`),s.name.startsWith("refs/tags/")))try{let a=await we(e,s.hash);if(a.type==="tag"){let c=Xt(a.content).object;for(let f=0;f<100;f++){let l=await we(e,c);if(l.type!=="tag")break;c=Xt(l.content).object}n.push(`^${c}`)}}catch{}}await e.fs.writeFile(H(e.gitDir,"packed-refs"),`${n.join(`
29
+ `))}var rh,sh,Tr=xe(()=>{"use strict";Li();rh=new TextEncoder,sh=new TextDecoder});async function gt(e,t){return Gn(Mi(e,t))}async function Ie(e,t,n){let r=await e.objectStore.write(t,n);return e.hooks?.onObjectWrite?.({repo:e,type:t,hash:r}),r}async function we(e,t){return e.objectStore.read(t)}async function wt(e,t){return e.objectStore.exists(t)}async function Js(e,t){return e.objectStore.ingestPack(t)}async function Vc(e,t){return e.objectStore.findByPrefix(t)}function je(e){let t=Math.min(e.length,8e3);for(let n=0;n<t;n++)if(e.charCodeAt(n)===0)return!0;return!1}function Nn(e){let t=Math.min(e.byteLength,8e3);for(let n=0;n<t;n++)if(e[n]===0)return!0;return!1}async function oe(e,t){let n=await we(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return oh.decode(n.content)}async function $t(e,t){let n=await we(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return n.content}async function j(e,t){let n=await we(e,t);if(n.type!=="commit")throw new Error(`Expected commit object for ${t}, got ${n.type}`);return an(n.content)}async function Yc(e,t){let n=await we(e,t);if(n.type!=="tag")throw new Error(`Expected tag object for ${t}, got ${n.type}`);return Zt(n.content)}async function Te(e,t){let n=t;for(let r=0;r<100;r++){let o=await we(e,n);if(o.type==="commit")return n;if(o.type==="tag"){n=Zt(o.content).object;continue}throw new Error(`Cannot peel ${o.type} object ${t} to commit`)}throw new Error(`Tag chain too deep for ${t}`)}var oh,ie=xe(()=>{"use strict";ji();bn();Tr();ir();oh=new TextDecoder});function Xc(e){return typeof e=="string"?{type:"direct",hash:e}:e}var yn,Gi=xe(()=>{"use strict";yn={REGULAR:"100644",EXECUTABLE:"100755",SYMLINK:"120000",DIRECTORY:"040000",SUBMODULE:"160000"}});function ah(e,t,n){let r=0,o=!1,s=t;for(;s<e.length;s++){let a=e.charCodeAt(s);switch(a<128?ih[a]:0){case 1:break;case 2:if(r===46)return{len:-1,starConsumed:o};r=a;continue;case 3:if(r===64)return{len:-1,starConsumed:o};r=a;continue;case 4:return{len:-1,starConsumed:o};case 5:if(!n)return{len:-1,starConsumed:o};o=!0,r=a;continue;default:r=a;continue}break}let i=s-t;return i===0?{len:0,starConsumed:o}:e.charCodeAt(t)===46?{len:-1,starConsumed:o}:i>=Ni.length&&e.slice(s-Ni.length,s)===Ni?{len:-1,starConsumed:o}:{len:i,starConsumed:o}}function os(e,t=0){if(e==="@"||e.length===0)return!1;let n=0,r=0,o=!!(t&2);for(;n<=e.length;){let{len:s,starConsumed:i}=ah(e,n,o);if(s<0||s===0)return!1;i&&(o=!1),r++,n+=s+1}return!(e.charCodeAt(e.length-1)===46||!(t&1)&&r<2)}function En(e){return!e||e.startsWith("-")?!1:os(`refs/heads/${e}`,0)}function Zc(e){return e?os(`refs/tags/${e}`,0):!1}async function Qc(e,t){return e.refStore.readRef(t)}async function U(e,t){let n=t;for(let r=0;r<Jc;r++){let o=await Qc(e,n);if(!o)return null;if(o.type==="direct")return o.hash;n=o.target}throw new Error(`Symbolic ref loop detected resolving "${t}"`)}async function te(e){return Qc(e,"HEAD")}async function Z(e){return U(e,"HEAD")}async function J(e,t,n){let r=e.hooks?await U(e,t):null;await e.refStore.writeRef(t,{type:"direct",hash:n}),e.hooks?.onRefUpdate?.({repo:e,ref:t,oldHash:r,newHash:n})}async function Ze(e,t,n){await e.refStore.writeRef(t,{type:"symbolic",target:n})}async function vr(e,t,n,r){let o=n.find(f=>f.name==="HEAD");if(!o)return;let s;if(r?.startsWith("refs/heads/"))s=r.slice(11);else{let f=n.find(l=>l.name.startsWith("refs/heads/")&&l.hash===o.hash);if(!f)return;s=f.name.slice(11)}let i=`refs/remotes/${t}/HEAD`;if(await e.refStore.readRef(i))return;let c=`refs/remotes/${t}/${s}`;await e.refStore.writeRef(i,{type:"symbolic",target:c})}async function he(e,t){let n=e.hooks?await U(e,t):null;await e.refStore.deleteRef(t),await as(e,t),e.hooks&&n&&e.hooks.onRefDelete?.({repo:e,ref:t,oldHash:n})}async function ye(e,t="refs"){return e.refStore.listRefs(t)}function Pe(e){return e.replace("refs/heads/","")}function Gt(e){return e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/tags/")?e.slice(10):e.startsWith("refs/remotes/")?e.slice(13):e}async function _n(e,t){let n=await te(e);n&&n.type==="symbolic"?await J(e,n.target,t):await J(e,"HEAD",t)}async function ef(e){if(e.refStore&&!(e.refStore instanceof Fn))return;let t=await ye(e,"refs");if(t.length===0)return;let n=["# pack-refs with: peeled fully-peeled sorted"],r=[];for(let s of t){let i=H(e.gitDir,s.name);if(!(await e.fs.exists(i)&&(await e.fs.readFile(i)).trim().startsWith("ref: "))&&(r.push(s.name),n.push(`${s.hash} ${s.name}`),s.name.startsWith("refs/tags/")))try{let a=await we(e,s.hash);if(a.type==="tag"){let c=Zt(a.content).object;for(let f=0;f<100;f++){let l=await we(e,c);if(l.type!=="tag")break;c=Zt(l.content).object}n.push(`^${c}`)}}catch{}}await e.fs.writeFile(H(e.gitDir,"packed-refs"),`${n.join(`
30
30
  `)}
31
- `);for(let s of r){let i=H(e.gitDir,s);await e.fs.exists(i)&&await e.fs.rm(i)}await tf(e,H(e.gitDir,"refs"));let o=H(e.gitDir,"refs");await e.fs.mkdir(o,{recursive:!0}),await e.fs.mkdir(H(o,"heads"),{recursive:!0}),await e.fs.mkdir(H(o,"tags"),{recursive:!0})}async function tf(e,t){if(e.refStore&&!(e.refStore instanceof Ln)||!await e.fs.exists(t)||!(await e.fs.stat(t)).isDirectory)return;let r=await e.fs.readdir(t);for(let s of r)await tf(e,H(t,s));(await e.fs.readdir(t)).length===0&&await e.fs.rm(t,{recursive:!0})}var Ni,ih,Fi,Jc,Ln,ge=xe(()=>{"use strict";ie();Tr();me();Be();Nn();Gi();Ni=".lock",ih=[1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,5,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,4,4];Fi="ref: ",Jc=10,Ln=class{constructor(t,n){this.fs=t;this.gitDir=n}casLocks=new Map;async readRef(t){let n=H(this.gitDir,t);if(await this.fs.exists(n)){let s=(await this.fs.readFile(n)).trim();return s.startsWith(Fi)?{type:"symbolic",target:s.slice(Fi.length)}:{type:"direct",hash:s}}let o=(await this.readPackedRefs()).get(t);return o?{type:"direct",hash:o}:null}async writeRef(t,n){let r=Xc(n),o=H(this.gitDir,t);await is(this.fs,o),r.type==="symbolic"?await this.fs.writeFile(o,`${Fi}${r.target}
31
+ `);for(let s of r){let i=H(e.gitDir,s);await e.fs.exists(i)&&await e.fs.rm(i)}await tf(e,H(e.gitDir,"refs"));let o=H(e.gitDir,"refs");await e.fs.mkdir(o,{recursive:!0}),await e.fs.mkdir(H(o,"heads"),{recursive:!0}),await e.fs.mkdir(H(o,"tags"),{recursive:!0})}async function tf(e,t){if(e.refStore&&!(e.refStore instanceof Fn)||!await e.fs.exists(t)||!(await e.fs.stat(t)).isDirectory)return;let r=await e.fs.readdir(t);for(let s of r)await tf(e,H(t,s));(await e.fs.readdir(t)).length===0&&await e.fs.rm(t,{recursive:!0})}var Ni,ih,Fi,Jc,Fn,ge=xe(()=>{"use strict";ie();Tr();me();Be();kn();Gi();Ni=".lock",ih=[1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,5,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,4,4];Fi="ref: ",Jc=10,Fn=class{constructor(t,n){this.fs=t;this.gitDir=n}casLocks=new Map;async readRef(t){let n=H(this.gitDir,t);if(await this.fs.exists(n)){let s=(await this.fs.readFile(n)).trim();return s.startsWith(Fi)?{type:"symbolic",target:s.slice(Fi.length)}:{type:"direct",hash:s}}let o=(await this.readPackedRefs()).get(t);return o?{type:"direct",hash:o}:null}async writeRef(t,n){let r=Xc(n),o=H(this.gitDir,t);await is(this.fs,o),r.type==="symbolic"?await this.fs.writeFile(o,`${Fi}${r.target}
32
32
  `):await this.fs.writeFile(o,`${r.hash}
33
33
  `)}async deleteRef(t){let n=H(this.gitDir,t);await this.fs.exists(n)&&await this.fs.rm(n),await this.removePackedRef(t)}async listRefs(t="refs"){let n=[],r=H(this.gitDir,t);await this.fs.exists(r)&&await this.walkRefs(r,t,n);let o=await this.readPackedRefs();if(o.size>0){let s=new Set(n.map(a=>a.name)),i=`${t}/`;for(let[a,c]of o)a.startsWith(i)&&!s.has(a)&&n.push({name:a,hash:c})}return n.sort((s,i)=>s.name<i.name?-1:s.name>i.name?1:0)}async compareAndSwapRef(t,n,r){let s=(this.casLocks.get(t)??Promise.resolve(!1)).then(()=>this.compareAndSwapUnsafe(t,n,r),()=>this.compareAndSwapUnsafe(t,n,r));this.casLocks.set(t,s);try{return await s}finally{this.casLocks.get(t)===s&&this.casLocks.delete(t)}}async compareAndSwapUnsafe(t,n,r){let o=await this.resolveRefInternal(t);if(n===null){if(await this.readRef(t)!==null)return!1}else if(o!==n)return!1;return r===null?await this.deleteRef(t):await this.writeRef(t,r),!0}async resolveRefInternal(t){let n=t;for(let r=0;r<Jc;r++){let o=await this.readRef(n);if(!o)return null;if(o.type==="direct")return o.hash;n=o.target}throw new Error(`Symbolic ref loop detected resolving "${t}"`)}async readPackedRefs(){let t=H(this.gitDir,"packed-refs");if(!await this.fs.exists(t))return new Map;let n=await this.fs.readFile(t),r=new Map;for(let o of n.split(`
34
34
  `)){if(!o||o.startsWith("#")||o.startsWith("^"))continue;let s=o.indexOf(" ");if(s===-1)continue;let i=o.slice(0,s),a=o.slice(s+1).trim();i.length===40&&a&&r.set(a,i)}return r}async removePackedRef(t){let n=H(this.gitDir,"packed-refs");if(!await this.fs.exists(n))return;let o=(await this.fs.readFile(n)).split(`
35
35
  `),s=[],i=!1;for(let c of o){if(i&&c.startsWith("^")){i=!1;continue}if(i=!1,!c||c.startsWith("#")){s.push(c);continue}let f=c.indexOf(" ");if(f!==-1&&c.slice(f+1).trim()===t){i=!0;continue}s.push(c)}s.some(c=>c&&!c.startsWith("#")&&!c.startsWith("^"))?await this.fs.writeFile(n,s.join(`
36
- `)):await this.fs.rm(n)}async walkRefs(t,n,r){let o=await this.fs.readdir(t);for(let s of o){let i=H(t,s),a=`${n}/${s}`,c=await this.fs.stat(i);if(c.isDirectory)await this.walkRefs(i,a,r);else if(c.isFile){let f=await this.resolveRefInternal(a);f&&r.push({name:a,hash:f})}}}}});async function ir(e,t){let n=t;for(;;){let r=H(n,".git");if(await e.exists(r)&&(await e.stat(r)).isDirectory)return{fs:e,gitDir:r,workTree:n,objectStore:new Ir(e,r),refStore:new Ln(e,r)};if(await ch(e,n))return{fs:e,gitDir:n,workTree:null,objectStore:new Ir(e,n),refStore:new Ln(e,n)};let o=fh(n);if(o===n)return null;n=o}}async function ch(e,t){let n=H(t,"HEAD");if(!await e.exists(n))return!1;try{if(!(await e.stat(n)).isFile)return!1}catch{return!1}for(let r of["objects","refs"]){let o=H(t,r);if(!await e.exists(o))return!1;try{if(!(await e.stat(o)).isDirectory)return!1}catch{return!1}}return!0}async function Qs(e,t,n={}){let{bare:r=!1,initialBranch:o="main"}=n,s=r?t:H(t,".git"),i=r?null:t,a=H(s,"HEAD"),c=await e.exists(a);await e.mkdir(H(s,"objects"),{recursive:!0}),await e.mkdir(H(s,"refs","heads"),{recursive:!0}),await e.mkdir(H(s,"refs","tags"),{recursive:!0});let f={fs:e,gitDir:s,workTree:i,objectStore:new Ir(e,s),refStore:new Ln(e,s)};if(!c){await Ze(f,"HEAD",`refs/heads/${o}`);let l={core:{repositoryformatversion:"0",filemode:"true",bare:r?"true":"false",...r?{}:{logallrefupdates:"true"}}};await e.writeFile(H(s,"config"),bi(l))}return{ctx:f,reinit:c}}async function is(e,t){let n=t.lastIndexOf("/");if(n>0){let r=t.slice(0,n);await e.mkdir(r,{recursive:!0})}}function fh(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var Nn=xe(()=>{"use strict";Ue();ji();me();ge()});function eo(e,t){return H(e.gitDir,"logs",t)}function lh(e){let t=e.indexOf(" ");if(t<0)return null;let n=e.slice(0,t),r=e.slice(t+1),o=n.split(" ");if(o.length<5)return null;let s=o[0],i=o[1];if(!s||!i)return null;let a=n.indexOf("<"),c=n.indexOf(">",a);if(a<0||c<0)return null;let f=n.slice(s.length+1+i.length+1,a).trim(),l=n.slice(a+1,c),d=n.slice(c+2),u=d.indexOf(" ");if(u<0)return null;let h=parseInt(d.slice(0,u),10),m=d.slice(u+1);return{oldHash:s,newHash:i,name:f,email:l,timestamp:h,tz:m,message:r}}async function et(e,t){let n=eo(e,t);if(!await e.fs.exists(n))return[];let r=await e.fs.readFile(n);if(!r.trim())return[];let o=[];for(let s of r.split(`
37
- `)){if(!s)continue;let i=lh(s);i&&o.push(i)}return o}function nf(e){return`${e.oldHash} ${e.newHash} ${e.name} <${e.email}> ${e.timestamp} ${e.tz} ${e.message}`}async function Fn(e,t,n){let r=eo(e,t);if(await is(e.fs,r),n.length===0){await e.fs.writeFile(r,"");return}let o=`${n.map(nf).join(`
36
+ `)):await this.fs.rm(n)}async walkRefs(t,n,r){let o=await this.fs.readdir(t);for(let s of o){let i=H(t,s),a=`${n}/${s}`,c=await this.fs.stat(i);if(c.isDirectory)await this.walkRefs(i,a,r);else if(c.isFile){let f=await this.resolveRefInternal(a);f&&r.push({name:a,hash:f})}}}}});async function Rn(e,t){let n=t;for(;;){let r=H(n,".git");if(await e.exists(r)&&(await e.stat(r)).isDirectory)return{fs:e,gitDir:r,workTree:n,objectStore:new Ir(e,r),refStore:new Fn(e,r)};if(await ch(e,n))return{fs:e,gitDir:n,workTree:null,objectStore:new Ir(e,n),refStore:new Fn(e,n)};let o=fh(n);if(o===n)return null;n=o}}async function ch(e,t){let n=H(t,"HEAD");if(!await e.exists(n))return!1;try{if(!(await e.stat(n)).isFile)return!1}catch{return!1}for(let r of["objects","refs"]){let o=H(t,r);if(!await e.exists(o))return!1;try{if(!(await e.stat(o)).isDirectory)return!1}catch{return!1}}return!0}async function Qs(e,t,n={}){let{bare:r=!1,initialBranch:o="main"}=n,s=r?t:H(t,".git"),i=r?null:t,a=H(s,"HEAD"),c=await e.exists(a);await e.mkdir(H(s,"objects"),{recursive:!0}),await e.mkdir(H(s,"refs","heads"),{recursive:!0}),await e.mkdir(H(s,"refs","tags"),{recursive:!0});let f={fs:e,gitDir:s,workTree:i,objectStore:new Ir(e,s),refStore:new Fn(e,s)};if(!c){await Ze(f,"HEAD",`refs/heads/${o}`);let l={core:{repositoryformatversion:"0",filemode:"true",bare:r?"true":"false",...r?{}:{logallrefupdates:"true"}}};await e.writeFile(H(s,"config"),bi(l))}return{ctx:f,reinit:c}}async function is(e,t){let n=t.lastIndexOf("/");if(n>0){let r=t.slice(0,n);await e.mkdir(r,{recursive:!0})}}function fh(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var kn=xe(()=>{"use strict";Ue();ji();me();ge()});function eo(e,t){return H(e.gitDir,"logs",t)}function lh(e){let t=e.indexOf(" ");if(t<0)return null;let n=e.slice(0,t),r=e.slice(t+1),o=n.split(" ");if(o.length<5)return null;let s=o[0],i=o[1];if(!s||!i)return null;let a=n.indexOf("<"),c=n.indexOf(">",a);if(a<0||c<0)return null;let f=n.slice(s.length+1+i.length+1,a).trim(),l=n.slice(a+1,c),d=n.slice(c+2),u=d.indexOf(" ");if(u<0)return null;let h=parseInt(d.slice(0,u),10),m=d.slice(u+1);return{oldHash:s,newHash:i,name:f,email:l,timestamp:h,tz:m,message:r}}async function et(e,t){let n=eo(e,t);if(!await e.fs.exists(n))return[];let r=await e.fs.readFile(n);if(!r.trim())return[];let o=[];for(let s of r.split(`
37
+ `)){if(!s)continue;let i=lh(s);i&&o.push(i)}return o}function nf(e){return`${e.oldHash} ${e.newHash} ${e.name} <${e.email}> ${e.timestamp} ${e.tz} ${e.message}`}async function Un(e,t,n){let r=eo(e,t);if(await is(e.fs,r),n.length===0){await e.fs.writeFile(r,"");return}let o=`${n.map(nf).join(`
38
38
  `)}
39
39
  `;await e.fs.writeFile(r,o)}async function st(e,t,n){let r=eo(e,t);await is(e.fs,r);let o=`${nf(n)}
40
- `;if(await e.fs.exists(r)){let s=await e.fs.readFile(r);await e.fs.writeFile(r,s+o)}else await e.fs.writeFile(r,o)}async function as(e,t){let n=eo(e,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function re(e,t,n,r,o,s,i=!1){let a=await Hn(e,t),c={oldHash:r??ne,newHash:o,...a,message:s};await st(e,n,c),i&&n!=="HEAD"&&await st(e,"HEAD",c)}var Be=xe(()=>{"use strict";pt();rr();me();Nn();pt()});function dh(e){let t=[],n=e.length;for(;n>0;){let s=e.slice(0,n).match(/^(.+?)~(\d*)$/);if(s&&s[1]!==void 0&&s[2]!==void 0){let c=s[2]===""?1:parseInt(s[2],10);t.unshift({type:"tilde",n:c}),n=s[1].length;continue}let i=e.slice(0,n).match(/^(.+?)\^{([^}]*)}$/);if(i&&i[1]!==void 0&&i[2]!==void 0){t.unshift({type:"peel",target:i[2]}),n=i[1].length;continue}let a=e.slice(0,n).match(/^(.+?)\^(\d*)$/);if(a&&a[1]!==void 0&&a[2]!==void 0){let c=a[2]===""?1:parseInt(a[2],10);t.unshift({type:"caret",n:c}),n=a[1].length;continue}break}let r=e.slice(0,n),o=r.match(/^(.+?)@\{(\d+)\}$/);return o&&o[1]!==void 0&&o[2]!==void 0?{base:o[1],reflogIndex:parseInt(o[2],10),suffixes:t}:{base:r,suffixes:t}}async function uh(e,t){let n=await Vc(e,t);if(n.length===0)return null;if(n.length>1)throw new _i(t);return n[0]}async function hh(e,t){if(t==="HEAD"||t==="@")return U(e,"HEAD");if(rf.includes(t))return U(e,t);if(/^[0-9a-f]{40}$/.test(t))return await wt(e,t)?t:null;if(/^[0-9a-f]{4,39}$/.test(t)){let s=await uh(e,t);if(s)return s}if(t.startsWith("refs/")){let s=await U(e,t);if(s)return s}let n=await U(e,`refs/heads/${t}`);if(n)return n;let r=await U(e,`refs/tags/${t}`);if(r)return r;let o=await U(e,`refs/remotes/${t}`);return o||null}function mh(e){if(e==="HEAD"||e==="@")return"HEAD";for(let t of rf)if(e===t)return t;return e.startsWith("refs/")?e:`refs/heads/${e}`}async function ph(e,t,n){let r=mh(t),o=await et(e,r);if(o.length===0)return null;let s=o.length-1-n;if(s<0||s>=o.length)return null;let i=o[s];return i?i.newHash:null}async function gh(e,t,n){if(n===""||n==="commit")try{return await Te(e,t)}catch{return null}if(n==="tree"){let o;try{o=await Te(e,t)}catch{return null}return(await j(e,o)).tree}return(await we(e,t)).type!==n?null:t}async function wh(e,t,n){let r=t;n.some(s=>s.type==="tilde"||s.type==="caret")&&(r=await Te(e,r));for(let s of n)if(s.type==="peel"){if(!r)return null;r=await gh(e,r,s.target)}else if(s.type==="tilde")for(let i=0;i<s.n;i++){if(!r)return null;let a=await j(e,r);if(a.parents.length===0||(r=a.parents[0]??null,!r))return null}else{if(s.n===0)continue;if(!r)return null;let i=await j(e,r);if(s.n>i.parents.length||(r=i.parents[s.n-1]??null,!r))return null}return r}async function We(e,t){let{base:n,reflogIndex:r,suffixes:o}=dh(t),s;return r!==void 0?s=await ph(e,n,r):s=await hh(e,n),s?wh(e,s,o):null}function to(e){let t=e.indexOf(":");return t<0?null:{rev:e.slice(0,t)||"HEAD",path:e.slice(t+1)}}var rf,_i,fn=xe(()=>{"use strict";ie();Be();ge();rf=["HEAD","FETCH_HEAD","ORIG_HEAD","MERGE_HEAD","CHERRY_PICK_HEAD","REBASE_HEAD"];_i=class extends Error{constructor(n){super(`short object ID ${n} is ambiguous`);this.prefix=n}}});function Eh(e){return e.length===4&&e.toLowerCase()===".git"}function kh(e,t){if(e.length===0)throw new Error("invalid tree entry: empty name");if(e.includes("/"))throw new Error(`invalid tree entry: name contains slash: '${e}'`);if(e.includes("\0"))throw new Error("invalid tree entry: name contains null byte");if(e==="."||e==="..")throw new Error(`invalid tree entry: '${e}'`);if(Eh(e))throw new Error(`invalid tree entry: '${e}'`);if(!yh.has(t))throw new Error(`invalid tree entry mode: '${t}' for '${e}'`)}function En(e){let t=[],n=0;for(;n<e.byteLength;){let r=e.indexOf(32,n);if(r===-1)break;let o=sf.decode(e.subarray(n,r)),s=e.indexOf(0,r+1);if(s===-1)break;let i=sf.decode(e.subarray(r+1,s)),a=e.subarray(s+1,s+21),c=An(a),f=o.padStart(6,"0");kh(i,f),t.push({mode:f,name:i,hash:c}),n=s+21}return{type:"tree",entries:t}}function of(e){let t=[];for(let s of e.entries){let i=s.mode.replace(/^0+/,""),a=bh.encode(`${i} ${s.name}\0`),c=jt(s.hash);t.push(a),t.push(c)}let n=t.reduce((s,i)=>s+i.byteLength,0),r=new Uint8Array(n),o=0;for(let s of t)r.set(s,o),o+=s.byteLength;return r}var bh,sf,yh,no=xe(()=>{"use strict";pt();bh=new TextEncoder,sf=new TextDecoder,yh=new Set(["100644","100755","040000","120000","160000"])});async function Fe(e,t){return cf(e,t,"")}async function cf(e,t,n){let r=[],o=new Map;for(let i of t){let a=n?i.path.slice(n.length+1):i.path,c=a.indexOf("/");if(c===-1)r.push({mode:Rh(i.mode),name:a,hash:i.hash});else{let f=a.slice(0,c),l=o.get(f);l||(l=[],o.set(f,l)),l.push(i)}}for(let[i,a]of o){let c=n?`${n}/${i}`:i,f=await cf(e,a,c);r.push({mode:bn.DIRECTORY,name:i,hash:f})}r.sort((i,a)=>{let c=i.mode===bn.DIRECTORY?`${i.name}/`:i.name,f=a.mode===bn.DIRECTORY?`${a.name}/`:a.name;return c<f?-1:c>f?1:0});let s=of({type:"tree",entries:r});return Ie(e,"tree",s)}async function qe(e,t,n=""){let r=await we(e,t);if(r.type!=="tree")throw new Error(`Expected tree object, got ${r.type}`);let o=En(r.content),s=[];for(let i of o.entries){let a=n?`${n}/${i.name}`:i.name;if(i.mode===bn.DIRECTORY){let c=await qe(e,i.hash,a);s.push(...c)}else s.push({path:a,mode:i.mode,hash:i.hash})}return s}async function le(e,t){if(!t)return new Map;let n=await qe(e,t);return new Map(n.map(r=>[r.path,r]))}async function Ve(e,t,n){if(t===n)return[];let r=[];return await ff(e,t,n,"",r),r.sort((o,s)=>ve(o.path,s.path))}async function af(e,t){let n=await we(e,t);if(n.type!=="tree")throw new Error(`Expected tree object, got ${n.type}`);return En(n.content).entries}async function ff(e,t,n,r,o){if(t===n)return;let s=t?await af(e,t):[],i=n?await af(e,n):[],a=new Map;for(let l of s)a.set(l.name,l);let c=new Map;for(let l of i)c.set(l.name,l);let f=new Set;for(let l of s)f.add(l.name);for(let l of i)f.add(l.name);for(let l of f){let d=a.get(l),u=c.get(l),h=r?`${r}/${l}`:l;if(d&&u){if(d.hash===u.hash&&d.mode===u.mode)continue;let m=d.mode===bn.DIRECTORY,p=u.mode===bn.DIRECTORY;m&&p?await ff(e,d.hash,u.hash,h,o):m?(await ro(e,d.hash,h,"deleted",o),o.push({path:h,status:"added",newHash:u.hash,newMode:u.mode})):p?(o.push({path:h,status:"deleted",oldHash:d.hash,oldMode:d.mode}),await ro(e,u.hash,h,"added",o)):o.push({path:h,status:"modified",oldHash:d.hash,newHash:u.hash,oldMode:d.mode,newMode:u.mode})}else if(d)d.mode===bn.DIRECTORY?await ro(e,d.hash,h,"deleted",o):o.push({path:h,status:"deleted",oldHash:d.hash,oldMode:d.mode});else{let m=u;m.mode===bn.DIRECTORY?await ro(e,m.hash,h,"added",o):o.push({path:h,status:"added",newHash:m.hash,newMode:m.mode})}}}async function ro(e,t,n,r,o){let s=await qe(e,t,n);for(let i of s)r==="added"?o.push({path:i.path,status:"added",newHash:i.hash,newMode:i.mode}):o.push({path:i.path,status:"deleted",oldHash:i.hash,oldMode:i.mode})}function Rh(e){return e.toString(8).padStart(6,"0")}var Ae=xe(()=>{"use strict";se();ie();no();Gi()});function mt(e,t){return e.lstat?e.lstat(t):e.stat(t)}function kn(e){return typeof e=="string"?e==="120000":e===40960}function _n(e){return typeof e=="string"?e==="160000":e===57344}async function cs(e,t){if((await mt(e,t)).isSymbolicLink&&e.readlink){let r=await e.readlink(t);return xh.encode(r)}return e.readFileBuffer(t)}async function Un(e,t){let n=await cs(e,t);return gt("blob",n)}var xh,Rn=xe(()=>{"use strict";ie();xh=new TextEncoder});function lf(e){return/^[a-zA-Z0-9]$/.test(e)}function Ch(e){return/^[a-zA-Z]$/.test(e)}function Ph(e){return e>="0"&&e<="9"}function Ui(e){return e>="A"&&e<="Z"}function Bi(e){return e>="a"&&e<="z"}function df(e){return/^\s$/.test(e)}function $h(e){return e===" "||e===" "}function qi(e){let t=e.charCodeAt(0);return t>=32&&t<=126}function Oh(e){return qi(e)&&!df(e)}function Sh(e){return qi(e)&&!lf(e)&&e!==" "}function Ih(e){let t=e.charCodeAt(0);return t<32||t===127}function Th(e){return/^[0-9a-fA-F]$/.test(e)}function fs(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e===t}function Wi(e,t,n,r,o){let s=(o&1)!==0,i=(o&2)!==0;for(;t<e.length;){let a=e[t];if(r>=n.length&&a!=="*")return-1;let c=r<n.length?n[r]:"";switch(a){case"\\":{if(t++,t>=e.length)return-1;if(!fs(n[r],e[t],s))return 1;r++,t++;break}case"?":{if(i&&c==="/")return 1;r++,t++;break}case"*":{let f;if(t++,t<e.length&&e[t]==="*"){let l=t;for(;t<e.length&&e[t]==="*";)t++;if(!i)f=!0;else if((l-1<1||e[l-2]==="/")&&(t>=e.length||e[t]==="/"||e[t]==="\\"&&t+1<e.length&&e[t+1]==="/")){if(t<e.length&&e[t]==="/"&&Wi(e,t+1,n,r,o)===0)return 0;f=!0}else f=!1}else f=!i;if(t>=e.length)return!f&&n.indexOf("/",r)!==-1?-2:0;if(!f&&e[t]==="/"){let l=n.indexOf("/",r);if(l===-1)return-1;r=l+1,t++;break}for(;!(r>=n.length);){if(!vh(e[t])){let d=s?e[t].toLowerCase():e[t];for(;r<n.length&&(f||n[r]!=="/")&&(s?n[r].toLowerCase():n[r])!==d;)r++;if(r>=n.length||!f&&n[r]==="/")return r<n.length&&!f&&n[r]==="/"?-2:f?-1:-2}let l=Wi(e,t,n,r,o);if(l!==1){if(!f||l!==-2)return l}else if(!f&&n[r]==="/")return-2;r++}return-1}case"[":{if(i&&c==="/")return 1;if(t++,t>=e.length)return-1;let f=!1;(e[t]==="!"||e[t]==="^")&&(f=!0,t++);let l=!1,d="",u=!0;for(;t<e.length&&(u||e[t]!=="]");){u=!1;let h=e[t];if(h==="\\"){if(t++,t>=e.length)return-1;h=e[t],fs(c,h,s)&&(l=!0)}else if(h==="-"&&d&&t+1<e.length&&e[t+1]!=="]"){if(t++,h=e[t],h==="\\"){if(t++,t>=e.length)return-1;h=e[t]}let m=d,p=h;if(c>=m&&c<=p&&(l=!0),s){if(Bi(c)){let g=c.toUpperCase();g>=m&&g<=p&&(l=!0)}else if(Ui(c)){let g=c.toLowerCase();g>=m&&g<=p&&(l=!0)}}h=""}else if(h==="["&&t+1<e.length&&e[t+1]===":"){t+=2;let m=t;for(;t<e.length&&e[t]!=="]";)t++;if(t>=e.length)return-1;let p=t-m-1;if(p<0||e[t-1]!==":")t=m-2,h="[",fs(c,h,s)&&(l=!0);else{let g=e.slice(m,m+p);Hh(g,c,s)&&(l=!0),h=""}}else fs(c,h,s)&&(l=!0);d=h,t++}if(t>=e.length)return-1;if(t++,l===f)return 1;r++;break}default:{if(!fs(c,a,s))return 1;r++,t++;break}}}return r>=n.length?0:1}function vh(e){return e==="*"||e==="?"||e==="["||e==="\\"}function Hh(e,t,n){switch(e){case"alnum":return lf(t);case"alpha":return Ch(t);case"blank":return $h(t);case"cntrl":return Ih(t);case"digit":return Ph(t);case"graph":return Oh(t);case"lower":return Bi(t)||n&&Ui(t);case"print":return qi(t);case"punct":return Sh(t);case"space":return df(t);case"upper":return Ui(t)||n&&Bi(t);case"xdigit":return Th(t);default:return!1}}function ln(e,t,n=0){return Wi(e,0,t,0,n)===0?0:1}var ls=xe(()=>{"use strict"});function pf(e){for(let t=0;t<e.length;t++){let n=e[t];if(n==="\\"){t++;continue}if(n==="*"||n==="?"||n==="[")return t}return e.length}function Ah(e){return pf(e)===e.length}function Dh(e,t){let n=e;for(;n.length>0;){let c=n[n.length-1];if(c===" "||c===" "){if(n.length>=2&&n[n.length-2]==="\\"){n=n.slice(0,n.length-2)+n[n.length-1];break}n=n.slice(0,-1)}else break}if(n.length===0||n[0]==="#")return null;let r=0,o=n;if(o[0]==="!"&&(r|=so,o=o.slice(1)),o.length===0)return null;let s=o.length;o[s-1]==="/"&&(s--,o=o.slice(0,s),r|=mf);let i=!1;for(let c=0;c<s;c++)if(o[c]==="/"){i=!0;break}i||(r|=uf);let a=Math.min(pf(o),s);return o[0]==="*"&&Ah(o.slice(1))&&(r|=hf),{pattern:o,patternLen:s,nowildcardLen:a,flags:r,base:t}}function ds(e,t,n){let r=[];for(let o of e.split(`
41
- `)){let s=Dh(o,t);s&&r.push(s)}return{patterns:r,src:n}}function Mh(e,t){let{pattern:n,patternLen:r,nowildcardLen:o,flags:s}=t;if(o===r)return e===n;if(s&hf){let i=n.slice(1);return e.length>=i.length&&e.endsWith(i)}return ln(n,e,2)===0}function jh(e,t){let{base:n}=t,{pattern:r,patternLen:o,nowildcardLen:s}=t;r[0]==="/"&&(r=r.slice(1),o--,s=Math.max(0,s-1));let i=n.length;if(i>0&&(e.length<i+1||e[i]!=="/"||!e.startsWith(n)))return!1;let a=i>0?e.slice(i+1):e,c=a.length;if(s>0){if(s>c||a.slice(0,s)!==r.slice(0,s))return!1;if(o===s&&c===s)return!0}return ln(r,a,2)===0}function Ki(e,t,n){let r=e.lastIndexOf("/")>=0?e.slice(e.lastIndexOf("/")+1):e;for(let o=n.patterns.length-1;o>=0;o--){let s=n.patterns[o];if(s&&!(s.flags&mf&&!t)){if(s.flags&uf){if(s.base&&!e.startsWith(`${s.base}/`))continue;if(Mh(r,s))return s;continue}if(jh(e,s))return s}}return null}function dn(e,t,n){for(let r=e.dirPatterns.length-1;r>=0;r--){let o=e.dirPatterns[r],s=Ki(t,n,o);if(s)return s.flags&so?"not-ignored":"ignored"}if(e.excludeFile){let r=Ki(t,n,e.excludeFile);if(r)return r.flags&so?"not-ignored":"ignored"}if(e.globalExclude){let r=Ki(t,n,e.globalExclude);if(r)return r.flags&so?"not-ignored":"ignored"}return"undecided"}async function Hr(e){let t={dirPatterns:[],excludeFile:null,globalExclude:null},n=H(e.gitDir,"info","exclude");try{let r=await e.fs.readFile(n);t.excludeFile=ds(r,"",n)}catch{}try{let r=await ke(e,"core.excludesFile");if(r)try{let o=await e.fs.readFile(r);t.globalExclude=ds(o,"",r)}catch{}}catch{}return t}function ar(e,t,n,r){let s=ds(t,n===""?"":n,r);return{...e,dirPatterns:[...e.dirPatterns,s]}}var uf,hf,mf,so,io=xe(()=>{"use strict";Ue();me();ls();uf=1,hf=4,mf=8,so=16});async function bt(e,t){if(!e.workTree)throw new Error("Cannot diff working tree in a bare repository");let n=[];for(let s of t.entries){if(s.stage!==0||_n(s.mode))continue;let i=H(e.workTree,s.path),a;try{a=await mt(e.fs,i)}catch{a=null}if(!a){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}if(!a.isFile&&!a.isSymbolicLink){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}await Un(e.fs,i)!==s.hash&&n.push({path:s.path,status:"modified",indexHash:s.hash})}let r=new Set(t.entries.map(s=>s.path)),o=await ot(e,e.workTree,"");for(let s of o)r.has(s)||n.push({path:s,status:"untracked"});return n.sort((s,i)=>ve(s.path,i.path))}async function dt(e,t){if(!e.workTree)throw new Error("Cannot checkout in a bare repository");if(!sr(t.path))throw new Error(`refusing to check out unsafe path '${t.path}'`);if(t.mode!=null&&_n(t.mode)){let s=H(e.workTree,t.path);await e.fs.mkdir(s,{recursive:!0});return}let n=await we(e,t.hash);if(n.type!=="blob")throw new Error(`Expected blob for ${t.path}, got ${n.type}`);let r=H(e.workTree,t.path);if(!Bs(e.workTree,r))throw new Error(`refusing to check out path outside worktree: '${t.path}'`);let o=r.lastIndexOf("/");if(o>0&&await e.fs.mkdir(r.slice(0,o),{recursive:!0}),t.mode!=null&&kn(t.mode)&&e.fs.symlink){let s=Gh.decode(n.content);if(!uc(s))throw new Error(`refusing to create symlink with unsafe target '${s}'`);await mt(e.fs,r).then(()=>!0).catch(()=>!1)&&await e.fs.rm(r,{force:!0}),await e.fs.symlink(s,r)}else{if(e.fs.lstat)try{(await e.fs.lstat(r)).isSymbolicLink&&await e.fs.rm(r,{force:!0})}catch{}await e.fs.writeFile(r,n.content)}}async function gf(e,t){let n=await qe(e,t);for(let r of n)await dt(e,r)}async function un(e,t,n){if(!e.workTree)throw new Error("Cannot stage in a bare repository");if(!sr(n))throw new Error(`refusing to stage unsafe path '${n}'`);let r=H(e.workTree,n);if(!await e.fs.exists(r))throw new Error(`Path does not exist: ${n}`);let o=await mt(e.fs,r);if(o.isSymbolicLink&&e.fs.readlink){let f=await e.fs.readlink(r),l=Lh.encode(f),d=await Ie(e,"blob",l),u={path:n,mode:40960,hash:d,stage:0,stat:{...He(),size:l.byteLength}};return{index:Pt(t,u),hash:d}}let s=await e.fs.readFileBuffer(r),i=await Ie(e,"blob",s),a=o.mode!=null?Nh(o.mode):33188,c={path:n,mode:a,hash:i,stage:0,stat:{...He(),size:s.byteLength}};return{index:Pt(t,c),hash:i}}async function ot(e,t,n,r){let o=r?.skipIgnore??!1,s=null;if(!o){s=r?._ignore??await Hr(e);let c=H(t,".gitignore");try{let f=await e.fs.readFile(c);s=ar(s,f,n,c)}catch{}}let i=[],a=await e.fs.readdir(t);for(let c of a){if(n===""&&c===".git")continue;let f=H(t,c),l=n?`${n}/${c}`:c,d=await mt(e.fs,f);if(d.isSymbolicLink){if(s&&dn(s,l,!1)==="ignored")continue;i.push(l)}else if(d.isDirectory){if(s&&dn(s,l,!0)==="ignored")continue;let u=await ot(e,f,l,{skipIgnore:o,_ignore:s??void 0});i.push(...u)}else if(d.isFile){if(s&&dn(s,l,!1)==="ignored")continue;i.push(l)}}return i}function Nh(e){return e>511?e:e&73?33261:33188}async function cr(e,t,n){if(t===n||t==="/"||!t.startsWith(n)||!await e.exists(t)||!(await e.stat(t)).isDirectory)return;(await e.readdir(t)).length===0&&(await e.rm(t,{recursive:!0}),await cr(e,sn(t),n))}var Lh,Gh,Je=xe(()=>{"use strict";se();io();Ce();ie();Ws();me();Rn();Ae();Lh=new TextEncoder,Gh=new TextDecoder});function zi(e){return e.existsOnDisk&&e.indexHash===null}async function Fh(e,t,n){let r=await Promise.all(t.map(m=>le(e,m.treeHash))),o=new Map,s=new Set;for(let m of n.entries)m.stage===0?o.set(m.path,m):s.add(m.path);let i=e.workTree?new Set(await ot(e,e.workTree,"",{skipIgnore:!0})):new Set,a=null,c=async()=>(a===null&&(a=e.workTree?new Set(await ot(e,e.workTree,"")):new Set),a),f=new Set;for(let m of r)for(let p of m.keys())f.add(p);let l=new Set;for(let m of n.entries)f.has(m.path)||l.add(m.path);for(let m of i)f.has(m)||l.add(m);let d=Array.from(f).sort().concat(Array.from(l).sort()),u=(m,p)=>r[m]?.get(p),h=[];for(let m of d){let p=null,g=null,w=null,b=null,k=null;if(r.length===1){let $=u(0,m);w=$?.hash??null,k=$?.mode??null}else if(r.length===2){let $=u(0,m),v=u(1,m);g=$?.hash??null,b=$?.mode??null,w=v?.hash??null,k=v?.mode??null}else if(r.length>=3){let $=u(0,m),v=u(1,m),_=u(2,m);p=$?.hash??null,g=v?.hash??null,b=v?.mode??null,w=_?.hash??null,k=_?.mode??null}let R=o.get(m)?.hash??null,x=s.has(m)?1:0,y=i.has(m),C,P=async()=>C!==void 0?C:y?(C=!(await c()).has(m),C):(C=!1,!1),D,A=async()=>{if(D!==void 0)return D;if(!y||!e.workTree)return D=null,null;let $=H(e.workTree,m);try{D=await Un(e.fs,$)}catch{D=null}return D};h.push({path:m,baseHash:p,headHash:g,remoteHash:w,indexHash:R,indexStage:x,existsOnDisk:y,isIgnoredOnDisk:P,getWorktreeHash:A,headMode:b,remoteMode:k})}return h}function ao(e,t){let n=e.remoteHash;return n===null?e.indexHash===null&&e.indexStage===0?{action:"SKIP",requirements:[]}:{action:"DELETE",requirements:t.reset?[]:["WORKTREE_MUST_BE_UPTODATE"]}:e.indexHash===n?{action:"KEEP",requirements:[]}:e.indexHash===null?{action:"TAKE",takeFrom:"remote",requirements:t.reset||!!t.strippedConflictPaths?.has(e.path)?[]:["NO_UNTRACKED"]}:{action:"TAKE",takeFrom:"remote",requirements:t.reset?[]:["WORKTREE_MUST_BE_UPTODATE"]}}function co(e,t){let{headHash:n,remoteHash:r,indexHash:o}=e;return e.indexStage>0?n===r?r===null?{action:"DELETE",requirements:[]}:{action:"TAKE",takeFrom:"remote",requirements:[]}:{action:"KEEP",requirements:["INDEX_MUST_MATCH_HEAD"],caseNumber:-1}:o===null?r===null?n===null?{action:"SKIP",caseNumber:0,requirements:[]}:{action:"SKIP",caseNumber:2,requirements:["NO_UNTRACKED_REMOVED"]}:n!==null?n===r?{action:"SKIP",caseNumber:3,requirements:[]}:t.allowStagedChanges?{action:"TAKE",takeFrom:"remote",caseNumber:3,requirements:[]}:{action:"KEEP",caseNumber:3,requirements:["INDEX_MUST_MATCH_HEAD"]}:{action:"TAKE",takeFrom:"remote",caseNumber:1,requirements:["NO_UNTRACKED"]}:n===null&&r===null?{action:"KEEP",caseNumber:4,requirements:[]}:n===null&&r===o?{action:"KEEP",caseNumber:6,requirements:[]}:n===o&&r===null?{action:"DELETE",caseNumber:10,requirements:["WORKTREE_MUST_BE_UPTODATE"]}:n!==null&&n===r?{action:"KEEP",caseNumber:14,requirements:[]}:n!==null&&r!==null&&o===r?{action:"KEEP",caseNumber:18,requirements:[]}:n!==null&&r!==null&&o===n&&o!==r?{action:"TAKE",takeFrom:"remote",caseNumber:20,requirements:["WORKTREE_MUST_BE_UPTODATE"]}:t.allowStagedChanges?r===null?{action:"DELETE",caseNumber:-1,requirements:[]}:{action:"TAKE",takeFrom:"remote",caseNumber:-1,requirements:[]}:{action:"KEEP",requirements:["INDEX_MUST_MATCH_HEAD"],caseNumber:-1}}function _h(e,t){switch(e.action){case"TAKE":return e.takeFrom==="head"?t.headHash:e.takeFrom==="remote"?t.remoteHash:e.takeFrom==="base"?t.baseHash:null;case"DELETE":return null;case"KEEP":return t.indexHash;default:return null}}async function Uh(e,t,n){let r=[];if(n.reset)return r;for(let[o,s]of e){if(s.requirements.length===0)continue;let i=t.get(o);if(!i)continue;let a=_h(s,i);for(let c of s.requirements){if(n.allowStagedChanges&&c==="INDEX_MUST_MATCH_HEAD")continue;let f=await Bh(c,i,a);if(f){r.push({path:o,error:f});break}}if(n.stopAtFirstError&&r.length>0)break}return r}async function Bh(e,t,n,r){switch(e){case"INDEX_MUST_NOT_EXIST":return t.indexHash!==null?"WOULD_OVERWRITE":zi(t)?"WOULD_LOSE_UNTRACKED_REMOVED":null;case"INDEX_MUST_MATCH_HEAD":return t.indexHash!==t.headHash?"WOULD_OVERWRITE":null;case"INDEX_MUST_MATCH_RESULT":return t.indexHash!==null&&t.indexHash!==n?"WOULD_OVERWRITE":null;case"WORKTREE_MUST_BE_UPTODATE":{if(!t.existsOnDisk)return null;let o=await t.getWorktreeHash();return o!==t.indexHash?r?.allowContentEscapeHatch&&(n!==null&&o===n||o===null&&n===null)?null:"NOT_UPTODATE_FILE":null}case"NO_UNTRACKED":return zi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_OVERWRITTEN":null;case"NO_UNTRACKED_REMOVED":return zi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_REMOVED":null}}function Wh(e,t,n,r){let o=[],s=[],i=new Set(e.keys()),a=new Map;for(let c of n.entries)i.has(c.path)||o.push(c),c.stage===0&&a.set(c.path,c);for(let[c,f]of e){let l=t.get(c);if(l)switch(f.action){case"KEEP":{let d=a.get(c);d&&(o.push(d),r.reset&&r.updateWorktree&&s.push({path:c,type:"checkout",hash:d.hash,mode:d.mode}));break}case"TAKE":{let d=f.takeFrom==="head"?l.headHash:l.remoteHash,u=f.takeFrom==="head"?l.headMode:l.remoteMode,h=u?Number.parseInt(u,8):33188;o.push({path:c,mode:h,hash:d,stage:0,stat:He()}),r.updateWorktree&&s.push({path:c,type:"checkout",hash:d,mode:h});break}case"DELETE":{r.updateWorktree&&l.existsOnDisk&&s.push({path:c,type:"delete"});break}case"SKIP":break}}return o.sort((c,f)=>ve(c.path,f.path)||c.stage-f.stage),{newEntries:o,worktreeOps:s}}function fo(e,t){let n=t.actionHint??t.operationName,r=[];for(let{error:s,msg:i,fix:a}of qh){let c=e.filter(f=>f.error===s).map(f=>f.path).sort();if(c.length>0){let f=c.map(l=>` ${l}`).join(`
40
+ `;if(await e.fs.exists(r)){let s=await e.fs.readFile(r);await e.fs.writeFile(r,s+o)}else await e.fs.writeFile(r,o)}async function as(e,t){let n=eo(e,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function re(e,t,n,r,o,s,i=!1){let a=await Mn(e,t),c={oldHash:r??ne,newHash:o,...a,message:s};await st(e,n,c),i&&n!=="HEAD"&&await st(e,"HEAD",c)}var Be=xe(()=>{"use strict";pt();sr();me();kn();pt()});function dh(e){let t=[],n=e.length;for(;n>0;){let s=e.slice(0,n).match(/^(.+?)~(\d*)$/);if(s&&s[1]!==void 0&&s[2]!==void 0){let c=s[2]===""?1:parseInt(s[2],10);t.unshift({type:"tilde",n:c}),n=s[1].length;continue}let i=e.slice(0,n).match(/^(.+?)\^{([^}]*)}$/);if(i&&i[1]!==void 0&&i[2]!==void 0){t.unshift({type:"peel",target:i[2]}),n=i[1].length;continue}let a=e.slice(0,n).match(/^(.+?)\^(\d*)$/);if(a&&a[1]!==void 0&&a[2]!==void 0){let c=a[2]===""?1:parseInt(a[2],10);t.unshift({type:"caret",n:c}),n=a[1].length;continue}break}let r=e.slice(0,n),o=r.match(/^(.+?)@\{(\d+)\}$/);return o&&o[1]!==void 0&&o[2]!==void 0?{base:o[1],reflogIndex:parseInt(o[2],10),suffixes:t}:{base:r,suffixes:t}}async function uh(e,t){let n=await Vc(e,t);if(n.length===0)return null;if(n.length>1)throw new _i(t);return n[0]}async function hh(e,t){if(t==="HEAD"||t==="@")return U(e,"HEAD");if(rf.includes(t))return U(e,t);if(/^[0-9a-f]{40}$/.test(t))return await wt(e,t)?t:null;if(/^[0-9a-f]{4,39}$/.test(t)){let s=await uh(e,t);if(s)return s}if(t.startsWith("refs/")){let s=await U(e,t);if(s)return s}let n=await U(e,`refs/heads/${t}`);if(n)return n;let r=await U(e,`refs/tags/${t}`);if(r)return r;let o=await U(e,`refs/remotes/${t}`);return o||null}function mh(e){if(e==="HEAD"||e==="@")return"HEAD";for(let t of rf)if(e===t)return t;return e.startsWith("refs/")?e:`refs/heads/${e}`}async function ph(e,t,n){let r=mh(t),o=await et(e,r);if(o.length===0)return null;let s=o.length-1-n;if(s<0||s>=o.length)return null;let i=o[s];return i?i.newHash:null}async function gh(e,t,n){if(n===""||n==="commit")try{return await Te(e,t)}catch{return null}if(n==="tree"){let o;try{o=await Te(e,t)}catch{return null}return(await j(e,o)).tree}return(await we(e,t)).type!==n?null:t}async function wh(e,t,n){let r=t;n.some(s=>s.type==="tilde"||s.type==="caret")&&(r=await Te(e,r));for(let s of n)if(s.type==="peel"){if(!r)return null;r=await gh(e,r,s.target)}else if(s.type==="tilde")for(let i=0;i<s.n;i++){if(!r)return null;let a=await j(e,r);if(a.parents.length===0||(r=a.parents[0]??null,!r))return null}else{if(s.n===0)continue;if(!r)return null;let i=await j(e,r);if(s.n>i.parents.length||(r=i.parents[s.n-1]??null,!r))return null}return r}async function We(e,t){let{base:n,reflogIndex:r,suffixes:o}=dh(t),s;return r!==void 0?s=await ph(e,n,r):s=await hh(e,n),s?wh(e,s,o):null}function to(e){let t=e.indexOf(":");return t<0?null:{rev:e.slice(0,t)||"HEAD",path:e.slice(t+1)}}var rf,_i,fn=xe(()=>{"use strict";ie();Be();ge();rf=["HEAD","FETCH_HEAD","ORIG_HEAD","MERGE_HEAD","CHERRY_PICK_HEAD","REBASE_HEAD"];_i=class extends Error{constructor(n){super(`short object ID ${n} is ambiguous`);this.prefix=n}}});function Eh(e){return e.length===4&&e.toLowerCase()===".git"}function kh(e,t){if(e.length===0)throw new Error("invalid tree entry: empty name");if(e.includes("/"))throw new Error(`invalid tree entry: name contains slash: '${e}'`);if(e.includes("\0"))throw new Error("invalid tree entry: name contains null byte");if(e==="."||e==="..")throw new Error(`invalid tree entry: '${e}'`);if(Eh(e))throw new Error(`invalid tree entry: '${e}'`);if(!yh.has(t))throw new Error(`invalid tree entry mode: '${t}' for '${e}'`)}function xn(e){let t=[],n=0;for(;n<e.byteLength;){let r=e.indexOf(32,n);if(r===-1)break;let o=sf.decode(e.subarray(n,r)),s=e.indexOf(0,r+1);if(s===-1)break;let i=sf.decode(e.subarray(r+1,s)),a=e.subarray(s+1,s+21),c=jn(a),f=o.padStart(6,"0");kh(i,f),t.push({mode:f,name:i,hash:c}),n=s+21}return{type:"tree",entries:t}}function of(e){let t=[];for(let s of e.entries){let i=s.mode.replace(/^0+/,""),a=bh.encode(`${i} ${s.name}\0`),c=jt(s.hash);t.push(a),t.push(c)}let n=t.reduce((s,i)=>s+i.byteLength,0),r=new Uint8Array(n),o=0;for(let s of t)r.set(s,o),o+=s.byteLength;return r}var bh,sf,yh,no=xe(()=>{"use strict";pt();bh=new TextEncoder,sf=new TextDecoder,yh=new Set(["100644","100755","040000","120000","160000"])});async function Fe(e,t){return cf(e,t,"")}async function cf(e,t,n){let r=[],o=new Map;for(let i of t){let a=n?i.path.slice(n.length+1):i.path,c=a.indexOf("/");if(c===-1)r.push({mode:Rh(i.mode),name:a,hash:i.hash});else{let f=a.slice(0,c),l=o.get(f);l||(l=[],o.set(f,l)),l.push(i)}}for(let[i,a]of o){let c=n?`${n}/${i}`:i,f=await cf(e,a,c);r.push({mode:yn.DIRECTORY,name:i,hash:f})}r.sort((i,a)=>{let c=i.mode===yn.DIRECTORY?`${i.name}/`:i.name,f=a.mode===yn.DIRECTORY?`${a.name}/`:a.name;return c<f?-1:c>f?1:0});let s=of({type:"tree",entries:r});return Ie(e,"tree",s)}async function qe(e,t,n=""){let r=await we(e,t);if(r.type!=="tree")throw new Error(`Expected tree object, got ${r.type}`);let o=xn(r.content),s=[];for(let i of o.entries){let a=n?`${n}/${i.name}`:i.name;if(i.mode===yn.DIRECTORY){let c=await qe(e,i.hash,a);s.push(...c)}else s.push({path:a,mode:i.mode,hash:i.hash})}return s}async function le(e,t){if(!t)return new Map;let n=await qe(e,t);return new Map(n.map(r=>[r.path,r]))}async function Ve(e,t,n){if(t===n)return[];let r=[];return await ff(e,t,n,"",r),r.sort((o,s)=>ve(o.path,s.path))}async function af(e,t){let n=await we(e,t);if(n.type!=="tree")throw new Error(`Expected tree object, got ${n.type}`);return xn(n.content).entries}async function ff(e,t,n,r,o){if(t===n)return;let s=t?await af(e,t):[],i=n?await af(e,n):[],a=new Map;for(let l of s)a.set(l.name,l);let c=new Map;for(let l of i)c.set(l.name,l);let f=new Set;for(let l of s)f.add(l.name);for(let l of i)f.add(l.name);for(let l of f){let d=a.get(l),u=c.get(l),h=r?`${r}/${l}`:l;if(d&&u){if(d.hash===u.hash&&d.mode===u.mode)continue;let m=d.mode===yn.DIRECTORY,p=u.mode===yn.DIRECTORY;m&&p?await ff(e,d.hash,u.hash,h,o):m?(await ro(e,d.hash,h,"deleted",o),o.push({path:h,status:"added",newHash:u.hash,newMode:u.mode})):p?(o.push({path:h,status:"deleted",oldHash:d.hash,oldMode:d.mode}),await ro(e,u.hash,h,"added",o)):o.push({path:h,status:"modified",oldHash:d.hash,newHash:u.hash,oldMode:d.mode,newMode:u.mode})}else if(d)d.mode===yn.DIRECTORY?await ro(e,d.hash,h,"deleted",o):o.push({path:h,status:"deleted",oldHash:d.hash,oldMode:d.mode});else{let m=u;m.mode===yn.DIRECTORY?await ro(e,m.hash,h,"added",o):o.push({path:h,status:"added",newHash:m.hash,newMode:m.mode})}}}async function ro(e,t,n,r,o){let s=await qe(e,t,n);for(let i of s)r==="added"?o.push({path:i.path,status:"added",newHash:i.hash,newMode:i.mode}):o.push({path:i.path,status:"deleted",oldHash:i.hash,oldMode:i.mode})}function Rh(e){return e.toString(8).padStart(6,"0")}var Ae=xe(()=>{"use strict";se();ie();no();Gi()});function mt(e,t){return e.lstat?e.lstat(t):e.stat(t)}function Cn(e){return typeof e=="string"?e==="120000":e===40960}function Bn(e){return typeof e=="string"?e==="160000":e===57344}async function cs(e,t){if((await mt(e,t)).isSymbolicLink&&e.readlink){let r=await e.readlink(t);return xh.encode(r)}return e.readFileBuffer(t)}async function Wn(e,t){let n=await cs(e,t);return gt("blob",n)}var xh,Pn=xe(()=>{"use strict";ie();xh=new TextEncoder});function lf(e){return/^[a-zA-Z0-9]$/.test(e)}function Ch(e){return/^[a-zA-Z]$/.test(e)}function Ph(e){return e>="0"&&e<="9"}function Ui(e){return e>="A"&&e<="Z"}function Bi(e){return e>="a"&&e<="z"}function df(e){return/^\s$/.test(e)}function $h(e){return e===" "||e===" "}function qi(e){let t=e.charCodeAt(0);return t>=32&&t<=126}function Oh(e){return qi(e)&&!df(e)}function Sh(e){return qi(e)&&!lf(e)&&e!==" "}function Ih(e){let t=e.charCodeAt(0);return t<32||t===127}function Th(e){return/^[0-9a-fA-F]$/.test(e)}function fs(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e===t}function Wi(e,t,n,r,o){let s=(o&1)!==0,i=(o&2)!==0;for(;t<e.length;){let a=e[t];if(r>=n.length&&a!=="*")return-1;let c=r<n.length?n[r]:"";switch(a){case"\\":{if(t++,t>=e.length)return-1;if(!fs(n[r],e[t],s))return 1;r++,t++;break}case"?":{if(i&&c==="/")return 1;r++,t++;break}case"*":{let f;if(t++,t<e.length&&e[t]==="*"){let l=t;for(;t<e.length&&e[t]==="*";)t++;if(!i)f=!0;else if((l-1<1||e[l-2]==="/")&&(t>=e.length||e[t]==="/"||e[t]==="\\"&&t+1<e.length&&e[t+1]==="/")){if(t<e.length&&e[t]==="/"&&Wi(e,t+1,n,r,o)===0)return 0;f=!0}else f=!1}else f=!i;if(t>=e.length)return!f&&n.indexOf("/",r)!==-1?-2:0;if(!f&&e[t]==="/"){let l=n.indexOf("/",r);if(l===-1)return-1;r=l+1,t++;break}for(;!(r>=n.length);){if(!vh(e[t])){let d=s?e[t].toLowerCase():e[t];for(;r<n.length&&(f||n[r]!=="/")&&(s?n[r].toLowerCase():n[r])!==d;)r++;if(r>=n.length||!f&&n[r]==="/")return r<n.length&&!f&&n[r]==="/"?-2:f?-1:-2}let l=Wi(e,t,n,r,o);if(l!==1){if(!f||l!==-2)return l}else if(!f&&n[r]==="/")return-2;r++}return-1}case"[":{if(i&&c==="/")return 1;if(t++,t>=e.length)return-1;let f=!1;(e[t]==="!"||e[t]==="^")&&(f=!0,t++);let l=!1,d="",u=!0;for(;t<e.length&&(u||e[t]!=="]");){u=!1;let h=e[t];if(h==="\\"){if(t++,t>=e.length)return-1;h=e[t],fs(c,h,s)&&(l=!0)}else if(h==="-"&&d&&t+1<e.length&&e[t+1]!=="]"){if(t++,h=e[t],h==="\\"){if(t++,t>=e.length)return-1;h=e[t]}let m=d,p=h;if(c>=m&&c<=p&&(l=!0),s){if(Bi(c)){let g=c.toUpperCase();g>=m&&g<=p&&(l=!0)}else if(Ui(c)){let g=c.toLowerCase();g>=m&&g<=p&&(l=!0)}}h=""}else if(h==="["&&t+1<e.length&&e[t+1]===":"){t+=2;let m=t;for(;t<e.length&&e[t]!=="]";)t++;if(t>=e.length)return-1;let p=t-m-1;if(p<0||e[t-1]!==":")t=m-2,h="[",fs(c,h,s)&&(l=!0);else{let g=e.slice(m,m+p);Hh(g,c,s)&&(l=!0),h=""}}else fs(c,h,s)&&(l=!0);d=h,t++}if(t>=e.length)return-1;if(t++,l===f)return 1;r++;break}default:{if(!fs(c,a,s))return 1;r++,t++;break}}}return r>=n.length?0:1}function vh(e){return e==="*"||e==="?"||e==="["||e==="\\"}function Hh(e,t,n){switch(e){case"alnum":return lf(t);case"alpha":return Ch(t);case"blank":return $h(t);case"cntrl":return Ih(t);case"digit":return Ph(t);case"graph":return Oh(t);case"lower":return Bi(t)||n&&Ui(t);case"print":return qi(t);case"punct":return Sh(t);case"space":return df(t);case"upper":return Ui(t)||n&&Bi(t);case"xdigit":return Th(t);default:return!1}}function ln(e,t,n=0){return Wi(e,0,t,0,n)===0?0:1}var ls=xe(()=>{"use strict"});function pf(e){for(let t=0;t<e.length;t++){let n=e[t];if(n==="\\"){t++;continue}if(n==="*"||n==="?"||n==="[")return t}return e.length}function Ah(e){return pf(e)===e.length}function Dh(e,t){let n=e;for(;n.length>0;){let c=n[n.length-1];if(c===" "||c===" "){if(n.length>=2&&n[n.length-2]==="\\"){n=n.slice(0,n.length-2)+n[n.length-1];break}n=n.slice(0,-1)}else break}if(n.length===0||n[0]==="#")return null;let r=0,o=n;if(o[0]==="!"&&(r|=so,o=o.slice(1)),o.length===0)return null;let s=o.length;o[s-1]==="/"&&(s--,o=o.slice(0,s),r|=mf);let i=!1;for(let c=0;c<s;c++)if(o[c]==="/"){i=!0;break}i||(r|=uf);let a=Math.min(pf(o),s);return o[0]==="*"&&Ah(o.slice(1))&&(r|=hf),{pattern:o,patternLen:s,nowildcardLen:a,flags:r,base:t}}function ds(e,t,n){let r=[];for(let o of e.split(`
41
+ `)){let s=Dh(o,t);s&&r.push(s)}return{patterns:r,src:n}}function Mh(e,t){let{pattern:n,patternLen:r,nowildcardLen:o,flags:s}=t;if(o===r)return e===n;if(s&hf){let i=n.slice(1);return e.length>=i.length&&e.endsWith(i)}return ln(n,e,2)===0}function jh(e,t){let{base:n}=t,{pattern:r,patternLen:o,nowildcardLen:s}=t;r[0]==="/"&&(r=r.slice(1),o--,s=Math.max(0,s-1));let i=n.length;if(i>0&&(e.length<i+1||e[i]!=="/"||!e.startsWith(n)))return!1;let a=i>0?e.slice(i+1):e,c=a.length;if(s>0){if(s>c||a.slice(0,s)!==r.slice(0,s))return!1;if(o===s&&c===s)return!0}return ln(r,a,2)===0}function Ki(e,t,n){let r=e.lastIndexOf("/")>=0?e.slice(e.lastIndexOf("/")+1):e;for(let o=n.patterns.length-1;o>=0;o--){let s=n.patterns[o];if(s&&!(s.flags&mf&&!t)){if(s.flags&uf){if(s.base&&!e.startsWith(`${s.base}/`))continue;if(Mh(r,s))return s;continue}if(jh(e,s))return s}}return null}function dn(e,t,n){for(let r=e.dirPatterns.length-1;r>=0;r--){let o=e.dirPatterns[r],s=Ki(t,n,o);if(s)return s.flags&so?"not-ignored":"ignored"}if(e.excludeFile){let r=Ki(t,n,e.excludeFile);if(r)return r.flags&so?"not-ignored":"ignored"}if(e.globalExclude){let r=Ki(t,n,e.globalExclude);if(r)return r.flags&so?"not-ignored":"ignored"}return"undecided"}async function Hr(e){let t={dirPatterns:[],excludeFile:null,globalExclude:null},n=H(e.gitDir,"info","exclude");try{let r=await e.fs.readFile(n);t.excludeFile=ds(r,"",n)}catch{}try{let r=await ke(e,"core.excludesFile");if(r)try{let o=await e.fs.readFile(r);t.globalExclude=ds(o,"",r)}catch{}}catch{}return t}function ar(e,t,n,r){let s=ds(t,n===""?"":n,r);return{...e,dirPatterns:[...e.dirPatterns,s]}}var uf,hf,mf,so,io=xe(()=>{"use strict";Ue();me();ls();uf=1,hf=4,mf=8,so=16});async function bt(e,t){if(!e.workTree)throw new Error("Cannot diff working tree in a bare repository");let n=[];for(let s of t.entries){if(s.stage!==0||Bn(s.mode))continue;let i=H(e.workTree,s.path),a;try{a=await mt(e.fs,i)}catch{a=null}if(!a){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}if(!a.isFile&&!a.isSymbolicLink){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}await Wn(e.fs,i)!==s.hash&&n.push({path:s.path,status:"modified",indexHash:s.hash})}let r=new Set(t.entries.map(s=>s.path)),o=await ot(e,e.workTree,"");for(let s of o)r.has(s)||n.push({path:s,status:"untracked"});return n.sort((s,i)=>ve(s.path,i.path))}async function dt(e,t){if(!e.workTree)throw new Error("Cannot checkout in a bare repository");if(!or(t.path))throw new Error(`refusing to check out unsafe path '${t.path}'`);if(t.mode!=null&&Bn(t.mode)){let s=H(e.workTree,t.path);await e.fs.mkdir(s,{recursive:!0});return}let n=await we(e,t.hash);if(n.type!=="blob")throw new Error(`Expected blob for ${t.path}, got ${n.type}`);let r=H(e.workTree,t.path);if(!Bs(e.workTree,r))throw new Error(`refusing to check out path outside worktree: '${t.path}'`);let o=r.lastIndexOf("/");if(o>0&&await e.fs.mkdir(r.slice(0,o),{recursive:!0}),t.mode!=null&&Cn(t.mode)&&e.fs.symlink){let s=Gh.decode(n.content);if(!uc(s))throw new Error(`refusing to create symlink with unsafe target '${s}'`);await mt(e.fs,r).then(()=>!0).catch(()=>!1)&&await e.fs.rm(r,{force:!0}),await e.fs.symlink(s,r)}else{if(e.fs.lstat)try{(await e.fs.lstat(r)).isSymbolicLink&&await e.fs.rm(r,{force:!0})}catch{}await e.fs.writeFile(r,n.content)}}async function gf(e,t){let n=await qe(e,t);for(let r of n)await dt(e,r)}async function un(e,t,n){if(!e.workTree)throw new Error("Cannot stage in a bare repository");if(!or(n))throw new Error(`refusing to stage unsafe path '${n}'`);let r=H(e.workTree,n);if(!await e.fs.exists(r))throw new Error(`Path does not exist: ${n}`);let o=await mt(e.fs,r);if(o.isSymbolicLink&&e.fs.readlink){let f=await e.fs.readlink(r),l=Lh.encode(f),d=await Ie(e,"blob",l),u={path:n,mode:40960,hash:d,stage:0,stat:{...He(),size:l.byteLength}};return{index:Pt(t,u),hash:d}}let s=await e.fs.readFileBuffer(r),i=await Ie(e,"blob",s),a=o.mode!=null?Nh(o.mode):33188,c={path:n,mode:a,hash:i,stage:0,stat:{...He(),size:s.byteLength}};return{index:Pt(t,c),hash:i}}async function ot(e,t,n,r){let o=r?.skipIgnore??!1,s=null;if(!o){s=r?._ignore??await Hr(e);let c=H(t,".gitignore");try{let f=await e.fs.readFile(c);s=ar(s,f,n,c)}catch{}}let i=[],a=await e.fs.readdir(t);for(let c of a){if(n===""&&c===".git")continue;let f=H(t,c),l=n?`${n}/${c}`:c,d=await mt(e.fs,f);if(d.isSymbolicLink){if(s&&dn(s,l,!1)==="ignored")continue;i.push(l)}else if(d.isDirectory){if(s&&dn(s,l,!0)==="ignored")continue;let u=await ot(e,f,l,{skipIgnore:o,_ignore:s??void 0});i.push(...u)}else if(d.isFile){if(s&&dn(s,l,!1)==="ignored")continue;i.push(l)}}return i}function Nh(e){return e>511?e:e&73?33261:33188}async function cr(e,t,n){if(t===n||t==="/"||!t.startsWith(n)||!await e.exists(t)||!(await e.stat(t)).isDirectory)return;(await e.readdir(t)).length===0&&(await e.rm(t,{recursive:!0}),await cr(e,sn(t),n))}var Lh,Gh,Je=xe(()=>{"use strict";se();io();Ce();ie();Ws();me();Pn();Ae();Lh=new TextEncoder,Gh=new TextDecoder});function zi(e){return e.existsOnDisk&&e.indexHash===null}async function Fh(e,t,n){let r=await Promise.all(t.map(m=>le(e,m.treeHash))),o=new Map,s=new Set;for(let m of n.entries)m.stage===0?o.set(m.path,m):s.add(m.path);let i=e.workTree?new Set(await ot(e,e.workTree,"",{skipIgnore:!0})):new Set,a=null,c=async()=>(a===null&&(a=e.workTree?new Set(await ot(e,e.workTree,"")):new Set),a),f=new Set;for(let m of r)for(let p of m.keys())f.add(p);let l=new Set;for(let m of n.entries)f.has(m.path)||l.add(m.path);for(let m of i)f.has(m)||l.add(m);let d=Array.from(f).sort().concat(Array.from(l).sort()),u=(m,p)=>r[m]?.get(p),h=[];for(let m of d){let p=null,g=null,w=null,b=null,R=null;if(r.length===1){let $=u(0,m);w=$?.hash??null,R=$?.mode??null}else if(r.length===2){let $=u(0,m),v=u(1,m);g=$?.hash??null,b=$?.mode??null,w=v?.hash??null,R=v?.mode??null}else if(r.length>=3){let $=u(0,m),v=u(1,m),N=u(2,m);p=$?.hash??null,g=v?.hash??null,b=v?.mode??null,w=N?.hash??null,R=N?.mode??null}let k=o.get(m)?.hash??null,x=s.has(m)?1:0,y=i.has(m),P,C=async()=>P!==void 0?P:y?(P=!(await c()).has(m),P):(P=!1,!1),A,D=async()=>{if(A!==void 0)return A;if(!y||!e.workTree)return A=null,null;let $=H(e.workTree,m);try{A=await Wn(e.fs,$)}catch{A=null}return A};h.push({path:m,baseHash:p,headHash:g,remoteHash:w,indexHash:k,indexStage:x,existsOnDisk:y,isIgnoredOnDisk:C,getWorktreeHash:D,headMode:b,remoteMode:R})}return h}function ao(e,t){let n=e.remoteHash;return n===null?e.indexHash===null&&e.indexStage===0?{action:"SKIP",requirements:[]}:{action:"DELETE",requirements:t.reset?[]:["WORKTREE_MUST_BE_UPTODATE"]}:e.indexHash===n?{action:"KEEP",requirements:[]}:e.indexHash===null?{action:"TAKE",takeFrom:"remote",requirements:t.reset||!!t.strippedConflictPaths?.has(e.path)?[]:["NO_UNTRACKED"]}:{action:"TAKE",takeFrom:"remote",requirements:t.reset?[]:["WORKTREE_MUST_BE_UPTODATE"]}}function co(e,t){let{headHash:n,remoteHash:r,indexHash:o}=e;return e.indexStage>0?n===r?r===null?{action:"DELETE",requirements:[]}:{action:"TAKE",takeFrom:"remote",requirements:[]}:{action:"KEEP",requirements:["INDEX_MUST_MATCH_HEAD"],caseNumber:-1}:o===null?r===null?n===null?{action:"SKIP",caseNumber:0,requirements:[]}:{action:"SKIP",caseNumber:2,requirements:["NO_UNTRACKED_REMOVED"]}:n!==null?n===r?{action:"SKIP",caseNumber:3,requirements:[]}:t.allowStagedChanges?{action:"TAKE",takeFrom:"remote",caseNumber:3,requirements:[]}:{action:"KEEP",caseNumber:3,requirements:["INDEX_MUST_MATCH_HEAD"]}:{action:"TAKE",takeFrom:"remote",caseNumber:1,requirements:["NO_UNTRACKED"]}:n===null&&r===null?{action:"KEEP",caseNumber:4,requirements:[]}:n===null&&r===o?{action:"KEEP",caseNumber:6,requirements:[]}:n===o&&r===null?{action:"DELETE",caseNumber:10,requirements:["WORKTREE_MUST_BE_UPTODATE"]}:n!==null&&n===r?{action:"KEEP",caseNumber:14,requirements:[]}:n!==null&&r!==null&&o===r?{action:"KEEP",caseNumber:18,requirements:[]}:n!==null&&r!==null&&o===n&&o!==r?{action:"TAKE",takeFrom:"remote",caseNumber:20,requirements:["WORKTREE_MUST_BE_UPTODATE"]}:t.allowStagedChanges?r===null?{action:"DELETE",caseNumber:-1,requirements:[]}:{action:"TAKE",takeFrom:"remote",caseNumber:-1,requirements:[]}:{action:"KEEP",requirements:["INDEX_MUST_MATCH_HEAD"],caseNumber:-1}}function _h(e,t){switch(e.action){case"TAKE":return e.takeFrom==="head"?t.headHash:e.takeFrom==="remote"?t.remoteHash:e.takeFrom==="base"?t.baseHash:null;case"DELETE":return null;case"KEEP":return t.indexHash;default:return null}}async function Uh(e,t,n){let r=[];if(n.reset)return r;for(let[o,s]of e){if(s.requirements.length===0)continue;let i=t.get(o);if(!i)continue;let a=_h(s,i);for(let c of s.requirements){if(n.allowStagedChanges&&c==="INDEX_MUST_MATCH_HEAD")continue;let f=await Bh(c,i,a);if(f){r.push({path:o,error:f});break}}if(n.stopAtFirstError&&r.length>0)break}return r}async function Bh(e,t,n,r){switch(e){case"INDEX_MUST_NOT_EXIST":return t.indexHash!==null?"WOULD_OVERWRITE":zi(t)?"WOULD_LOSE_UNTRACKED_REMOVED":null;case"INDEX_MUST_MATCH_HEAD":return t.indexHash!==t.headHash?"WOULD_OVERWRITE":null;case"INDEX_MUST_MATCH_RESULT":return t.indexHash!==null&&t.indexHash!==n?"WOULD_OVERWRITE":null;case"WORKTREE_MUST_BE_UPTODATE":{if(!t.existsOnDisk)return null;let o=await t.getWorktreeHash();return o!==t.indexHash?r?.allowContentEscapeHatch&&(n!==null&&o===n||o===null&&n===null)?null:"NOT_UPTODATE_FILE":null}case"NO_UNTRACKED":return zi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_OVERWRITTEN":null;case"NO_UNTRACKED_REMOVED":return zi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_REMOVED":null}}function Wh(e,t,n,r){let o=[],s=[],i=new Set(e.keys()),a=new Map;for(let c of n.entries)i.has(c.path)||o.push(c),c.stage===0&&a.set(c.path,c);for(let[c,f]of e){let l=t.get(c);if(l)switch(f.action){case"KEEP":{let d=a.get(c);d&&(o.push(d),r.reset&&r.updateWorktree&&s.push({path:c,type:"checkout",hash:d.hash,mode:d.mode}));break}case"TAKE":{let d=f.takeFrom==="head"?l.headHash:l.remoteHash,u=f.takeFrom==="head"?l.headMode:l.remoteMode,h=u?Number.parseInt(u,8):33188;o.push({path:c,mode:h,hash:d,stage:0,stat:He()}),r.updateWorktree&&s.push({path:c,type:"checkout",hash:d,mode:h});break}case"DELETE":{r.updateWorktree&&l.existsOnDisk&&s.push({path:c,type:"delete"});break}case"SKIP":break}}return o.sort((c,f)=>ve(c.path,f.path)||c.stage-f.stage),{newEntries:o,worktreeOps:s}}function fo(e,t){let n=t.actionHint??t.operationName,r=[];for(let{error:s,msg:i,fix:a}of qh){let c=e.filter(f=>f.error===s).map(f=>f.path).sort();if(c.length>0){let f=c.map(l=>` ${l}`).join(`
42
42
  `);r.push(`${i(t.operationName)}
43
43
  ${f}
44
44
  ${a(n)}
45
45
  `)}}return{stdout:"",stderr:r.length>0?`${r.join("")}Aborting
46
- `:"",exitCode:t.errorExitCode}}async function fr(e,t,n,r){let o=await Fh(e,t,n),s=new Map(o.map(l=>[l.path,l])),i=new Map;for(let l of o){let d=r.mergeFn(l,r);i.set(l.path,d)}let a=await Uh(i,s,r);if(a.length>0)return{success:!1,newEntries:[],worktreeOps:[],errors:a,errorOutput:fo(a,r)};let{newEntries:c,worktreeOps:f}=Wh(i,s,n,r);return{success:!0,newEntries:c,worktreeOps:f,errors:[],errorOutput:null}}async function je(e,t){if(!e.workTree)return;let n=e.workTree,r=[];for(let o of t){if(!sr(o.path))throw new Error(`refusing to apply worktree operation on unsafe path '${o.path}'`);let s=H(n,o.path);if(!Bs(n,s))throw new Error(`refusing to apply worktree operation outside worktree: '${o.path}'`);o.type==="delete"?await mt(e.fs,s).then(()=>!0).catch(()=>!1)&&(await e.fs.rm(s),r.push(s)):o.type==="checkout"&&o.hash&&await dt(e,{path:o.path,hash:o.hash,mode:o.mode})}for(let o of r)await cr(e.fs,sn(o),n)}async function Bn(e,t,n,r){return fr(e,[{label:"current",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:co,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"checkout",actionHint:"switch branches"})}async function wf(e,t,n,r){return fr(e,[{label:"HEAD",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:co,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"merge"})}async function Cn(e,t,n){return fr(e,[{label:"target",treeHash:t}],n,{mergeFn:ao,updateWorktree:!0,reset:!0,errorExitCode:128,operationName:"reset"})}async function Ar(e,t,n,r){let o=new Set;for(let a of n.entries)a.stage>0&&o.add(a.path);let s={version:n.version,entries:Ge(n)},i=await fr(e,[{label:"ORIG_HEAD",treeHash:t}],s,{mergeFn:ao,updateWorktree:!0,reset:!1,errorExitCode:128,operationName:"merge",stopAtFirstError:!0,strippedConflictPaths:o});if(!i.success){let a=r??"HEAD",c=[];for(let f of i.errors)f.error==="NOT_UPTODATE_FILE"?c.push(`error: Entry '${f.path}' not uptodate. Cannot merge.
46
+ `:"",exitCode:t.errorExitCode}}async function fr(e,t,n,r){let o=await Fh(e,t,n),s=new Map(o.map(l=>[l.path,l])),i=new Map;for(let l of o){let d=r.mergeFn(l,r);i.set(l.path,d)}let a=await Uh(i,s,r);if(a.length>0)return{success:!1,newEntries:[],worktreeOps:[],errors:a,errorOutput:fo(a,r)};let{newEntries:c,worktreeOps:f}=Wh(i,s,n,r);return{success:!0,newEntries:c,worktreeOps:f,errors:[],errorOutput:null}}async function De(e,t){if(!e.workTree)return;let n=e.workTree,r=[];for(let o of t){if(!or(o.path))throw new Error(`refusing to apply worktree operation on unsafe path '${o.path}'`);let s=H(n,o.path);if(!Bs(n,s))throw new Error(`refusing to apply worktree operation outside worktree: '${o.path}'`);o.type==="delete"?await mt(e.fs,s).then(()=>!0).catch(()=>!1)&&(await e.fs.rm(s),r.push(s)):o.type==="checkout"&&o.hash&&await dt(e,{path:o.path,hash:o.hash,mode:o.mode})}for(let o of r)await cr(e.fs,sn(o),n)}async function hn(e,t,n,r){return fr(e,[{label:"current",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:co,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"checkout",actionHint:"switch branches"})}async function wf(e,t,n,r){return fr(e,[{label:"HEAD",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:co,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"merge"})}async function On(e,t,n){return fr(e,[{label:"target",treeHash:t}],n,{mergeFn:ao,updateWorktree:!0,reset:!0,errorExitCode:128,operationName:"reset"})}async function Ar(e,t,n,r){let o=new Set;for(let a of n.entries)a.stage>0&&o.add(a.path);let s={version:n.version,entries:Ge(n)},i=await fr(e,[{label:"ORIG_HEAD",treeHash:t}],s,{mergeFn:ao,updateWorktree:!0,reset:!1,errorExitCode:128,operationName:"merge",stopAtFirstError:!0,strippedConflictPaths:o});if(!i.success){let a=r??"HEAD",c=[];for(let f of i.errors)f.error==="NOT_UPTODATE_FILE"?c.push(`error: Entry '${f.path}' not uptodate. Cannot merge.
47
47
  `):f.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"&&c.push(`error: Untracked working tree file '${f.path}' would be overwritten by merge.
48
- `);return c.length>0&&(i.errorOutput=F(c.join("")+`fatal: Could not reset index file to revision '${a}'.
49
- `,128)),i}if(e.workTree&&o.size>0){let a=await le(e,t),c=new Set(i.newEntries.map(f=>f.path));for(let f of o)!a.has(f)&&!c.has(f)&&i.worktreeOps.push({path:f,type:"delete"})}return i}var qh,Zt=xe(()=>{"use strict";se();Ce();Ws();me();Rn();Ae();Je();qh=[{error:"WOULD_OVERWRITE",msg:e=>`error: Your local changes to the following files would be overwritten by ${e}:`,fix:e=>`Please commit your changes or stash them before you ${e}.`},{error:"NOT_UPTODATE_FILE",msg:e=>`error: Your local changes to the following files would be overwritten by ${e}:`,fix:e=>`Please commit your changes or stash them before you ${e}.`},{error:"WOULD_LOSE_UNTRACKED_OVERWRITTEN",msg:e=>`error: The following untracked working tree files would be overwritten by ${e}:`,fix:e=>`Please move or remove them before you ${e}.`},{error:"WOULD_LOSE_UNTRACKED_REMOVED",msg:e=>`error: The following untracked working tree files would be removed by ${e}:`,fix:e=>`Please move or remove them before you ${e}.`}]});function S(e){return{stdout:"",stderr:`fatal: ${e}
50
- `,exitCode:128}}function F(e,t=1){return{stdout:"",stderr:e,exitCode:t}}async function q(e,t,n){if(n?.objectStore&&n?.refStore&&n?.gitDir)return{fs:e,gitDir:n.gitDir,workTree:n.workTree??t,objectStore:n.objectStore,refStore:n.refStore,...n};let r=await ir(e,t);return r?n?{...r,...n}:r:Kh}function M(e){return typeof e=="object"&&e!==null&&"exitCode"in e}function Ye(e){return e.workTree?null:zh}async function Qe(e){let t=await Z(e);return t||S("your current branch does not have any commits yet")}function Pn(e,t,n=`fatal: Exiting because of an unresolved conflict.
51
- `){return Lt(e)?F(`error: ${t} is not possible because you have unmerged files.
48
+ `);return c.length>0&&(i.errorOutput=_(c.join("")+`fatal: Could not reset index file to revision '${a}'.
49
+ `,128)),i}if(e.workTree&&o.size>0){let a=await le(e,t),c=new Set(i.newEntries.map(f=>f.path));for(let f of o)!a.has(f)&&!c.has(f)&&i.worktreeOps.push({path:f,type:"delete"})}return i}var qh,Nt=xe(()=>{"use strict";se();Ce();Ws();me();Pn();Ae();Je();qh=[{error:"WOULD_OVERWRITE",msg:e=>`error: Your local changes to the following files would be overwritten by ${e}:`,fix:e=>`Please commit your changes or stash them before you ${e}.`},{error:"NOT_UPTODATE_FILE",msg:e=>`error: Your local changes to the following files would be overwritten by ${e}:`,fix:e=>`Please commit your changes or stash them before you ${e}.`},{error:"WOULD_LOSE_UNTRACKED_OVERWRITTEN",msg:e=>`error: The following untracked working tree files would be overwritten by ${e}:`,fix:e=>`Please move or remove them before you ${e}.`},{error:"WOULD_LOSE_UNTRACKED_REMOVED",msg:e=>`error: The following untracked working tree files would be removed by ${e}:`,fix:e=>`Please move or remove them before you ${e}.`}]});function S(e){return{stdout:"",stderr:`fatal: ${e}
50
+ `,exitCode:128}}function _(e,t=1){return{stdout:"",stderr:e,exitCode:t}}async function K(e,t,n){if(n?.objectStore&&n?.refStore&&n?.gitDir)return{fs:e,gitDir:n.gitDir,workTree:n.workTree??t,objectStore:n.objectStore,refStore:n.refStore,...n};let r=await Rn(e,t);return r?n?{...r,...n}:r:Kh}function M(e){return typeof e=="object"&&e!==null&&"exitCode"in e}function Ye(e){return e.workTree?null:zh}async function Qe(e){let t=await Z(e);return t||S("your current branch does not have any commits yet")}function Sn(e,t,n=`fatal: Exiting because of an unresolved conflict.
51
+ `){return Lt(e)?_(`error: ${t} is not possible because you have unmerged files.
52
52
  hint: Fix them up in the work tree, and then use 'git add/rm <file>'
53
53
  hint: as appropriate to mark resolution and make a commit.
54
- `+n,128):null}async function yt(e,t,n){let r=await We(e,t);return r||S(n??`bad revision '${t}'`)}async function Me(e,t,n){let r=await We(e,t);if(!r)return S(n??`bad revision '${t}'`);try{let o=await Te(e,r),s=await j(e,o);return{hash:o,commit:s}}catch{return S(n??`bad revision '${t}'`)}}async function tt(e,t){try{return await Xr(e,t)}catch(n){return S(n.message)}}async function hn(e,t){try{return await Us(e,t)}catch(n){return S(n.message)}}function lr(e,t){let n=new Map;for(let r of e.entries)r.stage===0&&n.set(r.path,r);for(let[r,o]of n){let s=t.get(r);if(!s||s.hash!==o.hash)return!0}for(let[r]of t)if(!n.has(r))return!0;return!1}async function lo(e,t,n){if(!e.workTree)return null;let r=await j(e,t),o=await le(e,r.tree),s=lr(n,o),a=(await bt(e,n)).some(c=>c.status==="modified"||c.status==="deleted");return!s&&!a?null:{hasStaged:s,hasUnstaged:a}}function uo(e,t,n=1){let r=[];return t.hasUnstaged&&r.push(`error: cannot ${e}: You have unstaged changes.`),t.hasStaged&&(t.hasUnstaged?r.push("error: additionally, your index contains uncommitted changes."):r.push(`error: cannot ${e}: Your index contains uncommitted changes.`)),r.push("error: Please commit or stash them."),F(`${r.join(`
54
+ `+n,128):null}async function yt(e,t,n){let r=await We(e,t);return r||S(n??`bad revision '${t}'`)}async function Me(e,t,n){let r=await We(e,t);if(!r)return S(n??`bad revision '${t}'`);try{let o=await Te(e,r),s=await j(e,o);return{hash:o,commit:s}}catch{return S(n??`bad revision '${t}'`)}}async function tt(e,t){try{return await Xr(e,t)}catch(n){return S(n.message)}}async function mn(e,t){try{return await Us(e,t)}catch(n){return S(n.message)}}function lr(e,t){let n=new Map;for(let r of e.entries)r.stage===0&&n.set(r.path,r);for(let[r,o]of n){let s=t.get(r);if(!s||s.hash!==o.hash)return!0}for(let[r]of t)if(!n.has(r))return!0;return!1}async function lo(e,t,n){if(!e.workTree)return null;let r=await j(e,t),o=await le(e,r.tree),s=lr(n,o),a=(await bt(e,n)).some(c=>c.status==="modified"||c.status==="deleted");return!s&&!a?null:{hasStaged:s,hasUnstaged:a}}function uo(e,t,n=1){let r=[];return t.hasUnstaged&&r.push(`error: cannot ${e}: You have unstaged changes.`),t.hasStaged&&(t.hasUnstaged?r.push("error: additionally, your index contains uncommitted changes."):r.push(`error: cannot ${e}: Your index contains uncommitted changes.`)),r.push("error: Please commit or stash them."),_(`${r.join(`
55
55
  `)}
56
56
  `,n)}function ve(e,t){return e<t?-1:e>t?1:0}function ut(e,t){return e.workTree?rt(e.workTree,t):""}function X(e){return e.slice(0,7)}function ue(e){let t=e.indexOf(`
57
57
  `);return t===-1?e:e.slice(0,t)}function Jt(e){return S(`ambiguous argument '${e}': unknown revision or path not in the working tree.
58
58
  Use '--' to separate paths from revisions, like this:
59
- 'git <command> [<revision>...] -- [<file>...]'`)}function Qt(e,t,n,r=!1){return`[${e}${r?" (root-commit)":""} ${X(t)}] ${ue(n)}`}async function Wn(e,t,n){if(!await U(e,n.operationRef))return n.noOpError;let o=await U(e,"ORIG_HEAD")??await Z(e);if(!o)return S(`There is no ${n.operationName} to abort (ORIG_HEAD missing).`);let s=await Z(e),i=await j(e,o),a=await V(e),c=await Ar(e,i.tree,a,n.origHeadAsTargetRev?o:void 0);if(!c.success)return c.errorOutput;if(await Gn(e,o),await ae(e,{version:2,entries:c.newEntries}),await je(e,c.worktreeOps),s&&((await te(e))?.type==="symbolic"||s!==o)){let d=n.origHeadAsTargetRev?o:"HEAD";await re(e,t,"HEAD",s,o,`reset: moving to ${d}`)}return await n.clearState(e),{stdout:"",stderr:"",exitCode:0}}async function Ot(e,t,n,r,o,s){let i=cn({type:"commit",tree:t,parents:n,author:r,committer:o,message:s}),a=await Ie(e,"commit",i);return await Gn(e,a),a}function St(e){let t=e.split(`
59
+ 'git <command> [<revision>...] -- [<file>...]'`)}function Qt(e,t,n,r=!1){return`[${e}${r?" (root-commit)":""} ${X(t)}] ${ue(n)}`}async function qn(e,t,n){if(!await U(e,n.operationRef))return n.noOpError;let o=await U(e,"ORIG_HEAD")??await Z(e);if(!o)return S(`There is no ${n.operationName} to abort (ORIG_HEAD missing).`);let s=await Z(e),i=await j(e,o),a=await V(e),c=await Ar(e,i.tree,a,n.origHeadAsTargetRev?o:void 0);if(!c.success)return c.errorOutput;if(await _n(e,o),await ae(e,{version:2,entries:c.newEntries}),await De(e,c.worktreeOps),s&&((await te(e))?.type==="symbolic"||s!==o)){let d=n.origHeadAsTargetRev?o:"HEAD";await re(e,t,"HEAD",s,o,`reset: moving to ${d}`)}return await n.clearState(e),{stdout:"",stderr:"",exitCode:0}}async function Ot(e,t,n,r,o,s){let i=cn({type:"commit",tree:t,parents:n,author:r,committer:o,message:s}),a=await Ie(e,"commit",i);return await _n(e,a),a}function St(e){let t=e.split(`
60
60
  `).filter(o=>!o.startsWith("#")).map(o=>o.trimEnd());for(;t.length>0&&t[0]==="";)t.shift();for(;t.length>0&&t[t.length-1]==="";)t.pop();if(t.length===0)return"";let n=[],r=!1;for(let o of t)o===""?(r||n.push(o),r=!0):(n.push(o),r=!1);return n.join(`
61
61
  `)+`
62
62
  `}function It(e){return e.endsWith(`
63
63
  `)?e:`${e}
64
64
  `}function Dr(e,t=0,n=!0){let o=n?Math.max(t,...e.map(s=>s.from.length)):0;return e.map(s=>{let i=s.prefix.padEnd(21);if(!s.to)return`${i}${s.from}
65
65
  `;let a=o>0?s.from.padEnd(o):s.from,c=s.suffix?` ${s.suffix}`:"";return`${i}${a} -> ${s.to}${c}
66
- `}).join("")}function us(e,t,n){let r=[];for(let o of e){let s=t(o.remote.name),i=t(o.localRef);if(o.oldHash){if(o.oldHash!==o.remote.hash){let a=n(o.oldHash),c=n(o.remote.hash);r.push({prefix:` ${a}..${c}`,from:s,to:i})}}else{let c=o.remote.name.startsWith("refs/tags/")?" * [new tag]":" * [new branch]";r.push({prefix:c,from:s,to:i})}}return r}var Kh,zh,se=xe(()=>{"use strict";rr();Ce();ie();wn();me();Be();ge();Nn();fn();Ae();Zt();Je();Kh=S("not a git repository (or any of the parent directories): .git"),zh=S("this operation must be run in a work tree")});var Rf={};bu(Rf,{CommitHeap:()=>qn,countAheadBehind:()=>Zi,findOrphanedCommits:()=>Ji,walkCommits:()=>Nt});async function*Nt(e,t,n){if(n?.topoOrder){yield*Qh(e,t,n);return}let r=await kf(e,n?.exclude),o=new Set(r),s=new qn,i=n?.shallowBoundary,a=n?.limit,c=0,f=Array.isArray(t)?t:[t];for(let l of f)o.has(l)||s.push(await Mr(e,l));for(;s.size>0;){let l=s.pop();if(o.has(l.hash))continue;if(o.add(l.hash),yield l,a!==void 0&&++c>=a)return;if(i?.has(l.hash))continue;let d=n?.firstParent?l.commit.parents.slice(0,1):l.commit.parents;for(let u of d)if(!o.has(u))try{s.push(await Mr(e,u))}catch{}}}async function*Qh(e,t,n){let r=await kf(e,n?.exclude),o=new Set(r),s=new qn,i=n?.shallowBoundary,a=Array.isArray(t)?t:[t];for(let h of a)o.has(h)||s.push(await Mr(e,h));let c=[],f=new Map;for(;s.size>0;){let h=s.pop();if(o.has(h.hash)||(o.add(h.hash),f.set(h.hash,c.length),c.push(h),i?.has(h.hash)))continue;let m=n?.firstParent?h.commit.parents.slice(0,1):h.commit.parents;for(let p of m)if(!o.has(p))try{s.push(await Mr(e,p))}catch{}}let l=c.length;if(l===0)return;let d=new Int32Array(l);for(let h of c){let m=n?.firstParent?h.commit.parents.slice(0,1):h.commit.parents;for(let p of m){let g=f.get(p);g!==void 0&&(d[g]=(d[g]??0)+1)}}let u=[];for(let h=l-1;h>=0;h--)d[h]===0&&u.push(h);for(;u.length>0;){let h=u.pop();yield c[h];let m=n?.firstParent?c[h].commit.parents.slice(0,1):c[h].commit.parents;for(let p of m){let g=f.get(p);if(g!==void 0){let w=(d[g]??0)-1;d[g]=w,w===0&&u.push(g)}}}}async function Zi(e,t,n){if(t===n)return{ahead:0,behind:0};let r=new Set;for await(let a of Nt(e,t))r.add(a.hash);let o=new Set;for await(let a of Nt(e,n))o.add(a.hash);let s=0;for(let a of r)o.has(a)||s++;let i=0;for(let a of o)r.has(a)||i++;return{ahead:s,behind:i}}async function Ji(e,t,n){let r=n?.maxCount??25,o=await ye(e,"refs"),s=[];for(let l of o)try{s.push(await Te(e,l.hash))}catch{}n?.targetHash&&s.push(n.targetHash);let i=new Set;if(s.length>0)for await(let l of Nt(e,s))i.add(l.hash);if(i.has(t))return[];let a=[],c=new Set,f=new qn;for(f.push(await Mr(e,t));f.size>0&&a.length<r;){let l=f.pop();if(!c.has(l.hash)&&(c.add(l.hash),!i.has(l.hash))){a.push({hash:l.hash,subject:ue(l.commit.message)});for(let d of l.commit.parents)c.has(d)||f.push(await Mr(e,d))}}return a}async function kf(e,t){if(!t||t.length===0)return new Set;let n=new Set;for await(let r of Nt(e,t))n.add(r.hash);return n}async function Mr(e,t){return{hash:t,commit:await j(e,t)}}var qn,ur=xe(()=>{"use strict";se();ie();ge();qn=class{heap=[];nextEpoch=0;get size(){return this.heap.length}push(t){this.heap.push({entry:t,epoch:this.nextEpoch++}),this.siftUp(this.heap.length-1)}pop(){let{heap:t}=this;if(t.length===0)return;let n=t[0],r=t.pop();return t.length>0&&(t[0]=r,this.siftDown(0)),n.entry}higher(t,n){let r=t.entry.commit.committer.timestamp,o=n.entry.commit.committer.timestamp;return r>o||r===o&&t.epoch<n.epoch}siftUp(t){let{heap:n}=this;for(;t>0;){let r=t-1>>1;if(!this.higher(n[t],n[r]))break;[n[r],n[t]]=[n[t],n[r]],t=r}}siftDown(t){let{heap:n}=this,r=n.length;for(;;){let o=t,s=2*t+1,i=2*t+2;if(s<r&&this.higher(n[s],n[o])&&(o=s),i<r&&this.higher(n[i],n[o])&&(o=i),o===t)break;[n[t],n[o]]=[n[o],n[t]],t=o}}}});var di=class e{_def;constructor(t){this._def=t}name(t){return new e({...this._def,name:t})}describe(t){return new e({...this._def,description:t})}optional(){return new e({...this._def,required:!1})}variadic(){return new e({...this._def,variadic:!0})}default(t){return new e({...this._def,required:!1,default:t})}};function Xa(e){return new di({_kind:"arg",type:e,required:!0})}function Za(){return Xa("string")}function Ja(){return Xa("number")}var Ls=class e{_def;constructor(t={_kind:"flag"}){this._def=t}describe(t){return new e({...this._def,description:t})}alias(t){return new e({...this._def,short:t})}default(t){return new e({...this._def,default:t})}count(){return new e({...this._def,counted:!0})}};var ui=class e{_def;constructor(t){this._def=t}describe(t){return new e({...this._def,description:t})}alias(t){return new e({...this._def,short:t})}env(t){return new e({...this._def,env:t})}required(){return new e({...this._def,required:!0})}default(t){return new e({...this._def,default:t})}repeatable(){return new e({...this._def,repeatable:!0,default:[]})}};function Qa(e){return new ui({_kind:"option",type:e})}function ec(){return Qa("string")}function tc(){return Qa("number")}var Y={string:ec,number:tc};function O(){return new Ls}var K={string:Za,number:Ja};function yu(e){switch(e.type){case"unknown_option":{let t=`Unknown option "${e.name}".`;return e.suggestions.length>0&&(t+=` Did you mean ${e.suggestions.map(n=>`"${n}"`).join(" or ")}?`),t+=`
66
+ `}).join("")}function us(e,t,n){let r=[];for(let o of e){let s=t(o.remote.name),i=t(o.localRef);if(o.oldHash){if(o.oldHash!==o.remote.hash){let a=n(o.oldHash),c=n(o.remote.hash);r.push({prefix:` ${a}..${c}`,from:s,to:i})}}else{let c=o.remote.name.startsWith("refs/tags/")?" * [new tag]":" * [new branch]";r.push({prefix:c,from:s,to:i})}}return r}var Kh,zh,se=xe(()=>{"use strict";sr();Ce();ie();bn();me();Be();ge();kn();fn();Ae();Nt();Je();Kh=S("not a git repository (or any of the parent directories): .git"),zh=S("this operation must be run in a work tree")});var Rf={};bu(Rf,{CommitHeap:()=>Kn,countAheadBehind:()=>Zi,findOrphanedCommits:()=>Ji,walkCommits:()=>Ft});async function*Ft(e,t,n){if(n?.topoOrder){yield*Qh(e,t,n);return}let r=await kf(e,n?.exclude),o=new Set(r),s=new Kn,i=n?.shallowBoundary,a=n?.limit,c=0,f=Array.isArray(t)?t:[t];for(let l of f)o.has(l)||s.push(await Mr(e,l));for(;s.size>0;){let l=s.pop();if(o.has(l.hash))continue;if(o.add(l.hash),yield l,a!==void 0&&++c>=a)return;if(i?.has(l.hash))continue;let d=n?.firstParent?l.commit.parents.slice(0,1):l.commit.parents;for(let u of d)if(!o.has(u))try{s.push(await Mr(e,u))}catch{}}}async function*Qh(e,t,n){let r=await kf(e,n?.exclude),o=new Set(r),s=new Kn,i=n?.shallowBoundary,a=Array.isArray(t)?t:[t];for(let h of a)o.has(h)||s.push(await Mr(e,h));let c=[],f=new Map;for(;s.size>0;){let h=s.pop();if(o.has(h.hash)||(o.add(h.hash),f.set(h.hash,c.length),c.push(h),i?.has(h.hash)))continue;let m=n?.firstParent?h.commit.parents.slice(0,1):h.commit.parents;for(let p of m)if(!o.has(p))try{s.push(await Mr(e,p))}catch{}}let l=c.length;if(l===0)return;let d=new Int32Array(l);for(let h of c){let m=n?.firstParent?h.commit.parents.slice(0,1):h.commit.parents;for(let p of m){let g=f.get(p);g!==void 0&&(d[g]=(d[g]??0)+1)}}let u=[];for(let h=l-1;h>=0;h--)d[h]===0&&u.push(h);for(;u.length>0;){let h=u.pop();yield c[h];let m=n?.firstParent?c[h].commit.parents.slice(0,1):c[h].commit.parents;for(let p of m){let g=f.get(p);if(g!==void 0){let w=(d[g]??0)-1;d[g]=w,w===0&&u.push(g)}}}}async function Zi(e,t,n){if(t===n)return{ahead:0,behind:0};let r=new Set;for await(let a of Ft(e,t))r.add(a.hash);let o=new Set;for await(let a of Ft(e,n))o.add(a.hash);let s=0;for(let a of r)o.has(a)||s++;let i=0;for(let a of o)r.has(a)||i++;return{ahead:s,behind:i}}async function Ji(e,t,n){let r=n?.maxCount??25,o=await ye(e,"refs"),s=[];for(let l of o)try{s.push(await Te(e,l.hash))}catch{}n?.targetHash&&s.push(n.targetHash);let i=new Set;if(s.length>0)for await(let l of Ft(e,s))i.add(l.hash);if(i.has(t))return[];let a=[],c=new Set,f=new Kn;for(f.push(await Mr(e,t));f.size>0&&a.length<r;){let l=f.pop();if(!c.has(l.hash)&&(c.add(l.hash),!i.has(l.hash))){a.push({hash:l.hash,subject:ue(l.commit.message)});for(let d of l.commit.parents)c.has(d)||f.push(await Mr(e,d))}}return a}async function kf(e,t){if(!t||t.length===0)return new Set;let n=new Set;for await(let r of Ft(e,t))n.add(r.hash);return n}async function Mr(e,t){return{hash:t,commit:await j(e,t)}}var Kn,ur=xe(()=>{"use strict";se();ie();ge();Kn=class{heap=[];nextEpoch=0;get size(){return this.heap.length}push(t){this.heap.push({entry:t,epoch:this.nextEpoch++}),this.siftUp(this.heap.length-1)}pop(){let{heap:t}=this;if(t.length===0)return;let n=t[0],r=t.pop();return t.length>0&&(t[0]=r,this.siftDown(0)),n.entry}higher(t,n){let r=t.entry.commit.committer.timestamp,o=n.entry.commit.committer.timestamp;return r>o||r===o&&t.epoch<n.epoch}siftUp(t){let{heap:n}=this;for(;t>0;){let r=t-1>>1;if(!this.higher(n[t],n[r]))break;[n[r],n[t]]=[n[t],n[r]],t=r}}siftDown(t){let{heap:n}=this,r=n.length;for(;;){let o=t,s=2*t+1,i=2*t+2;if(s<r&&this.higher(n[s],n[o])&&(o=s),i<r&&this.higher(n[i],n[o])&&(o=i),o===t)break;[n[t],n[o]]=[n[o],n[t]],t=o}}}});var di=class e{_def;constructor(t){this._def=t}name(t){return new e({...this._def,name:t})}describe(t){return new e({...this._def,description:t})}optional(){return new e({...this._def,required:!1})}variadic(){return new e({...this._def,variadic:!0})}default(t){return new e({...this._def,required:!1,default:t})}};function Xa(e){return new di({_kind:"arg",type:e,required:!0})}function Za(){return Xa("string")}function Ja(){return Xa("number")}var Ls=class e{_def;constructor(t={_kind:"flag"}){this._def=t}describe(t){return new e({...this._def,description:t})}alias(t){return new e({...this._def,short:t})}default(t){return new e({...this._def,default:t})}count(){return new e({...this._def,counted:!0})}};var ui=class e{_def;constructor(t){this._def=t}describe(t){return new e({...this._def,description:t})}alias(t){return new e({...this._def,short:t})}env(t){return new e({...this._def,env:t})}required(){return new e({...this._def,required:!0})}default(t){return new e({...this._def,default:t})}repeatable(){return new e({...this._def,repeatable:!0,default:[]})}};function Qa(e){return new ui({_kind:"option",type:e})}function ec(){return Qa("string")}function tc(){return Qa("number")}var Y={string:ec,number:tc};function O(){return new Ls}var q={string:Za,number:Ja};function yu(e){switch(e.type){case"unknown_option":{let t=`Unknown option "${e.name}".`;return e.suggestions.length>0&&(t+=` Did you mean ${e.suggestions.map(n=>`"${n}"`).join(" or ")}?`),t+=`
67
67
  Not all git options are supported. Run 'git <command> --help' for available options.`,t}case"invalid_type":return`Invalid value for "${e.name}": expected ${e.expected}, got "${e.received}".`;case"missing_required":return e.kind==="option"?`Missing required option "--${e.name}".`:`Missing required argument <${e.name}>.`;case"unexpected_positional":return e.maxPositionals===0?`Unexpected argument "${e.value}". This command takes no positional arguments.`:`Unexpected argument "${e.value}". Expected at most ${e.maxPositionals} positional argument${e.maxPositionals===1?"":"s"}.`;case"missing_value":return`Option "--${e.name}" requires a value.`;case"unknown_command":{let t=`git: '${e.path.replace(/^git /,"")}' is not a git command.`;return e.suggestions.length>0&&(t+=` Did you mean ${e.suggestions.map(n=>`"${n}"`).join(" or ")}?`),t+=`
68
68
  Run 'git help' for available commands.`,t}}}function hi(e){return e.map(yu).join(`
69
69
  `)+`
70
- `}function Eu(e,t){let n=e.length,r=t.length,o=new Array((n+1)*(r+1));for(let s=0;s<=n;s++)o[s*(r+1)]=s;for(let s=0;s<=r;s++)o[s]=s;for(let s=1;s<=n;s++)for(let i=1;i<=r;i++){let a=e[s-1]===t[i-1]?0:1;o[s*(r+1)+i]=Math.min(o[(s-1)*(r+1)+i]+1,o[s*(r+1)+(i-1)]+1,o[(s-1)*(r+1)+(i-1)]+a)}return o[n*(r+1)+r]}function Gs(e,t,n){let r=n??Math.min(Math.max(1,Math.floor(e.length/2)),3);return t.map(s=>({candidate:s,distance:Eu(e,s)})).filter(s=>s.distance<=r&&s.distance>0).sort((s,i)=>s.distance-i.distance).slice(0,2).map(s=>s.candidate)}function nc(e,t,n,r){let o=[],s=new Map,i=new Map;for(let[u,h]of Object.entries(e)){let m=zr(u);s.set(m,{key:u,def:h}),h.short&&i.set(h.short,{key:u,def:h})}let a={},c=[],f=[],l=0;for(;l<n.length;){let u=n[l];if(u==="--"){for(l++;l<n.length;)f.push(n[l]),l++;break}if(u.startsWith("--")){let h=u.indexOf("="),m,p;h!==-1?(m=u.slice(2,h),p=u.slice(h+1)):m=u.slice(2);let g=s.get(m);if(!g){if(m.startsWith("no-")){let E=s.get(m.slice(3));if(E&&E.def._kind==="flag"){a[E.key]=E.def.counted?0:!1,l++;continue}}let k=[...s.keys()];o.push({type:"unknown_option",name:`--${m}`,suggestions:Gs(m,k).map(E=>`--${E}`)}),l++;continue}if(g.def._kind==="flag"){g.def.counted?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0,l++;continue}let w=p??n[++l];if(w===void 0){o.push({type:"missing_value",name:g.key}),l++;continue}let b=Kr(w,g.def.type,g.key,o);b!==void 0&&(g.def.repeatable?(Array.isArray(a[g.key])||(a[g.key]=[]),a[g.key].push(b)):a[g.key]=b),l++;continue}if(u.startsWith("-")&&u.length>1){let h=u.slice(1);for(let m=0;m<h.length;m++){let p=h[m],g=i.get(p);if(!g){let E=[];s.has(p)&&E.push(`--${p}`),o.push({type:"unknown_option",name:`-${p}`,suggestions:E});continue}if(g.def._kind==="flag"){g.def.counted?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0;continue}let w=h.slice(m+1),b=w.length>0?w:n[++l];if(b===void 0){o.push({type:"missing_value",name:g.key});break}let k=Kr(b,g.def.type,g.key,o);k!==void 0&&(g.def.repeatable?(Array.isArray(a[g.key])||(a[g.key]=[]),a[g.key].push(k)):a[g.key]=k);break}l++;continue}c.push(u),l++}let d=0;for(let u=0;u<t.length;u++){let h=t[u],m=h.name??`arg${u}`;if(h.variadic){let p=c.slice(d);p.length>0?a[m]=p.map(g=>Kr(g,h.type,m,o)):h.required?o.push({type:"missing_required",name:m,kind:"arg"}):h.default!==void 0?a[m]=h.default:a[m]=[],d=c.length}else{let p=c[d];p!==void 0?(a[m]=Kr(p,h.type,m,o),d++):h.required?o.push({type:"missing_required",name:m,kind:"arg"}):h.default!==void 0&&(a[m]=h.default)}}if(d<c.length)for(let u=d;u<c.length;u++)o.push({type:"unexpected_positional",value:c[u],maxPositionals:t.length});for(let[u,h]of Object.entries(e))if(a[u]===void 0){if(h._kind==="flag")a[u]=h.default??(h.counted?0:!1);else if(h._kind==="option"){let m=h;if(m.env&&r?.[m.env]!==void 0){let p=Kr(r[m.env],m.type,u,o);p!==void 0&&(a[u]=p)}a[u]===void 0&&(m.required&&m.default===void 0?o.push({type:"missing_required",name:u,kind:"option"}):m.default!==void 0&&(a[u]=m.default))}}return o.length>0?{ok:!1,errors:o}:{ok:!0,args:a,passthrough:f}}function Kr(e,t,n,r){switch(t){case"string":return e;case"number":{let o=Number(e);if(Number.isNaN(o)){r.push({type:"invalid_type",name:n,expected:"number",received:e});return}return o}case"boolean":{if(e==="true"||e==="1")return!0;if(e==="false"||e==="0")return!1;r.push({type:"invalid_type",name:n,expected:"boolean",received:e});return}default:return e}}function zr(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function Cr(e){let t=[],n=e.children.size>0;e.description?t.push(`${e.fullPath} - ${e.description}`):t.push(e.fullPath),t.push("");let r=[e.fullPath];n&&r.push("<command>"),Object.keys(e.options).length>0&&r.push("[options]");let o=e.args;for(let i of o){let a=i.name??"arg",c=i.variadic?`${a}...`:a;r.push(i.required?`<${c}>`:`[${c}]`)}if(t.push("Usage:"),t.push(` ${r.join(" ")}`),t.push(""),n){t.push("Commands:");let i=[];for(let[c,f]of e.children)i.push([c,f.description||""]);let a=Math.max(...i.map(([c])=>c.length));for(let[c,f]of i)if(f){let l=" ".repeat(a-c.length+2);t.push(` ${c}${l}${f}`)}else t.push(` ${c}`);t.push("")}if(o.length>0){t.push("Arguments:");let i=[];for(let c of o){let f=c.name??"arg",l=c.variadic?`${f}...`:f,d=[];c.description&&d.push(c.description),c.required&&d.push("(required)"),c.default!==void 0&&d.push(`(default: ${JSON.stringify(c.default)})`),i.push([l,d.join(" ")])}let a=Math.max(...i.map(([c])=>c.length));for(let[c,f]of i)if(f){let l=" ".repeat(a-c.length+2);t.push(` ${c}${l}${f}`)}else t.push(` ${c}`);t.push("")}let s=ku(e.options);if(s.length>0&&(t.push("Options:"),t.push(...s),t.push("")),e.examples.length>0){t.push("Examples:");for(let i of e.examples)t.push(` ${i}`);t.push("")}return t.join(`
71
- `)}function ku(e,t){let n=Object.entries(e);if(n.length===0)return[];let r=[];for(let[i,a]of n){let c=zr(i);if(a._kind==="flag"){let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c}`);let d=[];f.description&&d.push(f.description),f.counted&&d.push("(counted)"),f.default!==void 0&&d.push(`(default: ${f.default})`),r.push([l.join(" "),d.join(" ")])}else{let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c} <${f.type}>`);let d=[];f.description&&d.push(f.description),f.repeatable&&d.push("(repeatable)"),f.required&&d.push("(required)"),f.default!==void 0&&!f.repeatable&&d.push(`(default: ${JSON.stringify(f.default)})`),f.env&&d.push(`[env: ${f.env}]`),r.push([l.join(" "),d.join(" ")])}}let o=Math.max(...r.map(([i])=>i.length)),s=[];t&&s.push(t);for(let[i,a]of r)if(a){let c=" ".repeat(o-i.length+2);s.push(` ${i}${c}${a}`)}else s.push(` ${i}`);return s}function rc(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r._def;return t}function sc(e){return e?e.map(t=>t._def):[]}var Ns=class e{name;description;options;args;examples;handler;transformArgs;children=new Map;parent;constructor(t,n,r,o,s,i,a){this.name=t,this.description=n,this.options=r,this.args=o,this.examples=s,this.handler=i,this.transformArgs=a}command(t,n){let r=new e(t,n.description,rc(n.options),sc(n.args),n.examples??[],n.handler,n.transformArgs);return r.parent=this,this.children.set(t,r),r}get fullPath(){let t=[],n=this;for(;n;)t.unshift(n.name),n=n.parent;return t.join(" ")}toCommand(){return{name:this.name,execute:this.execute.bind(this)}}get allOptions(){return this.options}toTokens(t){let n=[],r=this.allOptions,o=t;for(let[s,i]of Object.entries(r)){let a=o[s],c=zr(s);if(i._kind==="flag")if(i.counted&&typeof a=="number"&&a>0)for(let f=0;f<a;f++)n.push(`--${c}`);else a===!0?n.push(`--${c}`):a===!1&&i.default===!0&&n.push(`--no-${c}`);else i._kind==="option"&&a!==void 0&&n.push(`--${c}`,String(a))}for(let s of this.args){let i=s.name??"arg",a=o[i];if(a!==void 0)if(s.variadic&&Array.isArray(a))for(let c of a)n.push(String(c));else n.push(String(a))}return n}async invoke(t,n){if(!this.handler)return{stdout:"",stderr:`Command "${this.fullPath}" has no handler`,exitCode:1};let r={...t},o=this.allOptions;for(let[s,i]of Object.entries(o))if(r[s]===void 0){if(i._kind==="flag")r[s]=i.default??(i.counted?0:!1);else if(i._kind==="option"){if(i.default!==void 0)r[s]=i.default;else if(i.required)return{stdout:"",stderr:`Missing required option "${s}"`,exitCode:1}}}for(let s of this.args){let i=s.name??"arg";if(r[i]===void 0){if(s.default!==void 0)r[i]=s.default;else if(s.required)return{stdout:"",stderr:`Missing required arg "${i}"`,exitCode:1}}}try{return await this.handler(r,n,{passthrough:[]})}catch(s){return{stdout:"",stderr:s instanceof Error?s.message:String(s),exitCode:1}}}async execute(t,n){let r=n?.env?Object.fromEntries(n.env):{},o=t[0];if(o&&!o.startsWith("-")){let s=this.children.get(o);if(s)return s.execute(t.slice(1),n)}if(!this.handler&&o&&!o.startsWith("-")){let s=Gs(o,[...this.children.keys()]);return{stdout:"",stderr:hi([{type:"unknown_command",path:`${this.fullPath} ${o}`,suggestions:s}]),exitCode:1}}if(Ru(t))return{stdout:Cr(this),stderr:"",exitCode:0};if(this.handler){let s=this.transformArgs?this.transformArgs([...t]):[...t],i=nc(this.allOptions,this.args,s,r);if(!i.ok)return{stdout:"",stderr:hi(i.errors),exitCode:1};try{return await this.handler(i.args,n,{passthrough:i.passthrough})}catch(a){return{stdout:"",stderr:a instanceof Error?a.message:String(a),exitCode:1}}}return{stdout:Cr(this),stderr:"",exitCode:0}}};function mi(e,t){return new Ns(e,t.description,rc(t.options),sc(t.args),t.examples??[],t.handler,t.transformArgs)}function Ru(e){return e.some(t=>t==="--help")}se();io();Ce();me();ls();var mo=1,Vi=2,ho=4,Yi=8,hs=16,yf=new Set(["*","?","[","\\"]),Yh={glob:mo,literal:Vi,icase:ho,top:Yi,exclude:hs};function dr(e){for(let t=0;t<e.length;t++)if(yf.has(e[t]))return!0;return!1}function Xh(e){for(let t=0;t<e.length;t++)if(yf.has(e[t]))return t;return e.length}function bf(e){let t=e.split("/"),n=[];for(let r of t)if(!(r===""||r===".")){if(r===".."){n.length>0&&n[n.length-1]!==".."&&n.pop();continue}n.push(r)}return n.join("/")}function _e(e,t){let n=0,r=e;if(r.startsWith(":(")){let c=r.indexOf(")");if(c!==-1){let f=r.slice(2,c);r=r.slice(c+1);for(let l of f.split(",")){let d=Yh[l.trim()];d!==void 0&&(n|=d)}}}else r.startsWith(":/")?(n|=Yi,r=r.slice(2)):(r.startsWith(":!")||r.startsWith(":^"))&&(n|=hs,r=r.slice(2));n&Vi&&n&mo&&(n&=~mo);let o;n&Yi||t===""?o=bf(r):o=bf(`${t}/${r}`);let s=!!(n&Vi),i=s?!1:dr(o),a=s?o.length:Xh(o);return{original:e,pattern:o,magic:n,hasWildcard:i,nowildcardLen:a}}function po(e,t){let{pattern:n,hasWildcard:r,magic:o,nowildcardLen:s}=e;if(n==="")return!0;if(!r){let a=!!(o&ho),c=a?n.toLowerCase():n,f=a?t.toLowerCase():t;return!!(c===f||f.startsWith(c)&&f[c.length]==="/"||c.endsWith("/")&&f.startsWith(c))}if(s>0){let a=n.slice(0,s),c=t.slice(0,s);if(o&ho){if(a.toLowerCase()!==c.toLowerCase())return!1}else if(a!==c)return!1}let i=0;return o&mo&&(i|=2),o&ho&&(i|=1),ln(n,t,i)===0}function Ee(e,t){let n=!1,r=!1;for(let o of e)o.magic&hs?po(o,t)&&(r=!0):po(o,t)&&(n=!0);return n&&!r}Je();function Ef(e,t){e.command("add",{description:"Add file contents to the index",args:[K.string().name("paths").describe("Pathspec of files to add").optional().variadic()],options:{all:O().alias("A").describe("Add changes from all tracked and untracked files"),force:O().alias("f").describe("Allow adding otherwise ignored files"),update:O().alias("u").describe("Update tracked files"),"dry-run":O().alias("n").describe("Don't actually add the file(s)")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Ye(s);if(i)return i;let a=s.workTree,c={skipIgnore:n.force,updateOnly:n.update,actions:n["dry-run"]?[]:void 0},f=n.paths;if((n.all||n.update)&&f.length===0){let p=await V(s);return p=await Xi(s,p,a,"",c),n["dry-run"]||await ae(s,p),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}if(f.length===0)return{stdout:"",stderr:`Nothing specified, nothing added.
72
- Maybe you wanted to say 'git add .'?`,exitCode:0};let l=await V(s),d=[],u=[];for(let p of f)dr(p)?u.push(p):d.push(p);let h=[];for(let p of d){let g=Mt(r.cwd,p),w=rt(a,g);if((w==="."||w==="")&&(w=""),w.startsWith(".."))return S(`'${p}' is outside repository at '${a}'`);if(await r.fs.exists(g)){if(!n.force&&w!==""){let E=l.entries.some(x=>x.path===w||x.path.startsWith(`${w}/`)),R=await Jh(s,a,w,E);if(R){E&&((await r.fs.stat(g)).isDirectory?l=await Xi(s,l,g,w,c):l=(await un(s,l,w)).index),h.push(R);continue}}if((await r.fs.stat(g)).isDirectory)l=await Xi(s,l,g,w,c);else{let E=l.entries.find(x=>x.path===w&&x.stage===0)?.hash,R=await un(s,l,w);l=R.index,c.actions&&R.hash!==E&&c.actions.push(`add '${w}'
70
+ `}function Eu(e,t){let n=e.length,r=t.length,o=new Array((n+1)*(r+1));for(let s=0;s<=n;s++)o[s*(r+1)]=s;for(let s=0;s<=r;s++)o[s]=s;for(let s=1;s<=n;s++)for(let i=1;i<=r;i++){let a=e[s-1]===t[i-1]?0:1;o[s*(r+1)+i]=Math.min(o[(s-1)*(r+1)+i]+1,o[s*(r+1)+(i-1)]+1,o[(s-1)*(r+1)+(i-1)]+a)}return o[n*(r+1)+r]}function Gs(e,t,n){let r=n??Math.min(Math.max(1,Math.floor(e.length/2)),3);return t.map(s=>({candidate:s,distance:Eu(e,s)})).filter(s=>s.distance<=r&&s.distance>0).sort((s,i)=>s.distance-i.distance).slice(0,2).map(s=>s.candidate)}function nc(e,t,n,r){let o=[],s=new Map,i=new Map;for(let[u,h]of Object.entries(e)){let m=zr(u);s.set(m,{key:u,def:h}),h.short&&i.set(h.short,{key:u,def:h})}let a={},c=[],f=[],l=0;for(;l<n.length;){let u=n[l];if(u==="--"){for(l++;l<n.length;)f.push(n[l]),l++;break}if(u.startsWith("--")){let h=u.indexOf("="),m,p;h!==-1?(m=u.slice(2,h),p=u.slice(h+1)):m=u.slice(2);let g=s.get(m);if(!g){if(m.startsWith("no-")){let E=s.get(m.slice(3));if(E&&E.def._kind==="flag"){a[E.key]=E.def.counted?0:!1,l++;continue}}let R=[...s.keys()];o.push({type:"unknown_option",name:`--${m}`,suggestions:Gs(m,R).map(E=>`--${E}`)}),l++;continue}if(g.def._kind==="flag"){g.def.counted?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0,l++;continue}let w=p??n[++l];if(w===void 0){o.push({type:"missing_value",name:g.key}),l++;continue}let b=Kr(w,g.def.type,g.key,o);b!==void 0&&(g.def.repeatable?(Array.isArray(a[g.key])||(a[g.key]=[]),a[g.key].push(b)):a[g.key]=b),l++;continue}if(u.startsWith("-")&&u.length>1){let h=u.slice(1);for(let m=0;m<h.length;m++){let p=h[m],g=i.get(p);if(!g){let E=[];s.has(p)&&E.push(`--${p}`),o.push({type:"unknown_option",name:`-${p}`,suggestions:E});continue}if(g.def._kind==="flag"){g.def.counted?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0;continue}let w=h.slice(m+1),b=w.length>0?w:n[++l];if(b===void 0){o.push({type:"missing_value",name:g.key});break}let R=Kr(b,g.def.type,g.key,o);R!==void 0&&(g.def.repeatable?(Array.isArray(a[g.key])||(a[g.key]=[]),a[g.key].push(R)):a[g.key]=R);break}l++;continue}c.push(u),l++}let d=0;for(let u=0;u<t.length;u++){let h=t[u],m=h.name??`arg${u}`;if(h.variadic){let p=c.slice(d);p.length>0?a[m]=p.map(g=>Kr(g,h.type,m,o)):h.required?o.push({type:"missing_required",name:m,kind:"arg"}):h.default!==void 0?a[m]=h.default:a[m]=[],d=c.length}else{let p=c[d];p!==void 0?(a[m]=Kr(p,h.type,m,o),d++):h.required?o.push({type:"missing_required",name:m,kind:"arg"}):h.default!==void 0&&(a[m]=h.default)}}if(d<c.length)for(let u=d;u<c.length;u++)o.push({type:"unexpected_positional",value:c[u],maxPositionals:t.length});for(let[u,h]of Object.entries(e))if(a[u]===void 0){if(h._kind==="flag")a[u]=h.default??(h.counted?0:!1);else if(h._kind==="option"){let m=h;if(m.env&&r?.[m.env]!==void 0){let p=Kr(r[m.env],m.type,u,o);p!==void 0&&(a[u]=p)}a[u]===void 0&&(m.required&&m.default===void 0?o.push({type:"missing_required",name:u,kind:"option"}):m.default!==void 0&&(a[u]=m.default))}}return o.length>0?{ok:!1,errors:o}:{ok:!0,args:a,passthrough:f}}function Kr(e,t,n,r){switch(t){case"string":return e;case"number":{let o=Number(e);if(Number.isNaN(o)){r.push({type:"invalid_type",name:n,expected:"number",received:e});return}return o}case"boolean":{if(e==="true"||e==="1")return!0;if(e==="false"||e==="0")return!1;r.push({type:"invalid_type",name:n,expected:"boolean",received:e});return}default:return e}}function zr(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function Cr(e){let t=[],n=e.children.size>0;e.description?t.push(`${e.fullPath} - ${e.description}`):t.push(e.fullPath),t.push("");let r=[e.fullPath];n&&r.push("<command>"),Object.keys(e.options).length>0&&r.push("[options]");let o=e.args;for(let i of o){let a=i.name??"arg",c=i.variadic?`${a}...`:a;r.push(i.required?`<${c}>`:`[${c}]`)}if(t.push("Usage:"),t.push(` ${r.join(" ")}`),t.push(""),n){t.push("Commands:");let i=[];for(let[c,f]of e.children)i.push([c,f.description||""]);let a=Math.max(...i.map(([c])=>c.length));for(let[c,f]of i)if(f){let l=" ".repeat(a-c.length+2);t.push(` ${c}${l}${f}`)}else t.push(` ${c}`);t.push("")}if(o.length>0){t.push("Arguments:");let i=[];for(let c of o){let f=c.name??"arg",l=c.variadic?`${f}...`:f,d=[];c.description&&d.push(c.description),c.required&&d.push("(required)"),c.default!==void 0&&d.push(`(default: ${JSON.stringify(c.default)})`),i.push([l,d.join(" ")])}let a=Math.max(...i.map(([c])=>c.length));for(let[c,f]of i)if(f){let l=" ".repeat(a-c.length+2);t.push(` ${c}${l}${f}`)}else t.push(` ${c}`);t.push("")}let s=ku(e.options);if(s.length>0&&(t.push("Options:"),t.push(...s),t.push("")),e.examples.length>0){t.push("Examples:");for(let i of e.examples)t.push(` ${i}`);t.push("")}return t.join(`
71
+ `)}function ku(e,t){let n=Object.entries(e);if(n.length===0)return[];let r=[];for(let[i,a]of n){let c=zr(i);if(a._kind==="flag"){let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c}`);let d=[];f.description&&d.push(f.description),f.counted&&d.push("(counted)"),f.default!==void 0&&d.push(`(default: ${f.default})`),r.push([l.join(" "),d.join(" ")])}else{let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c} <${f.type}>`);let d=[];f.description&&d.push(f.description),f.repeatable&&d.push("(repeatable)"),f.required&&d.push("(required)"),f.default!==void 0&&!f.repeatable&&d.push(`(default: ${JSON.stringify(f.default)})`),f.env&&d.push(`[env: ${f.env}]`),r.push([l.join(" "),d.join(" ")])}}let o=Math.max(...r.map(([i])=>i.length)),s=[];t&&s.push(t);for(let[i,a]of r)if(a){let c=" ".repeat(o-i.length+2);s.push(` ${i}${c}${a}`)}else s.push(` ${i}`);return s}function rc(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r._def;return t}function sc(e){return e?e.map(t=>t._def):[]}var Ns=class e{name;description;options;args;examples;handler;transformArgs;children=new Map;parent;constructor(t,n,r,o,s,i,a){this.name=t,this.description=n,this.options=r,this.args=o,this.examples=s,this.handler=i,this.transformArgs=a}command(t,n){let r=new e(t,n.description,rc(n.options),sc(n.args),n.examples??[],n.handler,n.transformArgs);return r.parent=this,this.children.set(t,r),r}get fullPath(){let t=[],n=this;for(;n;)t.unshift(n.name),n=n.parent;return t.join(" ")}toCommand(){return{name:this.name,execute:this.execute.bind(this)}}get allOptions(){return this.options}toTokens(t){let n=[],r=this.allOptions,o=t;for(let[s,i]of Object.entries(r)){let a=o[s],c=zr(s);if(i._kind==="flag")if(i.counted&&typeof a=="number"&&a>0)for(let f=0;f<a;f++)n.push(`--${c}`);else a===!0?n.push(`--${c}`):a===!1&&i.default===!0&&n.push(`--no-${c}`);else i._kind==="option"&&a!==void 0&&n.push(`--${c}`,String(a))}for(let s of this.args){let i=s.name??"arg",a=o[i];if(a!==void 0)if(s.variadic&&Array.isArray(a))for(let c of a)n.push(String(c));else n.push(String(a))}return n}async invoke(t,n){if(!this.handler)return{stdout:"",stderr:`Command "${this.fullPath}" has no handler`,exitCode:1};let r={...t},o=this.allOptions;for(let[s,i]of Object.entries(o))if(r[s]===void 0){if(i._kind==="flag")r[s]=i.default??(i.counted?0:!1);else if(i._kind==="option"){if(i.default!==void 0)r[s]=i.default;else if(i.required)return{stdout:"",stderr:`Missing required option "${s}"`,exitCode:1}}}for(let s of this.args){let i=s.name??"arg";if(r[i]===void 0){if(s.default!==void 0)r[i]=s.default;else if(s.required)return{stdout:"",stderr:`Missing required arg "${i}"`,exitCode:1}}}try{return await this.handler(r,n,{passthrough:[]})}catch(s){return{stdout:"",stderr:s instanceof Error?s.message:String(s),exitCode:1}}}async execute(t,n){let r=n?.env?Object.fromEntries(n.env):{},o=t[0];if(o&&!o.startsWith("-")){let s=this.children.get(o);if(s)return s.execute(t.slice(1),n)}if(!this.handler&&o&&!o.startsWith("-")){let s=Gs(o,[...this.children.keys()]);return{stdout:"",stderr:hi([{type:"unknown_command",path:`${this.fullPath} ${o}`,suggestions:s}]),exitCode:1}}if(Ru(t))return{stdout:Cr(this),stderr:"",exitCode:0};if(this.handler){let s=this.transformArgs?this.transformArgs([...t]):[...t],i=nc(this.allOptions,this.args,s,r);if(!i.ok)return{stdout:"",stderr:hi(i.errors),exitCode:1};try{return await this.handler(i.args,n,{passthrough:i.passthrough})}catch(a){return{stdout:"",stderr:a instanceof Error?a.message:String(a),exitCode:1}}}return{stdout:Cr(this),stderr:"",exitCode:0}}};function mi(e,t){return new Ns(e,t.description,rc(t.options),sc(t.args),t.examples??[],t.handler,t.transformArgs)}function Ru(e){return e.some(t=>t==="--help")}se();io();Ce();me();ls();var mo=1,Vi=2,ho=4,Yi=8,hs=16,yf=new Set(["*","?","[","\\"]),Yh={glob:mo,literal:Vi,icase:ho,top:Yi,exclude:hs};function dr(e){for(let t=0;t<e.length;t++)if(yf.has(e[t]))return!0;return!1}function Xh(e){for(let t=0;t<e.length;t++)if(yf.has(e[t]))return t;return e.length}function bf(e){let t=e.split("/"),n=[];for(let r of t)if(!(r===""||r===".")){if(r===".."){n.length>0&&n[n.length-1]!==".."&&n.pop();continue}n.push(r)}return n.join("/")}function _e(e,t){let n=0,r=e;if(r.startsWith(":(")){let c=r.indexOf(")");if(c!==-1){let f=r.slice(2,c);r=r.slice(c+1);for(let l of f.split(",")){let d=Yh[l.trim()];d!==void 0&&(n|=d)}}}else r.startsWith(":/")?(n|=Yi,r=r.slice(2)):(r.startsWith(":!")||r.startsWith(":^"))&&(n|=hs,r=r.slice(2));n&Vi&&n&mo&&(n&=~mo);let o;n&Yi||t===""?o=bf(r):o=bf(`${t}/${r}`);let s=!!(n&Vi),i=s?!1:dr(o),a=s?o.length:Xh(o);return{original:e,pattern:o,magic:n,hasWildcard:i,nowildcardLen:a}}function po(e,t){let{pattern:n,hasWildcard:r,magic:o,nowildcardLen:s}=e;if(n==="")return!0;if(!r){let a=!!(o&ho),c=a?n.toLowerCase():n,f=a?t.toLowerCase():t;return!!(c===f||f.startsWith(c)&&f[c.length]==="/"||c.endsWith("/")&&f.startsWith(c))}if(s>0){let a=n.slice(0,s),c=t.slice(0,s);if(o&ho){if(a.toLowerCase()!==c.toLowerCase())return!1}else if(a!==c)return!1}let i=0;return o&mo&&(i|=2),o&ho&&(i|=1),ln(n,t,i)===0}function Ee(e,t){let n=!1,r=!1;for(let o of e)o.magic&hs?po(o,t)&&(r=!0):po(o,t)&&(n=!0);return n&&!r}Je();function Ef(e,t){e.command("add",{description:"Add file contents to the index",args:[q.string().name("paths").describe("Pathspec of files to add").optional().variadic()],options:{all:O().alias("A").describe("Add changes from all tracked and untracked files"),force:O().alias("f").describe("Allow adding otherwise ignored files"),update:O().alias("u").describe("Update tracked files"),"dry-run":O().alias("n").describe("Don't actually add the file(s)")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Ye(s);if(i)return i;let a=s.workTree,c={skipIgnore:n.force,updateOnly:n.update,actions:n["dry-run"]?[]:void 0},f=n.paths;if((n.all||n.update)&&f.length===0){let p=await V(s);return p=await Xi(s,p,a,"",c),n["dry-run"]||await ae(s,p),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}if(f.length===0)return{stdout:"",stderr:`Nothing specified, nothing added.
72
+ Maybe you wanted to say 'git add .'?`,exitCode:0};let l=await V(s),d=[],u=[];for(let p of f)dr(p)?u.push(p):d.push(p);let h=[];for(let p of d){let g=Mt(r.cwd,p),w=rt(a,g);if((w==="."||w==="")&&(w=""),w.startsWith(".."))return S(`'${p}' is outside repository at '${a}'`);if(await r.fs.exists(g)){if(!n.force&&w!==""){let E=l.entries.some(x=>x.path===w||x.path.startsWith(`${w}/`)),k=await Jh(s,a,w,E);if(k){E&&((await r.fs.stat(g)).isDirectory?l=await Xi(s,l,g,w,c):l=(await un(s,l,w)).index),h.push(k);continue}}if((await r.fs.stat(g)).isDirectory)l=await Xi(s,l,g,w,c);else{let E=l.entries.find(x=>x.path===w&&x.stage===0)?.hash,k=await un(s,l,w);l=k.index,c.actions&&k.hash!==E&&c.actions.push(`add '${w}'
73
73
  `)}}else if(l.entries.some(E=>E.path===w||E.path.startsWith(`${w}/`))){if(c.actions)for(let E of l.entries)(E.path===w||E.path.startsWith(`${w}/`))&&c.actions.push(`remove '${E.path}'
74
- `);l={...l,entries:l.entries.filter(E=>E.path!==w&&!E.path.startsWith(`${w}/`))}}else return S(`pathspec '${p}' did not match any files`)}if(h.length>0)return n["dry-run"]||await ae(s,l),F(`The following paths are ignored by one of your .gitignore files:
74
+ `);l={...l,entries:l.entries.filter(E=>E.path!==w&&!E.path.startsWith(`${w}/`))}}else return S(`pathspec '${p}' did not match any files`)}if(h.length>0)return n["dry-run"]||await ae(s,l),_(`The following paths are ignored by one of your .gitignore files:
75
75
  ${h.join(`
76
76
  `)}
77
77
  hint: Use -f if you really want to add them.
@@ -82,9 +82,9 @@ hint: Disable this message with "git config set advice.addIgnoredFile false"
82
82
  `),n=(await un(e,n,h)).index}}for(let d=0;d<a.length;d++){let u=a[d];if(!c[d]&&!(u.magic&hs))return{index:n,error:S(`pathspec '${u.original}' did not match any files`)}}return{index:n}}async function Xi(e,t,n,r,o){let s=r===""?"":`${r}/`,i=e.workTree,a=[],c=new Set;for(let f of t.entries){if(!(s===""||f.path.startsWith(s))||c.has(f.path))continue;c.add(f.path);let l=H(i,f.path);if(await e.fs.exists(l)){let d=f.stage>0,u=await un(e,t,f.path);t=u.index,o?.actions&&(d||u.hash!==f.hash)&&o.actions.push(`add '${f.path}'
83
83
  `)}else o?.actions&&o.actions.push(`remove '${f.path}'
84
84
  `),a.push(f.path)}for(let f of a)t=lt(t,f);if(!o?.updateOnly){let f=new Set(t.entries.map(d=>d.path)),l=await ot(e,n,r===""?"":r,{skipIgnore:o?.skipIgnore});for(let d of l){if(f.has(d))continue;o?.actions&&o.actions.push(`add '${d}'
85
- `),t=(await un(e,t,d)).index}}return t}async function Jh(e,t,n,r){let o=await Hr(e);try{let i=await e.fs.readFile(H(t,".gitignore"));o=ar(o,i,"",H(t,".gitignore"))}catch{}let s=n.split("/");for(let i=0;i<s.length-1;i++){let a=s.slice(0,i+1).join("/"),c=H(t,a);if(dn(o,a,!0)==="ignored")return a;try{let f=await e.fs.readFile(H(c,".gitignore"));o=ar(o,f,a,H(c,".gitignore"))}catch{}}if(!r){let i=await e.fs.stat(H(t,n)).then(a=>a.isDirectory).catch(()=>!1);if(dn(o,n,i)==="ignored")return n}return null}se();se();ur();ie();me();ge();async function $e(e,t){let n=H(e.gitDir,t);return await e.fs.exists(n)?e.fs.readFile(n):null}async function Le(e,t,n){await e.fs.writeFile(H(e.gitDir,t),n)}async function be(e,t){let n=H(e.gitDir,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function ms(e){await he(e,"MERGE_HEAD"),await he(e,"ORIG_HEAD"),await be(e,"MERGE_MSG"),await be(e,"MERGE_MODE"),await be(e,"SQUASH_MSG")}async function en(e){await he(e,"CHERRY_PICK_HEAD"),await he(e,"ORIG_HEAD"),await be(e,"MERGE_MSG"),await be(e,"SQUASH_MSG")}async function Ft(e){await he(e,"REVERT_HEAD"),await he(e,"ORIG_HEAD"),await be(e,"MERGE_MSG"),await be(e,"SQUASH_MSG")}async function hr(e){for(let t of["CHERRY_PICK_HEAD","REVERT_HEAD","MERGE_HEAD","ORIG_HEAD"])await he(e,t);await be(e,"MERGE_MSG"),await be(e,"MERGE_MODE"),await be(e,"SQUASH_MSG")}var Qi="DETACH_POINT";async function xf(e,t){await e.fs.writeFile(H(e.gitDir,Qi),t)}async function Et(e){let t=H(e.gitDir,Qi);await e.fs.exists(t)&&await e.fs.rm(t)}async function ps(e){let t=H(e.gitDir,Qi);return await e.fs.exists(t)?(await e.fs.readFile(t))?.trim()??null:null}me();ge();async function Tt(e){let t=await $e(e,"BISECT_START");return t!=null&&t.trim().length>0}async function gs(e){let t=await $e(e,"BISECT_TERMS");if(!t)return{termBad:"bad",termGood:"good"};let n=t.trim().split(`
85
+ `),t=(await un(e,t,d)).index}}return t}async function Jh(e,t,n,r){let o=await Hr(e);try{let i=await e.fs.readFile(H(t,".gitignore"));o=ar(o,i,"",H(t,".gitignore"))}catch{}let s=n.split("/");for(let i=0;i<s.length-1;i++){let a=s.slice(0,i+1).join("/"),c=H(t,a);if(dn(o,a,!0)==="ignored")return a;try{let f=await e.fs.readFile(H(c,".gitignore"));o=ar(o,f,a,H(c,".gitignore"))}catch{}}if(!r){let i=await e.fs.stat(H(t,n)).then(a=>a.isDirectory).catch(()=>!1);if(dn(o,n,i)==="ignored")return n}return null}se();se();ur();ie();me();ge();async function $e(e,t){let n=H(e.gitDir,t);return await e.fs.exists(n)?e.fs.readFile(n):null}async function Le(e,t,n){await e.fs.writeFile(H(e.gitDir,t),n)}async function be(e,t){let n=H(e.gitDir,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function ms(e){await he(e,"MERGE_HEAD"),await he(e,"ORIG_HEAD"),await be(e,"MERGE_MSG"),await be(e,"MERGE_MODE"),await be(e,"SQUASH_MSG")}async function en(e){await he(e,"CHERRY_PICK_HEAD"),await he(e,"ORIG_HEAD"),await be(e,"MERGE_MSG"),await be(e,"SQUASH_MSG")}async function _t(e){await he(e,"REVERT_HEAD"),await he(e,"ORIG_HEAD"),await be(e,"MERGE_MSG"),await be(e,"SQUASH_MSG")}async function hr(e){for(let t of["CHERRY_PICK_HEAD","REVERT_HEAD","MERGE_HEAD","ORIG_HEAD"])await he(e,t);await be(e,"MERGE_MSG"),await be(e,"MERGE_MODE"),await be(e,"SQUASH_MSG")}var Qi="DETACH_POINT";async function xf(e,t){await e.fs.writeFile(H(e.gitDir,Qi),t)}async function Et(e){let t=H(e.gitDir,Qi);await e.fs.exists(t)&&await e.fs.rm(t)}async function ps(e){let t=H(e.gitDir,Qi);return await e.fs.exists(t)?(await e.fs.readFile(t))?.trim()??null:null}me();ge();async function Tt(e){let t=await $e(e,"BISECT_START");return t!=null&&t.trim().length>0}async function gs(e){let t=await $e(e,"BISECT_TERMS");if(!t)return{termBad:"bad",termGood:"good"};let n=t.trim().split(`
86
86
  `);return{termBad:n[0]??"bad",termGood:n[1]??"good"}}async function go(e){let t=(await $e(e,"BISECT_START"))?.trim()??"",{termBad:n,termGood:r}=await gs(e),o=await U(e,`refs/bisect/${n}`),s=[],i=[],a=await ye(e,"refs/bisect");for(let l of a)l.name.startsWith(`refs/bisect/${r}-`)?s.push(l.hash):l.name.startsWith("refs/bisect/skip-")&&i.push(l.hash);let c=await $e(e,"BISECT_HEAD")!=null||await e.fs.exists(H(e.gitDir,"BISECT_HEAD")),f=await e.fs.exists(H(e.gitDir,"BISECT_FIRST_PARENT"));return{startRef:t,badHash:o,goodHashes:s,skipHashes:i,termBad:n,termGood:r,noCheckout:c,firstParent:f}}async function vt(e,t){let n=await $e(e,"BISECT_LOG")??"";await Le(e,"BISECT_LOG",n+t+`
87
- `)}async function wo(e){let t=await ye(e,"refs/bisect");for(let r of t)await he(e,r.name);await be(e,"BISECT_EXPECTED_REV"),await be(e,"BISECT_ANCESTORS_OK"),await be(e,"BISECT_LOG"),await be(e,"BISECT_TERMS"),await be(e,"BISECT_NAMES"),await be(e,"BISECT_FIRST_PARENT"),await be(e,"BISECT_HEAD"),await be(e,"BISECT_START");let n=H(e.gitDir,"refs","bisect");if(await e.fs.exists(n))try{await e.fs.rm(n,{recursive:!0})}catch{}}async function Cf(e,t,n,r,o){let s=[],i=new Map;for await(let g of Nt(e,t,{exclude:n})){let w=o?g.commit.parents.slice(0,1):g.commit.parents;s.push({hash:g.hash,subject:ue(g.commit.message)}),i.set(g.hash,w)}let a=s.length;if(a===0)return null;if(a===1)return{hash:s[0].hash,subject:s[0].subject,remaining:0,steps:0,found:!0,onlySkippedLeft:!1};let c=new Set(s.map(g=>g.hash)),f=new Map;for(let g of s){let w=new Set,b=[g.hash],k=0;for(;k<b.length;){let E=b[k++];if(w.has(E)||!c.has(E))continue;w.add(E);let R=i.get(E);if(R)for(let x of R)!w.has(x)&&c.has(x)&&b.push(x)}f.set(g.hash,w.size)}let l=s[0].hash,d=a;for(let g of s){if(r.has(g.hash))continue;let w=f.get(g.hash)??0,b=Math.abs(2*w-a);b<d&&(d=b,l=g.hash)}let u=!1;if(d===a){u=!0;for(let g of s){let w=f.get(g.hash)??0,b=Math.abs(2*w-a);b<d&&(d=b,l=g.hash)}}let h=s.find(g=>g.hash===l),m=em(a),p=tm(a);return{hash:h.hash,subject:h.subject,remaining:m,steps:p,found:!1,onlySkippedLeft:u}}function em(e){return Math.floor((e-1)/2)}function tm(e){return e<=1?0:Math.ceil(Math.log2(e))}function Pf(e){let t=e.badHash!=null,n=e.goodHashes.length;return!t&&n===0?`status: waiting for both ${e.termGood} and ${e.termBad} commits
87
+ `)}async function wo(e){let t=await ye(e,"refs/bisect");for(let r of t)await he(e,r.name);await be(e,"BISECT_EXPECTED_REV"),await be(e,"BISECT_ANCESTORS_OK"),await be(e,"BISECT_LOG"),await be(e,"BISECT_TERMS"),await be(e,"BISECT_NAMES"),await be(e,"BISECT_FIRST_PARENT"),await be(e,"BISECT_HEAD"),await be(e,"BISECT_START");let n=H(e.gitDir,"refs","bisect");if(await e.fs.exists(n))try{await e.fs.rm(n,{recursive:!0})}catch{}}async function Cf(e,t,n,r,o){let s=[],i=new Map;for await(let g of Ft(e,t,{exclude:n})){let w=o?g.commit.parents.slice(0,1):g.commit.parents;s.push({hash:g.hash,subject:ue(g.commit.message)}),i.set(g.hash,w)}let a=s.length;if(a===0)return null;if(a===1)return{hash:s[0].hash,subject:s[0].subject,remaining:0,steps:0,found:!0,onlySkippedLeft:!1};let c=new Set(s.map(g=>g.hash)),f=new Map;for(let g of s){let w=new Set,b=[g.hash],R=0;for(;R<b.length;){let E=b[R++];if(w.has(E)||!c.has(E))continue;w.add(E);let k=i.get(E);if(k)for(let x of k)!w.has(x)&&c.has(x)&&b.push(x)}f.set(g.hash,w.size)}let l=s[0].hash,d=a;for(let g of s){if(r.has(g.hash))continue;let w=f.get(g.hash)??0,b=Math.abs(2*w-a);b<d&&(d=b,l=g.hash)}let u=!1;if(d===a){u=!0;for(let g of s){let w=f.get(g.hash)??0,b=Math.abs(2*w-a);b<d&&(d=b,l=g.hash)}}let h=s.find(g=>g.hash===l),m=em(a),p=tm(a);return{hash:h.hash,subject:h.subject,remaining:m,steps:p,found:!1,onlySkippedLeft:u}}function em(e){return Math.floor((e-1)/2)}function tm(e){return e<=1?0:Math.ceil(Math.log2(e))}function Pf(e){let t=e.badHash!=null,n=e.goodHashes.length;return!t&&n===0?`status: waiting for both ${e.termGood} and ${e.termBad} commits
88
88
  `:t?n===0?`status: waiting for ${e.termGood} commit(s), ${e.termBad} commit known
89
89
  `:"":`status: waiting for ${e.termBad} commit, ${n} ${e.termGood} commit(s) known
90
90
  `}function $f(e){return`Bisecting: ${e.remaining} revision${e.remaining===1?"":"s"} left to test after this (roughly ${e.steps} step${e.steps===1?"":"s"})
@@ -96,7 +96,7 @@ hint: Disable this message with "git config set advice.addIgnoredFile false"
96
96
  `,i+=`
97
97
  `,i+=` ${r}
98
98
  `,i+=`
99
- `,i}se();ur();Ue();Ce();ie();me();Be();ge();se();ur();Ue();Ce();ie();me();ie();wn();me();function jr(e){return H(e.gitDir,"rebase-merge")}async function _t(e){return e.fs.exists(jr(e))}async function kt(e){let t=jr(e);if(!await e.fs.exists(t))return null;let n=await e.fs.readFile(H(t,"head-name")),r=await e.fs.readFile(H(t,"orig-head")),o=await e.fs.readFile(H(t,"onto")),s=Number.parseInt(await e.fs.readFile(H(t,"msgnum")),10),i=Number.parseInt(await e.fs.readFile(H(t,"end")),10),a=await e.fs.exists(H(t,"git-rebase-todo"))?H(t,"git-rebase-todo"):H(t,"todo"),c=Sf(await e.fs.readFile(a)),f=await e.fs.exists(H(t,"done"))?await e.fs.readFile(H(t,"done")):"",l=Sf(f),d=await e.fs.exists(H(t,"reflog-action"))?(await e.fs.readFile(H(t,"reflog-action"))).trim():"rebase";return{headName:n.trim(),origHead:r.trim(),onto:o.trim(),todo:c,done:l,msgnum:s,end:i,reflogAction:d}}async function ea(e,t){let n=jr(e);await e.fs.mkdir(n,{recursive:!0}),await e.fs.writeFile(H(n,"head-name"),`${t.headName}
99
+ `,i}se();ur();Ue();Ce();ie();me();Be();ge();se();ur();Ue();Ce();ie();me();ie();bn();me();function jr(e){return H(e.gitDir,"rebase-merge")}async function Ut(e){return e.fs.exists(jr(e))}async function kt(e){let t=jr(e);if(!await e.fs.exists(t))return null;let n=await e.fs.readFile(H(t,"head-name")),r=await e.fs.readFile(H(t,"orig-head")),o=await e.fs.readFile(H(t,"onto")),s=Number.parseInt(await e.fs.readFile(H(t,"msgnum")),10),i=Number.parseInt(await e.fs.readFile(H(t,"end")),10),a=await e.fs.exists(H(t,"git-rebase-todo"))?H(t,"git-rebase-todo"):H(t,"todo"),c=Sf(await e.fs.readFile(a)),f=await e.fs.exists(H(t,"done"))?await e.fs.readFile(H(t,"done")):"",l=Sf(f),d=await e.fs.exists(H(t,"reflog-action"))?(await e.fs.readFile(H(t,"reflog-action"))).trim():"rebase";return{headName:n.trim(),origHead:r.trim(),onto:o.trim(),todo:c,done:l,msgnum:s,end:i,reflogAction:d}}async function ea(e,t){let n=jr(e);await e.fs.mkdir(n,{recursive:!0}),await e.fs.writeFile(H(n,"head-name"),`${t.headName}
100
100
  `),await e.fs.writeFile(H(n,"orig-head"),`${t.origHead}
101
101
  `),await e.fs.writeFile(H(n,"onto"),`${t.onto}
102
102
  `),await e.fs.writeFile(H(n,"msgnum"),`${String(t.msgnum)}
@@ -110,10 +110,10 @@ GIT_AUTHOR_DATE='${o}'
110
110
  `)}function Sf(e){let t=[];for(let n of e.split(`
111
111
  `)){let r=n.trim();if(!r||r.startsWith("#"))continue;let o=r.match(/^pick\s+([0-9a-f]+)\s+(.*)/);if(o?.[1]&&o[2]){let s=o[2].startsWith("# ")?o[2].slice(2):o[2];t.push({hash:o[1],subject:s})}}return t}function yo(e){return e.length===0?"":`${e.map(t=>`pick ${t.hash} # ${t.subject}`).join(`
112
112
  `)}
113
- `}async function Hf(e,t,n){let r=new Map,[o,s]=await Promise.all([If(e,t,r),If(e,n,r)]),i=new Set;for(let c of s)o.has(c)||i.add(c);let a=new Set;for(let c of o)s.has(c)||a.add(c);return{right:await Tf(e,r,n,i),left:await Tf(e,r,t,a)}}async function If(e,t,n){let r=new Set,o=[t],s=0;for(;s<o.length;){let i=o[s++];if(r.has(i))continue;r.add(i);let a=await bo(e,i,n);for(let c of a.commit.parents)r.has(c)||o.push(c)}return r}async function Tf(e,t,n,r){if(r.size===0)return[];let o=new Map;for(let f of r)o.set(f,0);for(let f of r){let l=await bo(e,f,t);for(let d of l.commit.parents)r.has(d)&&o.set(d,(o.get(d)??0)+1)}let s=[];for(let f of r)o.get(f)===0&&s.push(await bo(e,f,t));s.sort((f,l)=>f.commit.committer.timestamp-l.commit.committer.timestamp);let i=s.map(f=>f.hash),a=[],c=new Set;for(;i.length>0;){let f=i.pop();if(!f||c.has(f))continue;c.add(f);let l=await bo(e,f,t);l.commit.parents.length<=1&&a.push(l);for(let d of l.commit.parents)if(r.has(d)&&!c.has(d)){let u=(o.get(d)??0)-1;o.set(d,u),u<=0&&i.push(d)}}return a.reverse(),a}async function bo(e,t,n){let r=n.get(t);if(r)return r;let o=await we(e,t);if(o.type!=="commit")throw new Error(`Expected commit object, got ${o.type}`);let s={hash:t,commit:an(o.content)};return n.set(t,s),s}ge();ie();function Lr(e){let t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function nm(e,t){if(e.length===0)return;if(e.length===1)return e.shift();let n=Lr(t),r=0;for(let o=0;o<e.length;o++){let s=e[o];if(s&&Lr(s.path)===n){r=o;break}}return e.splice(r,1)[0]}var rm=50;async function it(e,t,n=rm){let r=new Map,o=[],s=[],i=[];for(let l of t)if(l.status==="deleted"&&l.oldHash){let d=r.get(l.oldHash)??[];d.push(l),r.set(l.oldHash,d),o.push(l)}else l.status==="added"&&l.newHash?s.push(l):i.push(l);let a=[],c=[];for(let l of s){let d=l.newHash;if(!d){c.push(l);continue}let u=r.get(d);if(u&&u.length>0){let h=nm(u,l.path);h&&a.push({oldPath:h.path,newPath:l.path,oldHash:h.oldHash??d,newHash:d,similarity:100,oldMode:h.oldMode,newMode:l.newMode})}else c.push(l)}let f=[...r.values()].flat();if(f.length>0&&c.length>0){let l=await sm(e,f,c,n);if(l.length>0){let d=new Set(l.map(h=>h.oldPath)),u=new Set(l.map(h=>h.newPath));f=f.filter(h=>!d.has(h.path)),c=c.filter(h=>!u.has(h.path)),a.push(...l)}}if(f.length>0&&c.length>0){let l=await am(e,f,c,n);if(l.length>0){let d=new Set(l.map(h=>h.oldPath)),u=new Set(l.map(h=>h.newPath));f=f.filter(h=>!d.has(h.path)),c=c.filter(h=>!u.has(h.path)),a.push(...l)}}return{remaining:[...i,...f,...c],renames:a}}async function sm(e,t,n,r){let o=new Map;for(let a=0;a<t.length;a++){let c=t[a];if(!c)continue;let f=Lr(c.path);o.has(f)?o.set(f,-1):o.set(f,a)}let s=new Map;for(let a=0;a<n.length;a++){let c=n[a];if(!c)continue;let f=Lr(c.path);s.has(f)?s.set(f,-1):s.set(f,a)}let i=[];for(let[a,c]of o){if(c===-1)continue;let f=s.get(a);if(f===void 0||f===-1)continue;let l=t[c],d=n[f];if(!l?.oldHash||!d?.newHash||l.oldHash===d.newHash)continue;let u=await $t(e,l.oldHash),h=await $t(e,d.newHash),m=im(u,h);m<r||i.push({oldPath:l.path,newPath:d.path,oldHash:l.oldHash,newHash:d.newHash,similarity:m,oldMode:l.oldMode,newMode:d.newMode})}return i}var Af=107927;function ko(e){let t=new Map,n=0,r=0,o=0;for(let i=0;i<e.length;i++){let a=e[i],c=r;if(r=(r<<7^o>>>25)>>>0,o=(o<<7^c>>>25)>>>0,r=r+a>>>0,n++,n<64&&a!==10)continue;let f=(r+Math.imul(o,97))%Af;t.set(f,(t.get(f)??0)+n),n=0,r=0,o=0}if(n>0){let i=(r+Math.imul(o,97))%Af;t.set(i,(t.get(i)??0)+n)}let s=[];for(let[i,a]of t)s.push({hash:i,count:a});return s.sort((i,a)=>i.hash-a.hash),s}function om(e,t){let n=0,r=0,o=0,s=0;for(;o<e.length;){let i=e[o];if(!i)break;for(;s<t.length;){let f=t[s];if(!f||f.hash>=i.hash)break;r+=f.count,s++}let a=i.count,c=0;if(s<t.length){let f=t[s];f&&f.hash===i.hash&&(c=f.count,s++)}a<c?(r+=c-a,n+=a):n+=c,o++}for(;s<t.length;){let i=t[s];i&&(r+=i.count),s++}return{srcCopied:n,literalAdded:r}}function im(e,t){return e.length===0&&t.length===0?100:e.length===0||t.length===0?0:Df(e.length,ko(e),t.length,ko(t))}function Df(e,t,n,r){let o=Math.max(e,n),s=Math.min(e,n);if(s<o-s)return 0;let{srcCopied:i}=om(t,r);return Math.floor(i*100/o)}async function am(e,t,n,r){let o=[];for(let l of t)if(l.oldHash){let d=await $t(e,l.oldHash);o.push({size:d.length,chunks:ko(d)})}else o.push(null);let s=[];for(let l of n)if(l.newHash){let d=await $t(e,l.newHash);s.push({size:d.length,chunks:ko(d)})}else s.push(null);let i=[];for(let l=0;l<t.length;l++){let d=t[l],u=o[l];if(!(!d||!u))for(let h=0;h<n.length;h++){let m=n[h],p=s[h];if(!m||!p)continue;let g=Df(u.size,u.chunks,p.size,p.chunks);if(g>=r){let w=Lr(d.path)===Lr(m.path)?1:0;i.push({similarity:g,nameScore:w,delIdx:l,addIdx:h})}}}i.sort((l,d)=>d.similarity-l.similarity||d.nameScore-l.nameScore);let a=new Set,c=new Set,f=[];for(let{similarity:l,delIdx:d,addIdx:u}of i){if(a.has(d)||c.has(u))continue;a.add(d),c.add(u);let h=t[d],m=n[u];!h||!m||f.push({oldPath:h.path,newPath:m.path,oldHash:h.oldHash??"",newHash:m.newHash??"",similarity:l,oldMode:h.oldMode,newMode:m.newMode})}return f}function mn(e,t){let n=e.length,r=t.length,o=0,s=0;for(;s<n&&s<r&&e[s]===t[s];)e[s]==="/"&&(o=s+1),s++;let i=o>0?1:0,a=0,c=n,f=r;for(;o-i<=c&&o-i<=f&&c>=0&&f>=0;){if(c===n&&f===r){c--,f--;continue}if(e[c]!==t[f])break;e[c]==="/"&&(a=n-c),c--,f--}let l=Math.max(0,n-o-a),d=Math.max(0,r-o-a),u=e.slice(0,o),h=e.slice(n-a),m=e.slice(o,o+l),p=t.slice(o,o+d);return o+a>0?`${u}{${m} => ${p}}${h}`:`${e} => ${t}`}Ae();Je();async function at(e,t){let n=await te(e),r=await Z(e),o,s=!1;n&&n.type==="symbolic"?o=Pe(n.target):(s=!0,o="HEAD detached");let i=t?.index??await V(e),a=ra(i),c=t?.compareHash!==void 0?t.compareHash:r,f=t?.compareHash!==void 0?!t.compareHash:!r,l=await na(e,c,i,a),d=await bt(e,i),u=[],h=[];for(let g of d)g.status==="untracked"?h.push(g.path):u.push({path:g.path,status:g.status});u.sort((g,w)=>ve(g.path,w.path));let m=new Set(i.entries.map(g=>g.path)),p=sa(h,m);return cm(e,r,s,o,i,l,u,a,p,{fromCommit:t?.fromCommit,noWarn:t?.noWarn,isInitial:f})}function Mf(e,t){if(t.done.length>0){let n=t.done.length;e.push(`Last command${n===1?"":"s"} done (${n} command${n===1?"":"s"} done):`);for(let r of t.done.slice(-2))e.push(` pick ${X(r.hash)} # ${r.subject}`);n>2&&e.push(" (see more in file .git/rebase-merge/done)")}if(t.todo.length>0){let n=t.todo.length;e.push(`Next command${n===1?"":"s"} to do (${n} remaining command${n===1?"":"s"}):`);for(let r of t.todo.slice(0,2))e.push(` pick ${X(r.hash)} # ${r.subject}`);e.push(' (use "git rebase --edit-todo" to view and edit)')}else e.push("No commands remaining.")}async function cm(e,t,n,r,o,s,i,a,c,f){let l=[],d=!1,u=await U(e,"CHERRY_PICK_HEAD"),h=await U(e,"REVERT_HEAD"),m=await U(e,"MERGE_HEAD"),p=!u&&!m,w=await _t(e)?await kt(e):null;if(n&&w){let C=X(w.onto);l.push(`interactive rebase in progress; onto ${C}`)}else if(n){let C=await ps(e);if(C){let P=t===C?"at":"from";l.push(`HEAD detached ${P} ${X(C)}`)}else l.push("Not currently on any branch.")}else l.push(`On branch ${r}`);let b=f?.isInitial??!t;if(!n&&!w&&!b){let C=await pe(e),P=await Ut(e,C,r);if(P){let D=Kn(P,{abbreviated:f?.fromCommit});for(let A of D.trimEnd().split(`
114
- `))l.push(A);d=!0}}if(d&&(w||u||h||m)&&l.push(""),w&&m)Mf(l,w),l.push(""),a.length>0?(l.push("You have unmerged paths."),l.push(' (fix conflicts and run "git commit")'),l.push(' (use "git merge --abort" to abort the merge)')):(l.push("All conflicts fixed but you are still merging."),l.push(' (use "git commit" to conclude merge)')),d=!0;else if(w){let C=Lt(o),P=await e.fs.exists(H(e.gitDir,"MERGE_MSG"));Mf(l,w);let A=w.headName==="detached HEAD"?null:Pe(w.headName),$=X(w.onto),v=A?` branch '${A}' on '${$}'`:"";if(C)l.push(`You are currently rebasing${v}.`),l.push(' (fix conflicts and then run "git rebase --continue")'),l.push(' (use "git rebase --skip" to skip this patch)'),l.push(' (use "git rebase --abort" to check out the original branch)');else if(P)l.push(`You are currently rebasing${v}.`),l.push(' (all conflicts fixed: run "git rebase --continue")');else{let _=v?`You are currently editing a commit while rebasing${v}.`:"You are currently editing a commit during a rebase.";l.push(_),l.push(' (use "git commit --amend" to amend the current commit)'),l.push(' (use "git rebase --continue" once you are satisfied with your changes)')}d=!0}else u?(l.push(`You are currently cherry-picking commit ${X(u)}.`),a.length>0?l.push(' (fix conflicts and run "git cherry-pick --continue")'):l.push(' (all conflicts fixed: run "git cherry-pick --continue")'),l.push(' (use "git cherry-pick --skip" to skip this patch)'),l.push(' (use "git cherry-pick --abort" to cancel the cherry-pick operation)'),d=!0):h?(l.push(`You are currently reverting commit ${X(h)}.`),a.length>0?l.push(' (fix conflicts and run "git revert --continue")'):l.push(' (all conflicts fixed: run "git revert --continue")'),l.push(' (use "git revert --skip" to skip this patch)'),l.push(' (use "git revert --abort" to cancel the revert operation)'),d=!0):m&&(a.length>0?(l.push("You have unmerged paths."),l.push(' (fix conflicts and run "git commit")'),l.push(' (use "git merge --abort" to abort the merge)')):(l.push("All conflicts fixed but you are still merging."),l.push(' (use "git commit" to conclude merge)')),d=!0);if(await Tt(e)){let P=(await $e(e,"BISECT_START"))?.trim()??"";l.push(`You are currently bisecting, started from branch '${P}'.`),l.push(' (use "git bisect reset" to get back to the original branch)'),d=!0}b&&(l.push(""),l.push(f?.fromCommit?"Initial commit":"No commits yet"),d=!0);let k=null;p&&(k=t?' (use "git restore --staged <file>..." to unstage)':' (use "git rm --cached <file>..." to unstage)');let R=i.some(C=>C.status==="deleted")?' (use "git add/rm <file>..." to update what will be committed)':' (use "git add <file>..." to update what will be committed)',x=!1;if(s.length>0){d&&l.push(""),l.push("Changes to be committed:"),k&&l.push(k);for(let C of s)l.push(` ${jf(C.status,C.path,C.displayPath)}`);l.push(""),x=!0}if(a.length>0){!x&&d&&l.push(""),l.push("Unmerged paths:"),p&&(t?l.push(' (use "git restore --staged <file>..." to unstage)'):l.push(' (use "git rm --cached <file>..." to unstage)')),a.some(P=>P.status==="deleted by us"||P.status==="deleted by them"||P.status==="both deleted")?l.push(' (use "git add/rm <file>..." as appropriate to mark resolution)'):l.push(' (use "git add <file>..." to mark resolution)');for(let P of a)l.push(` ${fm(P.status,P.path)}`);l.push(""),x=!0}if(i.length>0){!x&&d&&l.push(""),l.push("Changes not staged for commit:"),l.push(R),l.push(' (use "git restore <file>..." to discard changes in working directory)');for(let C of i)l.push(` ${jf(C.status,C.path)}`);l.push(""),x=!0}if(c.length>0){!x&&d&&l.push(""),l.push("Untracked files:"),l.push(' (use "git add <file>..." to include in what will be committed)');for(let C of c)l.push(` ${C}`);l.push(""),x=!0}let y=s.length>0||!!m&&a.length===0;return!x&&d&&(f?.noWarn||y)&&l.push(""),!y&&!f?.noWarn&&(!x&&d&&i.length===0&&a.length===0&&c.length===0&&l.push(""),i.length>0||a.length>0?l.push('no changes added to commit (use "git add" and/or "git commit -a")'):c.length>0?l.push('nothing added to commit but untracked files present (use "git add" to track)'):b?l.push('nothing to commit (create/copy files and use "git add" to track)'):l.push("nothing to commit, working tree clean")),`${l.join(`
113
+ `}async function Hf(e,t,n){let r=new Map,[o,s]=await Promise.all([If(e,t,r),If(e,n,r)]),i=new Set;for(let c of s)o.has(c)||i.add(c);let a=new Set;for(let c of o)s.has(c)||a.add(c);return{right:await Tf(e,r,n,i),left:await Tf(e,r,t,a)}}async function If(e,t,n){let r=new Set,o=[t],s=0;for(;s<o.length;){let i=o[s++];if(r.has(i))continue;r.add(i);let a=await bo(e,i,n);for(let c of a.commit.parents)r.has(c)||o.push(c)}return r}async function Tf(e,t,n,r){if(r.size===0)return[];let o=new Map;for(let f of r)o.set(f,0);for(let f of r){let l=await bo(e,f,t);for(let d of l.commit.parents)r.has(d)&&o.set(d,(o.get(d)??0)+1)}let s=[];for(let f of r)o.get(f)===0&&s.push(await bo(e,f,t));s.sort((f,l)=>f.commit.committer.timestamp-l.commit.committer.timestamp);let i=s.map(f=>f.hash),a=[],c=new Set;for(;i.length>0;){let f=i.pop();if(!f||c.has(f))continue;c.add(f);let l=await bo(e,f,t);l.commit.parents.length<=1&&a.push(l);for(let d of l.commit.parents)if(r.has(d)&&!c.has(d)){let u=(o.get(d)??0)-1;o.set(d,u),u<=0&&i.push(d)}}return a.reverse(),a}async function bo(e,t,n){let r=n.get(t);if(r)return r;let o=await we(e,t);if(o.type!=="commit")throw new Error(`Expected commit object, got ${o.type}`);let s={hash:t,commit:an(o.content)};return n.set(t,s),s}ge();ie();function Lr(e){let t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function nm(e,t){if(e.length===0)return;if(e.length===1)return e.shift();let n=Lr(t),r=0;for(let o=0;o<e.length;o++){let s=e[o];if(s&&Lr(s.path)===n){r=o;break}}return e.splice(r,1)[0]}var rm=50;async function it(e,t,n=rm){let r=new Map,o=[],s=[],i=[];for(let l of t)if(l.status==="deleted"&&l.oldHash){let d=r.get(l.oldHash)??[];d.push(l),r.set(l.oldHash,d),o.push(l)}else l.status==="added"&&l.newHash?s.push(l):i.push(l);let a=[],c=[];for(let l of s){let d=l.newHash;if(!d){c.push(l);continue}let u=r.get(d);if(u&&u.length>0){let h=nm(u,l.path);h&&a.push({oldPath:h.path,newPath:l.path,oldHash:h.oldHash??d,newHash:d,similarity:100,oldMode:h.oldMode,newMode:l.newMode})}else c.push(l)}let f=[...r.values()].flat();if(f.length>0&&c.length>0){let l=await sm(e,f,c,n);if(l.length>0){let d=new Set(l.map(h=>h.oldPath)),u=new Set(l.map(h=>h.newPath));f=f.filter(h=>!d.has(h.path)),c=c.filter(h=>!u.has(h.path)),a.push(...l)}}if(f.length>0&&c.length>0){let l=await am(e,f,c,n);if(l.length>0){let d=new Set(l.map(h=>h.oldPath)),u=new Set(l.map(h=>h.newPath));f=f.filter(h=>!d.has(h.path)),c=c.filter(h=>!u.has(h.path)),a.push(...l)}}return{remaining:[...i,...f,...c],renames:a}}async function sm(e,t,n,r){let o=new Map;for(let a=0;a<t.length;a++){let c=t[a];if(!c)continue;let f=Lr(c.path);o.has(f)?o.set(f,-1):o.set(f,a)}let s=new Map;for(let a=0;a<n.length;a++){let c=n[a];if(!c)continue;let f=Lr(c.path);s.has(f)?s.set(f,-1):s.set(f,a)}let i=[];for(let[a,c]of o){if(c===-1)continue;let f=s.get(a);if(f===void 0||f===-1)continue;let l=t[c],d=n[f];if(!l?.oldHash||!d?.newHash||l.oldHash===d.newHash)continue;let u=await $t(e,l.oldHash),h=await $t(e,d.newHash),m=im(u,h);m<r||i.push({oldPath:l.path,newPath:d.path,oldHash:l.oldHash,newHash:d.newHash,similarity:m,oldMode:l.oldMode,newMode:d.newMode})}return i}var Af=107927;function ko(e){let t=new Map,n=0,r=0,o=0;for(let i=0;i<e.length;i++){let a=e[i],c=r;if(r=(r<<7^o>>>25)>>>0,o=(o<<7^c>>>25)>>>0,r=r+a>>>0,n++,n<64&&a!==10)continue;let f=(r+Math.imul(o,97))%Af;t.set(f,(t.get(f)??0)+n),n=0,r=0,o=0}if(n>0){let i=(r+Math.imul(o,97))%Af;t.set(i,(t.get(i)??0)+n)}let s=[];for(let[i,a]of t)s.push({hash:i,count:a});return s.sort((i,a)=>i.hash-a.hash),s}function om(e,t){let n=0,r=0,o=0,s=0;for(;o<e.length;){let i=e[o];if(!i)break;for(;s<t.length;){let f=t[s];if(!f||f.hash>=i.hash)break;r+=f.count,s++}let a=i.count,c=0;if(s<t.length){let f=t[s];f&&f.hash===i.hash&&(c=f.count,s++)}a<c?(r+=c-a,n+=a):n+=c,o++}for(;s<t.length;){let i=t[s];i&&(r+=i.count),s++}return{srcCopied:n,literalAdded:r}}function im(e,t){return e.length===0&&t.length===0?100:e.length===0||t.length===0?0:Df(e.length,ko(e),t.length,ko(t))}function Df(e,t,n,r){let o=Math.max(e,n),s=Math.min(e,n);if(s<o-s)return 0;let{srcCopied:i}=om(t,r);return Math.floor(i*100/o)}async function am(e,t,n,r){let o=[];for(let l of t)if(l.oldHash){let d=await $t(e,l.oldHash);o.push({size:d.length,chunks:ko(d)})}else o.push(null);let s=[];for(let l of n)if(l.newHash){let d=await $t(e,l.newHash);s.push({size:d.length,chunks:ko(d)})}else s.push(null);let i=[];for(let l=0;l<t.length;l++){let d=t[l],u=o[l];if(!(!d||!u))for(let h=0;h<n.length;h++){let m=n[h],p=s[h];if(!m||!p)continue;let g=Df(u.size,u.chunks,p.size,p.chunks);if(g>=r){let w=Lr(d.path)===Lr(m.path)?1:0;i.push({similarity:g,nameScore:w,delIdx:l,addIdx:h})}}}i.sort((l,d)=>d.similarity-l.similarity||d.nameScore-l.nameScore);let a=new Set,c=new Set,f=[];for(let{similarity:l,delIdx:d,addIdx:u}of i){if(a.has(d)||c.has(u))continue;a.add(d),c.add(u);let h=t[d],m=n[u];!h||!m||f.push({oldPath:h.path,newPath:m.path,oldHash:h.oldHash??"",newHash:m.newHash??"",similarity:l,oldMode:h.oldMode,newMode:m.newMode})}return f}function pn(e,t){let n=e.length,r=t.length,o=0,s=0;for(;s<n&&s<r&&e[s]===t[s];)e[s]==="/"&&(o=s+1),s++;let i=o>0?1:0,a=0,c=n,f=r;for(;o-i<=c&&o-i<=f&&c>=0&&f>=0;){if(c===n&&f===r){c--,f--;continue}if(e[c]!==t[f])break;e[c]==="/"&&(a=n-c),c--,f--}let l=Math.max(0,n-o-a),d=Math.max(0,r-o-a),u=e.slice(0,o),h=e.slice(n-a),m=e.slice(o,o+l),p=t.slice(o,o+d);return o+a>0?`${u}{${m} => ${p}}${h}`:`${e} => ${t}`}Ae();Je();async function at(e,t){let n=await te(e),r=await Z(e),o,s=!1;n&&n.type==="symbolic"?o=Pe(n.target):(s=!0,o="HEAD detached");let i=t?.index??await V(e),a=ra(i),c=t?.compareHash!==void 0?t.compareHash:r,f=t?.compareHash!==void 0?!t.compareHash:!r,l=await na(e,c,i,a),d=await bt(e,i),u=[],h=[];for(let g of d)g.status==="untracked"?h.push(g.path):u.push({path:g.path,status:g.status});u.sort((g,w)=>ve(g.path,w.path));let m=new Set(i.entries.map(g=>g.path)),p=sa(h,m);return cm(e,r,s,o,i,l,u,a,p,{fromCommit:t?.fromCommit,noWarn:t?.noWarn,isInitial:f})}function Mf(e,t){if(t.done.length>0){let n=t.done.length;e.push(`Last command${n===1?"":"s"} done (${n} command${n===1?"":"s"} done):`);for(let r of t.done.slice(-2))e.push(` pick ${X(r.hash)} # ${r.subject}`);n>2&&e.push(" (see more in file .git/rebase-merge/done)")}if(t.todo.length>0){let n=t.todo.length;e.push(`Next command${n===1?"":"s"} to do (${n} remaining command${n===1?"":"s"}):`);for(let r of t.todo.slice(0,2))e.push(` pick ${X(r.hash)} # ${r.subject}`);e.push(' (use "git rebase --edit-todo" to view and edit)')}else e.push("No commands remaining.")}async function cm(e,t,n,r,o,s,i,a,c,f){let l=[],d=!1,u=await U(e,"CHERRY_PICK_HEAD"),h=await U(e,"REVERT_HEAD"),m=await U(e,"MERGE_HEAD"),p=!u&&!m,w=await Ut(e)?await kt(e):null;if(n&&w){let P=X(w.onto);l.push(`interactive rebase in progress; onto ${P}`)}else if(n){let P=await ps(e);if(P){let C=t===P?"at":"from";l.push(`HEAD detached ${C} ${X(P)}`)}else l.push("Not currently on any branch.")}else l.push(`On branch ${r}`);let b=f?.isInitial??!t;if(!n&&!w&&!b){let P=await pe(e),C=await Bt(e,P,r);if(C){let A=zn(C,{abbreviated:f?.fromCommit});for(let D of A.trimEnd().split(`
114
+ `))l.push(D);d=!0}}if(d&&(w||u||h||m)&&l.push(""),w&&m)Mf(l,w),l.push(""),a.length>0?(l.push("You have unmerged paths."),l.push(' (fix conflicts and run "git commit")'),l.push(' (use "git merge --abort" to abort the merge)')):(l.push("All conflicts fixed but you are still merging."),l.push(' (use "git commit" to conclude merge)')),d=!0;else if(w){let P=Lt(o),C=await e.fs.exists(H(e.gitDir,"MERGE_MSG"));Mf(l,w);let D=w.headName==="detached HEAD"?null:Pe(w.headName),$=X(w.onto),v=D?` branch '${D}' on '${$}'`:"";if(P)l.push(`You are currently rebasing${v}.`),l.push(' (fix conflicts and then run "git rebase --continue")'),l.push(' (use "git rebase --skip" to skip this patch)'),l.push(' (use "git rebase --abort" to check out the original branch)');else if(C)l.push(`You are currently rebasing${v}.`),l.push(' (all conflicts fixed: run "git rebase --continue")');else{let N=v?`You are currently editing a commit while rebasing${v}.`:"You are currently editing a commit during a rebase.";l.push(N),l.push(' (use "git commit --amend" to amend the current commit)'),l.push(' (use "git rebase --continue" once you are satisfied with your changes)')}d=!0}else u?(l.push(`You are currently cherry-picking commit ${X(u)}.`),a.length>0?l.push(' (fix conflicts and run "git cherry-pick --continue")'):l.push(' (all conflicts fixed: run "git cherry-pick --continue")'),l.push(' (use "git cherry-pick --skip" to skip this patch)'),l.push(' (use "git cherry-pick --abort" to cancel the cherry-pick operation)'),d=!0):h?(l.push(`You are currently reverting commit ${X(h)}.`),a.length>0?l.push(' (fix conflicts and run "git revert --continue")'):l.push(' (all conflicts fixed: run "git revert --continue")'),l.push(' (use "git revert --skip" to skip this patch)'),l.push(' (use "git revert --abort" to cancel the revert operation)'),d=!0):m&&(a.length>0?(l.push("You have unmerged paths."),l.push(' (fix conflicts and run "git commit")'),l.push(' (use "git merge --abort" to abort the merge)')):(l.push("All conflicts fixed but you are still merging."),l.push(' (use "git commit" to conclude merge)')),d=!0);if(await Tt(e)){let C=(await $e(e,"BISECT_START"))?.trim()??"";l.push(`You are currently bisecting, started from branch '${C}'.`),l.push(' (use "git bisect reset" to get back to the original branch)'),d=!0}b&&(l.push(""),l.push(f?.fromCommit?"Initial commit":"No commits yet"),d=!0);let R=null;p&&(R=t?' (use "git restore --staged <file>..." to unstage)':' (use "git rm --cached <file>..." to unstage)');let k=i.some(P=>P.status==="deleted")?' (use "git add/rm <file>..." to update what will be committed)':' (use "git add <file>..." to update what will be committed)',x=!1;if(s.length>0){d&&l.push(""),l.push("Changes to be committed:"),R&&l.push(R);for(let P of s)l.push(` ${jf(P.status,P.path,P.displayPath)}`);l.push(""),x=!0}if(a.length>0){!x&&d&&l.push(""),l.push("Unmerged paths:"),p&&(t?l.push(' (use "git restore --staged <file>..." to unstage)'):l.push(' (use "git rm --cached <file>..." to unstage)')),a.some(C=>C.status==="deleted by us"||C.status==="deleted by them"||C.status==="both deleted")?l.push(' (use "git add/rm <file>..." as appropriate to mark resolution)'):l.push(' (use "git add <file>..." to mark resolution)');for(let C of a)l.push(` ${fm(C.status,C.path)}`);l.push(""),x=!0}if(i.length>0){!x&&d&&l.push(""),l.push("Changes not staged for commit:"),l.push(k),l.push(' (use "git restore <file>..." to discard changes in working directory)');for(let P of i)l.push(` ${jf(P.status,P.path)}`);l.push(""),x=!0}if(c.length>0){!x&&d&&l.push(""),l.push("Untracked files:"),l.push(' (use "git add <file>..." to include in what will be committed)');for(let P of c)l.push(` ${P}`);l.push(""),x=!0}let y=s.length>0||!!m&&a.length===0;return!x&&d&&(f?.noWarn||y)&&l.push(""),!y&&!f?.noWarn&&(!x&&d&&i.length===0&&a.length===0&&c.length===0&&l.push(""),i.length>0||a.length>0?l.push('no changes added to commit (use "git add" and/or "git commit -a")'):c.length>0?l.push('nothing added to commit but untracked files present (use "git add" to track)'):b?l.push('nothing to commit (create/copy files and use "git add" to track)'):l.push("nothing to commit, working tree clean")),`${l.join(`
115
115
  `)}
116
- `}async function na(e,t,n,r){let o=new Set(r?.map(h=>h.path)),s=null;t&&(s=(await j(e,t)).tree);let i=await le(e,s),a=new Map(Ge(n).map(h=>[h.path,h])),c=[];for(let[h,m]of a){if(o.has(h))continue;let p=i.get(h);p?p.hash!==m.hash&&c.push({path:h,status:"modified",oldHash:p.hash,newHash:m.hash,oldMode:p.mode,newMode:m.mode.toString(8).padStart(6,"0")}):c.push({path:h,status:"added",newHash:m.hash,newMode:m.mode.toString(8).padStart(6,"0")})}for(let[h,m]of i)o.has(h)||a.has(h)||c.push({path:h,status:"deleted",oldHash:m.hash,oldMode:m.mode});let{remaining:f,renames:l}=await it(e,c),d={added:"new file",deleted:"deleted",modified:"modified"},u=[];for(let h of f){let m=d[h.status];m&&u.push({path:h.path,status:m})}for(let h of l)u.push({path:h.newPath,status:"renamed",displayPath:`${h.oldPath} -> ${h.newPath}`});return u.sort((h,m)=>ve(h.path,m.path))}function ra(e){let t=new Map;for(let r of e.entries)if(r.stage>0){let o=t.get(r.path);o||(o=new Set,t.set(r.path,o)),o.add(r.stage)}let n=[];for(let[r,o]of t){let s,i=o.has(1),a=o.has(2),c=o.has(3);a&&c?s=i?"both modified":"both added":i&&!a&&!c?s="both deleted":i&&c?s="deleted by us":i&&a?s="deleted by them":a&&!i&&!c?s="added by us":c&&!i&&!a?s="added by them":s="unmerged",n.push({path:r,status:s})}return n.sort((r,o)=>ve(r.path,o.path))}function sa(e,t){if(e.length===0)return[];let n=new Set;for(let o of t){let s=o.indexOf("/");for(;s!==-1;)n.add(o.slice(0,s+1)),s=o.indexOf("/",s+1)}let r=new Set;for(let o of e){let s=o.split("/");if(s.length===1){r.add(o);continue}let i=!1;for(let a=1;a<s.length;a++){let c=`${s.slice(0,a).join("/")}/`;if(!n.has(c)){r.add(c),i=!0;break}}i||r.add(o)}return[...r].sort()}function jf(e,t,n){return`${e}:`.padEnd(12)+(n??t)}function fm(e,t){return`${e}:`.padEnd(17)+t}async function Ut(e,t,n){let r=t[`branch "${n}"`];if(!r?.remote||!r?.merge)return null;let o=r.remote,s=r.merge,i=s.replace(/^refs\/heads\//,`refs/remotes/${o}/`),a=`${o}/${s.replace(/^refs\/heads\//,"")}`,c=await U(e,i);if(!c)return{upstream:a,ahead:0,behind:0,gone:!0};let f=await U(e,`refs/heads/${n}`);if(!f)return null;if(f===c)return{upstream:a,ahead:0,behind:0,gone:!1};let{ahead:l,behind:d}=await Zi(e,f,c);return{upstream:a,ahead:l,behind:d,gone:!1}}function Ro(e,t){if(t){if(e.gone)return`[${e.upstream}: gone]`;if(e.ahead===0&&e.behind===0)return`[${e.upstream}]`;let r=[];return e.ahead>0&&r.push(`ahead ${e.ahead}`),e.behind>0&&r.push(`behind ${e.behind}`),`[${e.upstream}: ${r.join(", ")}]`}if(e.gone)return"[gone]";if(e.ahead===0&&e.behind===0)return"";let n=[];return e.ahead>0&&n.push(`ahead ${e.ahead}`),e.behind>0&&n.push(`behind ${e.behind}`),`[${n.join(", ")}]`}function Kn(e,t){if(e.gone)return`Your branch is based on '${e.upstream}', but the upstream is gone.
116
+ `}async function na(e,t,n,r){let o=new Set(r?.map(h=>h.path)),s=null;t&&(s=(await j(e,t)).tree);let i=await le(e,s),a=new Map(Ge(n).map(h=>[h.path,h])),c=[];for(let[h,m]of a){if(o.has(h))continue;let p=i.get(h);p?p.hash!==m.hash&&c.push({path:h,status:"modified",oldHash:p.hash,newHash:m.hash,oldMode:p.mode,newMode:m.mode.toString(8).padStart(6,"0")}):c.push({path:h,status:"added",newHash:m.hash,newMode:m.mode.toString(8).padStart(6,"0")})}for(let[h,m]of i)o.has(h)||a.has(h)||c.push({path:h,status:"deleted",oldHash:m.hash,oldMode:m.mode});let{remaining:f,renames:l}=await it(e,c),d={added:"new file",deleted:"deleted",modified:"modified"},u=[];for(let h of f){let m=d[h.status];m&&u.push({path:h.path,status:m})}for(let h of l)u.push({path:h.newPath,status:"renamed",displayPath:`${h.oldPath} -> ${h.newPath}`});return u.sort((h,m)=>ve(h.path,m.path))}function ra(e){let t=new Map;for(let r of e.entries)if(r.stage>0){let o=t.get(r.path);o||(o=new Set,t.set(r.path,o)),o.add(r.stage)}let n=[];for(let[r,o]of t){let s,i=o.has(1),a=o.has(2),c=o.has(3);a&&c?s=i?"both modified":"both added":i&&!a&&!c?s="both deleted":i&&c?s="deleted by us":i&&a?s="deleted by them":a&&!i&&!c?s="added by us":c&&!i&&!a?s="added by them":s="unmerged",n.push({path:r,status:s})}return n.sort((r,o)=>ve(r.path,o.path))}function sa(e,t){if(e.length===0)return[];let n=new Set;for(let o of t){let s=o.indexOf("/");for(;s!==-1;)n.add(o.slice(0,s+1)),s=o.indexOf("/",s+1)}let r=new Set;for(let o of e){let s=o.split("/");if(s.length===1){r.add(o);continue}let i=!1;for(let a=1;a<s.length;a++){let c=`${s.slice(0,a).join("/")}/`;if(!n.has(c)){r.add(c),i=!0;break}}i||r.add(o)}return[...r].sort()}function jf(e,t,n){return`${e}:`.padEnd(12)+(n??t)}function fm(e,t){return`${e}:`.padEnd(17)+t}async function Bt(e,t,n){let r=t[`branch "${n}"`];if(!r?.remote||!r?.merge)return null;let o=r.remote,s=r.merge,i=s.replace(/^refs\/heads\//,`refs/remotes/${o}/`),a=`${o}/${s.replace(/^refs\/heads\//,"")}`,c=await U(e,i);if(!c)return{upstream:a,ahead:0,behind:0,gone:!0};let f=await U(e,`refs/heads/${n}`);if(!f)return null;if(f===c)return{upstream:a,ahead:0,behind:0,gone:!1};let{ahead:l,behind:d}=await Zi(e,f,c);return{upstream:a,ahead:l,behind:d,gone:!1}}function Ro(e,t){if(t){if(e.gone)return`[${e.upstream}: gone]`;if(e.ahead===0&&e.behind===0)return`[${e.upstream}]`;let r=[];return e.ahead>0&&r.push(`ahead ${e.ahead}`),e.behind>0&&r.push(`behind ${e.behind}`),`[${e.upstream}: ${r.join(", ")}]`}if(e.gone)return"[gone]";if(e.ahead===0&&e.behind===0)return"";let n=[];return e.ahead>0&&n.push(`ahead ${e.ahead}`),e.behind>0&&n.push(`behind ${e.behind}`),`[${n.join(", ")}]`}function zn(e,t){if(e.gone)return`Your branch is based on '${e.upstream}', but the upstream is gone.
117
117
  (use "git branch --unset-upstream" to fixup)
118
118
  `;if(e.ahead===0&&e.behind===0)return`Your branch is up to date with '${e.upstream}'.
119
119
  `;if(e.ahead>0&&e.behind===0){let r=e.ahead===1?"commit":"commits";return`Your branch is ahead of '${e.upstream}' by ${e.ahead} ${r}.
@@ -123,17 +123,17 @@ GIT_AUTHOR_DATE='${o}'
123
123
  `}let n=`Your branch and '${e.upstream}' have diverged,
124
124
  and have ${e.ahead} and ${e.behind} different commits each, respectively.
125
125
  `;return t?.abbreviated?n:n+` (use "git pull" if you want to integrate the remote branch with yours)
126
- `}Rn();Ae();Zt();Je();async function oa(e){let t=await et(e,"HEAD");for(let n=t.length-1;n>=0;n--){let r=t[n];if(!r)continue;let o=r.message.match(/^checkout: moving from (.+) to (.+)$/);if(!o?.[1])continue;let s=o[1],i=`refs/heads/${s}`,a=await U(e,i);if(a)return{kind:"branch",name:s,refName:i,hash:a};let c=await Me(e,s,`a branch is expected, got commit '${s}'`);return M(c)?null:{kind:"commit",target:s}}return null}async function Gf(e){let t=await oa(e);return t?.kind==="branch"?t:null}async function $n(e){let t="";return await U(e,"CHERRY_PICK_HEAD")&&(t=`warning: cancelling a cherry picking in progress
126
+ `}Pn();Ae();Nt();Je();async function oa(e){let t=await et(e,"HEAD");for(let n=t.length-1;n>=0;n--){let r=t[n];if(!r)continue;let o=r.message.match(/^checkout: moving from (.+) to (.+)$/);if(!o?.[1])continue;let s=o[1],i=`refs/heads/${s}`,a=await U(e,i);if(a)return{kind:"branch",name:s,refName:i,hash:a};let c=await Me(e,s,`a branch is expected, got commit '${s}'`);return M(c)?null:{kind:"commit",target:s}}return null}async function Gf(e){let t=await oa(e);return t?.kind==="branch"?t:null}async function In(e){let t="";return await U(e,"CHERRY_PICK_HEAD")&&(t=`warning: cancelling a cherry picking in progress
127
127
  `),await U(e,"REVERT_HEAD")&&(t+=`warning: cancelling a revert in progress
128
128
  `),await hr(e),t}function lm(e){let t=new Set,n=[];for(let r of e.entries)r.stage>0&&!t.has(r.path)&&(t.add(r.path),n.push(`${r.path}: needs merge`));return n.sort(),n.length>0?`${n.join(`
129
129
  `)}
130
- `:""}function zn(e){return e.entries.some(t=>t.stage>0)?{stdout:lm(e),stderr:`error: you need to resolve your current index first
131
- `,exitCode:1}:null}async function xo(e,t,n,r){if(!e.workTree)return S("this operation must be run in a work tree");if(r)return dm(e,t,n,r);let o=await V(e),s=t.map(a=>_e(a,n)),i=o.entries.filter(a=>a.stage===0&&Ee(s,a.path));if(i.length===0)return o.entries.some(c=>c.stage>0&&Ee(s,c.path))?F(`error: path '${t[0]}' is unmerged
132
- `):F(`error: pathspec '${t[0]}' did not match any file(s) known to git
133
- `);for(let a of i)await dt(e,{path:a.path,hash:a.hash,mode:a.mode});return{stdout:"",stderr:"",exitCode:0}}async function dm(e,t,n,r){let o=await le(e,r),s=await V(e),i=t.map(c=>_e(c,n)),a=[];for(let[c]of o)Ee(i,c)&&a.push(c);if(a.length===0)return F(`error: pathspec '${t[0]}' did not match any file(s) known to git
134
- `);for(let c of a){let f=o.get(c);f&&(await dt(e,{path:f.path,hash:f.hash,mode:f.mode}),s=Pt(s,{path:f.path,hash:f.hash,mode:parseInt(f.mode,8),stage:0,stat:He()}))}return await ae(e,s),{stdout:"",stderr:"",exitCode:0}}async function Co(e,t,n,r,o){if(!e.workTree)return S("this operation must be run in a work tree");let s=o?.deleteOnMissing??!1,i=await V(e),a=t.map(f=>_e(f,n)),c=new Set;for(let f of i.entries)Ee(a,f.path)&&c.add(f.path);if(c.size===0)return F(`error: pathspec '${t[0]}' did not match any file(s) known to git
135
- `);for(let f of c){let l=i.entries.find(h=>h.path===f&&h.stage===r),d=!l&&i.entries.find(h=>h.path===f&&h.stage===0),u=l||d;if(u)await dt(e,{path:u.path,hash:u.hash,mode:u.mode});else if(s){let h=H(e.workTree,f);await e.fs.exists(h)&&await e.fs.rm(h)}else if(i.entries.some(m=>m.path===f&&m.stage>0))return F(`error: path '${f}' does not have ${r===2?"our":"their"} version
136
- `)}return{stdout:"",stderr:"",exitCode:0}}async function Vn(e,t,n){if(!e.workTree)return"";let r=await qe(e,t),o=new Map;for(let c of r)_n(c.mode)||o.set(c.path,c.hash);let s=new Map;for(let c of n.entries)c.stage===0&&s.set(c.path,c.hash);let i=new Map;for(let[c]of s){let f=H(e.workTree,c);if(await e.fs.exists(f)){if((await e.fs.stat(f)).isFile){let d=await e.fs.readFileBuffer(f);i.set(c,await gt("blob",d))}}else i.set(c,null)}let a=[];for(let[c,f]of o){let l=s.get(c);if(l===void 0){a.push(`D ${c}`);continue}let d=i.get(c);d===null?a.push(`D ${c}`):(l!==f||d!==void 0&&d!==f)&&a.push(`M ${c}`)}for(let[c]of s)o.has(c)||i.get(c)!=null&&a.push(`A ${c}`);return a.length===0?"":(a.sort((c,f)=>{let l=c.slice(2),d=f.slice(2);return l<d?-1:l>d?1:0}),`${a.join(`
130
+ `:""}function Vn(e){return e.entries.some(t=>t.stage>0)?{stdout:lm(e),stderr:`error: you need to resolve your current index first
131
+ `,exitCode:1}:null}async function xo(e,t,n,r){if(!e.workTree)return S("this operation must be run in a work tree");if(r)return dm(e,t,n,r);let o=await V(e),s=t.map(a=>_e(a,n)),i=o.entries.filter(a=>a.stage===0&&Ee(s,a.path));if(i.length===0)return o.entries.some(c=>c.stage>0&&Ee(s,c.path))?_(`error: path '${t[0]}' is unmerged
132
+ `):_(`error: pathspec '${t[0]}' did not match any file(s) known to git
133
+ `);for(let a of i)await dt(e,{path:a.path,hash:a.hash,mode:a.mode});return{stdout:"",stderr:"",exitCode:0}}async function dm(e,t,n,r){let o=await le(e,r),s=await V(e),i=t.map(c=>_e(c,n)),a=[];for(let[c]of o)Ee(i,c)&&a.push(c);if(a.length===0)return _(`error: pathspec '${t[0]}' did not match any file(s) known to git
134
+ `);for(let c of a){let f=o.get(c);f&&(await dt(e,{path:f.path,hash:f.hash,mode:f.mode}),s=Pt(s,{path:f.path,hash:f.hash,mode:parseInt(f.mode,8),stage:0,stat:He()}))}return await ae(e,s),{stdout:"",stderr:"",exitCode:0}}async function Co(e,t,n,r,o){if(!e.workTree)return S("this operation must be run in a work tree");let s=o?.deleteOnMissing??!1,i=await V(e),a=t.map(f=>_e(f,n)),c=new Set;for(let f of i.entries)Ee(a,f.path)&&c.add(f.path);if(c.size===0)return _(`error: pathspec '${t[0]}' did not match any file(s) known to git
135
+ `);for(let f of c){let l=i.entries.find(h=>h.path===f&&h.stage===r),d=!l&&i.entries.find(h=>h.path===f&&h.stage===0),u=l||d;if(u)await dt(e,{path:u.path,hash:u.hash,mode:u.mode});else if(s){let h=H(e.workTree,f);await e.fs.exists(h)&&await e.fs.rm(h)}else if(i.entries.some(m=>m.path===f&&m.stage>0))return _(`error: path '${f}' does not have ${r===2?"our":"their"} version
136
+ `)}return{stdout:"",stderr:"",exitCode:0}}async function Yn(e,t,n){if(!e.workTree)return"";let r=await qe(e,t),o=new Map;for(let c of r)Bn(c.mode)||o.set(c.path,c.hash);let s=new Map;for(let c of n.entries)c.stage===0&&s.set(c.path,c.hash);let i=new Map;for(let[c]of s){let f=H(e.workTree,c);if(await e.fs.exists(f)){if((await e.fs.stat(f)).isFile){let d=await e.fs.readFileBuffer(f);i.set(c,await gt("blob",d))}}else i.set(c,null)}let a=[];for(let[c,f]of o){let l=s.get(c);if(l===void 0){a.push(`D ${c}`);continue}let d=i.get(c);d===null?a.push(`D ${c}`):(l!==f||d!==void 0&&d!==f)&&a.push(`M ${c}`)}for(let[c]of s)o.has(c)||i.get(c)!=null&&a.push(`A ${c}`);return a.length===0?"":(a.sort((c,f)=>{let l=c.slice(2),d=f.slice(2);return l<d?-1:l>d?1:0}),`${a.join(`
137
137
  `)}
138
138
  `)}var Lf=5;function um(e){let t=e.length,n=t===1?"commit":"commits",r=t===1?"it":"them",o=t>Lf?Lf-1:t,i=e.slice(0,o).map(c=>` ${X(c.hash)} ${c.subject}`),a=t-o;return a>0&&i.push(` ... and ${a} more.`),`Warning: you are leaving ${t} ${n} behind, not connected to
139
139
  any of your branches:
@@ -148,8 +148,8 @@ to do so with:
148
148
 
149
149
  `}async function ia(e,t){let n=await j(e,t);return`Previous HEAD position was ${X(t)} ${ue(n.message)}
150
150
  `}async function Po(e,t,n){let r=await Ji(e,t,{targetHash:n});return r.length>0?um(r):t!==n?ia(e,t):""}async function mr(e,t,n,r,o,s,i){let a=await te(e);if(a?.type==="symbolic"&&a.target===n)return{stdout:"",stderr:`Already on '${t}'
151
- `,exitCode:0};let c=await V(e),f=zn(c);if(f)return f;let l=await Z(e),u=(await j(e,r)).tree,h=null;if(l&&(h=(await j(e,l)).tree),h!==u){let E=await Bn(e,h,u,c);if(!E.success)return E.errorOutput??F("error: checkout would overwrite local changes");c={version:2,entries:E.newEntries},await ae(e,c),await je(e,E.worktreeOps)}let m="";a?.type==="direct"&&l&&(m=await Po(e,l,r));let p=a?.type==="symbolic"?a.target.replace(/^refs\/heads\//,""):l??ne;await Ze(e,"HEAD",n),await Et(e);let g=await $n(e);await re(e,o,"HEAD",l,r,`checkout: moving from ${p} to ${t}`),await s?.hooks?.postCheckout?.({repo:e,prevHead:l,newHead:r,isBranchCheckout:!0});let w=await Vn(e,u,c),b=await pe(e),k=await Ut(e,b,t);return k&&(w+=Kn(k)),{stdout:w,stderr:`${m}Switched to ${i?.isNew?"a new ":""}branch '${t}'
152
- ${g}`,exitCode:0}}async function Yn(e,t,n,r,o){let s=await V(e),i=zn(s);if(i)return i;let a=await Z(e),c=await j(e,t),f=c.tree,l=null;if(a&&(l=(await j(e,a)).tree),l!==f){let k=await Bn(e,l,f,s);if(!k.success)return k.errorOutput??F("error: checkout would overwrite local changes");s={version:2,entries:k.newEntries},await ae(e,s),await je(e,k.worktreeOps)}let d=await te(e),u=d?.type==="direct"&&a===t;if(await J(e,"HEAD",t),!u){await xf(e,t);let k=d?.type==="symbolic"?d.target.replace(/^refs\/heads\//,""):a??ne;await re(e,n,"HEAD",a,t,`checkout: moving from ${k} to ${t}`)}let h=await $n(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:a,newHead:t,isBranchCheckout:!1});let m=X(t),p=ue(c.message),g=d?.type==="direct",w="";return g&&a&&a!==t&&(w+=await Po(e,a,t)),g||!o?.detachAdviceTarget?w+=`HEAD is now at ${m} ${p}
151
+ `,exitCode:0};let c=await V(e),f=Vn(c);if(f)return f;let l=await Z(e),u=(await j(e,r)).tree,h=null;if(l&&(h=(await j(e,l)).tree),h!==u){let E=await hn(e,h,u,c);if(!E.success)return E.errorOutput??_("error: checkout would overwrite local changes");c={version:2,entries:E.newEntries},await ae(e,c),await De(e,E.worktreeOps)}let m="";a?.type==="direct"&&l&&(m=await Po(e,l,r));let p=a?.type==="symbolic"?a.target.replace(/^refs\/heads\//,""):l??ne;await Ze(e,"HEAD",n),await Et(e);let g=await In(e);await re(e,o,"HEAD",l,r,`checkout: moving from ${p} to ${t}`),await s?.hooks?.postCheckout?.({repo:e,prevHead:l,newHead:r,isBranchCheckout:!0});let w=await Yn(e,u,c),b=await pe(e),R=await Bt(e,b,t);return R&&(w+=zn(R)),{stdout:w,stderr:`${m}Switched to ${i?.isNew?"a new ":""}branch '${t}'
152
+ ${g}`,exitCode:0}}async function Xn(e,t,n,r,o){let s=await V(e),i=Vn(s);if(i)return i;let a=await Z(e),c=await j(e,t),f=c.tree,l=null;if(a&&(l=(await j(e,a)).tree),l!==f){let R=await hn(e,l,f,s);if(!R.success)return R.errorOutput??_("error: checkout would overwrite local changes");s={version:2,entries:R.newEntries},await ae(e,s),await De(e,R.worktreeOps)}let d=await te(e),u=d?.type==="direct"&&a===t;if(await J(e,"HEAD",t),!u){await xf(e,t);let R=d?.type==="symbolic"?d.target.replace(/^refs\/heads\//,""):a??ne;await re(e,n,"HEAD",a,t,`checkout: moving from ${R} to ${t}`)}let h=await In(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:a,newHead:t,isBranchCheckout:!1});let m=X(t),p=ue(c.message),g=d?.type==="direct",w="";return g&&a&&a!==t&&(w+=await Po(e,a,t)),g||!o?.detachAdviceTarget?w+=`HEAD is now at ${m} ${p}
153
153
  `:w=`Note: switching to '${o.detachAdviceTarget}'.
154
154
 
155
155
  You are in 'detached HEAD' state. You can look around, make experimental
@@ -168,26 +168,26 @@ Or undo this operation with:
168
168
  Turn off this advice by setting config variable advice.detachedHead to false
169
169
 
170
170
  HEAD is now at ${m} ${p}
171
- `,w+=h,{stdout:await Vn(e,f,s),stderr:w,exitCode:0}}async function hm(e,t){if(t.startsWith("refs/remotes/")){if(!await U(e,t))return null;let s=t.slice(13).split("/");if(s.length<2)return null;let i=s[0],a=s.slice(1).join("/");return{remote:i,branch:a,ref:t}}let n=`refs/remotes/${t}`;if(await U(e,n)){let o=t.split("/");if(o.length<2)return null;let s=o[0],i=o.slice(1).join("/");return{remote:s,branch:i,ref:n}}return null}async function $o(e,t,n){let r=await hm(e,n);if(!r||await ke(e,"branch.autoSetupMerge")==="false")return"";let s=await pe(e),i=`branch "${t}"`;return s[i]||(s[i]={}),s[i].remote=r.remote,s[i].merge=`refs/heads/${r.branch}`,await ze(e,s),`branch '${t}' set up to track '${r.remote}/${r.branch}'.
171
+ `,w+=h,{stdout:await Yn(e,f,s),stderr:w,exitCode:0}}async function hm(e,t){if(t.startsWith("refs/remotes/")){if(!await U(e,t))return null;let s=t.slice(13).split("/");if(s.length<2)return null;let i=s[0],a=s.slice(1).join("/");return{remote:i,branch:a,ref:t}}let n=`refs/remotes/${t}`;if(await U(e,n)){let o=t.split("/");if(o.length<2)return null;let s=o[0],i=o.slice(1).join("/");return{remote:s,branch:i,ref:n}}return null}async function $o(e,t,n){let r=await hm(e,n);if(!r||await ke(e,"branch.autoSetupMerge")==="false")return"";let s=await pe(e),i=`branch "${t}"`;return s[i]||(s[i]={}),s[i].remote=r.remote,s[i].merge=`refs/heads/${r.branch}`,await ze(e,s),`branch '${t}' set up to track '${r.remote}/${r.branch}'.
172
172
  `}async function Oo(e,t){let n=await ye(e,"refs/remotes"),r=[];for(let o of n){let s=o.name.replace(/^refs\/remotes\//,"").split("/"),i=s[0];s.length>=2&&i&&s.slice(1).join("/")===t&&r.push({remote:i,ref:o.name})}if(r.length===1){let o=r[0];return{remote:o.remote,startPoint:o.ref,trackingRef:o.ref}}if(r.length>1){let o=await ke(e,"checkout.defaultRemote");if(o){let s=r.filter(i=>i.remote===o);if(s.length===1){let i=s[0];return{remote:i.remote,startPoint:i.ref,trackingRef:i.ref}}}}return null}ie();me();ge();fn();var Nf=new Set(["help","start","skip","next","reset","visualize","view","replay","log","run","terms"]),bs={stdout:`You need to start by "git bisect start"
173
- `,stderr:"",exitCode:1};async function aa(e){let t=await $e(e,"BISECT_HEAD");if(t?.trim())return t.trim();let n=await Z(e);return n||S("no current commit")}function Ff(e,t){let n=e.command("bisect",{description:"Use binary search to find the commit that introduced a bug",args:[K.string().name("subcommand").describe("Subcommand or custom term").optional(),K.string().name("rest").describe("Additional arguments").optional().variadic()],handler:async(r,o)=>{let s=r.subcommand;if(!s)return{stdout:"",stderr:`usage: git bisect [start|bad|good|new|old|terms|skip|next|reset|visualize|view|replay|log|run]
174
- `,exitCode:1};let i=r.rest??[],a=await q(o.fs,o.cwd,t);return M(a)?a:wm(a,o.env,t,s,i)}});mm(n,t),pm(n,t),bm(n,t),ym(n,t),km(n,t),Rm(n,t),Cm(n,t),$m(n,t),Om(n,t)}function mm(e,t){e.command("start",{description:"Start bisecting",args:[K.string().name("revs").describe("Bad and good revisions").optional().variadic()],options:{"term-new":Y.string().describe("Alternate term for new/bad"),"term-bad":Y.string().describe("Alternate term for new/bad"),"term-old":Y.string().describe("Alternate term for old/good"),"term-good":Y.string().describe("Alternate term for old/good"),"no-checkout":O().describe("Do not checkout the bisection commit"),"first-parent":O().describe("Follow only first parent on merges")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Ye(s);if(i&&!n["no-checkout"])return i;let a=n["term-new"]??n["term-bad"]??"bad",c=n["term-old"]??n["term-good"]??"good";return Nf.has(a)?S(`'${a}' is not a valid term`):Nf.has(c)?S(`'${c}' is not a valid term`):a===c?S("'bad' and 'good' terms must be different"):_f(s,r.env,t,n.revs??[],a,c,n["no-checkout"]??!1,n["first-parent"]??!1)}})}async function _f(e,t,n,r,o,s,i,a){await Tt(e)&&await wo(e);let c=await te(e),f;if(c?.type==="symbolic"?f=c.target.replace(/^refs\/heads\//,""):f=await Z(e)??"HEAD",await Le(e,"BISECT_START",f+`
173
+ `,stderr:"",exitCode:1};async function aa(e){let t=await $e(e,"BISECT_HEAD");if(t?.trim())return t.trim();let n=await Z(e);return n||S("no current commit")}function Ff(e,t){let n=e.command("bisect",{description:"Use binary search to find the commit that introduced a bug",args:[q.string().name("subcommand").describe("Subcommand or custom term").optional(),q.string().name("rest").describe("Additional arguments").optional().variadic()],handler:async(r,o)=>{let s=r.subcommand;if(!s)return{stdout:"",stderr:`usage: git bisect [start|bad|good|new|old|terms|skip|next|reset|visualize|view|replay|log|run]
174
+ `,exitCode:1};let i=r.rest??[],a=await K(o.fs,o.cwd,t);return M(a)?a:wm(a,o.env,t,s,i)}});mm(n,t),pm(n,t),bm(n,t),ym(n,t),km(n,t),Rm(n,t),Cm(n,t),$m(n,t),Om(n,t)}function mm(e,t){e.command("start",{description:"Start bisecting",args:[q.string().name("revs").describe("Bad and good revisions").optional().variadic()],options:{"term-new":Y.string().describe("Alternate term for new/bad"),"term-bad":Y.string().describe("Alternate term for new/bad"),"term-old":Y.string().describe("Alternate term for old/good"),"term-good":Y.string().describe("Alternate term for old/good"),"no-checkout":O().describe("Do not checkout the bisection commit"),"first-parent":O().describe("Follow only first parent on merges")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Ye(s);if(i&&!n["no-checkout"])return i;let a=n["term-new"]??n["term-bad"]??"bad",c=n["term-old"]??n["term-good"]??"good";return Nf.has(a)?S(`'${a}' is not a valid term`):Nf.has(c)?S(`'${c}' is not a valid term`):a===c?S("'bad' and 'good' terms must be different"):_f(s,r.env,t,n.revs??[],a,c,n["no-checkout"]??!1,n["first-parent"]??!1)}})}async function _f(e,t,n,r,o,s,i,a){await Tt(e)&&await wo(e);let c=await te(e),f;if(c?.type==="symbolic"?f=c.target.replace(/^refs\/heads\//,""):f=await Z(e)??"HEAD",await Le(e,"BISECT_START",f+`
175
175
  `),await Le(e,"BISECT_TERMS",`${o}
176
176
  ${s}
177
177
  `),await Le(e,"BISECT_NAMES",`
178
- `),a&&await Le(e,"BISECT_FIRST_PARENT",""),i){let u=await Z(e);u&&await Le(e,"BISECT_HEAD",u)}if(r.length>0){let u=r[0],h=await yt(e,u);if(M(h))return h;await J(e,`refs/bisect/${o}`,h);let m=await j(e,h);await vt(e,`# ${o}: [${h}] ${ue(m.message)}`);for(let p=1;p<r.length;p++){let g=r[p],w=await yt(e,g);if(M(w))return w;await J(e,`refs/bisect/${s}-${w}`,w);let b=await j(e,w);await vt(e,`# ${s}: [${w}] ${ue(b.message)}`)}}let l=r.map(u=>`'${u}'`),d=l.length>0?` ${l.join(" ")}`:"";return await vt(e,`git bisect start${d}`),ys(e,t,n)}function pm(e,t){for(let n of["bad","good","new","old"])e.command(n,{description:n==="bad"||n==="new"?"Mark a commit as bad/new":"Mark a commit as good/old",args:[K.string().name("rev").describe("Revision to mark").optional()],handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);return M(s)?s:gm(s,o.env,t,n,r.rev)}})}async function gm(e,t,n,r,o){if(!await Tt(e))return bs;let s=await gs(e),i=r==="bad"||r==="new"?s.termBad:s.termGood;return ws(e,t,n,i,s,o)}async function wm(e,t,n,r,o){if(!await Tt(e))return bs;let s=await gs(e);return r!==s.termBad&&r!==s.termGood?{stdout:"",stderr:`error: unknown command: 'git bisect ${r}'
179
- `,exitCode:1}:ws(e,t,n,r,s,o[0])}async function ws(e,t,n,r,o,s){let i;if(s){let f=await yt(e,s);if(M(f))return f;i=f}else{let f=await aa(e);if(M(f))return f;i=f}let a=await j(e,i),c=ue(a.message);return r===o.termBad?await J(e,`refs/bisect/${o.termBad}`,i):await J(e,`refs/bisect/${o.termGood}-${i}`,i),await vt(e,`# ${r}: [${i}] ${c}`),await vt(e,`git bisect ${r} ${i}`),ys(e,t,n)}function bm(e,t){e.command("skip",{description:"Mark a commit as untestable",args:[K.string().name("revs").describe("Revisions to skip").optional().variadic()],handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Tt(s))return bs;let i=n.revs??[];if(i.length===0){let a=await aa(s);if(M(a))return a;i.push(a)}for(let a of i){let c;if(a.length===40&&/^[0-9a-f]+$/.test(a))c=a;else{let l=await yt(s,a);if(M(l))return l;c=l}await J(s,`refs/bisect/skip-${c}`,c);let f=await j(s,c);await vt(s,`# skip: [${c}] ${ue(f.message)}`),await vt(s,`git bisect skip ${c}`)}return ys(s,r.env,t)}})}function ym(e,t){e.command("reset",{description:"Finish bisecting and return to original branch",args:[K.string().name("commit").describe("Branch or commit to checkout").optional()],handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;return await Tt(s)?Em(s,r.env,t,n.commit):{stdout:`We are not bisecting.
180
- `,stderr:"",exitCode:0}}})}async function Em(e,t,n,r){let o=(await $e(e,"BISECT_START"))?.trim()??"";if(await wo(e),r){let s=await yt(e,r);return M(s)?s:Yn(e,s,t,n)}if(o){let s=`refs/heads/${o}`,i=await U(e,s);if(i)return mr(e,o,s,i,t,n);let a=await We(e,o);if(a)return Yn(e,a,t,n)}return{stdout:"",stderr:"",exitCode:0}}function km(e,t){e.command("log",{description:"Show the bisect log",handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;return await Tt(s)?{stdout:await $e(s,"BISECT_LOG")??"",stderr:"",exitCode:0}:{stdout:"",stderr:`error: We are not bisecting.
181
- `,exitCode:1}}})}function Rm(e,t){e.command("replay",{description:"Replay a bisect log",args:[K.string().name("logfile").describe("Path to bisect log file")],handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.logfile.startsWith("/")?n.logfile:H(r.cwd,n.logfile);if(!await r.fs.exists(i))return S(`cannot open '${n.logfile}': No such file or directory`);let a=await r.fs.readFile(i);return xm(s,r.env,t,a)}})}async function xm(e,t,n,r){await Tt(e)&&await wo(e);let o={termBad:"bad",termGood:"good"},s="";for(let i of r.split(`
182
- `)){let a=i.trim();if(!a||a.startsWith("#"))continue;let c=a.match(/^git[\s-]bisect\s+(\S+)(.*)$/);if(!c)continue;let f=c[1],l=c[2].trim(),d;if(f==="start"){let u=l?l.split(/\s+/).map(h=>h.replace(/^'|'$/g,"")):[];d=await _f(e,t,n,u,"bad","good",!1,!1)}else if(f==="bad"||f==="new")d=await ws(e,t,n,"bad",o,l||void 0);else if(f==="good"||f==="old")d=await ws(e,t,n,"good",o,l||void 0);else if(f==="skip"){for(let u of l?l.split(/\s+/):[]){await J(e,`refs/bisect/skip-${u}`,u);let h=await j(e,u);await vt(e,`# skip: [${u}] ${ue(h.message)}`),await vt(e,`git bisect skip ${u}`)}d=await ys(e,t,n)}else continue;if(d.exitCode!==0)return d;s+=d.stdout}return{stdout:s,stderr:"",exitCode:0}}function Cm(e,t){e.command("run",{description:"Bisect by running a command",args:[K.string().name("cmd").describe("Command and arguments to run").variadic()],handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Tt(s))return bs;if(!r.exec)return S("bisect run requires shell execution support");let i=n.cmd.join(" ");return Pm(s,r.env,t,i,r.exec,r.cwd)}})}async function Pm(e,t,n,r,o,s){let i="";for(;;){i+=`running '${r}'
178
+ `),a&&await Le(e,"BISECT_FIRST_PARENT",""),i){let u=await Z(e);u&&await Le(e,"BISECT_HEAD",u)}if(r.length>0){let u=r[0],h=await yt(e,u);if(M(h))return h;await J(e,`refs/bisect/${o}`,h);let m=await j(e,h);await vt(e,`# ${o}: [${h}] ${ue(m.message)}`);for(let p=1;p<r.length;p++){let g=r[p],w=await yt(e,g);if(M(w))return w;await J(e,`refs/bisect/${s}-${w}`,w);let b=await j(e,w);await vt(e,`# ${s}: [${w}] ${ue(b.message)}`)}}let l=r.map(u=>`'${u}'`),d=l.length>0?` ${l.join(" ")}`:"";return await vt(e,`git bisect start${d}`),ys(e,t,n)}function pm(e,t){for(let n of["bad","good","new","old"])e.command(n,{description:n==="bad"||n==="new"?"Mark a commit as bad/new":"Mark a commit as good/old",args:[q.string().name("rev").describe("Revision to mark").optional()],handler:async(r,o)=>{let s=await K(o.fs,o.cwd,t);return M(s)?s:gm(s,o.env,t,n,r.rev)}})}async function gm(e,t,n,r,o){if(!await Tt(e))return bs;let s=await gs(e),i=r==="bad"||r==="new"?s.termBad:s.termGood;return ws(e,t,n,i,s,o)}async function wm(e,t,n,r,o){if(!await Tt(e))return bs;let s=await gs(e);return r!==s.termBad&&r!==s.termGood?{stdout:"",stderr:`error: unknown command: 'git bisect ${r}'
179
+ `,exitCode:1}:ws(e,t,n,r,s,o[0])}async function ws(e,t,n,r,o,s){let i;if(s){let f=await yt(e,s);if(M(f))return f;i=f}else{let f=await aa(e);if(M(f))return f;i=f}let a=await j(e,i),c=ue(a.message);return r===o.termBad?await J(e,`refs/bisect/${o.termBad}`,i):await J(e,`refs/bisect/${o.termGood}-${i}`,i),await vt(e,`# ${r}: [${i}] ${c}`),await vt(e,`git bisect ${r} ${i}`),ys(e,t,n)}function bm(e,t){e.command("skip",{description:"Mark a commit as untestable",args:[q.string().name("revs").describe("Revisions to skip").optional().variadic()],handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Tt(s))return bs;let i=n.revs??[];if(i.length===0){let a=await aa(s);if(M(a))return a;i.push(a)}for(let a of i){let c;if(a.length===40&&/^[0-9a-f]+$/.test(a))c=a;else{let l=await yt(s,a);if(M(l))return l;c=l}await J(s,`refs/bisect/skip-${c}`,c);let f=await j(s,c);await vt(s,`# skip: [${c}] ${ue(f.message)}`),await vt(s,`git bisect skip ${c}`)}return ys(s,r.env,t)}})}function ym(e,t){e.command("reset",{description:"Finish bisecting and return to original branch",args:[q.string().name("commit").describe("Branch or commit to checkout").optional()],handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;return await Tt(s)?Em(s,r.env,t,n.commit):{stdout:`We are not bisecting.
180
+ `,stderr:"",exitCode:0}}})}async function Em(e,t,n,r){let o=(await $e(e,"BISECT_START"))?.trim()??"";if(await wo(e),r){let s=await yt(e,r);return M(s)?s:Xn(e,s,t,n)}if(o){let s=`refs/heads/${o}`,i=await U(e,s);if(i)return mr(e,o,s,i,t,n);let a=await We(e,o);if(a)return Xn(e,a,t,n)}return{stdout:"",stderr:"",exitCode:0}}function km(e,t){e.command("log",{description:"Show the bisect log",handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;return await Tt(s)?{stdout:await $e(s,"BISECT_LOG")??"",stderr:"",exitCode:0}:{stdout:"",stderr:`error: We are not bisecting.
181
+ `,exitCode:1}}})}function Rm(e,t){e.command("replay",{description:"Replay a bisect log",args:[q.string().name("logfile").describe("Path to bisect log file")],handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.logfile.startsWith("/")?n.logfile:H(r.cwd,n.logfile);if(!await r.fs.exists(i))return S(`cannot open '${n.logfile}': No such file or directory`);let a=await r.fs.readFile(i);return xm(s,r.env,t,a)}})}async function xm(e,t,n,r){await Tt(e)&&await wo(e);let o={termBad:"bad",termGood:"good"},s="";for(let i of r.split(`
182
+ `)){let a=i.trim();if(!a||a.startsWith("#"))continue;let c=a.match(/^git[\s-]bisect\s+(\S+)(.*)$/);if(!c)continue;let f=c[1],l=c[2].trim(),d;if(f==="start"){let u=l?l.split(/\s+/).map(h=>h.replace(/^'|'$/g,"")):[];d=await _f(e,t,n,u,"bad","good",!1,!1)}else if(f==="bad"||f==="new")d=await ws(e,t,n,"bad",o,l||void 0);else if(f==="good"||f==="old")d=await ws(e,t,n,"good",o,l||void 0);else if(f==="skip"){for(let u of l?l.split(/\s+/):[]){await J(e,`refs/bisect/skip-${u}`,u);let h=await j(e,u);await vt(e,`# skip: [${u}] ${ue(h.message)}`),await vt(e,`git bisect skip ${u}`)}d=await ys(e,t,n)}else continue;if(d.exitCode!==0)return d;s+=d.stdout}return{stdout:s,stderr:"",exitCode:0}}function Cm(e,t){e.command("run",{description:"Bisect by running a command",args:[q.string().name("cmd").describe("Command and arguments to run").variadic()],handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Tt(s))return bs;if(!r.exec)return S("bisect run requires shell execution support");let i=n.cmd.join(" ");return Pm(s,r.env,t,i,r.exec,r.cwd)}})}async function Pm(e,t,n,r,o,s){let i="";for(;;){i+=`running '${r}'
183
183
  `;let c=(await o(r,{cwd:s})).exitCode;if(c===125){let u=await aa(e);if(M(u))return u;await J(e,`refs/bisect/skip-${u}`,u);let h=await j(e,u);await vt(e,`# skip: [${u}] ${ue(h.message)}`),await vt(e,`git bisect skip ${u}`);let m=await ys(e,t,n);if(i+=m.stdout,m.stdout.includes("is the first bad commit"))return i+=`bisect found first bad commit
184
184
  `,{stdout:i,stderr:"",exitCode:0};if(m.exitCode!==0)return{stdout:i,stderr:m.stderr,exitCode:m.exitCode};continue}let f=await go(e),l=c===0?f.termGood:f.termBad,d=await ws(e,t,n,l,f,void 0);if(i+=d.stdout,d.stdout.includes("is the first bad commit"))return i+=`bisect found first bad commit
185
- `,{stdout:i,stderr:"",exitCode:0};if(d.exitCode!==0)return{stdout:i,stderr:d.stderr,exitCode:d.exitCode}}}function $m(e,t){e.command("terms",{description:"Show the terms used for old and new commits",options:{"term-good":O().describe("Show the term for the old state"),"term-bad":O().describe("Show the term for the new state")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Tt(s))return{stdout:"",stderr:`error: no terms defined
185
+ `,{stdout:i,stderr:"",exitCode:0};if(d.exitCode!==0)return{stdout:i,stderr:d.stderr,exitCode:d.exitCode}}}function $m(e,t){e.command("terms",{description:"Show the terms used for old and new commits",options:{"term-good":O().describe("Show the term for the old state"),"term-bad":O().describe("Show the term for the new state")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Tt(s))return{stdout:"",stderr:`error: no terms defined
186
186
  `,exitCode:1};let{termBad:i,termGood:a}=await gs(s);return n["term-good"]?{stdout:`${a}
187
187
  `,stderr:"",exitCode:0}:n["term-bad"]?{stdout:`${i}
188
188
  `,stderr:"",exitCode:0}:{stdout:`Your current terms are ${a} for the old state
189
189
  and ${i} for the new state.
190
- `,stderr:"",exitCode:0}}})}function Om(e,t){for(let n of["visualize","view"])e.command(n,{description:"Show remaining suspects in git log",handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);if(M(s))return s;let i=s;if(!await Tt(i))return bs;let a=await go(i);if(!a.badHash||a.goodHashes.length===0)return{stdout:"",stderr:`error: need both bad and good commits to visualize
190
+ `,stderr:"",exitCode:0}}})}function Om(e,t){for(let n of["visualize","view"])e.command(n,{description:"Show remaining suspects in git log",handler:async(r,o)=>{let s=await K(o.fs,o.cwd,t);if(M(s))return s;let i=s;if(!await Tt(i))return bs;let a=await go(i);if(!a.badHash||a.goodHashes.length===0)return{stdout:"",stderr:`error: need both bad and good commits to visualize
191
191
  `,exitCode:1};let{walkCommits:c}=await Promise.resolve().then(()=>(ur(),Rf)),f="";for await(let l of c(i,a.badHash,{exclude:a.goodHashes}))f+=`${X(l.hash)} ${ue(l.commit.message)}
192
192
  `;return{stdout:f,stderr:"",exitCode:0}}})}async function ys(e,t,n){let r=await go(e);return!r.badHash||r.goodHashes.length===0?{stdout:Pf(r),stderr:"",exitCode:0}:(await Le(e,"BISECT_ANCESTORS_OK",""),Sm(e,t,n,r))}async function Sm(e,t,n,r){let o=await Cf(e,r.badHash,r.goodHashes,new Set(r.skipHashes),r.firstParent);if(!o)return{stdout:"",stderr:`error: no testable commits found
193
193
  `,exitCode:1};if(o.found){let s=await Of(e,o.hash);return await vt(e,`# first bad commit: [${o.hash}] ${o.subject}`),{stdout:s,stderr:"",exitCode:0}}if(o.onlySkippedLeft){let s=`There are only 'skip'ped commits left to test.
@@ -195,35 +195,35 @@ The first bad commit could be any of:
195
195
  `;for(let i of r.skipHashes)s+=i+`
196
196
  `;return r.badHash&&(s+=r.badHash+`
197
197
  `),s+=`We cannot bisect more!
198
- `,{stdout:s,stderr:"",exitCode:2}}if(r.noCheckout)await Le(e,"BISECT_HEAD",o.hash);else{let s=await Yn(e,o.hash,t,n);if(s.exitCode!==0)return s}return await Le(e,"BISECT_EXPECTED_REV",o.hash+`
199
- `),{stdout:$f(o),stderr:"",exitCode:0}}se();ie();function Bt(e){if(e.length===0)return[];let t=e.split(`
198
+ `,{stdout:s,stderr:"",exitCode:2}}if(r.noCheckout)await Le(e,"BISECT_HEAD",o.hash);else{let s=await Xn(e,o.hash,t,n);if(s.exitCode!==0)return s}return await Le(e,"BISECT_EXPECTED_REV",o.hash+`
199
+ `),{stdout:$f(o),stderr:"",exitCode:0}}se();ie();function Wt(e){if(e.length===0)return[];let t=e.split(`
200
200
  `);return t[t.length-1]===""&&t.pop(),t}function xt(e){if(e.length===0)return[];let t=[],n=0;for(let r=0;r<e.length;r++)e[r]===`
201
- `&&(t.push(e.slice(n,r+1)),n=r+1);return n<e.length&&t.push(e.slice(n)),t}var Im=4,Uf=1024,So=100,vo=0,Io=1,Gr=2;function fa(e){let t=1;for(;t*t<e;)t++;return t}function Tm(e,t){let n=new Map,r=[],o=new Array(e.length),s=new Array(t.length);for(let i=0;i<e.length;i++){let a=e[i],c=n.get(a);c===void 0&&(c=r.length,n.set(a,c),r.push({len1:0,len2:0})),r[c].len1++,o[i]=c}for(let i=0;i<t.length;i++){let a=t[i],c=n.get(a);c===void 0&&(c=r.length,n.set(a,c),r.push({len1:0,len2:0})),r[c].len2++,s[i]=c}return{classes1:o,classes2:s,classInfo:r}}function vm(e,t,n,r){let o=0,s=Math.min(t,r);for(;o<s&&e[o]===n[o];)o++;let i=o,a=0,c=s-i;for(;a<c&&e[t-1-a]===n[r-1-a];)a++;return{dstart:i,dend1:t-a-1,dend2:r-a-1}}function Bf(e,t,n,r){t-n>So&&(n=t-So),r-t>So&&(r=t+So);let o=0,s=1;for(let c=1;t-c>=n;c++){let f=e[t-c];if(f===vo)o++;else if(f===Gr)s++;else break}if(o===0)return!1;let i=0,a=1;for(let c=1;t+c<=r;c++){let f=e[t+c];if(f===vo)i++;else if(f===Gr)a++;else break}return i===0?!1:(i+=o,a+=s,a*Im<a+i)}function Hm(e,t,n,r,o,s,i,a,c,f){let l=new Uint8Array(t),d=new Uint8Array(r),u=Math.min(fa(t),Uf);for(let g=s;g<=i;g++){let w=o[e[g]].len2;w===0?l[g]=vo:w>=u?l[g]=Gr:l[g]=Io}let h=Math.min(fa(r),Uf);for(let g=s;g<=a;g++){let w=o[n[g]].len1;w===0?d[g]=vo:w>=h?d[g]=Gr:d[g]=Io}let m=[];for(let g=s;g<=i;g++)l[g]===Io||l[g]===Gr&&!Bf(l,g,s,i)?m.push(g):c[g]=1;let p=[];for(let g=s;g<=a;g++)d[g]===Io||d[g]===Gr&&!Bf(d,g,s,a)?p.push(g):f[g]=1;return{refIndex1:m,nreff1:m.length,refIndex2:p,nreff2:p.length}}var Xn=20,Wf=4,Am=256,Dm=256,To=2147483647;function Rt(e,t){return e[t]??0}function Mm(e,t,n,r,o,s,i,a,c,f){let l=t-s,d=n-o,u=t-o,h=n-s,m=u-h&1,p=u,g=u,w=h,b=h;i[u]=t,a[h]=n;for(let k=1;;k++){let E=!1;p>l?i[--p-1]=-1:++p,g<d?i[++g+1]=-1:--g;for(let R=g;R>=p;R-=2){let x;Rt(i,R-1)>=Rt(i,R+1)?x=Rt(i,R-1)+1:x=Rt(i,R+1);let y=x,C=x-R;for(;x<n&&C<s&&e[x]===r[C];)x++,C++;if(x-y>Xn&&(E=!0),i[R]=x,m&&w<=R&&R<=b&&Rt(a,R)<=x)return{i1:x,i2:C,minLo:!0,minHi:!0}}w>l?a[--w-1]=To:++w,b<d?a[++b+1]=To:--b;for(let R=b;R>=w;R-=2){let x;Rt(a,R-1)<Rt(a,R+1)?x=Rt(a,R-1):x=Rt(a,R+1)-1;let y=x,C=x-R;for(;x>t&&C>o&&e[x-1]===r[C-1];)x--,C--;if(y-x>Xn&&(E=!0),a[R]=x,!m&&p<=R&&R<=g&&x<=Rt(i,R))return{i1:x,i2:C,minLo:!0,minHi:!0}}if(!c){if(E&&k>Am){let R=0,x=null;for(let y=g;y>=p;y-=2){let C=y>u?y-u:u-y,P=Rt(i,y),D=P-y,A=P-t+(D-o)-C;if(A>Wf*k&&A>R&&t+Xn<=P&&P<n&&o+Xn<=D&&D<s){let $=!0;for(let v=1;v<=Xn;v++)if(e[P-v]!==r[D-v]){$=!1;break}$&&(R=A,x={i1:P,i2:D,minLo:!0,minHi:!1})}}if(x)return x;R=0,x=null;for(let y=b;y>=w;y-=2){let C=y>h?y-h:h-y,P=Rt(a,y),D=P-y,A=n-P+(s-D)-C;if(A>Wf*k&&A>R&&t<P&&P<=n-Xn&&o<D&&D<=s-Xn){let $=!0;for(let v=0;v<Xn;v++)if(e[P+v]!==r[D+v]){$=!1;break}$&&(R=A,x={i1:P,i2:D,minLo:!1,minHi:!0})}}if(x)return x}if(k>=f){let R=-1,x=-1;for(let P=g;P>=p;P-=2){let D=Math.min(Rt(i,P),n),A=D-P;s<A&&(D=s+P,A=s),R<D+A&&(R=D+A,x=D)}let y=To,C=To;for(let P=b;P>=w;P-=2){let D=Math.max(t,Rt(a,P)),A=D-P;A<o&&(D=o+P,A=o),D+A<y&&(y=D+A,C=D)}return n+s-y<R-(t+o)?{i1:x,i2:R-x,minLo:!0,minHi:!1}:{i1:C,i2:y-C,minLo:!1,minHi:!0}}}}}function la(e,t,n,r,o,s,i,a,c,f,l,d,u,h){for(;t<n&&o<s&&e[t]===r[o];)t++,o++;for(;t<n&&o<s&&e[n-1]===r[s-1];)n--,s--;if(t===n)for(let m=o;m<s;m++)a[f[m]]=1;else if(o===s)for(let m=t;m<n;m++)i[c[m]]=1;else{let m=Mm(e,t,n,r,o,s,l,d,u,h);la(e,t,m.i1,r,o,m.i2,i,a,c,f,l,d,m.minLo,h),la(e,m.i1,n,r,m.i2,s,i,a,c,f,l,d,m.minHi,h)}}function jm(e,t,n,r){let o=[],s=0,i=0,a=1,c=1;for(;s<e.length||i<t.length;){if(s<e.length&&i<t.length&&!n[s]&&!r[i]){o.push({type:"keep",line:e[s]??"",oldLineNo:a++,newLineNo:c++}),s++,i++;continue}for(;s<e.length&&n[s];)o.push({type:"delete",line:e[s]??"",oldLineNo:a++,newLineNo:0}),s++;for(;i<t.length&&r[i];)o.push({type:"insert",line:t[i]??"",oldLineNo:0,newLineNo:c++}),i++}return o}var qf=200,Kf=20,zf=100,Lm=1,Gm=21,Nm=-30,Fm=6,_m=-4,Um=10,Bm=24,Wm=17,qm=23,Km=17,zm=60;function ca(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r===32)t+=1;else if(r===9)t+=8-t%8;else if(!(r===10||r===13||r===11||r===12))return t;if(t>=qf)return qf}return-1}function Vf(e,t,n){let r={endOfFile:!1,indent:-1,preBlank:0,preIndent:-1,postBlank:0,postIndent:-1};n>=t?(r.endOfFile=!0,r.indent=-1):(r.endOfFile=!1,r.indent=ca(e[n]));for(let o=n-1;o>=0&&(r.preIndent=ca(e[o]),r.preIndent===-1);o--)if(r.preBlank+=1,r.preBlank===Kf){r.preIndent=0;break}for(let o=n+1;o<t&&(r.postIndent=ca(e[o]),r.postIndent===-1);o++)if(r.postBlank+=1,r.postBlank===Kf){r.postIndent=0;break}return r}function Yf(e,t){e.preIndent===-1&&e.preBlank===0&&(t.penalty+=Lm),e.endOfFile&&(t.penalty+=Gm);let n=e.indent===-1?1+e.postBlank:0,r=e.preBlank+n;t.penalty+=Nm*r,t.penalty+=Fm*n;let o=e.indent!==-1?e.indent:e.postIndent,s=r!==0;t.effectiveIndent+=o,o===-1||e.preIndent===-1||(o>e.preIndent?t.penalty+=s?Um:_m:o===e.preIndent||(e.postIndent!==-1&&e.postIndent>o?t.penalty+=s?Wm:Bm:t.penalty+=s?Km:qm))}function Vm(e,t){let n=(e.effectiveIndent>t.effectiveIndent?1:0)-(e.effectiveIndent<t.effectiveIndent?1:0);return zm*n+(e.penalty-t.penalty)}function Xf(e,t,n,r,o,s){let i=0,a=0;for(;e[a];)a++;let c=0,f=0;for(;o[f];)f++;let l=(d,u)=>t[d]===t[u];for(;;){if(a!==i){let d,u,h;do{for(d=a-i,u=-1;i>0&&l(i-1,a-1);){for(e[--i]=1,e[--a]=0;e[i-1];)i--;if(c===0)break;for(f=c-1,c=f;o[c-1];c--);}for(h=a,f>c&&(u=a);!(a>=r||!l(i,a));){for(e[i++]=0,e[a++]=1;e[a];)a++;if(f>=s)break;for(c=f+1,f=c;o[f];f++);f>c&&(u=a)}}while(d!==a-i);if(a!==h)if(u!==-1)for(;f===c;){for(e[--a]=0,e[--i]=1;e[i-1];)i--;for(f=c-1,c=f;o[c-1];c--);}else{let m=-1,p={effectiveIndent:0,penalty:0},g=h;for(a-d-1>g&&(g=a-d-1),a-zf>g&&(g=a-zf);g<=a;g++){let w={effectiveIndent:0,penalty:0},b=Vf(n,r,g);Yf(b,w);let k=Vf(n,r,g-d);Yf(k,w),(m===-1||Vm(w,p)<=0)&&(p={effectiveIndent:w.effectiveIndent,penalty:w.penalty},m=g)}for(;a>m;){for(e[--a]=0,e[--i]=1;e[i-1];)i--;for(f=c-1,c=f;o[c-1];c--);}}}if(a>=r)break;for(i=a+1,a=i;e[a];a++);if(f>=s)break;for(c=f+1,f=c;o[f];f++);}}function da(e,t){let n=e.length,r=t.length,o=new Uint8Array(n),s=new Uint8Array(r);if(n>0&&r>0){let{classes1:i,classes2:a,classInfo:c}=Tm(e,t),{dstart:f,dend1:l,dend2:d}=vm(i,n,a,r);if(f>l)for(let u=f;u<r-(n-1-l);u++)s[u]=1;else if(f>d)for(let u=f;u<n-(r-1-d);u++)o[u]=1;else{let{refIndex1:u,nreff1:h,refIndex2:m,nreff2:p}=Hm(i,n,a,r,c,f,l,d,o,s);if(h>0&&p>0){let g=new Array(h);for(let x=0;x<h;x++)g[x]=i[u[x]];let w=new Array(p);for(let x=0;x<p;x++)w[x]=a[m[x]];let b={},k={},E=h+p+3,R=Math.max(Dm,fa(E));la(g,0,h,w,0,p,o,s,u,m,b,k,!1,R)}else if(h===0)for(let g=0;g<p;g++)s[m[g]]=1;else for(let g=0;g<h;g++)o[u[g]]=1;Xf(o,i,e,n,s,r),Xf(s,a,t,r,o,n)}}else n===0?s.fill(1):o.fill(1);return{changedOld:o,changedNew:s}}function ct(e,t){let n=e.length,r=t.length;if(n===0&&r===0)return[];if(n===0)return t.map((i,a)=>({type:"insert",line:i,oldLineNo:0,newLineNo:a+1}));if(r===0)return e.map((i,a)=>({type:"delete",line:i,oldLineNo:a+1,newLineNo:0}));let{changedOld:o,changedNew:s}=da(e,t);return jm(e,t,o,s)}var Ym=3;function Xm(e,t=Ym){if(t=Math.max(0,t),e.length===0)return[];let n=[];for(let a=0;a<e.length;a++){let c=e[a];c&&c.type!=="keep"&&n.push(a)}if(n.length===0)return[];let r=n[0]??0,o=[],s=Math.max(0,r-t),i=Math.min(e.length-1,r+t);for(let a=1;a<n.length;a++){let c=n[a]??0,f=Math.max(0,c-t),l=Math.min(e.length-1,c+t);f<=i+1||(o.push({start:s,end:i}),s=f),i=l}return o.push({start:s,end:i}),o.map(a=>Zm(e,a.start,a.end))}function Zm(e,t,n){let r=0,o=0,s=0,i=0,a=[],c=!1,f=!1;for(let l=t;l<=n;l++){let d=e[l];if(d)switch(d.type){case"keep":c||(r=d.oldLineNo,c=!0),f||(s=d.newLineNo,f=!0),o++,i++,a.push({type:"context",content:d.line});break;case"delete":c||(r=d.oldLineNo,c=!0),o++,a.push({type:"delete",content:d.line});break;case"insert":f||(s=d.newLineNo,f=!0),i++,a.push({type:"insert",content:d.line});break}}if(c||(r=s>0?s:1),f||(s=r>0?r:1),o===0)for(let l=t;l<=n;l++){let d=e[l];if(d&&d.type==="insert"){r=d.newLineNo>1?d.newLineNo-1:0;break}}if(i===0)for(let l=t;l<=n;l++){let d=e[l];if(d&&d.type==="delete"){s=d.oldLineNo>1?d.oldLineNo-1:0;break}}return{oldStart:r,oldCount:o,newStart:s,newCount:i,lines:a}}function Ho(e){return e?e.length<40?e:X(e):"0000000"}function Zf(e,t,n,r,o,s){let{path:i,oldMode:a,newMode:c}=t;e.push(`diff --git a/${i} b/${n}`),s?(e.push(`similarity index ${t.similarity??100}%`),e.push(`rename from ${i}`),e.push(`rename to ${n}`)):r?e.push(`new file mode ${c||"100644"}`):o?e.push(`deleted file mode ${a||"100644"}`):a&&c&&a!==c&&(e.push(`old mode ${a}`),e.push(`new mode ${c}`))}function Jm(e,t,n){let{path:r,oldContent:o,newContent:s,oldMode:i,oldHash:a,newHash:c}=e,f=e.renameTo!==void 0,l=e.renameTo??r,d=e.isNew??o==="",u=e.isDeleted??s==="";if(o===s&&!f)return"";let h=[];if(Zf(h,e,l,d,u,f),o!==s){if(a||c){let m=Ho(a),p=Ho(c);d||u||f?h.push(`index ${m}..${p}`):h.push(`index ${m}..${p} ${i||"100644"}`)}t&&n?h.push(`Binary files a/${r} and b/${l} differ`):d?h.push(`Binary files /dev/null and b/${l} differ`):u?h.push(`Binary files a/${r} and /dev/null differ`):h.push(`Binary files a/${r} and b/${l} differ`)}return`${h.join(`
201
+ `&&(t.push(e.slice(n,r+1)),n=r+1);return n<e.length&&t.push(e.slice(n)),t}var Im=4,Uf=1024,So=100,vo=0,Io=1,Gr=2;function fa(e){let t=1;for(;t*t<e;)t++;return t}function Tm(e,t){let n=new Map,r=[],o=new Array(e.length),s=new Array(t.length);for(let i=0;i<e.length;i++){let a=e[i],c=n.get(a);c===void 0&&(c=r.length,n.set(a,c),r.push({len1:0,len2:0})),r[c].len1++,o[i]=c}for(let i=0;i<t.length;i++){let a=t[i],c=n.get(a);c===void 0&&(c=r.length,n.set(a,c),r.push({len1:0,len2:0})),r[c].len2++,s[i]=c}return{classes1:o,classes2:s,classInfo:r}}function vm(e,t,n,r){let o=0,s=Math.min(t,r);for(;o<s&&e[o]===n[o];)o++;let i=o,a=0,c=s-i;for(;a<c&&e[t-1-a]===n[r-1-a];)a++;return{dstart:i,dend1:t-a-1,dend2:r-a-1}}function Bf(e,t,n,r){t-n>So&&(n=t-So),r-t>So&&(r=t+So);let o=0,s=1;for(let c=1;t-c>=n;c++){let f=e[t-c];if(f===vo)o++;else if(f===Gr)s++;else break}if(o===0)return!1;let i=0,a=1;for(let c=1;t+c<=r;c++){let f=e[t+c];if(f===vo)i++;else if(f===Gr)a++;else break}return i===0?!1:(i+=o,a+=s,a*Im<a+i)}function Hm(e,t,n,r,o,s,i,a,c,f){let l=new Uint8Array(t),d=new Uint8Array(r),u=Math.min(fa(t),Uf);for(let g=s;g<=i;g++){let w=o[e[g]].len2;w===0?l[g]=vo:w>=u?l[g]=Gr:l[g]=Io}let h=Math.min(fa(r),Uf);for(let g=s;g<=a;g++){let w=o[n[g]].len1;w===0?d[g]=vo:w>=h?d[g]=Gr:d[g]=Io}let m=[];for(let g=s;g<=i;g++)l[g]===Io||l[g]===Gr&&!Bf(l,g,s,i)?m.push(g):c[g]=1;let p=[];for(let g=s;g<=a;g++)d[g]===Io||d[g]===Gr&&!Bf(d,g,s,a)?p.push(g):f[g]=1;return{refIndex1:m,nreff1:m.length,refIndex2:p,nreff2:p.length}}var Zn=20,Wf=4,Am=256,Dm=256,To=2147483647;function Rt(e,t){return e[t]??0}function Mm(e,t,n,r,o,s,i,a,c,f){let l=t-s,d=n-o,u=t-o,h=n-s,m=u-h&1,p=u,g=u,w=h,b=h;i[u]=t,a[h]=n;for(let R=1;;R++){let E=!1;p>l?i[--p-1]=-1:++p,g<d?i[++g+1]=-1:--g;for(let k=g;k>=p;k-=2){let x;Rt(i,k-1)>=Rt(i,k+1)?x=Rt(i,k-1)+1:x=Rt(i,k+1);let y=x,P=x-k;for(;x<n&&P<s&&e[x]===r[P];)x++,P++;if(x-y>Zn&&(E=!0),i[k]=x,m&&w<=k&&k<=b&&Rt(a,k)<=x)return{i1:x,i2:P,minLo:!0,minHi:!0}}w>l?a[--w-1]=To:++w,b<d?a[++b+1]=To:--b;for(let k=b;k>=w;k-=2){let x;Rt(a,k-1)<Rt(a,k+1)?x=Rt(a,k-1):x=Rt(a,k+1)-1;let y=x,P=x-k;for(;x>t&&P>o&&e[x-1]===r[P-1];)x--,P--;if(y-x>Zn&&(E=!0),a[k]=x,!m&&p<=k&&k<=g&&x<=Rt(i,k))return{i1:x,i2:P,minLo:!0,minHi:!0}}if(!c){if(E&&R>Am){let k=0,x=null;for(let y=g;y>=p;y-=2){let P=y>u?y-u:u-y,C=Rt(i,y),A=C-y,D=C-t+(A-o)-P;if(D>Wf*R&&D>k&&t+Zn<=C&&C<n&&o+Zn<=A&&A<s){let $=!0;for(let v=1;v<=Zn;v++)if(e[C-v]!==r[A-v]){$=!1;break}$&&(k=D,x={i1:C,i2:A,minLo:!0,minHi:!1})}}if(x)return x;k=0,x=null;for(let y=b;y>=w;y-=2){let P=y>h?y-h:h-y,C=Rt(a,y),A=C-y,D=n-C+(s-A)-P;if(D>Wf*R&&D>k&&t<C&&C<=n-Zn&&o<A&&A<=s-Zn){let $=!0;for(let v=0;v<Zn;v++)if(e[C+v]!==r[A+v]){$=!1;break}$&&(k=D,x={i1:C,i2:A,minLo:!1,minHi:!0})}}if(x)return x}if(R>=f){let k=-1,x=-1;for(let C=g;C>=p;C-=2){let A=Math.min(Rt(i,C),n),D=A-C;s<D&&(A=s+C,D=s),k<A+D&&(k=A+D,x=A)}let y=To,P=To;for(let C=b;C>=w;C-=2){let A=Math.max(t,Rt(a,C)),D=A-C;D<o&&(A=o+C,D=o),A+D<y&&(y=A+D,P=A)}return n+s-y<k-(t+o)?{i1:x,i2:k-x,minLo:!0,minHi:!1}:{i1:P,i2:y-P,minLo:!1,minHi:!0}}}}}function la(e,t,n,r,o,s,i,a,c,f,l,d,u,h){for(;t<n&&o<s&&e[t]===r[o];)t++,o++;for(;t<n&&o<s&&e[n-1]===r[s-1];)n--,s--;if(t===n)for(let m=o;m<s;m++)a[f[m]]=1;else if(o===s)for(let m=t;m<n;m++)i[c[m]]=1;else{let m=Mm(e,t,n,r,o,s,l,d,u,h);la(e,t,m.i1,r,o,m.i2,i,a,c,f,l,d,m.minLo,h),la(e,m.i1,n,r,m.i2,s,i,a,c,f,l,d,m.minHi,h)}}function jm(e,t,n,r){let o=[],s=0,i=0,a=1,c=1;for(;s<e.length||i<t.length;){if(s<e.length&&i<t.length&&!n[s]&&!r[i]){o.push({type:"keep",line:e[s]??"",oldLineNo:a++,newLineNo:c++}),s++,i++;continue}for(;s<e.length&&n[s];)o.push({type:"delete",line:e[s]??"",oldLineNo:a++,newLineNo:0}),s++;for(;i<t.length&&r[i];)o.push({type:"insert",line:t[i]??"",oldLineNo:0,newLineNo:c++}),i++}return o}var qf=200,Kf=20,zf=100,Lm=1,Gm=21,Nm=-30,Fm=6,_m=-4,Um=10,Bm=24,Wm=17,qm=23,Km=17,zm=60;function ca(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(r===32)t+=1;else if(r===9)t+=8-t%8;else if(!(r===10||r===13||r===11||r===12))return t;if(t>=qf)return qf}return-1}function Vf(e,t,n){let r={endOfFile:!1,indent:-1,preBlank:0,preIndent:-1,postBlank:0,postIndent:-1};n>=t?(r.endOfFile=!0,r.indent=-1):(r.endOfFile=!1,r.indent=ca(e[n]));for(let o=n-1;o>=0&&(r.preIndent=ca(e[o]),r.preIndent===-1);o--)if(r.preBlank+=1,r.preBlank===Kf){r.preIndent=0;break}for(let o=n+1;o<t&&(r.postIndent=ca(e[o]),r.postIndent===-1);o++)if(r.postBlank+=1,r.postBlank===Kf){r.postIndent=0;break}return r}function Yf(e,t){e.preIndent===-1&&e.preBlank===0&&(t.penalty+=Lm),e.endOfFile&&(t.penalty+=Gm);let n=e.indent===-1?1+e.postBlank:0,r=e.preBlank+n;t.penalty+=Nm*r,t.penalty+=Fm*n;let o=e.indent!==-1?e.indent:e.postIndent,s=r!==0;t.effectiveIndent+=o,o===-1||e.preIndent===-1||(o>e.preIndent?t.penalty+=s?Um:_m:o===e.preIndent||(e.postIndent!==-1&&e.postIndent>o?t.penalty+=s?Wm:Bm:t.penalty+=s?Km:qm))}function Vm(e,t){let n=(e.effectiveIndent>t.effectiveIndent?1:0)-(e.effectiveIndent<t.effectiveIndent?1:0);return zm*n+(e.penalty-t.penalty)}function Xf(e,t,n,r,o,s){let i=0,a=0;for(;e[a];)a++;let c=0,f=0;for(;o[f];)f++;let l=(d,u)=>t[d]===t[u];for(;;){if(a!==i){let d,u,h;do{for(d=a-i,u=-1;i>0&&l(i-1,a-1);){for(e[--i]=1,e[--a]=0;e[i-1];)i--;if(c===0)break;for(f=c-1,c=f;o[c-1];c--);}for(h=a,f>c&&(u=a);!(a>=r||!l(i,a));){for(e[i++]=0,e[a++]=1;e[a];)a++;if(f>=s)break;for(c=f+1,f=c;o[f];f++);f>c&&(u=a)}}while(d!==a-i);if(a!==h)if(u!==-1)for(;f===c;){for(e[--a]=0,e[--i]=1;e[i-1];)i--;for(f=c-1,c=f;o[c-1];c--);}else{let m=-1,p={effectiveIndent:0,penalty:0},g=h;for(a-d-1>g&&(g=a-d-1),a-zf>g&&(g=a-zf);g<=a;g++){let w={effectiveIndent:0,penalty:0},b=Vf(n,r,g);Yf(b,w);let R=Vf(n,r,g-d);Yf(R,w),(m===-1||Vm(w,p)<=0)&&(p={effectiveIndent:w.effectiveIndent,penalty:w.penalty},m=g)}for(;a>m;){for(e[--a]=0,e[--i]=1;e[i-1];)i--;for(f=c-1,c=f;o[c-1];c--);}}}if(a>=r)break;for(i=a+1,a=i;e[a];a++);if(f>=s)break;for(c=f+1,f=c;o[f];f++);}}function da(e,t){let n=e.length,r=t.length,o=new Uint8Array(n),s=new Uint8Array(r);if(n>0&&r>0){let{classes1:i,classes2:a,classInfo:c}=Tm(e,t),{dstart:f,dend1:l,dend2:d}=vm(i,n,a,r);if(f>l)for(let u=f;u<r-(n-1-l);u++)s[u]=1;else if(f>d)for(let u=f;u<n-(r-1-d);u++)o[u]=1;else{let{refIndex1:u,nreff1:h,refIndex2:m,nreff2:p}=Hm(i,n,a,r,c,f,l,d,o,s);if(h>0&&p>0){let g=new Array(h);for(let x=0;x<h;x++)g[x]=i[u[x]];let w=new Array(p);for(let x=0;x<p;x++)w[x]=a[m[x]];let b={},R={},E=h+p+3,k=Math.max(Dm,fa(E));la(g,0,h,w,0,p,o,s,u,m,b,R,!1,k)}else if(h===0)for(let g=0;g<p;g++)s[m[g]]=1;else for(let g=0;g<h;g++)o[u[g]]=1;Xf(o,i,e,n,s,r),Xf(s,a,t,r,o,n)}}else n===0?s.fill(1):o.fill(1);return{changedOld:o,changedNew:s}}function ct(e,t){let n=e.length,r=t.length;if(n===0&&r===0)return[];if(n===0)return t.map((i,a)=>({type:"insert",line:i,oldLineNo:0,newLineNo:a+1}));if(r===0)return e.map((i,a)=>({type:"delete",line:i,oldLineNo:a+1,newLineNo:0}));let{changedOld:o,changedNew:s}=da(e,t);return jm(e,t,o,s)}var Ym=3;function Xm(e,t=Ym){if(t=Math.max(0,t),e.length===0)return[];let n=[];for(let a=0;a<e.length;a++){let c=e[a];c&&c.type!=="keep"&&n.push(a)}if(n.length===0)return[];let r=n[0]??0,o=[],s=Math.max(0,r-t),i=Math.min(e.length-1,r+t);for(let a=1;a<n.length;a++){let c=n[a]??0,f=Math.max(0,c-t),l=Math.min(e.length-1,c+t);f<=i+1||(o.push({start:s,end:i}),s=f),i=l}return o.push({start:s,end:i}),o.map(a=>Zm(e,a.start,a.end))}function Zm(e,t,n){let r=0,o=0,s=0,i=0,a=[],c=!1,f=!1;for(let l=t;l<=n;l++){let d=e[l];if(d)switch(d.type){case"keep":c||(r=d.oldLineNo,c=!0),f||(s=d.newLineNo,f=!0),o++,i++,a.push({type:"context",content:d.line});break;case"delete":c||(r=d.oldLineNo,c=!0),o++,a.push({type:"delete",content:d.line});break;case"insert":f||(s=d.newLineNo,f=!0),i++,a.push({type:"insert",content:d.line});break}}if(c||(r=s>0?s:1),f||(s=r>0?r:1),o===0)for(let l=t;l<=n;l++){let d=e[l];if(d&&d.type==="insert"){r=d.newLineNo>1?d.newLineNo-1:0;break}}if(i===0)for(let l=t;l<=n;l++){let d=e[l];if(d&&d.type==="delete"){s=d.oldLineNo>1?d.oldLineNo-1:0;break}}return{oldStart:r,oldCount:o,newStart:s,newCount:i,lines:a}}function Ho(e){return e?e.length<40?e:X(e):"0000000"}function Zf(e,t,n,r,o,s){let{path:i,oldMode:a,newMode:c}=t;e.push(`diff --git a/${i} b/${n}`),s?(e.push(`similarity index ${t.similarity??100}%`),e.push(`rename from ${i}`),e.push(`rename to ${n}`)):r?e.push(`new file mode ${c||"100644"}`):o?e.push(`deleted file mode ${a||"100644"}`):a&&c&&a!==c&&(e.push(`old mode ${a}`),e.push(`new mode ${c}`))}function Jm(e,t,n){let{path:r,oldContent:o,newContent:s,oldMode:i,oldHash:a,newHash:c}=e,f=e.renameTo!==void 0,l=e.renameTo??r,d=e.isNew??o==="",u=e.isDeleted??s==="";if(o===s&&!f)return"";let h=[];if(Zf(h,e,l,d,u,f),o!==s){if(a||c){let m=Ho(a),p=Ho(c);d||u||f?h.push(`index ${m}..${p}`):h.push(`index ${m}..${p} ${i||"100644"}`)}t&&n?h.push(`Binary files a/${r} and b/${l} differ`):d?h.push(`Binary files /dev/null and b/${l} differ`):u?h.push(`Binary files a/${r} and /dev/null differ`):h.push(`Binary files a/${r} and b/${l} differ`)}return`${h.join(`
202
202
  `)}
203
- `}function Ht(e){let{path:t,oldContent:n,newContent:r,oldMode:o,newMode:s,oldHash:i,newHash:a}=e,c=e.renameTo!==void 0,f=e.renameTo??t,l=De(n),d=De(r);if(l||d)return Jm(e,l,d);let u=Bt(n),h=Bt(r),m=n.length>0&&n.endsWith(`
203
+ `}function Ht(e){let{path:t,oldContent:n,newContent:r,oldMode:o,newMode:s,oldHash:i,newHash:a}=e,c=e.renameTo!==void 0,f=e.renameTo??t,l=je(n),d=je(r);if(l||d)return Jm(e,l,d);let u=Wt(n),h=Wt(r),m=n.length>0&&n.endsWith(`
204
204
  `),p=r.length>0&&r.endsWith(`
205
- `),g="\0NOEOL",w=u;!m&&u.length>0&&(w=u.slice(),w[w.length-1]+=g);let b=h;!p&&h.length>0&&(b=h.slice(),b[b.length-1]+=g);let k=ct(w,b);if(!m||!p)for(let A of k)A.line.includes(g)&&(A.line=A.line.replace(g,""));let E=Xm(k,e.contextLines);if(E.length===0&&!c)return"";let R=e.isNew??n==="",x=e.isDeleted??r==="",y=[];if(Zf(y,e,f,R,x,c),E.length===0)return`${y.join(`
205
+ `),g="\0NOEOL",w=u;!m&&u.length>0&&(w=u.slice(),w[w.length-1]+=g);let b=h;!p&&h.length>0&&(b=h.slice(),b[b.length-1]+=g);let R=ct(w,b);if(!m||!p)for(let D of R)D.line.includes(g)&&(D.line=D.line.replace(g,""));let E=Xm(R,e.contextLines);if(E.length===0&&!c)return"";let k=e.isNew??n==="",x=e.isDeleted??r==="",y=[];if(Zf(y,e,f,k,x,c),E.length===0)return`${y.join(`
206
206
  `)}
207
- `;if(i||a){let A=Ho(i),$=Ho(a);R||x?y.push(`index ${A}..${$}`):c?y.push(`index ${A}..${$} ${o||"100644"}`):o&&s&&o!==s?y.push(`index ${A}..${$}`):y.push(`index ${A}..${$} ${o||"100644"}`)}let C=A=>A.includes(" ")?" ":"";R?(y.push("--- /dev/null"),y.push(`+++ b/${f}${C(f)}`)):x?(y.push(`--- a/${t}${C(t)}`),y.push("+++ /dev/null")):(y.push(`--- a/${t}${C(t)}`),y.push(`+++ b/${f}${C(f)}`));let P=u.length,D=h.length;for(let A of E){let $=A.oldCount===1?`${A.oldStart}`:`${A.oldStart},${A.oldCount}`,v=A.newCount===1?`${A.newStart}`:`${A.newStart},${A.newCount}`,_="",G=A.oldCount===0?A.oldStart-1:A.oldStart-2;for(let L=G;L>=0;L--){let W=u[L];if(W&&/^[a-zA-Z$_]/.test(W)){_=` ${W.trimEnd().slice(0,79)}`;break}}y.push(`@@ -${$} +${v} @@${_}`);let I=A.oldStart,T=A.newStart;for(let L of A.lines)switch(L.type){case"context":y.push(` ${L.content}`),(!m&&I===P||!p&&T===D)&&y.push("\"),I++,T++;break;case"delete":y.push(`-${L.content}`),!m&&I===P&&y.push("\"),I++;break;case"insert":y.push(`+${L.content}`),!p&&T===D&&y.push("\"),T++;break}}return`${y.join(`
207
+ `;if(i||a){let D=Ho(i),$=Ho(a);k||x?y.push(`index ${D}..${$}`):c?y.push(`index ${D}..${$} ${o||"100644"}`):o&&s&&o!==s?y.push(`index ${D}..${$}`):y.push(`index ${D}..${$} ${o||"100644"}`)}let P=D=>D.includes(" ")?" ":"";k?(y.push("--- /dev/null"),y.push(`+++ b/${f}${P(f)}`)):x?(y.push(`--- a/${t}${P(t)}`),y.push("+++ /dev/null")):(y.push(`--- a/${t}${P(t)}`),y.push(`+++ b/${f}${P(f)}`));let C=u.length,A=h.length;for(let D of E){let $=D.oldCount===1?`${D.oldStart}`:`${D.oldStart},${D.oldCount}`,v=D.newCount===1?`${D.newStart}`:`${D.newStart},${D.newCount}`,N="",L=D.oldCount===0?D.oldStart-1:D.oldStart-2;for(let G=L;G>=0;G--){let W=u[G];if(W&&/^[a-zA-Z$_]/.test(W)){N=` ${W.trimEnd().slice(0,79)}`;break}}y.push(`@@ -${$} +${v} @@${N}`);let I=D.oldStart,T=D.newStart;for(let G of D.lines)switch(G.type){case"context":y.push(` ${G.content}`),(!m&&I===C||!p&&T===A)&&y.push("\"),I++,T++;break;case"delete":y.push(`-${G.content}`),!m&&I===C&&y.push("\"),I++;break;case"insert":y.push(`+${G.content}`),!p&&T===A&&y.push("\"),T++;break}}return`${y.join(`
208
208
  `)}
209
- `}ie();Ae();async function Zn(e,t,n){return(await le(e,t)).get(n)?.hash??null}async function Jf(e,t,n,r){let o=await Ve(e,t,n);if(!o.find(c=>c.status==="added"&&c.path===r))return null;let{renames:i}=await it(e,o);return i.find(c=>c.newPath===r)?.oldPath??null}async function Qm(e,t,n,r,o,s){let i=await Zn(e,(await j(e,t)).tree,n);if(!i){let p=new Map,g=await j(e,t);for(let w of r)p.set(w.finalIdx,Jn(t,n,w.currentLine,s+w.finalIdx,o[w.finalIdx],g,!1,void 0));return p}let a=await oe(e,i),c=Bt(a),f=new Array(o.length),l=[...r],d=t,u=n,h=c;for(;l.length>0;){let p=await j(e,d);if(p.parents.length===0){for(let P of l)f[P.finalIdx]=Jn(d,u,P.currentLine,s+P.finalIdx,o[P.finalIdx],p,!0,void 0);break}let g=await Zn(e,p.tree,u),w=null,b=[];for(let P of p.parents){let D=await j(e,P),A=u,$=await Zn(e,D.tree,A);if(!$){let v=await Jf(e,D.tree,p.tree,u);v&&(A=v,$=await Zn(e,D.tree,A))}if($&&(b.push({hash:P,path:A,blobHash:$}),$===g)){w={hash:P,path:A};break}}if(w){d=w.hash,u=w.path;continue}if(b.length===0){for(let P of l)f[P.finalIdx]=Jn(d,u,P.currentLine,s+P.finalIdx,o[P.finalIdx],p,!1,void 0);break}let k=b[0],E=await oe(e,k.blobHash),R=Bt(E),x=ct(R,h),y=new Map;for(let P of x)P.type==="keep"&&y.set(P.newLineNo,P.oldLineNo);let C=[];for(let P of l){let D=y.get(P.currentLine);D!==void 0?C.push({finalIdx:P.finalIdx,currentLine:D}):f[P.finalIdx]=Jn(d,u,P.currentLine,s+P.finalIdx,o[P.finalIdx],p,!1,{hash:k.hash,path:k.path})}l=C,d=k.hash,u=k.path,h=R}let m=new Map;for(let p of r)f[p.finalIdx]&&m.set(p.finalIdx,f[p.finalIdx]);return m}async function Qf(e,t,n,r){let o=await j(e,t),s=await Zn(e,o.tree,n);if(!s)throw new Error(`no such path '${n}' in ${t.slice(0,7)}`);let i=await oe(e,s),a=Bt(i),c=r?.startLine??1,f=r?.endLine??a.length,l=a.slice(c-1,f),d=new Array(l.length),u=l.map((g,w)=>({finalIdx:w,currentLine:c+w})),h=t,m=n,p=a;for(;u.length>0;){let g=await j(e,h);if(g.parents.length===0){for(let y of u)d[y.finalIdx]=Jn(h,m,y.currentLine,c+y.finalIdx,l[y.finalIdx],g,!0,void 0);break}let w=await Zn(e,g.tree,m),b=[],k=null;for(let y of g.parents){let C=await j(e,y),P=m,D=await Zn(e,C.tree,P);if(!D){let A=await Jf(e,C.tree,g.tree,m);A&&(P=A,D=await Zn(e,C.tree,P))}if(D){let A={hash:y,path:P,blobHash:D};if(b.push(A),D===w){k=A;break}}}if(k){h=k.hash,m=k.path;continue}if(b.length===0){for(let y of u)d[y.finalIdx]=Jn(h,m,y.currentLine,c+y.finalIdx,l[y.finalIdx],g,!1,void 0);break}if(b.length===1){let y=b[0],C=await oe(e,y.blobHash),P=Bt(C),D=ct(P,p),A=new Map;for(let v of D)v.type==="keep"&&A.set(v.newLineNo,v.oldLineNo);let $=[];for(let v of u){let _=A.get(v.currentLine);_!==void 0?$.push({finalIdx:v.finalIdx,currentLine:_}):d[v.finalIdx]=Jn(h,m,v.currentLine,c+v.finalIdx,l[v.finalIdx],g,!1,{hash:y.hash,path:y.path})}u=$,h=y.hash,m=y.path,p=P;continue}let E=[];for(let y of b){let C=await oe(e,y.blobHash),P=Bt(C),D=ct(P,p),A=new Map;for(let $ of D)$.type==="keep"&&A.set($.newLineNo,$.oldLineNo);E.push({info:y,newToOld:A})}let R=new Map;for(let y of u){let C=!1;for(let P=0;P<E.length;P++){let D=E[P],A=D.newToOld.get(y.currentLine);if(A!==void 0){let $=R.get(P);$||($={info:D.info,lines:[]},R.set(P,$)),$.lines.push({finalIdx:y.finalIdx,currentLine:A}),C=!0;break}}C||(d[y.finalIdx]=Jn(h,m,y.currentLine,c+y.finalIdx,l[y.finalIdx],g,!1,{hash:b[0].hash,path:b[0].path}))}let x=R.get(0);for(let[y,C]of R){if(y===0)continue;let P=await Qm(e,C.info.hash,C.info.path,C.lines,l,c);for(let[D,A]of P)d[D]=A}if(x&&x.lines.length>0){u=x.lines,h=x.info.hash,m=x.info.path;let y=await oe(e,x.info.blobHash);p=Bt(y)}else break}return d}function Jn(e,t,n,r,o,s,i,a){return{hash:e,origPath:t,origLine:n,finalLine:r,content:o,author:s.author,committer:s.committer,summary:s.message.split(`
209
+ `}ie();Ae();async function Jn(e,t,n){return(await le(e,t)).get(n)?.hash??null}async function Jf(e,t,n,r){let o=await Ve(e,t,n);if(!o.find(c=>c.status==="added"&&c.path===r))return null;let{renames:i}=await it(e,o);return i.find(c=>c.newPath===r)?.oldPath??null}async function Qm(e,t,n,r,o,s){let i=await Jn(e,(await j(e,t)).tree,n);if(!i){let p=new Map,g=await j(e,t);for(let w of r)p.set(w.finalIdx,Qn(t,n,w.currentLine,s+w.finalIdx,o[w.finalIdx],g,!1,void 0));return p}let a=await oe(e,i),c=Wt(a),f=new Array(o.length),l=[...r],d=t,u=n,h=c;for(;l.length>0;){let p=await j(e,d);if(p.parents.length===0){for(let C of l)f[C.finalIdx]=Qn(d,u,C.currentLine,s+C.finalIdx,o[C.finalIdx],p,!0,void 0);break}let g=await Jn(e,p.tree,u),w=null,b=[];for(let C of p.parents){let A=await j(e,C),D=u,$=await Jn(e,A.tree,D);if(!$){let v=await Jf(e,A.tree,p.tree,u);v&&(D=v,$=await Jn(e,A.tree,D))}if($&&(b.push({hash:C,path:D,blobHash:$}),$===g)){w={hash:C,path:D};break}}if(w){d=w.hash,u=w.path;continue}if(b.length===0){for(let C of l)f[C.finalIdx]=Qn(d,u,C.currentLine,s+C.finalIdx,o[C.finalIdx],p,!1,void 0);break}let R=b[0],E=await oe(e,R.blobHash),k=Wt(E),x=ct(k,h),y=new Map;for(let C of x)C.type==="keep"&&y.set(C.newLineNo,C.oldLineNo);let P=[];for(let C of l){let A=y.get(C.currentLine);A!==void 0?P.push({finalIdx:C.finalIdx,currentLine:A}):f[C.finalIdx]=Qn(d,u,C.currentLine,s+C.finalIdx,o[C.finalIdx],p,!1,{hash:R.hash,path:R.path})}l=P,d=R.hash,u=R.path,h=k}let m=new Map;for(let p of r)f[p.finalIdx]&&m.set(p.finalIdx,f[p.finalIdx]);return m}async function Qf(e,t,n,r){let o=await j(e,t),s=await Jn(e,o.tree,n);if(!s)throw new Error(`no such path '${n}' in ${t.slice(0,7)}`);let i=await oe(e,s),a=Wt(i),c=r?.startLine??1,f=r?.endLine??a.length,l=a.slice(c-1,f),d=new Array(l.length),u=l.map((g,w)=>({finalIdx:w,currentLine:c+w})),h=t,m=n,p=a;for(;u.length>0;){let g=await j(e,h);if(g.parents.length===0){for(let y of u)d[y.finalIdx]=Qn(h,m,y.currentLine,c+y.finalIdx,l[y.finalIdx],g,!0,void 0);break}let w=await Jn(e,g.tree,m),b=[],R=null;for(let y of g.parents){let P=await j(e,y),C=m,A=await Jn(e,P.tree,C);if(!A){let D=await Jf(e,P.tree,g.tree,m);D&&(C=D,A=await Jn(e,P.tree,C))}if(A){let D={hash:y,path:C,blobHash:A};if(b.push(D),A===w){R=D;break}}}if(R){h=R.hash,m=R.path;continue}if(b.length===0){for(let y of u)d[y.finalIdx]=Qn(h,m,y.currentLine,c+y.finalIdx,l[y.finalIdx],g,!1,void 0);break}if(b.length===1){let y=b[0],P=await oe(e,y.blobHash),C=Wt(P),A=ct(C,p),D=new Map;for(let v of A)v.type==="keep"&&D.set(v.newLineNo,v.oldLineNo);let $=[];for(let v of u){let N=D.get(v.currentLine);N!==void 0?$.push({finalIdx:v.finalIdx,currentLine:N}):d[v.finalIdx]=Qn(h,m,v.currentLine,c+v.finalIdx,l[v.finalIdx],g,!1,{hash:y.hash,path:y.path})}u=$,h=y.hash,m=y.path,p=C;continue}let E=[];for(let y of b){let P=await oe(e,y.blobHash),C=Wt(P),A=ct(C,p),D=new Map;for(let $ of A)$.type==="keep"&&D.set($.newLineNo,$.oldLineNo);E.push({info:y,newToOld:D})}let k=new Map;for(let y of u){let P=!1;for(let C=0;C<E.length;C++){let A=E[C],D=A.newToOld.get(y.currentLine);if(D!==void 0){let $=k.get(C);$||($={info:A.info,lines:[]},k.set(C,$)),$.lines.push({finalIdx:y.finalIdx,currentLine:D}),P=!0;break}}P||(d[y.finalIdx]=Qn(h,m,y.currentLine,c+y.finalIdx,l[y.finalIdx],g,!1,{hash:b[0].hash,path:b[0].path}))}let x=k.get(0);for(let[y,P]of k){if(y===0)continue;let C=await Qm(e,P.info.hash,P.info.path,P.lines,l,c);for(let[A,D]of C)d[A]=D}if(x&&x.lines.length>0){u=x.lines,h=x.info.hash,m=x.info.path;let y=await oe(e,x.info.blobHash);p=Wt(y)}else break}return d}function Qn(e,t,n,r,o,s,i,a){return{hash:e,origPath:t,origLine:n,finalLine:r,content:o,author:s.author,committer:s.committer,summary:s.message.split(`
210
210
  `)[0],boundary:i,previous:a}}se();ie();Ae();ie();me();function ep(e){let t=e.startsWith("-")?-1:1,n=e.replace(/^[+-]/,""),r=parseInt(n.slice(0,2),10)||0,o=parseInt(n.slice(2,4),10)||0;return t*(r*60+o)}function tp(e,t){let n=ep(t),r=new Date((e+n*60)*1e3),o=r.getUTCFullYear(),s=(r.getUTCMonth()+1).toString().padStart(2,"0"),i=r.getUTCDate().toString().padStart(2,"0"),a=r.getUTCHours().toString().padStart(2,"0"),c=r.getUTCMinutes().toString().padStart(2,"0"),f=r.getUTCSeconds().toString().padStart(2,"0");return`${o}-${s}-${i} ${a}:${c}:${f} ${t}`}function np(e,t,n,r,o){if(e.length===0)return"";let s=Math.max(...e.map(d=>d.finalLine)),i=String(s).length,a=e.some(d=>d.origPath!==t),c=0;if(!o)for(let d of e){let u=r?`<${d.author.email}>`:d.author.name;u.length>c&&(c=u.length)}let f=0;if(a)for(let d of e)d.origPath.length>f&&(f=d.origPath.length);let l=[];for(let d of e){let u;n?u=d.boundary?`^${d.hash.slice(0,39)}`:d.hash:u=d.boundary?`^${d.hash.slice(0,7)}`:d.hash.slice(0,8);let h=a?` ${d.origPath.padEnd(f)}`:"";if(o)l.push(`${u}${h} ${String(d.finalLine).padStart(i)}) ${d.content}`);else{let m=r?`<${d.author.email}>`:d.author.name,p=tp(d.author.timestamp,d.author.timezone);l.push(`${u}${h} (${m.padEnd(c)} ${p} ${String(d.finalLine).padStart(i)}) ${d.content}`)}}return`${l.join(`
211
211
  `)}
212
212
  `}function rp(e,t){let n=new Set,r=[];for(let o of e){let s=!n.has(o.hash);n.add(o.hash),r.push(`${o.hash} ${o.origLine} ${o.finalLine} 1`),(s||t)&&(r.push(`author ${o.author.name}`),r.push(`author-mail <${o.author.email}>`),r.push(`author-time ${o.author.timestamp}`),r.push(`author-tz ${o.author.timezone}`),r.push(`committer ${o.committer.name}`),r.push(`committer-mail <${o.committer.email}>`),r.push(`committer-time ${o.committer.timestamp}`),r.push(`committer-tz ${o.committer.timezone}`),r.push(`summary ${o.summary}`),o.boundary&&r.push("boundary"),o.previous&&r.push(`previous ${o.previous.hash} ${o.previous.path}`),r.push(`filename ${o.origPath}`)),r.push(` ${o.content}`)}return`${r.join(`
213
213
  `)}
214
- `}function sp(e,t,n){if(e.startsWith("/"))return rt(n,e);let r=rt(n,t);return r===""||r==="."?e:`${r}/${e}`}function el(e,t){e.command("blame",{description:"Show what revision and author last modified each line of a file",args:[K.string().name("args").variadic().optional()],options:{lineRange:Y.string().alias("L").describe("Annotate only the given line range (<start>,<end>)"),long:O().alias("l").describe("Show long revision"),showEmail:O().alias("e").describe("Show author email instead of name"),suppress:O().alias("s").describe("Suppress author name and date"),porcelain:O().alias("p").describe("Show in machine-readable format"),linePorcelain:O().describe("Show porcelain format with full headers for each line")},handler:async(n,r,o)=>{let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s;if(!i.workTree)return S("this operation must be run in a work tree");let a=await Qe(i);if(M(a))return a;let c=n.args??[],f=o.passthrough??[],l=null,d=null;if(f.length>0?(d=f[f.length-1],c.length>0&&(l=c[0])):c.length===2?(l=c[0],d=c[1]):c.length===1&&(d=c[0]),!d)return S("no file specified");let u=sp(d,r.cwd,i.workTree),h;if(l){let x=await yt(i,l);if(M(x))return x;h=await Te(i,x)}else h=a;let m=await j(i,h),p=await le(i,m.tree);if(!p.has(u))return S(`no such path ${u} in ${l??"HEAD"}`);let g=p.get(u).hash,w=await oe(i,g);if(De(w))return S(`cannot blame binary file '${u}'`);let b,k;if(n.lineRange){let x=n.lineRange,y=x.match(/^(\d+),(\d+)$/);if(y)b=parseInt(y[1],10),k=parseInt(y[2],10);else return S(`invalid -L range: '${x}'`)}let E;try{E=await Qf(i,h,u,{startLine:b,endLine:k})}catch(x){let y=x instanceof Error?x.message:String(x);return S(y)}let R;return n.porcelain||n.linePorcelain?R=rp(E,!!n.linePorcelain):R=np(E,u,!!n.long,!!n.showEmail,!!n.suppress),{stdout:R,stderr:"",exitCode:0}}})}se();Ue();rr();se();var op=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ip=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function On(e,t){let n=ap(t),r=new Date((e+n*60)*1e3),o=op[r.getUTCDay()],s=ip[r.getUTCMonth()],i=r.getUTCDate(),a=r.getUTCHours().toString().padStart(2,"0"),c=r.getUTCMinutes().toString().padStart(2,"0"),f=r.getUTCSeconds().toString().padStart(2,"0"),l=r.getUTCFullYear();return`${o} ${s} ${i} ${a}:${c}:${f} ${l} ${t}`}function ua(e){let t=e.trim();if(/^\d+$/.test(t))return parseInt(t,10);let n=Date.parse(t);return Number.isNaN(n)?null:Math.floor(n/1e3)}function ap(e){let t=e.startsWith("-")?-1:1,n=e.replace(/^[+-]/,""),r=parseInt(n.slice(0,2),10)||0,o=parseInt(n.slice(2,4),10)||0;return t*(r*60+o)}ie();Ae();var Ao=new TextDecoder;function tl(e){if(e.length===0)return 0;let t=0;for(let n=0;n<e.length;n++)e[n]===`
214
+ `}function sp(e,t,n){if(e.startsWith("/"))return rt(n,e);let r=rt(n,t);return r===""||r==="."?e:`${r}/${e}`}function el(e,t){e.command("blame",{description:"Show what revision and author last modified each line of a file",args:[q.string().name("args").variadic().optional()],options:{lineRange:Y.string().alias("L").describe("Annotate only the given line range (<start>,<end>)"),long:O().alias("l").describe("Show long revision"),showEmail:O().alias("e").describe("Show author email instead of name"),suppress:O().alias("s").describe("Suppress author name and date"),porcelain:O().alias("p").describe("Show in machine-readable format"),linePorcelain:O().describe("Show porcelain format with full headers for each line")},handler:async(n,r,o)=>{let s=await K(r.fs,r.cwd,t);if(M(s))return s;let i=s;if(!i.workTree)return S("this operation must be run in a work tree");let a=await Qe(i);if(M(a))return a;let c=n.args??[],f=o.passthrough??[],l=null,d=null;if(f.length>0?(d=f[f.length-1],c.length>0&&(l=c[0])):c.length===2?(l=c[0],d=c[1]):c.length===1&&(d=c[0]),!d)return S("no file specified");let u=sp(d,r.cwd,i.workTree),h;if(l){let x=await yt(i,l);if(M(x))return x;h=await Te(i,x)}else h=a;let m=await j(i,h),p=await le(i,m.tree);if(!p.has(u))return S(`no such path ${u} in ${l??"HEAD"}`);let g=p.get(u).hash,w=await oe(i,g);if(je(w))return S(`cannot blame binary file '${u}'`);let b,R;if(n.lineRange){let x=n.lineRange,y=x.match(/^(\d+),(\d+)$/);if(y)b=parseInt(y[1],10),R=parseInt(y[2],10);else return S(`invalid -L range: '${x}'`)}let E;try{E=await Qf(i,h,u,{startLine:b,endLine:R})}catch(x){let y=x instanceof Error?x.message:String(x);return S(y)}let k;return n.porcelain||n.linePorcelain?k=rp(E,!!n.linePorcelain):k=np(E,u,!!n.long,!!n.showEmail,!!n.suppress),{stdout:k,stderr:"",exitCode:0}}})}se();Ue();sr();se();var op=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ip=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Tn(e,t){let n=ap(t),r=new Date((e+n*60)*1e3),o=op[r.getUTCDay()],s=ip[r.getUTCMonth()],i=r.getUTCDate(),a=r.getUTCHours().toString().padStart(2,"0"),c=r.getUTCMinutes().toString().padStart(2,"0"),f=r.getUTCSeconds().toString().padStart(2,"0"),l=r.getUTCFullYear();return`${o} ${s} ${i} ${a}:${c}:${f} ${l} ${t}`}function ua(e){let t=e.trim();if(/^\d+$/.test(t))return parseInt(t,10);let n=Date.parse(t);return Number.isNaN(n)?null:Math.floor(n/1e3)}function ap(e){let t=e.startsWith("-")?-1:1,n=e.replace(/^[+-]/,""),r=parseInt(n.slice(0,2),10)||0,o=parseInt(n.slice(2,4),10)||0;return t*(r*60+o)}ie();Ae();var Ao=new TextDecoder;function tl(e){if(e.length===0)return 0;let t=0;for(let n=0;n<e.length;n++)e[n]===`
215
215
  `&&t++;return e[e.length-1]!==`
216
- `&&t++,t}function Qn(e,t,n){if(e===0)return"";let r=[];return r.push(`${e} file${e!==1?"s":""} changed`),(t>0||n===0)&&r.push(`${t} insertion${t!==1?"s":""}(+)`),(n>0||t===0)&&r.push(`${n} deletion${n!==1?"s":""}(-)`),` ${r.join(", ")}`}async function er(e,t,n){let r=[],o=[],s=[];for(let a of t)if(a.status==="added"&&a.newHash&&a.newMode){let c=await $t(e,a.newHash);jn(c)?r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:0,newSize:c.byteLength}):r.push({path:a.path,sortKey:a.path,insertions:tl(Ao.decode(c)),deletions:0}),o.push({path:a.path,mode:a.newMode})}else if(a.status==="deleted"&&a.oldHash&&a.oldMode){let c=await $t(e,a.oldHash);jn(c)?r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:0}):r.push({path:a.path,sortKey:a.path,insertions:0,deletions:tl(Ao.decode(c))}),s.push({path:a.path,mode:a.oldMode})}else if(a.status==="modified"&&a.oldHash&&a.newHash){let c=await $t(e,a.oldHash),f=await $t(e,a.newHash);if(jn(c)||jn(f))r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:f.byteLength});else{let l=xt(Ao.decode(c)),d=xt(Ao.decode(f)),u=ct(l,d),h=0,m=0;for(let p of u)p.type==="insert"?h++:p.type==="delete"&&m++;r.push({path:a.path,sortKey:a.path,insertions:h,deletions:m})}a.oldMode&&a.newMode&&a.oldMode!==a.newMode&&(s.push({path:a.path,mode:a.oldMode}),o.push({path:a.path,mode:a.newMode}))}for(let a of n){let c=mn(a.oldPath,a.newPath),f=0,l=0;if(a.similarity<100&&a.oldHash&&a.newHash){let d=await oe(e,a.oldHash),u=await oe(e,a.newHash);if(!De(d)&&!De(u)){let h=xt(d),m=xt(u),p=ct(h,m);for(let g of p)g.type==="insert"?f++:g.type==="delete"&&l++}}r.push({path:c,sortKey:a.newPath,insertions:f,deletions:l})}let i=[];for(let{path:a,mode:c}of o)i.push({sortKey:a,text:` create mode ${c} ${a}`});for(let{path:a,mode:c}of s)i.push({sortKey:a,text:` delete mode ${c} ${a}`});for(let a of n){let c=mn(a.oldPath,a.newPath);i.push({sortKey:a.newPath,text:` rename ${c} (${a.similarity}%)`})}return i.sort((a,c)=>a.sortKey<c.sortKey?-1:a.sortKey>c.sortKey?1:0),{fileStats:r,modeLines:i.map(a=>a.text)}}async function Sn(e,t,n,r,o,s=!1,i=!1){let a=[];if((r.name!==o.name||r.email!==o.email)&&a.push(` Author: ${r.name} <${r.email}>`),s&&a.push(` Date: ${On(r.timestamp,r.timezone)}`),i)return a.join(`
216
+ `&&t++,t}function er(e,t,n){if(e===0)return"";let r=[];return r.push(`${e} file${e!==1?"s":""} changed`),(t>0||n===0)&&r.push(`${t} insertion${t!==1?"s":""}(+)`),(n>0||t===0)&&r.push(`${n} deletion${n!==1?"s":""}(-)`),` ${r.join(", ")}`}async function tr(e,t,n){let r=[],o=[],s=[];for(let a of t)if(a.status==="added"&&a.newHash&&a.newMode){let c=await $t(e,a.newHash);Nn(c)?r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:0,newSize:c.byteLength}):r.push({path:a.path,sortKey:a.path,insertions:tl(Ao.decode(c)),deletions:0}),o.push({path:a.path,mode:a.newMode})}else if(a.status==="deleted"&&a.oldHash&&a.oldMode){let c=await $t(e,a.oldHash);Nn(c)?r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:0}):r.push({path:a.path,sortKey:a.path,insertions:0,deletions:tl(Ao.decode(c))}),s.push({path:a.path,mode:a.oldMode})}else if(a.status==="modified"&&a.oldHash&&a.newHash){let c=await $t(e,a.oldHash),f=await $t(e,a.newHash);if(Nn(c)||Nn(f))r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:f.byteLength});else{let l=xt(Ao.decode(c)),d=xt(Ao.decode(f)),u=ct(l,d),h=0,m=0;for(let p of u)p.type==="insert"?h++:p.type==="delete"&&m++;r.push({path:a.path,sortKey:a.path,insertions:h,deletions:m})}a.oldMode&&a.newMode&&a.oldMode!==a.newMode&&(s.push({path:a.path,mode:a.oldMode}),o.push({path:a.path,mode:a.newMode}))}for(let a of n){let c=pn(a.oldPath,a.newPath),f=0,l=0;if(a.similarity<100&&a.oldHash&&a.newHash){let d=await oe(e,a.oldHash),u=await oe(e,a.newHash);if(!je(d)&&!je(u)){let h=xt(d),m=xt(u),p=ct(h,m);for(let g of p)g.type==="insert"?f++:g.type==="delete"&&l++}}r.push({path:c,sortKey:a.newPath,insertions:f,deletions:l})}let i=[];for(let{path:a,mode:c}of o)i.push({sortKey:a,text:` create mode ${c} ${a}`});for(let{path:a,mode:c}of s)i.push({sortKey:a,text:` delete mode ${c} ${a}`});for(let a of n){let c=pn(a.oldPath,a.newPath);i.push({sortKey:a.newPath,text:` rename ${c} (${a.similarity}%)`})}return i.sort((a,c)=>a.sortKey<c.sortKey?-1:a.sortKey>c.sortKey?1:0),{fileStats:r,modeLines:i.map(a=>a.text)}}async function vn(e,t,n,r,o,s=!1,i=!1){let a=[];if((r.name!==o.name||r.email!==o.email)&&a.push(` Author: ${r.name} <${r.email}>`),s&&a.push(` Date: ${Tn(r.timestamp,r.timezone)}`),i)return a.join(`
217
217
  `)+(a.length>0?`
218
- `:"");let c=await Ve(e,t,n),{remaining:f,renames:l}=await it(e,c),{fileStats:d,modeLines:u}=await er(e,f,l),h=0,m=0;for(let g of d)h+=g.insertions,m+=g.deletions;let p=Qn(d.length,h,m);p&&a.push(p);for(let g of u)a.push(g);return a.join(`
218
+ `:"");let c=await Ve(e,t,n),{remaining:f,renames:l}=await it(e,c),{fileStats:d,modeLines:u}=await tr(e,f,l),h=0,m=0;for(let g of d)h+=g.insertions,m+=g.deletions;let p=er(d.length,h,m);p&&a.push(p);for(let g of u)a.push(g);return a.join(`
219
219
  `)+(a.length>0?`
220
- `:"")}var cp=80;function fp(e,t){if(e.length<=t)return e;let n=e;for(;n.length+4>t;){let o=n.indexOf("/");if(o===-1)break;n=n.slice(o+1)}let r=`.../${n}`;return r.length<=t?r:`...${e.slice(e.length-(t-3))}`}function pr(e,t=cp){if(e.length===0)return"";let n=e.filter(p=>!p.isUnmerged),r=n.length>0?Math.max(...n.map(p=>p.insertions+p.deletions)):0,o=e.some(p=>p.isBinary),s=r>0?String(r).length:1;o&&s<3&&(s=3);let i=Math.max(...e.map(p=>p.path.length)),a=r,c=i;if(c+s+6+a>t){let p=Math.floor(t*3/8)-s-6;a>p&&(a=Math.max(p,6));let g=t-s-6-a;c>g?c=g:a=t-s-6-c}for(let p of e)p.path=fp(p.path,c);let f=c,l=[],d=0,u=0,h=0;for(let p of e){let g=p.path.padEnd(f);if(p.isUnmerged){l.push(` ${g} | Unmerged`);continue}if(h++,d+=p.insertions,u+=p.deletions,p.isBinary){let C=`${"Bin".padStart(s)} ${p.oldSize??0} -> ${p.newSize??0} bytes`;l.push(` ${g} | ${C}`);continue}let w=p.insertions+p.deletions,b=String(w).padStart(s),k,E;if(r<=a)k=p.insertions,E=p.deletions;else{let y=D=>D===0?0:1+Math.floor(D*(a-1)/r),C=y(w),P=C<2&&p.insertions>0&&p.deletions>0?2:C;p.insertions<p.deletions?(k=y(p.insertions),E=P-k):(E=y(p.deletions),k=P-E)}let R="+".repeat(k)+"-".repeat(E),x=R?` ${R}`:"";l.push(` ${g} | ${b}${x}`)}let m=Qn(h,d,u);return m?l.push(m):e.some(p=>p.isUnmerged)&&l.push(" 0 files changed"),`${l.join(`
220
+ `:"")}var cp=80;function fp(e,t){if(e.length<=t)return e;let n=e;for(;n.length+4>t;){let o=n.indexOf("/");if(o===-1)break;n=n.slice(o+1)}let r=`.../${n}`;return r.length<=t?r:`...${e.slice(e.length-(t-3))}`}function pr(e,t=cp){if(e.length===0)return"";let n=e.filter(p=>!p.isUnmerged),r=n.length>0?Math.max(...n.map(p=>p.insertions+p.deletions)):0,o=e.some(p=>p.isBinary),s=r>0?String(r).length:1;o&&s<3&&(s=3);let i=Math.max(...e.map(p=>p.path.length)),a=r,c=i;if(c+s+6+a>t){let p=Math.floor(t*3/8)-s-6;a>p&&(a=Math.max(p,6));let g=t-s-6-a;c>g?c=g:a=t-s-6-c}for(let p of e)p.path=fp(p.path,c);let f=c,l=[],d=0,u=0,h=0;for(let p of e){let g=p.path.padEnd(f);if(p.isUnmerged){l.push(` ${g} | Unmerged`);continue}if(h++,d+=p.insertions,u+=p.deletions,p.isBinary){let P=`${"Bin".padStart(s)} ${p.oldSize??0} -> ${p.newSize??0} bytes`;l.push(` ${g} | ${P}`);continue}let w=p.insertions+p.deletions,b=String(w).padStart(s),R,E;if(r<=a)R=p.insertions,E=p.deletions;else{let y=A=>A===0?0:1+Math.floor(A*(a-1)/r),P=y(w),C=P<2&&p.insertions>0&&p.deletions>0?2:P;p.insertions<p.deletions?(R=y(p.insertions),E=C-R):(E=y(p.deletions),R=C-E)}let k="+".repeat(R)+"-".repeat(E),x=k?` ${k}`:"";l.push(` ${g} | ${b}${x}`)}let m=er(h,d,u);return m?l.push(m):e.some(p=>p.isUnmerged)&&l.push(" 0 files changed"),`${l.join(`
221
221
  `)}
222
- `}async function pn(e,t,n){let r=await Ve(e,t,n),{remaining:o,renames:s}=await it(e,r);if(o.length===0&&s.length===0)return"";let{fileStats:i,modeLines:a}=await er(e,o,s);i.sort((f,l)=>f.sortKey<l.sortKey?-1:f.sortKey>l.sortKey?1:0);let c=pr(i);for(let f of a)c+=`${f}
223
- `;return c}Ue();Ce();ie();ge();Zt();async function lp(e,t){let n=new Set,r=[t],o=0;for(;o<r.length;){let s=r[o++];if(n.has(s))continue;n.add(s);let i;try{i=await j(e,s)}catch{continue}for(let a of i.parents)n.has(a)||r.push(a)}return n}async function tn(e,t,n){if(t===n)return!0;let r=new Set,o=[n],s=0;for(;s<o.length;){let i=o[s++];if(i===t)return!0;if(r.has(i))continue;r.add(i);let a;try{a=await j(e,i)}catch{continue}for(let c of a.parents)r.has(c)||o.push(c)}return!1}async function Wt(e,t,n){if(t===n)return[t];let r=await lp(e,t),o=[],s=new Set,i=[n],a=0;for(;a<i.length;){let f=i[a++];if(s.has(f))continue;if(s.add(f),r.has(f)){o.push(f);continue}let l;try{l=await j(e,f)}catch{continue}for(let d of l.parents)s.has(d)||i.push(d)}if(o.length<=1)return o;let c=[];for(let f of o){let l=!1;for(let d of o)if(d!==f&&await tn(e,f,d)){l=!0;break}l||c.push(f)}return c.length<=1?c:dp(e,t,n,c)}async function dp(e,t,n,r){let o=new Set(r),s=new Set,i=[],a=new Map,c=new Map,f=0,l=[{hash:t,mask:1,seq:f++},{hash:n,mask:2,seq:f++}];async function d(u){let h=c.get(u);if(h!==void 0)return h;let m=(await j(e,u)).committer.timestamp;return c.set(u,m),m}for(;l.length>0;){let u=0,h=await d(l[0].hash);for(let b=1;b<l.length;b++){let k=l[b],E=await d(k.hash),R=l[u];(E>h||E===h&&k.seq<R.seq)&&(u=b,h=E)}let m=l.splice(u,1)[0],p=a.get(m.hash)??0,g=p|m.mask;if(g===p)continue;if(a.set(m.hash,g),g===3&&o.has(m.hash)&&!s.has(m.hash)&&(i.push(m.hash),s.add(m.hash),s.size===o.size))break;let w=await j(e,m.hash);for(let b of w.parents)l.push({hash:b,mask:g,seq:f++})}for(let u of r)s.has(u)||i.push(u);return i}async function gr(e,t,n,r){let o=await ke(e,"init.defaultBranch")??"main",s=r?` of ${r}`:"";return n===o?`Merge branch '${t}'${s}
222
+ `}async function gn(e,t,n){let r=await Ve(e,t,n),{remaining:o,renames:s}=await it(e,r);if(o.length===0&&s.length===0)return"";let{fileStats:i,modeLines:a}=await tr(e,o,s);i.sort((f,l)=>f.sortKey<l.sortKey?-1:f.sortKey>l.sortKey?1:0);let c=pr(i);for(let f of a)c+=`${f}
223
+ `;return c}Ue();Ce();ie();ge();Nt();async function lp(e,t){let n=new Set,r=[t],o=0;for(;o<r.length;){let s=r[o++];if(n.has(s))continue;n.add(s);let i;try{i=await j(e,s)}catch{continue}for(let a of i.parents)n.has(a)||r.push(a)}return n}async function tn(e,t,n){if(t===n)return!0;let r=new Set,o=[n],s=0;for(;s<o.length;){let i=o[s++];if(i===t)return!0;if(r.has(i))continue;r.add(i);let a;try{a=await j(e,i)}catch{continue}for(let c of a.parents)r.has(c)||o.push(c)}return!1}async function qt(e,t,n){if(t===n)return[t];let r=await lp(e,t),o=[],s=new Set,i=[n],a=0;for(;a<i.length;){let f=i[a++];if(s.has(f))continue;if(s.add(f),r.has(f)){o.push(f);continue}let l;try{l=await j(e,f)}catch{continue}for(let d of l.parents)s.has(d)||i.push(d)}if(o.length<=1)return o;let c=[];for(let f of o){let l=!1;for(let d of o)if(d!==f&&await tn(e,f,d)){l=!0;break}l||c.push(f)}return c.length<=1?c:dp(e,t,n,c)}async function dp(e,t,n,r){let o=new Set(r),s=new Set,i=[],a=new Map,c=new Map,f=0,l=[{hash:t,mask:1,seq:f++},{hash:n,mask:2,seq:f++}];async function d(u){let h=c.get(u);if(h!==void 0)return h;let m=(await j(e,u)).committer.timestamp;return c.set(u,m),m}for(;l.length>0;){let u=0,h=await d(l[0].hash);for(let b=1;b<l.length;b++){let R=l[b],E=await d(R.hash),k=l[u];(E>h||E===h&&R.seq<k.seq)&&(u=b,h=E)}let m=l.splice(u,1)[0],p=a.get(m.hash)??0,g=p|m.mask;if(g===p)continue;if(a.set(m.hash,g),g===3&&o.has(m.hash)&&!s.has(m.hash)&&(i.push(m.hash),s.add(m.hash),s.size===o.size))break;let w=await j(e,m.hash);for(let b of w.parents)l.push({hash:b,mask:g,seq:f++})}for(let u of r)s.has(u)||i.push(u);return i}async function gr(e,t,n,r){let o=await ke(e,"init.defaultBranch")??"main",s=r?` of ${r}`:"";return n===o?`Merge branch '${t}'${s}
224
224
  `:`Merge branch '${t}'${s} into ${n}
225
225
  `}async function Do(e,t,n){let r=await j(e,t),o=await j(e,n),s=X(t),i=X(n),a=`Updating ${s}..${i}
226
- `;if(e.workTree){let f=await V(e),l=await wf(e,r.tree,o.tree,f);if(!l.success){let d=l.errorOutput;return{stdout:a+d.stdout,stderr:d.stderr,exitCode:d.exitCode}}await ae(e,{version:2,entries:l.newEntries}),await je(e,l.worktreeOps)}await Gn(e,n);let c=await pn(e,r.tree,o.tree);return{stdout:`${a}Fast-forward
226
+ `;if(e.workTree){let f=await V(e),l=await wf(e,r.tree,o.tree,f);if(!l.success){let d=l.errorOutput;return{stdout:a+d.stdout,stderr:d.stderr,exitCode:d.exitCode}}await ae(e,{version:2,entries:l.newEntries}),await De(e,l.worktreeOps)}await _n(e,n);let c=await gn(e,r.tree,o.tree);return{stdout:`${a}Fast-forward
227
227
  ${c}`,stderr:"",exitCode:0}}ie();Be();ge();function nl(e){return{stdout:"",stderr:`fatal: the requested upstream branch '${e}' does not exist
228
228
  hint:
229
229
  hint: If you are planning on basing your work on an upstream
@@ -234,34 +234,36 @@ hint: If you are planning to push out a new local branch that
234
234
  hint: will track its remote counterpart, you may want to use
235
235
  hint: "git push -u" to set the upstream config as you push.
236
236
  hint: Disable this message with "git config set advice.setUpstreamFailure false"
237
- `,exitCode:128}}async function rl(e,t,n=""){let r=(await ke(e,"advice.forceDeleteBranch"))?.toLowerCase();return r==="false"?F(`${n}error: the branch '${t}' is not fully merged
238
- `):r==="true"?F(`${n}error: the branch '${t}' is not fully merged
237
+ `,exitCode:128}}async function rl(e,t,n=""){let r=(await ke(e,"advice.forceDeleteBranch"))?.toLowerCase();return r==="false"?_(`${n}error: the branch '${t}' is not fully merged
238
+ `):r==="true"?_(`${n}error: the branch '${t}' is not fully merged
239
239
  hint: If you are sure you want to delete it, run 'git branch -D ${t}'
240
- `):F(`${n}error: the branch '${t}' is not fully merged
240
+ `):_(`${n}error: the branch '${t}' is not fully merged
241
241
  hint: If you are sure you want to delete it, run 'git branch -D ${t}'
242
242
  hint: Disable this message with "git config set advice.forceDeleteBranch false"
243
- `)}function sl(e,t){e.command("branch",{description:"List, create, or delete branches",args:[K.string().name("name").describe("Branch name").optional(),K.string().name("newName").describe("New branch name (for -m) or start-point (for create)").optional()],options:{delete:O().alias("d").describe("Delete a branch"),forceDelete:O().alias("D").describe("Force delete a branch"),move:O().alias("m").describe("Rename a branch"),forceMove:O().alias("M").describe("Force rename a branch"),remotes:O().alias("r").describe("List remote-tracking branches"),all:O().alias("a").describe("List all branches"),setUpstreamTo:Y.string().alias("u").describe("Set upstream tracking branch"),verbose:O().alias("v").count().describe("Show hash and subject")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await te(s),a=i?.type==="symbolic"?Pe(i.target):null,c=!!n.forceMove;if(n.move||c){let w,b;if(n.newName)w=n.name,b=n.newName;else if(n.name){if(!a)return S("not on any branch");w=a,b=n.name}else return S("branch name required");if(!yn(b))return S(`'${b}' is not a valid branch name`);let k=`refs/heads/${w}`,E=`refs/heads/${b}`,R=await U(s,k);if(!R)return S(`no branch named '${w}'`);if(await _t(s)&&(await kt(s))?.headName===k)return S(`branch ${k} is being rebased at ${s.workTree}`);let x=await U(s,E);if(x&&!c)return S(`a branch named '${b}' already exists`);x&&await he(s,E);let y=await et(s,k);await J(s,E,R),await he(s,k),w===a&&await Ze(s,"HEAD",E),y.length>0&&await Fn(s,E,y);let C=`Branch: renamed ${k} to ${E}`;if(await re(s,r.env,E,R,R,C),w===a){let A=await Hn(s,r.env);await st(s,"HEAD",{oldHash:R,newHash:ne,...A,message:C}),await st(s,"HEAD",{oldHash:ne,newHash:R,...A,message:C})}let P=await pe(s),D=`branch "${w}"`;return P[D]&&(P[`branch "${b}"`]=P[D],delete P[D],await ze(s,P)),{stdout:"",stderr:"",exitCode:0}}let f=n.forceDelete;if(n.delete||f){if(!n.name)return S("branch name required");let w=n.name===a;if(!w&&!a&&await _t(s)&&(await kt(s))?.headName===`refs/heads/${n.name}`&&(w=!0),w)return F(`error: cannot delete branch '${n.name}' used by worktree at '${s.workTree}'
244
- `);let b=`refs/heads/${n.name}`,k=await U(s,b);if(!k)return F(`error: branch '${n.name}' not found
245
- `);let E="";if(!f){let R=await Z(s),y=(await pe(s))[`branch "${n.name}"`],C=y?.remote,P=y?.merge,D=null,A=null;if(C&&P&&(D=P.replace(/^refs\/heads\//,`refs/remotes/${C}/`),A=await U(s,D)),A&&D){if(!(k===A||await tn(s,k,A))){let G=R!=null&&(k===R||await tn(s,k,R))?`warning: not deleting branch '${n.name}' that is not yet merged to
246
- '${D}', even though it is merged to HEAD
247
- `:"";return rl(s,n.name,G)}R!=null&&(k===R||await tn(s,k,R))||(E=`warning: deleting branch '${n.name}' that has been merged to
248
- '${D}', but not yet merged to HEAD
249
- `)}else if(R&&k!==R&&!await tn(s,k,R))return rl(s,n.name)}return await he(s,b),{stdout:`Deleted branch ${n.name} (was ${X(k)}).
250
- `,stderr:E,exitCode:0}}if(n.setUpstreamTo){let w=n.setUpstreamTo,b=n.name||a;if(!b)return S("could not set upstream of HEAD when it does not point to any branch.");if(!await U(s,`refs/heads/${b}`))return S(`branch '${b}' does not exist`);let E=w.indexOf("/");if(E<0)return nl(w);let R=w.slice(0,E),x=w.slice(E+1);if(!await U(s,`refs/remotes/${w}`))return nl(w);let C=await pe(s),P=`branch "${b}"`;return C[P]||(C[P]={}),C[P].remote=R,C[P].merge=`refs/heads/${x}`,await ze(s,C),{stdout:`branch '${b}' set up to track '${w}'.
251
- `,stderr:"",exitCode:0}}if(n.name&&!n.remotes&&!n.all){if(!yn(n.name))return S(`'${n.name}' is not a valid branch name`);let w=n.newName,b;if(w){let y=await Me(s,w,`not a valid object name: '${w}'`);if(M(y))return y;b=y.hash}else if(b=await Z(s),!b)return S("Not a valid object name: 'HEAD'.");let k=`refs/heads/${n.name}`;if(await U(s,k))return S(`a branch named '${n.name}' already exists`);await J(s,k,b);let R=w??"HEAD";await re(s,r.env,k,null,b,`branch: Created from ${R}`);let x="";return w&&(x=await $o(s,n.name,w)),{stdout:"",stderr:x,exitCode:0}}let l=n.verbose||0,d=!n.remotes||n.all,u=n.remotes||n.all,h=[];if(d&&!a){let w=await Z(s);if(w){let b=await _t(s),k;if(b){let E=await kt(s);if(E?.headName){let R=Pe(E.headName);if(R==="detached HEAD"){let x=await ps(s);k=`(no branch, rebasing detached HEAD ${x?X(x):"(null)"})`}else k=`(no branch, rebasing ${R})`}else k="(no branch)"}else{let E=await ps(s);E?k=`(HEAD detached ${w===E?"at":"from"} ${X(E)})`:k="(no branch)"}h.push({displayName:k,hash:w,isCurrent:!0,branchName:null})}}if(d){let w=await ye(s,"refs/heads");for(let b of w){let k=Pe(b.name);h.push({displayName:k,hash:b.hash,isCurrent:k===a,branchName:k})}}if(u){let w=await ye(s,"refs/remotes");for(let b of w){let k=b.name.replace("refs/remotes/",""),E=null,R=await s.refStore.readRef(b.name);R?.type==="symbolic"&&(E=R.target.replace("refs/remotes/",""));let x=E?n.all?`remotes/${k} -> ${E}`:`${k} -> ${E}`:n.all?`remotes/${k}`:k;h.push({displayName:x,hash:b.hash,isCurrent:!1,branchName:null})}}if(h.length===0)return{stdout:"",stderr:"",exitCode:0};if(l===0)return{stdout:`${h.map(b=>b.isCurrent?`* ${b.displayName}`:` ${b.displayName}`).join(`
252
- `)}
253
- `,stderr:"",exitCode:0};let m=l>=1?await pe(s):null,p=Math.max(...h.map(w=>w.displayName.length)),g=[];for(let w of h){let b=w.isCurrent?"* ":" ",k=w.displayName.padEnd(p),E=X(w.hash),R="";try{let y=await j(s,w.hash);R=ue(y.message)}catch{}let x="";if(m&&w.branchName){let y=await Ut(s,m,w.branchName);if(y){let C=Ro(y,l>=2);C&&(x=` ${C}`)}}g.push(`${b}${k} ${E}${x} ${R}`)}return{stdout:`${g.join(`
254
- `)}
255
- `,stderr:"",exitCode:0}}})}function de(e){return e!=null&&typeof e=="object"&&"reject"in e&&e.reject===!0}var up=["preCommit","preMergeCommit","preCheckout","prePush","preFetch","preClone","prePull","preRebase","preReset","preCherryPick","preRevert","beforeCommand"],hp=["commitMsg","mergeMsg"],mp=["postCommit","postMerge","postCheckout","postPush","postFetch","postClone","postPull","postReset","postCherryPick","postRevert","afterCommand"],pp=["onRefUpdate","onRefDelete","onObjectWrite"];function gp(...e){let t=e.filter(r=>r!=null);if(t.length===0)return{};if(t.length===1)return t[0];let n={};for(let r of up){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o){let a=await i(s);if(de(a))return a}})}for(let r of hp){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o){let a=await i(s);if(de(a))return a}})}for(let r of mp){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o)try{await i(s)}catch{}})}for(let r of pp){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=s=>{for(let i of o)try{i(s)}catch{}})}return n}se();Ue();Ce();ie();Be();ge();fn();Je();function il(e,t){e.command("checkout",{description:"Switch branches or restore working tree files",args:[K.string().name("target").describe("Branch name or path to checkout").optional()],options:{branch:O().alias("b").describe("Create and switch to a new branch"),forceBranch:O().alias("B").describe("Create/reset and switch to a new branch"),detach:O().alias("d").describe("Detach HEAD at named commit"),orphan:O().describe("Create a new orphan branch"),ours:O().describe("Checkout our version for unmerged files"),theirs:O().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.target;if(n.ours&&n.theirs)return S("--ours and --theirs are incompatible");if(n.detach&&(n.branch||n.forceBranch||n.orphan))return S("'--detach' cannot be used with '-b/-B/--orphan'");if(o.passthrough.length>0){if(n.detach)return S(`git checkout: --detach does not take a path argument '${o.passthrough[0]}'`);let u=ut(i,r.cwd),h=o.passthrough,m=null;if(a){if(n.ours||n.theirs)return S("cannot specify both a revision and --ours/--theirs");let p=await Me(i,a,`invalid reference: ${a}`);if(M(p))return p;m=p.commit.tree}return n.ours||n.theirs?Co(i,h,u,n.theirs?3:2):xo(i,h,u,m)}if(n.orphan)return n.branch?S("--orphan and -b are incompatible"):n.ours||n.theirs?S("--orphan and --ours/--theirs are incompatible"):a?bp(i,a,r.env,t):S("you must specify a branch to checkout");if(n.detach){let u=a??"HEAD",h=await Me(i,u,`invalid reference: ${u}`);return M(h)?h:ol(i,u,h.hash,r.env,t)}if(!a)return S("you must specify a branch to checkout");if(n.branch||n.forceBranch)return yp(i,a,r.env,t,!!n.forceBranch);if(a==="-")return wp(i,r.env,t);let c=`refs/heads/${a}`,f=await U(i,c);if(f)return al(i,a,c,f,r.env,t);let l=await Oo(i,a);if(l)return Ep(i,a,l.trackingRef,r.env,t);let d=await We(i,a);if(d){let u=await Te(i,d);return ol(i,a,u,r.env,t)}if(i.workTree){let u=await V(i),h=qs(u,a);if(h)return await dt(i,{path:h.path,hash:h.hash,mode:h.mode}),{stdout:"",stderr:"",exitCode:0}}return F(`error: pathspec '${a}' did not match any file(s) known to git
256
- `)}})}async function wp(e,t,n){let r=await Gf(e);return r?al(e,r.name,r.refName,r.hash,t,n):S("no previous branch")}async function bp(e,t,n,r){if(!yn(t))return S(`'${t}' is not a valid branch name`);let o=`refs/heads/${t}`;if(await U(e,o))return S(`a branch named '${t}' already exists`);let i=await V(e),a=zn(i);if(a)return a;let c=await Z(e),f=null;c&&(f=(await j(e,c)).tree),await Ze(e,"HEAD",o),await Et(e);let l=await $n(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:c,newHead:ne,isBranchCheckout:!0});let d="";return f&&(d=await Vn(e,f,i)),{stdout:d,stderr:`Switched to a new branch '${t}'
257
- ${l}`,exitCode:0}}async function yp(e,t,n,r,o=!1){if(!yn(t))return S(`'${t}' is not a valid branch name`);let s=await r?.hooks?.preCheckout?.({repo:e,target:t,mode:"create-branch"});if(de(s))return F(s.message??"");let i=await te(e),a=await Z(e),c=`refs/heads/${t}`,f=await U(e,c);if(f&&!o)return S(`a branch named '${t}' already exists`);if(o){let g=await V(e),w=zn(g);if(w)return w}a&&await J(e,c,a),await Ze(e,"HEAD",c),await Et(e);let l=await $n(e),d=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):a??ne;a&&(f?f!==a&&await re(e,n,c,f,a,"branch: Reset to HEAD"):await re(e,n,c,null,a,"branch: Created from HEAD")),await re(e,n,"HEAD",a,a??ne,`checkout: moving from ${d} to ${t}`),await r?.hooks?.postCheckout?.({repo:e,prevHead:a,newHead:a??ne,isBranchCheckout:!0});let u="";if(o&&a){let g=await V(e),w=await j(e,a);u=await Vn(e,w.tree,g)}let h=await pe(e),m=await Ut(e,h,t);m&&(u+=Kn(m));let p=f?`Switched to and reset branch '${t}'
243
+ `)}function sl(e,t){e.command("branch",{description:"List, create, or delete branches",args:[q.string().name("name").describe("Branch name").optional(),q.string().name("newName").describe("New branch name (for -m) or start-point (for create)").optional()],options:{delete:O().alias("d").describe("Delete a branch"),forceDelete:O().alias("D").describe("Force delete a branch"),move:O().alias("m").describe("Rename a branch"),forceMove:O().alias("M").describe("Force rename a branch"),remotes:O().alias("r").describe("List remote-tracking branches"),all:O().alias("a").describe("List all branches"),showCurrent:O().describe("Print the current branch name"),setUpstreamTo:Y.string().alias("u").describe("Set upstream tracking branch"),verbose:O().alias("v").count().describe("Show hash and subject")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await te(s),a=i?.type==="symbolic"?Pe(i.target):null;if(n.showCurrent)return{stdout:a?`${a}
244
+ `:"",stderr:"",exitCode:0};let c=!!n.forceMove;if(n.move||c){let w,b;if(n.newName)w=n.name,b=n.newName;else if(n.name){if(!a)return S("not on any branch");w=a,b=n.name}else return S("branch name required");if(!En(b))return S(`'${b}' is not a valid branch name`);let R=`refs/heads/${w}`,E=`refs/heads/${b}`,k=await U(s,R);if(!k)return S(`no branch named '${w}'`);if(await Ut(s)&&(await kt(s))?.headName===R)return S(`branch ${R} is being rebased at ${s.workTree}`);let x=await U(s,E);if(x&&!c)return S(`a branch named '${b}' already exists`);x&&await he(s,E);let y=await et(s,R);await J(s,E,k),await he(s,R),w===a&&await Ze(s,"HEAD",E),y.length>0&&await Un(s,E,y);let P=`Branch: renamed ${R} to ${E}`;if(await re(s,r.env,E,k,k,P),w===a){let D=await Mn(s,r.env);await st(s,"HEAD",{oldHash:k,newHash:ne,...D,message:P}),await st(s,"HEAD",{oldHash:ne,newHash:k,...D,message:P})}let C=await pe(s),A=`branch "${w}"`;return C[A]&&(C[`branch "${b}"`]=C[A],delete C[A],await ze(s,C)),{stdout:"",stderr:"",exitCode:0}}let f=n.forceDelete;if(n.delete||f){if(!n.name)return S("branch name required");let w=n.name===a;if(!w&&!a&&await Ut(s)&&(await kt(s))?.headName===`refs/heads/${n.name}`&&(w=!0),w)return _(`error: cannot delete branch '${n.name}' used by worktree at '${s.workTree}'
245
+ `);let b=`refs/heads/${n.name}`,R=await U(s,b);if(!R)return _(`error: branch '${n.name}' not found
246
+ `);let E="";if(!f){let k=await Z(s),y=(await pe(s))[`branch "${n.name}"`],P=y?.remote,C=y?.merge,A=null,D=null;if(P&&C&&(A=C.replace(/^refs\/heads\//,`refs/remotes/${P}/`),D=await U(s,A)),D&&A){if(!(R===D||await tn(s,R,D))){let L=k!=null&&(R===k||await tn(s,R,k))?`warning: not deleting branch '${n.name}' that is not yet merged to
247
+ '${A}', even though it is merged to HEAD
248
+ `:"";return rl(s,n.name,L)}k!=null&&(R===k||await tn(s,R,k))||(E=`warning: deleting branch '${n.name}' that has been merged to
249
+ '${A}', but not yet merged to HEAD
250
+ `)}else if(k&&R!==k&&!await tn(s,R,k))return rl(s,n.name)}return await he(s,b),{stdout:`Deleted branch ${n.name} (was ${X(R)}).
251
+ `,stderr:E,exitCode:0}}if(n.setUpstreamTo){let w=n.setUpstreamTo,b=n.name||a;if(!b)return S("could not set upstream of HEAD when it does not point to any branch.");if(!await U(s,`refs/heads/${b}`))return S(`branch '${b}' does not exist`);let E=w.indexOf("/");if(E<0)return nl(w);let k=w.slice(0,E),x=w.slice(E+1);if(!await U(s,`refs/remotes/${w}`))return nl(w);let P=await pe(s),C=`branch "${b}"`;return P[C]||(P[C]={}),P[C].remote=k,P[C].merge=`refs/heads/${x}`,await ze(s,P),{stdout:`branch '${b}' set up to track '${w}'.
252
+ `,stderr:"",exitCode:0}}if(n.name&&!n.remotes&&!n.all){if(!En(n.name))return S(`'${n.name}' is not a valid branch name`);let w=n.newName,b;if(w){let y=await Me(s,w,`not a valid object name: '${w}'`);if(M(y))return y;b=y.hash}else if(b=await Z(s),!b)return S("Not a valid object name: 'HEAD'.");let R=`refs/heads/${n.name}`;if(await U(s,R))return S(`a branch named '${n.name}' already exists`);await J(s,R,b);let k=w??"HEAD";await re(s,r.env,R,null,b,`branch: Created from ${k}`);let x="";return w&&(x=await $o(s,n.name,w)),{stdout:"",stderr:x,exitCode:0}}let l=n.verbose||0,d=!n.remotes||n.all,u=n.remotes||n.all,h=[];if(d&&!a){let w=await Z(s);if(w){let b=await Ut(s),R;if(b){let E=await kt(s);if(E?.headName){let k=Pe(E.headName);if(k==="detached HEAD"){let x=await ps(s);R=`(no branch, rebasing detached HEAD ${x?X(x):"(null)"})`}else R=`(no branch, rebasing ${k})`}else R="(no branch)"}else{let E=await ps(s);E?R=`(HEAD detached ${w===E?"at":"from"} ${X(E)})`:R="(no branch)"}h.push({displayName:R,hash:w,isCurrent:!0,branchName:null})}}if(d){let w=await ye(s,"refs/heads");for(let b of w){let R=Pe(b.name);h.push({displayName:R,hash:b.hash,isCurrent:R===a,branchName:R})}}if(u){let w=await ye(s,"refs/remotes");for(let b of w){let R=b.name.replace("refs/remotes/",""),E=null,k=await s.refStore.readRef(b.name);k?.type==="symbolic"&&(E=k.target.replace("refs/remotes/",""));let x=E?n.all?`remotes/${R} -> ${E}`:`${R} -> ${E}`:n.all?`remotes/${R}`:R;h.push({displayName:x,hash:b.hash,isCurrent:!1,branchName:null})}}if(h.length===0)return{stdout:"",stderr:"",exitCode:0};if(l===0)return{stdout:`${h.map(b=>b.isCurrent?`* ${b.displayName}`:` ${b.displayName}`).join(`
253
+ `)}
254
+ `,stderr:"",exitCode:0};let m=l>=1?await pe(s):null,p=Math.max(...h.map(w=>w.displayName.length)),g=[];for(let w of h){let b=w.isCurrent?"* ":" ",R=w.displayName.padEnd(p),E=X(w.hash),k="";try{let y=await j(s,w.hash);k=ue(y.message)}catch{}let x="";if(m&&w.branchName){let y=await Bt(s,m,w.branchName);if(y){let P=Ro(y,l>=2);P&&(x=` ${P}`)}}g.push(`${b}${R} ${E}${x} ${k}`)}return{stdout:`${g.join(`
255
+ `)}
256
+ `,stderr:"",exitCode:0}}})}function de(e){return e!=null&&typeof e=="object"&&"reject"in e&&e.reject===!0}var up=["preCommit","preMergeCommit","preCheckout","prePush","preFetch","preClone","prePull","preRebase","preReset","preCherryPick","preRevert","beforeCommand"],hp=["commitMsg","mergeMsg"],mp=["postCommit","postMerge","postCheckout","postPush","postFetch","postClone","postPull","postReset","postCherryPick","postRevert","afterCommand"],pp=["onRefUpdate","onRefDelete","onObjectWrite"];function gp(...e){let t=e.filter(r=>r!=null);if(t.length===0)return{};if(t.length===1)return t[0];let n={};for(let r of up){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o){let a=await i(s);if(de(a))return a}})}for(let r of hp){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o){let a=await i(s);if(de(a))return a}})}for(let r of mp){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o)try{await i(s)}catch{}})}for(let r of pp){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=s=>{for(let i of o)try{i(s)}catch{}})}return n}se();Ue();Ce();ie();Be();ge();fn();Nt();Je();function il(e,t){e.command("checkout",{description:"Switch branches or restore working tree files",args:[q.string().name("target").describe("Branch, commit, path, or start-point for -b/-B").optional()],options:{branch:Y.string().alias("b").describe("Create and switch to a new branch"),forceBranch:Y.string().alias("B").describe("Create/reset and switch to a new branch"),detach:O().alias("d").describe("Detach HEAD at named commit"),orphan:O().describe("Create a new orphan branch"),ours:O().describe("Checkout our version for unmerged files"),theirs:O().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await K(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.target;if(n.ours&&n.theirs)return S("--ours and --theirs are incompatible");if(n.detach&&(n.branch||n.forceBranch||n.orphan))return S("'--detach' cannot be used with '-b/-B/--orphan'");if(o.passthrough.length>0){if(n.detach)return S(`git checkout: --detach does not take a path argument '${o.passthrough[0]}'`);let u=ut(i,r.cwd),h=o.passthrough,m=null;if(a){if(n.ours||n.theirs)return S("cannot specify both a revision and --ours/--theirs");let p=await Me(i,a,`invalid reference: ${a}`);if(M(p))return p;m=p.commit.tree}return n.ours||n.theirs?Co(i,h,u,n.theirs?3:2):xo(i,h,u,m)}if(n.orphan)return n.branch?S("--orphan and -b are incompatible"):n.ours||n.theirs?S("--orphan and --ours/--theirs are incompatible"):a?bp(i,a,r.env,t):S("you must specify a branch to checkout");if(n.detach){let u=a??"HEAD",h=await Me(i,u,`invalid reference: ${u}`);return M(h)?h:ol(i,u,h.hash,r.env,t)}if(n.branch||n.forceBranch){let u=n.branch||n.forceBranch;return yp(i,u,a,r.env,t,!!n.forceBranch)}if(!a)return S("you must specify a branch to checkout");if(a==="-")return wp(i,r.env,t);let c=`refs/heads/${a}`,f=await U(i,c);if(f)return al(i,a,c,f,r.env,t);let l=await Oo(i,a);if(l)return Ep(i,a,l.trackingRef,r.env,t);let d=await We(i,a);if(d){let u=await Te(i,d);return ol(i,a,u,r.env,t)}if(i.workTree){let u=await V(i),h=qs(u,a);if(h)return await dt(i,{path:h.path,hash:h.hash,mode:h.mode}),{stdout:"",stderr:"",exitCode:0}}return _(`error: pathspec '${a}' did not match any file(s) known to git
257
+ `)}})}async function wp(e,t,n){let r=await Gf(e);return r?al(e,r.name,r.refName,r.hash,t,n):S("no previous branch")}async function bp(e,t,n,r){if(!En(t))return S(`'${t}' is not a valid branch name`);let o=`refs/heads/${t}`;if(await U(e,o))return S(`a branch named '${t}' already exists`);let i=await V(e),a=Vn(i);if(a)return a;let c=await Z(e),f=null;c&&(f=(await j(e,c)).tree),await Ze(e,"HEAD",o),await Et(e);let l=await In(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:c,newHead:ne,isBranchCheckout:!0});let d="";return f&&(d=await Yn(e,f,i)),{stdout:d,stderr:`Switched to a new branch '${t}'
258
+ ${l}`,exitCode:0}}async function yp(e,t,n,r,o,s=!1){if(!En(t))return S(`'${t}' is not a valid branch name`);let i=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"create-branch"});if(de(i))return _(i.message??"");let a=await te(e),c=await Z(e),f=`refs/heads/${t}`,l=await U(e,f);if(l&&!s)return S(`a branch named '${t}' already exists`);let d;if(n){let k=await Me(e,n,`invalid reference: ${n}`);if(M(k))return k;d=k.hash}else d=c;if(s||n){let k=await V(e),x=Vn(k);if(x)return x}d&&await J(e,f,d);let u=await V(e);if(d&&c&&d!==c){let k=await j(e,c),x=await j(e,d);if(k.tree!==x.tree){let y=await hn(e,k.tree,x.tree,u);if(!y.success)return y.errorOutput??_("error: checkout would overwrite local changes");u={version:2,entries:y.newEntries},await ae(e,u),await De(e,y.worktreeOps)}}await Ze(e,"HEAD",f),await Et(e);let h=await In(e),m=a?.type==="symbolic"?a.target.replace(/^refs\/heads\//,""):c??ne,p=n??"HEAD";d&&(l?l!==d&&await re(e,r,f,l,d,`branch: Reset to ${p}`):await re(e,r,f,null,d,`branch: Created from ${p}`)),await re(e,r,"HEAD",c,d??ne,`checkout: moving from ${m} to ${t}`),await o?.hooks?.postCheckout?.({repo:e,prevHead:c,newHead:d??ne,isBranchCheckout:!0});let g="";if((s||n)&&d){let k=await j(e,d);g=await Yn(e,k.tree,u)}let w=await pe(e),b=await Bt(e,w,t);b&&(g+=zn(b));let R=a?.type==="symbolic"&&a.target===f,E=l?R?`Reset branch '${t}'
259
+ `:`Switched to and reset branch '${t}'
258
260
  `:`Switched to a new branch '${t}'
259
- `;return{stdout:u,stderr:`${p}${l}`,exitCode:0}}async function al(e,t,n,r,o,s){let i=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"switch"});return de(i)?F(i.message??""):mr(e,t,n,r,o,s)}async function Ep(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"create-branch"});if(de(s))return F(s.message??"");let i=await U(e,n);if(!i)return S(`invalid reference: ${n}`);let a=`refs/heads/${t}`;await J(e,a,i);let c=n.replace(/^refs\/remotes\//,"").split("/"),f=c[0]??"",l=`refs/heads/${c.slice(1).join("/")}`,d=await pe(e);d[`branch "${t}"`]={...d[`branch "${t}"`],remote:f,merge:l},await ze(e,d),await re(e,r,a,null,i,`branch: Created from ${n}`);let u=await mr(e,t,a,i,r,o,{isNew:!0}),h=c.slice(1).join("/");return u.stdout=`branch '${t}' set up to track '${f}/${h}'.
260
- `,u}async function ol(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"detach"});return de(s)?F(s.message??""):Yn(e,n,r,o,{detachAdviceTarget:t})}se();Ue();Ce();se();function ha(e,t){let n=e.length,r=t.length;if(n===0&&r===0)return[];if(n===0)return[{buffer1:[0,0],buffer2:[0,r]}];if(r===0)return[{buffer1:[0,n],buffer2:[0,0]}];let{changedOld:o,changedNew:s}=da(e,t);return kp(o,n,s,r)}function kp(e,t,n,r){let o=[],s=0,i=0;for(;s<t||i<r;){for(;s<t&&i<r&&!e[s]&&!n[i];)s++,i++;if(s>=t&&i>=r)break;let a=s,c=i;for(;s<t&&e[s];)s++;for(;i<r&&n[i];)i++;(s>a||i>c)&&o.push({buffer1:[a,s-a],buffer2:[c,i-c]})}return o}function Rp(e,t,n){let r=[];for(let c of ha(t,e))r.push({ab:"a",oStart:c.buffer1[0],oLength:c.buffer1[1],abStart:c.buffer2[0],abLength:c.buffer2[1]});for(let c of ha(t,n))r.push({ab:"b",oStart:c.buffer1[0],oLength:c.buffer1[1],abStart:c.buffer2[0],abLength:c.buffer2[1]});r.sort((c,f)=>c.oStart-f.oStart);let o=[],s=0;function i(c){c>s&&(o.push({stable:!0,buffer:"o",bufferStart:s,bufferLength:c-s,content:t.slice(s,c)}),s=c)}let a=0;for(;a<r.length;){let c=r[a++],f=c.oStart,l=c.oStart+c.oLength,d=[c];for(i(f);a<r.length;){let u=r[a];if(u.oStart>l)break;l=Math.max(l,u.oStart+u.oLength),d.push(u),a++}if(d.length===1){if(c.abLength>0){let u=c.ab==="a"?e:n;o.push({stable:!0,buffer:c.ab,bufferStart:c.abStart,bufferLength:c.abLength,content:u.slice(c.abStart,c.abStart+c.abLength)})}}else{let u={a:{abMin:e.length,abMax:-1,oMin:t.length,oMax:-1},b:{abMin:n.length,abMax:-1,oMin:t.length,oMax:-1}};for(let w of d){let b=w.oStart,k=b+w.oLength,E=w.abStart,R=E+w.abLength,x=u[w.ab];x.abMin=Math.min(E,x.abMin),x.abMax=Math.max(R,x.abMax),x.oMin=Math.min(b,x.oMin),x.oMax=Math.max(k,x.oMax)}let h=u.a.abMin+(f-u.a.oMin),m=u.a.abMax+(l-u.a.oMax),p=u.b.abMin+(f-u.b.oMin),g=u.b.abMax+(l-u.b.oMax);o.push({stable:!1,a:e.slice(h,m),o:t.slice(f,l),b:n.slice(p,g)})}s=l}return i(t.length),o}function xp(e,t,n,r){let o=r?.excludeFalseConflicts??!0,s=Rp(e,t,n),i=[],a=[];function c(){a.length&&(i.push({type:"ok",lines:a}),a=[])}for(let f of s)f.stable?a.push(...f.content):o&&fl(f.a,f.b)?a.push(...f.a):(c(),i.push({type:"conflict",a:f.a,o:f.o,b:f.b}));return c(),r?.conflictStyle==="diff3"?cl(i):cl(Cp(i))}function Es(e,t,n,r){let o=r?.markerSize??7,s=r?.conflictStyle??"merge",i=`${"<".repeat(o)}${r?.a?` ${r.a}`:""}`,a=`${"|".repeat(o)}${r?.o?` ${r.o}`:""}`,c="=".repeat(o),f=`${">".repeat(o)}${r?.b?` ${r.b}`:""}`,l=xp(e,t,n,{conflictStyle:s}),d=!1,u=[];for(let h of l)h.type==="ok"?u.push(...h.lines):(d=!0,s==="diff3"?u.push(i,...h.a,a,...h.o,c,...h.b,f):u.push(i,...h.a,c,...h.b,f));return{conflict:d,result:u}}function Cp(e){let t=[];for(let n of e)n.type==="ok"?t.push(n):t.push(...Pp(n));return t}function Pp(e){let{a:t,b:n}=e;if(t.length===0||n.length===0)return[e];if(fl(t,n))return[e];let r=ha(t,n);if(r.length===0)return[{type:"ok",lines:t}];let o=[],s=0;for(let a of r){let c=a.buffer1[0];c-s>0&&o.push({type:"ok",lines:t.slice(s,c)});let l=c+a.buffer1[1],d=a.buffer2[0]+a.buffer2[1];o.push({type:"conflict",a:t.slice(c,l),o:[],b:n.slice(a.buffer2[0],d)}),s=l}return t.length-s>0&&o.push({type:"ok",lines:t.slice(s)}),o.length===1&&o[0].type==="conflict"?[e]:o}function cl(e){if(e.length<3)return e;let t=[e[0]];for(let r=1;r<e.length;r++){let o=t[t.length-1],s=e[r];o.type==="ok"&&s.type==="ok"?o.lines=[...o.lines,...s.lines]:t.push(s)}if(t.length<3)return t;let n=[t[0]];for(let r=1;r<t.length;r++){let o=n[n.length-1],s=t[r];if(o.type==="conflict"&&s.type==="ok"&&s.lines.length<=3&&r+1<t.length&&t[r+1].type==="conflict"){let i=t[r+1],a=o;a.a=[...o.a,...s.lines,...i.a],a.b=[...o.b,...s.lines,...i.b],a.o=[...o.o,...s.lines,...i.o],r++}else n.push(s)}return n}function wr(e,t,n,r){let o=Es(At(e),At(t),At(n),{a:r.a,o:r.o,b:r.b,markerSize:r.markerSize,conflictStyle:r.conflictStyle}),i=(o.result[o.result.length-1]??"").endsWith("\0"),a=o.result.map(ma);return(a[a.length-1]??"").startsWith(">>>>>>>")||!i?`${a.join(`
261
+ `;return{stdout:g,stderr:`${E}${h}`,exitCode:0}}async function al(e,t,n,r,o,s){let i=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"switch"});return de(i)?_(i.message??""):mr(e,t,n,r,o,s)}async function Ep(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"create-branch"});if(de(s))return _(s.message??"");let i=await U(e,n);if(!i)return S(`invalid reference: ${n}`);let a=`refs/heads/${t}`;await J(e,a,i);let c=n.replace(/^refs\/remotes\//,"").split("/"),f=c[0]??"",l=`refs/heads/${c.slice(1).join("/")}`,d=await pe(e);d[`branch "${t}"`]={...d[`branch "${t}"`],remote:f,merge:l},await ze(e,d),await re(e,r,a,null,i,`branch: Created from ${n}`);let u=await mr(e,t,a,i,r,o,{isNew:!0}),h=c.slice(1).join("/");return u.stdout=`branch '${t}' set up to track '${f}/${h}'.
262
+ `,u}async function ol(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"detach"});return de(s)?_(s.message??""):Xn(e,n,r,o,{detachAdviceTarget:t})}se();Ue();Ce();se();function ha(e,t){let n=e.length,r=t.length;if(n===0&&r===0)return[];if(n===0)return[{buffer1:[0,0],buffer2:[0,r]}];if(r===0)return[{buffer1:[0,n],buffer2:[0,0]}];let{changedOld:o,changedNew:s}=da(e,t);return kp(o,n,s,r)}function kp(e,t,n,r){let o=[],s=0,i=0;for(;s<t||i<r;){for(;s<t&&i<r&&!e[s]&&!n[i];)s++,i++;if(s>=t&&i>=r)break;let a=s,c=i;for(;s<t&&e[s];)s++;for(;i<r&&n[i];)i++;(s>a||i>c)&&o.push({buffer1:[a,s-a],buffer2:[c,i-c]})}return o}function Rp(e,t,n){let r=[];for(let c of ha(t,e))r.push({ab:"a",oStart:c.buffer1[0],oLength:c.buffer1[1],abStart:c.buffer2[0],abLength:c.buffer2[1]});for(let c of ha(t,n))r.push({ab:"b",oStart:c.buffer1[0],oLength:c.buffer1[1],abStart:c.buffer2[0],abLength:c.buffer2[1]});r.sort((c,f)=>c.oStart-f.oStart);let o=[],s=0;function i(c){c>s&&(o.push({stable:!0,buffer:"o",bufferStart:s,bufferLength:c-s,content:t.slice(s,c)}),s=c)}let a=0;for(;a<r.length;){let c=r[a++],f=c.oStart,l=c.oStart+c.oLength,d=[c];for(i(f);a<r.length;){let u=r[a];if(u.oStart>l)break;l=Math.max(l,u.oStart+u.oLength),d.push(u),a++}if(d.length===1){if(c.abLength>0){let u=c.ab==="a"?e:n;o.push({stable:!0,buffer:c.ab,bufferStart:c.abStart,bufferLength:c.abLength,content:u.slice(c.abStart,c.abStart+c.abLength)})}}else{let u={a:{abMin:e.length,abMax:-1,oMin:t.length,oMax:-1},b:{abMin:n.length,abMax:-1,oMin:t.length,oMax:-1}};for(let w of d){let b=w.oStart,R=b+w.oLength,E=w.abStart,k=E+w.abLength,x=u[w.ab];x.abMin=Math.min(E,x.abMin),x.abMax=Math.max(k,x.abMax),x.oMin=Math.min(b,x.oMin),x.oMax=Math.max(R,x.oMax)}let h=u.a.abMin+(f-u.a.oMin),m=u.a.abMax+(l-u.a.oMax),p=u.b.abMin+(f-u.b.oMin),g=u.b.abMax+(l-u.b.oMax);o.push({stable:!1,a:e.slice(h,m),o:t.slice(f,l),b:n.slice(p,g)})}s=l}return i(t.length),o}function xp(e,t,n,r){let o=r?.excludeFalseConflicts??!0,s=Rp(e,t,n),i=[],a=[];function c(){a.length&&(i.push({type:"ok",lines:a}),a=[])}for(let f of s)f.stable?a.push(...f.content):o&&fl(f.a,f.b)?a.push(...f.a):(c(),i.push({type:"conflict",a:f.a,o:f.o,b:f.b}));return c(),r?.conflictStyle==="diff3"?cl(i):cl(Cp(i))}function Es(e,t,n,r){let o=r?.markerSize??7,s=r?.conflictStyle??"merge",i=`${"<".repeat(o)}${r?.a?` ${r.a}`:""}`,a=`${"|".repeat(o)}${r?.o?` ${r.o}`:""}`,c="=".repeat(o),f=`${">".repeat(o)}${r?.b?` ${r.b}`:""}`,l=xp(e,t,n,{conflictStyle:s}),d=!1,u=[];for(let h of l)h.type==="ok"?u.push(...h.lines):(d=!0,s==="diff3"?u.push(i,...h.a,a,...h.o,c,...h.b,f):u.push(i,...h.a,c,...h.b,f));return{conflict:d,result:u}}function Cp(e){let t=[];for(let n of e)n.type==="ok"?t.push(n):t.push(...Pp(n));return t}function Pp(e){let{a:t,b:n}=e;if(t.length===0||n.length===0)return[e];if(fl(t,n))return[e];let r=ha(t,n);if(r.length===0)return[{type:"ok",lines:t}];let o=[],s=0;for(let a of r){let c=a.buffer1[0];c-s>0&&o.push({type:"ok",lines:t.slice(s,c)});let l=c+a.buffer1[1],d=a.buffer2[0]+a.buffer2[1];o.push({type:"conflict",a:t.slice(c,l),o:[],b:n.slice(a.buffer2[0],d)}),s=l}return t.length-s>0&&o.push({type:"ok",lines:t.slice(s)}),o.length===1&&o[0].type==="conflict"?[e]:o}function cl(e){if(e.length<3)return e;let t=[e[0]];for(let r=1;r<e.length;r++){let o=t[t.length-1],s=e[r];o.type==="ok"&&s.type==="ok"?o.lines=[...o.lines,...s.lines]:t.push(s)}if(t.length<3)return t;let n=[t[0]];for(let r=1;r<t.length;r++){let o=n[n.length-1],s=t[r];if(o.type==="conflict"&&s.type==="ok"&&s.lines.length<=3&&r+1<t.length&&t[r+1].type==="conflict"){let i=t[r+1],a=o;a.a=[...o.a,...s.lines,...i.a],a.b=[...o.b,...s.lines,...i.b],a.o=[...o.o,...s.lines,...i.o],r++}else n.push(s)}return n}function wr(e,t,n,r){let o=Es(At(e),At(t),At(n),{a:r.a,o:r.o,b:r.b,markerSize:r.markerSize,conflictStyle:r.conflictStyle}),i=(o.result[o.result.length-1]??"").endsWith("\0"),a=o.result.map(ma);return(a[a.length-1]??"").startsWith(">>>>>>>")||!i?`${a.join(`
261
263
  `)}
262
264
  `:a.join(`
263
265
  `)}function At(e){if(e==="")return[];let t=e.split(`
264
- `);if(t[t.length-1]==="")t.pop();else{let n=t[t.length-1]??"";t[t.length-1]=`${n}\0`}return t}function ma(e){return e.endsWith("\0")?e.slice(0,-1):e}function fl(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}Ce();ie();wn();me();Rn();Ae();Je();Zt();var Nr=new TextDecoder,nn=new TextEncoder,ll={name:"virtual",email:"virtual@merge",timestamp:0,timezone:"+0000"};async function qt(e,t,n,r,o,s){let{paths:i,baseMap:a,oursMap:c,theirsMap:f}=await Op(e,t,n,r),l=await Ip(e,i,a,c,f,o,s);return Tp(e,i,o,l,s)}async function Rs(e,t,n,r,o){let s=await Wt(e,t,n),i=await j(e,t),a=await j(e,n);if(s.length===0)return{...await qt(e,null,i.tree,a.tree,r,o),baseTree:null};if(s.length===1){let l=await j(e,s[0]);return{...await qt(e,l.tree,i.tree,a.tree,r,o),baseTree:l.tree}}let c=await yl(e,t,n,s,1,o);return{...await qt(e,c,i.tree,a.tree,r,o),baseTree:c}}async function Op(e,t,n,r){let o=await le(e,t),s=await le(e,n),i=await le(e,r),a=new Set;for(let f of o.keys())a.add(f);for(let f of s.keys())a.add(f);for(let f of i.keys())a.add(f);let c=new Map;for(let f of a){let l=o.get(f)??null,d=s.get(f)??null,u=i.get(f)??null,h=l?{hash:l.hash,mode:l.mode}:null,m=d?{hash:d.hash,mode:d.mode}:null,p=u?{hash:u.hash,mode:u.mode}:null,g=(l?1:0)|(d?2:0)|(u?4:0),w=l?.hash??null,b=d?.hash??null,k=u?.hash??null,E=0;w!==null&&w===b&&(E|=3),w!==null&&w===k&&(E|=5),b!==null&&b===k&&(E|=6);let R={path:f,stages:[h,m,p],pathnames:[f,f,f],filemask:g,matchMask:E,merged:{result:null,clean:!1},pathConflict:!1};if(Sp(R)){c.set(f,R);continue}c.set(f,R)}return{paths:c,baseMap:o,oursMap:s,theirsMap:i}}function Sp(e){let[t,n,r]=e.stages,o=t?.hash??null,s=n?.hash??null,i=r?.hash??null;return s===o&&i===o?(n?e.merged={result:{hash:s,mode:n.mode},clean:!0}:e.merged={result:null,clean:!0},!0):s===i&&s!==null?(e.merged={result:{hash:s,mode:n.mode},clean:!0},!0):s===null&&i===null?(e.merged={result:null,clean:!0},!0):i===o&&s!==o?(n?e.merged={result:{hash:s,mode:n.mode},clean:!0}:e.merged={result:null,clean:!0},!0):s===o&&i!==o?(r?e.merged={result:{hash:i,mode:r.mode},clean:!0}:e.merged={result:null,clean:!0},!0):!1}async function Ip(e,t,n,r,o,s,i){let a={entries:[],conflicts:[],msgBuf:[],worktreeBlobs:new Map},c=[],f=[];for(let[I,T]of n)r.has(I)||c.push({path:I,status:"deleted",oldHash:T.hash,oldMode:T.mode}),o.has(I)||f.push({path:I,status:"deleted",oldHash:T.hash,oldMode:T.mode});for(let[I,T]of r)n.has(I)||c.push({path:I,status:"added",newHash:T.hash,newMode:T.mode});for(let[I,T]of o)n.has(I)||f.push({path:I,status:"added",newHash:T.hash,newMode:T.mode});let l=await it(e,c),d=await it(e,f);if(l.renames.length===0&&d.renames.length===0)return a;let u=new Map,h=new Map;for(let I of l.renames)u.set(I.oldPath,I);for(let I of d.renames)h.set(I.oldPath,I);let m=new Set;for(let[I]of r)!n.has(I)&&o.has(I)&&m.add(I);let p=new Set,g=s?.a??"HEAD",w=s?.b??"theirs";function b(I,T,L=0){a.msgBuf.push({sortKey:I,subOrder:L,text:T})}for(let I of[...n.keys()].sort()){let T=u.get(I),L=h.get(I);if(!T&&!L)continue;let W=n.get(I);if(p.add(I),T&&L)if(p.add(T.newPath),p.add(L.newPath),T.newPath===L.newPath){let N=r.get(T.newPath),B=o.get(L.newPath);if(N.hash===B.hash)a.entries.push(Ct(T.newPath,N));else{let ee=pa(t,T.newPath);ee.stages=[{hash:W.hash,mode:W.mode},{hash:N.hash,mode:N.mode},{hash:B.hash,mode:B.mode}],ee.pathnames=[I,T.newPath,L.newPath],ee.filemask=7,ee.merged={result:null,clean:!1}}}else{let N=r.get(T.newPath),B=o.get(L.newPath),ee=await bl(e,W,N,B,s,void 0,void 0,i);ee.conflict&&b(I,`Auto-merging ${I}`,-1),a.conflicts.push({path:I,reason:"rename-rename",oursPath:T.newPath,theirsPath:L.newPath}),b(I,`CONFLICT (rename/rename): ${I} renamed to ${T.newPath} in ${g} and to ${L.newPath} in ${w}.`),a.entries.push(Ct(I,W,1)),a.entries.push(ft(T.newPath,N.mode,ee.hash,2)),a.entries.push(ft(L.newPath,B.mode,ee.hash,3)),a.worktreeBlobs.set(T.newPath,{hash:ee.hash,mode:N.mode}),a.worktreeBlobs.set(L.newPath,{hash:ee.hash,mode:B.mode})}else if(T){p.add(T.newPath);let N=o.get(I),B=r.get(T.newPath),ee=m.has(T.newPath);if(N)if(ee)await gl(e,a,T.newPath,I,W,B,N,r,o,!1,s,i);else if(N.hash===W.hash&&B.hash===W.hash)a.entries.push(Ct(T.newPath,B));else if(N.hash===W.hash)a.entries.push(Ct(T.newPath,B));else if(B.hash===W.hash)a.entries.push(ft(T.newPath,B.mode,N.hash));else{let z=pa(t,T.newPath);z.stages=[{hash:W.hash,mode:W.mode},{hash:B.hash,mode:B.mode},{hash:N.hash,mode:N.mode}],z.pathnames=[I,T.newPath,I],z.filemask=7,z.merged={result:null,clean:!1}}else{let z=o.get(T.newPath);if(a.conflicts.push({path:T.newPath,reason:"rename-delete",deletedBy:"theirs",oldPath:I}),b(T.newPath,`CONFLICT (rename/delete): ${I} renamed to ${T.newPath} in ${g}, but deleted in ${w}.`),z){a.conflicts.push({path:T.newPath,reason:"add-add"}),b(T.newPath,`Auto-merging ${T.newPath}`,0),b(T.newPath,`CONFLICT (add/add): Merge conflict in ${T.newPath}`,1),a.entries.push(Ct(T.newPath,B,2)),a.entries.push(Ct(T.newPath,z,3));let Q=await Mo(e,B.hash,z.hash,B.mode,s);a.worktreeBlobs.set(T.newPath,{hash:Q,mode:B.mode})}else a.entries.push(ft(T.newPath,W.mode,W.hash,1)),a.entries.push(Ct(T.newPath,B,2)),a.worktreeBlobs.set(T.newPath,{hash:B.hash,mode:B.mode}),B.hash!==W.hash&&b(T.newPath,`CONFLICT (modify/delete): ${T.newPath} deleted in ${w} and modified in ${g}. Version ${g} of ${T.newPath} left in tree.`,1)}}else if(L){p.add(L.newPath);let N=r.get(I),B=o.get(L.newPath),ee=m.has(L.newPath);if(N)if(ee)await gl(e,a,L.newPath,I,W,N,B,r,o,!0,s,i);else if(N.hash===W.hash&&B.hash===W.hash)a.entries.push(Ct(L.newPath,B));else if(N.hash===W.hash)a.entries.push(Ct(L.newPath,B));else if(B.hash===W.hash)a.entries.push(ft(L.newPath,B.mode,N.hash));else{let z=pa(t,L.newPath);z.stages=[{hash:W.hash,mode:W.mode},{hash:N.hash,mode:N.mode},{hash:B.hash,mode:B.mode}],z.pathnames=[I,I,L.newPath],z.filemask=7,z.merged={result:null,clean:!1}}else{let z=r.get(L.newPath);if(a.conflicts.push({path:L.newPath,reason:"rename-delete",deletedBy:"ours",oldPath:I}),b(L.newPath,`CONFLICT (rename/delete): ${I} renamed to ${L.newPath} in ${w}, but deleted in ${g}.`),z){a.conflicts.push({path:L.newPath,reason:"add-add"}),b(L.newPath,`Auto-merging ${L.newPath}`,0),b(L.newPath,`CONFLICT (add/add): Merge conflict in ${L.newPath}`,1),a.entries.push(Ct(L.newPath,z,2)),a.entries.push(Ct(L.newPath,B,3));let Q=await Mo(e,z.hash,B.hash,z.mode,s);a.worktreeBlobs.set(L.newPath,{hash:Q,mode:z.mode})}else a.entries.push(ft(L.newPath,W.mode,W.hash,1)),a.entries.push(Ct(L.newPath,B,3)),a.worktreeBlobs.set(L.newPath,{hash:B.hash,mode:B.mode}),B.hash!==W.hash&&b(L.newPath,`CONFLICT (modify/delete): ${L.newPath} deleted in ${g} and modified in ${w}. Version ${w} of ${L.newPath} left in tree.`,1)}}}let k=new Set(l.renames.map(I=>I.newPath)),E=new Set(d.renames.map(I=>I.newPath)),R=dl(n,r),x=dl(n,o),y=ul(R,o,n),C=ul(x,r,n),P=hl(l.renames,y),D=hl(d.renames,C),A=ml(P),$=ml(D);for(let I of[...A.keys()])$.has(I)&&(A.delete(I),$.delete(I));let v=new Set(A.keys()),_=new Set($.keys());if($.size>0)for(let I of c){if(I.status!=="added"||k.has(I.path))continue;let T=pl(I.path,$,v);if(!T)continue;if(t.has(T)||n.has(T)||r.has(T)||o.has(T)){if(r.has(T)){b(T,`CONFLICT (implicit dir rename): Existing file/dir at ${T} in the way of implicit directory rename(s) putting the following path(s) there: ${I.path}.`,1);continue}let N=r.get(I.path),B=o.get(T)??n.get(T);a.entries.push(ft(T,N.mode,N.hash,2)),B&&a.entries.push(ft(T,B.mode,B.hash,3)),a.worktreeBlobs.set(T,{hash:N.hash,mode:N.mode}),a.conflicts.push({path:T,reason:"add-add"}),b(T,`CONFLICT (file location): ${I.path} added in ${g} inside a directory that was renamed in ${w}, suggesting it should perhaps be moved to ${T}.`,1);let ee=t.get(I.path);ee&&(ee.merged={result:null,clean:!0}),p.add(I.path);continue}let L=r.get(I.path);a.entries.push(ft(T,L.mode,L.hash,2)),a.worktreeBlobs.set(T,{hash:L.hash,mode:L.mode}),a.conflicts.push({path:T,reason:"directory-rename"}),b(T,`CONFLICT (file location): ${I.path} added in ${g} inside a directory that was renamed in ${w}, suggesting it should perhaps be moved to ${T}.`,1);let W=t.get(I.path);W&&(W.merged={result:null,clean:!0}),p.add(I.path)}if(A.size>0)for(let I of f){if(I.status!=="added"||E.has(I.path))continue;let T=pl(I.path,A,_);if(!T)continue;if(t.has(T)||n.has(T)||r.has(T)||o.has(T)){if(o.has(T)){b(T,`CONFLICT (implicit dir rename): Existing file/dir at ${T} in the way of implicit directory rename(s) putting the following path(s) there: ${I.path}.`,1);continue}let N=o.get(I.path),B=r.get(T)??n.get(T);B&&a.entries.push(ft(T,B.mode,B.hash,2)),a.entries.push(ft(T,N.mode,N.hash,3)),a.worktreeBlobs.set(T,{hash:N.hash,mode:N.mode}),a.conflicts.push({path:T,reason:"add-add"}),b(T,`CONFLICT (file location): ${I.path} added in ${w} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${T}.`,1);let ee=t.get(I.path);ee&&(ee.merged={result:null,clean:!0}),p.add(I.path);continue}let L=o.get(I.path);a.entries.push(ft(T,L.mode,L.hash,3)),a.worktreeBlobs.set(T,{hash:L.hash,mode:L.mode}),a.conflicts.push({path:T,reason:"directory-rename"}),b(T,`CONFLICT (file location): ${I.path} added in ${w} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${T}.`,1);let W=t.get(I.path);W&&(W.merged={result:null,clean:!0}),p.add(I.path)}let G=new Set(a.entries.map(I=>I.path));for(let I of G){let T=t.get(I);T&&(T.merged={result:null,clean:!0})}for(let I of p){if(G.has(I))continue;let T=t.get(I);if(!T||T.merged.clean)continue;T.filemask===7&&!T.pathConflict||(T.merged={result:null,clean:!0})}return a}function dl(e,t){let n=new Set;for(let s of e.keys()){let i=Dt(s);for(;i;)n.add(i),i=Dt(i)}let r=new Set;for(let s of t.keys()){let i=Dt(s);for(;i;)r.add(i),i=Dt(i)}let o=new Set;for(let s of n)r.has(s)||o.add(s);return o}function ul(e,t,n){if(e.size===0)return e;let r=new Set;for(let o of t.keys()){if(n.has(o))continue;let s=Dt(o)??"";e.has(s)&&r.add(s)}for(let o of[...r]){let s=Dt(o);for(;s;)e.has(s)&&!r.has(s)&&r.add(s),s=Dt(s)}return r}function hl(e,t){let n=new Map;for(let r of e){let o=Dt(r.oldPath),s=Dt(r.newPath),i=!0;for(;;){if(!i){let a=o.length+(o?1:0),c=s.length+(s?1:0),f=r.oldPath.slice(a,r.oldPath.indexOf("/",a)),l=r.newPath.slice(c,r.newPath.indexOf("/",c));if(f!==l)break}if(t.has(o)){let a=n.get(o);a||(a=new Map,n.set(o,a)),a.set(s,(a.get(s)??0)+1)}if(i=!1,!o||!s)break;o=Dt(o),s=Dt(s)}}return n}function ml(e){let t=new Map;for(let[n,r]of e){let o=0,s=0,i=null;for(let[a,c]of r)c===o?s=o:c>o&&(o=c,i=a);o>0&&s!==o&&i!==null&&t.set(n,i)}return t}function pl(e,t,n){let r=Dt(e);for(;r;){let s=t.get(r);if(s!==void 0){if(n.has(s))return null;let i=e.slice(r.length+1);return s?`${s}/${i}`:i}r=Dt(r)}let o=t.get("");return o!==void 0&&!n.has(o)?`${o}/${e}`:null}function Dt(e){let t=e.lastIndexOf("/");return t===-1?"":e.slice(0,t)}async function gl(e,t,n,r,o,s,i,a,c,f=!1,l,d){let u=f?a.get(n):c.get(n),h=f?i:s;if(u.hash===h.hash){t.entries.push(ft(n,u.mode,u.hash)),t.msgBuf.push({sortKey:r,subOrder:0,text:`Auto-merging ${r}`});return}let p=await bl(e,o,s,i,l,f?{oursPath:r,theirsPath:n}:{oursPath:n,theirsPath:r},8,d);if(u.hash===p.hash)t.entries.push(ft(n,u.mode,p.hash));else if(t.conflicts.push({path:n,reason:"add-add"}),t.msgBuf.push({sortKey:n,subOrder:0,text:`Auto-merging ${n}`}),t.msgBuf.push({sortKey:n,subOrder:1,text:`CONFLICT (add/add): Merge conflict in ${n}`}),f){t.entries.push(Ct(n,u,2)),t.entries.push(ft(n,i.mode,p.hash,3));let g=await Mo(e,u.hash,p.hash,u.mode,l);t.worktreeBlobs.set(n,{hash:g,mode:u.mode})}else{t.entries.push(ft(n,s.mode,p.hash,2)),t.entries.push(Ct(n,u,3));let g=await Mo(e,p.hash,u.hash,s.mode,l);t.worktreeBlobs.set(n,{hash:g,mode:s.mode})}}async function bl(e,t,n,r,o,s,i,a){if(n.hash===t.hash)return{hash:r.hash,conflict:!1};if(r.hash===t.hash)return{hash:n.hash,conflict:!1};if(n.hash===r.hash)return{hash:n.hash,conflict:!1};if(kn(t.mode)||kn(n.mode)||kn(r.mode))return{hash:n.hash,conflict:!0};let c=await oe(e,t.hash),f=await oe(e,n.hash),l=await oe(e,r.hash);if(De(f)||De(l)||De(c))return{hash:n.hash,conflict:!0};if(a){let x=await a({path:t.path??n.path??r.path??"",base:c,ours:f,theirs:l});if(x!==null)return{hash:await Ie(e,"blob",nn.encode(x.content)),conflict:x.conflict}}let d=At(c),u=At(f),h=At(l),m=o?.conflictStyle,p=Es(u,d,h,{conflictStyle:m});if(!p.conflict)return{hash:await wa(e,p.result),conflict:!1};let g=o?.a??"HEAD",w=o?.b??"theirs",b=s?.oursPath?`${g}:${s.oursPath}`:g,k=s?.theirsPath?`${w}:${s.theirsPath}`:w,E=wr(f,c,l,{a:b,b:k,markerSize:i??7,conflictStyle:m});return{hash:await Ie(e,"blob",nn.encode(E)),conflict:!0}}async function Mo(e,t,n,r,o){let s=await oe(e,t),i=await oe(e,n),a=wr(s,"",i,{a:o?.a??"HEAD",b:o?.b??"theirs",conflictStyle:o?.conflictStyle});return Ie(e,"blob",nn.encode(a))}function Ct(e,t,n=0){return ft(e,t.mode,t.hash,n)}function ft(e,t,n,r=0){return{path:e,mode:parseInt(t,8),hash:n,stage:r,stat:He()}}async function Tp(e,t,n,r,o){let s=[...r.entries],i=[...r.conflicts],a=[...r.msgBuf],c=new Map(r.worktreeBlobs);function f(m,p,g=0){a.push({sortKey:m,subOrder:g,text:p})}for(let m of[...t.keys()].sort()){let p=t.get(m);if(p.merged.clean){p.merged.result?.hash&&s.push(Oe(m,p.merged.result.hash,p.merged.result.mode));continue}await vp(e,p,n,s,i,f,c,o)}a.sort((m,p)=>(m.sortKey<p.sortKey?-1:m.sortKey>p.sortKey?1:0)||m.subOrder-p.subOrder);let l=a.map(m=>m.text),d=[],u=new Set;for(let m of s)m.stage===0&&(d.push(m),u.add(m.path));for(let[m,p]of c)u.has(m)||d.push(Oe(m,p.hash,p.mode));d.sort((m,p)=>ve(m.path,p.path));let h=await Fe(e,d);return{entries:s,conflicts:i,messages:l,resultTree:h}}async function vp(e,t,n,r,o,s,i,a){let c=t.path,[f,l,d]=t.stages,u=f?.hash??null,h=l?.hash??null,m=d?.hash??null;if(h===null&&m!==null&&u!==null){o.push({path:c,reason:"delete-modify",deletedBy:"ours"});let p=n?.a??"HEAD",g=n?.b??"theirs";s(c,`CONFLICT (modify/delete): ${c} deleted in ${p} and modified in ${g}. Version ${g} of ${c} left in tree.`),f&&r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:m,mode:d.mode});return}if(m===null&&h!==null&&u!==null){o.push({path:c,reason:"delete-modify",deletedBy:"theirs"});let p=n?.b??"theirs",g=n?.a??"HEAD";s(c,`CONFLICT (modify/delete): ${c} deleted in ${p} and modified in ${g}. Version ${g} of ${c} left in tree.`),f&&r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,h,l.mode,2)),i.set(c,{hash:h,mode:l.mode});return}if(u===null&&h!==null&&m!==null){if(h===m){r.push(Oe(c,h,l.mode));return}s(c,`Auto-merging ${c}`,0);let p=await oe(e,h),g=await oe(e,m);if(De(p)||De(g)){o.push({path:c,reason:"add-add"}),s(c,`warning: Cannot merge binary files: ${c} (${n?.a??"HEAD"} vs. ${n?.b??"theirs"})`,-1),s(c,`CONFLICT (add/add): Merge conflict in ${c}`,1),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:h,mode:l.mode});return}if(a){let y=await a({path:c,base:null,ours:p,theirs:g});if(y!==null){let C=await Ie(e,"blob",nn.encode(y.content));if(!y.conflict){r.push(Oe(c,C,l.mode));return}o.push({path:c,reason:"add-add"}),s(c,`CONFLICT (add/add): Merge conflict in ${c}`,1),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:C,mode:l.mode});return}}let w=At(""),b=At(p),k=At(g),E=Es(b,w,k,{conflictStyle:n?.conflictStyle});if(!E.conflict){let y=await wa(e,E.result);r.push(Oe(c,y,l.mode));return}o.push({path:c,reason:"add-add"}),s(c,`CONFLICT (add/add): Merge conflict in ${c}`,1),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3));let R=wr(p,"",g,{a:n?.a??"HEAD",b:n?.b??"theirs",conflictStyle:n?.conflictStyle}),x=await Ie(e,"blob",nn.encode(R));i.set(c,{hash:x,mode:l.mode});return}if(u!==null&&h!==null&&m!==null){if(h===u){r.push(Oe(c,m,d.mode));return}if(m===u){r.push(Oe(c,h,l.mode));return}if(h===m){r.push(Oe(c,h,l.mode));return}if(s(c,`Auto-merging ${c}`,0),kn(f.mode)||kn(l.mode)||kn(d.mode)){o.push({path:c,reason:"content"}),s(c,`CONFLICT (content): Merge conflict in ${c}`,1),r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:h,mode:l.mode});return}let p=await oe(e,u),g=await oe(e,h),w=await oe(e,m);if(De(g)||De(w)||De(p)){o.push({path:c,reason:"content"}),s(c,`warning: Cannot merge binary files: ${c} (${n?.a??"HEAD"} vs. ${n?.b??"theirs"})`,-1),s(c,`CONFLICT (content): Merge conflict in ${c}`,1),r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:h,mode:l.mode});return}if(a){let x=await a({path:c,base:p,ours:g,theirs:w});if(x!==null){let y=await Ie(e,"blob",nn.encode(x.content));if(!x.conflict){r.push(Oe(c,y,l.mode));return}let C=t.pathnames[1],P=t.pathnames[2],D=C!==c||P!==c,A={path:c,reason:"content"};D&&(C!==c&&(A.oursOrigPath=C),P!==c&&(A.theirsOrigPath=P)),o.push(A),s(c,`CONFLICT (content): Merge conflict in ${c}`,1),r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:y,mode:l.mode});return}}let b=At(p),k=At(g),E=At(w),R=Es(k,b,E,{conflictStyle:n?.conflictStyle});if(R.conflict){let x=t.pathnames[1],y=t.pathnames[2],C=x!==c||y!==c,P={path:c,reason:"content"};C&&(x!==c&&(P.oursOrigPath=x),y!==c&&(P.theirsOrigPath=y)),o.push(P),s(c,`CONFLICT (content): Merge conflict in ${c}`,1),r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3));let D=C?`${n?.a??"HEAD"}:${x}`:n?.a??"HEAD",A=C?`${n?.b??"theirs"}:${y}`:n?.b??"theirs",$=wr(g,p,w,{a:D,b:A,conflictStyle:n?.conflictStyle}),v=await Ie(e,"blob",nn.encode($));i.set(c,{hash:v,mode:l.mode})}else{let x=await wa(e,R.result);r.push(Oe(c,x,l.mode))}return}}var Hp=200;async function yl(e,t,n,r,o,s){let i=await Promise.all(r.map(async d=>({hash:d,timestamp:(await j(e,d)).committer.timestamp})));i.sort((d,u)=>d.timestamp-u.timestamp);let a=i.map(d=>d.hash),c=a[0],f=c,l=(await j(e,c)).tree;for(let d=1;d<a.length;d++){let u=a[d],h=(await j(e,u)).tree,m=null;if(o>=Hp)m=l;else{let w=await Wt(e,f,u);w.length===0?m=null:w.length===1?m=(await j(e,w[0])).tree:m=await yl(e,f,u,w,o+1,s)}let p=await qt(e,m,l,h,void 0,s);l=await Ap(e,p,o);let g=cn({type:"commit",tree:l,parents:[f,u],author:ll,committer:ll,message:"merged common ancestors"});f=await Ie(e,"commit",g)}return l}async function Ap(e,t,n){let r=t.entries.filter(a=>a.stage===0),o=new Map;for(let a of t.entries)a.stage>0&&o.set(`${a.path}\0${a.stage}`,a);let s=(a,c)=>o.get(`${a}\0${c}`),i={a:"Temporary merge branch 1",b:"Temporary merge branch 2",markerSize:7+n*2};for(let a of t.conflicts){if(a.reason==="delete-modify"||a.reason==="rename-delete"){let l=s(a.path,1);if(l){r.push({...l,stage:0});continue}}if(a.reason==="rename-rename"){let l=a.oursPath??a.path,d=a.theirsPath??a.path,u=s(a.path,1),h=s(l,2),m=s(d,3);if(h&&m){let p=Nr.decode((await we(e,h.hash)).content),g=Nr.decode((await we(e,m.hash)).content),w=u?Nr.decode((await we(e,u.hash)).content):"",b=8+n*2,k=i.a??"Temporary merge branch 1",E=i.b??"Temporary merge branch 2",R=wr(p,w,g,{a:`${k}:${l}`,o:i.o,b:`${E}:${d}`,markerSize:b}),x=await Ie(e,"blob",nn.encode(R));r.push({path:l,mode:h.mode,hash:x,stage:0,stat:He()}),r.push({path:d,mode:m.mode,hash:x,stage:0,stat:He()});continue}else if(h){r.push({...h,stage:0});continue}}let c=s(a.path,2),f=s(a.path,3);if(c&&f&&(a.reason==="content"||a.reason==="add-add")){let l=Nr.decode((await we(e,c.hash)).content),d=Nr.decode((await we(e,f.hash)).content),u=a.reason==="content"?s(a.path,1):null,h=u?Nr.decode((await we(e,u.hash)).content):"",m=a.oursOrigPath||a.theirsOrigPath,p=i.a??"Temporary merge branch 1",g=i.b??"Temporary merge branch 2",w=m?`${p}:${a.oursOrigPath??a.path}`:p,b=m?`${g}:${a.theirsOrigPath??a.path}`:g,k=wr(l,h,d,{a:w,o:i.o,b,markerSize:i.markerSize}),E=await Ie(e,"blob",nn.encode(k));r.push({path:a.path,mode:c.mode,hash:E,stage:0,stat:He()})}else c?r.push({...c,stage:0}):f&&r.push({...f,stage:0})}return r.sort((a,c)=>ve(a.path,c.path)),Fe(e,r)}async function wa(e,t){let n=t.map(ma);if(n.length===0)return Ie(e,"blob",nn.encode(""));let s=(t[t.length-1]??"").endsWith("\0")?n.join(`
266
+ `);if(t[t.length-1]==="")t.pop();else{let n=t[t.length-1]??"";t[t.length-1]=`${n}\0`}return t}function ma(e){return e.endsWith("\0")?e.slice(0,-1):e}function fl(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}Ce();ie();bn();me();Pn();Ae();Je();Nt();var Nr=new TextDecoder,nn=new TextEncoder,ll={name:"virtual",email:"virtual@merge",timestamp:0,timezone:"+0000"};async function Kt(e,t,n,r,o,s){let{paths:i,baseMap:a,oursMap:c,theirsMap:f}=await Op(e,t,n,r),l=await Ip(e,i,a,c,f,o,s);return Tp(e,i,o,l,s)}async function Rs(e,t,n,r,o){let s=await qt(e,t,n),i=await j(e,t),a=await j(e,n);if(s.length===0)return{...await Kt(e,null,i.tree,a.tree,r,o),baseTree:null};if(s.length===1){let l=await j(e,s[0]);return{...await Kt(e,l.tree,i.tree,a.tree,r,o),baseTree:l.tree}}let c=await yl(e,t,n,s,1,o);return{...await Kt(e,c,i.tree,a.tree,r,o),baseTree:c}}async function Op(e,t,n,r){let o=await le(e,t),s=await le(e,n),i=await le(e,r),a=new Set;for(let f of o.keys())a.add(f);for(let f of s.keys())a.add(f);for(let f of i.keys())a.add(f);let c=new Map;for(let f of a){let l=o.get(f)??null,d=s.get(f)??null,u=i.get(f)??null,h=l?{hash:l.hash,mode:l.mode}:null,m=d?{hash:d.hash,mode:d.mode}:null,p=u?{hash:u.hash,mode:u.mode}:null,g=(l?1:0)|(d?2:0)|(u?4:0),w=l?.hash??null,b=d?.hash??null,R=u?.hash??null,E=0;w!==null&&w===b&&(E|=3),w!==null&&w===R&&(E|=5),b!==null&&b===R&&(E|=6);let k={path:f,stages:[h,m,p],pathnames:[f,f,f],filemask:g,matchMask:E,merged:{result:null,clean:!1},pathConflict:!1};if(Sp(k)){c.set(f,k);continue}c.set(f,k)}return{paths:c,baseMap:o,oursMap:s,theirsMap:i}}function Sp(e){let[t,n,r]=e.stages,o=t?.hash??null,s=n?.hash??null,i=r?.hash??null;return s===o&&i===o?(n?e.merged={result:{hash:s,mode:n.mode},clean:!0}:e.merged={result:null,clean:!0},!0):s===i&&s!==null?(e.merged={result:{hash:s,mode:n.mode},clean:!0},!0):s===null&&i===null?(e.merged={result:null,clean:!0},!0):i===o&&s!==o?(n?e.merged={result:{hash:s,mode:n.mode},clean:!0}:e.merged={result:null,clean:!0},!0):s===o&&i!==o?(r?e.merged={result:{hash:i,mode:r.mode},clean:!0}:e.merged={result:null,clean:!0},!0):!1}async function Ip(e,t,n,r,o,s,i){let a={entries:[],conflicts:[],msgBuf:[],worktreeBlobs:new Map},c=[],f=[];for(let[I,T]of n)r.has(I)||c.push({path:I,status:"deleted",oldHash:T.hash,oldMode:T.mode}),o.has(I)||f.push({path:I,status:"deleted",oldHash:T.hash,oldMode:T.mode});for(let[I,T]of r)n.has(I)||c.push({path:I,status:"added",newHash:T.hash,newMode:T.mode});for(let[I,T]of o)n.has(I)||f.push({path:I,status:"added",newHash:T.hash,newMode:T.mode});let l=await it(e,c),d=await it(e,f);if(l.renames.length===0&&d.renames.length===0)return a;let u=new Map,h=new Map;for(let I of l.renames)u.set(I.oldPath,I);for(let I of d.renames)h.set(I.oldPath,I);let m=new Set;for(let[I]of r)!n.has(I)&&o.has(I)&&m.add(I);let p=new Set,g=s?.a??"HEAD",w=s?.b??"theirs";function b(I,T,G=0){a.msgBuf.push({sortKey:I,subOrder:G,text:T})}for(let I of[...n.keys()].sort()){let T=u.get(I),G=h.get(I);if(!T&&!G)continue;let W=n.get(I);if(p.add(I),T&&G)if(p.add(T.newPath),p.add(G.newPath),T.newPath===G.newPath){let F=r.get(T.newPath),B=o.get(G.newPath);if(F.hash===B.hash)a.entries.push(Ct(T.newPath,F));else{let ee=pa(t,T.newPath);ee.stages=[{hash:W.hash,mode:W.mode},{hash:F.hash,mode:F.mode},{hash:B.hash,mode:B.mode}],ee.pathnames=[I,T.newPath,G.newPath],ee.filemask=7,ee.merged={result:null,clean:!1}}}else{let F=r.get(T.newPath),B=o.get(G.newPath),ee=await bl(e,W,F,B,s,void 0,void 0,i);ee.conflict&&b(I,`Auto-merging ${I}`,-1),a.conflicts.push({path:I,reason:"rename-rename",oursPath:T.newPath,theirsPath:G.newPath}),b(I,`CONFLICT (rename/rename): ${I} renamed to ${T.newPath} in ${g} and to ${G.newPath} in ${w}.`),a.entries.push(Ct(I,W,1)),a.entries.push(ft(T.newPath,F.mode,ee.hash,2)),a.entries.push(ft(G.newPath,B.mode,ee.hash,3)),a.worktreeBlobs.set(T.newPath,{hash:ee.hash,mode:F.mode}),a.worktreeBlobs.set(G.newPath,{hash:ee.hash,mode:B.mode})}else if(T){p.add(T.newPath);let F=o.get(I),B=r.get(T.newPath),ee=m.has(T.newPath);if(F)if(ee)await gl(e,a,T.newPath,I,W,B,F,r,o,!1,s,i);else if(F.hash===W.hash&&B.hash===W.hash)a.entries.push(Ct(T.newPath,B));else if(F.hash===W.hash)a.entries.push(Ct(T.newPath,B));else if(B.hash===W.hash)a.entries.push(ft(T.newPath,B.mode,F.hash));else{let z=pa(t,T.newPath);z.stages=[{hash:W.hash,mode:W.mode},{hash:B.hash,mode:B.mode},{hash:F.hash,mode:F.mode}],z.pathnames=[I,T.newPath,I],z.filemask=7,z.merged={result:null,clean:!1}}else{let z=o.get(T.newPath);if(a.conflicts.push({path:T.newPath,reason:"rename-delete",deletedBy:"theirs",oldPath:I}),b(T.newPath,`CONFLICT (rename/delete): ${I} renamed to ${T.newPath} in ${g}, but deleted in ${w}.`),z){a.conflicts.push({path:T.newPath,reason:"add-add"}),b(T.newPath,`Auto-merging ${T.newPath}`,0),b(T.newPath,`CONFLICT (add/add): Merge conflict in ${T.newPath}`,1),a.entries.push(Ct(T.newPath,B,2)),a.entries.push(Ct(T.newPath,z,3));let Q=await Mo(e,B.hash,z.hash,B.mode,s);a.worktreeBlobs.set(T.newPath,{hash:Q,mode:B.mode})}else a.entries.push(ft(T.newPath,W.mode,W.hash,1)),a.entries.push(Ct(T.newPath,B,2)),a.worktreeBlobs.set(T.newPath,{hash:B.hash,mode:B.mode}),B.hash!==W.hash&&b(T.newPath,`CONFLICT (modify/delete): ${T.newPath} deleted in ${w} and modified in ${g}. Version ${g} of ${T.newPath} left in tree.`,1)}}else if(G){p.add(G.newPath);let F=r.get(I),B=o.get(G.newPath),ee=m.has(G.newPath);if(F)if(ee)await gl(e,a,G.newPath,I,W,F,B,r,o,!0,s,i);else if(F.hash===W.hash&&B.hash===W.hash)a.entries.push(Ct(G.newPath,B));else if(F.hash===W.hash)a.entries.push(Ct(G.newPath,B));else if(B.hash===W.hash)a.entries.push(ft(G.newPath,B.mode,F.hash));else{let z=pa(t,G.newPath);z.stages=[{hash:W.hash,mode:W.mode},{hash:F.hash,mode:F.mode},{hash:B.hash,mode:B.mode}],z.pathnames=[I,I,G.newPath],z.filemask=7,z.merged={result:null,clean:!1}}else{let z=r.get(G.newPath);if(a.conflicts.push({path:G.newPath,reason:"rename-delete",deletedBy:"ours",oldPath:I}),b(G.newPath,`CONFLICT (rename/delete): ${I} renamed to ${G.newPath} in ${w}, but deleted in ${g}.`),z){a.conflicts.push({path:G.newPath,reason:"add-add"}),b(G.newPath,`Auto-merging ${G.newPath}`,0),b(G.newPath,`CONFLICT (add/add): Merge conflict in ${G.newPath}`,1),a.entries.push(Ct(G.newPath,z,2)),a.entries.push(Ct(G.newPath,B,3));let Q=await Mo(e,z.hash,B.hash,z.mode,s);a.worktreeBlobs.set(G.newPath,{hash:Q,mode:z.mode})}else a.entries.push(ft(G.newPath,W.mode,W.hash,1)),a.entries.push(Ct(G.newPath,B,3)),a.worktreeBlobs.set(G.newPath,{hash:B.hash,mode:B.mode}),B.hash!==W.hash&&b(G.newPath,`CONFLICT (modify/delete): ${G.newPath} deleted in ${g} and modified in ${w}. Version ${w} of ${G.newPath} left in tree.`,1)}}}let R=new Set(l.renames.map(I=>I.newPath)),E=new Set(d.renames.map(I=>I.newPath)),k=dl(n,r),x=dl(n,o),y=ul(k,o,n),P=ul(x,r,n),C=hl(l.renames,y),A=hl(d.renames,P),D=ml(C),$=ml(A);for(let I of[...D.keys()])$.has(I)&&(D.delete(I),$.delete(I));let v=new Set(D.keys()),N=new Set($.keys());if($.size>0)for(let I of c){if(I.status!=="added"||R.has(I.path))continue;let T=pl(I.path,$,v);if(!T)continue;if(t.has(T)||n.has(T)||r.has(T)||o.has(T)){if(r.has(T)){b(T,`CONFLICT (implicit dir rename): Existing file/dir at ${T} in the way of implicit directory rename(s) putting the following path(s) there: ${I.path}.`,1);continue}let F=r.get(I.path),B=o.get(T)??n.get(T);a.entries.push(ft(T,F.mode,F.hash,2)),B&&a.entries.push(ft(T,B.mode,B.hash,3)),a.worktreeBlobs.set(T,{hash:F.hash,mode:F.mode}),a.conflicts.push({path:T,reason:"add-add"}),b(T,`CONFLICT (file location): ${I.path} added in ${g} inside a directory that was renamed in ${w}, suggesting it should perhaps be moved to ${T}.`,1);let ee=t.get(I.path);ee&&(ee.merged={result:null,clean:!0}),p.add(I.path);continue}let G=r.get(I.path);a.entries.push(ft(T,G.mode,G.hash,2)),a.worktreeBlobs.set(T,{hash:G.hash,mode:G.mode}),a.conflicts.push({path:T,reason:"directory-rename"}),b(T,`CONFLICT (file location): ${I.path} added in ${g} inside a directory that was renamed in ${w}, suggesting it should perhaps be moved to ${T}.`,1);let W=t.get(I.path);W&&(W.merged={result:null,clean:!0}),p.add(I.path)}if(D.size>0)for(let I of f){if(I.status!=="added"||E.has(I.path))continue;let T=pl(I.path,D,N);if(!T)continue;if(t.has(T)||n.has(T)||r.has(T)||o.has(T)){if(o.has(T)){b(T,`CONFLICT (implicit dir rename): Existing file/dir at ${T} in the way of implicit directory rename(s) putting the following path(s) there: ${I.path}.`,1);continue}let F=o.get(I.path),B=r.get(T)??n.get(T);B&&a.entries.push(ft(T,B.mode,B.hash,2)),a.entries.push(ft(T,F.mode,F.hash,3)),a.worktreeBlobs.set(T,{hash:F.hash,mode:F.mode}),a.conflicts.push({path:T,reason:"add-add"}),b(T,`CONFLICT (file location): ${I.path} added in ${w} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${T}.`,1);let ee=t.get(I.path);ee&&(ee.merged={result:null,clean:!0}),p.add(I.path);continue}let G=o.get(I.path);a.entries.push(ft(T,G.mode,G.hash,3)),a.worktreeBlobs.set(T,{hash:G.hash,mode:G.mode}),a.conflicts.push({path:T,reason:"directory-rename"}),b(T,`CONFLICT (file location): ${I.path} added in ${w} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${T}.`,1);let W=t.get(I.path);W&&(W.merged={result:null,clean:!0}),p.add(I.path)}let L=new Set(a.entries.map(I=>I.path));for(let I of L){let T=t.get(I);T&&(T.merged={result:null,clean:!0})}for(let I of p){if(L.has(I))continue;let T=t.get(I);if(!T||T.merged.clean)continue;T.filemask===7&&!T.pathConflict||(T.merged={result:null,clean:!0})}return a}function dl(e,t){let n=new Set;for(let s of e.keys()){let i=Dt(s);for(;i;)n.add(i),i=Dt(i)}let r=new Set;for(let s of t.keys()){let i=Dt(s);for(;i;)r.add(i),i=Dt(i)}let o=new Set;for(let s of n)r.has(s)||o.add(s);return o}function ul(e,t,n){if(e.size===0)return e;let r=new Set;for(let o of t.keys()){if(n.has(o))continue;let s=Dt(o)??"";e.has(s)&&r.add(s)}for(let o of[...r]){let s=Dt(o);for(;s;)e.has(s)&&!r.has(s)&&r.add(s),s=Dt(s)}return r}function hl(e,t){let n=new Map;for(let r of e){let o=Dt(r.oldPath),s=Dt(r.newPath),i=!0;for(;;){if(!i){let a=o.length+(o?1:0),c=s.length+(s?1:0),f=r.oldPath.slice(a,r.oldPath.indexOf("/",a)),l=r.newPath.slice(c,r.newPath.indexOf("/",c));if(f!==l)break}if(t.has(o)){let a=n.get(o);a||(a=new Map,n.set(o,a)),a.set(s,(a.get(s)??0)+1)}if(i=!1,!o||!s)break;o=Dt(o),s=Dt(s)}}return n}function ml(e){let t=new Map;for(let[n,r]of e){let o=0,s=0,i=null;for(let[a,c]of r)c===o?s=o:c>o&&(o=c,i=a);o>0&&s!==o&&i!==null&&t.set(n,i)}return t}function pl(e,t,n){let r=Dt(e);for(;r;){let s=t.get(r);if(s!==void 0){if(n.has(s))return null;let i=e.slice(r.length+1);return s?`${s}/${i}`:i}r=Dt(r)}let o=t.get("");return o!==void 0&&!n.has(o)?`${o}/${e}`:null}function Dt(e){let t=e.lastIndexOf("/");return t===-1?"":e.slice(0,t)}async function gl(e,t,n,r,o,s,i,a,c,f=!1,l,d){let u=f?a.get(n):c.get(n),h=f?i:s;if(u.hash===h.hash){t.entries.push(ft(n,u.mode,u.hash)),t.msgBuf.push({sortKey:r,subOrder:0,text:`Auto-merging ${r}`});return}let p=await bl(e,o,s,i,l,f?{oursPath:r,theirsPath:n}:{oursPath:n,theirsPath:r},8,d);if(u.hash===p.hash)t.entries.push(ft(n,u.mode,p.hash));else if(t.conflicts.push({path:n,reason:"add-add"}),t.msgBuf.push({sortKey:n,subOrder:0,text:`Auto-merging ${n}`}),t.msgBuf.push({sortKey:n,subOrder:1,text:`CONFLICT (add/add): Merge conflict in ${n}`}),f){t.entries.push(Ct(n,u,2)),t.entries.push(ft(n,i.mode,p.hash,3));let g=await Mo(e,u.hash,p.hash,u.mode,l);t.worktreeBlobs.set(n,{hash:g,mode:u.mode})}else{t.entries.push(ft(n,s.mode,p.hash,2)),t.entries.push(Ct(n,u,3));let g=await Mo(e,p.hash,u.hash,s.mode,l);t.worktreeBlobs.set(n,{hash:g,mode:s.mode})}}async function bl(e,t,n,r,o,s,i,a){if(n.hash===t.hash)return{hash:r.hash,conflict:!1};if(r.hash===t.hash)return{hash:n.hash,conflict:!1};if(n.hash===r.hash)return{hash:n.hash,conflict:!1};if(Cn(t.mode)||Cn(n.mode)||Cn(r.mode))return{hash:n.hash,conflict:!0};let c=await oe(e,t.hash),f=await oe(e,n.hash),l=await oe(e,r.hash);if(je(f)||je(l)||je(c))return{hash:n.hash,conflict:!0};if(a){let x=await a({path:t.path??n.path??r.path??"",base:c,ours:f,theirs:l});if(x!==null)return{hash:await Ie(e,"blob",nn.encode(x.content)),conflict:x.conflict}}let d=At(c),u=At(f),h=At(l),m=o?.conflictStyle,p=Es(u,d,h,{conflictStyle:m});if(!p.conflict)return{hash:await wa(e,p.result),conflict:!1};let g=o?.a??"HEAD",w=o?.b??"theirs",b=s?.oursPath?`${g}:${s.oursPath}`:g,R=s?.theirsPath?`${w}:${s.theirsPath}`:w,E=wr(f,c,l,{a:b,b:R,markerSize:i??7,conflictStyle:m});return{hash:await Ie(e,"blob",nn.encode(E)),conflict:!0}}async function Mo(e,t,n,r,o){let s=await oe(e,t),i=await oe(e,n),a=wr(s,"",i,{a:o?.a??"HEAD",b:o?.b??"theirs",conflictStyle:o?.conflictStyle});return Ie(e,"blob",nn.encode(a))}function Ct(e,t,n=0){return ft(e,t.mode,t.hash,n)}function ft(e,t,n,r=0){return{path:e,mode:parseInt(t,8),hash:n,stage:r,stat:He()}}async function Tp(e,t,n,r,o){let s=[...r.entries],i=[...r.conflicts],a=[...r.msgBuf],c=new Map(r.worktreeBlobs);function f(m,p,g=0){a.push({sortKey:m,subOrder:g,text:p})}for(let m of[...t.keys()].sort()){let p=t.get(m);if(p.merged.clean){p.merged.result?.hash&&s.push(Oe(m,p.merged.result.hash,p.merged.result.mode));continue}await vp(e,p,n,s,i,f,c,o)}a.sort((m,p)=>(m.sortKey<p.sortKey?-1:m.sortKey>p.sortKey?1:0)||m.subOrder-p.subOrder);let l=a.map(m=>m.text),d=[],u=new Set;for(let m of s)m.stage===0&&(d.push(m),u.add(m.path));for(let[m,p]of c)u.has(m)||d.push(Oe(m,p.hash,p.mode));d.sort((m,p)=>ve(m.path,p.path));let h=await Fe(e,d);return{entries:s,conflicts:i,messages:l,resultTree:h}}async function vp(e,t,n,r,o,s,i,a){let c=t.path,[f,l,d]=t.stages,u=f?.hash??null,h=l?.hash??null,m=d?.hash??null;if(h===null&&m!==null&&u!==null){o.push({path:c,reason:"delete-modify",deletedBy:"ours"});let p=n?.a??"HEAD",g=n?.b??"theirs";s(c,`CONFLICT (modify/delete): ${c} deleted in ${p} and modified in ${g}. Version ${g} of ${c} left in tree.`),f&&r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:m,mode:d.mode});return}if(m===null&&h!==null&&u!==null){o.push({path:c,reason:"delete-modify",deletedBy:"theirs"});let p=n?.b??"theirs",g=n?.a??"HEAD";s(c,`CONFLICT (modify/delete): ${c} deleted in ${p} and modified in ${g}. Version ${g} of ${c} left in tree.`),f&&r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,h,l.mode,2)),i.set(c,{hash:h,mode:l.mode});return}if(u===null&&h!==null&&m!==null){if(h===m){r.push(Oe(c,h,l.mode));return}s(c,`Auto-merging ${c}`,0);let p=await oe(e,h),g=await oe(e,m);if(je(p)||je(g)){o.push({path:c,reason:"add-add"}),s(c,`warning: Cannot merge binary files: ${c} (${n?.a??"HEAD"} vs. ${n?.b??"theirs"})`,-1),s(c,`CONFLICT (add/add): Merge conflict in ${c}`,1),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:h,mode:l.mode});return}if(a){let y=await a({path:c,base:null,ours:p,theirs:g});if(y!==null){let P=await Ie(e,"blob",nn.encode(y.content));if(!y.conflict){r.push(Oe(c,P,l.mode));return}o.push({path:c,reason:"add-add"}),s(c,`CONFLICT (add/add): Merge conflict in ${c}`,1),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:P,mode:l.mode});return}}let w=At(""),b=At(p),R=At(g),E=Es(b,w,R,{conflictStyle:n?.conflictStyle});if(!E.conflict){let y=await wa(e,E.result);r.push(Oe(c,y,l.mode));return}o.push({path:c,reason:"add-add"}),s(c,`CONFLICT (add/add): Merge conflict in ${c}`,1),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3));let k=wr(p,"",g,{a:n?.a??"HEAD",b:n?.b??"theirs",conflictStyle:n?.conflictStyle}),x=await Ie(e,"blob",nn.encode(k));i.set(c,{hash:x,mode:l.mode});return}if(u!==null&&h!==null&&m!==null){if(h===u){r.push(Oe(c,m,d.mode));return}if(m===u){r.push(Oe(c,h,l.mode));return}if(h===m){r.push(Oe(c,h,l.mode));return}if(s(c,`Auto-merging ${c}`,0),Cn(f.mode)||Cn(l.mode)||Cn(d.mode)){o.push({path:c,reason:"content"}),s(c,`CONFLICT (content): Merge conflict in ${c}`,1),r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:h,mode:l.mode});return}let p=await oe(e,u),g=await oe(e,h),w=await oe(e,m);if(je(g)||je(w)||je(p)){o.push({path:c,reason:"content"}),s(c,`warning: Cannot merge binary files: ${c} (${n?.a??"HEAD"} vs. ${n?.b??"theirs"})`,-1),s(c,`CONFLICT (content): Merge conflict in ${c}`,1),r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:h,mode:l.mode});return}if(a){let x=await a({path:c,base:p,ours:g,theirs:w});if(x!==null){let y=await Ie(e,"blob",nn.encode(x.content));if(!x.conflict){r.push(Oe(c,y,l.mode));return}let P=t.pathnames[1],C=t.pathnames[2],A=P!==c||C!==c,D={path:c,reason:"content"};A&&(P!==c&&(D.oursOrigPath=P),C!==c&&(D.theirsOrigPath=C)),o.push(D),s(c,`CONFLICT (content): Merge conflict in ${c}`,1),r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3)),i.set(c,{hash:y,mode:l.mode});return}}let b=At(p),R=At(g),E=At(w),k=Es(R,b,E,{conflictStyle:n?.conflictStyle});if(k.conflict){let x=t.pathnames[1],y=t.pathnames[2],P=x!==c||y!==c,C={path:c,reason:"content"};P&&(x!==c&&(C.oursOrigPath=x),y!==c&&(C.theirsOrigPath=y)),o.push(C),s(c,`CONFLICT (content): Merge conflict in ${c}`,1),r.push(Oe(c,u,f.mode,1)),r.push(Oe(c,h,l.mode,2)),r.push(Oe(c,m,d.mode,3));let A=P?`${n?.a??"HEAD"}:${x}`:n?.a??"HEAD",D=P?`${n?.b??"theirs"}:${y}`:n?.b??"theirs",$=wr(g,p,w,{a:A,b:D,conflictStyle:n?.conflictStyle}),v=await Ie(e,"blob",nn.encode($));i.set(c,{hash:v,mode:l.mode})}else{let x=await wa(e,k.result);r.push(Oe(c,x,l.mode))}return}}var Hp=200;async function yl(e,t,n,r,o,s){let i=await Promise.all(r.map(async d=>({hash:d,timestamp:(await j(e,d)).committer.timestamp})));i.sort((d,u)=>d.timestamp-u.timestamp);let a=i.map(d=>d.hash),c=a[0],f=c,l=(await j(e,c)).tree;for(let d=1;d<a.length;d++){let u=a[d],h=(await j(e,u)).tree,m=null;if(o>=Hp)m=l;else{let w=await qt(e,f,u);w.length===0?m=null:w.length===1?m=(await j(e,w[0])).tree:m=await yl(e,f,u,w,o+1,s)}let p=await Kt(e,m,l,h,void 0,s);l=await Ap(e,p,o);let g=cn({type:"commit",tree:l,parents:[f,u],author:ll,committer:ll,message:"merged common ancestors"});f=await Ie(e,"commit",g)}return l}async function Ap(e,t,n){let r=t.entries.filter(a=>a.stage===0),o=new Map;for(let a of t.entries)a.stage>0&&o.set(`${a.path}\0${a.stage}`,a);let s=(a,c)=>o.get(`${a}\0${c}`),i={a:"Temporary merge branch 1",b:"Temporary merge branch 2",markerSize:7+n*2};for(let a of t.conflicts){if(a.reason==="delete-modify"||a.reason==="rename-delete"){let l=s(a.path,1);if(l){r.push({...l,stage:0});continue}}if(a.reason==="rename-rename"){let l=a.oursPath??a.path,d=a.theirsPath??a.path,u=s(a.path,1),h=s(l,2),m=s(d,3);if(h&&m){let p=Nr.decode((await we(e,h.hash)).content),g=Nr.decode((await we(e,m.hash)).content),w=u?Nr.decode((await we(e,u.hash)).content):"",b=8+n*2,R=i.a??"Temporary merge branch 1",E=i.b??"Temporary merge branch 2",k=wr(p,w,g,{a:`${R}:${l}`,o:i.o,b:`${E}:${d}`,markerSize:b}),x=await Ie(e,"blob",nn.encode(k));r.push({path:l,mode:h.mode,hash:x,stage:0,stat:He()}),r.push({path:d,mode:m.mode,hash:x,stage:0,stat:He()});continue}else if(h){r.push({...h,stage:0});continue}}let c=s(a.path,2),f=s(a.path,3);if(c&&f&&(a.reason==="content"||a.reason==="add-add")){let l=Nr.decode((await we(e,c.hash)).content),d=Nr.decode((await we(e,f.hash)).content),u=a.reason==="content"?s(a.path,1):null,h=u?Nr.decode((await we(e,u.hash)).content):"",m=a.oursOrigPath||a.theirsOrigPath,p=i.a??"Temporary merge branch 1",g=i.b??"Temporary merge branch 2",w=m?`${p}:${a.oursOrigPath??a.path}`:p,b=m?`${g}:${a.theirsOrigPath??a.path}`:g,R=wr(l,h,d,{a:w,o:i.o,b,markerSize:i.markerSize}),E=await Ie(e,"blob",nn.encode(R));r.push({path:a.path,mode:c.mode,hash:E,stage:0,stat:He()})}else c?r.push({...c,stage:0}):f&&r.push({...f,stage:0})}return r.sort((a,c)=>ve(a.path,c.path)),Fe(e,r)}async function wa(e,t){let n=t.map(ma);if(n.length===0)return Ie(e,"blob",nn.encode(""));let s=(t[t.length-1]??"").endsWith("\0")?n.join(`
265
267
  `):`${n.join(`
266
268
  `)}
267
269
  `;return Ie(e,"blob",nn.encode(s))}function Oe(e,t,n,r=0){let o=typeof n=="string"?parseInt(n,8):n;return{path:e,mode:o,hash:t,stage:r,stat:He()}}function pa(e,t){let n=e.get(t);return n||(n={path:t,stages:[null,null,null],pathnames:[t,t,t],filemask:0,matchMask:0,merged:{result:null,clean:!1},pathConflict:!1},e.set(t,n)),n}function ks(e,t,n,r,o){let s=r==="untracked"?`error: The following untracked working tree files would be overwritten by ${t}:`:`error: Your local changes to the following files would be overwritten by ${t}:`;if(n==="merge"){if(o==="staged")return`${s}
@@ -289,36 +291,36 @@ ${i}
289
291
  Please move or remove them before you ${n}.
290
292
  `)}let s=r==="merge"?"Merge with strategy ort failed.":`fatal: ${r} failed`;return`${o.join("")}Aborting
291
293
  ${s}
292
- `}async function In(e,t,n,r){let o=await V(e),s=await le(e,n);if(!r.skipStagedChangeCheck&&e.workTree){let m=new Map(Ge(o).map(g=>[g.path,g])),p=[];for(let[g,w]of m){let b=s.get(g);(!b||b.hash!==w.hash)&&p.push(g)}for(let[g]of s)m.has(g)||p.push(g);if(p.length>0){let g=[...p].sort();await ga(e,o,s);let w=r.operationName??"merge",b=r.callerCommand??"merge";return{ok:!1,stdout:"",stderr:ks(g,w,b,"local","staged"),exitCode:r.errorExitCode??2,failureKind:"staged"}}}if(e.workTree&&r.preflightOnewayCheck){let m=await fr(e,[{label:"target",treeHash:t.resultTree}],o,{mergeFn:ao,updateWorktree:!1,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge"});if(!m.success){await ga(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=m.errors.filter(E=>E.error==="WOULD_OVERWRITE"||E.error==="NOT_UPTODATE_FILE").map(E=>E.path).sort(),b=m.errors.filter(E=>E.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||E.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(E=>E.path).sort(),k;return w.length>0&&b.length>0?k=wl(w,b,p,g):b.length>0?k=ks(b,p,g,"untracked","worktree"):k=ks(w,p,g,"local","worktree"),{ok:!1,stdout:"",stderr:k,exitCode:r.errorExitCode??2,failureKind:"worktree"}}}if(e.workTree){let m=await fr(e,[{label:"current",treeHash:n},{label:"target",treeHash:t.resultTree}],o,{mergeFn:co,updateWorktree:!0,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge",allowStagedChanges:!!r.preflightOnewayCheck});if(!m.success){await ga(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=m.errors.filter(R=>R.error==="WOULD_OVERWRITE"||R.error==="NOT_UPTODATE_FILE").map(R=>R.path).sort(),b=m.errors.filter(R=>R.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||R.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(R=>R.path).sort(),k=[];w.length>0&&k.push(ks(w,p,g,"local","worktree")),b.length>0&&k.push(ks(b,p,g,"untracked","worktree"));let E;return k.length>1?E=wl(w,b,p,g):E=k[0]??"",{ok:!1,stdout:"",stderr:E,exitCode:r.errorExitCode??2,failureKind:"worktree"}}await je(e,m.worktreeOps)}let i=new Set,a=t.entries;if(r.preflightOnewayCheck){let m=[];for(let p of t.entries){if(p.stage===0){let g=s.get(p.path);if(g&&g.hash===p.hash){i.add(p.path);continue}}m.push(p)}a=m}let c=new Set(a.map(m=>m.path));for(let m of s.keys())i.has(m)||c.add(m);let f=o.entries.filter(m=>!c.has(m.path)),l=[...a,...f];l.sort((m,p)=>ve(m.path,p.path)||m.stage-p.stage);let d={version:2,entries:l};await ae(e,d);let u=l.filter(m=>m.stage===0),h=await Fe(e,u);return{ok:!0,finalIndex:d,mergedTreeHash:h}}async function ga(e,t,n){if(e.workTree)for(let r of t.entries){if(r.stage!==0||n.has(r.path))continue;let o=H(e.workTree,r.path);await e.fs.exists(o)||await dt(e,{path:r.path,hash:r.hash,mode:r.mode})}}ie();Be();ge();Ae();Zt();function El(e,t){e.command("cherry-pick",{description:"Apply the changes introduced by some existing commits",args:[K.string().name("commit").describe("The commit to cherry-pick").optional()],options:{abort:O().describe("Abort the current cherry-pick operation"),continue:O().describe("Continue the cherry-pick after conflict resolution"),skip:O().describe("Skip the current cherry-pick and continue with the rest"),"record-origin":O().alias("x").describe('Append "(cherry picked from commit ...)" to the commit message'),mainline:Y.number().alias("m").describe("Select parent number for merge commit (1-based)"),noCommit:O().alias("n").describe("Apply changes without creating a commit")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort){let L=await t?.hooks?.preCherryPick?.({repo:s,mode:"abort",commitRef:null});if(de(L))return{stdout:"",stderr:L.message??"",exitCode:1};let W=await Mp(s,r.env);return W.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),W}if(n.continue){let L=await t?.hooks?.preCherryPick?.({repo:s,mode:"continue",commitRef:null});if(de(L))return{stdout:"",stderr:L.message??"",exitCode:1};let W=await jp(s,r.env);if(W.exitCode===0){let N=await Z(s);await t?.hooks?.postCherryPick?.({repo:s,mode:"continue",commitHash:N,hadConflicts:!1})}return W}if(n.skip)return Dp(s,r.env);let i=n.commit;if(!i)return S("you must specify a commit to cherry-pick");let a=await t?.hooks?.preCherryPick?.({repo:s,mode:"pick",commitRef:i});if(de(a))return{stdout:"",stderr:a.message??"",exitCode:1};let c=await Me(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Qe(s);if(M(d))return d;let u=await V(s);if(n.noCommit){let L=u.entries.filter(W=>W.stage>0);if(L.length>0){let B=L.slice(0,10).map(z=>`${z.path}: unmerged (${z.hash})`).join(`
293
- `),ee=L.length>10?`
294
- ...`:"";return F(`${B}${ee}
294
+ `}async function Hn(e,t,n,r){let o=await V(e),s=await le(e,n);if(!r.skipStagedChangeCheck&&e.workTree){let m=new Map(Ge(o).map(g=>[g.path,g])),p=[];for(let[g,w]of m){let b=s.get(g);(!b||b.hash!==w.hash)&&p.push(g)}for(let[g]of s)m.has(g)||p.push(g);if(p.length>0){let g=[...p].sort();await ga(e,o,s);let w=r.operationName??"merge",b=r.callerCommand??"merge";return{ok:!1,stdout:"",stderr:ks(g,w,b,"local","staged"),exitCode:r.errorExitCode??2,failureKind:"staged"}}}if(e.workTree&&r.preflightOnewayCheck){let m=await fr(e,[{label:"target",treeHash:t.resultTree}],o,{mergeFn:ao,updateWorktree:!1,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge"});if(!m.success){await ga(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=m.errors.filter(E=>E.error==="WOULD_OVERWRITE"||E.error==="NOT_UPTODATE_FILE").map(E=>E.path).sort(),b=m.errors.filter(E=>E.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||E.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(E=>E.path).sort(),R;return w.length>0&&b.length>0?R=wl(w,b,p,g):b.length>0?R=ks(b,p,g,"untracked","worktree"):R=ks(w,p,g,"local","worktree"),{ok:!1,stdout:"",stderr:R,exitCode:r.errorExitCode??2,failureKind:"worktree"}}}if(e.workTree){let m=await fr(e,[{label:"current",treeHash:n},{label:"target",treeHash:t.resultTree}],o,{mergeFn:co,updateWorktree:!0,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge",allowStagedChanges:!!r.preflightOnewayCheck});if(!m.success){await ga(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=m.errors.filter(k=>k.error==="WOULD_OVERWRITE"||k.error==="NOT_UPTODATE_FILE").map(k=>k.path).sort(),b=m.errors.filter(k=>k.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||k.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(k=>k.path).sort(),R=[];w.length>0&&R.push(ks(w,p,g,"local","worktree")),b.length>0&&R.push(ks(b,p,g,"untracked","worktree"));let E;return R.length>1?E=wl(w,b,p,g):E=R[0]??"",{ok:!1,stdout:"",stderr:E,exitCode:r.errorExitCode??2,failureKind:"worktree"}}await De(e,m.worktreeOps)}let i=new Set,a=t.entries;if(r.preflightOnewayCheck){let m=[];for(let p of t.entries){if(p.stage===0){let g=s.get(p.path);if(g&&g.hash===p.hash){i.add(p.path);continue}}m.push(p)}a=m}let c=new Set(a.map(m=>m.path));for(let m of s.keys())i.has(m)||c.add(m);let f=o.entries.filter(m=>!c.has(m.path)),l=[...a,...f];l.sort((m,p)=>ve(m.path,p.path)||m.stage-p.stage);let d={version:2,entries:l};await ae(e,d);let u=l.filter(m=>m.stage===0),h=await Fe(e,u);return{ok:!0,finalIndex:d,mergedTreeHash:h}}async function ga(e,t,n){if(e.workTree)for(let r of t.entries){if(r.stage!==0||n.has(r.path))continue;let o=H(e.workTree,r.path);await e.fs.exists(o)||await dt(e,{path:r.path,hash:r.hash,mode:r.mode})}}ie();Be();ge();Ae();Nt();function El(e,t){e.command("cherry-pick",{description:"Apply the changes introduced by some existing commits",args:[q.string().name("commit").describe("The commit to cherry-pick").optional()],options:{abort:O().describe("Abort the current cherry-pick operation"),continue:O().describe("Continue the cherry-pick after conflict resolution"),skip:O().describe("Skip the current cherry-pick and continue with the rest"),"record-origin":O().alias("x").describe('Append "(cherry picked from commit ...)" to the commit message'),mainline:Y.number().alias("m").describe("Select parent number for merge commit (1-based)"),noCommit:O().alias("n").describe("Apply changes without creating a commit")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort){let G=await t?.hooks?.preCherryPick?.({repo:s,mode:"abort",commitRef:null});if(de(G))return{stdout:"",stderr:G.message??"",exitCode:1};let W=await Mp(s,r.env);return W.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),W}if(n.continue){let G=await t?.hooks?.preCherryPick?.({repo:s,mode:"continue",commitRef:null});if(de(G))return{stdout:"",stderr:G.message??"",exitCode:1};let W=await jp(s,r.env);if(W.exitCode===0){let F=await Z(s);await t?.hooks?.postCherryPick?.({repo:s,mode:"continue",commitHash:F,hadConflicts:!1})}return W}if(n.skip)return Dp(s,r.env);let i=n.commit;if(!i)return S("you must specify a commit to cherry-pick");let a=await t?.hooks?.preCherryPick?.({repo:s,mode:"pick",commitRef:i});if(de(a))return{stdout:"",stderr:a.message??"",exitCode:1};let c=await Me(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Qe(s);if(M(d))return d;let u=await V(s);if(n.noCommit){let G=u.entries.filter(W=>W.stage>0);if(G.length>0){let B=G.slice(0,10).map(z=>`${z.path}: unmerged (${z.hash})`).join(`
295
+ `),ee=G.length>10?`
296
+ ...`:"";return _(`${B}${ee}
295
297
  error: your index file is unmerged.
296
298
  fatal: cherry-pick failed
297
- `,128)}}else{let L=Pn(u,"Cherry-picking",`fatal: cherry-pick failed
298
- `);if(L)return L}let h=await j(s,d),p=!!n["record-origin"]?Lp(l.message,f):l.message;if(s.workTree&&!n.noCommit){let L=await le(s,h.tree);if(lr(u,L))return F(`error: your local changes would be overwritten by cherry-pick.
299
+ `,128)}}else{let G=Sn(u,"Cherry-picking",`fatal: cherry-pick failed
300
+ `);if(G)return G}let h=await j(s,d),p=!!n["record-origin"]?Lp(l.message,f):l.message;if(s.workTree&&!n.noCommit){let G=await le(s,h.tree);if(lr(u,G))return _(`error: your local changes would be overwritten by cherry-pick.
299
301
  hint: commit your changes or stash them to proceed.
300
302
  fatal: cherry-pick failed
301
- `,128)}if(l.parents.length>1){if(!n.mainline)return F(`error: commit ${f} is a merge but no -m option was given.
303
+ `,128)}if(l.parents.length>1){if(!n.mainline)return _(`error: commit ${f} is a merge but no -m option was given.
302
304
  fatal: cherry-pick failed
303
- `,128);let L=n.mainline-1;if(L<0||L>=l.parents.length)return F(`error: commit ${f} does not have parent ${n.mainline}
305
+ `,128);let G=n.mainline-1;if(G<0||G>=l.parents.length)return _(`error: commit ${f} does not have parent ${n.mainline}
304
306
  fatal: cherry-pick failed
305
- `,128)}else if(n.mainline)return F(`error: mainline was specified but commit is not a merge.
307
+ `,128)}else if(n.mainline)return _(`error: mainline was specified but commit is not a merge.
306
308
  fatal: cherry-pick failed
307
- `,128);let g;if(l.parents.length===0)g=await Fe(s,[]);else{let L=l.parents.length>1?n.mainline-1:0,W=l.parents[L];if(!W)throw new Error("unreachable: parent must exist");g=(await j(s,W)).tree}let w=X(f),b=ue(l.message),k=await ke(s,"merge.conflictstyle")??"merge",E={a:"HEAD",b:b?`${w} (${b})`:w,conflictStyle:k},R=await qt(s,g,h.tree,l.tree,E,t?.mergeDriver);if(R.conflicts.length===0&&R.resultTree===h.tree){if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};await J(s,"CHERRY_PICK_HEAD",f),await J(s,"ORIG_HEAD",d),await Le(s,"MERGE_MSG",p);let L=R.messages.length>0?`${R.messages.join(`
309
+ `,128);let g;if(l.parents.length===0)g=await Fe(s,[]);else{let G=l.parents.length>1?n.mainline-1:0,W=l.parents[G];if(!W)throw new Error("unreachable: parent must exist");g=(await j(s,W)).tree}let w=X(f),b=ue(l.message),R=await ke(s,"merge.conflictstyle")??"merge",E={a:"HEAD",b:b?`${w} (${b})`:w,conflictStyle:R},k=await Kt(s,g,h.tree,l.tree,E,t?.mergeDriver);if(k.conflicts.length===0&&k.resultTree===h.tree){if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};await J(s,"CHERRY_PICK_HEAD",f),await J(s,"ORIG_HEAD",d),await Le(s,"MERGE_MSG",p);let G=k.messages.length>0?`${k.messages.join(`
308
310
  `)}
309
- `:"",W=await at(s,{fromCommit:!0});return{stdout:`${L}${W}`,stderr:`The previous cherry-pick is now empty, possibly due to conflict resolution.
311
+ `:"",W=await at(s,{fromCommit:!0});return{stdout:`${G}${W}`,stderr:`The previous cherry-pick is now empty, possibly due to conflict resolution.
310
312
  If you wish to commit it anyway, use:
311
313
 
312
314
  git commit --allow-empty
313
315
 
314
316
  Otherwise, please use 'git cherry-pick --skip'
315
- `,exitCode:1}}let x=await In(s,R,h.tree,{labels:E,errorExitCode:128,operationName:"merge",callerCommand:"cherry-pick",skipStagedChangeCheck:!0,preflightOnewayCheck:!!n.noCommit});if(!x.ok)return x;if(R.conflicts.length>0){let L=R.messages.join(`
316
- `);return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:null,hadConflicts:!0}),n.noCommit?{stdout:L?`${L}
317
+ `,exitCode:1}}let x=await Hn(s,k,h.tree,{labels:E,errorExitCode:128,operationName:"merge",callerCommand:"cherry-pick",skipStagedChangeCheck:!0,preflightOnewayCheck:!!n.noCommit});if(!x.ok)return x;if(k.conflicts.length>0){let G=k.messages.join(`
318
+ `);return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:null,hadConflicts:!0}),n.noCommit?{stdout:G?`${G}
317
319
  `:"",stderr:`error: could not apply ${w}... ${ue(l.message)}
318
320
  hint: after resolving the conflicts, mark the corrected paths
319
321
  hint: with 'git add <paths>' or 'git rm <paths>'
320
322
  hint: Disable this message with "git config set advice.mergeConflict false"
321
- `,exitCode:1}:(await J(s,"CHERRY_PICK_HEAD",f),await J(s,"ORIG_HEAD",d),await Le(s,"MERGE_MSG",p),{stdout:L?`${L}
323
+ `,exitCode:1}:(await J(s,"CHERRY_PICK_HEAD",f),await J(s,"ORIG_HEAD",d),await Le(s,"MERGE_MSG",p),{stdout:G?`${G}
322
324
  `:"",stderr:`error: could not apply ${w}... ${ue(l.message)}
323
325
  hint: After resolving the conflicts, mark them with
324
326
  hint: "git add/rm <pathspec>", then run
@@ -327,58 +329,58 @@ hint: You can instead skip this commit with "git cherry-pick --skip".
327
329
  hint: To abort and get back to the state before "git cherry-pick",
328
330
  hint: run "git cherry-pick --abort".
329
331
  hint: Disable this message with "git config set advice.mergeConflict false"
330
- `,exitCode:1})}let y=x.mergedTreeHash;if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};let C=await tt(s,r.env);if(M(C))return C;let P=await Ot(s,y,[d],l.author,C,p);await en(s),await Ft(s);let D=await te(s),A=p.split(`
331
- `)[0]??"",$=D?.type==="symbolic"?D.target:"HEAD";await re(s,r.env,$,d,P,`cherry-pick: ${A}`,D?.type==="symbolic");let v=D?.type==="symbolic"?Pe(D.target):"detached HEAD",_=h.tree,G=await Sn(s,_,y,l.author,C,!0),I=Qt(v,P,p),T=R.messages.length>0?`${R.messages.join(`
332
+ `,exitCode:1})}let y=x.mergedTreeHash;if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};let P=await tt(s,r.env);if(M(P))return P;let C=await Ot(s,y,[d],l.author,P,p);await en(s),await _t(s);let A=await te(s),D=p.split(`
333
+ `)[0]??"",$=A?.type==="symbolic"?A.target:"HEAD";await re(s,r.env,$,d,C,`cherry-pick: ${D}`,A?.type==="symbolic");let v=A?.type==="symbolic"?Pe(A.target):"detached HEAD",N=h.tree,L=await vn(s,N,y,l.author,P,!0),I=Qt(v,C,p),T=k.messages.length>0?`${k.messages.join(`
332
334
  `)}
333
- `:"";return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:P,hadConflicts:!1}),{stdout:`${T}${I}
334
- ${G}`,stderr:"",exitCode:0}}})}async function Dp(e,t){if(!await U(e,"CHERRY_PICK_HEAD"))return F(`error: no cherry-pick in progress
335
+ `:"";return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:C,hadConflicts:!1}),{stdout:`${T}${I}
336
+ ${L}`,stderr:"",exitCode:0}}})}async function Dp(e,t){if(!await U(e,"CHERRY_PICK_HEAD"))return _(`error: no cherry-pick in progress
335
337
  fatal: cherry-pick failed
336
338
  `,128);let r=await Z(e);if(!r)return S("unable to resolve HEAD");let o=await j(e,r),s=await V(e),i=await Ar(e,o.tree,s,r);if(!i.success){let a=i.errorOutput;return{...a,stderr:a.stderr+`error: failed to skip the commit
337
339
  fatal: cherry-pick failed
338
- `}}return await ae(e,{version:2,entries:i.newEntries}),await je(e,i.worktreeOps),await re(e,t,"HEAD",r,r,`reset: moving to ${r}`),await en(e),{stdout:"",stderr:"",exitCode:0}}async function Mp(e,t){return await U(e,"CHERRY_PICK_HEAD")?Wn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:F(`error: no cherry-pick or revert in progress
340
+ `}}return await ae(e,{version:2,entries:i.newEntries}),await De(e,i.worktreeOps),await re(e,t,"HEAD",r,r,`reset: moving to ${r}`),await en(e),{stdout:"",stderr:"",exitCode:0}}async function Mp(e,t){return await U(e,"CHERRY_PICK_HEAD")?qn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:_(`error: no cherry-pick or revert in progress
339
341
  fatal: cherry-pick failed
340
- `,128),operationName:"cherry-pick",clearState:en,origHeadAsTargetRev:!0}):await U(e,"REVERT_HEAD")?Wn(e,t,{operationRef:"REVERT_HEAD",noOpError:F(`error: no cherry-pick or revert in progress
342
+ `,128),operationName:"cherry-pick",clearState:en,origHeadAsTargetRev:!0}):await U(e,"REVERT_HEAD")?qn(e,t,{operationRef:"REVERT_HEAD",noOpError:_(`error: no cherry-pick or revert in progress
341
343
  fatal: cherry-pick failed
342
- `,128),operationName:"cherry-pick",clearState:Ft,origHeadAsTargetRev:!0}):F(`error: no cherry-pick or revert in progress
344
+ `,128),operationName:"cherry-pick",clearState:_t,origHeadAsTargetRev:!0}):_(`error: no cherry-pick or revert in progress
343
345
  fatal: cherry-pick failed
344
- `,128)}async function jp(e,t){let n=await U(e,"CHERRY_PICK_HEAD");if(!n)return F(`error: no cherry-pick or revert in progress
346
+ `,128)}async function jp(e,t){let n=await U(e,"CHERRY_PICK_HEAD");if(!n)return _(`error: no cherry-pick or revert in progress
345
347
  fatal: cherry-pick failed
346
- `,128);let r=await V(e),o=Pn(r,"Committing");if(o)return o;let s=await j(e,n),i=await $e(e,"MERGE_MSG");if(!i)return F(`Aborting commit due to empty commit message.
347
- `,1);let a=await $e(e,"SQUASH_MSG");if(a&&(i=a+i),i=St(i),!i)return F(`Aborting commit due to empty commit message.
348
- `,1);let c=Ge(r),f=await Fe(e,c),l=await Qe(e);if(M(l))return l;let u=(await j(e,l)).tree,h=await tt(e,t);if(M(h))return h;let m=It(i),p=await Ot(e,f,[l],s.author,h,m);await en(e),await Ft(e);let g=await te(e),w=ue(m),b=g?.type==="symbolic"?g.target:"HEAD";await re(e,t,b,l,p,`commit (cherry-pick): ${w}`,g?.type==="symbolic");let k=g?.type==="symbolic"?Pe(g.target):"detached HEAD",E=await Sn(e,u,f,s.author,h,!0);return{stdout:`${Qt(k,p,i)}
348
+ `,128);let r=await V(e),o=Sn(r,"Committing");if(o)return o;let s=await j(e,n),i=await $e(e,"MERGE_MSG");if(!i)return _(`Aborting commit due to empty commit message.
349
+ `,1);let a=await $e(e,"SQUASH_MSG");if(a&&(i=a+i),i=St(i),!i)return _(`Aborting commit due to empty commit message.
350
+ `,1);let c=Ge(r),f=await Fe(e,c),l=await Qe(e);if(M(l))return l;let u=(await j(e,l)).tree,h=await tt(e,t);if(M(h))return h;let m=It(i),p=await Ot(e,f,[l],s.author,h,m);await en(e),await _t(e);let g=await te(e),w=ue(m),b=g?.type==="symbolic"?g.target:"HEAD";await re(e,t,b,l,p,`commit (cherry-pick): ${w}`,g?.type==="symbolic");let R=g?.type==="symbolic"?Pe(g.target):"detached HEAD",E=await vn(e,u,f,s.author,h,!0);return{stdout:`${Qt(R,p,i)}
349
351
  ${E}`,stderr:"",exitCode:0}}function Lp(e,t){let n=`(cherry picked from commit ${t})`,r=e.replace(/\n+$/,""),o=r.lastIndexOf(`
350
352
  `),s=o===-1?r:r.slice(o+1);return/^\(cherry picked from commit [0-9a-f]+\)$/.test(s)?`${r}
351
353
  ${n}
352
354
  `:`${r}
353
355
 
354
356
  ${n}
355
- `}se();Ue();io();Ce();me();function kl(e,t){e.command("clean",{description:"Remove untracked files from the working tree",args:[K.string().name("pathspec").describe("Pathspec to limit which files are removed").optional().variadic()],options:{force:O().alias("f").describe("Required to actually remove files"),"dry-run":O().alias("n").describe("Don't actually remove anything, just show what would be done"),directories:O().alias("d").describe("Also remove untracked directories"),removeIgnored:O().alias("x").describe("Remove ignored files as well"),onlyIgnored:O().alias("X").describe("Remove only ignored files"),exclude:Y.string().alias("e").describe("Additional exclude pattern")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Ye(s);if(i)return i;let a=s.workTree,c=n["dry-run"],f=n.force,l=n.directories,d=n.removeIgnored,u=n.onlyIgnored;if(!f&&!c&&await ke(s,"clean.requireForce")!=="false")return S("clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean");let h=await V(s),m=new Set(h.entries.map(y=>y.path)),p=ut(s,r.cwd),g=n.pathspec,w=g.length>0?g.map(y=>_e(y,p)):null,b=n.exclude?[n.exclude]:[],k=await Rl(s,a,"",{trackedPaths:m,removeDirs:l,removeIgnored:d,onlyIgnored:u,extraExcludes:b}),E;w?E=k.filter(y=>Ee(w,y.path)):E=k,E.sort((y,C)=>y.path<C.path?-1:y.path>C.path?1:0);let R=[];if(c)for(let y of E){let C=y.isDir?`Would remove ${y.path}/`:`Would remove ${y.path}`;R.push(C)}else for(let y of E){let C=H(a,y.path);y.isDir?(await r.fs.rm(C,{recursive:!0}),R.push(`Removing ${y.path}/`)):(await r.fs.rm(C),R.push(`Removing ${y.path}`))}return{stdout:R.length>0?`${R.join(`
357
+ `}se();Ue();io();Ce();me();function kl(e,t){e.command("clean",{description:"Remove untracked files from the working tree",args:[q.string().name("pathspec").describe("Pathspec to limit which files are removed").optional().variadic()],options:{force:O().alias("f").describe("Required to actually remove files"),"dry-run":O().alias("n").describe("Don't actually remove anything, just show what would be done"),directories:O().alias("d").describe("Also remove untracked directories"),removeIgnored:O().alias("x").describe("Remove ignored files as well"),onlyIgnored:O().alias("X").describe("Remove only ignored files"),exclude:Y.string().alias("e").describe("Additional exclude pattern")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Ye(s);if(i)return i;let a=s.workTree,c=n["dry-run"],f=n.force,l=n.directories,d=n.removeIgnored,u=n.onlyIgnored;if(!f&&!c&&await ke(s,"clean.requireForce")!=="false")return S("clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean");let h=await V(s),m=new Set(h.entries.map(y=>y.path)),p=ut(s,r.cwd),g=n.pathspec,w=g.length>0?g.map(y=>_e(y,p)):null,b=n.exclude?[n.exclude]:[],R=await Rl(s,a,"",{trackedPaths:m,removeDirs:l,removeIgnored:d,onlyIgnored:u,extraExcludes:b}),E;w?E=R.filter(y=>Ee(w,y.path)):E=R,E.sort((y,P)=>y.path<P.path?-1:y.path>P.path?1:0);let k=[];if(c)for(let y of E){let P=y.isDir?`Would remove ${y.path}/`:`Would remove ${y.path}`;k.push(P)}else for(let y of E){let P=H(a,y.path);y.isDir?(await r.fs.rm(P,{recursive:!0}),k.push(`Removing ${y.path}/`)):(await r.fs.rm(P),k.push(`Removing ${y.path}`))}return{stdout:k.length>0?`${k.join(`
356
358
  `)}
357
359
  `:"",stderr:"",exitCode:0}}})}async function Rl(e,t,n,r){let o=[],s=!r.removeIgnored,i=null;if(s||r.onlyIgnored){i=r._ignore??await Hr(e);let c=H(t,".gitignore");try{let f=await e.fs.readFile(c);i=ar(i,f,n,c)}catch{}if(!r._ignore&&r.extraExcludes.length>0){let f=r.extraExcludes.join(`
358
- `),l=ds(f,"","<cli>");i={...i,dirPatterns:[l,...i.dirPatterns]}}}let a=await e.fs.readdir(t);for(let c of a){if(n===""&&c===".git")continue;let f=H(t,c),l=n?`${n}/${c}`:c,d=await e.fs.stat(f);if(d.isDirectory){let u=i&&dn(i,l,!0)==="ignored",h=Gp(r.trackedPaths,l),m=()=>Rl(e,f,l,{...r,_ignore:i??void 0});if(r.onlyIgnored){if(u&&!h){r.removeDirs&&o.push({path:l,isDir:!0});continue}let p=await m();!h&&r.removeDirs?p.length>0&&o.push({path:l,isDir:!0}):o.push(...p)}else if(h){let p=await m();o.push(...p)}else if(!(u&&s)){if(r.removeDirs)if(r.removeIgnored)o.push({path:l,isDir:!0});else{let p=await m(),g=await e.fs.readdir(f);(p.length>0||g.length===0)&&o.push({path:l,isDir:!0})}}}else if(d.isFile){if(r.trackedPaths.has(l))continue;let u=i&&dn(i,l,!1)==="ignored";r.onlyIgnored?u&&o.push({path:l,isDir:!1}):u&&s||o.push({path:l,isDir:!1})}}return o}function Gp(e,t){let n=`${t}/`;for(let r of e)if(r.startsWith(n))return!0;return!1}se();Ue();Ce();ie();me();Be();ge();Nn();ie();me();var ba=2147483647;async function jo(e){let t=H(e.gitDir,"shallow");try{let n=await e.fs.readFile(t),r=new Set;for(let o of n.split(`
360
+ `),l=ds(f,"","<cli>");i={...i,dirPatterns:[l,...i.dirPatterns]}}}let a=await e.fs.readdir(t);for(let c of a){if(n===""&&c===".git")continue;let f=H(t,c),l=n?`${n}/${c}`:c,d=await e.fs.stat(f);if(d.isDirectory){let u=i&&dn(i,l,!0)==="ignored",h=Gp(r.trackedPaths,l),m=()=>Rl(e,f,l,{...r,_ignore:i??void 0});if(r.onlyIgnored){if(u&&!h){r.removeDirs&&o.push({path:l,isDir:!0});continue}let p=await m();!h&&r.removeDirs?p.length>0&&o.push({path:l,isDir:!0}):o.push(...p)}else if(h){let p=await m();o.push(...p)}else if(!(u&&s)){if(r.removeDirs)if(r.removeIgnored)o.push({path:l,isDir:!0});else{let p=await m(),g=await e.fs.readdir(f);(p.length>0||g.length===0)&&o.push({path:l,isDir:!0})}}}else if(d.isFile){if(r.trackedPaths.has(l))continue;let u=i&&dn(i,l,!1)==="ignored";r.onlyIgnored?u&&o.push({path:l,isDir:!1}):u&&s||o.push({path:l,isDir:!1})}}return o}function Gp(e,t){let n=`${t}/`;for(let r of e)if(r.startsWith(n))return!0;return!1}se();Ue();Ce();ie();me();Be();ge();kn();ie();me();var ba=2147483647;async function jo(e){let t=H(e.gitDir,"shallow");try{let n=await e.fs.readFile(t),r=new Set;for(let o of n.split(`
359
361
  `)){let s=o.trim();s.length===40&&r.add(s)}return r}catch{return new Set}}async function Np(e,t){let n=H(e.gitDir,"shallow");if(t.size===0){try{await e.fs.rm(n,{force:!0})}catch{}return}let r=[...t].sort();await e.fs.writeFile(n,r.join(`
360
362
  `)+`
361
- `)}async function xl(e){return(await jo(e)).size>0}async function Fr(e,t,n){let r=n??await jo(e);for(let o of t.shallow)r.add(o);for(let o of t.unshallow)r.delete(o);await Np(e,r)}async function Cl(e,t,n,r){if(n>=ba)return{shallow:[],unshallow:[...r]};let o=new Map,s=[];for(let f of t)!o.has(f)&&await wt(e,f)&&(o.set(f,1),s.push({hash:f,level:1}));let i=new Set,a=0;for(;a<s.length;){let{hash:f,level:l}=s[a++];if(l>=n){i.add(f);continue}let d;try{d=await j(e,f)}catch{continue}for(let u of d.parents)!o.has(u)&&await wt(e,u)&&(o.set(u,l+1),s.push({hash:u,level:l+1}))}let c=[];for(let f of r){let l=o.get(f);l!==void 0&&l<n&&c.push(f)}return{shallow:[...i],unshallow:c}}Ue();Nn();pt();ie();var Go=new Uint32Array([0,2874782929,1454598562,4260027763,104818581,2909197124,1351355959,4225088230,209637162,2804382715,1523426952,4053013081,172075199,2702711918,1559413021,4155209164,419274324,3013880453,1313798134,3843506983,516094401,3046853904,1215402083,3811058866,344150398,3218793903,1110456540,3916008461,314324715,3118826042,1141858121,4015451032,838548648,2594343033,1732793610,3423723995,935615293,2627596268,1635201695,3392046670,1032188802,2531018579,1798740512,3228511985,1002083351,2430804166,1829371317,3327150436,688300796,2187269677,2142620510,3572268943,792315241,2220913080,2039131339,3537049626,628649430,2384582919,1942684788,3633492133,591858243,2283716242,1978950625,3735934768,1677097296,3366964609,893718770,2652677155,1707679429,3465587220,863663975,2552480694,1871230586,3302032043,960225240,2455923465,1773654511,3270403390,1057273933,2489126044,2064377604,3495056341,767069862,2262907511,2100592785,3597481024,730327347,2162056674,2004166702,3693911295,566641036,2325738845,1900695483,3658742634,670639641,2359333576,1376601592,4183093545,79572058,2951190667,1412571757,4285241020,42027983,2849570590,1584630482,4113186307,146858864,2744735649,1481436487,4078262678,251626725,2779131956,1257298860,3785977725,474198542,3071936223,1288682553,3885369576,444388763,2972016970,1183716486,3990331479,272465188,3143944693,1085371155,3957901250,369236657,3176902240,1823819377,3354194592,973483987,2438961922,1787437540,3251868981,1010387014,2539715735,1623951707,3415358858,913891577,2636207144,1727327950,3450690079,809994092,2602447805,1950930981,3742461172,586920327,2309096790,1920450480,3643673441,616879634,2409456323,2016810767,3547309022,780500653,2245839484,2114547866,3578840139,683284792,2212736489,1565424345,4128755208,201134971,2695145386,1534139724,4029196701,230847726,2795225151,1362146803,4201185570,126082129,2899994752,1460654694,4233520823,29146052,2867138325,1169417357,4008333404,318803247,3092855294,1133282072,3906287561,356510394,3194379883,1238182823,3801390966,528368133,3022517972,1341279282,3836475619,423699856,2987954497,256065313,2753203184,1508923011,4071219794,159144116,2720394341,1607414038,4103505351,54390795,2825143514,1435408809,4275514744,84055966,2925208399,1404173884,4175973101,398369141,3169260964,1091422423,3931405318,293717728,3134747185,1194504002,3966442387,465595999,2962872974,1299384317,3861558060,503253450,3064380699,1263296616,3759527097,1052246921,2514597720,1745578539,3276988154,948397084,2480853197,1848905150,3312302447,851889315,2577365106,1685431553,3475771856,888777526,2678071271,1649066644,3373495877,642096605,2367432972,1895232639,3685695662,544930376,2334346905,1992922090,3717211963,708530935,2170742310,2089302869,3620835204,738473314,2271052211,2058837184,3522095121]),Fp=new Uint32Array([0,2125799437,1446245579,679924934,121527623,2039184714,1359849868,800622977,243055246,1892260483,1481592389,653946440,155379657,2012727236,1601245954,566506255,486110492,1649169681,1254785495,880779738,466036827,1701972054,1307892880,859962525,310759314,1815146399,1152793433,973282132,364614357,1796125400,1133012510,1027425811,972220984,1195887157,1874927347,292830974,1053603711,1081710450,1761559476,373973945,932073654,1228632251,1639818365,520651888,816844273,1308962300,1719925050,406247735,621518628,1539227433,1933077487,227363810,573948515,1551950446,1946564264,179508901,729228714,1438778791,2101662049,66187628,743012589,1392269536,2054851622,80718891,1944441968,223409277,634790075,1533214902,1960544567,175024442,585661948,1549622769,2107207422,53235443,732600885,1428142648,2057778105,68293556,747947890,1377953663,1864147308,296321377,959403431,1201305002,1747123243,379051046,1041303776,1084500205,1633688546,534068207,928247593,1239863076,1717454501,418080424,812495470,1322816099,1243037256,883039813,472173187,1653729934,1294557967,865878786,454727620,1706014665,1147897030,987669707,307785741,1827491840,1129699713,1038154124,359017802,1808993607,1458457428,677079897,14532511,2120785810,1372591635,795162142,132375256,2035729109,1486025178,640143831,245433617,1880368412,1605151901,555322512,161437782,1999272027,1284643889,841432124,446818554,1679083767,1269580150,890855803,497006013,1663735216,1122936511,1012631218,350048884,1785229945,1171323896,996531189,333647667,1834364734,1349216557,786319648,106470886,2028846571,1465201770,702551143,23511201,2144592044,1578619811,547550126,136587112,1989216101,1495895780,664579817,253393455,1907317282,1969288713,198563332,592642754,1575363279,1918806862,216763203,611147653,1524137864,2065452167,94989450,758102092,1402640449,2082607552,43463117,705815819,1420084486,1771668245,388801304,1068136414,1092573139,1856495186,269680223,949234329,1176570516,1743075739,424679830,836160848,1331948893,1624990940,510543057,921210903,1214099482,1064814657,1103292492,1766079626,401677447,944346374,1190966539,1853514189,282018240,822833871,1337873090,1731757572,428713481,909455240,1216352133,1611062083,515111758,596557149,1564187984,1975339414,185100699,615571482,1510326295,1921193169,204879068,770836435,1397172190,2076308248,91542293,718035604,1417247385,2097131103,38440530,109388409,2016412276,1354159794,772011711,29065022,2131648307,1468566517,691907576,150575351,1984739578,1590324284,545213489,264750512,1903355325,1509175675,658575734,444356453,1690924904,1280287662,855278499,490867234,1677142575,1265762025,902094564,335605227,1790299622,1110645024,1015429421,322875564,1837863073,1158497383,1001940074]),Lo=64,_p=4,ya=4096,Pl=65536,Up=127;function Bp(e){let t=e.byteLength;if(t===0)return null;let n=(t-1)/16|0;if(n===0)return null;let r=n>>>2;r<16&&(r=16),r=qp(r);let o=r-1,s=new Uint32Array(r),i=[],a=-1>>>0;for(let u=n*16-16;u>=0;u-=16){let h=0;for(let m=1;m<=16;m++)h=(h<<8|e[u+m])^Go[h>>>23];if(h=h>>>0,h===a)i[i.length-1].ptr=u+16;else{a=h;let m=h&o;i.push({ptr:u+16,val:h}),s[m]++}}let c=new Map;for(let u of i){let h=u.val&o,m=c.get(h);m||(m=[],c.set(h,m)),m.push(u)}for(let[u,h]of c){if(h.length<=Lo)continue;let m=[],p=h.length/Lo;for(let g=0;g<Lo;g++)m.push(h[Math.floor(g*p)]);c.set(u,m),s[u]=Lo}let f=new Uint32Array(r+1),l=[],d=0;for(let u=0;u<r;u++){f[u]=d;let h=c.get(u);if(h){for(let m of h)l.push(m);d+=h.length}}return f[r]=d,{src:e,hashMask:o,buckets:f,entries:l}}function Wp(e,t,n){if(!e||t.byteLength===0)return null;let r=e.src.byteLength,o=t.byteLength,s=e.src,i=new Uint8Array(Math.max(o,1024)),a=0;function c(p){for(;a+p>i.length;){let g=new Uint8Array(i.length*2);g.set(i),i=g}}a=Ol(i,a,r),a=Ol(i,a,o),c(18),a++;let f=0,l=0,d=Math.min(16,o);for(let p=0;p<d;p++)i[a++]=t[p],f=(f<<8|t[p])^Go[f>>>23],l++;f=f>>>0;let u=d,h=0,m=0;for(;u<o;){if(m<ya){f^=Fp[t[u-16]],f=((f<<8|t[u])^Go[f>>>23])>>>0;let p=f&e.hashMask,g=e.buckets[p],w=e.buckets[p+1];for(let b=g;b<w;b++){let k=e.entries[b];if(k.val!==f)continue;let E=k.ptr,R=s.byteLength-E,x=o-u;if(R>x&&(R=x),R<=m)break;let y=0;for(;y<R&&s[E+y]===t[u+y];)y++;if(y>m&&(m=y,h=E,m>=ya))break}}if(m<_p)c(2),l===0&&a++,i[a++]=t[u++],l++,l===Up&&(i[a-l-1]=l,l=0),m=0;else{if(l>0){for(;h>0&&s[h-1]===t[u-1];)if(m++,h--,u--,a--,!(--l>0)){a--,l=-1;break}l>0&&(i[a-l-1]=l),l=0}let p=m>Pl?m-Pl:0;m-=p,c(8);let g=a++,w=128;if(h&255&&(i[a++]=h&255,w|=1),h&65280&&(i[a++]=h>>>8&255,w|=2),h&16711680&&(i[a++]=h>>>16&255,w|=4),h&4278190080&&(i[a++]=h>>>24&255,w|=8),m&255&&(i[a++]=m&255,w|=16),m&65280&&(i[a++]=m>>>8&255,w|=32),i[g]=w,u+=m,h+=m,m=p,h>4294967295&&(m=0),m<ya){f=0;for(let b=-16;b<0;b++)f=(f<<8|t[u+b])^Go[f>>>23];f=f>>>0}}if(n&&a>n)return null}return l>0&&(i[a-l-1]=l),n&&a>n?null:i.subarray(0,a)}var $l={blob:0,tree:1,commit:2,tag:3};function No(e,t){let n=t?.window??10,r=t?.depth??50,o=e.slice().sort((f,l)=>{let d=$l[f.type]??99,u=$l[l.type]??99;return d!==u?d-u:l.content.byteLength-f.content.byteLength}),s=new Map,i=[],a=[],c=[];for(let f=0;f<o.length;f++){let l=o[f],d={hash:l.hash,type:l.type,content:l.content,depth:0},u=null,h=null,m=Math.max(0,f-n);for(let p=f-1;p>=m;p--){let g=o[p];if(g.type!==l.type||(s.get(g.hash)?.depth??0)>=r||l.content.byteLength<g.content.byteLength>>>5)continue;let k=a[p-m]??null;if(!k)continue;let E=u?u.byteLength:l.content.byteLength/2|0;if(E<16)continue;let R=Wp(k,l.content,E);R&&(!u||R.byteLength<u.byteLength)&&(u=R,h=g.hash)}if(u&&h){d.delta=u,d.deltaBase=h;let p=s.get(h);d.depth=(p?.depth??0)+1}s.set(l.hash,d),i.push(d),a.length>=n&&(a.shift(),c.shift()),a.push(Bp(l.content)),c.push(l.hash)}return i}function qp(e){let t=e;return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t++,t<16?16:t}function Ol(e,t,n){let r=n;do{let o=r&127;r>>>=7,r>0&&(o|=128),e[t++]=o}while(r>0);return t}Sr();ge();ie();wn();Tr();no();async function _r(e,t,n,r,o){let s=o??r,i=new Set;for(let l of n)await xs(e,l,i,s);let a=[...t];if(o&&r)for(let l of o)try{let d=await j(e,l);for(let u of d.parents)i.has(u)||a.push(u)}catch{}let c=[],f=new Set;for(let l of a)await Cs(e,l,i,f,c,r);return{count:c.length,objects:Kp(c)}}async function*Kp(e){for(let t of e)yield t}async function Ur(e){let t=[];for await(let n of e.objects)t.push(n);return t}async function xs(e,t,n,r){if(n.has(t))return;n.add(t);let o=await zp(e,t);if(o)switch(o.type){case"commit":{let s=an(o.content);if(await xs(e,s.tree,n,r),!r?.has(t))for(let i of s.parents)await xs(e,i,n,r);break}case"tree":{let s=En(o.content);for(let i of s.entries)await xs(e,i.hash,n,r);break}case"tag":{let s=Xt(o.content);await xs(e,s.object,n,r);break}case"blob":break}}async function Cs(e,t,n,r,o,s){if(r.has(t)||n.has(t))return;r.add(t);let i=await we(e,t);switch(o.push({hash:t,type:i.type,content:i.content}),i.type){case"commit":{let a=an(i.content);if(await Cs(e,a.tree,n,r,o,s),!s?.has(t))for(let c of a.parents)await Cs(e,c,n,r,o,s);break}case"tree":{let a=En(i.content);for(let c of a.entries)await Cs(e,c.hash,n,r,o,s);break}case"tag":{let a=Xt(i.content);await Cs(e,a.object,n,r,o,s);break}case"blob":break}}async function zp(e,t){try{return await we(e,t)}catch(n){if(n instanceof Error&&n.message===`object ${t} not found`)return null;throw n}}var Vp=new TextEncoder,tr=new TextDecoder,Sl=65520,Yp=new Uint8Array([48,48,48,48]),Ex=new Uint8Array([48,48,48,49]),kx=new Uint8Array([48,48,48,50]);function Tn(e){let t=typeof e=="string"?Vp.encode(e):e,n=4+t.byteLength;if(n>Sl)throw new Error(`pkt-line too long: ${n} bytes (max ${Sl})`);let r=n.toString(16).padStart(4,"0"),o=new Uint8Array(n);return o[0]=r.charCodeAt(0),o[1]=r.charCodeAt(1),o[2]=r.charCodeAt(2),o[3]=r.charCodeAt(3),o.set(t,4),o}function Ea(){return Yp.slice()}function Fo(...e){let t=0;for(let o of e)t+=o.byteLength;let n=new Uint8Array(t),r=0;for(let o of e)n.set(o,r),r+=o.byteLength;return n}function br(e){let t=[],n=0;for(;n<e.byteLength;){if(n+4>e.byteLength)throw new Error("Truncated pkt-line header");let r=tr.decode(e.subarray(n,n+4)),o=parseInt(r,16);if(Number.isNaN(o))throw new Error(`Invalid pkt-line length: ${r}`);if(o===0){t.push({type:"flush"}),n+=4;continue}if(o===1){t.push({type:"delim"}),n+=4;continue}if(o===2){t.push({type:"response-end"}),n+=4;continue}if(o<4)throw new Error(`Invalid pkt-line length: ${o}`);if(n+o>e.byteLength)throw new Error(`Truncated pkt-line: need ${o} bytes at offset ${n}, have ${e.byteLength-n}`);t.push({type:"data",data:e.subarray(n+4,n+o)}),n+=o}return t}function Ps(e){if(e.type!=="data")return"";let t=tr.decode(e.data);return t.endsWith(`
362
- `)?t.slice(0,-1):t}var Xp=65536;async function*ka(e){let t=e.getReader(),n=new Uint8Array(Xp),r=0;try{for(;;){for(;!(r<4);){let c=tr.decode(n.subarray(0,4)),f=parseInt(c,16);if(Number.isNaN(f))throw new Error(`Invalid pkt-line length: ${c}`);if(f===0){yield{type:"flush"},o(4);continue}if(f===1){yield{type:"delim"},o(4);continue}if(f===2){yield{type:"response-end"},o(4);continue}if(f<4)throw new Error(`Invalid pkt-line length: ${f}`);if(r<f)break;yield{type:"data",data:n.slice(4,f)},o(f)}let{done:s,value:i}=await t.read();if(s)break;if(i.byteLength===0)continue;let a=r+i.byteLength;if(a>n.byteLength){let c=n.byteLength;for(;c<a;)c*=2;let f=new Uint8Array(c);f.set(n.subarray(0,r)),n=f}n.set(i,r),r+=i.byteLength}for(;!(r<4);){let s=tr.decode(n.subarray(0,4)),i=parseInt(s,16);if(Number.isNaN(i))throw new Error(`Invalid pkt-line length: ${s}`);if(i===0){yield{type:"flush"},o(4);continue}if(i===1){yield{type:"delim"},o(4);continue}if(i===2){yield{type:"response-end"},o(4);continue}if(i<4)throw new Error(`Invalid pkt-line length: ${i}`);if(r<i)throw new Error(`Truncated pkt-line: need ${i} bytes, have ${r}`);yield{type:"data",data:n.slice(4,i)},o(i)}if(r>0)throw new Error("Truncated pkt-line header")}finally{t.releaseLock()}function o(s){n.copyWithin(0,s,r),r-=s}}var Il=1,Tl=2,vl=3;async function Ra(e,t){let n=[],r=[],o=0,s=!1;for await(let c of e){if(c.type!=="data"){s||n.push(c);continue}if(c.data.byteLength===0){s||n.push(c);continue}let f=c.data[0];if(!s)if(f>=1&&f<=3)s=!0;else{n.push(c);continue}let l=c.data.subarray(1);switch(f){case Il:r.push(l),o+=l.byteLength;break;case Tl:t?.(tr.decode(l));break;case vl:throw new Error(`Remote error: ${tr.decode(l)}`);default:break}}let i=new Uint8Array(o),a=0;for(let c of r)i.set(c,a),a+=c.byteLength;return{packData:i,preambleLines:n}}function xa(e){let t=[],n=[],r=[],o=0;for(let a of e){if(a.type!=="data"||a.data.byteLength===0)continue;let c=a.data[0];if(c===void 0)continue;let f=a.data.subarray(1);switch(c){case Il:t.push(f),o+=f.byteLength;break;case Tl:n.push(tr.decode(f));break;case vl:r.push(tr.decode(f));break;default:break}}let s=new Uint8Array(o),i=0;for(let a of t)s.set(a,i),i+=a.byteLength;return{packData:s,progress:n,errors:r}}pt();function Ca(e){return e?e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:{Authorization:`Basic ${btoa(`${e.username}:${e.password}`)}`}:{}}async function Pa(e,t,n,r=globalThis.fetch){let o=e.replace(/\/+$/,""),s=await r(`${o}/info/refs?service=${t}`,{headers:{...Ca(n),"User-Agent":"just-git/1.0"}});if(!s.ok)throw new Error(`HTTP ${s.status} discovering refs at ${o}`);let i=s.headers.get("content-type")??"",a=`application/x-${t}-advertisement`,c=new Uint8Array(await s.arrayBuffer());if(!i.startsWith(a)){let l=new TextDecoder().decode(c.subarray(0,5));if(!/^[0-9a-f]{4}#/.test(l))throw new Error(`Server does not support smart HTTP (Content-Type: ${i})`)}let f=br(c);return Zp(f,t)}function Zp(e,t){let n=0,r=e[n];r?.type==="data"&&Ps(r)===`# service=${t}`&&n++,e[n]?.type==="flush"&&n++;let o=[],s=[],i=new Map;for(;n<e.length;n++){let a=e[n];if(!a||a.type==="flush")break;if(a.type!=="data")continue;let c=a.data,f=c.indexOf(0),l;if(f!==-1){l=new TextDecoder().decode(c.subarray(0,f)),s=new TextDecoder().decode(c.subarray(f+1)).replace(/\n$/,"").split(" ").filter(Boolean);for(let p of s)if(p.startsWith("symref=")){let g=p.slice(7),w=g.indexOf(":");w!==-1&&i.set(g.slice(0,w),g.slice(w+1))}}else l=new TextDecoder().decode(c).replace(/\n$/,"");let d=l.indexOf(" ");if(d===-1)continue;let u=l.slice(0,d),h=l.slice(d+1);if(!(u===ne&&h==="capabilities^{}")){if(h.endsWith("^{}")){let m=h.slice(0,-3),p=o.find(g=>g.name===m);p&&(p.peeledHash=u);continue}o.push({name:h,hash:u})}}return{refs:o,capabilities:s,symrefs:i}}var Jp=["multi_ack_detailed","no-done","side-band-64k","ofs-delta","include-tag","shallow"];async function Hl(e,t,n,r,o,s=globalThis.fetch,i,a){if(t.length===0)throw new Error("fetchPack requires at least one want");let c=Ml(r,Jp),f=[];f.push(Tn(`want ${t[0]} ${c.join(" ")}
363
- `));for(let p=1;p<t.length;p++)f.push(Tn(`want ${t[p]}
364
- `));if(i?.existingShallows)for(let p of i.existingShallows)f.push(Tn(`shallow ${p}
365
- `));i?.depth!==void 0&&f.push(Tn(`deepen ${i.depth}
366
- `)),f.push(Ea());for(let p of n)f.push(Tn(`have ${p}
367
- `));f.push(Tn(`done
368
- `));let l=Fo(...f),d=e.replace(/\/+$/,""),u=await s(`${d}/git-upload-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-upload-pack-request",...Ca(o),"User-Agent":"just-git/1.0"},body:l});if(!u.ok)throw new Error(`HTTP ${u.status} fetching pack from ${d}`);let h=c.includes("side-band-64k");if(h&&u.body)return Qp(u.body,a);let m=new Uint8Array(await u.arrayBuffer());return eg(m,h,a)}async function Qp(e,t){let n=ka(e),{packData:r,preambleLines:o}=await Ra(n,t),s=[],i=[],a=[];for(let c of o){if(c.type!=="data")continue;let f=Ps(c);f.startsWith("shallow ")?i.push(f.slice(8)):f.startsWith("unshallow ")?a.push(f.slice(10)):(f.startsWith("ACK ")||f==="NAK")&&s.push(f)}return{packData:r,acks:s,shallowLines:i,unshallowLines:a}}function eg(e,t,n){let r=br(e),o=[],s=[],i=[],a=0;for(let u=0;u<r.length;u++){let h=r[u];if(!h||h.type==="flush"){a=u+1;continue}if(h.type!=="data")continue;let m=Ps(h);if(m.startsWith("shallow "))s.push(m.slice(8)),a=u+1;else if(m.startsWith("unshallow "))i.push(m.slice(10)),a=u+1;else if(m.startsWith("ACK ")||m==="NAK")o.push(m),a=u+1;else{a=u;break}}let c=r.slice(a);if(t){let{packData:u,progress:h,errors:m}=xa(c);if(m.length>0)throw new Error(`Remote error: ${m.join("")}`);if(n)for(let p of h)n(p);return{packData:u,acks:o,shallowLines:s,unshallowLines:i}}let f=0;for(let u of c)u.type==="data"&&(f+=u.data.byteLength);let l=new Uint8Array(f),d=0;for(let u of c)u.type==="data"&&(l.set(u.data,d),d+=u.data.byteLength);return{packData:l,acks:o,shallowLines:s,unshallowLines:i}}var tg=["report-status","side-band-64k","ofs-delta","delete-refs"];async function Al(e,t,n,r,o,s=globalThis.fetch,i){if(t.length===0)throw new Error("pushPack requires at least one command");let a=Ml(r,tg),c=[],[f,...l]=t;if(!f)throw new Error("pushPack requires at least one command");c.push(Tn(`${f.oldHash} ${f.newHash} ${f.refName}\0${a.join(" ")}
369
- `));for(let g of l)c.push(Tn(`${g.oldHash} ${g.newHash} ${g.refName}
370
- `));c.push(Ea());let d;if(n&&n.byteLength>0){let g=Fo(...c);d=new Uint8Array(g.byteLength+n.byteLength),d.set(g,0),d.set(n,g.byteLength)}else d=Fo(...c);let u=e.replace(/\/+$/,""),h=await s(`${u}/git-receive-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-receive-pack-request",...Ca(o),"User-Agent":"just-git/1.0"},body:d});if(!h.ok)throw new Error(`HTTP ${h.status} pushing to ${u}`);if(!a.includes("report-status"))return{unpackOk:!0,refResults:[]};let m=a.includes("side-band-64k");if(m&&h.body)return ng(h.body,i);let p=new Uint8Array(await h.arrayBuffer());return rg(p,m,i)}async function ng(e,t){let n=ka(e),{packData:r}=await Ra(n,t),o=br(r);return Dl(o)}function rg(e,t,n){let r;if(t){let o=br(e),{packData:s,progress:i,errors:a}=xa(o);if(a.length>0)throw new Error(`Remote error: ${a.join("")}`);if(n)for(let c of i)n(c);r=br(s)}else r=br(e);return Dl(r)}function Dl(e){let t=!1,n,r=[];for(let o of e){if(o.type==="flush")break;let s=Ps(o);if(s.startsWith("unpack "))t=s==="unpack ok",t||(n=s.slice(7));else if(s.startsWith("ok "))r.push({name:s.slice(3),ok:!0});else if(s.startsWith("ng ")){let i=s.slice(3),a=i.indexOf(" ");a!==-1?r.push({name:i.slice(0,a),ok:!1,error:i.slice(a+1)}):r.push({name:i,ok:!1})}}return{unpackOk:t,unpackError:n,refResults:r}}function Ml(e,t){let n=new Set(e.map(o=>o.split("=",1)[0]??o)),r=[];for(let o of t)n.has(o)&&r.push(o);return r.push("agent=just-git/1.0"),r}var $s=class{constructor(t,n){this.local=t;this.remote=n}headTarget;async advertiseRefs(){let t=await ye(this.remote),n=[];for(let s of t){if(s.name.startsWith("refs/tags/"))try{if((await we(this.remote,s.hash)).type==="tag"){n.push({name:s.name,hash:s.hash,peeledHash:await Te(this.remote,s.hash)});continue}}catch{}n.push({name:s.name,hash:s.hash})}let r=await U(this.remote,"HEAD");r&&n.push({name:"HEAD",hash:r});let o=await te(this.remote);return o?.type==="symbolic"&&(this.headTarget=o.target),n}async fetch(t,n,r){let o=await this.advertiseRefs();if(t.length===0)return{remoteRefs:o,objectCount:0};let s,i,a;if(r?.depth!==void 0){let l=r.existingShallows??new Set,d=await Cl(this.remote,t,r.depth,l);i=d,s=new Set(d.shallow),l.size>0&&(a=l)}let c=await $a(this.remote,t,n,s,a);if(!c)return{remoteRefs:o,objectCount:0,shallowUpdates:i};let f=await Js(this.local,c);return{remoteRefs:o,objectCount:f,shallowUpdates:i}}async push(t){let n=[],r=[];for(let s of t)s.newHash!==ne&&n.push(s.newHash),s.oldHash&&r.push(s.oldHash);if(n.length>0){let s=await $a(this.local,n,r);s&&await Js(this.remote,s)}let o=[];for(let s of t)try{let i=s.newHash===ne,a=s.oldHash??null;if(Ll(s)&&!s.ok){o.push({...s,ok:!1,error:`non-fast-forward update rejected for ${s.name}`});continue}if(!i&&!s.ok&&s.oldHash&&!await tn(this.remote,s.oldHash,s.newHash)){o.push({...s,ok:!1,error:`non-fast-forward update rejected for ${s.name}`});continue}let c=i?null:{type:"direct",hash:s.newHash};if(!await this.remote.refStore.compareAndSwapRef(s.name,a,c)){o.push({...s,ok:!1,error:`failed to lock ref '${s.name}'`});continue}this.remote.hooks&&(i&&s.oldHash?this.remote.hooks.onRefDelete?.({repo:this.remote,ref:s.name,oldHash:s.oldHash}):i||this.remote.hooks.onRefUpdate?.({repo:this.remote,ref:s.name,oldHash:s.oldHash,newHash:s.newHash})),o.push({...s,ok:!0})}catch(i){o.push({...s,ok:!1,error:i instanceof Error?i.message:String(i)})}return{updates:o}}},Os=class{constructor(t,n,r,o,s){this.local=t;this.url=n;this.auth=r;this.fetchFn=o;this.onProgress=s}headTarget;cachedFetchCaps=null;cachedPushCaps=null;cachedFetchRefs=null;async advertiseRefs(){let t=await Pa(this.url,"git-upload-pack",this.auth,this.fetchFn);this.cachedFetchCaps=t.capabilities,this.cachedFetchRefs=t.refs;let n=t.symrefs.get("HEAD");return n&&(this.headTarget=n),t.refs}async ensureFetchDiscovery(){return(!this.cachedFetchCaps||!this.cachedFetchRefs)&&await this.advertiseRefs(),{caps:this.cachedFetchCaps,refs:this.cachedFetchRefs}}async ensurePushDiscovery(){if(!this.cachedPushCaps){let t=await Pa(this.url,"git-receive-pack",this.auth,this.fetchFn);this.cachedPushCaps=t.capabilities}return this.cachedPushCaps}async fetch(t,n,r){let{caps:o,refs:s}=await this.ensureFetchDiscovery();if(t.length===0)return{remoteRefs:s,objectCount:0};let i=await Hl(this.url,t,n,o,this.auth,this.fetchFn,r,this.onProgress);if(i.packData.byteLength===0)return{remoteRefs:s,objectCount:0};let a=await Js(this.local,i.packData),c=i.shallowLines.length>0||i.unshallowLines.length>0?{shallow:i.shallowLines,unshallow:i.unshallowLines}:void 0;return{remoteRefs:s,objectCount:a,shallowUpdates:c}}async push(t){let n=new Set,r=[];for(let h of t){if(Ll(h)&&!h.ok){n.add(h.name),r.push({...h,ok:!1,error:"non-fast-forward"});continue}if(jl(h)&&!h.ok&&!await tn(this.local,h.oldHash,h.newHash)){let g=await wt(this.local,h.oldHash)?"non-fast-forward":"fetch first";n.add(h.name),r.push({...h,ok:!1,error:g})}}let o=t.filter(h=>!n.has(h.name));if(o.length===0)return{updates:r};let s=await this.ensurePushDiscovery(),i=o.map(h=>({oldHash:h.oldHash??ne,newHash:h.newHash,refName:h.name})),a=[],c=[],f=!1;for(let h of o)h.newHash!==ne&&(a.push(h.newHash),f=!0),h.oldHash&&h.oldHash!==ne&&c.push(h.oldHash);let l=null;f&&(l=await $a(this.local,a,c)??null);let d=await Al(this.url,i,l,s,this.auth,this.fetchFn,this.onProgress);return{updates:[...o.map(h=>{let m=d.refResults.find(w=>w.name===h.name),p=m?.ok??d.unpackOk,g=m?.error??(!p&&d.unpackError?`unpack failed: ${d.unpackError}`:void 0);return{...h,ok:p,error:g}}),...r]}}};function jl(e){return!!e.oldHash&&e.oldHash!==ne&&e.newHash!==ne}function Ll(e){return e.name.startsWith("refs/tags/")&&jl(e)}async function $a(e,t,n,r,o){let s=await _r(e,t,n,r,o);if(s.count===0)return;let i=await Ur(s),c=No(i).map(l=>({hash:l.hash,type:l.type,content:l.content,delta:l.delta,deltaBaseHash:l.deltaBase})),{data:f}=await Xs(c);return f}function sg(e){if(!_o(e))return{url:e};try{let t=new URL(e);if(!t.username&&!t.password)return{url:e};let n={type:"basic",username:decodeURIComponent(t.username),password:decodeURIComponent(t.password)};return t.username="",t.password="",{url:t.href,embeddedAuth:n}}catch{return{url:e}}}function yr(e,t){let n=sg(e);if(n.embeddedAuth&&t)try{t.set(new URL(n.url).origin,n.embeddedAuth)}catch{}return n}async function og(e,t){let r=(await pe(e))[`remote "${t}"`];return r?.url?{name:t,url:r.url,fetchRefspec:r.fetch??"+refs/heads/*:refs/remotes/origin/*"}:null}function _o(e){return e.startsWith("http://")||e.startsWith("https://")}function Gl(e){return e.startsWith("ssh://")||e.startsWith("git@")||e.startsWith("git+ssh://")}function Nl(e,t){if(t===void 0)return null;if(t===!1)return"network access is disabled";if(!t.allowed)return null;if(t.allowed.length===0)return"network access is disabled";let n;try{n=new URL(e).hostname}catch{return`network policy: access to '${e}' is not allowed`}for(let r of t.allowed)if(_o(r)){if(e===r||e.startsWith(r))return null}else if(n===r)return null;return`network policy: access to '${e}' is not allowed`}function ig(e){let t=e.get("GIT_HTTP_BEARER_TOKEN");if(t)return{type:"bearer",token:t};let n=e.get("GIT_HTTP_USER"),r=e.get("GIT_HTTP_PASSWORD");if(n&&r)return{type:"basic",username:n,password:r}}async function Fl(e,t,n){if(e.credentialProvider){let o=await e.credentialProvider(t);if(o)return o}let r=ig(n);if(r)return r;if(e.credentialCache)try{return e.credentialCache.get(new URL(t).origin)}catch{return}}async function _l(e,t,n,r){let o=yr(t,e.credentialCache).url;if(_o(o)){let s=Nl(o,e.networkPolicy);if(s)throw new Error(s);let i=await Fl(e,o,n);return new Os(e,o,i,e.fetchFn,e.onProgress)}if(!r&&e.resolveRemote&&(r=await e.resolveRemote(o)??void 0),!r)throw Gl(o)?new Error(`SSH transport is not supported. Use an HTTPS URL instead of '${o}'.`):new Error(`'${o}' does not appear to be a git repository`);return new $s(e,r)}async function Uo(e,t,n){let r=await og(e,t);if(!r)return null;let o=yr(r.url,e.credentialCache).url;if(_o(o)){let i=Nl(o,e.networkPolicy);if(i)throw new Error(i);let a=n?await Fl(e,o,n):void 0;return{transport:new Os(e,o,a,e.fetchFn,e.onProgress),config:{...r,url:o}}}let s=(e.resolveRemote?await e.resolveRemote(o):null)??await ir(e.fs,o);if(!s){if(Gl(o))throw new Error(`SSH transport is not supported. Use an HTTPS URL instead of '${o}'.`);return null}return{transport:new $s(e,s),config:{...r,url:o}}}Ae();Je();function Ul(e,t){e.command("clone",{description:"Clone a repository into a new directory",args:[K.string().name("repository").describe("Repository to clone"),K.string().name("directory").describe("Target directory").optional()],options:{bare:O().describe("Create a bare clone"),branch:Y.string().alias("b").describe("Checkout this branch instead of HEAD"),depth:Y.number().describe("Create a shallow clone with history truncated to N commits"),singleBranch:O().describe("Clone only the history of the specified or default branch"),noSingleBranch:O().describe("Clone all branches even with --depth"),noTags:O().describe("Don't clone any tags"),noCheckout:O().alias("n").describe("Don't create a checkout")},handler:async(n,r)=>{let o=n.repository;if(!o)return S("You must specify a repository to clone.");let s=o.startsWith("http://")||o.startsWith("https://"),i=n.branch,a=null,c=o;if(s)c=yr(o,t?.credentialCache).url;else if(t?.resolveRemote&&(a=await t.resolveRemote(o)),a||(c=Mt(r.cwd,o),a=await ir(r.fs,c)),!a)return S(`repository '${o}' does not exist`);let f=n.directory;if(!f){let v;s||o.includes("://")?v=c.split("/").pop()??c:v=Vr(c),v.endsWith(".git")&&(v=v.slice(0,-4)),f=v}let l=Mt(r.cwd,f),d=await t?.hooks?.preClone?.({repository:c,targetPath:l,bare:n.bare,branch:i??null});if(de(d))return F(d.message??"");if(await r.fs.exists(l))try{if((await r.fs.readdir(l)).length>0)return S(`destination path '${f}' already exists and is not an empty directory.`)}catch{return S(`destination path '${f}' already exists and is not an empty directory.`)}await r.fs.mkdir(l,{recursive:!0});let{ctx:u}=await Qs(r.fs,l,{bare:n.bare}),h=t?{...u,...t}:u,m=n.depth,p=n.singleBranch||m!==void 0&&!n.noSingleBranch,g=n.noTags||p,w=n.noCheckout,b=await pe(h),k;try{k=await _l(h,c,r.env,a??void 0)}catch(v){let _=v instanceof Error?v.message:"";return _.startsWith("network")?S(_):S(`repository '${o}' does not exist`)}let E=await k.advertiseRefs();if(E.length===0)return b['remote "origin"']={url:c,fetch:"+refs/heads/*:refs/remotes/origin/*"},await ze(h,b),await t?.hooks?.postClone?.({repo:h,repository:c,targetPath:l,bare:n.bare,branch:i??null}),{stdout:"",stderr:`Cloning into '${f}'...
363
+ `)}async function xl(e){return(await jo(e)).size>0}async function Fr(e,t,n){let r=n??await jo(e);for(let o of t.shallow)r.add(o);for(let o of t.unshallow)r.delete(o);await Np(e,r)}async function Cl(e,t,n,r){if(n>=ba)return{shallow:[],unshallow:[...r]};let o=new Map,s=[];for(let f of t)!o.has(f)&&await wt(e,f)&&(o.set(f,1),s.push({hash:f,level:1}));let i=new Set,a=0;for(;a<s.length;){let{hash:f,level:l}=s[a++];if(l>=n){i.add(f);continue}let d;try{d=await j(e,f)}catch{continue}for(let u of d.parents)!o.has(u)&&await wt(e,u)&&(o.set(u,l+1),s.push({hash:u,level:l+1}))}let c=[];for(let f of r){let l=o.get(f);l!==void 0&&l<n&&c.push(f)}return{shallow:[...i],unshallow:c}}Ue();kn();pt();ie();var Go=new Uint32Array([0,2874782929,1454598562,4260027763,104818581,2909197124,1351355959,4225088230,209637162,2804382715,1523426952,4053013081,172075199,2702711918,1559413021,4155209164,419274324,3013880453,1313798134,3843506983,516094401,3046853904,1215402083,3811058866,344150398,3218793903,1110456540,3916008461,314324715,3118826042,1141858121,4015451032,838548648,2594343033,1732793610,3423723995,935615293,2627596268,1635201695,3392046670,1032188802,2531018579,1798740512,3228511985,1002083351,2430804166,1829371317,3327150436,688300796,2187269677,2142620510,3572268943,792315241,2220913080,2039131339,3537049626,628649430,2384582919,1942684788,3633492133,591858243,2283716242,1978950625,3735934768,1677097296,3366964609,893718770,2652677155,1707679429,3465587220,863663975,2552480694,1871230586,3302032043,960225240,2455923465,1773654511,3270403390,1057273933,2489126044,2064377604,3495056341,767069862,2262907511,2100592785,3597481024,730327347,2162056674,2004166702,3693911295,566641036,2325738845,1900695483,3658742634,670639641,2359333576,1376601592,4183093545,79572058,2951190667,1412571757,4285241020,42027983,2849570590,1584630482,4113186307,146858864,2744735649,1481436487,4078262678,251626725,2779131956,1257298860,3785977725,474198542,3071936223,1288682553,3885369576,444388763,2972016970,1183716486,3990331479,272465188,3143944693,1085371155,3957901250,369236657,3176902240,1823819377,3354194592,973483987,2438961922,1787437540,3251868981,1010387014,2539715735,1623951707,3415358858,913891577,2636207144,1727327950,3450690079,809994092,2602447805,1950930981,3742461172,586920327,2309096790,1920450480,3643673441,616879634,2409456323,2016810767,3547309022,780500653,2245839484,2114547866,3578840139,683284792,2212736489,1565424345,4128755208,201134971,2695145386,1534139724,4029196701,230847726,2795225151,1362146803,4201185570,126082129,2899994752,1460654694,4233520823,29146052,2867138325,1169417357,4008333404,318803247,3092855294,1133282072,3906287561,356510394,3194379883,1238182823,3801390966,528368133,3022517972,1341279282,3836475619,423699856,2987954497,256065313,2753203184,1508923011,4071219794,159144116,2720394341,1607414038,4103505351,54390795,2825143514,1435408809,4275514744,84055966,2925208399,1404173884,4175973101,398369141,3169260964,1091422423,3931405318,293717728,3134747185,1194504002,3966442387,465595999,2962872974,1299384317,3861558060,503253450,3064380699,1263296616,3759527097,1052246921,2514597720,1745578539,3276988154,948397084,2480853197,1848905150,3312302447,851889315,2577365106,1685431553,3475771856,888777526,2678071271,1649066644,3373495877,642096605,2367432972,1895232639,3685695662,544930376,2334346905,1992922090,3717211963,708530935,2170742310,2089302869,3620835204,738473314,2271052211,2058837184,3522095121]),Fp=new Uint32Array([0,2125799437,1446245579,679924934,121527623,2039184714,1359849868,800622977,243055246,1892260483,1481592389,653946440,155379657,2012727236,1601245954,566506255,486110492,1649169681,1254785495,880779738,466036827,1701972054,1307892880,859962525,310759314,1815146399,1152793433,973282132,364614357,1796125400,1133012510,1027425811,972220984,1195887157,1874927347,292830974,1053603711,1081710450,1761559476,373973945,932073654,1228632251,1639818365,520651888,816844273,1308962300,1719925050,406247735,621518628,1539227433,1933077487,227363810,573948515,1551950446,1946564264,179508901,729228714,1438778791,2101662049,66187628,743012589,1392269536,2054851622,80718891,1944441968,223409277,634790075,1533214902,1960544567,175024442,585661948,1549622769,2107207422,53235443,732600885,1428142648,2057778105,68293556,747947890,1377953663,1864147308,296321377,959403431,1201305002,1747123243,379051046,1041303776,1084500205,1633688546,534068207,928247593,1239863076,1717454501,418080424,812495470,1322816099,1243037256,883039813,472173187,1653729934,1294557967,865878786,454727620,1706014665,1147897030,987669707,307785741,1827491840,1129699713,1038154124,359017802,1808993607,1458457428,677079897,14532511,2120785810,1372591635,795162142,132375256,2035729109,1486025178,640143831,245433617,1880368412,1605151901,555322512,161437782,1999272027,1284643889,841432124,446818554,1679083767,1269580150,890855803,497006013,1663735216,1122936511,1012631218,350048884,1785229945,1171323896,996531189,333647667,1834364734,1349216557,786319648,106470886,2028846571,1465201770,702551143,23511201,2144592044,1578619811,547550126,136587112,1989216101,1495895780,664579817,253393455,1907317282,1969288713,198563332,592642754,1575363279,1918806862,216763203,611147653,1524137864,2065452167,94989450,758102092,1402640449,2082607552,43463117,705815819,1420084486,1771668245,388801304,1068136414,1092573139,1856495186,269680223,949234329,1176570516,1743075739,424679830,836160848,1331948893,1624990940,510543057,921210903,1214099482,1064814657,1103292492,1766079626,401677447,944346374,1190966539,1853514189,282018240,822833871,1337873090,1731757572,428713481,909455240,1216352133,1611062083,515111758,596557149,1564187984,1975339414,185100699,615571482,1510326295,1921193169,204879068,770836435,1397172190,2076308248,91542293,718035604,1417247385,2097131103,38440530,109388409,2016412276,1354159794,772011711,29065022,2131648307,1468566517,691907576,150575351,1984739578,1590324284,545213489,264750512,1903355325,1509175675,658575734,444356453,1690924904,1280287662,855278499,490867234,1677142575,1265762025,902094564,335605227,1790299622,1110645024,1015429421,322875564,1837863073,1158497383,1001940074]),Lo=64,_p=4,ya=4096,Pl=65536,Up=127;function Bp(e){let t=e.byteLength;if(t===0)return null;let n=(t-1)/16|0;if(n===0)return null;let r=n>>>2;r<16&&(r=16),r=qp(r);let o=r-1,s=new Uint32Array(r),i=[],a=-1>>>0;for(let u=n*16-16;u>=0;u-=16){let h=0;for(let m=1;m<=16;m++)h=(h<<8|e[u+m])^Go[h>>>23];if(h=h>>>0,h===a)i[i.length-1].ptr=u+16;else{a=h;let m=h&o;i.push({ptr:u+16,val:h}),s[m]++}}let c=new Map;for(let u of i){let h=u.val&o,m=c.get(h);m||(m=[],c.set(h,m)),m.push(u)}for(let[u,h]of c){if(h.length<=Lo)continue;let m=[],p=h.length/Lo;for(let g=0;g<Lo;g++)m.push(h[Math.floor(g*p)]);c.set(u,m),s[u]=Lo}let f=new Uint32Array(r+1),l=[],d=0;for(let u=0;u<r;u++){f[u]=d;let h=c.get(u);if(h){for(let m of h)l.push(m);d+=h.length}}return f[r]=d,{src:e,hashMask:o,buckets:f,entries:l}}function Wp(e,t,n){if(!e||t.byteLength===0)return null;let r=e.src.byteLength,o=t.byteLength,s=e.src,i=new Uint8Array(Math.max(o,1024)),a=0;function c(p){for(;a+p>i.length;){let g=new Uint8Array(i.length*2);g.set(i),i=g}}a=Ol(i,a,r),a=Ol(i,a,o),c(18),a++;let f=0,l=0,d=Math.min(16,o);for(let p=0;p<d;p++)i[a++]=t[p],f=(f<<8|t[p])^Go[f>>>23],l++;f=f>>>0;let u=d,h=0,m=0;for(;u<o;){if(m<ya){f^=Fp[t[u-16]],f=((f<<8|t[u])^Go[f>>>23])>>>0;let p=f&e.hashMask,g=e.buckets[p],w=e.buckets[p+1];for(let b=g;b<w;b++){let R=e.entries[b];if(R.val!==f)continue;let E=R.ptr,k=s.byteLength-E,x=o-u;if(k>x&&(k=x),k<=m)break;let y=0;for(;y<k&&s[E+y]===t[u+y];)y++;if(y>m&&(m=y,h=E,m>=ya))break}}if(m<_p)c(2),l===0&&a++,i[a++]=t[u++],l++,l===Up&&(i[a-l-1]=l,l=0),m=0;else{if(l>0){for(;h>0&&s[h-1]===t[u-1];)if(m++,h--,u--,a--,!(--l>0)){a--,l=-1;break}l>0&&(i[a-l-1]=l),l=0}let p=m>Pl?m-Pl:0;m-=p,c(8);let g=a++,w=128;if(h&255&&(i[a++]=h&255,w|=1),h&65280&&(i[a++]=h>>>8&255,w|=2),h&16711680&&(i[a++]=h>>>16&255,w|=4),h&4278190080&&(i[a++]=h>>>24&255,w|=8),m&255&&(i[a++]=m&255,w|=16),m&65280&&(i[a++]=m>>>8&255,w|=32),i[g]=w,u+=m,h+=m,m=p,h>4294967295&&(m=0),m<ya){f=0;for(let b=-16;b<0;b++)f=(f<<8|t[u+b])^Go[f>>>23];f=f>>>0}}if(n&&a>n)return null}return l>0&&(i[a-l-1]=l),n&&a>n?null:i.subarray(0,a)}var $l={blob:0,tree:1,commit:2,tag:3};function No(e,t){let n=t?.window??10,r=t?.depth??50,o=e.slice().sort((f,l)=>{let d=$l[f.type]??99,u=$l[l.type]??99;return d!==u?d-u:l.content.byteLength-f.content.byteLength}),s=new Map,i=[],a=[],c=[];for(let f=0;f<o.length;f++){let l=o[f],d={hash:l.hash,type:l.type,content:l.content,depth:0},u=null,h=null,m=Math.max(0,f-n);for(let p=f-1;p>=m;p--){let g=o[p];if(g.type!==l.type||(s.get(g.hash)?.depth??0)>=r||l.content.byteLength<g.content.byteLength>>>5)continue;let R=a[p-m]??null;if(!R)continue;let E=u?u.byteLength:l.content.byteLength/2|0;if(E<16)continue;let k=Wp(R,l.content,E);k&&(!u||k.byteLength<u.byteLength)&&(u=k,h=g.hash)}if(u&&h){d.delta=u,d.deltaBase=h;let p=s.get(h);d.depth=(p?.depth??0)+1}s.set(l.hash,d),i.push(d),a.length>=n&&(a.shift(),c.shift()),a.push(Bp(l.content)),c.push(l.hash)}return i}function qp(e){let t=e;return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t++,t<16?16:t}function Ol(e,t,n){let r=n;do{let o=r&127;r>>>=7,r>0&&(o|=128),e[t++]=o}while(r>0);return t}Sr();ge();ie();bn();Tr();no();async function _r(e,t,n,r,o){let s=o??r,i=new Set;for(let l of n)await xs(e,l,i,s);let a=[...t];if(o&&r)for(let l of o)try{let d=await j(e,l);for(let u of d.parents)i.has(u)||a.push(u)}catch{}let c=[],f=new Set;for(let l of a)await Cs(e,l,i,f,c,r);return{count:c.length,objects:Kp(c)}}async function*Kp(e){for(let t of e)yield t}async function Ur(e){let t=[];for await(let n of e.objects)t.push(n);return t}async function xs(e,t,n,r){if(n.has(t))return;n.add(t);let o=await zp(e,t);if(o)switch(o.type){case"commit":{let s=an(o.content);if(await xs(e,s.tree,n,r),!r?.has(t))for(let i of s.parents)await xs(e,i,n,r);break}case"tree":{let s=xn(o.content);for(let i of s.entries)await xs(e,i.hash,n,r);break}case"tag":{let s=Zt(o.content);await xs(e,s.object,n,r);break}case"blob":break}}async function Cs(e,t,n,r,o,s){if(r.has(t)||n.has(t))return;r.add(t);let i=await we(e,t);switch(o.push({hash:t,type:i.type,content:i.content}),i.type){case"commit":{let a=an(i.content);if(await Cs(e,a.tree,n,r,o,s),!s?.has(t))for(let c of a.parents)await Cs(e,c,n,r,o,s);break}case"tree":{let a=xn(i.content);for(let c of a.entries)await Cs(e,c.hash,n,r,o,s);break}case"tag":{let a=Zt(i.content);await Cs(e,a.object,n,r,o,s);break}case"blob":break}}async function zp(e,t){try{return await we(e,t)}catch(n){if(n instanceof Error&&n.message===`object ${t} not found`)return null;throw n}}var Vp=new TextEncoder,nr=new TextDecoder,Sl=65520,Yp=new Uint8Array([48,48,48,48]),kx=new Uint8Array([48,48,48,49]),Rx=new Uint8Array([48,48,48,50]);function An(e){let t=typeof e=="string"?Vp.encode(e):e,n=4+t.byteLength;if(n>Sl)throw new Error(`pkt-line too long: ${n} bytes (max ${Sl})`);let r=n.toString(16).padStart(4,"0"),o=new Uint8Array(n);return o[0]=r.charCodeAt(0),o[1]=r.charCodeAt(1),o[2]=r.charCodeAt(2),o[3]=r.charCodeAt(3),o.set(t,4),o}function Ea(){return Yp.slice()}function Fo(...e){let t=0;for(let o of e)t+=o.byteLength;let n=new Uint8Array(t),r=0;for(let o of e)n.set(o,r),r+=o.byteLength;return n}function br(e){let t=[],n=0;for(;n<e.byteLength;){if(n+4>e.byteLength)throw new Error("Truncated pkt-line header");let r=nr.decode(e.subarray(n,n+4)),o=parseInt(r,16);if(Number.isNaN(o))throw new Error(`Invalid pkt-line length: ${r}`);if(o===0){t.push({type:"flush"}),n+=4;continue}if(o===1){t.push({type:"delim"}),n+=4;continue}if(o===2){t.push({type:"response-end"}),n+=4;continue}if(o<4)throw new Error(`Invalid pkt-line length: ${o}`);if(n+o>e.byteLength)throw new Error(`Truncated pkt-line: need ${o} bytes at offset ${n}, have ${e.byteLength-n}`);t.push({type:"data",data:e.subarray(n+4,n+o)}),n+=o}return t}function Ps(e){if(e.type!=="data")return"";let t=nr.decode(e.data);return t.endsWith(`
364
+ `)?t.slice(0,-1):t}var Xp=65536;async function*ka(e){let t=e.getReader(),n=new Uint8Array(Xp),r=0;try{for(;;){for(;!(r<4);){let c=nr.decode(n.subarray(0,4)),f=parseInt(c,16);if(Number.isNaN(f))throw new Error(`Invalid pkt-line length: ${c}`);if(f===0){yield{type:"flush"},o(4);continue}if(f===1){yield{type:"delim"},o(4);continue}if(f===2){yield{type:"response-end"},o(4);continue}if(f<4)throw new Error(`Invalid pkt-line length: ${f}`);if(r<f)break;yield{type:"data",data:n.slice(4,f)},o(f)}let{done:s,value:i}=await t.read();if(s)break;if(i.byteLength===0)continue;let a=r+i.byteLength;if(a>n.byteLength){let c=n.byteLength;for(;c<a;)c*=2;let f=new Uint8Array(c);f.set(n.subarray(0,r)),n=f}n.set(i,r),r+=i.byteLength}for(;!(r<4);){let s=nr.decode(n.subarray(0,4)),i=parseInt(s,16);if(Number.isNaN(i))throw new Error(`Invalid pkt-line length: ${s}`);if(i===0){yield{type:"flush"},o(4);continue}if(i===1){yield{type:"delim"},o(4);continue}if(i===2){yield{type:"response-end"},o(4);continue}if(i<4)throw new Error(`Invalid pkt-line length: ${i}`);if(r<i)throw new Error(`Truncated pkt-line: need ${i} bytes, have ${r}`);yield{type:"data",data:n.slice(4,i)},o(i)}if(r>0)throw new Error("Truncated pkt-line header")}finally{t.releaseLock()}function o(s){n.copyWithin(0,s,r),r-=s}}var Il=1,Tl=2,vl=3;async function Ra(e,t){let n=[],r=[],o=0,s=!1;for await(let c of e){if(c.type!=="data"){s||n.push(c);continue}if(c.data.byteLength===0){s||n.push(c);continue}let f=c.data[0];if(!s)if(f>=1&&f<=3)s=!0;else{n.push(c);continue}let l=c.data.subarray(1);switch(f){case Il:r.push(l),o+=l.byteLength;break;case Tl:t?.(nr.decode(l));break;case vl:throw new Error(`Remote error: ${nr.decode(l)}`);default:break}}let i=new Uint8Array(o),a=0;for(let c of r)i.set(c,a),a+=c.byteLength;return{packData:i,preambleLines:n}}function xa(e){let t=[],n=[],r=[],o=0;for(let a of e){if(a.type!=="data"||a.data.byteLength===0)continue;let c=a.data[0];if(c===void 0)continue;let f=a.data.subarray(1);switch(c){case Il:t.push(f),o+=f.byteLength;break;case Tl:n.push(nr.decode(f));break;case vl:r.push(nr.decode(f));break;default:break}}let s=new Uint8Array(o),i=0;for(let a of t)s.set(a,i),i+=a.byteLength;return{packData:s,progress:n,errors:r}}pt();function Ca(e){return e?e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:{Authorization:`Basic ${btoa(`${e.username}:${e.password}`)}`}:{}}async function Pa(e,t,n,r=globalThis.fetch){let o=e.replace(/\/+$/,""),s=await r(`${o}/info/refs?service=${t}`,{headers:{...Ca(n),"User-Agent":"just-git/1.0"}});if(!s.ok)throw new Error(`HTTP ${s.status} discovering refs at ${o}`);let i=s.headers.get("content-type")??"",a=`application/x-${t}-advertisement`,c=new Uint8Array(await s.arrayBuffer());if(!i.startsWith(a)){let l=new TextDecoder().decode(c.subarray(0,5));if(!/^[0-9a-f]{4}#/.test(l))throw new Error(`Server does not support smart HTTP (Content-Type: ${i})`)}let f=br(c);return Zp(f,t)}function Zp(e,t){let n=0,r=e[n];r?.type==="data"&&Ps(r)===`# service=${t}`&&n++,e[n]?.type==="flush"&&n++;let o=[],s=[],i=new Map;for(;n<e.length;n++){let a=e[n];if(!a||a.type==="flush")break;if(a.type!=="data")continue;let c=a.data,f=c.indexOf(0),l;if(f!==-1){l=new TextDecoder().decode(c.subarray(0,f)),s=new TextDecoder().decode(c.subarray(f+1)).replace(/\n$/,"").split(" ").filter(Boolean);for(let p of s)if(p.startsWith("symref=")){let g=p.slice(7),w=g.indexOf(":");w!==-1&&i.set(g.slice(0,w),g.slice(w+1))}}else l=new TextDecoder().decode(c).replace(/\n$/,"");let d=l.indexOf(" ");if(d===-1)continue;let u=l.slice(0,d),h=l.slice(d+1);if(!(u===ne&&h==="capabilities^{}")){if(h.endsWith("^{}")){let m=h.slice(0,-3),p=o.find(g=>g.name===m);p&&(p.peeledHash=u);continue}o.push({name:h,hash:u})}}return{refs:o,capabilities:s,symrefs:i}}var Jp=["multi_ack_detailed","no-done","side-band-64k","ofs-delta","include-tag","shallow"];async function Hl(e,t,n,r,o,s=globalThis.fetch,i,a){if(t.length===0)throw new Error("fetchPack requires at least one want");let c=Ml(r,Jp),f=[];f.push(An(`want ${t[0]} ${c.join(" ")}
365
+ `));for(let p=1;p<t.length;p++)f.push(An(`want ${t[p]}
366
+ `));if(i?.existingShallows)for(let p of i.existingShallows)f.push(An(`shallow ${p}
367
+ `));i?.depth!==void 0&&f.push(An(`deepen ${i.depth}
368
+ `)),f.push(Ea());for(let p of n)f.push(An(`have ${p}
369
+ `));f.push(An(`done
370
+ `));let l=Fo(...f),d=e.replace(/\/+$/,""),u=await s(`${d}/git-upload-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-upload-pack-request",...Ca(o),"User-Agent":"just-git/1.0"},body:l});if(!u.ok)throw new Error(`HTTP ${u.status} fetching pack from ${d}`);let h=c.includes("side-band-64k");if(h&&u.body)return Qp(u.body,a);let m=new Uint8Array(await u.arrayBuffer());return eg(m,h,a)}async function Qp(e,t){let n=ka(e),{packData:r,preambleLines:o}=await Ra(n,t),s=[],i=[],a=[];for(let c of o){if(c.type!=="data")continue;let f=Ps(c);f.startsWith("shallow ")?i.push(f.slice(8)):f.startsWith("unshallow ")?a.push(f.slice(10)):(f.startsWith("ACK ")||f==="NAK")&&s.push(f)}return{packData:r,acks:s,shallowLines:i,unshallowLines:a}}function eg(e,t,n){let r=br(e),o=[],s=[],i=[],a=0;for(let u=0;u<r.length;u++){let h=r[u];if(!h||h.type==="flush"){a=u+1;continue}if(h.type!=="data")continue;let m=Ps(h);if(m.startsWith("shallow "))s.push(m.slice(8)),a=u+1;else if(m.startsWith("unshallow "))i.push(m.slice(10)),a=u+1;else if(m.startsWith("ACK ")||m==="NAK")o.push(m),a=u+1;else{a=u;break}}let c=r.slice(a);if(t){let{packData:u,progress:h,errors:m}=xa(c);if(m.length>0)throw new Error(`Remote error: ${m.join("")}`);if(n)for(let p of h)n(p);return{packData:u,acks:o,shallowLines:s,unshallowLines:i}}let f=0;for(let u of c)u.type==="data"&&(f+=u.data.byteLength);let l=new Uint8Array(f),d=0;for(let u of c)u.type==="data"&&(l.set(u.data,d),d+=u.data.byteLength);return{packData:l,acks:o,shallowLines:s,unshallowLines:i}}var tg=["report-status","side-band-64k","ofs-delta","delete-refs"];async function Al(e,t,n,r,o,s=globalThis.fetch,i){if(t.length===0)throw new Error("pushPack requires at least one command");let a=Ml(r,tg),c=[],[f,...l]=t;if(!f)throw new Error("pushPack requires at least one command");c.push(An(`${f.oldHash} ${f.newHash} ${f.refName}\0${a.join(" ")}
371
+ `));for(let g of l)c.push(An(`${g.oldHash} ${g.newHash} ${g.refName}
372
+ `));c.push(Ea());let d;if(n&&n.byteLength>0){let g=Fo(...c);d=new Uint8Array(g.byteLength+n.byteLength),d.set(g,0),d.set(n,g.byteLength)}else d=Fo(...c);let u=e.replace(/\/+$/,""),h=await s(`${u}/git-receive-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-receive-pack-request",...Ca(o),"User-Agent":"just-git/1.0"},body:d});if(!h.ok)throw new Error(`HTTP ${h.status} pushing to ${u}`);if(!a.includes("report-status"))return{unpackOk:!0,refResults:[]};let m=a.includes("side-band-64k");if(m&&h.body)return ng(h.body,i);let p=new Uint8Array(await h.arrayBuffer());return rg(p,m,i)}async function ng(e,t){let n=ka(e),{packData:r}=await Ra(n,t),o=br(r);return Dl(o)}function rg(e,t,n){let r;if(t){let o=br(e),{packData:s,progress:i,errors:a}=xa(o);if(a.length>0)throw new Error(`Remote error: ${a.join("")}`);if(n)for(let c of i)n(c);r=br(s)}else r=br(e);return Dl(r)}function Dl(e){let t=!1,n,r=[];for(let o of e){if(o.type==="flush")break;let s=Ps(o);if(s.startsWith("unpack "))t=s==="unpack ok",t||(n=s.slice(7));else if(s.startsWith("ok "))r.push({name:s.slice(3),ok:!0});else if(s.startsWith("ng ")){let i=s.slice(3),a=i.indexOf(" ");a!==-1?r.push({name:i.slice(0,a),ok:!1,error:i.slice(a+1)}):r.push({name:i,ok:!1})}}return{unpackOk:t,unpackError:n,refResults:r}}function Ml(e,t){let n=new Set(e.map(o=>o.split("=",1)[0]??o)),r=[];for(let o of t)n.has(o)&&r.push(o);return r.push("agent=just-git/1.0"),r}var $s=class{constructor(t,n){this.local=t;this.remote=n}headTarget;async advertiseRefs(){let t=await ye(this.remote),n=[];for(let s of t){if(s.name.startsWith("refs/tags/"))try{if((await we(this.remote,s.hash)).type==="tag"){n.push({name:s.name,hash:s.hash,peeledHash:await Te(this.remote,s.hash)});continue}}catch{}n.push({name:s.name,hash:s.hash})}let r=await U(this.remote,"HEAD");r&&n.push({name:"HEAD",hash:r});let o=await te(this.remote);return o?.type==="symbolic"&&(this.headTarget=o.target),n}async fetch(t,n,r){let o=await this.advertiseRefs();if(t.length===0)return{remoteRefs:o,objectCount:0};let s,i,a;if(r?.depth!==void 0){let l=r.existingShallows??new Set,d=await Cl(this.remote,t,r.depth,l);i=d,s=new Set(d.shallow),l.size>0&&(a=l)}let c=await $a(this.remote,t,n,s,a);if(!c)return{remoteRefs:o,objectCount:0,shallowUpdates:i};let f=await Js(this.local,c);return{remoteRefs:o,objectCount:f,shallowUpdates:i}}async push(t){let n=[],r=[];for(let s of t)s.newHash!==ne&&n.push(s.newHash),s.oldHash&&r.push(s.oldHash);if(n.length>0){let s=await $a(this.local,n,r);s&&await Js(this.remote,s)}let o=[];for(let s of t)try{let i=s.newHash===ne,a=s.oldHash??null;if(Ll(s)&&!s.ok){o.push({...s,ok:!1,error:`non-fast-forward update rejected for ${s.name}`});continue}if(!i&&!s.ok&&s.oldHash&&!await tn(this.remote,s.oldHash,s.newHash)){o.push({...s,ok:!1,error:`non-fast-forward update rejected for ${s.name}`});continue}let c=i?null:{type:"direct",hash:s.newHash};if(!await this.remote.refStore.compareAndSwapRef(s.name,a,c)){o.push({...s,ok:!1,error:`failed to lock ref '${s.name}'`});continue}this.remote.hooks&&(i&&s.oldHash?this.remote.hooks.onRefDelete?.({repo:this.remote,ref:s.name,oldHash:s.oldHash}):i||this.remote.hooks.onRefUpdate?.({repo:this.remote,ref:s.name,oldHash:s.oldHash,newHash:s.newHash})),o.push({...s,ok:!0})}catch(i){o.push({...s,ok:!1,error:i instanceof Error?i.message:String(i)})}return{updates:o}}},Os=class{constructor(t,n,r,o,s){this.local=t;this.url=n;this.auth=r;this.fetchFn=o;this.onProgress=s}headTarget;cachedFetchCaps=null;cachedPushCaps=null;cachedFetchRefs=null;async advertiseRefs(){let t=await Pa(this.url,"git-upload-pack",this.auth,this.fetchFn);this.cachedFetchCaps=t.capabilities,this.cachedFetchRefs=t.refs;let n=t.symrefs.get("HEAD");return n&&(this.headTarget=n),t.refs}async ensureFetchDiscovery(){return(!this.cachedFetchCaps||!this.cachedFetchRefs)&&await this.advertiseRefs(),{caps:this.cachedFetchCaps,refs:this.cachedFetchRefs}}async ensurePushDiscovery(){if(!this.cachedPushCaps){let t=await Pa(this.url,"git-receive-pack",this.auth,this.fetchFn);this.cachedPushCaps=t.capabilities}return this.cachedPushCaps}async fetch(t,n,r){let{caps:o,refs:s}=await this.ensureFetchDiscovery();if(t.length===0)return{remoteRefs:s,objectCount:0};let i=await Hl(this.url,t,n,o,this.auth,this.fetchFn,r,this.onProgress);if(i.packData.byteLength===0)return{remoteRefs:s,objectCount:0};let a=await Js(this.local,i.packData),c=i.shallowLines.length>0||i.unshallowLines.length>0?{shallow:i.shallowLines,unshallow:i.unshallowLines}:void 0;return{remoteRefs:s,objectCount:a,shallowUpdates:c}}async push(t){let n=new Set,r=[];for(let h of t){if(Ll(h)&&!h.ok){n.add(h.name),r.push({...h,ok:!1,error:"non-fast-forward"});continue}if(jl(h)&&!h.ok&&!await tn(this.local,h.oldHash,h.newHash)){let g=await wt(this.local,h.oldHash)?"non-fast-forward":"fetch first";n.add(h.name),r.push({...h,ok:!1,error:g})}}let o=t.filter(h=>!n.has(h.name));if(o.length===0)return{updates:r};let s=await this.ensurePushDiscovery(),i=o.map(h=>({oldHash:h.oldHash??ne,newHash:h.newHash,refName:h.name})),a=[],c=[],f=!1;for(let h of o)h.newHash!==ne&&(a.push(h.newHash),f=!0),h.oldHash&&h.oldHash!==ne&&c.push(h.oldHash);let l=null;f&&(l=await $a(this.local,a,c)??null);let d=await Al(this.url,i,l,s,this.auth,this.fetchFn,this.onProgress);return{updates:[...o.map(h=>{let m=d.refResults.find(w=>w.name===h.name),p=m?.ok??d.unpackOk,g=m?.error??(!p&&d.unpackError?`unpack failed: ${d.unpackError}`:void 0);return{...h,ok:p,error:g}}),...r]}}};function jl(e){return!!e.oldHash&&e.oldHash!==ne&&e.newHash!==ne}function Ll(e){return e.name.startsWith("refs/tags/")&&jl(e)}async function $a(e,t,n,r,o){let s=await _r(e,t,n,r,o);if(s.count===0)return;let i=await Ur(s),c=No(i).map(l=>({hash:l.hash,type:l.type,content:l.content,delta:l.delta,deltaBaseHash:l.deltaBase})),{data:f}=await Xs(c);return f}function sg(e){if(!_o(e))return{url:e};try{let t=new URL(e);if(!t.username&&!t.password)return{url:e};let n={type:"basic",username:decodeURIComponent(t.username),password:decodeURIComponent(t.password)};return t.username="",t.password="",{url:t.href,embeddedAuth:n}}catch{return{url:e}}}function yr(e,t){let n=sg(e);if(n.embeddedAuth&&t)try{t.set(new URL(n.url).origin,n.embeddedAuth)}catch{}return n}async function og(e,t){let r=(await pe(e))[`remote "${t}"`];return r?.url?{name:t,url:r.url,fetchRefspec:r.fetch??"+refs/heads/*:refs/remotes/origin/*"}:null}function _o(e){return e.startsWith("http://")||e.startsWith("https://")}function Gl(e){return e.startsWith("ssh://")||e.startsWith("git@")||e.startsWith("git+ssh://")}function Nl(e,t){if(t===void 0)return null;if(t===!1)return"network access is disabled";if(!t.allowed)return null;if(t.allowed.length===0)return"network access is disabled";let n;try{n=new URL(e).hostname}catch{return`network policy: access to '${e}' is not allowed`}for(let r of t.allowed)if(_o(r)){if(e===r||e.startsWith(r))return null}else if(n===r)return null;return`network policy: access to '${e}' is not allowed`}function ig(e){let t=e.get("GIT_HTTP_BEARER_TOKEN");if(t)return{type:"bearer",token:t};let n=e.get("GIT_HTTP_USER"),r=e.get("GIT_HTTP_PASSWORD");if(n&&r)return{type:"basic",username:n,password:r}}async function Fl(e,t,n){if(e.credentialProvider){let o=await e.credentialProvider(t);if(o)return o}let r=ig(n);if(r)return r;if(e.credentialCache)try{return e.credentialCache.get(new URL(t).origin)}catch{return}}async function _l(e,t,n,r){let o=yr(t,e.credentialCache).url;if(_o(o)){let s=Nl(o,e.networkPolicy);if(s)throw new Error(s);let i=await Fl(e,o,n);return new Os(e,o,i,e.fetchFn,e.onProgress)}if(!r&&e.resolveRemote&&(r=await e.resolveRemote(o)??void 0),!r)throw Gl(o)?new Error(`SSH transport is not supported. Use an HTTPS URL instead of '${o}'.`):new Error(`'${o}' does not appear to be a git repository`);return new $s(e,r)}async function Uo(e,t,n){let r=await og(e,t);if(!r)return null;let o=yr(r.url,e.credentialCache).url;if(_o(o)){let i=Nl(o,e.networkPolicy);if(i)throw new Error(i);let a=n?await Fl(e,o,n):void 0;return{transport:new Os(e,o,a,e.fetchFn,e.onProgress),config:{...r,url:o}}}let s=(e.resolveRemote?await e.resolveRemote(o):null)??await Rn(e.fs,o);if(!s){if(Gl(o))throw new Error(`SSH transport is not supported. Use an HTTPS URL instead of '${o}'.`);return null}return{transport:new $s(e,s),config:{...r,url:o}}}Ae();Je();function Ul(e,t){e.command("clone",{description:"Clone a repository into a new directory",args:[q.string().name("repository").describe("Repository to clone"),q.string().name("directory").describe("Target directory").optional()],options:{bare:O().describe("Create a bare clone"),branch:Y.string().alias("b").describe("Checkout this branch instead of HEAD"),depth:Y.number().describe("Create a shallow clone with history truncated to N commits"),singleBranch:O().describe("Clone only the history of the specified or default branch"),noSingleBranch:O().describe("Clone all branches even with --depth"),noTags:O().describe("Don't clone any tags"),noCheckout:O().alias("n").describe("Don't create a checkout")},handler:async(n,r)=>{let o=n.repository;if(!o)return S("You must specify a repository to clone.");let s=o.startsWith("http://")||o.startsWith("https://"),i=n.branch,a=null,c=o;if(s)c=yr(o,t?.credentialCache).url;else if(t?.resolveRemote&&(a=await t.resolveRemote(o)),a||(c=Mt(r.cwd,o),a=await Rn(r.fs,c)),!a)return S(`repository '${o}' does not exist`);let f=n.directory;if(!f){let v;s||o.includes("://")?v=c.split("/").pop()??c:v=Vr(c),v.endsWith(".git")&&(v=v.slice(0,-4)),f=v}let l=Mt(r.cwd,f),d=await t?.hooks?.preClone?.({repository:c,targetPath:l,bare:n.bare,branch:i??null});if(de(d))return _(d.message??"");if(await r.fs.exists(l))try{if((await r.fs.readdir(l)).length>0)return S(`destination path '${f}' already exists and is not an empty directory.`)}catch{return S(`destination path '${f}' already exists and is not an empty directory.`)}await r.fs.mkdir(l,{recursive:!0});let{ctx:u}=await Qs(r.fs,l,{bare:n.bare}),h=t?{...u,...t}:u,m=n.depth,p=n.singleBranch||m!==void 0&&!n.noSingleBranch,g=n.noTags||p,w=n.noCheckout,b=await pe(h),R;try{R=await _l(h,c,r.env,a??void 0)}catch(v){let N=v instanceof Error?v.message:"";return N.startsWith("network")?S(N):S(`repository '${o}' does not exist`)}let E=await R.advertiseRefs();if(E.length===0)return b['remote "origin"']={url:c,fetch:"+refs/heads/*:refs/remotes/origin/*"},await ze(h,b),await t?.hooks?.postClone?.({repo:h,repository:c,targetPath:l,bare:n.bare,branch:i??null}),{stdout:"",stderr:`Cloning into '${f}'...
371
373
  warning: You appear to have cloned an empty repository.
372
- `,exitCode:0};let R=null,x=null;if(i){let v=E.find(_=>_.name===`refs/heads/${i}`);if(!v)return S(`Remote branch '${i}' not found in upstream origin`);R=i,x=v.hash}else{let v=k.headTarget;if(v?.startsWith("refs/heads/")&&E.some(_=>_.name===v)&&(R=v.slice(11),x=E.find(_=>_.name===v)?.hash??null),!R){let _=E.find(G=>G.name==="HEAD");if(_){let G=E.find(I=>I.name.startsWith("refs/heads/")&&I.hash===_.hash);G&&(R=G.name.slice(11),x=G.hash)}}if(!R){let _=E.find(G=>G.name.startsWith("refs/heads/"));_&&(R=_.name.slice(11),x=_.hash)}}let y={url:c,fetch:p&&R?`+refs/heads/${R}:refs/remotes/origin/${R}`:"+refs/heads/*:refs/remotes/origin/*"};g&&(y.tagOpt="--no-tags"),b['remote "origin"']=y;let C=[],P=new Set;for(let v of E)if(v.name!=="HEAD"){if(v.name.startsWith("refs/heads/")){if(p&&R&&v.name!==`refs/heads/${R}`)continue}else if(v.name.startsWith("refs/tags/")){if(g)continue}else continue;P.has(v.hash)||(P.add(v.hash),C.push(v.hash))}let D=m!==void 0&&m>0?{depth:m}:void 0;if(C.length>0){let v=await k.fetch(C,[],D);v.shallowUpdates&&await Fr(h,v.shallowUpdates)}let A=`clone: from ${c}`;for(let v of E)if(v.name!=="HEAD"){if(v.name.startsWith("refs/heads/")){if(p&&R&&v.name!==`refs/heads/${R}`)continue;let _=`refs/remotes/origin/${v.name.slice(11)}`;await J(h,_,v.hash),await re(h,r.env,_,null,v.hash,A)}v.name.startsWith("refs/tags/")&&(g||await J(h,v.name,v.hash))}if(n.bare)return await ze(h,b),R&&await Ze(h,"HEAD",`refs/heads/${R}`),await t?.hooks?.postClone?.({repo:h,repository:c,targetPath:l,bare:n.bare,branch:R}),{stdout:"",stderr:`Cloning into bare repository '${f}'...
373
- `,exitCode:0};if(await vr(h,"origin",E,k.headTarget),R&&x&&(await J(h,`refs/heads/${R}`,x),await Ze(h,"HEAD",`refs/heads/${R}`),await re(h,r.env,`refs/heads/${R}`,null,x,A,!0),b[`branch "${R}"`]={remote:"origin",merge:`refs/heads/${R}`},!w)){let v=await j(h,x);await gf(h,v.tree);let _=await qe(h,v.tree),G=Ks(_.map(I=>({path:I.path,mode:parseInt(I.mode,8),hash:I.hash,stage:0,stat:He()})));await ae(h,G)}await ze(h,b);let $={stdout:"",stderr:`Cloning into '${f}'...
374
- `,exitCode:0};return await t?.hooks?.postClone?.({repo:h,repository:c,targetPath:l,bare:n.bare,branch:R}),$}})}se();ie();Ce();ge();fn();Ae();Je();ls();Tr();function Wl(e,t){e.command("describe",{description:"Give an object a human readable name based on an available ref",args:[K.string().name("committish").describe("Commit to describe").optional()],options:{tags:O().describe("Use any tag, not just annotated"),always:O().describe("Show abbreviated hash as fallback"),long:O().describe("Always output long format"),abbrev:Y.number().describe("Abbreviation length"),dirty:Y.string().describe("Append dirty marker if worktree has changes"),match:Y.string().describe("Only consider tags matching glob"),exclude:Y.string().describe("Exclude tags matching glob"),exactMatch:O().alias("exact-match").describe("Only output exact matches"),firstParent:O().alias("first-parent").describe("Only follow first parent"),candidates:Y.number().describe("Consider N most recent tags")},transformArgs(n){return n.map(r=>r==="--dirty"?"--dirty=-dirty":r)},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.committish,a=n.tags,c=n.always,f=n.long,l=n.abbrev??7,d=n.dirty,u=n.match,h=n.exclude,m=n.exactMatch,p=n.firstParent,g;if(i){let C=await We(s,i);if(!C)return S(`Not a valid object name ${i}`);try{g=await Te(s,C)}catch{return S(`Not a valid object name ${i}`)}}else g=await Z(s);if(!g)return S("your current branch does not have any commits yet");let w=await ag(s,a,u,h),b=new Map,k=!1;for(let C of w){C.timestamp===0&&(k=!0);let P=b.get(C.commitHash);P||(P=[],b.set(C.commitHash,P)),P.push(C)}let E=await cg(s,g,b,p,m?0:void 0);if(!E){if(m)return S(`no tag exactly matches '${g}'`);if(c){let P=g.slice(0,Math.max(l,1));return d&&await Bl(s)&&(P+=d),{stdout:P+`
375
- `,stderr:"",exitCode:0}}let C;return!a&&k?C=`fatal: No annotated tags can describe '${g}'.
374
+ `,exitCode:0};let k=null,x=null;if(i){let v=E.find(N=>N.name===`refs/heads/${i}`);if(!v)return S(`Remote branch '${i}' not found in upstream origin`);k=i,x=v.hash}else{let v=R.headTarget;if(v?.startsWith("refs/heads/")&&E.some(N=>N.name===v)&&(k=v.slice(11),x=E.find(N=>N.name===v)?.hash??null),!k){let N=E.find(L=>L.name==="HEAD");if(N){let L=E.find(I=>I.name.startsWith("refs/heads/")&&I.hash===N.hash);L&&(k=L.name.slice(11),x=L.hash)}}if(!k){let N=E.find(L=>L.name.startsWith("refs/heads/"));N&&(k=N.name.slice(11),x=N.hash)}}let y={url:c,fetch:p&&k?`+refs/heads/${k}:refs/remotes/origin/${k}`:"+refs/heads/*:refs/remotes/origin/*"};g&&(y.tagOpt="--no-tags"),b['remote "origin"']=y;let P=[],C=new Set;for(let v of E)if(v.name!=="HEAD"){if(v.name.startsWith("refs/heads/")){if(p&&k&&v.name!==`refs/heads/${k}`)continue}else if(v.name.startsWith("refs/tags/")){if(g)continue}else continue;C.has(v.hash)||(C.add(v.hash),P.push(v.hash))}let A=m!==void 0&&m>0?{depth:m}:void 0;if(P.length>0){let v=await R.fetch(P,[],A);v.shallowUpdates&&await Fr(h,v.shallowUpdates)}let D=`clone: from ${c}`;for(let v of E)if(v.name!=="HEAD"){if(v.name.startsWith("refs/heads/")){if(p&&k&&v.name!==`refs/heads/${k}`)continue;let N=`refs/remotes/origin/${v.name.slice(11)}`;await J(h,N,v.hash),await re(h,r.env,N,null,v.hash,D)}v.name.startsWith("refs/tags/")&&(g||await J(h,v.name,v.hash))}if(n.bare)return await ze(h,b),k&&await Ze(h,"HEAD",`refs/heads/${k}`),await t?.hooks?.postClone?.({repo:h,repository:c,targetPath:l,bare:n.bare,branch:k}),{stdout:"",stderr:`Cloning into bare repository '${f}'...
375
+ `,exitCode:0};if(await vr(h,"origin",E,R.headTarget),k&&x&&(await J(h,`refs/heads/${k}`,x),await Ze(h,"HEAD",`refs/heads/${k}`),await re(h,r.env,`refs/heads/${k}`,null,x,D,!0),b[`branch "${k}"`]={remote:"origin",merge:`refs/heads/${k}`},!w)){let v=await j(h,x);await gf(h,v.tree);let N=await qe(h,v.tree),L=Ks(N.map(I=>({path:I.path,mode:parseInt(I.mode,8),hash:I.hash,stage:0,stat:He()})));await ae(h,L)}await ze(h,b);let $={stdout:"",stderr:`Cloning into '${f}'...
376
+ `,exitCode:0};return await t?.hooks?.postClone?.({repo:h,repository:c,targetPath:l,bare:n.bare,branch:k}),$}})}se();ie();Ce();ge();fn();Ae();Je();ls();Tr();function Wl(e,t){e.command("describe",{description:"Give an object a human readable name based on an available ref",args:[q.string().name("committish").describe("Commit to describe").optional()],options:{tags:O().describe("Use any tag, not just annotated"),always:O().describe("Show abbreviated hash as fallback"),long:O().describe("Always output long format"),abbrev:Y.number().describe("Abbreviation length"),dirty:Y.string().describe("Append dirty marker if worktree has changes"),match:Y.string().describe("Only consider tags matching glob"),exclude:Y.string().describe("Exclude tags matching glob"),exactMatch:O().alias("exact-match").describe("Only output exact matches"),firstParent:O().alias("first-parent").describe("Only follow first parent"),candidates:Y.number().describe("Consider N most recent tags")},transformArgs(n){return n.map(r=>r==="--dirty"?"--dirty=-dirty":r)},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.committish,a=n.tags,c=n.always,f=n.long,l=n.abbrev??7,d=n.dirty,u=n.match,h=n.exclude,m=n.exactMatch,p=n.firstParent,g;if(i){let P=await We(s,i);if(!P)return S(`Not a valid object name ${i}`);try{g=await Te(s,P)}catch{return S(`Not a valid object name ${i}`)}}else g=await Z(s);if(!g)return S("your current branch does not have any commits yet");let w=await ag(s,a,u,h),b=new Map,R=!1;for(let P of w){P.timestamp===0&&(R=!0);let C=b.get(P.commitHash);C||(C=[],b.set(P.commitHash,C)),C.push(P)}let E=await cg(s,g,b,p,m?0:void 0);if(!E){if(m)return S(`no tag exactly matches '${g}'`);if(c){let C=g.slice(0,Math.max(l,1));return d&&await Bl(s)&&(C+=d),{stdout:C+`
377
+ `,stderr:"",exitCode:0}}let P;return!a&&R?P=`fatal: No annotated tags can describe '${g}'.
376
378
  However, there were unannotated tags: try --tags.
377
- `:w.length===0&&!a&&(await ye(s,"refs/tags")).length>0?C=`fatal: No annotated tags can describe '${g}'.
379
+ `:w.length===0&&!a&&(await ye(s,"refs/tags")).length>0?P=`fatal: No annotated tags can describe '${g}'.
378
380
  However, there were unannotated tags: try --tags.
379
- `:C=`fatal: No names found, cannot describe anything.
380
- `,{stdout:"",stderr:C,exitCode:128}}let{tag:R,depth:x}=E,y;if(x===0&&!f)y=R.name;else if(l===0)y=R.name;else{let C=g.slice(0,Math.max(l,1));y=`${R.name}-${x}-g${C}`}return d&&await Bl(s)&&(y+=d),{stdout:y+`
381
- `,stderr:"",exitCode:0}}})}async function ag(e,t,n,r){let o=await ye(e,"refs/tags"),s=[];for(let i of o){let a=i.name.replace("refs/tags/","");if(n&&ln(n,a,0)!==0||r&&ln(r,a,0)===0)continue;let c=await we(e,i.hash);if(c.type==="tag"){let f=Xt(c.content),l;try{l=await Te(e,f.object)}catch{continue}s.push({name:a,commitHash:l,timestamp:f.tagger.timestamp})}else c.type==="commit"&&t&&s.push({name:a,commitHash:i.hash,timestamp:0})}return s}async function cg(e,t,n,r,o){let s=new Set,i=[{hash:t,depth:0}];for(;i.length>0;){let{hash:a,depth:c}=i.shift();if(s.has(a)||(s.add(a),o!==void 0&&c>o))continue;let f=n.get(a);if(f&&f.length>0)return{tag:fg(f),depth:c};let l;try{l=await j(e,a)}catch{continue}if(r)l.parents.length>0&&!s.has(l.parents[0])&&i.push({hash:l.parents[0],depth:c+1});else for(let d of l.parents)s.has(d)||i.push({hash:d,depth:c+1})}return null}function fg(e){return e.sort((t,n)=>n.timestamp!==t.timestamp?n.timestamp-t.timestamp:t.name.localeCompare(n.name))[0]}async function Bl(e){if(Ye(e))return!1;let n=await Z(e);if(!n)return!1;let r=await j(e,n),o=await le(e,r.tree),s=await V(e);return lr(s,o)?!0:(await bt(e,s)).length>0}se();Ce();ie();wn();me();Be();ge();Ae();Je();function ql(e,t){e.command("commit",{description:"Record changes to the repository",options:{message:Y.string().alias("m").repeatable().describe("Commit message"),file:Y.string().alias("F").describe("Read commit message from file ('-' for stdin)"),allowEmpty:O().describe("Allow creating an empty commit"),amend:O().describe("Amend the previous commit"),noEdit:O().describe("Use the previous commit message without editing"),all:O().alias("a").describe("Auto-stage modified and deleted tracked files")},handler:async(n,r)=>{let o=n.message;if(o.length>0&&n.file!==void 0)return S("options '-m' and '-F' cannot be used together");let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=await V(i);if(n.all){let ce=Ye(i);if(ce)return ce;let Se=await bt(i,a);for(let Xe of Se)Xe.status==="modified"?a=(await un(i,a,Xe.path)).index:Xe.status==="deleted"&&(a=lt(a,Xe.path));let ht=new Set(Ge(a).map(Xe=>Xe.path)),Rr=new Set(a.entries.filter(Xe=>Xe.stage>0&&!ht.has(Xe.path)).map(Xe=>Xe.path));for(let Xe of Rr){let Wr=H(i.workTree,Xe);await r.fs.exists(Wr)?a=(await un(i,a,Xe)).index:a=lt(a,Xe)}}let c=await U(i,"MERGE_HEAD"),f=await U(i,"CHERRY_PICK_HEAD"),l=await U(i,"REVERT_HEAD"),u=await _t(i)?await U(i,"REBASE_HEAD"):null,h=n.amend,m=await Z(i);if(h){if(!m)return S("You have nothing yet to amend.");if(c)return S("You are in the middle of a merge -- cannot amend.");if(f)return S("You are in the middle of a cherry-pick -- cannot amend.")}if(Lt(a)){let ce=new Set,Se=[];for(let ht of a.entries)ht.stage>0&&!ce.has(ht.path)&&(ce.add(ht.path),Se.push(`U ${ht.path}`));return Se.sort(),{stdout:Se.length>0?`${Se.join(`
381
+ `:P=`fatal: No names found, cannot describe anything.
382
+ `,{stdout:"",stderr:P,exitCode:128}}let{tag:k,depth:x}=E,y;if(x===0&&!f)y=k.name;else if(l===0)y=k.name;else{let P=g.slice(0,Math.max(l,1));y=`${k.name}-${x}-g${P}`}return d&&await Bl(s)&&(y+=d),{stdout:y+`
383
+ `,stderr:"",exitCode:0}}})}async function ag(e,t,n,r){let o=await ye(e,"refs/tags"),s=[];for(let i of o){let a=i.name.replace("refs/tags/","");if(n&&ln(n,a,0)!==0||r&&ln(r,a,0)===0)continue;let c=await we(e,i.hash);if(c.type==="tag"){let f=Zt(c.content),l;try{l=await Te(e,f.object)}catch{continue}s.push({name:a,commitHash:l,timestamp:f.tagger.timestamp})}else c.type==="commit"&&t&&s.push({name:a,commitHash:i.hash,timestamp:0})}return s}async function cg(e,t,n,r,o){let s=new Set,i=[{hash:t,depth:0}];for(;i.length>0;){let{hash:a,depth:c}=i.shift();if(s.has(a)||(s.add(a),o!==void 0&&c>o))continue;let f=n.get(a);if(f&&f.length>0)return{tag:fg(f),depth:c};let l;try{l=await j(e,a)}catch{continue}if(r)l.parents.length>0&&!s.has(l.parents[0])&&i.push({hash:l.parents[0],depth:c+1});else for(let d of l.parents)s.has(d)||i.push({hash:d,depth:c+1})}return null}function fg(e){return e.sort((t,n)=>n.timestamp!==t.timestamp?n.timestamp-t.timestamp:t.name.localeCompare(n.name))[0]}async function Bl(e){if(Ye(e))return!1;let n=await Z(e);if(!n)return!1;let r=await j(e,n),o=await le(e,r.tree),s=await V(e);return lr(s,o)?!0:(await bt(e,s)).length>0}se();Ce();ie();bn();me();Be();ge();Ae();Je();function ql(e,t){e.command("commit",{description:"Record changes to the repository",options:{message:Y.string().alias("m").repeatable().describe("Commit message"),file:Y.string().alias("F").describe("Read commit message from file ('-' for stdin)"),allowEmpty:O().describe("Allow creating an empty commit"),amend:O().describe("Amend the previous commit"),noEdit:O().describe("Use the previous commit message without editing"),all:O().alias("a").describe("Auto-stage modified and deleted tracked files")},handler:async(n,r)=>{let o=n.message;if(o.length>0&&n.file!==void 0)return S("options '-m' and '-F' cannot be used together");let s=await K(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=await V(i);if(n.all){let ce=Ye(i);if(ce)return ce;let Se=await bt(i,a);for(let Xe of Se)Xe.status==="modified"?a=(await un(i,a,Xe.path)).index:Xe.status==="deleted"&&(a=lt(a,Xe.path));let ht=new Set(Ge(a).map(Xe=>Xe.path)),Rr=new Set(a.entries.filter(Xe=>Xe.stage>0&&!ht.has(Xe.path)).map(Xe=>Xe.path));for(let Xe of Rr){let Wr=H(i.workTree,Xe);await r.fs.exists(Wr)?a=(await un(i,a,Xe)).index:a=lt(a,Xe)}}let c=await U(i,"MERGE_HEAD"),f=await U(i,"CHERRY_PICK_HEAD"),l=await U(i,"REVERT_HEAD"),u=await Ut(i)?await U(i,"REBASE_HEAD"):null,h=n.amend,m=await Z(i);if(h){if(!m)return S("You have nothing yet to amend.");if(c)return S("You are in the middle of a merge -- cannot amend.");if(f)return S("You are in the middle of a cherry-pick -- cannot amend.")}if(Lt(a)){let ce=new Set,Se=[];for(let ht of a.entries)ht.stage>0&&!ce.has(ht.path)&&(ce.add(ht.path),Se.push(`U ${ht.path}`));return Se.sort(),{stdout:Se.length>0?`${Se.join(`
382
384
  `)}
383
385
  `:"",stderr:`error: Committing is not possible because you have unmerged files.
384
386
  hint: Fix them up in the work tree, and then use 'git add/rm <file>'
@@ -388,7 +390,7 @@ fatal: Exiting because of an unresolved conflict.
388
390
 
389
391
  `):void 0;if(g!==void 0&&(g=St(g),!g))return{stdout:`Aborting commit due to empty commit message.
390
392
  `,stderr:"",exitCode:1};if(!g&&n.file!==void 0){if(n.file==="-")g=r.stdin;else{let ce=n.file.startsWith("/")?n.file:H(r.cwd,n.file);if(!await r.fs.exists(ce))return S(`could not read log file '${n.file}': No such file or directory`);let Se=await r.fs.readFile(ce);g=typeof Se=="string"?Se:new TextDecoder().decode(Se)}if(g=St(g),!g)return{stdout:`Aborting commit due to empty commit message.
391
- `,stderr:"",exitCode:1}}if(!g&&h&&p&&(g=p.message),!g&&(c||f||l||u)){let ce=await $e(i,"SQUASH_MSG");if(ce)g=St(ce);else{let Se=await $e(i,"MERGE_MSG");Se!==null&&(g=St(Se))}}if(!g)return F("error: must provide a commit message with -m or -F");let w=Ge(a),b=await Fe(i,w),k=await t?.hooks?.preCommit?.({repo:i,index:a,treeHash:b});if(de(k))return F(k.message??"");let E=n.allowEmpty,R=null;if(h&&p){let ce=p.parents[0];ce?R=(await j(i,ce)).tree:R=await gt("tree",new Uint8Array(0))}else m&&(R=(await j(i,m)).tree);let x=h&&p&&p.parents.length>1;if(!E&&!c&&!x){if(!m&&!h&&w.length===0)return{stdout:await at(i,{fromCommit:!0,index:a}),stderr:"",exitCode:1};if(R!==null&&R===b){if(h){let ce=p?.parents[0]??null;return{stdout:`${await at(i,{fromCommit:!0,compareHash:ce,noWarn:!0,index:a})}No changes
393
+ `,stderr:"",exitCode:1}}if(!g&&h&&p&&(g=p.message),!g&&(c||f||l||u)){let ce=await $e(i,"SQUASH_MSG");if(ce)g=St(ce);else{let Se=await $e(i,"MERGE_MSG");Se!==null&&(g=St(Se))}}if(!g)return _("error: must provide a commit message with -m or -F");let w=Ge(a),b=await Fe(i,w),R=await t?.hooks?.preCommit?.({repo:i,index:a,treeHash:b});if(de(R))return _(R.message??"");let E=n.allowEmpty,k=null;if(h&&p){let ce=p.parents[0];ce?k=(await j(i,ce)).tree:k=await gt("tree",new Uint8Array(0))}else m&&(k=(await j(i,m)).tree);let x=h&&p&&p.parents.length>1;if(!E&&!c&&!x){if(!m&&!h&&w.length===0)return{stdout:await at(i,{fromCommit:!0,index:a}),stderr:"",exitCode:1};if(k!==null&&k===b){if(h){let ce=p?.parents[0]??null;return{stdout:`${await at(i,{fromCommit:!0,compareHash:ce,noWarn:!0,index:a})}No changes
392
394
  `,stderr:`You asked to amend the most recent commit, but doing so would make
393
395
  it empty. You can repeat your command with --allow-empty, or you can
394
396
  remove the commit entirely with "git reset HEAD^".
@@ -398,18 +400,18 @@ If you wish to commit it anyway, use:
398
400
  git commit --allow-empty
399
401
 
400
402
  Otherwise, please use 'git cherry-pick --skip'
401
- `,exitCode:1}:{stdout:await at(i,{fromCommit:!0,index:a}),stderr:"",exitCode:1}}}let y=await hn(i,r.env);if(M(y))return y;let C=await tt(i,r.env);if(M(C))return C;h&&p&&(y.name=p.author.name,y.email=p.author.email,y.timestamp=p.author.timestamp,y.timezone=p.author.timezone),f&&(y=(await j(i,f)).author);let P=It(g),D={repo:i,message:P},A=await t?.hooks?.commitMsg?.(D);if(de(A))return F(A.message??"");P=D.message;let $;h&&p?$=[...p.parents]:($=m?[m]:[],c&&$.push(c));let v=cn({type:"commit",tree:b,parents:$,author:y,committer:C,message:P}),_=await Ie(i,"commit",v);await ae(i,a);let G=await te(i);G&&G.type==="symbolic"?await J(i,G.target,_):await J(i,"HEAD",_);let I=ue(P),T;h?T="commit (amend)":c?T="commit (merge)":f?T="commit (cherry-pick)":m?T="commit":T="commit (initial)";let L=`${T}: ${I}`,W=G?.type==="symbolic"?G.target:"HEAD";await re(i,r.env,W,m,_,L,G?.type==="symbolic"),c&&await ms(i),f&&await en(i),l&&await Ft(i),u&&await be(i,"MERGE_MSG"),await be(i,"SQUASH_MSG"),await t?.hooks?.postCommit?.({repo:i,hash:_,message:P,branch:G?.type==="symbolic"?Pe(G.target):null,parents:$,author:y});let N=G?.type==="symbolic"?G.target:null,B=N?Pe(N):"detached HEAD",ee;if(h&&p){let ce=p.parents[0];ee=ce?(await j(i,ce)).tree:null}else ee=m?(await j(i,m)).tree:null;let z=y.timestamp!==C.timestamp||y.timezone!==C.timezone,Q=$.length>1,Re=await Sn(i,ee,b,y,C,z,Q);return{stdout:`${Qt(B,_,g,$.length===0&&!h)}
402
- ${Re}`,stderr:"",exitCode:0}}})}se();Ue();me();function vn(e){let t=e.split(".");return t.length===2||t.length===3}function lg(e){let t=[];for(let[n,r]of Object.entries(e)){let o=n.match(/^(\S+)\s+"(.+)"$/);for(let[s,i]of Object.entries(r)){let a=o?`${o[1]}.${o[2]}.${s}`:`${n}.${s}`;for(let c of i)t.push(`${a}=${c}`)}}return t}function Yl(e,t){e.command("config",{description:"Get and set repository options",args:[K.string().name("positionals").variadic().optional()],options:{list:O().alias("l").describe("List all config entries"),get:O().describe("Get the value for a given key"),unset:O().describe("Remove a config key"),"get-all":O().describe("Get all values for a multi-valued key"),add:O().describe("Add a new line without altering existing values")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.positionals,a=i[0];if(n.list)return Vl(s);if(n.get){let f=a;return f?vn(f)?Oa(s,f):F(`error: invalid key: ${f}`,2):F("error: missing key",2)}if(n["get-all"]){let f=a;return f?vn(f)?Kl(s,f):F(`error: invalid key: ${f}`,2):F("error: missing key",2)}if(n.add){let f=a,l=i[1];return!f||l===void 0?F("error: missing key and/or value",2):vn(f)?(await ac(s,f,l),{stdout:"",stderr:"",exitCode:0}):F(`error: invalid key: ${f}`,2)}if(n.unset){let f=a;return f?vn(f)?zl(s,f):F(`error: invalid key: ${f}`,2):F("error: missing key",2)}if(a==="list")return Vl(s);if(a==="get"){let f=i[1];return f?vn(f)?Oa(s,f):F(`error: invalid key: ${f}`,2):F("error: missing key",2)}if(a==="get-all"){let f=i[1];return f?vn(f)?Kl(s,f):F(`error: invalid key: ${f}`,2):F("error: missing key",2)}if(a==="set"){let f=i[1],l=i[2];return!f||l===void 0?F("error: missing key and/or value",2):vn(f)?(await Ei(s,f,l),{stdout:"",stderr:"",exitCode:0}):F(`error: invalid key: ${f}`,2)}if(a==="unset"){let f=i[1];return f?vn(f)?zl(s,f):F(`error: invalid key: ${f}`,2):F("error: missing key",2)}if(!a)return F("usage: git config [get|set|unset|list] [<key>] [<value>]",2);if(!vn(a))return F(`error: invalid key: ${a}`,2);let c=i[1];return c!==void 0?(await Ei(s,a,c),{stdout:"",stderr:"",exitCode:0}):Oa(s,a)}})}async function Oa(e,t){let n=await ke(e,t);return n===void 0?F(""):{stdout:`${n}
403
- `,stderr:"",exitCode:0}}async function Kl(e,t){let n=await ic(e,t);return n.length===0?F(""):{stdout:`${n.join(`
403
+ `,exitCode:1}:{stdout:await at(i,{fromCommit:!0,index:a}),stderr:"",exitCode:1}}}let y=await mn(i,r.env);if(M(y))return y;let P=await tt(i,r.env);if(M(P))return P;h&&p&&(y.name=p.author.name,y.email=p.author.email,y.timestamp=p.author.timestamp,y.timezone=p.author.timezone),f&&(y=(await j(i,f)).author);let C=It(g),A={repo:i,message:C},D=await t?.hooks?.commitMsg?.(A);if(de(D))return _(D.message??"");C=A.message;let $;h&&p?$=[...p.parents]:($=m?[m]:[],c&&$.push(c));let v=cn({type:"commit",tree:b,parents:$,author:y,committer:P,message:C}),N=await Ie(i,"commit",v);await ae(i,a);let L=await te(i);L&&L.type==="symbolic"?await J(i,L.target,N):await J(i,"HEAD",N);let I=ue(C),T;h?T="commit (amend)":c?T="commit (merge)":f?T="commit (cherry-pick)":m?T="commit":T="commit (initial)";let G=`${T}: ${I}`,W=L?.type==="symbolic"?L.target:"HEAD";await re(i,r.env,W,m,N,G,L?.type==="symbolic"),c&&await ms(i),f&&await en(i),l&&await _t(i),u&&await be(i,"MERGE_MSG"),await be(i,"SQUASH_MSG"),await t?.hooks?.postCommit?.({repo:i,hash:N,message:C,branch:L?.type==="symbolic"?Pe(L.target):null,parents:$,author:y});let F=L?.type==="symbolic"?L.target:null,B=F?Pe(F):"detached HEAD",ee;if(h&&p){let ce=p.parents[0];ee=ce?(await j(i,ce)).tree:null}else ee=m?(await j(i,m)).tree:null;let z=y.timestamp!==P.timestamp||y.timezone!==P.timezone,Q=$.length>1,Re=await vn(i,ee,b,y,P,z,Q);return{stdout:`${Qt(B,N,g,$.length===0&&!h)}
404
+ ${Re}`,stderr:"",exitCode:0}}})}se();Ue();me();function Dn(e){let t=e.split(".");return t.length===2||t.length===3}function lg(e){let t=[];for(let[n,r]of Object.entries(e)){let o=n.match(/^(\S+)\s+"(.+)"$/);for(let[s,i]of Object.entries(r)){let a=o?`${o[1]}.${o[2]}.${s}`:`${n}.${s}`;for(let c of i)t.push(`${a}=${c}`)}}return t}function Yl(e,t){e.command("config",{description:"Get and set repository options",args:[q.string().name("positionals").variadic().optional()],options:{list:O().alias("l").describe("List all config entries"),get:O().describe("Get the value for a given key"),unset:O().describe("Remove a config key"),"get-all":O().describe("Get all values for a multi-valued key"),add:O().describe("Add a new line without altering existing values")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.positionals,a=i[0];if(n.list)return Vl(s);if(n.get){let f=a;return f?Dn(f)?Oa(s,f):_(`error: invalid key: ${f}`,2):_("error: missing key",2)}if(n["get-all"]){let f=a;return f?Dn(f)?Kl(s,f):_(`error: invalid key: ${f}`,2):_("error: missing key",2)}if(n.add){let f=a,l=i[1];return!f||l===void 0?_("error: missing key and/or value",2):Dn(f)?(await ac(s,f,l),{stdout:"",stderr:"",exitCode:0}):_(`error: invalid key: ${f}`,2)}if(n.unset){let f=a;return f?Dn(f)?zl(s,f):_(`error: invalid key: ${f}`,2):_("error: missing key",2)}if(a==="list")return Vl(s);if(a==="get"){let f=i[1];return f?Dn(f)?Oa(s,f):_(`error: invalid key: ${f}`,2):_("error: missing key",2)}if(a==="get-all"){let f=i[1];return f?Dn(f)?Kl(s,f):_(`error: invalid key: ${f}`,2):_("error: missing key",2)}if(a==="set"){let f=i[1],l=i[2];return!f||l===void 0?_("error: missing key and/or value",2):Dn(f)?(await Ei(s,f,l),{stdout:"",stderr:"",exitCode:0}):_(`error: invalid key: ${f}`,2)}if(a==="unset"){let f=i[1];return f?Dn(f)?zl(s,f):_(`error: invalid key: ${f}`,2):_("error: missing key",2)}if(!a)return _("usage: git config [get|set|unset|list] [<key>] [<value>]",2);if(!Dn(a))return _(`error: invalid key: ${a}`,2);let c=i[1];return c!==void 0?(await Ei(s,a,c),{stdout:"",stderr:"",exitCode:0}):Oa(s,a)}})}async function Oa(e,t){let n=await ke(e,t);return n===void 0?_(""):{stdout:`${n}
405
+ `,stderr:"",exitCode:0}}async function Kl(e,t){let n=await ic(e,t);return n.length===0?_(""):{stdout:`${n.join(`
404
406
  `)}
405
- `,stderr:"",exitCode:0}}async function zl(e,t){return await cc(e,t)?{stdout:"",stderr:"",exitCode:0}:F("",5)}async function Vl(e){let t=H(e.gitDir,"config"),n="";await e.fs.exists(t)&&(n=await e.fs.readFile(t));let r=gi(n),o=lg(r),s=new Set(o.map(c=>c.split("=")[0])),i=e.configOverrides?.defaults;if(i)for(let[c,f]of Object.entries(i))s.has(c)||(o.push(`${c}=${f}`),s.add(c));let a=e.configOverrides?.locked;if(a)for(let[c,f]of Object.entries(a))s.has(c)||o.push(`${c}=${f}`);return{stdout:o.length>0?`${o.join(`
407
+ `,stderr:"",exitCode:0}}async function zl(e,t){return await cc(e,t)?{stdout:"",stderr:"",exitCode:0}:_("",5)}async function Vl(e){let t=H(e.gitDir,"config"),n="";await e.fs.exists(t)&&(n=await e.fs.readFile(t));let r=gi(n),o=lg(r),s=new Set(o.map(c=>c.split("=")[0])),i=e.configOverrides?.defaults;if(i)for(let[c,f]of Object.entries(i))s.has(c)||(o.push(`${c}=${f}`),s.add(c));let a=e.configOverrides?.locked;if(a)for(let[c,f]of Object.entries(a))s.has(c)||o.push(`${c}=${f}`);return{stdout:o.length>0?`${o.join(`
406
408
  `)}
407
- `:"",stderr:"",exitCode:0}}se();function Bo(e){let{path:t,parentHashes:n,parentModes:r,resultHash:o,resultMode:s}=e,i=[];i.push(`diff --cc ${t}`);let a=n.map(b=>b?X(b):"0000000"),c=o?X(o):"0000000";i.push(`index ${a.join(",")}..${c}`);let f=e.resultContent.length>0,l=n.every(b=>b===null),d=!f&&n.some(b=>b!==null);if(l&&s)i.push(`new file mode ${s}`);else if(d){let b=r.map(k=>k||"000000").join(",");i.push(`deleted file mode ${b}`)}else{let b=r.map(R=>R||"000000"),k=s||"000000";b.some(R=>R!==k)&&i.push(`mode ${b.join(",")}..${k}`)}let u=n.some(b=>b!==null);if(i.push(u?`--- a/${t}`:"--- /dev/null"),i.push(f?`+++ b/${t}`:"+++ /dev/null"),d||l)return`${i.join(`
409
+ `:"",stderr:"",exitCode:0}}se();function Bo(e){let{path:t,parentHashes:n,parentModes:r,resultHash:o,resultMode:s}=e,i=[];i.push(`diff --cc ${t}`);let a=n.map(b=>b?X(b):"0000000"),c=o?X(o):"0000000";i.push(`index ${a.join(",")}..${c}`);let f=e.resultContent.length>0,l=n.every(b=>b===null),d=!f&&n.some(b=>b!==null);if(l&&s)i.push(`new file mode ${s}`);else if(d){let b=r.map(R=>R||"000000").join(",");i.push(`deleted file mode ${b}`)}else{let b=r.map(k=>k||"000000"),R=s||"000000";b.some(k=>k!==R)&&i.push(`mode ${b.join(",")}..${R}`)}let u=n.some(b=>b!==null);if(i.push(u?`--- a/${t}`:"--- /dev/null"),i.push(f?`+++ b/${t}`:"+++ /dev/null"),d||l)return`${i.join(`
408
410
  `)}
409
- `;let h=e.parentContents.map(b=>b.length>0?Bt(b):[]),m=e.resultContent.length>0?Bt(e.resultContent):[],p=h.map(b=>ct(b,m)),g=dg(h,m,p),w=hg(g,h.length,m);if(w.length===0)return"";for(let b of w)i.push(b);return`${i.join(`
411
+ `;let h=e.parentContents.map(b=>b.length>0?Wt(b):[]),m=e.resultContent.length>0?Wt(e.resultContent):[],p=h.map(b=>ct(b,m)),g=dg(h,m,p),w=hg(g,h.length,m);if(w.length===0)return"";for(let b of w)i.push(b);return`${i.join(`
410
412
  `)}
411
- `}function dg(e,t,n){let r=e.length,o=n.map(i=>{let a=[],c=new Map,f=0;for(let l of i)if(l.type==="keep")a[l.newLineNo-1]="keep",f=l.newLineNo;else if(l.type==="insert")a[l.newLineNo-1]="insert",f=l.newLineNo;else if(l.type==="delete"){let d=c.get(f)??[];d.push({text:l.line,parentLineNo:l.oldLineNo}),c.set(f,d)}return{resultStatus:a,deletions:c}}),s=[];for(let i=0;i<=t.length;i++){let a=[];for(let f=0;f<r;f++){let l=o[f];a.push(l?.deletions.get(i)??[])}let c=ug(a,r);for(let f of c)s.push(f);if(i<t.length){let f=[],l=Array(r).fill(0);for(let d=0;d<r;d++){let h=o[d]?.resultStatus[i];if(f.push(h==="insert"?"+":" "),h==="keep"){let m=n[d];if(m){for(let p of m)if(p.type==="keep"&&p.newLineNo===i+1){l[d]=p.oldLineNo;break}}}}s.push({columns:f,text:t[i]??"",resultLineNo:i+1,parentLineNos:l})}}return s}function ug(e,t){if(!e.some(o=>o.length>0))return[];if(t===2){let o=e[0]??[],s=e[1]??[];if(o.length===0)return s.map(l=>({columns:[" ","-"],text:l.text,resultLineNo:0,parentLineNos:[0,l.parentLineNo]}));if(s.length===0)return o.map(l=>({columns:["-"," "],text:l.text,resultLineNo:0,parentLineNos:[l.parentLineNo,0]}));let i=o.map(l=>l.text),a=s.map(l=>l.text),c=ct(i,a),f=[];for(let l of c)if(l.type==="keep"){let d=o.find(h=>h.text===l.line&&h.parentLineNo===l.oldLineNo),u=s.find(h=>h.text===l.line&&h.parentLineNo===l.newLineNo);f.push({columns:["-","-"],text:l.line,resultLineNo:0,parentLineNos:[d?.parentLineNo??0,u?.parentLineNo??0]})}else if(l.type==="delete"){let d=o.find(u=>u.parentLineNo===l.oldLineNo);f.push({columns:["-"," "],text:l.line,resultLineNo:0,parentLineNos:[d?.parentLineNo??0,0]})}else if(l.type==="insert"){let d=s.find(u=>u.parentLineNo===l.newLineNo);f.push({columns:[" ","-"],text:l.line,resultLineNo:0,parentLineNos:[0,d?.parentLineNo??0]})}return f}let r=[];for(let o=0;o<t;o++){let s=e[o]??[];for(let i of s){let a=Array(t).fill(" ");a[o]="-";let c=Array(t).fill(0);c[o]=i.parentLineNo,r.push({columns:a,text:i.text,resultLineNo:0,parentLineNos:c})}}return r}function hg(e,t,n){let o=[];for(let l=0;l<e.length;l++)e[l]?.columns.some(u=>u!==" ")&&o.push(l);if(o.length===0)return[];let s=[],i=o[0]??0,a=Math.max(0,i-3),c=Math.min(e.length-1,i+3);for(let l=1;l<o.length;l++){let d=o[l]??0,u=Math.max(0,d-3),h=Math.min(e.length-1,d+3);u<=c+1||(s.push({start:a,end:c}),a=u),c=h}s.push({start:a,end:c});let f=[];for(let l of s){let d=e.slice(l.start,l.end+1),u=[];for(let E=0;E<t;E++){let R=d.filter(x=>(x.parentLineNos[E]??0)>0||x.columns[E]==="-");if(R.length===0)u.push({start:1,count:0});else{let y=R.find(C=>(C.parentLineNos[E]??0)>0)?.parentLineNos[E]??1;u.push({start:y,count:R.length})}}let h=d.filter(E=>E.resultLineNo>0),m=h[0],p=m?m.resultLineNo:1,g=h.length,w="";for(let E=p-2;E>=0;E--){let R=n[E];if(R&&/^[a-zA-Z$_]/.test(R)){w=` ${R.trimEnd().slice(0,79)}`;break}}let b=u.map(E=>`-${E.start},${E.count}`),k=`${"@".repeat(t+1)} ${b.join(" ")} +${p},${g} ${"@".repeat(t+1)}${w}`;f.push(k);for(let E of d)f.push(`${E.columns.join("")}${E.text}`)}return f}se();Ce();ie();me();function Wo(e){let t=e.indexOf("...");if(t>=0)return{type:"three-dot",left:e.slice(0,t)||"HEAD",right:e.slice(t+3)||"HEAD"};let n=e.indexOf("..");return n>=0?{type:"two-dot",left:e.slice(0,n)||"HEAD",right:e.slice(n+2)||"HEAD"}:null}Rn();ge();Ae();Je();var Sa=new TextDecoder;function Ql(e){return"exitCode"in e}function Er(e){return e.toString(8).padStart(6,"0")}function ed(e,t){let n=[];for(let r of e)n.push({path:r.path,status:r.status==="added"?"A":r.status==="deleted"?"D":"M",oldHash:r.oldHash,newHash:r.newHash,oldMode:r.oldMode,newMode:r.newMode});for(let r of t)n.push({path:r.newPath,status:"R",oldHash:r.oldHash,newHash:r.newHash,oldMode:r.oldMode,newMode:r.newMode,oldPath:r.oldPath,similarity:r.similarity});return n}function td(e,t){e.command("diff",{description:"Show changes between commits, commit and working tree, etc.",transformArgs:n=>n.map(r=>{let o=/^-U(\d+)$/.exec(r);return o?`--unified=${o[1]}`:r}),args:[K.string().name("commits").variadic().optional()],options:{cached:O().describe("Show staged changes (index vs HEAD)"),staged:O().describe("Synonym for --cached"),stat:O().describe("Show diffstat summary"),nameOnly:O().describe("Show only names of changed files"),nameStatus:O().describe("Show names and status of changed files"),shortstat:O().describe("Show only the shortstat summary line"),numstat:O().describe("Machine-readable insertions/deletions per file"),unified:Y.number().alias("U").describe("Generate diffs with <n> lines of context"),findRenames:O().alias("M").describe("Detect renames (enabled by default)"),findCopies:O().alias("C").describe("Detect copies (accepted for compatibility)"),color:O().describe("Show colored diff (accepted for compatibility)"),noColor:O().describe("Turn off colored diff (accepted for compatibility)")},handler:async(n,r,o)=>{let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.cached||n.staged,c=n.commits,f=ut(i,r.cwd),l=o.passthrough.length>0?o.passthrough.map(g=>_e(g,f)):null,d=n.stat?"stat":n.nameOnly?"name-only":n.nameStatus?"name-status":n.shortstat?"shortstat":n.numstat?"numstat":"unified",u,h=c.length===1?Wo(c[0]):null;if(h){if(a)return S("too many arguments");h.type==="three-dot"?u=await wg(i,h.left,h.right,l):u=await Jl(i,h.left,h.right,l)}else if(c.length===2)u=await Jl(i,c[0],c[1],l);else{if(c.length>2)return S("too many arguments");a?u=await gg(i,c.length===1?c[0]:null,l):c.length===1?u=await bg(i,c[0],l):u=await mg(i,l)}if(Ql(u))return u;let m=n.unified,p=await yg(i,u.items,d,m);return u.stderr&&(p.stderr=u.stderr),p}})}async function mg(e,t){let n=Ye(e);if(n)return n;let r=await V(e),o=new Set,s=new Map,i=new Map,a=new Map;for(let l of r.entries)l.stage===0?s.set(l.path,l):(o.add(l.path),l.stage===2?i.set(l.path,l):l.stage===3&&a.set(l.path,l));let c=await bt(e,r);c.sort((l,d)=>ve(l.path,d.path));let f=[];for(let l of c){if(l.status==="untracked"||t&&!Ee(t,l.path)||o.has(l.path))continue;let d=s.get(l.path);if(!d)continue;let u=Er(d.mode),h;if(l.status==="modified"&&e.workTree){let m=H(e.workTree,l.path),p=await e.fs.readFileBuffer(m);h=await gt("blob",p)}f.push({path:l.path,status:l.status==="deleted"?"D":"M",oldHash:d.hash,newHash:h,oldMode:u,newMode:u,newFromWorkTree:l.status==="modified"})}for(let l of o){if(t&&!Ee(t,l))continue;let d=i.get(l),u=a.get(l);await pg(f,e,l,d,u)}return f.sort((l,d)=>{let u=ve(l.path,d.path);return u!==0?u:l.status==="U"&&d.status!=="U"?-1:l.status!=="U"&&d.status==="U"?1:0}),{items:f}}async function pg(e,t,n,r,o){let s=t.workTree;if(s&&r&&o){let i=Er(r.mode),a=Er(o.mode),{exists:c,hash:f}=await Xl(t.fs,s,n);e.push({path:n,status:"U",newHash:f,newMode:i,newFromWorkTree:c,combinedParentHashes:[r.hash,o.hash],combinedParentModes:[i,a]}),Zl(e,n,r.hash,i,c,f);return}if(e.push({path:n,status:"U"}),s&&r){let i=Er(r.mode),{exists:a,hash:c}=await Xl(t.fs,s,n);Zl(e,n,r.hash,i,a,c)}}async function Xl(e,t,n){let r=H(t,n);if(!await e.exists(r))return{exists:!1};let o=await cs(e,r);return{exists:!0,hash:await gt("blob",o)}}function Zl(e,t,n,r,o,s){o&&s&&s!==n?e.push({path:t,status:"M",oldHash:n,newHash:s,oldMode:r,newMode:r,newFromWorkTree:!0}):o||e.push({path:t,status:"D",oldHash:n,oldMode:r})}async function gg(e,t,n){let r=null;if(t){let u=await Me(e,t);if(M(u))return u;r=u.commit.tree}else{let u=await Z(e);u&&(r=(await j(e,u)).tree)}let o=await le(e,r),s=await V(e),i=new Set;for(let u of s.entries)u.stage>0&&i.add(u.path);let a=new Map(Ge(s).map(u=>[u.path,u])),c=[];for(let[u,h]of a){if(i.has(u))continue;let m=o.get(u);m?m.hash!==h.hash&&c.push({path:u,status:"modified",oldHash:m.hash,newHash:h.hash,oldMode:m.mode,newMode:Er(h.mode)}):c.push({path:u,status:"added",newHash:h.hash,newMode:Er(h.mode)})}for(let[u,h]of o)i.has(u)||a.has(u)||c.push({path:u,status:"deleted",oldHash:h.hash,oldMode:h.mode});let{remaining:f,renames:l}=await it(e,c),d=ed(f,l);for(let u of i)d.push({path:u,status:"U"});return d.sort((u,h)=>ve(u.path,h.path)),n?{items:d.filter(u=>Ee(n,u.path))}:{items:d}}async function Jl(e,t,n,r){let o=await Me(e,t);if(M(o))return o;let s=await Me(e,n);if(M(s))return s;let i=await Ve(e,o.commit.tree,s.commit.tree);return nd(e,i,r)}async function wg(e,t,n,r){let o=await Me(e,t);if(M(o))return o;let s=await Me(e,n);if(M(s))return s;let i=await Wt(e,o.hash,s.hash);if(i.length===0)return S(`${t}...${n}: no merge base`);let a;i.length>1&&(a=`warning: ${t}...${n}: multiple merge bases, using ${i[0]}
412
- `);let c=i[0],f=await j(e,c),l=await Ve(e,f.tree,s.commit.tree),d=await nd(e,l,r);return Ql(d)||a&&(d.stderr=a),d}async function nd(e,t,n){let{remaining:r,renames:o}=await it(e,t),s=ed(r,o);return s.sort((i,a)=>ve(i.path,a.path)),n?{items:s.filter(i=>Ee(n,i.path))}:{items:s}}async function bg(e,t,n){let r=Ye(e);if(r)return r;let o=await Me(e,t);if(M(o))return o;let s=e.workTree,i=await le(e,o.commit.tree),a=await V(e),c=new Map(Ge(a).map(l=>[l.path,l])),f=[];for(let[l,d]of i){if(n&&!Ee(n,l))continue;let u=H(s,l);if(!await e.fs.exists(u)){f.push({path:l,status:"D",oldHash:d.hash,oldMode:d.mode});continue}let h=await e.fs.readFileBuffer(u),m=await gt("blob",h);m!==d.hash&&f.push({path:l,status:"M",oldHash:d.hash,newHash:m,oldMode:d.mode,newMode:d.mode,newFromWorkTree:!0})}for(let[l,d]of c){if(i.has(l)||n&&!Ee(n,l))continue;let u=H(s,l);if(!await e.fs.exists(u))continue;let h=await e.fs.readFileBuffer(u),m=await gt("blob",h);f.push({path:l,status:"A",newHash:m,newMode:Er(d.mode),newFromWorkTree:!0})}return f.sort((l,d)=>ve(l.path,d.path)),{items:f}}async function yg(e,t,n,r){let o;switch(n){case"stat":o=await Pg(e,t);break;case"shortstat":o=await $g(e,t);break;case"numstat":o=await Cg(e,t);break;case"name-only":o=Rg(t);break;case"name-status":o=xg(t);break;default:o=await Eg(e,t,r);break}return{stdout:o,stderr:"",exitCode:0}}async function Eg(e,t,n){let r="",o=new Set,s=await kg(e,t);for(let i of t)if(i.status==="U")if(i.combinedParentHashes){let a=await Promise.all(i.combinedParentHashes.map(async l=>l?await oe(e,l):"")),c=await Ia(e,i);if(a.some(l=>De(l))||De(c)){let l=i.combinedParentHashes.map(d=>d?X(d):"0000000");r+=`diff --cc ${i.path}
413
+ `}function dg(e,t,n){let r=e.length,o=n.map(i=>{let a=[],c=new Map,f=0;for(let l of i)if(l.type==="keep")a[l.newLineNo-1]="keep",f=l.newLineNo;else if(l.type==="insert")a[l.newLineNo-1]="insert",f=l.newLineNo;else if(l.type==="delete"){let d=c.get(f)??[];d.push({text:l.line,parentLineNo:l.oldLineNo}),c.set(f,d)}return{resultStatus:a,deletions:c}}),s=[];for(let i=0;i<=t.length;i++){let a=[];for(let f=0;f<r;f++){let l=o[f];a.push(l?.deletions.get(i)??[])}let c=ug(a,r);for(let f of c)s.push(f);if(i<t.length){let f=[],l=Array(r).fill(0);for(let d=0;d<r;d++){let h=o[d]?.resultStatus[i];if(f.push(h==="insert"?"+":" "),h==="keep"){let m=n[d];if(m){for(let p of m)if(p.type==="keep"&&p.newLineNo===i+1){l[d]=p.oldLineNo;break}}}}s.push({columns:f,text:t[i]??"",resultLineNo:i+1,parentLineNos:l})}}return s}function ug(e,t){if(!e.some(o=>o.length>0))return[];if(t===2){let o=e[0]??[],s=e[1]??[];if(o.length===0)return s.map(l=>({columns:[" ","-"],text:l.text,resultLineNo:0,parentLineNos:[0,l.parentLineNo]}));if(s.length===0)return o.map(l=>({columns:["-"," "],text:l.text,resultLineNo:0,parentLineNos:[l.parentLineNo,0]}));let i=o.map(l=>l.text),a=s.map(l=>l.text),c=ct(i,a),f=[];for(let l of c)if(l.type==="keep"){let d=o.find(h=>h.text===l.line&&h.parentLineNo===l.oldLineNo),u=s.find(h=>h.text===l.line&&h.parentLineNo===l.newLineNo);f.push({columns:["-","-"],text:l.line,resultLineNo:0,parentLineNos:[d?.parentLineNo??0,u?.parentLineNo??0]})}else if(l.type==="delete"){let d=o.find(u=>u.parentLineNo===l.oldLineNo);f.push({columns:["-"," "],text:l.line,resultLineNo:0,parentLineNos:[d?.parentLineNo??0,0]})}else if(l.type==="insert"){let d=s.find(u=>u.parentLineNo===l.newLineNo);f.push({columns:[" ","-"],text:l.line,resultLineNo:0,parentLineNos:[0,d?.parentLineNo??0]})}return f}let r=[];for(let o=0;o<t;o++){let s=e[o]??[];for(let i of s){let a=Array(t).fill(" ");a[o]="-";let c=Array(t).fill(0);c[o]=i.parentLineNo,r.push({columns:a,text:i.text,resultLineNo:0,parentLineNos:c})}}return r}function hg(e,t,n){let o=[];for(let l=0;l<e.length;l++)e[l]?.columns.some(u=>u!==" ")&&o.push(l);if(o.length===0)return[];let s=[],i=o[0]??0,a=Math.max(0,i-3),c=Math.min(e.length-1,i+3);for(let l=1;l<o.length;l++){let d=o[l]??0,u=Math.max(0,d-3),h=Math.min(e.length-1,d+3);u<=c+1||(s.push({start:a,end:c}),a=u),c=h}s.push({start:a,end:c});let f=[];for(let l of s){let d=e.slice(l.start,l.end+1),u=[];for(let E=0;E<t;E++){let k=d.filter(x=>(x.parentLineNos[E]??0)>0||x.columns[E]==="-");if(k.length===0)u.push({start:1,count:0});else{let y=k.find(P=>(P.parentLineNos[E]??0)>0)?.parentLineNos[E]??1;u.push({start:y,count:k.length})}}let h=d.filter(E=>E.resultLineNo>0),m=h[0],p=m?m.resultLineNo:1,g=h.length,w="";for(let E=p-2;E>=0;E--){let k=n[E];if(k&&/^[a-zA-Z$_]/.test(k)){w=` ${k.trimEnd().slice(0,79)}`;break}}let b=u.map(E=>`-${E.start},${E.count}`),R=`${"@".repeat(t+1)} ${b.join(" ")} +${p},${g} ${"@".repeat(t+1)}${w}`;f.push(R);for(let E of d)f.push(`${E.columns.join("")}${E.text}`)}return f}se();Ce();ie();me();function Wo(e){let t=e.indexOf("...");if(t>=0)return{type:"three-dot",left:e.slice(0,t)||"HEAD",right:e.slice(t+3)||"HEAD"};let n=e.indexOf("..");return n>=0?{type:"two-dot",left:e.slice(0,n)||"HEAD",right:e.slice(n+2)||"HEAD"}:null}Pn();ge();Ae();Je();var Sa=new TextDecoder;function Ql(e){return"exitCode"in e}function Er(e){return e.toString(8).padStart(6,"0")}function ed(e,t){let n=[];for(let r of e)n.push({path:r.path,status:r.status==="added"?"A":r.status==="deleted"?"D":"M",oldHash:r.oldHash,newHash:r.newHash,oldMode:r.oldMode,newMode:r.newMode});for(let r of t)n.push({path:r.newPath,status:"R",oldHash:r.oldHash,newHash:r.newHash,oldMode:r.oldMode,newMode:r.newMode,oldPath:r.oldPath,similarity:r.similarity});return n}function td(e,t){e.command("diff",{description:"Show changes between commits, commit and working tree, etc.",transformArgs:n=>n.map(r=>{let o=/^-U(\d+)$/.exec(r);return o?`--unified=${o[1]}`:r}),args:[q.string().name("commits").variadic().optional()],options:{cached:O().describe("Show staged changes (index vs HEAD)"),staged:O().describe("Synonym for --cached"),stat:O().describe("Show diffstat summary"),nameOnly:O().describe("Show only names of changed files"),nameStatus:O().describe("Show names and status of changed files"),shortstat:O().describe("Show only the shortstat summary line"),numstat:O().describe("Machine-readable insertions/deletions per file"),unified:Y.number().alias("U").describe("Generate diffs with <n> lines of context"),findRenames:O().alias("M").describe("Detect renames (enabled by default)"),findCopies:O().alias("C").describe("Detect copies (accepted for compatibility)"),color:O().describe("Show colored diff (accepted for compatibility)"),noColor:O().describe("Turn off colored diff (accepted for compatibility)")},handler:async(n,r,o)=>{let s=await K(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.cached||n.staged,c=n.commits,f=ut(i,r.cwd),l=o.passthrough.length>0?o.passthrough.map(g=>_e(g,f)):null,d=n.stat?"stat":n.nameOnly?"name-only":n.nameStatus?"name-status":n.shortstat?"shortstat":n.numstat?"numstat":"unified",u,h=c.length===1?Wo(c[0]):null;if(h){if(a)return S("too many arguments");h.type==="three-dot"?u=await wg(i,h.left,h.right,l):u=await Jl(i,h.left,h.right,l)}else if(c.length===2)u=await Jl(i,c[0],c[1],l);else{if(c.length>2)return S("too many arguments");a?u=await gg(i,c.length===1?c[0]:null,l):c.length===1?u=await bg(i,c[0],l):u=await mg(i,l)}if(Ql(u))return u;let m=n.unified,p=await yg(i,u.items,d,m);return u.stderr&&(p.stderr=u.stderr),p}})}async function mg(e,t){let n=Ye(e);if(n)return n;let r=await V(e),o=new Set,s=new Map,i=new Map,a=new Map;for(let l of r.entries)l.stage===0?s.set(l.path,l):(o.add(l.path),l.stage===2?i.set(l.path,l):l.stage===3&&a.set(l.path,l));let c=await bt(e,r);c.sort((l,d)=>ve(l.path,d.path));let f=[];for(let l of c){if(l.status==="untracked"||t&&!Ee(t,l.path)||o.has(l.path))continue;let d=s.get(l.path);if(!d)continue;let u=Er(d.mode),h;if(l.status==="modified"&&e.workTree){let m=H(e.workTree,l.path),p=await e.fs.readFileBuffer(m);h=await gt("blob",p)}f.push({path:l.path,status:l.status==="deleted"?"D":"M",oldHash:d.hash,newHash:h,oldMode:u,newMode:u,newFromWorkTree:l.status==="modified"})}for(let l of o){if(t&&!Ee(t,l))continue;let d=i.get(l),u=a.get(l);await pg(f,e,l,d,u)}return f.sort((l,d)=>{let u=ve(l.path,d.path);return u!==0?u:l.status==="U"&&d.status!=="U"?-1:l.status!=="U"&&d.status==="U"?1:0}),{items:f}}async function pg(e,t,n,r,o){let s=t.workTree;if(s&&r&&o){let i=Er(r.mode),a=Er(o.mode),{exists:c,hash:f}=await Xl(t.fs,s,n);e.push({path:n,status:"U",newHash:f,newMode:i,newFromWorkTree:c,combinedParentHashes:[r.hash,o.hash],combinedParentModes:[i,a]}),Zl(e,n,r.hash,i,c,f);return}if(e.push({path:n,status:"U"}),s&&r){let i=Er(r.mode),{exists:a,hash:c}=await Xl(t.fs,s,n);Zl(e,n,r.hash,i,a,c)}}async function Xl(e,t,n){let r=H(t,n);if(!await e.exists(r))return{exists:!1};let o=await cs(e,r);return{exists:!0,hash:await gt("blob",o)}}function Zl(e,t,n,r,o,s){o&&s&&s!==n?e.push({path:t,status:"M",oldHash:n,newHash:s,oldMode:r,newMode:r,newFromWorkTree:!0}):o||e.push({path:t,status:"D",oldHash:n,oldMode:r})}async function gg(e,t,n){let r=null;if(t){let u=await Me(e,t);if(M(u))return u;r=u.commit.tree}else{let u=await Z(e);u&&(r=(await j(e,u)).tree)}let o=await le(e,r),s=await V(e),i=new Set;for(let u of s.entries)u.stage>0&&i.add(u.path);let a=new Map(Ge(s).map(u=>[u.path,u])),c=[];for(let[u,h]of a){if(i.has(u))continue;let m=o.get(u);m?m.hash!==h.hash&&c.push({path:u,status:"modified",oldHash:m.hash,newHash:h.hash,oldMode:m.mode,newMode:Er(h.mode)}):c.push({path:u,status:"added",newHash:h.hash,newMode:Er(h.mode)})}for(let[u,h]of o)i.has(u)||a.has(u)||c.push({path:u,status:"deleted",oldHash:h.hash,oldMode:h.mode});let{remaining:f,renames:l}=await it(e,c),d=ed(f,l);for(let u of i)d.push({path:u,status:"U"});return d.sort((u,h)=>ve(u.path,h.path)),n?{items:d.filter(u=>Ee(n,u.path))}:{items:d}}async function Jl(e,t,n,r){let o=await Me(e,t);if(M(o))return o;let s=await Me(e,n);if(M(s))return s;let i=await Ve(e,o.commit.tree,s.commit.tree);return nd(e,i,r)}async function wg(e,t,n,r){let o=await Me(e,t);if(M(o))return o;let s=await Me(e,n);if(M(s))return s;let i=await qt(e,o.hash,s.hash);if(i.length===0)return S(`${t}...${n}: no merge base`);let a;i.length>1&&(a=`warning: ${t}...${n}: multiple merge bases, using ${i[0]}
414
+ `);let c=i[0],f=await j(e,c),l=await Ve(e,f.tree,s.commit.tree),d=await nd(e,l,r);return Ql(d)||a&&(d.stderr=a),d}async function nd(e,t,n){let{remaining:r,renames:o}=await it(e,t),s=ed(r,o);return s.sort((i,a)=>ve(i.path,a.path)),n?{items:s.filter(i=>Ee(n,i.path))}:{items:s}}async function bg(e,t,n){let r=Ye(e);if(r)return r;let o=await Me(e,t);if(M(o))return o;let s=e.workTree,i=await le(e,o.commit.tree),a=await V(e),c=new Map(Ge(a).map(l=>[l.path,l])),f=[];for(let[l,d]of i){if(n&&!Ee(n,l))continue;let u=H(s,l);if(!await e.fs.exists(u)){f.push({path:l,status:"D",oldHash:d.hash,oldMode:d.mode});continue}let h=await e.fs.readFileBuffer(u),m=await gt("blob",h);m!==d.hash&&f.push({path:l,status:"M",oldHash:d.hash,newHash:m,oldMode:d.mode,newMode:d.mode,newFromWorkTree:!0})}for(let[l,d]of c){if(i.has(l)||n&&!Ee(n,l))continue;let u=H(s,l);if(!await e.fs.exists(u))continue;let h=await e.fs.readFileBuffer(u),m=await gt("blob",h);f.push({path:l,status:"A",newHash:m,newMode:Er(d.mode),newFromWorkTree:!0})}return f.sort((l,d)=>ve(l.path,d.path)),{items:f}}async function yg(e,t,n,r){let o;switch(n){case"stat":o=await Pg(e,t);break;case"shortstat":o=await $g(e,t);break;case"numstat":o=await Cg(e,t);break;case"name-only":o=Rg(t);break;case"name-status":o=xg(t);break;default:o=await Eg(e,t,r);break}return{stdout:o,stderr:"",exitCode:0}}async function Eg(e,t,n){let r="",o=new Set,s=await kg(e,t);for(let i of t)if(i.status==="U")if(i.combinedParentHashes){let a=await Promise.all(i.combinedParentHashes.map(async l=>l?await oe(e,l):"")),c=await Ia(e,i);if(a.some(l=>je(l))||je(c)){let l=i.combinedParentHashes.map(d=>d?X(d):"0000000");r+=`diff --cc ${i.path}
413
415
  index ${l.join(",")}..0000000
414
416
  Binary files differ
415
417
  `,o.add(i.path)}else{let l=Bo({path:i.path,parentHashes:i.combinedParentHashes,parentModes:i.combinedParentModes??[],parentContents:a,resultHash:null,resultMode:i.newMode??null,resultContent:c});l?(r+=l,o.add(i.path)):r+=`* Unmerged path ${i.path}
@@ -418,19 +420,19 @@ Binary files differ
418
420
  `;return t}function xg(e){let t="";for(let n of e)if(n.status==="R"){let r=String(n.similarity??100).padStart(3,"0");t+=`R${r} ${n.oldPath} ${n.path}
419
421
  `}else t+=`${n.status} ${n.path}
420
422
  `;return t}async function Cg(e,t){let n="";for(let r of t){if(r.status==="U"){n+=`0 0 ${r.path}
421
- `;continue}let o=r.oldHash?await oe(e,r.oldHash):"",s=await Ia(e,r),i=De(o)||De(s),a,c;if(i)a="-",c="-";else{let{ins:f,del:l}=rd(o,s);a=String(f),c=String(l)}if(r.status==="R"&&r.oldPath){let f=mn(r.oldPath,r.path);n+=`${a} ${c} ${f}
423
+ `;continue}let o=r.oldHash?await oe(e,r.oldHash):"",s=await Ia(e,r),i=je(o)||je(s),a,c;if(i)a="-",c="-";else{let{ins:f,del:l}=rd(o,s);a=String(f),c=String(l)}if(r.status==="R"&&r.oldPath){let f=pn(r.oldPath,r.path);n+=`${a} ${c} ${f}
422
424
  `}else n+=`${a} ${c} ${r.path}
423
- `}return n}async function Pg(e,t){let n=await sd(e,t);return pr(n)}async function $g(e,t){let n=await sd(e,t);if(n.length===0)return"";let r=0,o=0,s=0;for(let a of n)a.isUnmerged||(s++,r+=a.insertions,o+=a.deletions);let i=Qn(s,r,o);return i?`${i}
425
+ `}return n}async function Pg(e,t){let n=await sd(e,t);return pr(n)}async function $g(e,t){let n=await sd(e,t);if(n.length===0)return"";let r=0,o=0,s=0;for(let a of n)a.isUnmerged||(s++,r+=a.insertions,o+=a.deletions);let i=er(s,r,o);return i?`${i}
424
426
  `:n.some(a=>a.isUnmerged)?` 0 files changed
425
- `:""}async function Ia(e,t){if(!t.newHash)return"";if(t.newFromWorkTree&&e.workTree){let n=H(e.workTree,t.path),r=await cs(e.fs,n);return Sa.decode(r)}return oe(e,t.newHash)}async function Og(e,t){if(!t.newHash)return new Uint8Array(0);if(t.newFromWorkTree&&e.workTree){let n=H(e.workTree,t.path);return cs(e.fs,n)}return $t(e,t.newHash)}function rd(e,t){let n=xt(e),r=xt(t),o=ct(n,r),s=0,i=0;for(let a of o)a.type==="insert"?s++:a.type==="delete"&&i++;return{ins:s,del:i}}async function sd(e,t){let n=[];for(let r of t){if(r.status==="U"){n.push({path:r.path,sortKey:r.path,insertions:0,deletions:0,isUnmerged:!0});continue}let o=r.status==="R"&&r.oldPath?mn(r.oldPath,r.path):r.path,s=r.oldHash?await $t(e,r.oldHash):new Uint8Array(0),i=await Og(e,r);if(jn(s)||jn(i))n.push({path:o,sortKey:r.path,insertions:0,deletions:0,isBinary:!0,oldSize:s.byteLength,newSize:i.byteLength});else{let a=Sa.decode(s),c=Sa.decode(i),{ins:f,del:l}=rd(a,c);n.push({path:o,sortKey:r.path,insertions:f,deletions:l})}}return n}se();Ue();se();ie();Be();ge();async function Ko(e,t){return t.depth!==void 0&&t.unshallow?S("--depth and --unshallow cannot be used together"):t.unshallow&&!await xl(e)?S("--unshallow on a complete repository does not make sense"):{depth:t.unshallow?ba:t.depth}}async function zo(e,t,n,r=S){try{let o=await Uo(e,t,n);return o||r(`'${t}' does not appear to be a git repository`)}catch(o){let s=o instanceof Error?o.message:"";if(s.startsWith("network"))return r(s);throw o}}async function Ss(e){let n=(await ye(e)).map(o=>o.hash),r=await U(e,"HEAD");return r&&n.push(r),n}async function Vo(e,t){let n=t!==void 0?await jo(e):void 0;return{existingShallows:n,shallowOpts:t!==void 0?{depth:t,existingShallows:n}:void 0}}async function Yo(e){let{gitCtx:t,transport:n,remoteRefs:r,ident:o,reflogAction:s}=e,i=[];for(let f of r){if(!f.name.startsWith("refs/tags/")||await U(t,f.name))continue;let l=f.peeledHash??f.hash;await wt(t,l)&&i.push(f)}let a=[];for(let f of i)f.peeledHash&&!await wt(t,f.hash)&&a.push(f.hash);a.length>0&&await n.fetch(a,await Ss(t));let c=[];for(let f of i)await J(t,f.name,f.hash),await st(t,f.name,{oldHash:ne,newHash:f.hash,name:o.name,email:o.email,timestamp:o.timestamp,tz:o.tz,message:`${s}: storing head`}),c.push({prefix:" * [new tag]",from:Gt(f.name),to:Gt(f.name)});return c}rr();me();Be();ge();function kr(e){let t=e,n=!1;t.startsWith("+")&&(n=!0,t=t.slice(1));let r=t.indexOf(":");return r===-1?{force:n,src:t,dst:t}:{force:n,src:t.slice(0,r),dst:t.slice(r+1)}}function Sg(e,t){let n=e.indexOf("*");if(n===-1)return e===t;let r=e.slice(0,n),o=e.slice(n+1);return t.startsWith(r)&&t.endsWith(o)&&t.length>=r.length+o.length}function Is(e,t){if(!Sg(e.src,t))return null;let n=e.src.indexOf("*"),r=e.dst.indexOf("*");if(n===-1)return e.dst;let o=e.src.slice(0,n),s=e.src.slice(n+1),i=s.length>0?t.length-s.length:t.length,a=t.slice(o.length,i);return r===-1?e.dst:e.dst.slice(0,r)+a+e.dst.slice(r+1)}function id(e,t){e.command("fetch",{description:"Download objects and refs from another repository",args:[K.string().name("remote").describe("Remote to fetch from").optional(),K.string().name("refspec").describe("Refspec(s) to fetch").optional().variadic()],options:{all:O().describe("Fetch from all remotes"),prune:O().alias("p").describe("Remove stale remote-tracking refs"),tags:O().describe("Also fetch tags"),depth:Y.number().describe("Limit fetching to the specified number of commits"),unshallow:O().describe("Convert a shallow repository to a complete one")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await Ko(s,n);if(M(i))return i;let{depth:a}=i;if(n.all){if(n.remote)return S("fetch --all does not take a remote argument");let f=await pe(s),l=[];for(let h of Object.keys(f)){let m=h.match(/^remote "(.+)"$/);m?.[1]&&l.push(m[1])}if(l.length===0)return{stdout:"",stderr:"",exitCode:0};let d=[],u=0;for(let h of l){let m=await od(s,h,void 0,n.prune,n.tags,r.env,t,a);m.stderr&&d.push(m.stderr),m.exitCode!==0&&(u=m.exitCode)}return{stdout:"",stderr:d.join(""),exitCode:u}}let c=n.remote||"origin";return od(s,c,n.refspec,n.prune,n.tags,r.env,t,a)}})}function Ig(e,t){return!e||e.length===0?[t]:e.map(n=>{let r=kr(n);if(n.includes(":"))return r;for(let o of[r.src,`refs/heads/${r.src}`,`refs/tags/${r.src}`]){let s=Is(t,o);if(s!==null)return{force:r.force||t.force,src:o,dst:s}}return r})}function Tg(e,t){let n=[],r=new Set,o=[],s=new Array(t.length).fill(!1);for(let i of e)if(i.name!=="HEAD")for(let[a,c]of t.entries()){let f=Is(c,i.name);if(f!==null){s[a]=!0,o.push({remote:i,localRef:f,force:c.force}),r.has(i.hash)||(r.add(i.hash),n.push(i.hash));break}}return{wants:n,refUpdates:o,matchedSpecs:s}}function vg(e,t,n){if(!e||e.length===0)return null;for(let[r,o]of t.entries())if(!n[r]&&!o.src.includes("*"))return S(`couldn't find remote ref ${o.src}`);return null}async function Hg(e,t,n,r){let o=[],s=!1,i=[],a=[];for(let f of t){let l=await U(e,f.localRef);if(r&&f.remote.name.startsWith("refs/tags/")&&l&&l!==f.remote.hash){s=!0,a.push({prefix:" ! [rejected]",from:Gt(f.remote.name),to:Gt(f.localRef),suffix:" (would clobber existing tag)"});continue}i.push({...f,oldHash:l}),f.localRef.startsWith("refs/tags/")&&a.push({update:f,oldHash:l}),await J(e,f.localRef,f.remote.hash),await st(e,f.localRef,{oldHash:l??ne,newHash:f.remote.hash,name:n.name,email:n.email,timestamp:n.timestamp,tz:n.tz,message:l?"fetch":"fetch: storing head"})}let c=i.filter(f=>!f.localRef.startsWith("refs/tags/"));o.push(...us(c,Gt,X));for(let f of a){if("prefix"in f){o.push(f);continue}o.push(...us([{...f.update,oldHash:f.oldHash}],Gt,X))}return{refLines:o,hadTagRejection:s,appliedUpdates:i}}async function od(e,t,n,r,o,s,i,a){let c=await zo(e,t,s);if(M(c))return c;let{transport:f,config:l}=c,d=kr(l.fetchRefspec),u=Ig(n,d),h=await i?.hooks?.preFetch?.({repo:e,remote:t,url:l.url,refspecs:u.map(T=>`${T.src}:${T.dst}`),prune:r,tags:o});if(de(h))return{stdout:"",stderr:h.message??"",exitCode:1};let m=await f.advertiseRefs();if(m.length===0){if(n&&n.length>0){for(let T of u)if(!T.src.includes("*"))return S(`couldn't find remote ref ${T.src}`)}return{stdout:"",stderr:"",exitCode:0}}let{wants:p,refUpdates:g,matchedSpecs:w}=Tg(m,u),b=vg(n,u,w);if(b)return b;let k=new Set(p);if(o)for(let T of m)T.name.startsWith("refs/tags/")&&(g.push({remote:T,localRef:T.name,force:!1}),k.has(T.hash)||(k.add(T.hash),p.push(T.hash)));let E=await Ss(e),R=new Set(E),x=p.filter(T=>!R.has(T)),{existingShallows:y,shallowOpts:C}=await Vo(e,a),P=x.length>0?x:C?p:[];if(P.length>0){let T=await f.fetch(P,E,C);T.shallowUpdates&&await Fr(e,T.shallowUpdates,y)}let D=await Hn(e,s),{refLines:A,hadTagRejection:$,appliedUpdates:v}=await Hg(e,g,D,o);if(o||A.push(...await Yo({gitCtx:e,transport:f,remoteRefs:m,ident:D,reflogAction:"fetch"})),r){let T=`refs/remotes/${t}`,L=await ye(e,T),W=new Set(m.filter(N=>N.name.startsWith("refs/heads/")).map(N=>N.name.slice(11)));for(let N of L){if((await e.refStore.readRef(N.name))?.type==="symbolic")continue;let ee=N.name.slice(T.length+1);ee!=="HEAD"&&(W.has(ee)||(await he(e,N.name),A.push({prefix:" - [deleted]",from:"(none)",to:`${t}/${ee}`})))}}let _=m.find(T=>T.name==="HEAD");if(_){let T=H(e.gitDir,"FETCH_HEAD"),L=m.find(N=>N.name.startsWith("refs/heads/")&&N.hash===_.hash),W=L?`branch '${L.name.slice(11)}' of`:"of";await e.fs.writeFile(T,`${_.hash} ${W} ${l.url}
426
- `),(!n||n.length===0)&&await vr(e,t,m,f.headTarget)}let I={stdout:"",stderr:A.length>0?`From ${l.url}
427
- ${Dr(A,10)}`:"",exitCode:$?1:0};return await i?.hooks?.postFetch?.({repo:e,remote:t,url:l.url,updatedRefCount:v.length}),I}se();Ce();ie();me();Be();ge();Zs();Sr();me();async function Ag(e,t){let n=new Set,r=H(e.gitDir,"objects","pack");try{let s=await e.fs.readdir(r);for(let i of s){if(!i.endsWith(".idx"))continue;let a=await e.fs.readFileBuffer(H(r,i)),c=new Yt(a);for(let f of c.allHashes())n.add(f)}}catch{}return n.size===0?Ur(await _r(e,t,[])):(await Ur(await _r(e,t,[]))).filter(s=>!n.has(s.hash))}async function Xo(e){let{gitCtx:t,fs:n,tips:r,cleanup:o}=e,s=e.window??10,i=e.depth??50;if(r.length===0)return null;let a=e.all?await Ur(await _r(t,r,[])):await Ag(t,r);if(a.length===0)return null;let c=a.length,f=No(a,{window:s,depth:i}),l=f.filter(x=>x.delta).length,d=f.map(x=>({hash:x.hash,type:x.type,content:x.content,delta:x.delta,deltaBaseHash:x.deltaBase})),{data:u,entries:h}=await Xs(d),m=await Wc(u,h),p=u.subarray(u.byteLength-20),g="";for(let x=0;x<20;x++){let y=p[x];g+=(y>>4).toString(16)+(y&15).toString(16)}let w=H(t.gitDir,"objects","pack");await n.mkdir(w,{recursive:!0});let b=`pack-${g}`,k=H(w,`${b}.pack`),E=H(w,`${b}.idx`);await n.writeFile(k,u),await n.writeFile(E,m);let R=new Set(f.map(x=>x.hash));if(t.objectStore.invalidatePacks?.(),o){let x=await n.readdir(w);for(let P of x){if(!P.endsWith(".idx"))continue;let D=P.slice(0,-4);if(D===b)continue;let A=H(w,`${D}.idx`),$=!0;try{let v=await n.readFileBuffer(A),_=new Yt(v);for(let G of _.allHashes())if(!R.has(G)){$=!1;break}}catch{$=!1}if($){try{await n.rm(H(w,`${D}.pack`))}catch{}try{await n.rm(A)}catch{}}}let y=H(t.gitDir,"objects"),C;try{C=await n.readdir(y)}catch{C=[]}for(let P of C){if(P==="pack"||P==="info"||P.length!==2)continue;let D=H(y,P),A;try{A=await n.readdir(D)}catch{continue}for(let $ of A){let v=`${P}${$}`;R.has(v)&&await n.rm(H(D,$))}try{(await n.readdir(D)).length===0&&await n.rm(D,{recursive:!0})}catch{}}}return{totalCount:c,deltaCount:l,packHash:g}}function Zo(e,t,n=!1){let r=e-t,o=[`Enumerating objects: ${e}, done.`];return n&&o.push(`Counting objects: 100% (${e}/${e}), done.`),o.push("Delta compression using 1 thread.",`Compressing objects: 100% (${r}/${e}), done.`,`Writing objects: 100% (${e}/${e}), done.`,`Total ${e} (delta ${t}), reused 0 (delta 0), pack-reused 0`),o.join(`
428
- `)}function ad(e,t){e.command("gc",{description:"Cleanup unnecessary files and optimize the local repository",options:{aggressive:O().describe("More aggressively optimize the repository")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;await ef(s),await Et(s);let i=await Mg(s);if(i.length>0){let a=n.aggressive?250:10,c=n.aggressive?250:50,f=await Xo({gitCtx:s,fs:r.fs,tips:i,window:a,depth:c,cleanup:!0,all:!0});if(f)return{stdout:"",stderr:`${Zo(f.totalCount,f.deltaCount,!0)}
429
- `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}})}var Dg=2160*60*60;async function Mg(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await ye(e,"refs");for(let f of r)t.add(f.hash);let s=Math.floor(Date.now()/1e3)-Dg,i=H(e.gitDir,"logs");await e.fs.exists(i)&&await cd(e,i,i,s,t);let a=await V(e);for(let f of a.entries)t.add(f.hash);for(let f of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let l=await U(e,f);l&&t.add(l)}let c=[];for(let f of t)await wt(e,f)&&c.push(f);return c}async function cd(e,t,n,r,o){let s=await e.fs.readdir(t);for(let i of s){let a=H(t,i),c=await e.fs.stat(a);if(c.isDirectory){await cd(e,a,n,r,o);try{(await e.fs.readdir(a)).length===0&&await e.fs.rm(a,{recursive:!0})}catch{}}else if(c.isFile){let f=a.slice(n.length+1),l=await et(e,f);if(f==="refs/stash"){for(let u of l)u.newHash!==ne&&o.add(u.newHash);continue}let d=l.filter(u=>u.timestamp>=r);await Fn(e,f,d);for(let u of d)u.newHash!==ne&&o.add(u.newHash)}}}se();function jg(e){let t=Math.min(e.length,8e3),n=0;for(let r=0;r<t;r++)e.charCodeAt(r)===0&&n++;return n>t*.01}function fd(e,t,n,r){if(jg(e)){let i=t.some(a=>a.test(e));return{matches:[],binary:i}}let o=e.split(`
430
- `);if(o.length>0&&o[o.length-1]===""&&o.pop(),n&&t.length>1&&!t.every(a=>o.some(c=>a.test(c))))return{matches:[],binary:!1};let s=[];for(let i=0;i<o.length;i++){let a=o[i],c=t.some(f=>f.test(a));(r?!c:c)&&s.push({lineNo:i+1,line:a})}return{matches:s,binary:!1}}function Lg(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ld(e,t){let n=t?.fixed?Lg(e):e;t?.wordRegexp&&(n=`\\b${n}\\b`);let r=t?.ignoreCase?"i":"";try{return new RegExp(n,r)}catch{return null}}Ce();ie();me();Ae();async function Gg(e){let t=await V(e),n=new Set,r=[];for(let o of t.entries){if(o.stage!==0||n.has(o.path))continue;n.add(o.path);let s=H(e.workTree,o.path);r.push({path:o.path,getContent:async()=>{try{return await e.fs.readFile(s)}catch{return""}}})}return r}async function Ng(e){let t=await V(e),n=new Set,r=[];for(let o of t.entries){if(o.stage!==0||n.has(o.path))continue;n.add(o.path);let s=o.hash;r.push({path:o.path,getContent:()=>oe(e,s)})}return r}async function Fg(e,t){return(await qe(e,t)).filter(r=>!r.mode.startsWith("120")).map(r=>({path:r.path,getContent:()=>oe(e,r.hash)}))}function _g(e){let t=0;for(let n=0;n<e.length;n++)e[n]==="/"&&t++;return t}function Ug(e,t,n){return n||t===""?e:rt(t,e)}function dd(e,t){e.command("grep",{description:"Print lines matching a pattern",args:[K.string().name("args").variadic().optional()],options:{cached:O().describe("Search blobs registered in the index"),lineNumber:O().alias("n").describe("Prefix the line number to matching lines"),filesWithMatches:O().alias("l").describe("Show only filenames"),filesWithoutMatch:O().alias("L").describe("Show only filenames without matches"),count:O().alias("c").describe("Show count of matching lines per file"),ignoreCase:O().alias("i").describe("Case insensitive matching"),wordRegexp:O().alias("w").describe("Match whole words only"),invertMatch:O().alias("v").describe("Invert the sense of matching"),fixedStrings:O().alias("F").describe("Interpret pattern as fixed string"),extendedRegexp:O().alias("E").describe("Interpret pattern as extended regexp"),basicRegexp:O().alias("G").describe("Interpret pattern as basic regexp"),suppressFilename:O().alias("h").describe("Suppress filename prefix"),forceFilename:O().alias("H").describe("Force filename prefix"),fullName:O().describe("Force paths to be output relative to project top"),quiet:O().alias("q").describe("Do not output matched lines; exit with status 0 on match"),allMatch:O().describe("Require all patterns to match in a file"),maxDepth:Y.number().describe("Descend at most <n> levels of directories"),maxCount:Y.number().alias("m").describe("Maximum number of matches per file"),afterContext:Y.number().alias("A").describe("Show <n> lines after match"),beforeContext:Y.number().alias("B").describe("Show <n> lines before match"),context:Y.number().alias("C").describe("Show <n> lines before and after match"),heading:O().describe("Show filename above matches"),break:O().describe("Print empty line between results from different files"),pattern:Y.string().alias("e").repeatable().describe("Match <pattern>")},handler:async(n,r,o)=>{let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.args??[],c=o.passthrough??[],f=n.pattern,l=[],d=0;if(f.length===0){if(a.length===0)return S("no pattern given");f.push(a[d++])}for(;d<a.length;d++)l.push(a[d]);let u=[];for(let W of f){let N=ld(W,{fixed:!!n.fixedStrings,ignoreCase:!!n.ignoreCase,wordRegexp:!!n.wordRegexp});if(!N)return S(`command line, '${W}': invalid regular expression`);u.push(N)}let h=[];if(l.length>0)for(let W of l){let N=await yt(i,W);if(M(N))return N;let B;try{B=await Te(i,N)}catch{return S(`bad revision '${W}'`)}let ee=await j(i,B),z=await Fg(i,ee.tree);h.push({prefix:`${W}:`,files:z})}else if(n.cached)h.push({prefix:"",files:await Ng(i)});else{if(!i.workTree)return S("this operation must be run in a work tree");h.push({prefix:"",files:await Gg(i)})}let m=ut(i,r.cwd),p=null;c.length>0&&(p=c.map(W=>_e(W,m)));let g=n.maxDepth,w=n.maxCount,b=!!(n.lineNumber||n.afterContext!=null||n.beforeContext!=null||n.context!=null),k=!!n.filesWithMatches,E=!!n.filesWithoutMatch,R=!!n.count,x=!!n.quiet,y=!!n.heading,C=!!n.break,P=!!n.suppressFilename,D=!!n.invertMatch,A=!!n.allMatch,$=n.context??n.afterContext??0,v=n.context??n.beforeContext??0,_=$>0||v>0,G=[],I=!1,T=!0;for(let W of h){let N=W.files.slice().sort((B,ee)=>B.path<ee.path?-1:B.path>ee.path?1:0);for(let B of N){if(p&&!Ee(p,B.path)||g!==void 0&&_g(B.path)>g)continue;let ee=await B.getContent(),z=fd(ee,u,A,D),Q=Ug(B.path,m,!!n.fullName),Re=W.prefix;if(z.binary){if(I=!0,x)return{stdout:"",stderr:"",exitCode:0};k?G.push(`${Re}${Q}`):!E&&!R&&G.push(`Binary file ${Re}${Q} matches`);continue}if(z.matches.length===0){E&&G.push(`${Re}${Q}`);continue}if(I=!0,x)return{stdout:"",stderr:"",exitCode:0};if(E)continue;if(k){G.push(`${Re}${Q}`);continue}if(R){let ce=w!==void 0?Math.min(z.matches.length,w):z.matches.length;G.push(`${Re}${Q}:${ce}`);continue}let Ne=z.matches;if(w!==void 0&&(Ne=Ne.slice(0,w)),_)Bg(G,ee,Ne,Re,Q,P,v,$,y,C,T);else if(y){!T&&C&&G.push(""),G.push(`${Re}${Q}`);for(let ce of Ne)b?G.push(`${ce.lineNo}:${ce.line}`):G.push(ce.line)}else{!T&&C&&G.push("");for(let ce of Ne){let Se=P?"":`${Re}${Q}:`;b?G.push(`${Se}${ce.lineNo}:${ce.line}`):G.push(`${Se}${ce.line}`)}}T=!1}}return x?{stdout:"",stderr:"",exitCode:I?0:1}:{stdout:G.length>0?`${G.join(`
427
+ `:""}async function Ia(e,t){if(!t.newHash)return"";if(t.newFromWorkTree&&e.workTree){let n=H(e.workTree,t.path),r=await cs(e.fs,n);return Sa.decode(r)}return oe(e,t.newHash)}async function Og(e,t){if(!t.newHash)return new Uint8Array(0);if(t.newFromWorkTree&&e.workTree){let n=H(e.workTree,t.path);return cs(e.fs,n)}return $t(e,t.newHash)}function rd(e,t){let n=xt(e),r=xt(t),o=ct(n,r),s=0,i=0;for(let a of o)a.type==="insert"?s++:a.type==="delete"&&i++;return{ins:s,del:i}}async function sd(e,t){let n=[];for(let r of t){if(r.status==="U"){n.push({path:r.path,sortKey:r.path,insertions:0,deletions:0,isUnmerged:!0});continue}let o=r.status==="R"&&r.oldPath?pn(r.oldPath,r.path):r.path,s=r.oldHash?await $t(e,r.oldHash):new Uint8Array(0),i=await Og(e,r);if(Nn(s)||Nn(i))n.push({path:o,sortKey:r.path,insertions:0,deletions:0,isBinary:!0,oldSize:s.byteLength,newSize:i.byteLength});else{let a=Sa.decode(s),c=Sa.decode(i),{ins:f,del:l}=rd(a,c);n.push({path:o,sortKey:r.path,insertions:f,deletions:l})}}return n}se();Ue();se();ie();Be();ge();async function Ko(e,t){return t.depth!==void 0&&t.unshallow?S("--depth and --unshallow cannot be used together"):t.unshallow&&!await xl(e)?S("--unshallow on a complete repository does not make sense"):{depth:t.unshallow?ba:t.depth}}async function zo(e,t,n,r=S){try{let o=await Uo(e,t,n);return o||r(`'${t}' does not appear to be a git repository`)}catch(o){let s=o instanceof Error?o.message:"";if(s.startsWith("network"))return r(s);throw o}}async function Ss(e){let n=(await ye(e)).map(o=>o.hash),r=await U(e,"HEAD");return r&&n.push(r),n}async function Vo(e,t){let n=t!==void 0?await jo(e):void 0;return{existingShallows:n,shallowOpts:t!==void 0?{depth:t,existingShallows:n}:void 0}}async function Yo(e){let{gitCtx:t,transport:n,remoteRefs:r,ident:o,reflogAction:s}=e,i=[];for(let f of r){if(!f.name.startsWith("refs/tags/")||await U(t,f.name))continue;let l=f.peeledHash??f.hash;await wt(t,l)&&i.push(f)}let a=[];for(let f of i)f.peeledHash&&!await wt(t,f.hash)&&a.push(f.hash);a.length>0&&await n.fetch(a,await Ss(t));let c=[];for(let f of i)await J(t,f.name,f.hash),await st(t,f.name,{oldHash:ne,newHash:f.hash,name:o.name,email:o.email,timestamp:o.timestamp,tz:o.tz,message:`${s}: storing head`}),c.push({prefix:" * [new tag]",from:Gt(f.name),to:Gt(f.name)});return c}sr();me();Be();ge();function kr(e){let t=e,n=!1;t.startsWith("+")&&(n=!0,t=t.slice(1));let r=t.indexOf(":");return r===-1?{force:n,src:t,dst:t}:{force:n,src:t.slice(0,r),dst:t.slice(r+1)}}function Sg(e,t){let n=e.indexOf("*");if(n===-1)return e===t;let r=e.slice(0,n),o=e.slice(n+1);return t.startsWith(r)&&t.endsWith(o)&&t.length>=r.length+o.length}function Is(e,t){if(!Sg(e.src,t))return null;let n=e.src.indexOf("*"),r=e.dst.indexOf("*");if(n===-1)return e.dst;let o=e.src.slice(0,n),s=e.src.slice(n+1),i=s.length>0?t.length-s.length:t.length,a=t.slice(o.length,i);return r===-1?e.dst:e.dst.slice(0,r)+a+e.dst.slice(r+1)}function id(e,t){e.command("fetch",{description:"Download objects and refs from another repository",args:[q.string().name("remote").describe("Remote to fetch from").optional(),q.string().name("refspec").describe("Refspec(s) to fetch").optional().variadic()],options:{all:O().describe("Fetch from all remotes"),prune:O().alias("p").describe("Remove stale remote-tracking refs"),tags:O().describe("Also fetch tags"),depth:Y.number().describe("Limit fetching to the specified number of commits"),unshallow:O().describe("Convert a shallow repository to a complete one")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await Ko(s,n);if(M(i))return i;let{depth:a}=i;if(n.all){if(n.remote)return S("fetch --all does not take a remote argument");let f=await pe(s),l=[];for(let h of Object.keys(f)){let m=h.match(/^remote "(.+)"$/);m?.[1]&&l.push(m[1])}if(l.length===0)return{stdout:"",stderr:"",exitCode:0};let d=[],u=0;for(let h of l){let m=await od(s,h,void 0,n.prune,n.tags,r.env,t,a);m.stderr&&d.push(m.stderr),m.exitCode!==0&&(u=m.exitCode)}return{stdout:"",stderr:d.join(""),exitCode:u}}let c=n.remote||"origin";return od(s,c,n.refspec,n.prune,n.tags,r.env,t,a)}})}function Ig(e,t){return!e||e.length===0?[t]:e.map(n=>{let r=kr(n);if(n.includes(":"))return r;for(let o of[r.src,`refs/heads/${r.src}`,`refs/tags/${r.src}`]){let s=Is(t,o);if(s!==null)return{force:r.force||t.force,src:o,dst:s}}return r})}function Tg(e,t){let n=[],r=new Set,o=[],s=new Array(t.length).fill(!1);for(let i of e)if(i.name!=="HEAD")for(let[a,c]of t.entries()){let f=Is(c,i.name);if(f!==null){s[a]=!0,o.push({remote:i,localRef:f,force:c.force}),r.has(i.hash)||(r.add(i.hash),n.push(i.hash));break}}return{wants:n,refUpdates:o,matchedSpecs:s}}function vg(e,t,n){if(!e||e.length===0)return null;for(let[r,o]of t.entries())if(!n[r]&&!o.src.includes("*"))return S(`couldn't find remote ref ${o.src}`);return null}async function Hg(e,t,n,r){let o=[],s=!1,i=[],a=[];for(let f of t){let l=await U(e,f.localRef);if(r&&f.remote.name.startsWith("refs/tags/")&&l&&l!==f.remote.hash){s=!0,a.push({prefix:" ! [rejected]",from:Gt(f.remote.name),to:Gt(f.localRef),suffix:" (would clobber existing tag)"});continue}i.push({...f,oldHash:l}),f.localRef.startsWith("refs/tags/")&&a.push({update:f,oldHash:l}),await J(e,f.localRef,f.remote.hash),await st(e,f.localRef,{oldHash:l??ne,newHash:f.remote.hash,name:n.name,email:n.email,timestamp:n.timestamp,tz:n.tz,message:l?"fetch":"fetch: storing head"})}let c=i.filter(f=>!f.localRef.startsWith("refs/tags/"));o.push(...us(c,Gt,X));for(let f of a){if("prefix"in f){o.push(f);continue}o.push(...us([{...f.update,oldHash:f.oldHash}],Gt,X))}return{refLines:o,hadTagRejection:s,appliedUpdates:i}}async function od(e,t,n,r,o,s,i,a){let c=await zo(e,t,s);if(M(c))return c;let{transport:f,config:l}=c,d=kr(l.fetchRefspec),u=Ig(n,d),h=await i?.hooks?.preFetch?.({repo:e,remote:t,url:l.url,refspecs:u.map(T=>`${T.src}:${T.dst}`),prune:r,tags:o});if(de(h))return{stdout:"",stderr:h.message??"",exitCode:1};let m=await f.advertiseRefs();if(m.length===0){if(n&&n.length>0){for(let T of u)if(!T.src.includes("*"))return S(`couldn't find remote ref ${T.src}`)}return{stdout:"",stderr:"",exitCode:0}}let{wants:p,refUpdates:g,matchedSpecs:w}=Tg(m,u),b=vg(n,u,w);if(b)return b;let R=new Set(p);if(o)for(let T of m)T.name.startsWith("refs/tags/")&&(g.push({remote:T,localRef:T.name,force:!1}),R.has(T.hash)||(R.add(T.hash),p.push(T.hash)));let E=await Ss(e),k=new Set(E),x=p.filter(T=>!k.has(T)),{existingShallows:y,shallowOpts:P}=await Vo(e,a),C=x.length>0?x:P?p:[];if(C.length>0){let T=await f.fetch(C,E,P);T.shallowUpdates&&await Fr(e,T.shallowUpdates,y)}let A=await Mn(e,s),{refLines:D,hadTagRejection:$,appliedUpdates:v}=await Hg(e,g,A,o);if(o||D.push(...await Yo({gitCtx:e,transport:f,remoteRefs:m,ident:A,reflogAction:"fetch"})),r){let T=`refs/remotes/${t}`,G=await ye(e,T),W=new Set(m.filter(F=>F.name.startsWith("refs/heads/")).map(F=>F.name.slice(11)));for(let F of G){if((await e.refStore.readRef(F.name))?.type==="symbolic")continue;let ee=F.name.slice(T.length+1);ee!=="HEAD"&&(W.has(ee)||(await he(e,F.name),D.push({prefix:" - [deleted]",from:"(none)",to:`${t}/${ee}`})))}}let N=m.find(T=>T.name==="HEAD");if(N){let T=H(e.gitDir,"FETCH_HEAD"),G=m.find(F=>F.name.startsWith("refs/heads/")&&F.hash===N.hash),W=G?`branch '${G.name.slice(11)}' of`:"of";await e.fs.writeFile(T,`${N.hash} ${W} ${l.url}
428
+ `),(!n||n.length===0)&&await vr(e,t,m,f.headTarget)}let I={stdout:"",stderr:D.length>0?`From ${l.url}
429
+ ${Dr(D,10)}`:"",exitCode:$?1:0};return await i?.hooks?.postFetch?.({repo:e,remote:t,url:l.url,updatedRefCount:v.length}),I}se();Ce();ie();me();Be();ge();Zs();Sr();me();async function Ag(e,t){let n=new Set,r=H(e.gitDir,"objects","pack");try{let s=await e.fs.readdir(r);for(let i of s){if(!i.endsWith(".idx"))continue;let a=await e.fs.readFileBuffer(H(r,i)),c=new Xt(a);for(let f of c.allHashes())n.add(f)}}catch{}return n.size===0?Ur(await _r(e,t,[])):(await Ur(await _r(e,t,[]))).filter(s=>!n.has(s.hash))}async function Xo(e){let{gitCtx:t,fs:n,tips:r,cleanup:o}=e,s=e.window??10,i=e.depth??50;if(r.length===0)return null;let a=e.all?await Ur(await _r(t,r,[])):await Ag(t,r);if(a.length===0)return null;let c=a.length,f=No(a,{window:s,depth:i}),l=f.filter(x=>x.delta).length,d=f.map(x=>({hash:x.hash,type:x.type,content:x.content,delta:x.delta,deltaBaseHash:x.deltaBase})),{data:u,entries:h}=await Xs(d),m=await Wc(u,h),p=u.subarray(u.byteLength-20),g="";for(let x=0;x<20;x++){let y=p[x];g+=(y>>4).toString(16)+(y&15).toString(16)}let w=H(t.gitDir,"objects","pack");await n.mkdir(w,{recursive:!0});let b=`pack-${g}`,R=H(w,`${b}.pack`),E=H(w,`${b}.idx`);await n.writeFile(R,u),await n.writeFile(E,m);let k=new Set(f.map(x=>x.hash));if(t.objectStore.invalidatePacks?.(),o){let x=await n.readdir(w);for(let C of x){if(!C.endsWith(".idx"))continue;let A=C.slice(0,-4);if(A===b)continue;let D=H(w,`${A}.idx`),$=!0;try{let v=await n.readFileBuffer(D),N=new Xt(v);for(let L of N.allHashes())if(!k.has(L)){$=!1;break}}catch{$=!1}if($){try{await n.rm(H(w,`${A}.pack`))}catch{}try{await n.rm(D)}catch{}}}let y=H(t.gitDir,"objects"),P;try{P=await n.readdir(y)}catch{P=[]}for(let C of P){if(C==="pack"||C==="info"||C.length!==2)continue;let A=H(y,C),D;try{D=await n.readdir(A)}catch{continue}for(let $ of D){let v=`${C}${$}`;k.has(v)&&await n.rm(H(A,$))}try{(await n.readdir(A)).length===0&&await n.rm(A,{recursive:!0})}catch{}}}return{totalCount:c,deltaCount:l,packHash:g}}function Zo(e,t,n=!1){let r=e-t,o=[`Enumerating objects: ${e}, done.`];return n&&o.push(`Counting objects: 100% (${e}/${e}), done.`),o.push("Delta compression using 1 thread.",`Compressing objects: 100% (${r}/${e}), done.`,`Writing objects: 100% (${e}/${e}), done.`,`Total ${e} (delta ${t}), reused 0 (delta 0), pack-reused 0`),o.join(`
430
+ `)}function ad(e,t){e.command("gc",{description:"Cleanup unnecessary files and optimize the local repository",options:{aggressive:O().describe("More aggressively optimize the repository")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;await ef(s),await Et(s);let i=await Mg(s);if(i.length>0){let a=n.aggressive?250:10,c=n.aggressive?250:50,f=await Xo({gitCtx:s,fs:r.fs,tips:i,window:a,depth:c,cleanup:!0,all:!0});if(f)return{stdout:"",stderr:`${Zo(f.totalCount,f.deltaCount,!0)}
431
+ `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}})}var Dg=2160*60*60;async function Mg(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await ye(e,"refs");for(let f of r)t.add(f.hash);let s=Math.floor(Date.now()/1e3)-Dg,i=H(e.gitDir,"logs");await e.fs.exists(i)&&await cd(e,i,i,s,t);let a=await V(e);for(let f of a.entries)t.add(f.hash);for(let f of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let l=await U(e,f);l&&t.add(l)}let c=[];for(let f of t)await wt(e,f)&&c.push(f);return c}async function cd(e,t,n,r,o){let s=await e.fs.readdir(t);for(let i of s){let a=H(t,i),c=await e.fs.stat(a);if(c.isDirectory){await cd(e,a,n,r,o);try{(await e.fs.readdir(a)).length===0&&await e.fs.rm(a,{recursive:!0})}catch{}}else if(c.isFile){let f=a.slice(n.length+1),l=await et(e,f);if(f==="refs/stash"){for(let u of l)u.newHash!==ne&&o.add(u.newHash);continue}let d=l.filter(u=>u.timestamp>=r);await Un(e,f,d);for(let u of d)u.newHash!==ne&&o.add(u.newHash)}}}se();function jg(e){let t=Math.min(e.length,8e3),n=0;for(let r=0;r<t;r++)e.charCodeAt(r)===0&&n++;return n>t*.01}function fd(e,t,n,r){if(jg(e)){let i=t.some(a=>a.test(e));return{matches:[],binary:i}}let o=e.split(`
432
+ `);if(o.length>0&&o[o.length-1]===""&&o.pop(),n&&t.length>1&&!t.every(a=>o.some(c=>a.test(c))))return{matches:[],binary:!1};let s=[];for(let i=0;i<o.length;i++){let a=o[i],c=t.some(f=>f.test(a));(r?!c:c)&&s.push({lineNo:i+1,line:a})}return{matches:s,binary:!1}}function Lg(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ld(e,t){let n=t?.fixed?Lg(e):e;t?.wordRegexp&&(n=`\\b${n}\\b`);let r=t?.ignoreCase?"i":"";try{return new RegExp(n,r)}catch{return null}}Ce();ie();me();Ae();async function Gg(e){let t=await V(e),n=new Set,r=[];for(let o of t.entries){if(o.stage!==0||n.has(o.path))continue;n.add(o.path);let s=H(e.workTree,o.path);r.push({path:o.path,getContent:async()=>{try{return await e.fs.readFile(s)}catch{return""}}})}return r}async function Ng(e){let t=await V(e),n=new Set,r=[];for(let o of t.entries){if(o.stage!==0||n.has(o.path))continue;n.add(o.path);let s=o.hash;r.push({path:o.path,getContent:()=>oe(e,s)})}return r}async function Fg(e,t){return(await qe(e,t)).filter(r=>!r.mode.startsWith("120")).map(r=>({path:r.path,getContent:()=>oe(e,r.hash)}))}function _g(e){let t=0;for(let n=0;n<e.length;n++)e[n]==="/"&&t++;return t}function Ug(e,t,n){return n||t===""?e:rt(t,e)}function dd(e,t){e.command("grep",{description:"Print lines matching a pattern",args:[q.string().name("args").variadic().optional()],options:{cached:O().describe("Search blobs registered in the index"),lineNumber:O().alias("n").describe("Prefix the line number to matching lines"),filesWithMatches:O().alias("l").describe("Show only filenames"),filesWithoutMatch:O().alias("L").describe("Show only filenames without matches"),count:O().alias("c").describe("Show count of matching lines per file"),ignoreCase:O().alias("i").describe("Case insensitive matching"),wordRegexp:O().alias("w").describe("Match whole words only"),invertMatch:O().alias("v").describe("Invert the sense of matching"),fixedStrings:O().alias("F").describe("Interpret pattern as fixed string"),extendedRegexp:O().alias("E").describe("Interpret pattern as extended regexp"),basicRegexp:O().alias("G").describe("Interpret pattern as basic regexp"),suppressFilename:O().alias("h").describe("Suppress filename prefix"),forceFilename:O().alias("H").describe("Force filename prefix"),fullName:O().describe("Force paths to be output relative to project top"),quiet:O().alias("q").describe("Do not output matched lines; exit with status 0 on match"),allMatch:O().describe("Require all patterns to match in a file"),maxDepth:Y.number().describe("Descend at most <n> levels of directories"),maxCount:Y.number().alias("m").describe("Maximum number of matches per file"),afterContext:Y.number().alias("A").describe("Show <n> lines after match"),beforeContext:Y.number().alias("B").describe("Show <n> lines before match"),context:Y.number().alias("C").describe("Show <n> lines before and after match"),heading:O().describe("Show filename above matches"),break:O().describe("Print empty line between results from different files"),pattern:Y.string().alias("e").repeatable().describe("Match <pattern>")},handler:async(n,r,o)=>{let s=await K(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.args??[],c=o.passthrough??[],f=n.pattern,l=[],d=0;if(f.length===0){if(a.length===0)return S("no pattern given");f.push(a[d++])}for(;d<a.length;d++)l.push(a[d]);let u=[];for(let W of f){let F=ld(W,{fixed:!!n.fixedStrings,ignoreCase:!!n.ignoreCase,wordRegexp:!!n.wordRegexp});if(!F)return S(`command line, '${W}': invalid regular expression`);u.push(F)}let h=[];if(l.length>0)for(let W of l){let F=await yt(i,W);if(M(F))return F;let B;try{B=await Te(i,F)}catch{return S(`bad revision '${W}'`)}let ee=await j(i,B),z=await Fg(i,ee.tree);h.push({prefix:`${W}:`,files:z})}else if(n.cached)h.push({prefix:"",files:await Ng(i)});else{if(!i.workTree)return S("this operation must be run in a work tree");h.push({prefix:"",files:await Gg(i)})}let m=ut(i,r.cwd),p=null;c.length>0&&(p=c.map(W=>_e(W,m)));let g=n.maxDepth,w=n.maxCount,b=!!(n.lineNumber||n.afterContext!=null||n.beforeContext!=null||n.context!=null),R=!!n.filesWithMatches,E=!!n.filesWithoutMatch,k=!!n.count,x=!!n.quiet,y=!!n.heading,P=!!n.break,C=!!n.suppressFilename,A=!!n.invertMatch,D=!!n.allMatch,$=n.context??n.afterContext??0,v=n.context??n.beforeContext??0,N=$>0||v>0,L=[],I=!1,T=!0;for(let W of h){let F=W.files.slice().sort((B,ee)=>B.path<ee.path?-1:B.path>ee.path?1:0);for(let B of F){if(p&&!Ee(p,B.path)||g!==void 0&&_g(B.path)>g)continue;let ee=await B.getContent(),z=fd(ee,u,D,A),Q=Ug(B.path,m,!!n.fullName),Re=W.prefix;if(z.binary){if(I=!0,x)return{stdout:"",stderr:"",exitCode:0};R?L.push(`${Re}${Q}`):!E&&!k&&L.push(`Binary file ${Re}${Q} matches`);continue}if(z.matches.length===0){E&&L.push(`${Re}${Q}`);continue}if(I=!0,x)return{stdout:"",stderr:"",exitCode:0};if(E)continue;if(R){L.push(`${Re}${Q}`);continue}if(k){let ce=w!==void 0?Math.min(z.matches.length,w):z.matches.length;L.push(`${Re}${Q}:${ce}`);continue}let Ne=z.matches;if(w!==void 0&&(Ne=Ne.slice(0,w)),N)Bg(L,ee,Ne,Re,Q,C,v,$,y,P,T);else if(y){!T&&P&&L.push(""),L.push(`${Re}${Q}`);for(let ce of Ne)b?L.push(`${ce.lineNo}:${ce.line}`):L.push(ce.line)}else{!T&&P&&L.push("");for(let ce of Ne){let Se=C?"":`${Re}${Q}:`;b?L.push(`${Se}${ce.lineNo}:${ce.line}`):L.push(`${Se}${ce.line}`)}}T=!1}}return x?{stdout:"",stderr:"",exitCode:I?0:1}:{stdout:L.length>0?`${L.join(`
431
433
  `)}
432
434
  `:"",stderr:"",exitCode:I?0:1}}})}function Bg(e,t,n,r,o,s,i,a,c,f,l){let d=t.split(`
433
- `);d.length>0&&d[d.length-1]===""&&d.pop();let u=new Set(n.map(g=>g.lineNo)),h=[];for(let g of n){let w=Math.max(1,g.lineNo-i),b=Math.min(d.length,g.lineNo+a);h.push([w,b])}let m=[];for(let[g,w]of h)m.length>0&&g<=m[m.length-1][1]+1?m[m.length-1][1]=Math.max(m[m.length-1][1],w):m.push([g,w]);let p=s?"":`${r}${o}`;c?(!l&&f&&e.push(""),e.push(`${r}${o}`)):!l&&f&&e.push("");for(let g=0;g<m.length;g++){g>0&&e.push("--");let[w,b]=m[g];for(let k=w;k<=b;k++){let E=d[k-1],x=u.has(k)?":":"-";c?e.push(`${k}${x}${E}`):e.push(`${p}${x}${k}${x}${E}`)}}}me();Nn();function ud(e,t){e.command("init",{description:"Initialize a new repository",args:[K.string().name("directory").describe("The directory to initialize").optional()],options:{bare:O().describe("Create a bare repository"),initialBranch:Y.string().alias("b").describe("Name for the initial branch")},examples:["git init","git init --bare","git init my-project"],handler:async(n,r)=>{let o=n.initialBranch??t?.configOverrides?.locked?.["init.defaultBranch"]??t?.configOverrides?.defaults?.["init.defaultBranch"],s=n.directory?Mt(r.cwd,n.directory):r.cwd;n.directory&&await r.fs.mkdir(s,{recursive:!0});let{ctx:i,reinit:a}=await Qs(r.fs,s,{bare:n.bare,...o?{initialBranch:o}:{}}),c="";a&&o&&(c=`warning: re-init: ignored --initial-branch=${o}
435
+ `);d.length>0&&d[d.length-1]===""&&d.pop();let u=new Set(n.map(g=>g.lineNo)),h=[];for(let g of n){let w=Math.max(1,g.lineNo-i),b=Math.min(d.length,g.lineNo+a);h.push([w,b])}let m=[];for(let[g,w]of h)m.length>0&&g<=m[m.length-1][1]+1?m[m.length-1][1]=Math.max(m[m.length-1][1],w):m.push([g,w]);let p=s?"":`${r}${o}`;c?(!l&&f&&e.push(""),e.push(`${r}${o}`)):!l&&f&&e.push("");for(let g=0;g<m.length;g++){g>0&&e.push("--");let[w,b]=m[g];for(let R=w;R<=b;R++){let E=d[R-1],x=u.has(R)?":":"-";c?e.push(`${R}${x}${E}`):e.push(`${p}${x}${R}${x}${E}`)}}}me();kn();function ud(e,t){e.command("init",{description:"Initialize a new repository",args:[q.string().name("directory").describe("The directory to initialize").optional()],options:{bare:O().describe("Create a bare repository"),initialBranch:Y.string().alias("b").describe("Name for the initial branch")},examples:["git init","git init --bare","git init my-project"],handler:async(n,r)=>{let o=n.initialBranch??t?.configOverrides?.locked?.["init.defaultBranch"]??t?.configOverrides?.defaults?.["init.defaultBranch"],s=n.directory?Mt(r.cwd,n.directory):r.cwd;n.directory&&await r.fs.mkdir(s,{recursive:!0});let{ctx:i,reinit:a}=await Qs(r.fs,s,{bare:n.bare,...o?{initialBranch:o}:{}}),c="";a&&o&&(c=`warning: re-init: ignored --initial-branch=${o}
434
436
  `);let f=n.bare?"bare ":"";return{stdout:`${a?"Reinitialized existing":"Initialized empty"} ${f}Git repository in ${i.gitDir}/
435
437
  `,stderr:c,exitCode:0}}})}se();ur();var Jo=class{hash=null;parents=[];nParents=0;state=0;prevState=0;commitIdx=0;prevCommitIdx=0;mergeLayout=0;edgesAdded=0;prevEdgesAdded=0;w=0;expRow=0;cols=[];nCols=0;newCols=[];nNewCols=0;map=[];oldMap=[];mapSize=0;get width(){return this.w}update(t,n){this.hash=t,this.parents=n,this.nParents=n.length,this.prevCommitIdx=this.commitIdx,this.updateColumns(),this.expRow=0,this.state!==0?this.state=1:this.needsPreCommit()?this.state=2:this.state=3}nextLine(){let t,n=!1;switch(this.state){case 0:t=this.outPadding();break;case 1:t=this.outSkip();break;case 2:t=this.outPreCommit();break;case 3:t=this.outCommit(),n=!0;break;case 4:t=this.outPostMerge();break;case 5:t=this.outCollapsing();break}return{prefix:hd(t,this.w),isCommitLine:n}}isFinished(){return this.state===0}paddingPrefix(){if(this.state!==3)return this.nextLine().prefix;let t="";for(let n=0;n<this.nCols;n++)t+="| ";return this.prevState=0,hd(t,this.w)}updateColumns(){let t=this.newCols,n=this.nNewCols;this.newCols=this.cols,this.nNewCols=0,this.cols=t,this.nCols=n;let r=this.nCols+this.nParents;this.map.length<2*r&&(this.map=new Array(2*r),this.oldMap=new Array(2*r)),this.mapSize=2*r,this.map.fill(-1,0,this.mapSize),this.w=0,this.prevEdgesAdded=this.edgesAdded,this.edgesAdded=0;let o=!1;for(let s=0;s<=this.nCols;s++){let i;if(s===this.nCols){if(o)break;i=this.hash}else i=this.cols[s];if(i===this.hash){o=!0,this.commitIdx=s,this.mergeLayout=-1;for(let a of this.parents)this.insertNewCol(a,s);this.nParents===0&&(this.w+=2)}else this.insertNewCol(i,-1)}for(;this.mapSize>1&&this.map[this.mapSize-1]<0;)this.mapSize--}findNewCol(t){for(let n=0;n<this.nNewCols;n++)if(this.newCols[n]===t)return n;return-1}insertNewCol(t,n){let r=this.findNewCol(t);r<0&&(r=this.nNewCols++,this.newCols[r]=t);let o;if(this.nParents>1&&n>-1&&this.mergeLayout===-1){let s=n-r,i=s>1?2*s-3:1;this.mergeLayout=s>0?0:1,this.edgesAdded=this.nParents+this.mergeLayout-2,o=this.w+(this.mergeLayout-1)*i,this.w+=2*this.mergeLayout}else this.edgesAdded>0&&this.w>=2&&r===this.map[this.w-2]?(o=this.w-2,this.edgesAdded=-1):(o=this.w,this.w+=2);this.map[o]=r}setState(t){this.prevState=this.state,this.state=t}numDashedParents(){return this.nParents+this.mergeLayout-3}numExpansionRows(){return this.numDashedParents()*2}needsPreCommit(){return this.nParents>=3&&this.commitIdx<this.nCols-1&&this.expRow<this.numExpansionRows()}isMappingCorrect(){for(let t=0;t<this.mapSize;t++){let n=this.map[t];if(!(n<0)&&n!==t>>1)return!1}return!0}outPadding(){let t="";for(let n=0;n<this.nNewCols;n++)t+="| ";return t}outSkip(){return this.needsPreCommit()?this.setState(2):this.setState(3),"..."}outPreCommit(){let t="",n=!1;for(let r=0;r<this.nCols;r++)this.cols[r]===this.hash?(n=!0,t+="|",t+=" ".repeat(this.expRow)):n&&this.expRow===0?this.prevState===4&&this.prevCommitIdx<r?t+="\\":t+="|":n?t+="\\":t+="|",t+=" ";return this.expRow++,this.needsPreCommit()||this.setState(3),t}outCommit(){let t="",n=!1;for(let r=0;r<=this.nCols;r++){let o;if(r===this.nCols){if(n)break;o=this.hash}else o=this.cols[r];o===this.hash?(n=!0,t+="*",this.nParents>2&&(t+=this.drawOctopus())):n&&this.edgesAdded>1?t+="\\":n&&this.edgesAdded===1?this.prevState===4&&this.prevEdgesAdded>0&&this.prevCommitIdx<r?t+="\\":t+="|":this.prevState===5&&this.oldMap[2*r+1]===r&&this.map[2*r]<r?t+="/":t+="|",t+=" "}return this.nParents>1?this.setState(4):this.isMappingCorrect()?this.setState(0):this.setState(5),t}drawOctopus(){let t=this.numDashedParents(),n="";for(let r=0;r<t;r++)n+="-",n+=r===t-1?".":"-";return n}outPostMerge(){let t=["/","|","\\"],n="",r=!1,o=-1;for(let s=0;s<=this.nCols;s++){let i;if(s===this.nCols){if(r)break;i=this.hash}else i=this.cols[s];if(i===this.hash){r=!0;let a=this.mergeLayout;for(let c=0;c<this.nParents;c++)n+=t[a],a===2?(this.edgesAdded>0||c<this.nParents-1)&&(n+=" "):a++;this.edgesAdded===0&&(n+=" ")}else r?(this.edgesAdded>0?n+="\\":n+="|",n+=" "):(n+="|",(this.mergeLayout!==0||s!==this.commitIdx-1)&&(o>=0?n+="_":n+=" "));i===this.parents[0]&&(o=s)}return this.isMappingCorrect()?this.setState(0):this.setState(5),n}outCollapsing(){let t=this.map;this.map=this.oldMap,this.oldMap=t,this.map.fill(-1,0,this.mapSize);let n=-1,r=-1;for(let i=0;i<this.mapSize;i++){let a=this.oldMap[i];if(!(a<0)){if(a*2===i)this.map[i]=a;else if(this.map[i-1]<0){if(this.map[i-1]=a,n===-1){n=i,r=a;for(let c=a*2+3;c<i-2;c+=2)this.map[c]=a}}else if(this.map[i-1]!==a){if(this.map[i-2]=a,n===-1){r=a,n=i-1;for(let c=a*2+3;c<i-2;c+=2)this.map[c]=a}}}}for(let i=0;i<this.mapSize;i++)this.oldMap[i]=this.map[i];this.mapSize>0&&this.map[this.mapSize-1]<0&&this.mapSize--;let o="",s=!1;for(let i=0;i<this.mapSize;i++){let a=this.map[i];a<0?o+=" ":a*2===i?o+="|":a===r&&i!==n-1?(i!==a*2+3&&(this.map[i]=-1),s=!0,o+="_"):(s&&i<n&&(this.map[i]=-1),o+="/")}return this.isMappingCorrect()&&this.setState(0),o}};function hd(e,t){return e.length>=t?e:e+" ".repeat(t-e.length)}se();function Ts(e,t){let{hash:n,commit:r}=t,o="",s=0;for(;s<e.length;){if(e[s]==="%"){let i=e[s+1];if(i===void 0){o+="%",s++;continue}if((i==="a"||i==="c")&&s+2<e.length){let a=e[s+2],c=i==="a"?r.author:r.committer;switch(a){case"n":o+=c.name,s+=3;continue;case"e":case"E":o+=c.email,s+=3;continue;case"t":o+=c.timestamp.toString(),s+=3;continue;case"I":o+=gd(c.timestamp,c.timezone),s+=3;continue;case"i":o+=wd(c.timestamp,c.timezone),s+=3;continue;case"d":o+=Qo(c.timestamp,c.timezone,t.dateMode),s+=3;continue;case"D":o+=yd(c.timestamp,c.timezone),s+=3;continue;case"r":o+=bd(c.timestamp),s+=3;continue}}switch(i){case"H":o+=n,s+=2;continue;case"h":o+=X(n),s+=2;continue;case"T":o+=r.tree,s+=2;continue;case"t":o+=X(r.tree),s+=2;continue;case"P":o+=r.parents.join(" "),s+=2;continue;case"p":o+=r.parents.map(X).join(" "),s+=2;continue;case"s":o+=Ta(r.message),s+=2;continue;case"b":o+=Wg(r.message),s+=2;continue;case"B":o+=r.message.replace(/\n$/,""),s+=2;continue;case"d":if(t.decorations){let a=t.decorations(n);o+=a?` ${a}`:""}s+=2;continue;case"D":t.decorationsRaw&&(o+=t.decorationsRaw(n)),s+=2;continue;case"n":o+=`
436
438
  `,s+=2;continue;case"%":o+="%",s+=2;continue;default:o+=`%${i}`,s+=2;continue}}o+=e[s],s++}return o}var Ta=ue;function Wg(e){let t=e.indexOf(`
@@ -444,31 +446,31 @@ ${Dr(A,10)}`:"",exitCode:$?1:0};return await i?.hooks?.postFetch?.({repo:e,remot
444
446
  `))o.push(` ${i}`);return o.join(`
445
447
  `)}function Kg(e,t){let{hash:n,commit:r}=e,o=e.decorations?e.decorations(n):"",s=[];t||s.push(""),s.push(o?`commit ${n} ${o}`:`commit ${n}`),r.parents.length>=2&&s.push(`Merge: ${r.parents.map(X).join(" ")}`),s.push(`Author: ${r.author.name} <${r.author.email}>`),s.push(`Date: ${Qo(r.author.timestamp,r.author.timezone,e.dateMode)}`),s.push("");let i=r.message.replace(/\n$/,"");for(let a of i.split(`
446
448
  `))s.push(` ${a}`);return s.join(`
447
- `)}var md=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],pd=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function zg(e){let t=e.startsWith("-")?-1:1,n=e.replace(/^[+-]/,""),r=parseInt(n.slice(0,2),10)||0,o=parseInt(n.slice(2,4),10)||0;return t*(r*60+o)}function ti(e,t){let n=zg(t);return new Date((e+n*60)*1e3)}function Vg(e){return`${e.slice(0,3)}:${e.slice(3)}`}function gd(e,t){let n=ti(e,t),r=n.getUTCFullYear(),o=String(n.getUTCMonth()+1).padStart(2,"0"),s=String(n.getUTCDate()).padStart(2,"0"),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0"),f=t==="+0000"||t==="-0000"?"Z":Vg(t);return`${r}-${o}-${s}T${i}:${a}:${c}${f}`}function wd(e,t){let n=ti(e,t),r=n.getUTCFullYear(),o=String(n.getUTCMonth()+1).padStart(2,"0"),s=String(n.getUTCDate()).padStart(2,"0"),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0");return`${r}-${o}-${s} ${i}:${a}:${c} ${t}`}function bd(e){let n=Math.floor(Date.now()/1e3)-e;if(n<0&&(n=0),n<90)return n===1?"1 second ago":`${n} seconds ago`;if(n=Math.round(n/60),n<90)return n===1?"1 minute ago":`${n} minutes ago`;if(n=Math.round(n/60),n<36)return n===1?"1 hour ago":`${n} hours ago`;if(n=Math.round(n/24),n<14)return n===1?"1 day ago":`${n} days ago`;if(n<70){let s=Math.round(n/7);return s===1?"1 week ago":`${s} weeks ago`}if(n<365){let s=Math.round(n/30);return s===1?"1 month ago":`${s} months ago`}let r=Math.floor(n/365),o=Math.round((n-r*365)/30);if(o>0){let s=r===1?"1 year":`${r} years`,i=o===1?"1 month":`${o} months`;return`${s}, ${i} ago`}return r===1?"1 year ago":`${r} years ago`}function Yg(e,t){let n=ti(e,t),r=n.getUTCFullYear(),o=String(n.getUTCMonth()+1).padStart(2,"0"),s=String(n.getUTCDate()).padStart(2,"0");return`${r}-${o}-${s}`}function Xg(e,t){return`${e} ${t}`}function Zg(e){return e.toString()}function Jg(e,t){let n=new Date(e*1e3),r=md[n.getDay()]?.slice(0,3),o=pd[n.getMonth()],s=n.getDate(),i=String(n.getHours()).padStart(2,"0"),a=String(n.getMinutes()).padStart(2,"0"),c=String(n.getSeconds()).padStart(2,"0"),f=n.getFullYear();return`${r} ${o} ${s} ${i}:${a}:${c} ${f}`}function Qo(e,t,n){switch(n){case"short":return Yg(e,t);case"iso":return wd(e,t);case"iso-strict":return gd(e,t);case"relative":case"human":return bd(e);case"rfc":return yd(e,t);case"raw":return Xg(e,t);case"unix":return Zg(e);case"local":return Jg(e,t);default:return On(e,t)}}function yd(e,t){let n=ti(e,t),r=md[n.getUTCDay()]?.slice(0,3),o=pd[n.getUTCMonth()],s=n.getUTCDate(),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0"),f=n.getUTCFullYear();return`${r}, ${s} ${o} ${f} ${i}:${a}:${c} ${t}`}ie();ge();fn();Ae();function Rd(e,t){e.command("log",{description:"Show commit logs",transformArgs:n=>n.map(r=>/^-(\d+)$/.test(r)?`-n${r.slice(1)}`:r),args:[K.string().name("revisions").variadic().optional()],options:{maxCount:Y.number().alias("n").describe("Limit the number of commits to output"),oneline:O().describe("Condense each commit to a single line"),all:O().describe("Walk all refs, not just HEAD"),author:Y.string().describe("Filter by author (regex or substring)"),grep:Y.string().describe("Filter by commit message (regex or substring)"),since:Y.string().describe("Show commits after date"),after:Y.string().describe("Synonym for --since"),until:Y.string().describe("Show commits before date"),before:Y.string().describe("Synonym for --until"),decorate:O().describe("Show ref names next to commit hashes"),reverse:O().describe("Output commits in reverse order"),format:Y.string().describe("Pretty-print format string"),pretty:Y.string().describe("Pretty-print format or preset name"),patch:O().alias("p").describe("Show diff in patch format"),stat:O().describe("Show diffstat summary"),nameStatus:O().describe("Show names and status of changed files"),nameOnly:O().describe("Show only names of changed files"),shortstat:O().describe("Show only the shortstat summary line"),numstat:O().describe("Machine-readable insertions/deletions per file"),graph:O().describe("Draw text-based graph of the commit history"),firstParent:O().describe("Follow only the first parent of merge commits"),date:Y.string().describe("Date format: short, iso, iso-strict, relative, rfc, raw, unix, local, human, default")},handler:async(n,r,o)=>{let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a,c,f=n.revisions,l=f&&f.length===1?Wo(f[0]):null;if(l){let z=async Se=>{let ht=await We(i,Se);if(!ht)return Jt(Se);try{return await Te(i,ht)}catch{return Jt(Se)}},Q=await z(l.left);if(typeof Q=="object"&&"exitCode"in Q)return Q;let Re=await z(l.right);if(typeof Re=="object"&&"exitCode"in Re)return Re;let Ne=Q,ce=Re;if(l.type==="two-dot")a=[ce],c=[Ne];else{a=[Ne,ce];let Se=await Wt(i,Ne,ce);c=Se.length>0?Se:void 0}if(n.all){let Se=await ye(i);for(let Rr of Se)try{let Xe=await Te(i,Rr.hash);a.includes(Xe)||a.push(Xe)}catch{}let ht=await Z(i);ht&&!a.includes(ht)&&a.push(ht)}}else if(n.all){let z=await ye(i),Q=new Set;for(let Ne of z)try{Q.add(await Te(i,Ne.hash))}catch{}let Re=await Z(i);Re&&Q.add(Re),a=[...Q]}else if(f&&f.length>0){let z=[];for(let Q of f){let Re=await We(i,Q);if(!Re)return Jt(Q);try{z.push(await Te(i,Re))}catch{return Jt(Q)}}a=z}else{let z=await Qe(i);if(M(z))return z;a=[z]}if(a.length===0)return S("your current branch does not have any commits yet");let d=o.passthrough.length>0?o.passthrough.map(z=>_e(z,"")):null,u=n.author?Ed(n.author):null,h=n.grep?Ed(n.grep):null,m=n.since??n.after,p=n.until??n.before,g=m?ua(m):null,w=p?ua(p):null,b=n.format??n.pretty,k=null,E=null,R=!1;if(n.oneline)E="oneline",R=!0;else if(b!==void 0){let z=ei(b);k=z.formatStr,E=z.preset}let x=new Set(["default","short","iso","iso-strict","relative","rfc","raw","unix","local","human"]);if(n.date&&!x.has(n.date))return{stdout:"",stderr:`fatal: unknown date format ${n.date}
448
- `,exitCode:128};let y=n.date,C=n.patch?"patch":n.stat?"stat":n.nameStatus?"name-status":n.nameOnly?"name-only":n.shortstat?"shortstat":n.numstat?"numstat":null,P=n.graph;if(P&&n.reverse)return S("options '--graph' and '--reverse' cannot be used together");let A=n.decorate||k!=null&&(k.includes("%d")||k.includes("%D"))?await tw(i):null,$=A?z=>kd(A,z):void 0,v=A?z=>{let Q=kd(A,z);return Q.startsWith("(")&&Q.endsWith(")")?Q.slice(1,-1):Q}:void 0,_=n.maxCount,G=n.reverse,I=n.firstParent,T=d?ew(i,a,d,c?await Qg(i,c):void 0,I):Nt(i,a,{exclude:c,topoOrder:P,firstParent:I}),L=[];for await(let z of T){if(_!==void 0&&L.length>=_)break;let{commit:Q}=z;if(!(w!==null&&Q.committer.timestamp>w)&&!(g!==null&&Q.committer.timestamp<=g)){if(u){let Re=`${Q.author.name} <${Q.author.email}>`;if(!u(Re))continue}h&&!h(Q.message)||L.push(z)}}let W=G?L.reverse():L;if(P)return nw(W,i,k,E,R,C,$,v,y);if(k!==null){let z=[];for(let Q of W){let Re={hash:Q.hash,commit:Q.commit,decorations:$,decorationsRaw:v,dateMode:y},Ne=Ts(k,Re),ce=await va(i,Q.commit,C);ce&&(Ne+=`
449
+ `)}var md=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],pd=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function zg(e){let t=e.startsWith("-")?-1:1,n=e.replace(/^[+-]/,""),r=parseInt(n.slice(0,2),10)||0,o=parseInt(n.slice(2,4),10)||0;return t*(r*60+o)}function ti(e,t){let n=zg(t);return new Date((e+n*60)*1e3)}function Vg(e){return`${e.slice(0,3)}:${e.slice(3)}`}function gd(e,t){let n=ti(e,t),r=n.getUTCFullYear(),o=String(n.getUTCMonth()+1).padStart(2,"0"),s=String(n.getUTCDate()).padStart(2,"0"),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0"),f=t==="+0000"||t==="-0000"?"Z":Vg(t);return`${r}-${o}-${s}T${i}:${a}:${c}${f}`}function wd(e,t){let n=ti(e,t),r=n.getUTCFullYear(),o=String(n.getUTCMonth()+1).padStart(2,"0"),s=String(n.getUTCDate()).padStart(2,"0"),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0");return`${r}-${o}-${s} ${i}:${a}:${c} ${t}`}function bd(e){let n=Math.floor(Date.now()/1e3)-e;if(n<0&&(n=0),n<90)return n===1?"1 second ago":`${n} seconds ago`;if(n=Math.round(n/60),n<90)return n===1?"1 minute ago":`${n} minutes ago`;if(n=Math.round(n/60),n<36)return n===1?"1 hour ago":`${n} hours ago`;if(n=Math.round(n/24),n<14)return n===1?"1 day ago":`${n} days ago`;if(n<70){let s=Math.round(n/7);return s===1?"1 week ago":`${s} weeks ago`}if(n<365){let s=Math.round(n/30);return s===1?"1 month ago":`${s} months ago`}let r=Math.floor(n/365),o=Math.round((n-r*365)/30);if(o>0){let s=r===1?"1 year":`${r} years`,i=o===1?"1 month":`${o} months`;return`${s}, ${i} ago`}return r===1?"1 year ago":`${r} years ago`}function Yg(e,t){let n=ti(e,t),r=n.getUTCFullYear(),o=String(n.getUTCMonth()+1).padStart(2,"0"),s=String(n.getUTCDate()).padStart(2,"0");return`${r}-${o}-${s}`}function Xg(e,t){return`${e} ${t}`}function Zg(e){return e.toString()}function Jg(e,t){let n=new Date(e*1e3),r=md[n.getDay()]?.slice(0,3),o=pd[n.getMonth()],s=n.getDate(),i=String(n.getHours()).padStart(2,"0"),a=String(n.getMinutes()).padStart(2,"0"),c=String(n.getSeconds()).padStart(2,"0"),f=n.getFullYear();return`${r} ${o} ${s} ${i}:${a}:${c} ${f}`}function Qo(e,t,n){switch(n){case"short":return Yg(e,t);case"iso":return wd(e,t);case"iso-strict":return gd(e,t);case"relative":case"human":return bd(e);case"rfc":return yd(e,t);case"raw":return Xg(e,t);case"unix":return Zg(e);case"local":return Jg(e,t);default:return Tn(e,t)}}function yd(e,t){let n=ti(e,t),r=md[n.getUTCDay()]?.slice(0,3),o=pd[n.getUTCMonth()],s=n.getUTCDate(),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0"),f=n.getUTCFullYear();return`${r}, ${s} ${o} ${f} ${i}:${a}:${c} ${t}`}ie();ge();fn();Ae();function Rd(e,t){e.command("log",{description:"Show commit logs",transformArgs:n=>n.map(r=>/^-(\d+)$/.test(r)?`-n${r.slice(1)}`:r),args:[q.string().name("revisions").variadic().optional()],options:{maxCount:Y.number().alias("n").describe("Limit the number of commits to output"),oneline:O().describe("Condense each commit to a single line"),all:O().describe("Walk all refs, not just HEAD"),author:Y.string().describe("Filter by author (regex or substring)"),grep:Y.string().describe("Filter by commit message (regex or substring)"),since:Y.string().describe("Show commits after date"),after:Y.string().describe("Synonym for --since"),until:Y.string().describe("Show commits before date"),before:Y.string().describe("Synonym for --until"),decorate:O().describe("Show ref names next to commit hashes"),reverse:O().describe("Output commits in reverse order"),format:Y.string().describe("Pretty-print format string"),pretty:Y.string().describe("Pretty-print format or preset name"),patch:O().alias("p").describe("Show diff in patch format"),stat:O().describe("Show diffstat summary"),nameStatus:O().describe("Show names and status of changed files"),nameOnly:O().describe("Show only names of changed files"),shortstat:O().describe("Show only the shortstat summary line"),numstat:O().describe("Machine-readable insertions/deletions per file"),graph:O().describe("Draw text-based graph of the commit history"),firstParent:O().describe("Follow only the first parent of merge commits"),date:Y.string().describe("Date format: short, iso, iso-strict, relative, rfc, raw, unix, local, human, default")},handler:async(n,r,o)=>{let s=await K(r.fs,r.cwd,t);if(M(s))return s;let i=s,a,c,f=n.revisions,l=f&&f.length===1?Wo(f[0]):null;if(l){let z=async Se=>{let ht=await We(i,Se);if(!ht)return Jt(Se);try{return await Te(i,ht)}catch{return Jt(Se)}},Q=await z(l.left);if(typeof Q=="object"&&"exitCode"in Q)return Q;let Re=await z(l.right);if(typeof Re=="object"&&"exitCode"in Re)return Re;let Ne=Q,ce=Re;if(l.type==="two-dot")a=[ce],c=[Ne];else{a=[Ne,ce];let Se=await qt(i,Ne,ce);c=Se.length>0?Se:void 0}if(n.all){let Se=await ye(i);for(let Rr of Se)try{let Xe=await Te(i,Rr.hash);a.includes(Xe)||a.push(Xe)}catch{}let ht=await Z(i);ht&&!a.includes(ht)&&a.push(ht)}}else if(n.all){let z=await ye(i),Q=new Set;for(let Ne of z)try{Q.add(await Te(i,Ne.hash))}catch{}let Re=await Z(i);Re&&Q.add(Re),a=[...Q]}else if(f&&f.length>0){let z=[];for(let Q of f){let Re=await We(i,Q);if(!Re)return Jt(Q);try{z.push(await Te(i,Re))}catch{return Jt(Q)}}a=z}else{let z=await Qe(i);if(M(z))return z;a=[z]}if(a.length===0)return S("your current branch does not have any commits yet");let d=o.passthrough.length>0?o.passthrough.map(z=>_e(z,"")):null,u=n.author?Ed(n.author):null,h=n.grep?Ed(n.grep):null,m=n.since??n.after,p=n.until??n.before,g=m?ua(m):null,w=p?ua(p):null,b=n.format??n.pretty,R=null,E=null,k=!1;if(n.oneline)E="oneline",k=!0;else if(b!==void 0){let z=ei(b);R=z.formatStr,E=z.preset}let x=new Set(["default","short","iso","iso-strict","relative","rfc","raw","unix","local","human"]);if(n.date&&!x.has(n.date))return{stdout:"",stderr:`fatal: unknown date format ${n.date}
450
+ `,exitCode:128};let y=n.date,P=n.patch?"patch":n.stat?"stat":n.nameStatus?"name-status":n.nameOnly?"name-only":n.shortstat?"shortstat":n.numstat?"numstat":null,C=n.graph;if(C&&n.reverse)return S("options '--graph' and '--reverse' cannot be used together");let D=n.decorate||R!=null&&(R.includes("%d")||R.includes("%D"))?await tw(i):null,$=D?z=>kd(D,z):void 0,v=D?z=>{let Q=kd(D,z);return Q.startsWith("(")&&Q.endsWith(")")?Q.slice(1,-1):Q}:void 0,N=n.maxCount,L=n.reverse,I=n.firstParent,T=d?ew(i,a,d,c?await Qg(i,c):void 0,I):Ft(i,a,{exclude:c,topoOrder:C,firstParent:I}),G=[];for await(let z of T){if(N!==void 0&&G.length>=N)break;let{commit:Q}=z;if(!(w!==null&&Q.committer.timestamp>w)&&!(g!==null&&Q.committer.timestamp<=g)){if(u){let Re=`${Q.author.name} <${Q.author.email}>`;if(!u(Re))continue}h&&!h(Q.message)||G.push(z)}}let W=L?G.reverse():G;if(C)return nw(W,i,R,E,k,P,$,v,y);if(R!==null){let z=[];for(let Q of W){let Re={hash:Q.hash,commit:Q.commit,decorations:$,decorationsRaw:v,dateMode:y},Ne=Ts(R,Re),ce=await va(i,Q.commit,P);ce&&(Ne+=`
449
451
 
450
452
  ${ce.replace(/\n$/,"")}`),z.push(Ne)}return{stdout:z.length>0?`${z.join(`
451
453
  `)}
452
- `:"",stderr:"",exitCode:0}}let N=E??"medium",B=N==="oneline",ee=[];for(let z=0;z<W.length;z++){let Q=W[z],Re={hash:Q.hash,commit:Q.commit,decorations:$,decorationsRaw:v,dateMode:y},Ne=vs(N,Re,z===0,R),ce=await va(i,Q.commit,C);ce&&(Ne+=`${B?`
454
+ `:"",stderr:"",exitCode:0}}let F=E??"medium",B=F==="oneline",ee=[];for(let z=0;z<W.length;z++){let Q=W[z],Re={hash:Q.hash,commit:Q.commit,decorations:$,decorationsRaw:v,dateMode:y},Ne=vs(F,Re,z===0,k),ce=await va(i,Q.commit,P);ce&&(Ne+=`${B?`
453
455
  `:`
454
456
 
455
457
  `}${ce.replace(/\n$/,"")}`),ee.push(Ne)}return{stdout:ee.length>0?`${ee.join(`
456
458
  `)}
457
- `:"",stderr:"",exitCode:0}}})}async function Qg(e,t){let n=new Set;for await(let r of Nt(e,t))n.add(r.hash);return n}function Ed(e){try{let t=new RegExp(e);return n=>t.test(n)}catch{return t=>t.includes(e)}}async function*ew(e,t,n,r,o){let s=new Set(r),i=new qn,a=async c=>{if(!s.has(c))try{let f=await j(e,c);i.push({hash:c,commit:f})}catch{}};for(let c of t)await a(c);for(;i.size>0;){let c=i.pop();if(s.has(c.hash))continue;s.add(c.hash);let{commit:f}=c,l=o?f.parents.slice(0,1):f.parents;if(l.length===0){(await Ve(e,null,f.tree)).some(h=>Ee(n,h.path))&&(yield c);continue}if(l.length===1){let u=l[0];if(u){try{let h=await j(e,u);(await Ve(e,h.tree,f.tree)).some(p=>Ee(n,p.path))&&(yield c)}catch{yield c}await a(u)}continue}let d=[];for(let u of l)try{let h=await j(e,u);(await Ve(e,h.tree,f.tree)).some(p=>Ee(n,p.path))||d.push(u)}catch{}if(d.length>0&&d[0])await a(d[0]);else{yield c;for(let u of l)await a(u)}}}async function tw(e){let t=await te(e),n=t?.type==="symbolic"?Pe(t.target):null,r=await Z(e),o=new Map,s=(f,l,d)=>{let u=o.get(f);u||(u=[],o.set(f,u)),u.push({label:l,fullRef:d})},i=await ye(e,"refs/heads");for(let f of i)s(f.hash,Pe(f.name),f.name);let a=await ye(e,"refs/remotes");for(let f of a)s(f.hash,f.name.replace("refs/remotes/",""),f.name);let c=await ye(e,"refs/tags");for(let f of c){let l=f.hash;try{l=await Te(e,f.hash)}catch{}s(l,`tag: ${f.name.replace("refs/tags/","")}`,f.name)}return{headTarget:n,headHash:r,byHash:o}}function kd(e,t){let n=e.byHash.get(t),r=!e.headTarget&&e.headHash!==null&&e.headHash===t;if((!n||n.length===0)&&!r)return"";let o=[],s=e.headTarget&&n?n.find(a=>a.label===e.headTarget):null;s?o.push(`HEAD -> ${s.label}`):r&&o.push("HEAD");let i=n?n.filter(a=>a!==s):[];i.sort((a,c)=>a.fullRef>c.fullRef?-1:a.fullRef<c.fullRef?1:0);for(let a of i)o.push(a.label);return o.length>0?`(${o.join(", ")})`:""}async function nw(e,t,n,r,o,s,i,a,c){let f=new Jo,l=r??"medium",d=l==="oneline",u=[];for(let h=0;h<e.length;h++){let m=e[h],p={hash:m.hash,commit:m.commit,decorations:i,decorationsRaw:a,dateMode:c},g;n!==null?g=Ts(n,p):g=vs(l,p,!0,o),f.update(m.hash,m.commit.parents),h>0&&!d&&n===null&&u.push(f.paddingPrefix());let w=g.split(`
458
- `),b=0;for(;;){let{prefix:R,isCommitLine:x}=f.nextLine();if(x){u.push(R+(w[b++]??""));break}u.push(R)}for(;b<w.length;){let{prefix:R}=f.nextLine();u.push(R+w[b++])}for(;!f.isFinished();){let{prefix:R}=f.nextLine();u.push(R)}let k=80-f.width,E=await va(t,m.commit,s,k);if(E){let R=E.replace(/\n$/,"").split(`
459
- `);if(d||n!==null)for(let x of R)u.push(f.paddingPrefix()+x);else{u.push(f.paddingPrefix());for(let x of R)u.push(f.paddingPrefix()+x)}}}return{stdout:u.length>0?`${u.join(`
459
+ `:"",stderr:"",exitCode:0}}})}async function Qg(e,t){let n=new Set;for await(let r of Ft(e,t))n.add(r.hash);return n}function Ed(e){try{let t=new RegExp(e);return n=>t.test(n)}catch{return t=>t.includes(e)}}async function*ew(e,t,n,r,o){let s=new Set(r),i=new Kn,a=async c=>{if(!s.has(c))try{let f=await j(e,c);i.push({hash:c,commit:f})}catch{}};for(let c of t)await a(c);for(;i.size>0;){let c=i.pop();if(s.has(c.hash))continue;s.add(c.hash);let{commit:f}=c,l=o?f.parents.slice(0,1):f.parents;if(l.length===0){(await Ve(e,null,f.tree)).some(h=>Ee(n,h.path))&&(yield c);continue}if(l.length===1){let u=l[0];if(u){try{let h=await j(e,u);(await Ve(e,h.tree,f.tree)).some(p=>Ee(n,p.path))&&(yield c)}catch{yield c}await a(u)}continue}let d=[];for(let u of l)try{let h=await j(e,u);(await Ve(e,h.tree,f.tree)).some(p=>Ee(n,p.path))||d.push(u)}catch{}if(d.length>0&&d[0])await a(d[0]);else{yield c;for(let u of l)await a(u)}}}async function tw(e){let t=await te(e),n=t?.type==="symbolic"?Pe(t.target):null,r=await Z(e),o=new Map,s=(f,l,d)=>{let u=o.get(f);u||(u=[],o.set(f,u)),u.push({label:l,fullRef:d})},i=await ye(e,"refs/heads");for(let f of i)s(f.hash,Pe(f.name),f.name);let a=await ye(e,"refs/remotes");for(let f of a)s(f.hash,f.name.replace("refs/remotes/",""),f.name);let c=await ye(e,"refs/tags");for(let f of c){let l=f.hash;try{l=await Te(e,f.hash)}catch{}s(l,`tag: ${f.name.replace("refs/tags/","")}`,f.name)}return{headTarget:n,headHash:r,byHash:o}}function kd(e,t){let n=e.byHash.get(t),r=!e.headTarget&&e.headHash!==null&&e.headHash===t;if((!n||n.length===0)&&!r)return"";let o=[],s=e.headTarget&&n?n.find(a=>a.label===e.headTarget):null;s?o.push(`HEAD -> ${s.label}`):r&&o.push("HEAD");let i=n?n.filter(a=>a!==s):[];i.sort((a,c)=>a.fullRef>c.fullRef?-1:a.fullRef<c.fullRef?1:0);for(let a of i)o.push(a.label);return o.length>0?`(${o.join(", ")})`:""}async function nw(e,t,n,r,o,s,i,a,c){let f=new Jo,l=r??"medium",d=l==="oneline",u=[];for(let h=0;h<e.length;h++){let m=e[h],p={hash:m.hash,commit:m.commit,decorations:i,decorationsRaw:a,dateMode:c},g;n!==null?g=Ts(n,p):g=vs(l,p,!0,o),f.update(m.hash,m.commit.parents),h>0&&!d&&n===null&&u.push(f.paddingPrefix());let w=g.split(`
460
+ `),b=0;for(;;){let{prefix:k,isCommitLine:x}=f.nextLine();if(x){u.push(k+(w[b++]??""));break}u.push(k)}for(;b<w.length;){let{prefix:k}=f.nextLine();u.push(k+w[b++])}for(;!f.isFinished();){let{prefix:k}=f.nextLine();u.push(k)}let R=80-f.width,E=await va(t,m.commit,s,R);if(E){let k=E.replace(/\n$/,"").split(`
461
+ `);if(d||n!==null)for(let x of k)u.push(f.paddingPrefix()+x);else{u.push(f.paddingPrefix());for(let x of k)u.push(f.paddingPrefix()+x)}}}return{stdout:u.length>0?`${u.join(`
460
462
  `)}
461
463
  `:"",stderr:"",exitCode:0}}async function va(e,t,n,r){if(!n||t.parents.length>=2)return"";let o=t.parents.length===1?(await j(e,t.parents[0])).tree:null,s=await Ve(e,o,t.tree),{remaining:i,renames:a}=await it(e,s);switch(n){case"name-only":return rw(i,a);case"name-status":return sw(i,a);case"stat":return ow(e,i,a,r);case"shortstat":return iw(e,i,a);case"numstat":return aw(e,i,a);case"patch":return cw(e,i,a)}}function rw(e,t){let n=[];for(let r of e)n.push({key:r.path,line:r.path});for(let r of t)n.push({key:r.newPath,line:r.newPath});return n.sort((r,o)=>r.key<o.key?-1:r.key>o.key?1:0),n.map(r=>`${r.line}
462
464
  `).join("")}function sw(e,t){let n=[];for(let r of e){let o=r.status==="added"?"A":r.status==="deleted"?"D":"M";n.push({key:r.path,line:`${o} ${r.path}`})}for(let r of t){let o=String(r.similarity??100).padStart(3,"0");n.push({key:r.newPath,line:`R${o} ${r.oldPath} ${r.newPath}`})}return n.sort((r,o)=>r.key<o.key?-1:r.key>o.key?1:0),n.map(r=>`${r.line}
463
- `).join("")}async function ow(e,t,n,r){let{fileStats:o}=await er(e,t,n);return o.sort((s,i)=>s.sortKey<i.sortKey?-1:s.sortKey>i.sortKey?1:0),pr(o,r)}async function iw(e,t,n){let{fileStats:r}=await er(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=Qn(r.length,o,s);return i?`${i}
464
- `:""}async function aw(e,t,n){let r=[];for(let s of t)r.push({key:s.path,oldHash:s.oldHash,newHash:s.newHash,display:s.path});for(let s of n)r.push({key:s.newPath,oldHash:s.oldHash,newHash:s.newHash,display:mn(s.oldPath,s.newPath)});r.sort((s,i)=>s.key<i.key?-1:s.key>i.key?1:0);let o="";for(let s of r){let i=s.oldHash?await oe(e,s.oldHash):"",a=s.newHash?await oe(e,s.newHash):"";if(De(i)||De(a))o+=`- - ${s.display}
465
+ `).join("")}async function ow(e,t,n,r){let{fileStats:o}=await tr(e,t,n);return o.sort((s,i)=>s.sortKey<i.sortKey?-1:s.sortKey>i.sortKey?1:0),pr(o,r)}async function iw(e,t,n){let{fileStats:r}=await tr(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=er(r.length,o,s);return i?`${i}
466
+ `:""}async function aw(e,t,n){let r=[];for(let s of t)r.push({key:s.path,oldHash:s.oldHash,newHash:s.newHash,display:s.path});for(let s of n)r.push({key:s.newPath,oldHash:s.oldHash,newHash:s.newHash,display:pn(s.oldPath,s.newPath)});r.sort((s,i)=>s.key<i.key?-1:s.key>i.key?1:0);let o="";for(let s of r){let i=s.oldHash?await oe(e,s.oldHash):"",a=s.newHash?await oe(e,s.newHash):"";if(je(i)||je(a))o+=`- - ${s.display}
465
467
  `;else{let c=xt(i),f=xt(a),l=ct(c,f),d=0,u=0;for(let h of l)h.type==="insert"?d++:h.type==="delete"&&u++;o+=`${d} ${u} ${s.display}
466
- `}}return o}async function cw(e,t,n){let r=[];for(let s of t)r.push({type:"diff",entry:s});for(let s of n)r.push({type:"rename",entry:s});r.sort((s,i)=>{let a=s.type==="diff"?s.entry.path:s.entry.newPath,c=i.type==="diff"?i.entry.path:i.entry.newPath;return a<c?-1:a>c?1:0});let o="";for(let s of r)if(s.type==="rename"){let i=s.entry,a=i.oldHash?await oe(e,i.oldHash):"",c=i.newHash?await oe(e,i.newHash):"";o+=Ht({path:i.oldPath,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,renameTo:i.newPath,similarity:i.similarity})}else{let i=s.entry,a=i.oldHash?await oe(e,i.oldHash):"",c=i.newHash?await oe(e,i.newHash):"";o+=Ht({path:i.path,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,isNew:i.status==="added",isDeleted:i.status==="deleted"})}return o}se();Ce();me();Rn();Je();function Cd(e,t){e.command("ls-files",{description:"Show information about files in the index and the working tree",options:{cached:O().alias("c").describe("Show cached files (default)"),modified:O().alias("m").describe("Show modified files"),deleted:O().alias("d").describe("Show deleted files"),others:O().alias("o").describe("Show other (untracked) files"),unmerged:O().alias("u").describe("Show unmerged files"),stage:O().alias("s").describe("Show staged contents' mode, hash, and stage number"),"exclude-standard":O().describe("Add standard git exclusions (.gitignore, info/exclude, core.excludesFile)"),"nul-terminate":O().alias("z").describe("Use \\0 as line terminator instead of \\n"),"show-tags":O().alias("t").describe("Show status tags")},handler:async(n,r,o)=>{let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=Ye(i);if(a)return a;let c=i.workTree,f=n.cached,l=n.modified,d=n.deleted,u=n.others,h=n.unmerged,m=n.stage,p=n["exclude-standard"],g=n["nul-terminate"],w=n["show-tags"];f||l||d||u||h||(f=!0);let k=await V(i),E=g?"\0":`
467
- `,R=o.passthrough.length>0?o.passthrough.map(C=>{let P=r.cwd!==c?fw(c,r.cwd):"";return _e(C,P)}):null,x=[];if(f)for(let C of k.entries){if(R&&!Ee(R,C.path))continue;let P=w?C.stage>0?"M":"H":null;x.push(xd(C,m,P))}if(h&&!f)for(let C of k.entries)C.stage!==0&&(R&&!Ee(R,C.path)||x.push(xd(C,!0,w?"M":null)));if(l||d){let C=await lw(i,c,k);for(let{path:P,status:D}of C){if(D==="modified"&&!l||D==="deleted"&&!d||R&&!Ee(R,P))continue;let A=w?D==="deleted"?"R":"C":null;x.push(A?`${A} ${P}`:P)}}if(u){let C=await dw(i,c,k,p);for(let P of C)R&&!Ee(R,P)||x.push(w?`? ${P}`:P)}return{stdout:x.length>0?x.join(E)+E:"",stderr:"",exitCode:0}}})}function xd(e,t,n){if(t){let r=e.mode.toString(8).padStart(6,"0");return`${n?`${n} `:""}${r} ${e.hash} ${e.stage} ${e.path}`}return n?`${n} ${e.path}`:e.path}function fw(e,t){return t===e?"":t.startsWith(`${e}/`)?t.slice(e.length+1):""}async function lw(e,t,n){let r=[];for(let o of n.entries){if(o.stage!==0)continue;let s=H(t,o.path);if(!await e.fs.exists(s)){r.push({path:o.path,status:"deleted"});continue}let a=await mt(e.fs,s);if(!a.isFile&&!a.isSymbolicLink)continue;await Un(e.fs,s)!==o.hash&&r.push({path:o.path,status:"modified"})}return r}async function dw(e,t,n,r){let o=new Set(n.entries.map(i=>i.path));return(await ot(e,t,"",{skipIgnore:!r})).filter(i=>!o.has(i))}se();ur();Ue();Ce();ie();Be();ge();fn();Ae();function Pd(e,t){e.command("merge",{description:"Join two or more development histories together",args:[K.string().name("branch").describe("Branch to merge into the current branch").optional()],options:{abort:O().describe("Abort the current in-progress merge"),continue:O().describe("Continue the merge after conflict resolution"),noFf:O().describe("Create a merge commit even when fast-forward is possible"),ffOnly:O().describe("Refuse to merge unless fast-forward is possible"),squash:O().describe("Apply merge result to worktree/index without creating a merge commit"),edit:O().describe("Edit the merge message (no-op, accepted for compatibility)"),message:Y.string().alias("m").describe("Merge commit message")},transformArgs:n=>n.filter(r=>r!=="--ff"),handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort)return gw(s,r.env);if(n.continue)return pw(s,r.env,t);let i=n.branch;if(!i)return S("you must specify a branch to merge");if(n.squash&&n.noFf)return S("options '--squash' and '--no-ff.' cannot be used together");let a=await Qe(s);if(M(a))return a;let c=await V(s),f=Pn(c,"Merging");if(f)return f;if(await U(s,"MERGE_HEAD"))return S(`You have not concluded your merge (MERGE_HEAD exists).
468
+ `}}return o}async function cw(e,t,n){let r=[];for(let s of t)r.push({type:"diff",entry:s});for(let s of n)r.push({type:"rename",entry:s});r.sort((s,i)=>{let a=s.type==="diff"?s.entry.path:s.entry.newPath,c=i.type==="diff"?i.entry.path:i.entry.newPath;return a<c?-1:a>c?1:0});let o="";for(let s of r)if(s.type==="rename"){let i=s.entry,a=i.oldHash?await oe(e,i.oldHash):"",c=i.newHash?await oe(e,i.newHash):"";o+=Ht({path:i.oldPath,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,renameTo:i.newPath,similarity:i.similarity})}else{let i=s.entry,a=i.oldHash?await oe(e,i.oldHash):"",c=i.newHash?await oe(e,i.newHash):"";o+=Ht({path:i.path,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,isNew:i.status==="added",isDeleted:i.status==="deleted"})}return o}se();Ce();me();Pn();Je();function Cd(e,t){e.command("ls-files",{description:"Show information about files in the index and the working tree",args:[q.string().name("pathspec").variadic().optional()],options:{cached:O().alias("c").describe("Show cached files (default)"),modified:O().alias("m").describe("Show modified files"),deleted:O().alias("d").describe("Show deleted files"),others:O().alias("o").describe("Show other (untracked) files"),unmerged:O().alias("u").describe("Show unmerged files"),stage:O().alias("s").describe("Show staged contents' mode, hash, and stage number"),"exclude-standard":O().describe("Add standard git exclusions (.gitignore, info/exclude, core.excludesFile)"),"nul-terminate":O().alias("z").describe("Use \\0 as line terminator instead of \\n"),"show-tags":O().alias("t").describe("Show status tags")},handler:async(n,r,o)=>{let s=await K(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=Ye(i);if(a)return a;let c=i.workTree,f=n.cached,l=n.modified,d=n.deleted,u=n.others,h=n.unmerged,m=n.stage,p=n["exclude-standard"],g=n["nul-terminate"],w=n["show-tags"];f||l||d||u||h||(f=!0);let R=await V(i),E=g?"\0":`
469
+ `,k=[...n.pathspec??[],...o.passthrough],x=k.length>0?k.map(C=>{let A=r.cwd!==c?fw(c,r.cwd):"";return _e(C,A)}):null,y=[];if(f)for(let C of R.entries){if(x&&!Ee(x,C.path))continue;let A=w?C.stage>0?"M":"H":null;y.push(xd(C,m,A))}if(h&&!f)for(let C of R.entries)C.stage!==0&&(x&&!Ee(x,C.path)||y.push(xd(C,!0,w?"M":null)));if(l||d){let C=await lw(i,c,R);for(let{path:A,status:D}of C){if(D==="modified"&&!l||D==="deleted"&&!d||x&&!Ee(x,A))continue;let $=w?D==="deleted"?"R":"C":null;y.push($?`${$} ${A}`:A)}}if(u){let C=await dw(i,c,R,p);for(let A of C)x&&!Ee(x,A)||y.push(w?`? ${A}`:A)}return{stdout:y.length>0?y.join(E)+E:"",stderr:"",exitCode:0}}})}function xd(e,t,n){if(t){let r=e.mode.toString(8).padStart(6,"0");return`${n?`${n} `:""}${r} ${e.hash} ${e.stage} ${e.path}`}return n?`${n} ${e.path}`:e.path}function fw(e,t){return t===e?"":t.startsWith(`${e}/`)?t.slice(e.length+1):""}async function lw(e,t,n){let r=[];for(let o of n.entries){if(o.stage!==0)continue;let s=H(t,o.path);if(!await e.fs.exists(s)){r.push({path:o.path,status:"deleted"});continue}let a=await mt(e.fs,s);if(!a.isFile&&!a.isSymbolicLink)continue;await Wn(e.fs,s)!==o.hash&&r.push({path:o.path,status:"modified"})}return r}async function dw(e,t,n,r){let o=new Set(n.entries.map(i=>i.path));return(await ot(e,t,"",{skipIgnore:!r})).filter(i=>!o.has(i))}se();ur();Ue();Ce();ie();Be();ge();fn();Ae();function Pd(e,t){e.command("merge",{description:"Join two or more development histories together",args:[q.string().name("branch").describe("Branch to merge into the current branch").optional()],options:{abort:O().describe("Abort the current in-progress merge"),continue:O().describe("Continue the merge after conflict resolution"),noFf:O().describe("Create a merge commit even when fast-forward is possible"),ffOnly:O().describe("Refuse to merge unless fast-forward is possible"),squash:O().describe("Apply merge result to worktree/index without creating a merge commit"),edit:O().describe("Edit the merge message (no-op, accepted for compatibility)"),message:Y.string().alias("m").describe("Merge commit message")},transformArgs:n=>n.filter(r=>r!=="--ff"),handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort)return gw(s,r.env);if(n.continue)return pw(s,r.env,t);let i=n.branch;if(!i)return S("you must specify a branch to merge");if(n.squash&&n.noFf)return S("options '--squash' and '--no-ff.' cannot be used together");let a=await Qe(s);if(M(a))return a;let c=await V(s),f=Sn(c,"Merging");if(f)return f;if(await U(s,"MERGE_HEAD"))return S(`You have not concluded your merge (MERGE_HEAD exists).
468
470
  Please, commit your changes before you merge.`);if(await U(s,"CHERRY_PICK_HEAD"))return S(`You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
469
- Please, commit your changes before you merge.`);let u=await We(s,i);if(!u)return F(`merge: ${i} - not something we can merge
470
- `);let h=await Te(s,u),m=!!n.noFf,p=!!n.ffOnly;if(!n.noFf&&!n.ffOnly){let R=await ke(s,"merge.ff");R==="false"?m=!0:R==="only"&&(p=!0)}if(n.squash&&m)return S("options '--squash' and '--no-ff.' cannot be used together");let g=await Wt(s,a,h),w=g[0]??null;if(g.length===0)return S("refusing to merge unrelated histories");if(w===h)return await be(s,"MERGE_MSG"),{stdout:`Already up to date.${n.squash?" (nothing to squash)":""}
471
- `,stderr:"",exitCode:0};if(m&&p)return S("--no-ff and --ff-only are incompatible");let b=w===a&&!m;if(p&&!b)return F(`hint: Diverging branches can't be fast-forwarded, you need to either:
471
+ Please, commit your changes before you merge.`);let u=await We(s,i);if(!u)return _(`merge: ${i} - not something we can merge
472
+ `);let h=await Te(s,u),m=!!n.noFf,p=!!n.ffOnly;if(!n.noFf&&!n.ffOnly){let k=await ke(s,"merge.ff");k==="false"?m=!0:k==="only"&&(p=!0)}if(n.squash&&m)return S("options '--squash' and '--no-ff.' cannot be used together");let g=await qt(s,a,h),w=g[0]??null;if(g.length===0)return S("refusing to merge unrelated histories");if(w===h)return await be(s,"MERGE_MSG"),{stdout:`Already up to date.${n.squash?" (nothing to squash)":""}
473
+ `,stderr:"",exitCode:0};if(m&&p)return S("--no-ff and --ff-only are incompatible");let b=w===a&&!m;if(p&&!b)return _(`hint: Diverging branches can't be fast-forwarded, you need to either:
472
474
  hint:
473
475
  hint: git merge --no-ff
474
476
  hint:
@@ -478,40 +480,40 @@ hint: git rebase
478
480
  hint:
479
481
  hint: Disable this message with "git config set advice.diverging false"
480
482
  fatal: Not possible to fast-forward, aborting.
481
- `,128);if(await U(s,"REVERT_HEAD")&&await Ft(s),b&&!n.squash){let R=await te(s),x=await Do(s,a,h);if(x.exitCode===0&&n.message&&(x.stdout=x.stdout.replace(/^Fast-forward$/m,"Fast-forward (no commit created; -m option ignored)")),x.exitCode===0){await be(s,"MERGE_MSG");let y=R?.type==="symbolic"?R.target:"HEAD";await re(s,r.env,y,a,h,`merge ${i}: Fast-forward${n.message?" (no commit created; -m option ignored)":""}`,R?.type==="symbolic"),await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:h,strategy:"fast-forward",commitHash:null})}return x}let k=n.message,E=k?k.endsWith(`
482
- `)?k:`${k}
483
- `:void 0;return n.squash?mw(s,a,h,i,r.env,t,E):uw(s,a,h,i,r.env,m,t,E)}})}async function uw(e,t,n,r,o,s=!1,i,a){let c=await j(e,t),f=await te(e),l=f?.type==="symbolic"?Pe(f.target):"HEAD",d=await ke(e,"merge.conflictstyle")??"merge",u={a:"HEAD",b:r,conflictStyle:d},h=await Rs(e,t,n,u,i?.mergeDriver),m=await In(e,h,c.tree,{labels:u,errorExitCode:2,operationName:"merge"});if(!m.ok)return await be(e,"MERGE_MSG"),m.failureKind==="staged"&&f?.type==="symbolic"&&await re(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`),m;if(h.conflicts.length>0){await J(e,"MERGE_HEAD",n),await J(e,"ORIG_HEAD",t);let D=a??await gr(e,r,l),A={repo:e,message:D,treeHash:m.mergedTreeHash,headHash:t,theirsHash:n},$=await i?.hooks?.mergeMsg?.(A);if(de($))return{stdout:"",stderr:$.message??"",exitCode:1};D=A.message;let v=Kt({version:2,entries:h.entries}).sort();return D+=`
483
+ `,128);if(await U(s,"REVERT_HEAD")&&await _t(s),b&&!n.squash){let k=await te(s),x=await Do(s,a,h);if(x.exitCode===0&&n.message&&(x.stdout=x.stdout.replace(/^Fast-forward$/m,"Fast-forward (no commit created; -m option ignored)")),x.exitCode===0){await be(s,"MERGE_MSG");let y=k?.type==="symbolic"?k.target:"HEAD";await re(s,r.env,y,a,h,`merge ${i}: Fast-forward${n.message?" (no commit created; -m option ignored)":""}`,k?.type==="symbolic"),await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:h,strategy:"fast-forward",commitHash:null})}return x}let R=n.message,E=R?R.endsWith(`
484
+ `)?R:`${R}
485
+ `:void 0;return n.squash?mw(s,a,h,i,r.env,t,E):uw(s,a,h,i,r.env,m,t,E)}})}async function uw(e,t,n,r,o,s=!1,i,a){let c=await j(e,t),f=await te(e),l=f?.type==="symbolic"?Pe(f.target):"HEAD",d=await ke(e,"merge.conflictstyle")??"merge",u={a:"HEAD",b:r,conflictStyle:d},h=await Rs(e,t,n,u,i?.mergeDriver),m=await Hn(e,h,c.tree,{labels:u,errorExitCode:2,operationName:"merge"});if(!m.ok)return await be(e,"MERGE_MSG"),m.failureKind==="staged"&&f?.type==="symbolic"&&await re(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`),m;if(h.conflicts.length>0){await J(e,"MERGE_HEAD",n),await J(e,"ORIG_HEAD",t);let A=a??await gr(e,r,l),D={repo:e,message:A,treeHash:m.mergedTreeHash,headHash:t,theirsHash:n},$=await i?.hooks?.mergeMsg?.(D);if(de($))return{stdout:"",stderr:$.message??"",exitCode:1};A=D.message;let v=zt({version:2,entries:h.entries}).sort();return A+=`
484
486
  # Conflicts:
485
- ${v.map(G=>`# ${G}`).join(`
487
+ ${v.map(L=>`# ${L}`).join(`
486
488
  `)}
487
- `,await Le(e,"MERGE_MSG",D),await Le(e,"MERGE_MODE",s?"no-ff":""),{stdout:`${[...h.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
489
+ `,await Le(e,"MERGE_MSG",A),await Le(e,"MERGE_MODE",s?"no-ff":""),{stdout:`${[...h.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
488
490
  `)}
489
- `,stderr:"",exitCode:1}}await be(e,"MERGE_MSG");let p=m.mergedTreeHash,g=await hn(e,o);if(M(g))return g;let w=await tt(e,o);if(M(w))return w;let b=a??await gr(e,r,l),k={repo:e,message:b,treeHash:p,headHash:t,theirsHash:n},E=await i?.hooks?.mergeMsg?.(k);if(de(E))return{stdout:"",stderr:E.message??"",exitCode:1};b=k.message;let R=await i?.hooks?.preMergeCommit?.({repo:e,message:b,treeHash:p,headHash:t,theirsHash:n});if(de(R))return{stdout:"",stderr:R.message??"",exitCode:1};let x=await Ot(e,p,[t,n],g,w,b),y=f?.type==="symbolic"?f.target:"HEAD";await re(e,o,y,t,x,`merge ${r}: Merge made by the 'ort' strategy.`,f?.type==="symbolic"),await i?.hooks?.postMerge?.({repo:e,headHash:t,theirsHash:n,strategy:"three-way",commitHash:x});let C=await pn(e,c.tree,p);return{stdout:`${h.messages.length>0?`${h.messages.join(`
491
+ `,stderr:"",exitCode:1}}await be(e,"MERGE_MSG");let p=m.mergedTreeHash,g=await mn(e,o);if(M(g))return g;let w=await tt(e,o);if(M(w))return w;let b=a??await gr(e,r,l),R={repo:e,message:b,treeHash:p,headHash:t,theirsHash:n},E=await i?.hooks?.mergeMsg?.(R);if(de(E))return{stdout:"",stderr:E.message??"",exitCode:1};b=R.message;let k=await i?.hooks?.preMergeCommit?.({repo:e,message:b,treeHash:p,headHash:t,theirsHash:n});if(de(k))return{stdout:"",stderr:k.message??"",exitCode:1};let x=await Ot(e,p,[t,n],g,w,b),y=f?.type==="symbolic"?f.target:"HEAD";await re(e,o,y,t,x,`merge ${r}: Merge made by the 'ort' strategy.`,f?.type==="symbolic"),await i?.hooks?.postMerge?.({repo:e,headHash:t,theirsHash:n,strategy:"three-way",commitHash:x});let P=await gn(e,c.tree,p);return{stdout:`${h.messages.length>0?`${h.messages.join(`
490
492
  `)}
491
493
  `:""}Merge made by the 'ort' strategy.
492
- ${C}`,stderr:"",exitCode:0}}async function hw(e,t,n){let r=[];for await(let o of Nt(e,n,{exclude:[t]})){r.push(`commit ${o.hash}`),o.commit.parents.length>1&&r.push(`Merge: ${o.commit.parents.map(i=>i.slice(0,7)).join(" ")}`);let s=o.commit.author;r.push(`Author: ${s.name} <${s.email}>`),r.push(`Date: ${On(s.timestamp,s.timezone)}`),r.push("");for(let i of o.commit.message.replace(/\n+$/,"").split(`
494
+ ${P}`,stderr:"",exitCode:0}}async function hw(e,t,n){let r=[];for await(let o of Ft(e,n,{exclude:[t]})){r.push(`commit ${o.hash}`),o.commit.parents.length>1&&r.push(`Merge: ${o.commit.parents.map(i=>i.slice(0,7)).join(" ")}`);let s=o.commit.author;r.push(`Author: ${s.name} <${s.email}>`),r.push(`Date: ${Tn(s.timestamp,s.timezone)}`),r.push("");for(let i of o.commit.message.replace(/\n+$/,"").split(`
493
495
  `))r.push(` ${i}`);r.push("")}return r.join(`
494
- `)}async function mw(e,t,n,r,o,s,i){let a=await j(e,t),c=await te(e),f=await ke(e,"merge.conflictstyle")??"merge",l={a:"HEAD",b:r,conflictStyle:f},d=await Wt(e,t,n),u=d.length>0&&d[0]===t,h=u?`Updating ${X(t)}..${X(n)}
495
- `:"",m=await Rs(e,t,n,l,s?.mergeDriver),p=await In(e,m,a.tree,{labels:l,errorExitCode:u?1:2,operationName:"merge",skipStagedChangeCheck:u});if(!p.ok){await be(e,"MERGE_MSG"),!u&&p.failureKind==="staged"&&c?.type==="symbolic"&&await re(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`);let y=p;return u&&(y.stderr=y.stderr.replace(/Merge with strategy ort failed\.\n$/,"")),h&&(y.stdout=h+y.stdout),y}let w=`Squashed commit of the following:
496
+ `)}async function mw(e,t,n,r,o,s,i){let a=await j(e,t),c=await te(e),f=await ke(e,"merge.conflictstyle")??"merge",l={a:"HEAD",b:r,conflictStyle:f},d=await qt(e,t,n),u=d.length>0&&d[0]===t,h=u?`Updating ${X(t)}..${X(n)}
497
+ `:"",m=await Rs(e,t,n,l,s?.mergeDriver),p=await Hn(e,m,a.tree,{labels:l,errorExitCode:u?1:2,operationName:"merge",skipStagedChangeCheck:u});if(!p.ok){await be(e,"MERGE_MSG"),!u&&p.failureKind==="staged"&&c?.type==="symbolic"&&await re(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`);let y=p;return u&&(y.stderr=y.stderr.replace(/Merge with strategy ort failed\.\n$/,"")),h&&(y.stdout=h+y.stdout),y}let w=`Squashed commit of the following:
496
498
 
497
- ${await hw(e,t,n)}`;if(await Le(e,"SQUASH_MSG",w),m.conflicts.length>0){let C=`
499
+ ${await hw(e,t,n)}`;if(await Le(e,"SQUASH_MSG",w),m.conflicts.length>0){let P=`
498
500
  # Conflicts:
499
- ${Kt({version:2,entries:m.entries}).sort().map(A=>`# ${A}`).join(`
501
+ ${zt({version:2,entries:m.entries}).sort().map(D=>`# ${D}`).join(`
500
502
  `)}
501
- `,P=await $e(e,"MERGE_MSG");return await Le(e,"MERGE_MSG",(P??"")+C),{stdout:`${[...m.messages,"Squash commit -- not updating HEAD","Automatic merge failed; fix conflicts and then commit the result."].join(`
503
+ `,C=await $e(e,"MERGE_MSG");return await Le(e,"MERGE_MSG",(C??"")+P),{stdout:`${[...m.messages,"Squash commit -- not updating HEAD","Automatic merge failed; fix conflicts and then commit the result."].join(`
502
504
  `)}
503
- `,stderr:"",exitCode:1}}let b=p.mergedTreeHash,k=await pn(e,a.tree,b),E=m.messages.length>0?`${m.messages.join(`
505
+ `,stderr:"",exitCode:1}}let b=p.mergedTreeHash,R=await gn(e,a.tree,b),E=m.messages.length>0?`${m.messages.join(`
504
506
  `)}
505
507
  `:"";return{stdout:`${u?`${h}${i?"Fast-forward (no commit created; -m option ignored)":"Fast-forward"}
506
508
  `:""}${E}Squash commit -- not updating HEAD
507
- ${u?k:""}`,stderr:u?"":`Automatic merge went well; stopped before committing as requested
508
- `,exitCode:0}}async function pw(e,t,n){let r=await U(e,"MERGE_HEAD");if(!r)return S("There is no merge in progress (MERGE_HEAD missing).");let o=await V(e),s=Pn(o,"Committing");if(s)return s;let i=await Qe(e);if(M(i))return i;let a=await j(e,i),c=await $e(e,"MERGE_MSG");if(c)c=St(c);else{let C=await te(e),P=C?.type==="symbolic"?Pe(C.target):"HEAD";c=await gr(e,"unknown",P)}let f=Ge(o),l=await Fe(e,f),d=await hn(e,t);if(M(d))return d;let u=await tt(e,t);if(M(u))return u;let h=It(c),m={repo:e,message:h,treeHash:l,headHash:i,theirsHash:r},p=await n?.hooks?.mergeMsg?.(m);if(de(p))return{stdout:"",stderr:p.message??"",exitCode:1};h=m.message;let g=await n?.hooks?.preMergeCommit?.({repo:e,message:h,treeHash:l,headHash:i,theirsHash:r});if(de(g))return{stdout:"",stderr:g.message??"",exitCode:1};let w=await Ot(e,l,[i,r],d,u,h);await ms(e);let b=await te(e),k=ue(h),E=b?.type==="symbolic"?b.target:"HEAD";await re(e,t,E,i,w,`commit (merge): ${k}`,b?.type==="symbolic"),await n?.hooks?.postMerge?.({repo:e,headHash:i,theirsHash:r,strategy:"three-way",commitHash:w});let R=await pn(e,a.tree,l),x=b?.type==="symbolic"?Pe(b.target):"detached HEAD";return{stdout:`${Qt(x,w,c)}
509
- ${R}`,stderr:"",exitCode:0}}async function gw(e,t){return Wn(e,t,{operationRef:"MERGE_HEAD",noOpError:S("There is no merge to abort (MERGE_HEAD missing)."),operationName:"merge",clearState:ms})}se();Ce();me();Je();function $d(e,t){e.command("mv",{description:"Move or rename a file, directory, or symlink",args:[K.string().name("sources").describe("Source file(s) or directory").optional().variadic()],options:{force:O().alias("f").describe("Force renaming even if target exists"),"dry-run":O().alias("n").describe("Do nothing; only show what would happen"),skip:O().alias("k").describe("Skip move/rename actions that would lead to errors")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Ye(s);if(i)return i;let a=s.workTree,c=n.sources;if(c.length<2)return F(`usage: git mv [<options>] <source>... <destination>
510
- `);let f=c[c.length-1],l=c.slice(0,-1),d=Mt(r.cwd,f),u=rt(a,d);if(u.startsWith(".."))return S(`'${f}' is outside repository at '${a}'`);let h=await V(s),m=await r.fs.exists(d),p=m&&(await r.fs.stat(d)).isDirectory;if(l.length>1&&!p)return S(m?`destination '${f}' is not a directory`:`destination directory '${f}' does not exist`);let g=[];for(let w of l){let b=Mt(r.cwd,w),k=rt(a,b);if(k.startsWith("..")){if(n.skip)continue;return S(`'${w}' is outside repository at '${a}'`)}if(!await r.fs.exists(b)){if(n.skip)continue;return S(`bad source, source=${k}, destination=${u}`)}let x=(await r.fs.stat(b)).isDirectory;if(!(x?h.entries.some($=>$.path===k||$.path.startsWith(`${k}/`)):h.entries.some($=>$.path===k&&$.stage===0))){let $=!x&&h.entries.some(v=>v.path===k&&v.stage>0);if(n.skip)continue;return S($?`conflicted, source=${k}, destination=${u}`:`not under version control, source=${k}, destination=${u}`)}let C,P;if(p){let $=Vr(k);C=u===""||u==="."?$:`${u}/${$}`,P=H(d,$)}else C=u,P=d;if(await r.fs.exists(P)&&!n.force)if((await r.fs.stat(P)).isDirectory){let v=Vr(k);C=`${C}/${v}`,P=H(P,v)}else{if(n.skip)continue;return S(`destination exists, source=${k}, destination=${C}`)}if(k===C){if(n.skip)continue;return S(`can not move directory into itself, source=${k}, destination=${C}`)}let A=sn(P);if(!await r.fs.exists(A)){if(n.skip)continue;return S(`renaming '${k}' failed: No such file or directory`)}if(x){let $=`${k}/`,v=h.entries.filter(_=>_.path.startsWith($)&&_.stage===0);for(let _ of v){let G=_.path.slice(k.length),I=C+G,T=P+G;g.push({srcRel:_.path,dstRel:I,srcAbs:H(a,_.path),dstAbs:T})}}else g.push({srcRel:k,dstRel:C,srcAbs:b,dstAbs:P})}if(g.length===0)return{stdout:"",stderr:"",exitCode:0};if(n["dry-run"])return{stdout:"",stderr:"",exitCode:0};for(let w of g){let b=sn(w.dstAbs);await r.fs.exists(b)||await r.fs.mkdir(b,{recursive:!0});let k=await r.fs.readFileBuffer(w.srcAbs);await r.fs.writeFile(w.dstAbs,k),await r.fs.rm(w.srcAbs);let E=qs(h,w.srcRel,0);if(E){h=lt(h,w.srcRel);let R={...E,path:w.dstRel};h=Pt(h,R)}}for(let w of g)await cr(r.fs,sn(w.srcAbs),a);return await ae(s,h),{stdout:"",stderr:"",exitCode:0}}})}se();Ue();rr();Ce();ie();me();pt();Be();ge();se();Ue();Ce();ie();se();ie();wn();or();Ae();async function Ha(e,t){let n=await we(e,t);if(n.type!=="commit")return null;let r=an(n.content),o=null;if(r.parents.length>0&&r.parents[0]){let f=await we(e,r.parents[0]);f.type==="commit"&&(o=an(f.content).tree)}let s=await Ve(e,o,r.tree);if(s.length===0)return null;let i=Dn(),a=!1,c=[...s].sort((f,l)=>ve(f.path,l.path));for(let f of c){let l="",d="";if(f.oldHash)try{let h=await we(e,f.oldHash);l=new TextDecoder().decode(h.content)}catch{}if(f.newHash)try{let h=await we(e,f.newHash);d=new TextDecoder().decode(h.content)}catch{}let u=Ht({path:f.path,oldContent:l,newContent:d,oldMode:f.oldMode,newMode:f.newMode});if(u)for(let h of u.split(`
509
+ ${u?R:""}`,stderr:u?"":`Automatic merge went well; stopped before committing as requested
510
+ `,exitCode:0}}async function pw(e,t,n){let r=await U(e,"MERGE_HEAD");if(!r)return S("There is no merge in progress (MERGE_HEAD missing).");let o=await V(e),s=Sn(o,"Committing");if(s)return s;let i=await Qe(e);if(M(i))return i;let a=await j(e,i),c=await $e(e,"MERGE_MSG");if(c)c=St(c);else{let P=await te(e),C=P?.type==="symbolic"?Pe(P.target):"HEAD";c=await gr(e,"unknown",C)}let f=Ge(o),l=await Fe(e,f),d=await mn(e,t);if(M(d))return d;let u=await tt(e,t);if(M(u))return u;let h=It(c),m={repo:e,message:h,treeHash:l,headHash:i,theirsHash:r},p=await n?.hooks?.mergeMsg?.(m);if(de(p))return{stdout:"",stderr:p.message??"",exitCode:1};h=m.message;let g=await n?.hooks?.preMergeCommit?.({repo:e,message:h,treeHash:l,headHash:i,theirsHash:r});if(de(g))return{stdout:"",stderr:g.message??"",exitCode:1};let w=await Ot(e,l,[i,r],d,u,h);await ms(e);let b=await te(e),R=ue(h),E=b?.type==="symbolic"?b.target:"HEAD";await re(e,t,E,i,w,`commit (merge): ${R}`,b?.type==="symbolic"),await n?.hooks?.postMerge?.({repo:e,headHash:i,theirsHash:r,strategy:"three-way",commitHash:w});let k=await gn(e,a.tree,l),x=b?.type==="symbolic"?Pe(b.target):"detached HEAD";return{stdout:`${Qt(x,w,c)}
511
+ ${k}`,stderr:"",exitCode:0}}async function gw(e,t){return qn(e,t,{operationRef:"MERGE_HEAD",noOpError:S("There is no merge to abort (MERGE_HEAD missing)."),operationName:"merge",clearState:ms})}se();Ce();me();Je();function $d(e,t){e.command("mv",{description:"Move or rename a file, directory, or symlink",args:[q.string().name("sources").describe("Source file(s) or directory").optional().variadic()],options:{force:O().alias("f").describe("Force renaming even if target exists"),"dry-run":O().alias("n").describe("Do nothing; only show what would happen"),skip:O().alias("k").describe("Skip move/rename actions that would lead to errors")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Ye(s);if(i)return i;let a=s.workTree,c=n.sources;if(c.length<2)return _(`usage: git mv [<options>] <source>... <destination>
512
+ `);let f=c[c.length-1],l=c.slice(0,-1),d=Mt(r.cwd,f),u=rt(a,d);if(u.startsWith(".."))return S(`'${f}' is outside repository at '${a}'`);let h=await V(s),m=await r.fs.exists(d),p=m&&(await r.fs.stat(d)).isDirectory;if(l.length>1&&!p)return S(m?`destination '${f}' is not a directory`:`destination directory '${f}' does not exist`);let g=[];for(let w of l){let b=Mt(r.cwd,w),R=rt(a,b);if(R.startsWith("..")){if(n.skip)continue;return S(`'${w}' is outside repository at '${a}'`)}if(!await r.fs.exists(b)){if(n.skip)continue;return S(`bad source, source=${R}, destination=${u}`)}let x=(await r.fs.stat(b)).isDirectory;if(!(x?h.entries.some($=>$.path===R||$.path.startsWith(`${R}/`)):h.entries.some($=>$.path===R&&$.stage===0))){let $=!x&&h.entries.some(v=>v.path===R&&v.stage>0);if(n.skip)continue;return S($?`conflicted, source=${R}, destination=${u}`:`not under version control, source=${R}, destination=${u}`)}let P,C;if(p){let $=Vr(R);P=u===""||u==="."?$:`${u}/${$}`,C=H(d,$)}else P=u,C=d;if(await r.fs.exists(C)&&!n.force)if((await r.fs.stat(C)).isDirectory){let v=Vr(R);P=`${P}/${v}`,C=H(C,v)}else{if(n.skip)continue;return S(`destination exists, source=${R}, destination=${P}`)}if(R===P){if(n.skip)continue;return S(`can not move directory into itself, source=${R}, destination=${P}`)}let D=sn(C);if(!await r.fs.exists(D)){if(n.skip)continue;return S(`renaming '${R}' failed: No such file or directory`)}if(x){let $=`${R}/`,v=h.entries.filter(N=>N.path.startsWith($)&&N.stage===0);for(let N of v){let L=N.path.slice(R.length),I=P+L,T=C+L;g.push({srcRel:N.path,dstRel:I,srcAbs:H(a,N.path),dstAbs:T})}}else g.push({srcRel:R,dstRel:P,srcAbs:b,dstAbs:C})}if(g.length===0)return{stdout:"",stderr:"",exitCode:0};if(n["dry-run"])return{stdout:"",stderr:"",exitCode:0};for(let w of g){let b=sn(w.dstAbs);await r.fs.exists(b)||await r.fs.mkdir(b,{recursive:!0});let R=await r.fs.readFileBuffer(w.srcAbs);await r.fs.writeFile(w.dstAbs,R),await r.fs.rm(w.srcAbs);let E=qs(h,w.srcRel,0);if(E){h=lt(h,w.srcRel);let k={...E,path:w.dstRel};h=Pt(h,k)}}for(let w of g)await cr(r.fs,sn(w.srcAbs),a);return await ae(s,h),{stdout:"",stderr:"",exitCode:0}}})}se();Ue();sr();Ce();ie();me();pt();Be();ge();se();Ue();Ce();ie();se();ie();bn();ir();Ae();async function Ha(e,t){let n=await we(e,t);if(n.type!=="commit")return null;let r=an(n.content),o=null;if(r.parents.length>0&&r.parents[0]){let f=await we(e,r.parents[0]);f.type==="commit"&&(o=an(f.content).tree)}let s=await Ve(e,o,r.tree);if(s.length===0)return null;let i=Ln(),a=!1,c=[...s].sort((f,l)=>ve(f.path,l.path));for(let f of c){let l="",d="";if(f.oldHash)try{let h=await we(e,f.oldHash);l=new TextDecoder().decode(h.content)}catch{}if(f.newHash)try{let h=await we(e,f.newHash);d=new TextDecoder().decode(h.content)}catch{}let u=Ht({path:f.path,oldContent:l,newContent:d,oldMode:f.oldMode,newMode:f.newMode});if(u)for(let h of u.split(`
511
513
  `)){if(!h||h.startsWith("index "))continue;let p=(h.startsWith("@@")?h.replace(/^@@ [^@]* @@/,"@@ @@"):h).replace(/[ \t\r]/g,"");p&&(i.update(p),i.update(`
512
- `),a=!0)}}return a?i.hex():null}Be();ge();Ae();Zt();Je();async function ww(e){let t=await te(e);return t?.type==="symbolic"?Pe(t.target):"detached HEAD"}var bw="4b825dc642cb6eb9a060e54bf8d69288fbee4904";function Od(e){return e==="HEAD"?`HEAD is up to date.
514
+ `),a=!0)}}return a?i.hex():null}Be();ge();Ae();Nt();Je();async function ww(e){let t=await te(e);return t?.type==="symbolic"?Pe(t.target):"detached HEAD"}var bw="4b825dc642cb6eb9a060e54bf8d69288fbee4904";function Od(e){return e==="HEAD"?`HEAD is up to date.
513
515
  `:`Current branch ${e} is up to date.
514
- `}async function yw(e,t,n){if(!e.workTree)return null;let r=await le(e,t),o=new Map(Ge(n).map(a=>[a.path,a])),s=new Set(await ot(e,e.workTree,"")),i=[];for(let[a]of r)o.has(a)||s.has(a)&&i.push({path:a,error:"WOULD_LOSE_UNTRACKED_OVERWRITTEN"});if(i.length>0){let a=fo(i,{errorExitCode:1,operationName:"checkout",actionHint:"switch branches"});return F(`${a.stderr}error: could not detach HEAD
516
+ `}async function yw(e,t,n){if(!e.workTree)return null;let r=await le(e,t),o=new Map(Ge(n).map(a=>[a.path,a])),s=new Set(await ot(e,e.workTree,"")),i=[];for(let[a]of r)o.has(a)||s.has(a)&&i.push({path:a,error:"WOULD_LOSE_UNTRACKED_OVERWRITTEN"});if(i.length>0){let a=fo(i,{errorExitCode:1,operationName:"checkout",actionHint:"switch branches"});return _(`${a.stderr}error: could not detach HEAD
515
517
  `)}return null}async function Ew(e,t,n,r){if(!e.workTree)return null;let o=await le(e,t),s=new Set(n.entries.map(c=>c.path)),i=new Set(await ot(e,e.workTree,"")),a=[];for(let[c]of o)!s.has(c)&&i.has(c)&&a.push({path:c,error:"WOULD_LOSE_UNTRACKED_OVERWRITTEN"});return a.length>0?{stdout:"",stderr:`${fo(a,{errorExitCode:128,operationName:"reset",actionHint:"reset"}).stderr}fatal: could not move back to ${r}
516
518
  `,exitCode:128}:null}async function Sd(e,t,n){if(!e.workTree)return null;let r=new Map(Ge(t).map(i=>[i.path,i])),o=new Set(await ot(e,e.workTree,"")),s=[];for(let[i]of n)!r.has(i)&&o.has(i)&&s.push(i);return s.length>0?s:null}function Id(e,t){return`error: The following untracked working tree files would be overwritten by merge:
517
519
  ${e.map(r=>` ${r}`).join(`
@@ -527,20 +529,20 @@ hint: edit the todo list first:
527
529
  hint:
528
530
  hint: git rebase --edit-todo
529
531
  hint: git rebase --continue
530
- `}async function Aa(e,t,n,r,o,s,i){await re(e,t,"HEAD",n,r,`rebase (start): checkout ${s}`),o!=="detached HEAD"&&(await re(e,t,o,n,r,`${i} (finish): ${o} onto ${r}`),await re(e,t,"HEAD",r,r,`${i} (finish): returning to ${o}`))}async function ni(e,t,n,r){let o=await j(e,t),s=await yw(e,o.tree,n);if(s)return s;let i=await Cn(e,o.tree,n);return i.success&&(await ae(e,{version:2,entries:i.newEntries}),await je(e,i.worktreeOps)),r!=="detached HEAD"?await J(e,r,t):await J(e,"HEAD",t),null}async function ri(e,t,n,r,o,s,i,a,c,f){let l=r.startsWith("refs/heads/")?Pe(r):"HEAD",d=f?.reflogAction??"rebase",u=await V(e),h=Kt(u).sort();if(h.length>0)return{stdout:h.map($=>`${$}: needs merge
532
+ `}async function Aa(e,t,n,r,o,s,i){await re(e,t,"HEAD",n,r,`rebase (start): checkout ${s}`),o!=="detached HEAD"&&(await re(e,t,o,n,r,`${i} (finish): ${o} onto ${r}`),await re(e,t,"HEAD",r,r,`${i} (finish): returning to ${o}`))}async function ni(e,t,n,r){let o=await j(e,t),s=await yw(e,o.tree,n);if(s)return s;let i=await On(e,o.tree,n);return i.success&&(await ae(e,{version:2,entries:i.newEntries}),await De(e,i.worktreeOps)),r!=="detached HEAD"?await J(e,r,t):await J(e,"HEAD",t),null}async function ri(e,t,n,r,o,s,i,a,c,f){let l=r.startsWith("refs/heads/")?Pe(r):"HEAD",d=f?.reflogAction??"rebase",u=await V(e),h=zt(u).sort();if(h.length>0)return{stdout:h.map($=>`${$}: needs merge
531
533
  `).join(""),stderr:`error: cannot rebase: You have unstaged changes.
532
534
  error: additionally, your index contains uncommitted changes.
533
535
  error: Please commit or stash them.
534
536
  `,exitCode:1};let m=await lo(e,n,u);if(m)return uo("rebase",m);let p=await c?.hooks?.preRebase?.({repo:e,upstream:i,branch:r!=="detached HEAD"?l:null});if(de(p))return{stdout:"",stderr:p.message??"",exitCode:1};let g=await Hf(e,o,n),w=g.right;if(w.length===0){if(s!==n){let $=await ni(e,s,u,r);return $||(await Aa(e,t,n,s,r,a,d),{stdout:"",stderr:`Successfully rebased and updated ${r}.
535
- `,exitCode:0})}return{stdout:Od(l),stderr:"",exitCode:0}}let b=[],k=[];if(f?.reapplyCherryPicks)k.push(...w);else{let $=g.left,v=new Set;for(let _ of $){let G=await Ha(e,_.hash);G&&v.add(G)}if(v.size>0)for(let _ of w){let G=await Ha(e,_.hash);G&&v.has(G)?b.push(`warning: skipped previously applied commit ${X(_.hash)}`):k.push(_)}else k.push(...w)}let E="";if(b.length>0&&(E=`${b.join(`
537
+ `,exitCode:0})}return{stdout:Od(l),stderr:"",exitCode:0}}let b=[],R=[];if(f?.reapplyCherryPicks)R.push(...w);else{let $=g.left,v=new Set;for(let N of $){let L=await Ha(e,N.hash);L&&v.add(L)}if(v.size>0)for(let N of w){let L=await Ha(e,N.hash);L&&v.has(L)?b.push(`warning: skipped previously applied commit ${X(N.hash)}`):R.push(N)}else R.push(...w)}let E="";if(b.length>0&&(E=`${b.join(`
536
538
  `)}
537
539
  hint: use --reapply-cherry-picks to include skipped commits
538
540
  hint: Disable this message with "git config set advice.skippedCherryPicks false"
539
- `),k.length===0){if(s!==n){let $=await ni(e,s,u,r);if($)return $.stderr=E+$.stderr,$;await Aa(e,t,n,s,r,a,d)}return{stdout:"",stderr:`${E}Successfully rebased and updated ${r}.
540
- `,exitCode:0}}let R=k.map($=>({hash:$.hash,subject:ue($.commit.message)})),x=s,y=0;for(let $ of R){let v=await j(e,$.hash);if(v.parents.length>1||v.parents.length===0||v.parents[0]!==x)break;x=$.hash,y++}let C=R.splice(0,y);if(R.length===0){if(x===n&&!E)return{stdout:Od(l),stderr:"",exitCode:0};if(x!==n){let $=await ni(e,x,u,r);if($)return $.stderr=E+$.stderr,$;await Aa(e,t,n,x,r,a,d)}return{stdout:"",stderr:`${E}Successfully rebased and updated ${r}.
541
- `,exitCode:0}}let P=await ni(e,x,u,"detached HEAD");if(P)return P.stderr=E+P.stderr,P;await he(e,"CHERRY_PICK_HEAD"),await he(e,"REVERT_HEAD"),await be(e,"MERGE_MSG"),await be(e,"MERGE_MODE"),await re(e,t,"HEAD",n,x,`rebase (start): checkout ${a}`);let D={headName:r,origHead:n,onto:s,todo:R,done:C,msgnum:y,end:y+R.length,reflogAction:d};await ea(e,D),await J(e,"ORIG_HEAD",n);let A=await Da(e,t,c?.mergeDriver);return E&&(A.stderr=E+A.stderr),A}async function Da(e,t,n){let r=[],o=[];for(;;){let s=await kt(e);if(!s||s.todo.length===0)break;let i=s.todo[0];if(!i)break;r.push(`Rebasing (${s.msgnum+1}/${s.end})\r`),await vf(e);let a=await kw(e,i,t,n);if(a.conflict){if(a.rescheduleCurrent){let c=await kt(e);c&&(c.todo=[i,...c.todo],await ea(e,c))}return a.stdout&&o.push(a.stdout),r.push(a.stderr),{stdout:o.join(""),stderr:r.join(""),exitCode:1}}a.stdout&&o.push(a.stdout),a.stderr&&r.push(a.stderr)}return Rw(e,r,t)}async function kw(e,t,n,r){let o=t.hash,s=await j(e,o),i=s.parents.length>0?s.parents[0]:null,a=i?await j(e,i):null,c=await Z(e);if(!c)return{conflict:!0,stdout:"",stderr:`fatal: no HEAD commit during rebase
541
+ `),R.length===0){if(s!==n){let $=await ni(e,s,u,r);if($)return $.stderr=E+$.stderr,$;await Aa(e,t,n,s,r,a,d)}return{stdout:"",stderr:`${E}Successfully rebased and updated ${r}.
542
+ `,exitCode:0}}let k=R.map($=>({hash:$.hash,subject:ue($.commit.message)})),x=s,y=0;for(let $ of k){let v=await j(e,$.hash);if(v.parents.length>1||v.parents.length===0||v.parents[0]!==x)break;x=$.hash,y++}let P=k.splice(0,y);if(k.length===0){if(x===n&&!E)return{stdout:Od(l),stderr:"",exitCode:0};if(x!==n){let $=await ni(e,x,u,r);if($)return $.stderr=E+$.stderr,$;await Aa(e,t,n,x,r,a,d)}return{stdout:"",stderr:`${E}Successfully rebased and updated ${r}.
543
+ `,exitCode:0}}let C=await ni(e,x,u,"detached HEAD");if(C)return C.stderr=E+C.stderr,C;await he(e,"CHERRY_PICK_HEAD"),await he(e,"REVERT_HEAD"),await be(e,"MERGE_MSG"),await be(e,"MERGE_MODE"),await re(e,t,"HEAD",n,x,`rebase (start): checkout ${a}`);let A={headName:r,origHead:n,onto:s,todo:k,done:P,msgnum:y,end:y+k.length,reflogAction:d};await ea(e,A),await J(e,"ORIG_HEAD",n);let D=await Da(e,t,c?.mergeDriver);return E&&(D.stderr=E+D.stderr),D}async function Da(e,t,n){let r=[],o=[];for(;;){let s=await kt(e);if(!s||s.todo.length===0)break;let i=s.todo[0];if(!i)break;r.push(`Rebasing (${s.msgnum+1}/${s.end})\r`),await vf(e);let a=await kw(e,i,t,n);if(a.conflict){if(a.rescheduleCurrent){let c=await kt(e);c&&(c.todo=[i,...c.todo],await ea(e,c))}return a.stdout&&o.push(a.stdout),r.push(a.stderr),{stdout:o.join(""),stderr:r.join(""),exitCode:1}}a.stdout&&o.push(a.stdout),a.stderr&&r.push(a.stderr)}return Rw(e,r,t)}async function kw(e,t,n,r){let o=t.hash,s=await j(e,o),i=s.parents.length>0?s.parents[0]:null,a=i?await j(e,i):null,c=await Z(e);if(!c)return{conflict:!0,stdout:"",stderr:`fatal: no HEAD commit during rebase
542
544
  `};if(i&&i===c){let I=await V(e);if(!a)return{conflict:!0,stdout:"",stderr:`fatal: missing parent commit during rebase
543
- `};let T=await qe(e,a.tree),L=await qe(e,s.tree),W=new Map(T.map(z=>[z.path,z.hash])),N=new Map;for(let z of L){let Q=W.get(z.path);(!Q||Q!==z.hash)&&N.set(z.path,z.hash)}let B=await Sd(e,I,N);if(B)return await J(e,"REBASE_HEAD",o),await Eo(e,o,s.author),{conflict:!0,stdout:"",stderr:Id(B,t),rescheduleCurrent:!0};let ee=await Cn(e,s.tree,I);return ee.success&&(await ae(e,{version:2,entries:ee.newEntries}),await je(e,ee.worktreeOps)),await Gn(e,o),await re(e,n,"HEAD",c,o,"rebase: fast-forward"),{conflict:!1,stdout:"",stderr:""}}let f=await j(e,c),l=a?a.tree:null,d=X(o),u=ue(s.message),h=await ke(e,"merge.conflictstyle")??"merge",m={a:"HEAD",b:u?`${d} (${u})`:d,conflictStyle:h},p=await qt(e,l,f.tree,s.tree,m,r),g=await V(e),[w,b,k]=await Promise.all([qe(e,f.tree),l?qe(e,l):Promise.resolve([]),qe(e,s.tree)]),E=new Set;for(let I of b)E.add(I.path);for(let I of w)E.add(I.path);for(let I of k)E.add(I.path);let R=g.entries.filter(I=>!E.has(I.path)),x=[...p.entries,...R];x.sort((I,T)=>ve(I.path,T.path)||I.stage-T.stage);let y={version:2,entries:x},C=x.filter(I=>I.stage===0),P=await Fe(e,C),D=new Map(w.map(I=>[I.path,I])),A=new Map;for(let I of C){let T=D.get(I.path);(!T||T.hash!==I.hash)&&A.set(I.path,I.hash)}for(let I of p.conflicts){if(I.reason==="content"||I.reason==="add-add"){A.set(I.path,null);continue}if(I.reason==="delete-modify"){let T=p.entries.filter(N=>N.path===I.path&&N.stage>0),L=T.find(N=>N.stage===2),W=T.find(N=>N.stage===3);W&&!L&&A.set(I.path,W.hash)}}let $=await Sd(e,g,A);if($)return await J(e,"REBASE_HEAD",o),await Eo(e,o,s.author),{conflict:!0,stdout:"",stderr:Id($,t),rescheduleCurrent:!0};if(await ae(e,y),e.workTree){let I=await Bn(e,f.tree,p.resultTree,g);I.success&&await je(e,I.worktreeOps)}if(p.conflicts.length>0){await J(e,"REBASE_HEAD",o),await Eo(e,o,s.author),await Le(e,"MERGE_MSG",s.message),await Le(e,"rebase-merge/message",s.message);let I=p.messages.join(`
545
+ `};let T=await qe(e,a.tree),G=await qe(e,s.tree),W=new Map(T.map(z=>[z.path,z.hash])),F=new Map;for(let z of G){let Q=W.get(z.path);(!Q||Q!==z.hash)&&F.set(z.path,z.hash)}let B=await Sd(e,I,F);if(B)return await J(e,"REBASE_HEAD",o),await Eo(e,o,s.author),{conflict:!0,stdout:"",stderr:Id(B,t),rescheduleCurrent:!0};let ee=await On(e,s.tree,I);return ee.success&&(await ae(e,{version:2,entries:ee.newEntries}),await De(e,ee.worktreeOps)),await _n(e,o),await re(e,n,"HEAD",c,o,"rebase: fast-forward"),{conflict:!1,stdout:"",stderr:""}}let f=await j(e,c),l=a?a.tree:null,d=X(o),u=ue(s.message),h=await ke(e,"merge.conflictstyle")??"merge",m={a:"HEAD",b:u?`${d} (${u})`:d,conflictStyle:h},p=await Kt(e,l,f.tree,s.tree,m,r),g=await V(e),[w,b,R]=await Promise.all([qe(e,f.tree),l?qe(e,l):Promise.resolve([]),qe(e,s.tree)]),E=new Set;for(let I of b)E.add(I.path);for(let I of w)E.add(I.path);for(let I of R)E.add(I.path);let k=g.entries.filter(I=>!E.has(I.path)),x=[...p.entries,...k];x.sort((I,T)=>ve(I.path,T.path)||I.stage-T.stage);let y={version:2,entries:x},P=x.filter(I=>I.stage===0),C=await Fe(e,P),A=new Map(w.map(I=>[I.path,I])),D=new Map;for(let I of P){let T=A.get(I.path);(!T||T.hash!==I.hash)&&D.set(I.path,I.hash)}for(let I of p.conflicts){if(I.reason==="content"||I.reason==="add-add"){D.set(I.path,null);continue}if(I.reason==="delete-modify"){let T=p.entries.filter(F=>F.path===I.path&&F.stage>0),G=T.find(F=>F.stage===2),W=T.find(F=>F.stage===3);W&&!G&&D.set(I.path,W.hash)}}let $=await Sd(e,g,D);if($)return await J(e,"REBASE_HEAD",o),await Eo(e,o,s.author),{conflict:!0,stdout:"",stderr:Id($,t),rescheduleCurrent:!0};if(await ae(e,y),e.workTree){let I=await hn(e,f.tree,p.resultTree,g);I.success&&await De(e,I.worktreeOps)}if(p.conflicts.length>0){await J(e,"REBASE_HEAD",o),await Eo(e,o,s.author),await Le(e,"MERGE_MSG",s.message),await Le(e,"rebase-merge/message",s.message);let I=p.messages.join(`
544
546
  `);return{conflict:!0,stdout:I?`${I}
545
547
  `:"",stderr:`error: could not apply ${d}... ${t.subject}
546
548
  hint: Resolve all conflicts manually, mark them as resolved with
@@ -549,15 +551,15 @@ hint: You can instead skip this commit: run "git rebase --skip".
549
551
  hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
550
552
  hint: Disable this message with "git config set advice.mergeConflict false"
551
553
  Could not apply ${d}... # ${t.subject}
552
- `}}let v=i===null?s.tree===bw:s.tree===l;if(P===f.tree&&!v)return{conflict:!1,stdout:"",stderr:`dropping ${o} ${t.subject} -- patch contents already upstream
553
- `};let _=await tt(e,n);if(M(_))return{conflict:!0,stdout:"",stderr:_.stderr};let G=await Ot(e,P,[c],s.author,_,s.message);return await re(e,n,"HEAD",c,G,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}async function Rw(e,t,n){let r=await kt(e);if(!r)return S("no rebase in progress");let o=await Z(e);if(!o)return S("no HEAD during rebase finish");if(r.headName!=="detached HEAD"){let a=await U(e,r.headName);if(a!==r.origHead)return{stdout:"",stderr:t.join("")+`error: update_ref failed for ref '${r.headName}': cannot lock ref '${r.headName}': is at ${a??"(null)"} but expected ${r.origHead}
554
+ `}}let v=i===null?s.tree===bw:s.tree===l;if(C===f.tree&&!v)return{conflict:!1,stdout:"",stderr:`dropping ${o} ${t.subject} -- patch contents already upstream
555
+ `};let N=await tt(e,n);if(M(N))return{conflict:!0,stdout:"",stderr:N.stderr};let L=await Ot(e,C,[c],s.author,N,s.message);return await re(e,n,"HEAD",c,L,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}async function Rw(e,t,n){let r=await kt(e);if(!r)return S("no rebase in progress");let o=await Z(e);if(!o)return S("no HEAD during rebase finish");if(r.headName!=="detached HEAD"){let a=await U(e,r.headName);if(a!==r.origHead)return{stdout:"",stderr:t.join("")+`error: update_ref failed for ref '${r.headName}': cannot lock ref '${r.headName}': is at ${a??"(null)"} but expected ${r.origHead}
554
556
  error: could not update ${r.headName}
555
557
  `,exitCode:1};await J(e,r.headName,o),await Ze(e,"HEAD",r.headName),await Et(e),await re(e,n,r.headName,r.origHead,o,`${r.reflogAction??"rebase"} (finish): ${r.headName} onto ${r.onto}`),await re(e,n,"HEAD",o,o,`${r.reflogAction??"rebase"} (finish): returning to ${r.headName}`)}let i=`Successfully rebased and updated ${r.headName}.
556
- `;return await he(e,"REBASE_HEAD"),await hr(e),await ta(e),{stdout:"",stderr:t.join("")+i,exitCode:0}}async function Td(e,t){let n=await kt(e);if(!n)return S("no rebase in progress");let r=await Z(e),o=n.origHead,s=await j(e,o),i=await V(e),a=await Ew(e,s.tree,i,o);if(a)return a;let c=await Cn(e,s.tree,i);c.success&&(await ae(e,{version:2,entries:c.newEntries}),await je(e,c.worktreeOps)),n.headName!=="detached HEAD"?(await J(e,n.headName,o),await Ze(e,"HEAD",n.headName),await Et(e)):await Gn(e,o);let f=n.headName==="detached HEAD"?o:n.headName;return await re(e,t,"HEAD",r,o,`rebase (abort): returning to ${f}`),await he(e,"REBASE_HEAD"),await hr(e),await ta(e),{stdout:"",stderr:"",exitCode:0}}async function vd(e,t,n){let r="",o=await kt(e);if(!o)return S("no rebase in progress");let s=await V(e);if(Lt(s))return F(`error: Committing is not possible because you have unmerged files.
558
+ `;return await he(e,"REBASE_HEAD"),await hr(e),await ta(e),{stdout:"",stderr:t.join("")+i,exitCode:0}}async function Td(e,t){let n=await kt(e);if(!n)return S("no rebase in progress");let r=await Z(e),o=n.origHead,s=await j(e,o),i=await V(e),a=await Ew(e,s.tree,i,o);if(a)return a;let c=await On(e,s.tree,i);c.success&&(await ae(e,{version:2,entries:c.newEntries}),await De(e,c.worktreeOps)),n.headName!=="detached HEAD"?(await J(e,n.headName,o),await Ze(e,"HEAD",n.headName),await Et(e)):await _n(e,o);let f=n.headName==="detached HEAD"?o:n.headName;return await re(e,t,"HEAD",r,o,`rebase (abort): returning to ${f}`),await he(e,"REBASE_HEAD"),await hr(e),await ta(e),{stdout:"",stderr:"",exitCode:0}}async function vd(e,t,n){let r="",o=await kt(e);if(!o)return S("no rebase in progress");let s=await V(e);if(Lt(s))return _(`error: Committing is not possible because you have unmerged files.
557
559
  hint: Fix them up in the work tree, and then use 'git add <file>'
558
560
  hint: as appropriate to mark resolution and make a commit.
559
561
  fatal: Exiting because of an unresolved conflict.
560
- `,128);let i=await U(e,"REBASE_HEAD");if(i){let c=await Z(e);if(!c)return S("Cannot read HEAD");let f=await j(e,c),l=Ge(s),d=await Fe(e,l),u=d!==f.tree,h=await $e(e,"rebase-merge/message")!==null;if(u&&!h)return F(`error: you have staged changes in your working tree
562
+ `,128);let i=await U(e,"REBASE_HEAD");if(i){let c=await Z(e);if(!c)return S("Cannot read HEAD");let f=await j(e,c),l=Ge(s),d=await Fe(e,l),u=d!==f.tree,h=await $e(e,"rebase-merge/message")!==null;if(u&&!h)return _(`error: you have staged changes in your working tree
561
563
  If these changes are meant to be squashed into the previous commit, run:
562
564
 
563
565
  git commit --amend
@@ -570,25 +572,25 @@ In both cases, once you're done, continue with:
570
572
 
571
573
  git rebase --continue
572
574
 
573
- `);if(u){let p=await j(e,i),g=await U(e,"CHERRY_PICK_HEAD"),w=g?await j(e,g):p,b;b=await $e(e,"rebase-merge/message")??await $e(e,"MERGE_MSG")??void 0,b&&(b=St(b)),b||(b=p.message);let k=await tt(e,t);if(M(k))return k;let E=It(b),R=[c],x=await U(e,"MERGE_HEAD");x&&R.push(x);let y=await Ot(e,d,R,w.author,k,E);x&&(await he(e,"MERGE_HEAD"),await be(e,"MERGE_MODE"));let C=ue(E);await re(e,t,"HEAD",c,y,`rebase (continue): ${C}`);let P=await ww(e),D=w.author.timestamp!==k.timestamp||w.author.timezone!==k.timezone,A=await Sn(e,f.tree,d,w.author,k,D);r=`${Qt(P,y,E)}
574
- ${A}`}o.todo.length===0||await he(e,"REBASE_HEAD"),await he(e,"CHERRY_PICK_HEAD"),await he(e,"REVERT_HEAD"),await be(e,"MERGE_MSG"),await be(e,"rebase-merge/message")}let a=await Da(e,t,n);return r&&(a.stdout=r+a.stdout),a}async function Hd(e,t,n){if(!await kt(e))return S("no rebase in progress");let o=await Z(e);if(!o)return{stdout:"",stderr:`error: could not determine HEAD revision
575
+ `);if(u){let p=await j(e,i),g=await U(e,"CHERRY_PICK_HEAD"),w=g?await j(e,g):p,b;b=await $e(e,"rebase-merge/message")??await $e(e,"MERGE_MSG")??void 0,b&&(b=St(b)),b||(b=p.message);let R=await tt(e,t);if(M(R))return R;let E=It(b),k=[c],x=await U(e,"MERGE_HEAD");x&&k.push(x);let y=await Ot(e,d,k,w.author,R,E);x&&(await he(e,"MERGE_HEAD"),await be(e,"MERGE_MODE"));let P=ue(E);await re(e,t,"HEAD",c,y,`rebase (continue): ${P}`);let C=await ww(e),A=w.author.timestamp!==R.timestamp||w.author.timezone!==R.timezone,D=await vn(e,f.tree,d,w.author,R,A);r=`${Qt(C,y,E)}
576
+ ${D}`}o.todo.length===0||await he(e,"REBASE_HEAD"),await he(e,"CHERRY_PICK_HEAD"),await he(e,"REVERT_HEAD"),await be(e,"MERGE_MSG"),await be(e,"rebase-merge/message")}let a=await Da(e,t,n);return r&&(a.stdout=r+a.stdout),a}async function Hd(e,t,n){if(!await kt(e))return S("no rebase in progress");let o=await Z(e);if(!o)return{stdout:"",stderr:`error: could not determine HEAD revision
575
577
  fatal: could not discard worktree changes
576
- `,exitCode:128};let s=await j(e,o),i=await V(e),a=await Cn(e,s.tree,i);return a.success&&(await ae(e,{version:2,entries:a.newEntries}),await je(e,a.worktreeOps)),await he(e,"REBASE_HEAD"),await he(e,"CHERRY_PICK_HEAD"),await he(e,"REVERT_HEAD"),await he(e,"MERGE_HEAD"),await be(e,"MERGE_MSG"),await be(e,"MERGE_MODE"),await be(e,"rebase-merge/message"),Da(e,t,n)}function Ad(e,t,n,r,o){if(t.useRebase&&!n&&r.length>0&&o){let s=e?.type==="symbolic"?Pe(e.target):"HEAD";return s==="HEAD"?`HEAD is up to date.
578
+ `,exitCode:128};let s=await j(e,o),i=await V(e),a=await On(e,s.tree,i);return a.success&&(await ae(e,{version:2,entries:a.newEntries}),await De(e,a.worktreeOps)),await he(e,"REBASE_HEAD"),await he(e,"CHERRY_PICK_HEAD"),await he(e,"REVERT_HEAD"),await he(e,"MERGE_HEAD"),await be(e,"MERGE_MSG"),await be(e,"MERGE_MODE"),await be(e,"rebase-merge/message"),Da(e,t,n)}function Ad(e,t,n,r,o){if(t.useRebase&&!n&&r.length>0&&o){let s=e?.type==="symbolic"?Pe(e.target):"HEAD";return s==="HEAD"?`HEAD is up to date.
577
579
  `:`Current branch ${s} is up to date.
578
580
  `}return`Already up to date.
579
- `}function Dd(e,t){e.command("pull",{description:"Fetch from and integrate with another repository",args:[K.string().name("remote").describe("Remote to pull from").optional(),K.string().name("branch").describe("Remote branch").optional()],options:{rebase:O().alias("r").describe("Rebase instead of merge"),noRebase:O().describe("Merge instead of rebase"),ffOnly:O().describe("Only fast-forward"),noFf:O().describe("Create a merge commit even for fast-forwards"),depth:Y.number().describe("Limit fetching to the specified number of commits"),unshallow:O().describe("Convert a shallow repository to a complete one")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await Ko(s,n);if(M(i))return i;let{depth:a}=i,c=await Qe(s);if(M(c))return c;let f=await te(s),l=await V(s);if(Lt(l))return{stdout:"",stderr:`error: Pulling is not possible because you have unmerged files.
581
+ `}function Dd(e,t){e.command("pull",{description:"Fetch from and integrate with another repository",args:[q.string().name("remote").describe("Remote to pull from").optional(),q.string().name("branch").describe("Remote branch").optional()],options:{rebase:O().alias("r").describe("Rebase instead of merge"),noRebase:O().describe("Merge instead of rebase"),ffOnly:O().describe("Only fast-forward"),noFf:O().describe("Create a merge commit even for fast-forwards"),depth:Y.number().describe("Limit fetching to the specified number of commits"),unshallow:O().describe("Convert a shallow repository to a complete one")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await Ko(s,n);if(M(i))return i;let{depth:a}=i,c=await Qe(s);if(M(c))return c;let f=await te(s),l=await V(s);if(Lt(l))return{stdout:"",stderr:`error: Pulling is not possible because you have unmerged files.
580
582
  hint: Fix them up in the work tree, and then use 'git add/rm <file>'
581
583
  hint: as appropriate to mark resolution and make a commit.
582
584
  fatal: Exiting because of an unresolved conflict.
583
585
  `,exitCode:128};let d=n.remote,u=n.branch,h=null;if(!d&&f?.type==="symbolic"){let fe=f.target.startsWith("refs/heads/")?f.target.slice(11):f.target,nt=(await pe(s))[`branch "${fe}"`];nt?(d=nt.remote||"origin",!u&&nt.merge&&(u=nt.merge.startsWith("refs/heads/")?nt.merge.slice(11):nt.merge)):u||(h=fe)}d=d||"origin";let m=await xw(s,n,f);if(m.useRebase){let fe=await lo(s,c,l);if(fe)return uo("pull with rebase",fe,128)}let p=await zo(s,d,r.env,fe=>({stdout:"",stderr:`fatal: ${fe}
584
- `,exitCode:1}));if(M(p))return p;let{transport:g,config:w}=p,b=u??null,k=await t?.hooks?.prePull?.({repo:s,remote:d,branch:b});if(de(k))return{stdout:"",stderr:k.message??"",exitCode:1};let E=kr(w.fetchRefspec),R=await g.advertiseRefs(),x=await Ss(s),y=[],C=new Set,P=[];for(let fe of R){if(fe.name==="HEAD")continue;let Ke=Is(E,fe.name);Ke!==null&&(P.push({remote:fe,localRef:Ke}),C.has(fe.hash)||(C.add(fe.hash),y.push(fe.hash)))}let D=new Set(x),A=y.filter(fe=>!D.has(fe)),{existingShallows:$,shallowOpts:v}=await Vo(s,a),_=A.length>0?A:v?y:[];if(_.length>0){let fe=await g.fetch(_,x,v);fe.shallowUpdates&&await Fr(s,fe.shallowUpdates,$)}let G=await Hn(s,r.env),I=[];for(let fe of P){let Ke=await U(s,fe.localRef);I.push(Ke),await J(s,fe.localRef,fe.remote.hash),await st(s,fe.localRef,{oldHash:Ke??ne,newHash:fe.remote.hash,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:Ke?"pull":"pull: storing head"})}let T=us(P.map((fe,Ke)=>({...fe,oldHash:I[Ke]})),Gt,X);T.push(...await Yo({gitCtx:s,transport:g,remoteRefs:R,ident:G,reflogAction:"pull"}));let L=T.length>0?`From ${w.url}
585
- ${Dr(T,10)}`:"";if(await vr(s,d,R,g.headTarget),f?.type!=="symbolic"&&!u){let fe=m.useRebase?"rebase against":"merge with";return{stdout:"",stderr:L+`You are not currently on a branch.
586
+ `,exitCode:1}));if(M(p))return p;let{transport:g,config:w}=p,b=u??null,R=await t?.hooks?.prePull?.({repo:s,remote:d,branch:b});if(de(R))return{stdout:"",stderr:R.message??"",exitCode:1};let E=kr(w.fetchRefspec),k=await g.advertiseRefs(),x=await Ss(s),y=[],P=new Set,C=[];for(let fe of k){if(fe.name==="HEAD")continue;let Ke=Is(E,fe.name);Ke!==null&&(C.push({remote:fe,localRef:Ke}),P.has(fe.hash)||(P.add(fe.hash),y.push(fe.hash)))}let A=new Set(x),D=y.filter(fe=>!A.has(fe)),{existingShallows:$,shallowOpts:v}=await Vo(s,a),N=D.length>0?D:v?y:[];if(N.length>0){let fe=await g.fetch(N,x,v);fe.shallowUpdates&&await Fr(s,fe.shallowUpdates,$)}let L=await Mn(s,r.env),I=[];for(let fe of C){let Ke=await U(s,fe.localRef);I.push(Ke),await J(s,fe.localRef,fe.remote.hash),await st(s,fe.localRef,{oldHash:Ke??ne,newHash:fe.remote.hash,name:L.name,email:L.email,timestamp:L.timestamp,tz:L.tz,message:Ke?"pull":"pull: storing head"})}let T=us(C.map((fe,Ke)=>({...fe,oldHash:I[Ke]})),Gt,X);T.push(...await Yo({gitCtx:s,transport:g,remoteRefs:k,ident:L,reflogAction:"pull"}));let G=T.length>0?`From ${w.url}
587
+ ${Dr(T,10)}`:"";if(await vr(s,d,k,g.headTarget),f?.type!=="symbolic"&&!u){let fe=m.useRebase?"rebase against":"merge with";return{stdout:"",stderr:G+`You are not currently on a branch.
586
588
  Please specify which branch you want to ${fe}.
587
589
  See git-pull(1) for details.
588
590
 
589
591
  git pull <remote> <branch>
590
592
 
591
- `,exitCode:1}}if(h){let fe=m.useRebase?"rebase against":"merge with",Ke=await pe(s),nt=[];for(let gu of Object.keys(Ke)){let Ya=gu.match(/^remote "(.+)"$/);Ya?.[1]&&nt.push(Ya[1])}let xr=nt.length===1?nt[0]:"<remote>";return{stdout:"",stderr:L+`There is no tracking information for the current branch.
593
+ `,exitCode:1}}if(h){let fe=m.useRebase?"rebase against":"merge with",Ke=await pe(s),nt=[];for(let gu of Object.keys(Ke)){let Ya=gu.match(/^remote "(.+)"$/);Ya?.[1]&&nt.push(Ya[1])}let xr=nt.length===1?nt[0]:"<remote>";return{stdout:"",stderr:G+`There is no tracking information for the current branch.
592
594
  Please specify which branch you want to ${fe}.
593
595
  See git-pull(1) for details.
594
596
 
@@ -598,10 +600,10 @@ If you wish to set tracking information for this branch you can do so with:
598
600
 
599
601
  git branch --set-upstream-to=${xr}/<branch> ${h}
600
602
 
601
- `,exitCode:1}}let W=null;if(u){let fe=R.find(Ke=>Ke.name===`refs/heads/${u}`);if(fe)W=fe.hash;else return{stdout:"",stderr:L+`Your configuration specifies to merge with the ref 'refs/heads/${u}'
603
+ `,exitCode:1}}let W=null;if(u){let fe=k.find(Ke=>Ke.name===`refs/heads/${u}`);if(fe)W=fe.hash;else return{stdout:"",stderr:G+`Your configuration specifies to merge with the ref 'refs/heads/${u}'
602
604
  from the remote, but no such ref was fetched.
603
- `,exitCode:1}}else{let fe=R.find(Ke=>Ke.name==="HEAD");fe&&(W=fe.hash)}if(W&&await r.fs.writeFile(H(s.gitDir,"FETCH_HEAD"),`${W} ${w.url}
604
- `),!W)return S("Could not determine remote HEAD");let N=W;if(await be(s,"MERGE_MSG"),c===N)return await t?.hooks?.postPull?.({repo:s,remote:d,branch:b,strategy:"up-to-date",commitHash:null}),{stdout:Ad(f,m,!!n.ffOnly,L,!1),stderr:L,exitCode:0};if(m.useRebase&&!m.ffOnly){let fe=f?.type==="symbolic"?f.target:"detached HEAD",Ke=u?`${d}/${u}`:d,nt=await ri(s,r.env,c,fe,N,N,Ke,Ke,t,{reflogAction:"pull"});if(nt.exitCode===0){let xr=await Z(s);await t?.hooks?.postPull?.({repo:s,remote:d,branch:b,strategy:"rebase",commitHash:xr})}return{...nt,stderr:L+nt.stderr}}let B=await Wt(s,c,N),ee=B[0]??null;if(ee===N)return await t?.hooks?.postPull?.({repo:s,remote:d,branch:b,strategy:"up-to-date",commitHash:null}),{stdout:Ad(f,m,!!n.ffOnly,L,!0),stderr:L,exitCode:0};let{noFf:z,ffOnly:Q,ffOnlySource:Re,hasReconciliationStrategy:Ne}=m,ce=ee===c;if(!ce&&!Ne)return{stdout:"",stderr:L+`hint: You have divergent branches and need to specify how to reconcile them.
605
+ `,exitCode:1}}else{let fe=k.find(Ke=>Ke.name==="HEAD");fe&&(W=fe.hash)}if(W&&await r.fs.writeFile(H(s.gitDir,"FETCH_HEAD"),`${W} ${w.url}
606
+ `),!W)return S("Could not determine remote HEAD");let F=W;if(await be(s,"MERGE_MSG"),c===F)return await t?.hooks?.postPull?.({repo:s,remote:d,branch:b,strategy:"up-to-date",commitHash:null}),{stdout:Ad(f,m,!!n.ffOnly,G,!1),stderr:G,exitCode:0};if(m.useRebase&&!m.ffOnly){let fe=f?.type==="symbolic"?f.target:"detached HEAD",Ke=u?`${d}/${u}`:d,nt=await ri(s,r.env,c,fe,F,F,Ke,Ke,t,{reflogAction:"pull"});if(nt.exitCode===0){let xr=await Z(s);await t?.hooks?.postPull?.({repo:s,remote:d,branch:b,strategy:"rebase",commitHash:xr})}return{...nt,stderr:G+nt.stderr}}let B=await qt(s,c,F),ee=B[0]??null;if(ee===F)return await t?.hooks?.postPull?.({repo:s,remote:d,branch:b,strategy:"up-to-date",commitHash:null}),{stdout:Ad(f,m,!!n.ffOnly,G,!0),stderr:G,exitCode:0};let{noFf:z,ffOnly:Q,ffOnlySource:Re,hasReconciliationStrategy:Ne}=m,ce=ee===c;if(!ce&&!Ne)return{stdout:"",stderr:G+`hint: You have divergent branches and need to specify how to reconcile them.
605
607
  hint: You can do so by running one of the following commands sometime before
606
608
  hint: your next pull:
607
609
  hint:
@@ -614,8 +616,8 @@ hint: preference for all repositories. You can also pass --rebase, --no-rebase,
614
616
  hint: or --ff-only on the command line to override the configured default per
615
617
  hint: invocation.
616
618
  fatal: Need to specify how to reconcile divergent branches.
617
- `,exitCode:128};if(B.length===0&&Re!=="cli"&&Re!=="pull")return{stdout:"",stderr:L+`fatal: refusing to merge unrelated histories
618
- `,exitCode:128};if(Q&&!ce)return{stdout:"",stderr:L+`hint: Diverging branches can't be fast-forwarded, you need to either:
619
+ `,exitCode:128};if(B.length===0&&Re!=="cli"&&Re!=="pull")return{stdout:"",stderr:G+`fatal: refusing to merge unrelated histories
620
+ `,exitCode:128};if(Q&&!ce)return{stdout:"",stderr:G+`hint: Diverging branches can't be fast-forwarded, you need to either:
619
621
  hint:
620
622
  hint: git merge --no-ff
621
623
  hint:
@@ -625,18 +627,18 @@ hint: git rebase
625
627
  hint:
626
628
  hint: Disable this message with "git config set advice.diverging false"
627
629
  fatal: Not possible to fast-forward, aborting.
628
- `,exitCode:128};if(ce&&!z){let fe=await Do(s,c,N);if(fe.exitCode===0){let Ke=f?.type==="symbolic"?f.target:"HEAD",xr=`pull${Q?" --ff-only":""}: Fast-forward`;await st(s,Ke,{oldHash:c,newHash:N,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:xr}),f?.type==="symbolic"&&await st(s,"HEAD",{oldHash:c,newHash:N,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:xr}),await t?.hooks?.postMerge?.({repo:s,headHash:c,theirsHash:N,strategy:"fast-forward",commitHash:null}),await t?.hooks?.postPull?.({repo:s,remote:d,branch:b,strategy:"fast-forward",commitHash:N})}return{...fe,stderr:L+fe.stderr}}let Se=f?.type==="symbolic"?Pe(f.target):"HEAD",ht=N,Rr=u||"HEAD",Xe=await ke(s,"merge.conflictstyle")??"merge",Wr={a:"HEAD",b:ht,conflictStyle:Xe},nr=await Rs(s,c,N,Wr,t?.mergeDriver),Wa=await j(s,c),qr=await In(s,nr,Wa.tree,{labels:Wr,errorExitCode:2,operationName:"merge"});if(!qr.ok)return{stdout:qr.stdout,stderr:L+qr.stderr,exitCode:qr.exitCode};if(nr.conflicts.length>0){await J(s,"MERGE_HEAD",N),await J(s,"ORIG_HEAD",c);let fe=await gr(s,Rr,Se,w.url),Ke=Kt({version:2,entries:nr.entries}).sort();return fe+=`
630
+ `,exitCode:128};if(ce&&!z){let fe=await Do(s,c,F);if(fe.exitCode===0){let Ke=f?.type==="symbolic"?f.target:"HEAD",xr=`pull${Q?" --ff-only":""}: Fast-forward`;await st(s,Ke,{oldHash:c,newHash:F,name:L.name,email:L.email,timestamp:L.timestamp,tz:L.tz,message:xr}),f?.type==="symbolic"&&await st(s,"HEAD",{oldHash:c,newHash:F,name:L.name,email:L.email,timestamp:L.timestamp,tz:L.tz,message:xr}),await t?.hooks?.postMerge?.({repo:s,headHash:c,theirsHash:F,strategy:"fast-forward",commitHash:null}),await t?.hooks?.postPull?.({repo:s,remote:d,branch:b,strategy:"fast-forward",commitHash:F})}return{...fe,stderr:G+fe.stderr}}let Se=f?.type==="symbolic"?Pe(f.target):"HEAD",ht=F,Rr=u||"HEAD",Xe=await ke(s,"merge.conflictstyle")??"merge",Wr={a:"HEAD",b:ht,conflictStyle:Xe},rr=await Rs(s,c,F,Wr,t?.mergeDriver),Wa=await j(s,c),qr=await Hn(s,rr,Wa.tree,{labels:Wr,errorExitCode:2,operationName:"merge"});if(!qr.ok)return{stdout:qr.stdout,stderr:G+qr.stderr,exitCode:qr.exitCode};if(rr.conflicts.length>0){await J(s,"MERGE_HEAD",F),await J(s,"ORIG_HEAD",c);let fe=await gr(s,Rr,Se,w.url),Ke=zt({version:2,entries:rr.entries}).sort();return fe+=`
629
631
  # Conflicts:
630
632
  ${Ke.map(nt=>`# ${nt}`).join(`
631
633
  `)}
632
- `,await Le(s,"MERGE_MSG",fe),await Le(s,"MERGE_MODE",z?"no-ff":""),{stdout:`${[...nr.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
634
+ `,await Le(s,"MERGE_MSG",fe),await Le(s,"MERGE_MODE",z?"no-ff":""),{stdout:`${[...rr.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
633
635
  `)}
634
- `,stderr:L,exitCode:1}}let As=qr.mergedTreeHash,fi=await hn(s,r.env);if(M(fi))return fi;let li=await tt(s,r.env);if(M(li))return li;let Ds=await gr(s,Rr,Se,w.url),qa={repo:s,message:Ds,treeHash:As,headHash:c,theirsHash:N},Ka=await t?.hooks?.mergeMsg?.(qa);if(de(Ka))return{stdout:"",stderr:Ka.message??"",exitCode:1};Ds=qa.message;let za=await t?.hooks?.preMergeCommit?.({repo:s,message:Ds,treeHash:As,headHash:c,theirsHash:N});if(de(za))return{stdout:"",stderr:za.message??"",exitCode:1};let Ms=await Ot(s,As,[c,N],fi,li,Ds);await t?.hooks?.postMerge?.({repo:s,headHash:c,theirsHash:N,strategy:"three-way",commitHash:Ms}),await t?.hooks?.postPull?.({repo:s,remote:d,branch:b,strategy:"three-way",commitHash:Ms});let mu=f?.type==="symbolic"?f.target:"HEAD",Va=`pull${z?" --no-ff":""}: Merge made by the 'ort' strategy.`;await st(s,mu,{oldHash:c,newHash:Ms,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:Va}),f?.type==="symbolic"&&await st(s,"HEAD",{oldHash:c,newHash:Ms,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:Va});let pu=await pn(s,Wa.tree,As);return{stdout:`${nr.messages.length>0?`${nr.messages.join(`
636
+ `,stderr:G,exitCode:1}}let As=qr.mergedTreeHash,fi=await mn(s,r.env);if(M(fi))return fi;let li=await tt(s,r.env);if(M(li))return li;let Ds=await gr(s,Rr,Se,w.url),qa={repo:s,message:Ds,treeHash:As,headHash:c,theirsHash:F},Ka=await t?.hooks?.mergeMsg?.(qa);if(de(Ka))return{stdout:"",stderr:Ka.message??"",exitCode:1};Ds=qa.message;let za=await t?.hooks?.preMergeCommit?.({repo:s,message:Ds,treeHash:As,headHash:c,theirsHash:F});if(de(za))return{stdout:"",stderr:za.message??"",exitCode:1};let Ms=await Ot(s,As,[c,F],fi,li,Ds);await t?.hooks?.postMerge?.({repo:s,headHash:c,theirsHash:F,strategy:"three-way",commitHash:Ms}),await t?.hooks?.postPull?.({repo:s,remote:d,branch:b,strategy:"three-way",commitHash:Ms});let mu=f?.type==="symbolic"?f.target:"HEAD",Va=`pull${z?" --no-ff":""}: Merge made by the 'ort' strategy.`;await st(s,mu,{oldHash:c,newHash:Ms,name:L.name,email:L.email,timestamp:L.timestamp,tz:L.tz,message:Va}),f?.type==="symbolic"&&await st(s,"HEAD",{oldHash:c,newHash:Ms,name:L.name,email:L.email,timestamp:L.timestamp,tz:L.tz,message:Va});let pu=await gn(s,Wa.tree,As);return{stdout:`${rr.messages.length>0?`${rr.messages.join(`
635
637
  `)}
636
638
  `:""}Merge made by the 'ort' strategy.
637
- ${pu}`,stderr:L,exitCode:0}}})}async function xw(e,t,n){let r=!!t.noFf,o=!!t.ffOnly,s=t.ffOnly?"cli":null,i=!!t.rebase||!!t.noRebase||!!t.noFf||!!t.ffOnly,a=!1;if(t.rebase)a=!0;else if(!t.noRebase)if(n?.type==="symbolic"){let c=n.target.startsWith("refs/heads/")?n.target.slice(11):n.target,f=await ke(e,`branch.${c}.rebase`);if(f==="true")a=!0,i=!0;else if(f==="false")i=!0;else{let l=await ke(e,"pull.rebase");l==="true"?(a=!0,i=!0):l==="false"&&(i=!0)}}else{let c=await ke(e,"pull.rebase");c==="true"?(a=!0,i=!0):c==="false"&&(i=!0)}if(!t.noFf&&!t.ffOnly){let c=await ke(e,"pull.ff");if(c==="false")r=!0,i=!0;else if(c==="only")o=!0,s="pull",i=!0;else{let f=await ke(e,"merge.ff");f==="false"?r=!0:f==="only"&&(o=!0,s="merge")}}return{useRebase:a,noFf:r,ffOnly:o,ffOnlySource:s,hasReconciliationStrategy:i}}se();Ue();pt();ge();function jd(e,t){e.command("push",{description:"Update remote refs along with associated objects",args:[K.string().name("remote").describe("Remote to push to").optional(),K.string().name("refspec").describe("Refspec(s) to push").optional().variadic()],options:{force:O().alias("f").describe("Force push"),"set-upstream":O().alias("u").describe("Set upstream tracking reference"),all:O().describe("Push all branches"),delete:O().alias("d").describe("Delete remote refs"),tags:O().describe("Push all tags")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.remote||"origin",a=n.refspec,c;try{c=await Uo(s,i,r.env)}catch($){let v=$ instanceof Error?$.message:"";if(v.startsWith("network"))return S(v);throw $}if(!c)return S(`'${i}' does not appear to be a git repository`);let{transport:f,config:l}=c,d=n.force,u=await f.advertiseRefs(),h=new Map;for(let $ of u)h.set($.name,$.hash);if(n.tags&&n.all)return S("options '--tags' and '--all/--branches' cannot be used together");if(n.tags&&n.delete)return S("options '--delete' and '--tags' cannot be used together");let m=[];if(n.delete){let $=a&&a.length>0?a:[];if($.length===0)return S("--delete requires a ref argument");let v=[];for(let _ of $){let G=_.startsWith("refs/")?_:`refs/heads/${_}`,I=h.get(G)??null;if(!I){v.push(`error: unable to delete '${_}': remote ref does not exist
638
- `);continue}m.push({name:G,oldHash:I,newHash:ne,ok:d})}if(v.length>0&&m.length===0)return F(v.join("")+`error: failed to push some refs to '${l.url}'
639
- `)}else if(n.all){let $=await ye(s,"refs/heads");for(let v of $){let _=v.name,G=h.get(_)??null;m.push({name:_,oldHash:G,newHash:v.hash,ok:d})}}else if(a&&a.length>0)for(let $ of a){let v=kr($),_=$.replace(/^\+/,"").includes(":"),G=v.dst;if(!_&&v.src==="HEAD"){let W=await te(s);if(W?.type==="symbolic")G=W.target.startsWith("refs/heads/")?W.target.slice(11):W.target;else return{stdout:"",stderr:`error: The destination you provided is not a full refname (i.e.,
639
+ ${pu}`,stderr:G,exitCode:0}}})}async function xw(e,t,n){let r=!!t.noFf,o=!!t.ffOnly,s=t.ffOnly?"cli":null,i=!!t.rebase||!!t.noRebase||!!t.noFf||!!t.ffOnly,a=!1;if(t.rebase)a=!0;else if(!t.noRebase)if(n?.type==="symbolic"){let c=n.target.startsWith("refs/heads/")?n.target.slice(11):n.target,f=await ke(e,`branch.${c}.rebase`);if(f==="true")a=!0,i=!0;else if(f==="false")i=!0;else{let l=await ke(e,"pull.rebase");l==="true"?(a=!0,i=!0):l==="false"&&(i=!0)}}else{let c=await ke(e,"pull.rebase");c==="true"?(a=!0,i=!0):c==="false"&&(i=!0)}if(!t.noFf&&!t.ffOnly){let c=await ke(e,"pull.ff");if(c==="false")r=!0,i=!0;else if(c==="only")o=!0,s="pull",i=!0;else{let f=await ke(e,"merge.ff");f==="false"?r=!0:f==="only"&&(o=!0,s="merge")}}return{useRebase:a,noFf:r,ffOnly:o,ffOnlySource:s,hasReconciliationStrategy:i}}se();Ue();pt();ge();function jd(e,t){e.command("push",{description:"Update remote refs along with associated objects",args:[q.string().name("remote").describe("Remote to push to").optional(),q.string().name("refspec").describe("Refspec(s) to push").optional().variadic()],options:{force:O().alias("f").describe("Force push"),"set-upstream":O().alias("u").describe("Set upstream tracking reference"),all:O().describe("Push all branches"),delete:O().alias("d").describe("Delete remote refs"),tags:O().describe("Push all tags")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.remote||"origin",a=n.refspec,c;try{c=await Uo(s,i,r.env)}catch($){let v=$ instanceof Error?$.message:"";if(v.startsWith("network"))return S(v);throw $}if(!c)return S(`'${i}' does not appear to be a git repository`);let{transport:f,config:l}=c,d=n.force,u=await f.advertiseRefs(),h=new Map;for(let $ of u)h.set($.name,$.hash);if(n.tags&&n.all)return S("options '--tags' and '--all/--branches' cannot be used together");if(n.tags&&n.delete)return S("options '--delete' and '--tags' cannot be used together");let m=[];if(n.delete){let $=a&&a.length>0?a:[];if($.length===0)return S("--delete requires a ref argument");let v=[];for(let N of $){let L=N.startsWith("refs/")?N:h.has(`refs/heads/${N}`)?`refs/heads/${N}`:h.has(`refs/tags/${N}`)?`refs/tags/${N}`:`refs/heads/${N}`,I=h.get(L)??null;if(!I){v.push(`error: unable to delete '${N}': remote ref does not exist
640
+ `);continue}m.push({name:L,oldHash:I,newHash:ne,ok:d})}if(v.length>0&&m.length===0)return _(v.join("")+`error: failed to push some refs to '${l.url}'
641
+ `)}else if(n.all){let $=await ye(s,"refs/heads");for(let v of $){let N=v.name,L=h.get(N)??null;m.push({name:N,oldHash:L,newHash:v.hash,ok:d})}}else if(a&&a.length>0)for(let $ of a){let v=kr($),N=$.replace(/^\+/,"").includes(":"),L=v.dst;if(!N&&v.src==="HEAD"){let W=await te(s);if(W?.type==="symbolic")L=W.target.startsWith("refs/heads/")?W.target.slice(11):W.target;else return{stdout:"",stderr:`error: The destination you provided is not a full refname (i.e.,
640
642
  starting with "refs/"). We tried to guess what you meant by:
641
643
 
642
644
  - Looking for a ref that matches 'HEAD' on the remote side.
@@ -649,30 +651,30 @@ hint: The <src> part of the refspec is a commit object.
649
651
  hint: Did you mean to create a new branch by pushing to
650
652
  hint: 'HEAD:refs/heads/HEAD'?
651
653
  error: failed to push some refs to '${l.url}'
652
- `,exitCode:1}}let I=await Pw(s,v.src);if(!I)return F(`error: src refspec ${v.src} does not match any
654
+ `,exitCode:1}}let I=await Pw(s,v.src);if(!I)return _(`error: src refspec ${v.src} does not match any
653
655
  error: failed to push some refs to '${l.url}'
654
- `);let T=G.startsWith("refs/")?G:`refs/heads/${G}`,L=h.get(T)??null;m.push({name:T,oldHash:L,newHash:I,ok:d||v.force})}else if(!n.tags){let $=(await ke(s,"push.default"))?.toLowerCase()??"simple";if($==="nothing")return S(`You didn't specify any refspecs to push, and push.default is "nothing".`);let v=await te(s);if(!v||v.type!=="symbolic")return S(`You are not currently on a branch.
656
+ `);let T;L.startsWith("refs/")?T=L:!N&&I.fullRef.startsWith("refs/")?T=I.fullRef.slice(0,I.fullRef.indexOf("/",5)+1)+L:T=`refs/heads/${L}`;let G=h.get(T)??null;m.push({name:T,oldHash:G,newHash:I.hash,ok:d||v.force})}else if(!n.tags){let $=(await ke(s,"push.default"))?.toLowerCase()??"simple";if($==="nothing")return S(`You didn't specify any refspecs to push, and push.default is "nothing".`);let v=await te(s);if(!v||v.type!=="symbolic")return S(`You are not currently on a branch.
655
657
  To push the history leading to the current (detached HEAD)
656
658
  state now, use
657
659
 
658
660
  git push origin HEAD:<name-of-remote-branch>
659
- `);let _=v.target,G=_.startsWith("refs/heads/")?_.slice(11):_,I=await Z(s);if(!I)return F(`error: src refspec does not match any
660
- `);let T=await Cw(s,$,_,G,I,i,h,d);if("exitCode"in T)return T;m.push(T)}if(n.tags){let $=await ye(s,"refs/tags");for(let v of $){let _=h.get(v.name)??null;_!==v.hash&&(m.some(G=>G.name===v.name)||m.push({name:v.name,oldHash:_,newHash:v.hash,ok:d}))}}let p=m.filter($=>$.oldHash!==$.newHash);if(p.length===0){let $="";if(n["set-upstream"]){let v=await te(s);if(v?.type==="symbolic"){let _=v.target.startsWith("refs/heads/")?v.target.slice(11):v.target,G=await pe(s);G[`branch "${_}"`]={remote:i,merge:`refs/heads/${_}`},await ze(s,G),$=`branch '${_}' set up to track '${i}/${_}'.
661
+ `);let N=v.target,L=N.startsWith("refs/heads/")?N.slice(11):N,I=await Z(s);if(!I)return _(`error: src refspec does not match any
662
+ `);let T=await Cw(s,$,N,L,I,i,h,d);if("exitCode"in T)return T;m.push(T)}if(n.tags){let $=await ye(s,"refs/tags");for(let v of $){let N=h.get(v.name)??null;N!==v.hash&&(m.some(L=>L.name===v.name)||m.push({name:v.name,oldHash:N,newHash:v.hash,ok:d}))}}let p=m.filter($=>$.oldHash!==$.newHash);if(p.length===0){let $="";if(n["set-upstream"]){let v=await te(s);if(v?.type==="symbolic"){let N=v.target.startsWith("refs/heads/")?v.target.slice(11):v.target,L=await pe(s);L[`branch "${N}"`]={remote:i,merge:`refs/heads/${N}`},await ze(s,L),$=`branch '${N}' set up to track '${i}/${N}'.
661
663
  `}}return{stdout:$,stderr:`Everything up-to-date
662
- `,exitCode:0}}let g=await t?.hooks?.prePush?.({repo:s,remote:i,url:l.url,refs:p.map($=>({srcRef:$.newHash===ne?null:$.name,srcHash:$.newHash===ne?null:$.newHash,dstRef:$.name,dstHash:$.oldHash,force:!!$.ok,delete:$.newHash===ne}))});if(de(g))return F(g.message??"");let w=new Set(p.filter($=>$.ok).map($=>$.name)),b=await f.push(p),k=b.updates.filter($=>$.ok&&$.oldHash&&$.newHash!==ne&&w.has($.name)),E=await Promise.all(k.map($=>tn(s,$.oldHash,$.newHash))),R=new Set;k.forEach(($,v)=>{E[v]||R.add($.name)});let x=[],y=!1,C=!1;for(let $ of b.updates){let v=$.name.startsWith("refs/tags/"),_=Gt($.name);if($.ok)if($.oldHash)if($.newHash===ne)x.push({prefix:" - [deleted]",from:_,to:""});else{let G=X($.oldHash),I=X($.newHash);R.has($.name)?x.push({prefix:` + ${G}...${I}`,from:_,to:_,suffix:"(forced update)"}):x.push({prefix:` ${G}..${I}`,from:_,to:_})}else{let G=v?"[new tag]":"[new branch]";x.push({prefix:` * ${G}`,from:_,to:_})}else{let G=$.error?.includes("fetch first"),I=$.error?.includes("non-fast-forward");v&&I&&(C=!0);let T=G?"fetch first":v&&I?"already exists":I?"non-fast-forward":$.error??"failed";x.push({prefix:" ! [rejected]",from:_,to:_,suffix:`(${T})`}),y=!0}}x.sort(($,v)=>Md($)-Md(v));let P=[];if(P.push(`To ${l.url}
663
- `),P.push(Dr(x,0,!1)),y){P.push(`error: failed to push some refs to '${l.url}'
664
- `);let $=b.updates.some(_=>!_.ok&&_.error?.includes("fetch first")),v=b.updates.some(_=>!_.ok&&_.error?.includes("non-fast-forward"));C?P.push(`hint: Updates were rejected because the tag already exists in the remote.
665
- `):$?P.push(`hint: Updates were rejected because the remote contains work that you do not
664
+ `,exitCode:0}}let g=await t?.hooks?.prePush?.({repo:s,remote:i,url:l.url,refs:p.map($=>({srcRef:$.newHash===ne?null:$.name,srcHash:$.newHash===ne?null:$.newHash,dstRef:$.name,dstHash:$.oldHash,force:!!$.ok,delete:$.newHash===ne}))});if(de(g))return _(g.message??"");let w=new Set(p.filter($=>$.ok).map($=>$.name)),b=await f.push(p),R=b.updates.filter($=>$.ok&&$.oldHash&&$.newHash!==ne&&w.has($.name)),E=await Promise.all(R.map($=>tn(s,$.oldHash,$.newHash))),k=new Set;R.forEach(($,v)=>{E[v]||k.add($.name)});let x=[],y=!1,P=!1;for(let $ of b.updates){let v=$.name.startsWith("refs/tags/"),N=Gt($.name);if($.ok)if($.oldHash)if($.newHash===ne)x.push({prefix:" - [deleted]",from:N,to:""});else{let L=X($.oldHash),I=X($.newHash);k.has($.name)?x.push({prefix:` + ${L}...${I}`,from:N,to:N,suffix:"(forced update)"}):x.push({prefix:` ${L}..${I}`,from:N,to:N})}else{let L=v?"[new tag]":"[new branch]";x.push({prefix:` * ${L}`,from:N,to:N})}else{let L=$.error?.includes("fetch first"),I=$.error?.includes("non-fast-forward");v&&I&&(P=!0);let T=L?"fetch first":v&&I?"already exists":I?"non-fast-forward":$.error??"failed";x.push({prefix:" ! [rejected]",from:N,to:N,suffix:`(${T})`}),y=!0}}x.sort(($,v)=>Md($)-Md(v));let C=[];if(C.push(`To ${l.url}
665
+ `),C.push(Dr(x,0,!1)),y){C.push(`error: failed to push some refs to '${l.url}'
666
+ `);let $=b.updates.some(N=>!N.ok&&N.error?.includes("fetch first")),v=b.updates.some(N=>!N.ok&&N.error?.includes("non-fast-forward"));P?C.push(`hint: Updates were rejected because the tag already exists in the remote.
667
+ `):$?C.push(`hint: Updates were rejected because the remote contains work that you do not
666
668
  hint: have locally. This is usually caused by another repository pushing to
667
669
  hint: the same ref. If you want to integrate the remote changes, use
668
670
  hint: 'git pull' before pushing again.
669
671
  hint: See the 'Note about fast-forwards' in 'git push --help' for details.
670
- `):v&&P.push(`hint: Updates were rejected because the tip of your current branch is behind
672
+ `):v&&C.push(`hint: Updates were rejected because the tip of your current branch is behind
671
673
  hint: its remote counterpart. If you want to integrate the remote changes,
672
674
  hint: use 'git pull' before pushing again.
673
675
  hint: See the 'Note about fast-forwards' in 'git push --help' for details.
674
- `)}let D="";for(let $ of b.updates){if(!$.ok||!$.name.startsWith("refs/heads/"))continue;let v=`refs/remotes/${i}/${$.name.slice(11)}`;$.newHash===ne?await he(s,v):await J(s,v,$.newHash)}if(n["set-upstream"]&&!y){let $=await te(s);if($?.type==="symbolic"){let v=$.target.startsWith("refs/heads/")?$.target.slice(11):$.target,_=await pe(s);_[`branch "${v}"`]={remote:i,merge:`refs/heads/${v}`},await ze(s,_),D=`branch '${v}' set up to track '${i}/${v}'.
675
- `}}let A={stdout:D,stderr:P.join(""),exitCode:y?1:0};return y||await t?.hooks?.postPush?.({repo:s,remote:i,url:l.url,refs:p.map($=>({srcRef:$.newHash===ne?null:$.name,srcHash:$.newHash===ne?null:$.newHash,dstRef:$.name,dstHash:$.oldHash,force:!!$.ok,delete:$.newHash===ne}))}),A}})}async function Cw(e,t,n,r,o,s,i,a){if(t==="nothing")return S(`You didn't specify any refspecs to push, and push.default is "nothing".`);if(t==="current")return{name:n,oldHash:i.get(n)??null,newHash:o,ok:a};if(t==="upstream"){let d=(await pe(e))[`branch "${r}"`];if(!d?.remote||!d?.merge)return S(`The current branch ${r} has no upstream branch.
676
+ `)}let A="";for(let $ of b.updates){if(!$.ok||!$.name.startsWith("refs/heads/"))continue;let v=`refs/remotes/${i}/${$.name.slice(11)}`;$.newHash===ne?await he(s,v):await J(s,v,$.newHash)}if(n["set-upstream"]&&!y){let $=await te(s);if($?.type==="symbolic"){let v=$.target.startsWith("refs/heads/")?$.target.slice(11):$.target,N=await pe(s);N[`branch "${v}"`]={remote:i,merge:`refs/heads/${v}`},await ze(s,N),A=`branch '${v}' set up to track '${i}/${v}'.
677
+ `}}let D={stdout:A,stderr:C.join(""),exitCode:y?1:0};return y||await t?.hooks?.postPush?.({repo:s,remote:i,url:l.url,refs:p.map($=>({srcRef:$.newHash===ne?null:$.name,srcHash:$.newHash===ne?null:$.newHash,dstRef:$.name,dstHash:$.oldHash,force:!!$.ok,delete:$.newHash===ne}))}),D}})}async function Cw(e,t,n,r,o,s,i,a){if(t==="nothing")return S(`You didn't specify any refspecs to push, and push.default is "nothing".`);if(t==="current")return{name:n,oldHash:i.get(n)??null,newHash:o,ok:a};if(t==="upstream"){let d=(await pe(e))[`branch "${r}"`];if(!d?.remote||!d?.merge)return S(`The current branch ${r} has no upstream branch.
676
678
  To push the current branch and set the remote as upstream, use
677
679
 
678
680
  git push --set-upstream ${s} ${r}
@@ -698,7 +700,7 @@ To push the current branch and set the remote as upstream, use
698
700
 
699
701
  To have this happen automatically for branches without a tracking
700
702
  upstream, see 'push.autoSetupRemote' in 'git help config'.
701
- `)}function Md(e){return e.prefix.startsWith(" ")||e.prefix.startsWith(" + ")?0:e.prefix.includes("[new ")?1:e.prefix.includes("[deleted]")?2:e.prefix.includes("[rejected]")?3:4}async function Pw(e,t){if(t.startsWith("refs/"))return U(e,t);let n=await U(e,`refs/heads/${t}`);if(n)return n;let r=await U(e,`refs/tags/${t}`);return r||(t==="HEAD"?Z(e):null)}se();ge();function Ld(e,t){e.command("rebase",{description:"Reapply commits on top of another base tip",args:[K.string().name("upstream").describe("Upstream branch to rebase onto").optional()],options:{onto:Y.string().describe("Starting point at which to create new commits"),abort:O().describe("Abort the current rebase operation"),continue:O().describe("Continue the rebase after conflict resolution"),skip:O().describe("Skip the current patch and continue"),"reapply-cherry-picks":O().describe("Do not skip commits that are cherry-pick equivalents"),"no-reapply-cherry-picks":O().describe("Skip commits that are cherry-pick equivalents (default)")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort)return Td(s,r.env);if(n.continue)return vd(s,r.env,t?.mergeDriver);if(n.skip)return Hd(s,r.env,t?.mergeDriver);let i=n.upstream;if(!i)return S("no upstream configured and no upstream argument given");if(await _t(s))return S(`It seems that there is already a rebase-merge directory, and
703
+ `)}function Md(e){return e.prefix.startsWith(" ")||e.prefix.startsWith(" + ")?0:e.prefix.includes("[new ")?1:e.prefix.includes("[deleted]")?2:e.prefix.includes("[rejected]")?3:4}async function Pw(e,t){if(t.startsWith("refs/")){let o=await U(e,t);return o?{hash:o,fullRef:t}:null}let n=await U(e,`refs/heads/${t}`);if(n)return{hash:n,fullRef:`refs/heads/${t}`};let r=await U(e,`refs/tags/${t}`);if(r)return{hash:r,fullRef:`refs/tags/${t}`};if(t==="HEAD"){let o=await Z(e);return o?{hash:o,fullRef:"HEAD"}:null}return null}se();ge();function Ld(e,t){e.command("rebase",{description:"Reapply commits on top of another base tip",args:[q.string().name("upstream").describe("Upstream branch to rebase onto").optional()],options:{onto:Y.string().describe("Starting point at which to create new commits"),abort:O().describe("Abort the current rebase operation"),continue:O().describe("Continue the rebase after conflict resolution"),skip:O().describe("Skip the current patch and continue"),"reapply-cherry-picks":O().describe("Do not skip commits that are cherry-pick equivalents"),"no-reapply-cherry-picks":O().describe("Skip commits that are cherry-pick equivalents (default)")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort)return Td(s,r.env);if(n.continue)return vd(s,r.env,t?.mergeDriver);if(n.skip)return Hd(s,r.env,t?.mergeDriver);let i=n.upstream;if(!i)return S("no upstream configured and no upstream argument given");if(await Ut(s))return S(`It seems that there is already a rebase-merge directory, and
702
704
  I wonder if you are in the middle of another rebase. If that is the
703
705
  case, please try
704
706
  git rebase (--continue | --abort | --skip)
@@ -711,67 +713,67 @@ Use '--' to separate paths from revisions, like this:
711
713
  'git <command> [<revision>...] -- [<file>...]'
712
714
  `,exitCode:128};let s=await et(e,r),i=[],a=n!==void 0?n:s.length,c=0;for(let l=s.length-1;l>=0&&c<a;l--){let d=s[l];if(!d)continue;let u=s.length-1-l;d.newHash!==ne&&(i.push($w(t,u,d.newHash,d.message)),c++)}return{stdout:i.length>0?`${i.join(`
713
715
  `)}
714
- `:"",stderr:"",exitCode:0}}function Gd(e,t){return e.command("reflog",{description:"Manage reflog information",args:[K.string().name("args").variadic().optional()],options:{maxCount:Y.number().alias("n").describe("Limit the number of entries to output")},handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);if(M(s))return s;let i=s,a=r.args;if(a.length===0)return si(i,"HEAD",r.maxCount);let c=a[0];if(!c)return si(i,"HEAD",r.maxCount);if(c==="show"){let f=a[1]??"HEAD";return si(i,f,r.maxCount)}if(c==="exists"){let f=a[1];if(!f)return{stdout:"",stderr:`fatal: reflog exists requires a ref argument
715
- `,exitCode:128};let l=H(i.gitDir,"logs",f);return{stdout:"",stderr:"",exitCode:await i.fs.exists(l)?0:1}}return si(i,c,r.maxCount)}})}se();Ue();Be();ge();function Ow(e){let t=[];for(let n of Object.keys(e)){let r=n.match(/^remote "(.+)"$/);r?.[1]&&t.push(r[1])}return t.sort()}function Nd(e,t){let n=e.command("remote",{description:"Manage set of tracked repositories",options:{verbose:O().alias("v").describe("Show remote URLs")},handler:async(s,i)=>{let a=await q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=Ow(c);if(f.length===0)return{stdout:"",stderr:"",exitCode:0};if(s.verbose){let l=[];for(let d of f){let h=c[`remote "${d}"`]?.url??"";l.push(`${d} ${h} (fetch)`),l.push(`${d} ${h} (push)`)}return{stdout:`${l.join(`
716
+ `:"",stderr:"",exitCode:0}}function Gd(e,t){return e.command("reflog",{description:"Manage reflog information",args:[q.string().name("args").variadic().optional()],options:{maxCount:Y.number().alias("n").describe("Limit the number of entries to output")},handler:async(r,o)=>{let s=await K(o.fs,o.cwd,t);if(M(s))return s;let i=s,a=r.args;if(a.length===0)return si(i,"HEAD",r.maxCount);let c=a[0];if(!c)return si(i,"HEAD",r.maxCount);if(c==="show"){let f=a[1]??"HEAD";return si(i,f,r.maxCount)}if(c==="exists"){let f=a[1];if(!f)return{stdout:"",stderr:`fatal: reflog exists requires a ref argument
717
+ `,exitCode:128};let l=H(i.gitDir,"logs",f);return{stdout:"",stderr:"",exitCode:await i.fs.exists(l)?0:1}}return si(i,c,r.maxCount)}})}se();Ue();Be();ge();function Ow(e){let t=[];for(let n of Object.keys(e)){let r=n.match(/^remote "(.+)"$/);r?.[1]&&t.push(r[1])}return t.sort()}function Nd(e,t){let n=e.command("remote",{description:"Manage set of tracked repositories",options:{verbose:O().alias("v").describe("Show remote URLs")},handler:async(s,i)=>{let a=await K(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=Ow(c);if(f.length===0)return{stdout:"",stderr:"",exitCode:0};if(s.verbose){let l=[];for(let d of f){let h=c[`remote "${d}"`]?.url??"";l.push(`${d} ${h} (fetch)`),l.push(`${d} ${h} (push)`)}return{stdout:`${l.join(`
716
718
  `)}
717
719
  `,stderr:"",exitCode:0}}return{stdout:`${f.join(`
718
720
  `)}
719
- `,stderr:"",exitCode:0}}});n.command("add",{description:"Add a remote named <name> for the repository at <url>",args:[K.string().name("name").describe("Remote name"),K.string().name("url").describe("Remote URL")],handler:async(s,i)=>{if(!os(`refs/remotes/${s.name}`,0))return S(`'${s.name}' is not a valid remote name`);let a=await q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;if(f in c)return F(`error: remote ${s.name} already exists.
720
- `,3);let l=yr(s.url,t?.credentialCache).url;return c[f]={url:l,fetch:`+refs/heads/*:refs/remotes/${s.name}/*`},await ze(a,c),{stdout:"",stderr:"",exitCode:0}}});let r=async(s,i)=>{let a=await q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;return f in c?(delete c[f],Iw(c,s.name),await ze(a,c),await Tw(a,s.name),{stdout:"",stderr:"",exitCode:0}):F(`error: No such remote: '${s.name}'
721
- `,2)},o=[K.string().name("name").describe("Remote name")];n.command("remove",{description:"Remove the remote named <name>",args:o,handler:r}),n.command("rm",{description:"Remove the remote named <name>",args:o,handler:r}),n.command("rename",{description:"Rename the remote named <old> to <new>",args:[K.string().name("old").describe("Current remote name"),K.string().name("new").describe("New remote name")],handler:async(s,i)=>{let a=await q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a);return Sw(a,c,s.old,s.new)}}),n.command("set-url",{description:"Change the URL for an existing remote",args:[K.string().name("name").describe("Remote name"),K.string().name("url").describe("New remote URL")],handler:async(s,i)=>{let a=await q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;if(!(f in c))return F(`error: No such remote '${s.name}'
722
- `,2);let l=yr(s.url,t?.credentialCache).url,d=c[f];return d&&(d.url=l),await ze(a,c),{stdout:"",stderr:"",exitCode:0}}}),n.command("get-url",{description:"Retrieve the URL for an existing remote",args:[K.string().name("name").describe("Remote name")],handler:async(s,i)=>{let a=await q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;return f in c?{stdout:`${c[f]?.url??""}
723
- `,stderr:"",exitCode:0}:F(`error: No such remote '${s.name}'
724
- `,2)}})}async function Sw(e,t,n,r){if(!os(`refs/remotes/${r}`,0))return S(`'${r}' is not a valid remote name`);let o=`remote "${n}"`;if(!(o in t))return F(`error: No such remote: '${n}'
725
- `,2);let s=`remote "${r}"`;if(s in t)return S(`remote ${r} already exists.`);let i={...t[o]};i.fetch&&(i.fetch=i.fetch.replace(`refs/remotes/${n}/`,`refs/remotes/${r}/`)),t[s]=i,delete t[o];for(let f of Object.keys(t))f.match(/^branch "(.+)"$/)&&t[f]?.remote===n&&(t[f].remote=r);await ze(e,t);let a=`refs/remotes/${n}`,c=await ye(e,a);for(let f of c){let l=f.name.replace(a,`refs/remotes/${r}`),d=await et(e,f.name);await J(e,l,f.hash),await he(e,f.name),d.length>0&&await Fn(e,l,d)}return{stdout:"",stderr:"",exitCode:0}}function Iw(e,t){for(let n of Object.keys(e))n.match(/^branch "(.+)"$/)&&e[n]?.remote===t&&(delete e[n].remote,delete e[n].merge,Object.keys(e[n]).length===0&&delete e[n])}async function Tw(e,t){let n=`refs/remotes/${t}`,r=await ye(e,n);for(let o of r)await he(e,o.name)}se();Ce();ie();me();Be();ge();async function Fd(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await ye(e,"refs");for(let a of r)t.add(a.hash);let o=H(e.gitDir,"logs");await e.fs.exists(o)&&await _d(e,o,o,t);let s=await V(e);for(let a of s.entries)t.add(a.hash);for(let a of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let c=await U(e,a);c&&t.add(c)}let i=[];for(let a of t)await wt(e,a)&&i.push(a);return i}async function _d(e,t,n,r){let o=await e.fs.readdir(t);for(let s of o){let i=H(t,s),a=await e.fs.stat(i);if(a.isDirectory)await _d(e,i,n,r);else if(a.isFile){let c=i.slice(n.length+1),f=await et(e,c);for(let l of f)l.newHash!==ne&&r.add(l.newHash)}}}function Ud(e,t){e.command("repack",{description:"Pack unpacked objects in a repository",options:{all:O().alias("a").describe("Pack all objects, including already-packed"),delete:O().alias("d").describe("After packing, remove redundant packs and loose objects")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await Fd(s),a=await Xo({gitCtx:s,fs:r.fs,tips:i,cleanup:n.delete,all:n.all});return a?{stdout:"",stderr:`${Zo(a.totalCount,a.deltaCount)}
721
+ `,stderr:"",exitCode:0}}});n.command("add",{description:"Add a remote named <name> for the repository at <url>",args:[q.string().name("name").describe("Remote name"),q.string().name("url").describe("Remote URL")],handler:async(s,i)=>{if(!os(`refs/remotes/${s.name}`,0))return S(`'${s.name}' is not a valid remote name`);let a=await K(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;if(f in c)return _(`error: remote ${s.name} already exists.
722
+ `,3);let l=yr(s.url,t?.credentialCache).url;return c[f]={url:l,fetch:`+refs/heads/*:refs/remotes/${s.name}/*`},await ze(a,c),{stdout:"",stderr:"",exitCode:0}}});let r=async(s,i)=>{let a=await K(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;return f in c?(delete c[f],Iw(c,s.name),await ze(a,c),await Tw(a,s.name),{stdout:"",stderr:"",exitCode:0}):_(`error: No such remote: '${s.name}'
723
+ `,2)},o=[q.string().name("name").describe("Remote name")];n.command("remove",{description:"Remove the remote named <name>",args:o,handler:r}),n.command("rm",{description:"Remove the remote named <name>",args:o,handler:r}),n.command("rename",{description:"Rename the remote named <old> to <new>",args:[q.string().name("old").describe("Current remote name"),q.string().name("new").describe("New remote name")],handler:async(s,i)=>{let a=await K(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a);return Sw(a,c,s.old,s.new)}}),n.command("set-url",{description:"Change the URL for an existing remote",args:[q.string().name("name").describe("Remote name"),q.string().name("url").describe("New remote URL")],handler:async(s,i)=>{let a=await K(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;if(!(f in c))return _(`error: No such remote '${s.name}'
724
+ `,2);let l=yr(s.url,t?.credentialCache).url,d=c[f];return d&&(d.url=l),await ze(a,c),{stdout:"",stderr:"",exitCode:0}}}),n.command("get-url",{description:"Retrieve the URL for an existing remote",args:[q.string().name("name").describe("Remote name")],handler:async(s,i)=>{let a=await K(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;return f in c?{stdout:`${c[f]?.url??""}
725
+ `,stderr:"",exitCode:0}:_(`error: No such remote '${s.name}'
726
+ `,2)}})}async function Sw(e,t,n,r){if(!os(`refs/remotes/${r}`,0))return S(`'${r}' is not a valid remote name`);let o=`remote "${n}"`;if(!(o in t))return _(`error: No such remote: '${n}'
727
+ `,2);let s=`remote "${r}"`;if(s in t)return S(`remote ${r} already exists.`);let i={...t[o]};i.fetch&&(i.fetch=i.fetch.replace(`refs/remotes/${n}/`,`refs/remotes/${r}/`)),t[s]=i,delete t[o];for(let f of Object.keys(t))f.match(/^branch "(.+)"$/)&&t[f]?.remote===n&&(t[f].remote=r);await ze(e,t);let a=`refs/remotes/${n}`,c=await ye(e,a);for(let f of c){let l=f.name.replace(a,`refs/remotes/${r}`),d=await et(e,f.name);await J(e,l,f.hash),await he(e,f.name),d.length>0&&await Un(e,l,d)}return{stdout:"",stderr:"",exitCode:0}}function Iw(e,t){for(let n of Object.keys(e))n.match(/^branch "(.+)"$/)&&e[n]?.remote===t&&(delete e[n].remote,delete e[n].merge,Object.keys(e[n]).length===0&&delete e[n])}async function Tw(e,t){let n=`refs/remotes/${t}`,r=await ye(e,n);for(let o of r)await he(e,o.name)}se();Ce();ie();me();Be();ge();async function Fd(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await ye(e,"refs");for(let a of r)t.add(a.hash);let o=H(e.gitDir,"logs");await e.fs.exists(o)&&await _d(e,o,o,t);let s=await V(e);for(let a of s.entries)t.add(a.hash);for(let a of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let c=await U(e,a);c&&t.add(c)}let i=[];for(let a of t)await wt(e,a)&&i.push(a);return i}async function _d(e,t,n,r){let o=await e.fs.readdir(t);for(let s of o){let i=H(t,s),a=await e.fs.stat(i);if(a.isDirectory)await _d(e,i,n,r);else if(a.isFile){let c=i.slice(n.length+1),f=await et(e,c);for(let l of f)l.newHash!==ne&&r.add(l.newHash)}}}function Ud(e,t){e.command("repack",{description:"Pack unpacked objects in a repository",options:{all:O().alias("a").describe("Pack all objects, including already-packed"),delete:O().alias("d").describe("After packing, remove redundant packs and loose objects")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await Fd(s),a=await Xo({gitCtx:s,fs:r.fs,tips:i,cleanup:n.delete,all:n.all});return a?{stdout:"",stderr:`${Zo(a.totalCount,a.deltaCount)}
726
728
  `,exitCode:0}:{stdout:`Nothing new to pack.
727
- `,stderr:"",exitCode:0}}})}se();Ce();ie();me();Be();ge();fn();Ae();Zt();Je();function Wd(e,t){e.command("reset",{description:"Reset current HEAD to the specified state",args:[K.string().name("args").variadic().optional()],options:{soft:O().describe("Only move HEAD"),mixed:O().describe("Move HEAD and reset index (default)"),hard:O().describe("Move HEAD, reset index, and reset working tree")},handler:async(n,r,o)=>{let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.args;if([n.soft,n.mixed,n.hard].filter(Boolean).length>1)return S("--soft, --mixed, and --hard are mutually exclusive");let f=n.soft||n.mixed||n.hard,l=ut(i,r.cwd);if(o.passthrough.length>0){let h=a.length>0?a[0]:void 0;return Ma(i,o.passthrough,l,h,t)}if(!f&&a.length>0){let h=a[0],m=await We(i,h);return a.length===1&&m?Bd(i,h,"mixed",r.env,t):m?Ma(i,a.slice(1),l,h,t):Ma(i,a,l,void 0,t)}let d=n.soft?"soft":n.hard?"hard":"mixed",u=a.length>0?a[0]:"HEAD";return Bd(i,u,d,r.env,t)}})}async function Ma(e,t,n,r,o){let s=await o?.hooks?.preReset?.({repo:e,mode:"paths",targetRef:r??null});if(de(s))return{stdout:"",stderr:s.message??"",exitCode:1};let i=null;if(r){let d=await We(e,r);if(!d)return Jt(r);let u=await Te(e,d);i=(await j(e,u)).tree}else{let d=await Z(e);d&&(i=(await j(e,d)).tree)}let a=await le(e,i??null),c=await V(e);if(t.some(dr)){let d=t.map(h=>_e(h,n)),u=new Set;for(let[h]of a)u.add(h);for(let h of c.entries)u.add(h.path);for(let h of u){if(!Ee(d,h))continue;let m=a.get(h);m?c=Pt(c,{path:m.path,mode:parseInt(m.mode,8),hash:m.hash,stage:0,stat:He()}):c=lt(c,h)}}else for(let d of t){let u=a.get(d);if(u)c=Pt(c,{path:u.path,mode:parseInt(u.mode,8),hash:u.hash,stage:0,stat:He()});else if(c.entries.some(m=>m.path===d))c=lt(c,d);else if(!(e.workTree&&await e.fs.exists(H(e.workTree,d))))return Jt(d)}await ae(e,c);let l={stdout:await qd(e,c),stderr:"",exitCode:0};return await o?.hooks?.postReset?.({repo:e,mode:"paths",targetHash:null}),l}async function qd(e,t){if(!e.workTree)return"";let n=new Set;for(let i of t.entries)i.stage>0&&n.add(i.path);let o=(await bt(e,t)).filter(i=>i.status==="modified"||i.status==="deleted");if(o.length===0&&n.size===0)return"";let s=["Unstaged changes after reset:"];for(let i of o){let a=i.status==="modified"?"M":"D";s.push(`${a} ${i.path}`)}for(let i of[...n].sort())s.push(`U ${i}`);return s.sort((i,a)=>{if(i==="Unstaged changes after reset:")return-1;if(a==="Unstaged changes after reset:")return 1;let c=i.slice(2),f=a.slice(2);return c<f?-1:c>f?1:0}),`${s.join(`
729
+ `,stderr:"",exitCode:0}}})}se();Ce();ie();me();Be();ge();fn();Ae();Nt();Je();function Wd(e,t){e.command("reset",{description:"Reset current HEAD to the specified state",args:[q.string().name("args").variadic().optional()],options:{soft:O().describe("Only move HEAD"),mixed:O().describe("Move HEAD and reset index (default)"),hard:O().describe("Move HEAD, reset index, and reset working tree")},handler:async(n,r,o)=>{let s=await K(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.args;if([n.soft,n.mixed,n.hard].filter(Boolean).length>1)return S("--soft, --mixed, and --hard are mutually exclusive");let f=n.soft||n.mixed||n.hard,l=ut(i,r.cwd);if(o.passthrough.length>0){let h=a.length>0?a[0]:void 0;return Ma(i,o.passthrough,l,h,t)}if(!f&&a.length>0){let h=a[0],m=await We(i,h);return a.length===1&&m?Bd(i,h,"mixed",r.env,t):m?Ma(i,a.slice(1),l,h,t):Ma(i,a,l,void 0,t)}let d=n.soft?"soft":n.hard?"hard":"mixed",u=a.length>0?a[0]:"HEAD";return Bd(i,u,d,r.env,t)}})}async function Ma(e,t,n,r,o){let s=await o?.hooks?.preReset?.({repo:e,mode:"paths",targetRef:r??null});if(de(s))return{stdout:"",stderr:s.message??"",exitCode:1};let i=null;if(r){let d=await We(e,r);if(!d)return Jt(r);let u=await Te(e,d);i=(await j(e,u)).tree}else{let d=await Z(e);d&&(i=(await j(e,d)).tree)}let a=await le(e,i??null),c=await V(e);if(t.some(dr)){let d=t.map(h=>_e(h,n)),u=new Set;for(let[h]of a)u.add(h);for(let h of c.entries)u.add(h.path);for(let h of u){if(!Ee(d,h))continue;let m=a.get(h);m?c=Pt(c,{path:m.path,mode:parseInt(m.mode,8),hash:m.hash,stage:0,stat:He()}):c=lt(c,h)}}else for(let d of t){let u=a.get(d);if(u)c=Pt(c,{path:u.path,mode:parseInt(u.mode,8),hash:u.hash,stage:0,stat:He()});else if(c.entries.some(m=>m.path===d))c=lt(c,d);else if(!(e.workTree&&await e.fs.exists(H(e.workTree,d))))return Jt(d)}await ae(e,c);let l={stdout:await qd(e,c),stderr:"",exitCode:0};return await o?.hooks?.postReset?.({repo:e,mode:"paths",targetHash:null}),l}async function qd(e,t){if(!e.workTree)return"";let n=new Set;for(let i of t.entries)i.stage>0&&n.add(i.path);let o=(await bt(e,t)).filter(i=>i.status==="modified"||i.status==="deleted");if(o.length===0&&n.size===0)return"";let s=["Unstaged changes after reset:"];for(let i of o){let a=i.status==="modified"?"M":"D";s.push(`${a} ${i.path}`)}for(let i of[...n].sort())s.push(`U ${i}`);return s.sort((i,a)=>{if(i==="Unstaged changes after reset:")return-1;if(a==="Unstaged changes after reset:")return 1;let c=i.slice(2),f=a.slice(2);return c<f?-1:c>f?1:0}),`${s.join(`
728
730
  `)}
729
- `}async function Bd(e,t,n,r,o){let s=await o?.hooks?.preReset?.({repo:e,mode:n,targetRef:t});if(de(s))return{stdout:"",stderr:s.message??"",exitCode:1};let i=await We(e,t);if(!i)return Jt(t);let a=await Te(e,i),c=await j(e,a);if(n==="soft"){let h=await U(e,"MERGE_HEAD"),m=await V(e);if(h||Lt(m))return S("Cannot do a soft reset in the middle of a merge.")}let f=await Z(e),l=await te(e);l?.type==="symbolic"?await J(e,l.target,a):await J(e,"HEAD",a);let d=`reset: moving to ${t}`;if(l?.type==="symbolic"&&f!==a?await re(e,r,l.target,f,a,d,!0):(l?.type==="symbolic"||f!==a)&&await re(e,r,"HEAD",f,a,d),await hr(e),n==="mixed"){let h=await qe(e,c.tree),m=Ks(h.map(g=>({path:g.path,mode:parseInt(g.mode,8),hash:g.hash,stage:0,stat:He()})));await ae(e,m);let p=await qd(e,m);if(p)return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:p,stderr:"",exitCode:0}}if(n==="hard"){let h=Ye(e);if(h)return h;let m=await V(e),p=await Cn(e,c.tree,m);await ae(e,{version:2,entries:p.newEntries}),await je(e,p.worktreeOps)}let u=n==="hard"?`HEAD is now at ${X(a)} ${ue(c.message)}
730
- `:"";return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:u,stderr:"",exitCode:0}}se();Ce();ie();ge();Ae();Je();function Kd(e,t){e.command("restore",{description:"Restore working tree files",args:[K.string().name("pathspec").variadic().optional()],options:{source:Y.string().alias("s").describe("Restore from tree-ish"),staged:O().alias("S").describe("Restore the index"),worktree:O().alias("W").describe("Restore the working tree (default)"),ours:O().describe("Checkout our version for unmerged files"),theirs:O().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=[...n.pathspec??[],...o.passthrough];if(a.length===0)return S("you must specify path(s) to restore");if(n.ours&&n.theirs)return S("--ours and --theirs are incompatible");let c=!!n.staged,f=n.worktree!==void 0?!!n.worktree:!c,l=ut(i,r.cwd);if(n.ours||n.theirs)return n.source?S("cannot specify both --source and --ours/--theirs"):c?S("cannot use --ours/--theirs with --staged"):Co(i,a,l,n.theirs?3:2,{deleteOnMissing:!0});let d=null;if(n.source){let u=await Me(i,n.source,`could not resolve '${n.source}'`);if(M(u))return u;d=u.commit.tree}else if(c){let u=await Z(i);u&&(d=(await j(i,u)).tree)}return c&&f?Aw(i,a,l,d):c?vw(i,a,l,d):d?Hw(i,a,l,d):xo(i,a,l)}})}async function vw(e,t,n,r){let o=await le(e,r),s=await V(e),i=t.map(f=>_e(f,n)),a=new Set;for(let[f]of o)a.add(f);for(let f of s.entries)a.add(f.path);let c=!1;for(let f of a){if(!Ee(i,f))continue;c=!0;let l=o.get(f);if(l)s=Pt(s,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:He()});else{if(s.entries.some(u=>u.path===f&&u.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
731
- `,exitCode:1};s=lt(s,f)}}return c?(await ae(e,s),{stdout:"",stderr:"",exitCode:0}):F(`error: pathspec '${t[0]}' did not match any file(s) known to git
731
+ `}async function Bd(e,t,n,r,o){let s=await o?.hooks?.preReset?.({repo:e,mode:n,targetRef:t});if(de(s))return{stdout:"",stderr:s.message??"",exitCode:1};let i=await We(e,t);if(!i)return Jt(t);let a=await Te(e,i),c=await j(e,a);if(n==="soft"){let h=await U(e,"MERGE_HEAD"),m=await V(e);if(h||Lt(m))return S("Cannot do a soft reset in the middle of a merge.")}let f=await Z(e),l=await te(e);l?.type==="symbolic"?await J(e,l.target,a):await J(e,"HEAD",a);let d=`reset: moving to ${t}`;if(l?.type==="symbolic"&&f!==a?await re(e,r,l.target,f,a,d,!0):(l?.type==="symbolic"||f!==a)&&await re(e,r,"HEAD",f,a,d),await hr(e),n==="mixed"){let h=await qe(e,c.tree),m=Ks(h.map(g=>({path:g.path,mode:parseInt(g.mode,8),hash:g.hash,stage:0,stat:He()})));await ae(e,m);let p=await qd(e,m);if(p)return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:p,stderr:"",exitCode:0}}if(n==="hard"){let h=Ye(e);if(h)return h;let m=await V(e),p=await On(e,c.tree,m);await ae(e,{version:2,entries:p.newEntries}),await De(e,p.worktreeOps)}let u=n==="hard"?`HEAD is now at ${X(a)} ${ue(c.message)}
732
+ `:"";return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:u,stderr:"",exitCode:0}}se();Ce();ie();ge();Ae();Je();function Kd(e,t){e.command("restore",{description:"Restore working tree files",args:[q.string().name("pathspec").variadic().optional()],options:{source:Y.string().alias("s").describe("Restore from tree-ish"),staged:O().alias("S").describe("Restore the index"),worktree:O().alias("W").describe("Restore the working tree (default)"),ours:O().describe("Checkout our version for unmerged files"),theirs:O().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await K(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=[...n.pathspec??[],...o.passthrough];if(a.length===0)return S("you must specify path(s) to restore");if(n.ours&&n.theirs)return S("--ours and --theirs are incompatible");let c=!!n.staged,f=n.worktree!==void 0?!!n.worktree:!c,l=ut(i,r.cwd);if(n.ours||n.theirs)return n.source?S("cannot specify both --source and --ours/--theirs"):c?S("cannot use --ours/--theirs with --staged"):Co(i,a,l,n.theirs?3:2,{deleteOnMissing:!0});let d=null;if(n.source){let u=await Me(i,n.source,`could not resolve '${n.source}'`);if(M(u))return u;d=u.commit.tree}else if(c){let u=await Z(i);u&&(d=(await j(i,u)).tree)}return c&&f?Aw(i,a,l,d):c?vw(i,a,l,d):d?Hw(i,a,l,d):xo(i,a,l)}})}async function vw(e,t,n,r){let o=await le(e,r),s=await V(e),i=t.map(f=>_e(f,n)),a=new Set;for(let[f]of o)a.add(f);for(let f of s.entries)a.add(f.path);let c=!1;for(let f of a){if(!Ee(i,f))continue;c=!0;let l=o.get(f);if(l)s=Pt(s,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:He()});else{if(s.entries.some(u=>u.path===f&&u.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
733
+ `,exitCode:1};s=lt(s,f)}}return c?(await ae(e,s),{stdout:"",stderr:"",exitCode:0}):_(`error: pathspec '${t[0]}' did not match any file(s) known to git
732
734
  `)}async function Hw(e,t,n,r){if(!e.workTree)return S("this operation must be run in a work tree");let o=await le(e,r),s=t.map(f=>_e(f,n)),i=[],a=await V(e),c=new Set;for(let[f]of o)c.add(f);for(let f of a.entries)c.add(f.path);for(let f of c)if(Ee(s,f)){if(!o.has(f)&&a.entries.some(d=>d.path===f&&d.stage!==0))return{stdout:"",stderr:`error: path '${f}' is unmerged
733
- `,exitCode:1};i.push(f)}if(i.length===0)return F(`error: pathspec '${t[0]}' did not match any file(s) known to git
734
- `);for(let f of i){let l=o.get(f);if(l)await dt(e,{path:l.path,hash:l.hash,mode:l.mode});else{let d=`${e.workTree}/${f}`;await e.fs.exists(d)&&await e.fs.rm(d)}}return{stdout:"",stderr:"",exitCode:0}}async function Aw(e,t,n,r){if(!e.workTree)return S("this operation must be run in a work tree");let o=await le(e,r),s=await V(e),i=t.map(f=>_e(f,n)),a=[],c=new Set;for(let[f]of o)c.add(f);for(let f of s.entries)c.add(f.path);for(let f of c)Ee(i,f)&&a.push(f);if(a.length===0)return F(`error: pathspec '${t[0]}' did not match any file(s) known to git
735
+ `,exitCode:1};i.push(f)}if(i.length===0)return _(`error: pathspec '${t[0]}' did not match any file(s) known to git
736
+ `);for(let f of i){let l=o.get(f);if(l)await dt(e,{path:l.path,hash:l.hash,mode:l.mode});else{let d=`${e.workTree}/${f}`;await e.fs.exists(d)&&await e.fs.rm(d)}}return{stdout:"",stderr:"",exitCode:0}}async function Aw(e,t,n,r){if(!e.workTree)return S("this operation must be run in a work tree");let o=await le(e,r),s=await V(e),i=t.map(f=>_e(f,n)),a=[],c=new Set;for(let[f]of o)c.add(f);for(let f of s.entries)c.add(f.path);for(let f of c)Ee(i,f)&&a.push(f);if(a.length===0)return _(`error: pathspec '${t[0]}' did not match any file(s) known to git
735
737
  `);for(let f of a){let l=o.get(f);if(l)s=Pt(s,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:He()}),await dt(e,{path:l.path,hash:l.hash,mode:l.mode});else{if(s.entries.some(h=>h.path===f&&h.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
736
- `,exitCode:1};s=lt(s,f);let u=`${e.workTree}/${f}`;await e.fs.exists(u)&&await e.fs.rm(u)}}return await ae(e,s),{stdout:"",stderr:"",exitCode:0}}se();ie();me();ge();fn();Ae();function zd(e,t){e.command("rev-parse",{description:"Pick out and massage parameters",args:[K.string().name("args").describe("Refs or revision expressions to resolve").optional().variadic()],options:{verify:O().describe("Verify that exactly one parameter is provided and resolves to an object"),short:O().describe("Abbreviate object name (default 7 chars)"),"abbrev-ref":O().describe("Output abbreviated ref name instead of object hash"),"symbolic-full-name":O().describe("Output the full symbolic ref name"),"show-toplevel":O().describe("Show the absolute path of the top-level directory"),"git-dir":O().describe("Show the path to the .git directory"),"is-inside-work-tree":O().describe("Output whether cwd is inside the work tree"),"is-bare-repository":O().describe("Output whether the repository is bare"),"show-prefix":O().describe("Show path of cwd relative to top-level directory"),"show-cdup":O().describe("Show relative path from cwd up to top-level directory")},handler:async(n,r)=>{let o=n.args.filter(E=>E!==""),s=n.verify,i=n.short,a=n["abbrev-ref"],c=n["symbolic-full-name"],f=n["show-toplevel"],l=n["git-dir"],d=n["is-inside-work-tree"],u=n["is-bare-repository"],h=n["show-prefix"],m=n["show-cdup"],p=f||l||d||u||h||m,g=await q(r.fs,r.cwd,t);if(M(g))return g;let w=g,b=[];if(f){if(!w.workTree)return S("this operation must be run in a work tree");b.push(w.workTree)}if(l&&b.push(w.gitDir),d&&b.push(w.workTree?"true":"false"),u&&b.push(w.workTree?"false":"true"),h){if(!w.workTree)return S("this operation must be run in a work tree");let E=rt(w.workTree,r.cwd);b.push(E===""?"":`${E}/`)}if(m){if(!w.workTree)return S("this operation must be run in a work tree");let E=rt(r.cwd,w.workTree);b.push(E===""?"":`${E}/`)}if(p&&o.length===0)return{stdout:b.map(R=>`${R}
737
- `).join(""),stderr:"",exitCode:0};if(s&&o.length!==1)return S("Needed a single revision");for(let E of o){if(a){let y=await Dw(w,E);if(y===null)return ja(E,s);b.push(y);continue}if(c){let y=await Mw(w,E);if(y===null)return ja(E,s);b.push(y);continue}let R=to(E);if(R){let y=await jw(w,R.rev,R.path);if(y===null){let C=R.path.replace(/^\//,"");return S(`path '${C}' does not exist in '${R.rev}'`)}b.push(i?X(y):y);continue}let x=await We(w,E);if(!x)return ja(E,s);b.push(i?X(x):x)}return{stdout:b.map(E=>`${E}
738
- `).join(""),stderr:"",exitCode:0}}})}function ja(e,t){return t?S("Needed a single revision"):Jt(e)}async function Dw(e,t){if(t==="HEAD"||t==="@"){let r=await te(e);if(!r)return null;if(r.type==="symbolic"){let o=r.target;return o.startsWith("refs/heads/")?o.slice(11):o}return"HEAD"}return await We(e,t)?t:null}async function Mw(e,t){if(t==="HEAD"||t==="@"){let r=await te(e);return r?r.type==="symbolic"?r.target:"HEAD":null}if(!await We(e,t))return null;if(t.startsWith("refs/"))return t;for(let r of["refs/heads/","refs/tags/","refs/remotes/"]){let o=`${r}${t}`;if(await U(e,o))return o}return t}async function jw(e,t,n){let r=await We(e,t);if(!r)return null;let o=await j(e,r),s=n.replace(/^\//,"");return s===""?o.tree:(await le(e,o.tree)).get(s)?.hash??null}se();Ue();Ce();ie();Be();ge();Ae();Zt();function Vd(e,t){e.command("revert",{description:"Revert some existing commits",args:[K.string().name("commit").describe("The commit to revert").optional()],options:{abort:O().describe("Abort the current revert operation"),continue:O().describe("Continue the revert after conflict resolution"),skip:O().describe("Skip the current commit and continue"),"no-commit":O().alias("n").describe("Apply changes without creating a commit"),"no-edit":O().describe("Do not edit the commit message"),mainline:Y.number().alias("m").describe("Select the parent number for reverting merges")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort){let G=await t?.hooks?.preRevert?.({repo:s,mode:"abort",commitRef:null});if(de(G))return{stdout:"",stderr:G.message??"",exitCode:1};let I=await Lw(s,r.env);return I.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),I}if(n.continue){let G=await t?.hooks?.preRevert?.({repo:s,mode:"continue",commitRef:null});if(de(G))return{stdout:"",stderr:G.message??"",exitCode:1};let I=await Nw(s,r.env);if(I.exitCode===0){let T=await Z(s);await t?.hooks?.postRevert?.({repo:s,mode:"continue",commitHash:T,hadConflicts:!1})}return I}if(n.skip)return Gw(s,r.env);let i=n.commit;if(!i)return S("you must specify a commit to revert");let a=await t?.hooks?.preRevert?.({repo:s,mode:"revert",commitRef:i});if(de(a))return{stdout:"",stderr:a.message??"",exitCode:1};let c=await Me(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Qe(s);if(M(d))return d;let u=n["no-commit"]?"no-commit":"commit",h=await V(s),m=Fw(h,u);if(m)return m;let p=await j(s,d);if(s.workTree&&u==="commit"){let G=await le(s,p.tree);if(lr(h,G))return F(`error: your local changes would be overwritten by revert.
738
+ `,exitCode:1};s=lt(s,f);let u=`${e.workTree}/${f}`;await e.fs.exists(u)&&await e.fs.rm(u)}}return await ae(e,s),{stdout:"",stderr:"",exitCode:0}}se();ie();me();ge();fn();Ae();function zd(e,t){e.command("rev-parse",{description:"Pick out and massage parameters",args:[q.string().name("args").describe("Refs or revision expressions to resolve").optional().variadic()],options:{verify:O().describe("Verify that exactly one parameter is provided and resolves to an object"),short:O().describe("Abbreviate object name (default 7 chars)"),"abbrev-ref":O().describe("Output abbreviated ref name instead of object hash"),"symbolic-full-name":O().describe("Output the full symbolic ref name"),"show-toplevel":O().describe("Show the absolute path of the top-level directory"),"git-dir":O().describe("Show the path to the .git directory"),"is-inside-work-tree":O().describe("Output whether cwd is inside the work tree"),"is-bare-repository":O().describe("Output whether the repository is bare"),"show-prefix":O().describe("Show path of cwd relative to top-level directory"),"show-cdup":O().describe("Show relative path from cwd up to top-level directory")},handler:async(n,r)=>{let o=n.args.filter(E=>E!==""),s=n.verify,i=n.short,a=n["abbrev-ref"],c=n["symbolic-full-name"],f=n["show-toplevel"],l=n["git-dir"],d=n["is-inside-work-tree"],u=n["is-bare-repository"],h=n["show-prefix"],m=n["show-cdup"],p=f||l||d||u||h||m,g=await K(r.fs,r.cwd,t);if(M(g))return g;let w=g,b=[];if(f){if(!w.workTree)return S("this operation must be run in a work tree");b.push(w.workTree)}if(l&&b.push(w.gitDir),d&&b.push(w.workTree?"true":"false"),u&&b.push(w.workTree?"false":"true"),h){if(!w.workTree)return S("this operation must be run in a work tree");let E=rt(w.workTree,r.cwd);b.push(E===""?"":`${E}/`)}if(m){if(!w.workTree)return S("this operation must be run in a work tree");let E=rt(r.cwd,w.workTree);b.push(E===""?"":`${E}/`)}if(p&&o.length===0)return{stdout:b.map(k=>`${k}
739
+ `).join(""),stderr:"",exitCode:0};if(s&&o.length!==1)return S("Needed a single revision");for(let E of o){if(a){let y=await Dw(w,E);if(y===null)return ja(E,s);b.push(y);continue}if(c){let y=await Mw(w,E);if(y===null)return ja(E,s);b.push(y);continue}let k=to(E);if(k){let y=await jw(w,k.rev,k.path);if(y===null){let P=k.path.replace(/^\//,"");return S(`path '${P}' does not exist in '${k.rev}'`)}b.push(i?X(y):y);continue}let x=await We(w,E);if(!x)return ja(E,s);b.push(i?X(x):x)}return{stdout:b.map(E=>`${E}
740
+ `).join(""),stderr:"",exitCode:0}}})}function ja(e,t){return t?S("Needed a single revision"):Jt(e)}async function Dw(e,t){if(t==="HEAD"||t==="@"){let r=await te(e);if(!r)return null;if(r.type==="symbolic"){let o=r.target;return o.startsWith("refs/heads/")?o.slice(11):o}return"HEAD"}return await We(e,t)?t:null}async function Mw(e,t){if(t==="HEAD"||t==="@"){let r=await te(e);return r?r.type==="symbolic"?r.target:"HEAD":null}if(!await We(e,t))return null;if(t.startsWith("refs/"))return t;for(let r of["refs/heads/","refs/tags/","refs/remotes/"]){let o=`${r}${t}`;if(await U(e,o))return o}return t}async function jw(e,t,n){let r=await We(e,t);if(!r)return null;let o=await j(e,r),s=n.replace(/^\//,"");return s===""?o.tree:(await le(e,o.tree)).get(s)?.hash??null}se();Ue();Ce();ie();Be();ge();Ae();Nt();function Vd(e,t){e.command("revert",{description:"Revert some existing commits",args:[q.string().name("commit").describe("The commit to revert").optional()],options:{abort:O().describe("Abort the current revert operation"),continue:O().describe("Continue the revert after conflict resolution"),skip:O().describe("Skip the current commit and continue"),"no-commit":O().alias("n").describe("Apply changes without creating a commit"),"no-edit":O().describe("Do not edit the commit message"),mainline:Y.number().alias("m").describe("Select the parent number for reverting merges")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort){let L=await t?.hooks?.preRevert?.({repo:s,mode:"abort",commitRef:null});if(de(L))return{stdout:"",stderr:L.message??"",exitCode:1};let I=await Lw(s,r.env);return I.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),I}if(n.continue){let L=await t?.hooks?.preRevert?.({repo:s,mode:"continue",commitRef:null});if(de(L))return{stdout:"",stderr:L.message??"",exitCode:1};let I=await Nw(s,r.env);if(I.exitCode===0){let T=await Z(s);await t?.hooks?.postRevert?.({repo:s,mode:"continue",commitHash:T,hadConflicts:!1})}return I}if(n.skip)return Gw(s,r.env);let i=n.commit;if(!i)return S("you must specify a commit to revert");let a=await t?.hooks?.preRevert?.({repo:s,mode:"revert",commitRef:i});if(de(a))return{stdout:"",stderr:a.message??"",exitCode:1};let c=await Me(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Qe(s);if(M(d))return d;let u=n["no-commit"]?"no-commit":"commit",h=await V(s),m=Fw(h,u);if(m)return m;let p=await j(s,d);if(s.workTree&&u==="commit"){let L=await le(s,p.tree);if(lr(h,L))return _(`error: your local changes would be overwritten by revert.
739
741
  hint: commit your changes or stash them to proceed.
740
742
  fatal: revert failed
741
- `,128)}let g=n.mainline,w;if(l.parents.length>1){if(g===void 0)return F(`error: commit ${f} is a merge but no -m option was given.
743
+ `,128)}let g=n.mainline,w;if(l.parents.length>1){if(g===void 0)return _(`error: commit ${f} is a merge but no -m option was given.
742
744
  fatal: revert failed
743
- `,128);if(g<1||g>l.parents.length)return F(`error: commit ${f} does not have parent ${g}
745
+ `,128);if(g<1||g>l.parents.length)return _(`error: commit ${f} does not have parent ${g}
744
746
  fatal: revert failed
745
- `,128);let G=l.parents[g-1];w=(await j(s,G)).tree}else if(l.parents.length===0)w=await Fe(s,[]);else{let G=l.parents[0];w=(await j(s,G)).tree}let b=X(f),k=ue(l.message),E=Uw(l,f,g),R=It(E),x=await ke(s,"merge.conflictstyle")??"merge",y={a:"HEAD",b:k?`parent of ${b} (${k})`:`parent of ${b}`,conflictStyle:x},C=await qt(s,l.tree,p.tree,w,y,t?.mergeDriver);if(C.conflicts.length===0&&C.resultTree===p.tree){if(u==="no-commit")return await La(s,f,E),{stdout:"",stderr:"",exitCode:0};let G=C.messages.length>0?`${C.messages.join(`
747
+ `,128);let L=l.parents[g-1];w=(await j(s,L)).tree}else if(l.parents.length===0)w=await Fe(s,[]);else{let L=l.parents[0];w=(await j(s,L)).tree}let b=X(f),R=ue(l.message),E=Uw(l,f,g),k=It(E),x=await ke(s,"merge.conflictstyle")??"merge",y={a:"HEAD",b:R?`parent of ${b} (${R})`:`parent of ${b}`,conflictStyle:x},P=await Kt(s,l.tree,p.tree,w,y,t?.mergeDriver);if(P.conflicts.length===0&&P.resultTree===p.tree){if(u==="no-commit")return await La(s,f,E),{stdout:"",stderr:"",exitCode:0};let L=P.messages.length>0?`${P.messages.join(`
746
748
  `)}
747
- `:"",I=await at(s,{fromCommit:!0}),T=await U(s,"CHERRY_PICK_HEAD");return{stdout:`${G}${I}`,stderr:T?`The previous cherry-pick is now empty, possibly due to conflict resolution.
749
+ `:"",I=await at(s,{fromCommit:!0}),T=await U(s,"CHERRY_PICK_HEAD");return{stdout:`${L}${I}`,stderr:T?`The previous cherry-pick is now empty, possibly due to conflict resolution.
748
750
  If you wish to commit it anyway, use:
749
751
 
750
752
  git commit --allow-empty
751
753
 
752
754
  Otherwise, please use 'git cherry-pick --skip'
753
- `:"",exitCode:1}}let P=await In(s,C,p.tree,{labels:y,errorExitCode:128,operationName:"merge",callerCommand:"revert",skipStagedChangeCheck:!0});if(!P.ok)return P;if(C.conflicts.length>0){await La(s,f,E,d);let G=C.messages.join(`
754
- `);return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:null,hadConflicts:!0}),{stdout:G?`${G}
755
- `:"",stderr:_w(b,ue(l.message),u),exitCode:1}}if(u==="no-commit")return await La(s,f,E),{stdout:"",stderr:"",exitCode:0};let D=P.mergedTreeHash,A=await hn(s,r.env);if(M(A))return A;let $=await tt(s,r.env);if(M($))return $;let v=await Yd({gitCtx:s,env:r.env,headHash:d,headTreeHash:p.tree,treeHash:D,author:A,committer:$,commitMessage:R,displayMessage:E,reflogMessage:`revert: ${ue(E)}`}),_=C.messages.length>0?`${C.messages.join(`
755
+ `:"",exitCode:1}}let C=await Hn(s,P,p.tree,{labels:y,errorExitCode:128,operationName:"merge",callerCommand:"revert",skipStagedChangeCheck:!0});if(!C.ok)return C;if(P.conflicts.length>0){await La(s,f,E,d);let L=P.messages.join(`
756
+ `);return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:null,hadConflicts:!0}),{stdout:L?`${L}
757
+ `:"",stderr:_w(b,ue(l.message),u),exitCode:1}}if(u==="no-commit")return await La(s,f,E),{stdout:"",stderr:"",exitCode:0};let A=C.mergedTreeHash,D=await mn(s,r.env);if(M(D))return D;let $=await tt(s,r.env);if(M($))return $;let v=await Yd({gitCtx:s,env:r.env,headHash:d,headTreeHash:p.tree,treeHash:A,author:D,committer:$,commitMessage:k,displayMessage:E,reflogMessage:`revert: ${ue(E)}`}),N=P.messages.length>0?`${P.messages.join(`
756
758
  `)}
757
- `:"";return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:v.commitHash,hadConflicts:!1}),{stdout:`${_}${v.stdout}`,stderr:"",exitCode:0}}})}async function Lw(e,t){return await U(e,"REVERT_HEAD")?Wn(e,t,{operationRef:"REVERT_HEAD",noOpError:F(`error: no cherry-pick or revert in progress
759
+ `:"";return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:v.commitHash,hadConflicts:!1}),{stdout:`${N}${v.stdout}`,stderr:"",exitCode:0}}})}async function Lw(e,t){return await U(e,"REVERT_HEAD")?qn(e,t,{operationRef:"REVERT_HEAD",noOpError:_(`error: no cherry-pick or revert in progress
758
760
  fatal: revert failed
759
- `,128),operationName:"revert",clearState:async o=>{await Ft(o),await en(o)},origHeadAsTargetRev:!0}):await U(e,"CHERRY_PICK_HEAD")?Wn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:F(`error: no cherry-pick or revert in progress
761
+ `,128),operationName:"revert",clearState:async o=>{await _t(o),await en(o)},origHeadAsTargetRev:!0}):await U(e,"CHERRY_PICK_HEAD")?qn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:_(`error: no cherry-pick or revert in progress
760
762
  fatal: revert failed
761
- `,128),operationName:"revert",clearState:en,origHeadAsTargetRev:!0}):F(`error: no cherry-pick or revert in progress
763
+ `,128),operationName:"revert",clearState:en,origHeadAsTargetRev:!0}):_(`error: no cherry-pick or revert in progress
762
764
  fatal: revert failed
763
- `,128)}async function Gw(e,t){if(!await U(e,"REVERT_HEAD"))return F(`error: no revert in progress
765
+ `,128)}async function Gw(e,t){if(!await U(e,"REVERT_HEAD"))return _(`error: no revert in progress
764
766
  fatal: revert failed
765
767
  `,128);let r=await Z(e);if(!r)return S("unable to resolve HEAD");let o=await j(e,r),s=await V(e),i=await Ar(e,o.tree,s,r);if(!i.success){let a=i.errorOutput;return{...a,stderr:a.stderr+`error: failed to skip the commit
766
768
  fatal: revert failed
767
- `}}return await ae(e,{version:2,entries:i.newEntries}),await je(e,i.worktreeOps),await re(e,t,"HEAD",r,r,`reset: moving to ${r}`),await Ft(e),{stdout:"",stderr:"",exitCode:0}}async function Nw(e,t){if(!await U(e,"REVERT_HEAD"))return F(`error: no cherry-pick or revert in progress
769
+ `}}return await ae(e,{version:2,entries:i.newEntries}),await De(e,i.worktreeOps),await re(e,t,"HEAD",r,r,`reset: moving to ${r}`),await _t(e),{stdout:"",stderr:"",exitCode:0}}async function Nw(e,t){if(!await U(e,"REVERT_HEAD"))return _(`error: no cherry-pick or revert in progress
768
770
  fatal: revert failed
769
- `,128);let r=await V(e),o=Pn(r,"Committing");if(o)return o;let s=await $e(e,"MERGE_MSG");if(!s)return F(`Aborting commit due to empty commit message.
770
- `,1);let i=await $e(e,"SQUASH_MSG");if(i&&(s=i+s),s=St(s),!s)return F(`Aborting commit due to empty commit message.
771
- `,1);let a=Ge(r),c=await Fe(e,a),f=await Qe(e);if(M(f))return f;let l=await j(e,f),d=await hn(e,t);if(M(d))return d;let u=await tt(e,t);if(M(u))return u;let h=await U(e,"CHERRY_PICK_HEAD");h&&(d=(await j(e,h)).author);let m=It(s);return{stdout:(await Yd({gitCtx:e,env:t,headHash:f,headTreeHash:l.tree,treeHash:c,author:d,committer:u,commitMessage:m,displayMessage:s,reflogMessage:`commit: ${ue(m)}`})).stdout,stderr:"",exitCode:0}}function Fw(e,t){if(t==="commit")return Pn(e,"Reverting",`fatal: revert failed
771
+ `,128);let r=await V(e),o=Sn(r,"Committing");if(o)return o;let s=await $e(e,"MERGE_MSG");if(!s)return _(`Aborting commit due to empty commit message.
772
+ `,1);let i=await $e(e,"SQUASH_MSG");if(i&&(s=i+s),s=St(s),!s)return _(`Aborting commit due to empty commit message.
773
+ `,1);let a=Ge(r),c=await Fe(e,a),f=await Qe(e);if(M(f))return f;let l=await j(e,f),d=await mn(e,t);if(M(d))return d;let u=await tt(e,t);if(M(u))return u;let h=await U(e,"CHERRY_PICK_HEAD");h&&(d=(await j(e,h)).author);let m=It(s);return{stdout:(await Yd({gitCtx:e,env:t,headHash:f,headTreeHash:l.tree,treeHash:c,author:d,committer:u,commitMessage:m,displayMessage:s,reflogMessage:`commit: ${ue(m)}`})).stdout,stderr:"",exitCode:0}}function Fw(e,t){if(t==="commit")return Sn(e,"Reverting",`fatal: revert failed
772
774
  `);let n=e.entries.filter(a=>a.stage>0);if(n.length===0)return null;let r=10,s=n.slice(0,r).map(a=>`${a.path}: unmerged (${a.hash})`).join(`
773
775
  `),i=n.length>r?`
774
- ...`:"";return F(`${s}${i}
776
+ ...`:"";return _(`${s}${i}
775
777
  error: your index file is unmerged.
776
778
  fatal: revert failed
777
779
  `,128)}async function La(e,t,n,r){await J(e,"REVERT_HEAD",t),r&&await J(e,"ORIG_HEAD",r),await Le(e,"MERGE_MSG",n)}function _w(e,t,n){let r=`error: could not revert ${e}... ${t}
@@ -785,29 +787,29 @@ hint: You can instead skip this commit with "git revert --skip".
785
787
  hint: To abort and get back to the state before "git revert",
786
788
  hint: run "git revert --abort".
787
789
  hint: Disable this message with "git config set advice.mergeConflict false"
788
- `}async function Yd(e){let{gitCtx:t,env:n,headHash:r,headTreeHash:o,treeHash:s,author:i,committer:a,commitMessage:c,displayMessage:f,reflogMessage:l}=e,d=await Ot(t,s,[r],i,a,c);await Ft(t),await en(t);let u=await te(t),h=u?.type==="symbolic"?u.target:"HEAD";await re(t,n,h,r,d,l,u?.type==="symbolic");let m=u?.type==="symbolic"?Pe(u.target):"detached HEAD",p=await Sn(t,o,s,i,a,i.name!==a.name||i.email!==a.email||i.timestamp!==a.timestamp||i.timezone!==a.timezone),g=Qt(m,d,f);return{commitHash:d,stdout:`${g}
790
+ `}async function Yd(e){let{gitCtx:t,env:n,headHash:r,headTreeHash:o,treeHash:s,author:i,committer:a,commitMessage:c,displayMessage:f,reflogMessage:l}=e,d=await Ot(t,s,[r],i,a,c);await _t(t),await en(t);let u=await te(t),h=u?.type==="symbolic"?u.target:"HEAD";await re(t,n,h,r,d,l,u?.type==="symbolic");let m=u?.type==="symbolic"?Pe(u.target):"detached HEAD",p=await vn(t,o,s,i,a,i.name!==a.name||i.email!==a.email||i.timestamp!==a.timestamp||i.timezone!==a.timezone),g=Qt(m,d,f);return{commitHash:d,stdout:`${g}
789
791
  ${p}`}}function Uw(e,t,n){let r=ue(e.message),o='Revert "',a=`${r.startsWith(o)&&r.endsWith('"')?`Reapply "${r.slice(o.length,-1)}"`:`Revert "${r}"`}
790
792
 
791
793
  This reverts commit ${t}`;if(n!==void 0&&e.parents.length>1&&n>=1){let c=e.parents[n-1]??e.parents[0];a+=`, reversing
792
794
  changes made to ${c}`}return a+=`.
793
- `,a}se();Ce();ie();me();ge();Rn();Ae();function Xd(e,t){e.command("rm",{description:"Remove files from the working tree and from the index",args:[K.string().name("paths").describe("Files to remove").optional().variadic()],options:{cached:O().describe("Only remove from the index"),recursive:O().alias("r").describe("Allow recursive removal when a directory name is given"),force:O().alias("f").describe("Override the up-to-date check"),dryRun:O().alias("n").describe("Don't actually remove any file(s)")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Ye(s);if(i)return i;let a=s.workTree,c=n.paths;if(c.length===0)return F("usage: git rm [--cached] [-f] [-r] <file>...");let f=n.cached,l=n.recursive,d=n.force,u=await V(s),h=[],m=ut(s,r.cwd);for(let w of c){if(dr(w)){let R=[_e(w,m)],x=u.entries.filter(y=>Ee(R,y.path));if(x.length===0)return S(`pathspec '${w}' did not match any files`);for(let y of x)h.push(y.path);continue}let b=Mt(r.cwd,w),k=rt(a,b);if((k==="."||k==="")&&(k=""),k.startsWith(".."))return S(`'${w}' is outside repository at '${a}'`);if(await r.fs.exists(b)&&!(await mt(r.fs,b)).isSymbolicLink&&(await mt(r.fs,b)).isDirectory){if(!l)return S(`not removing '${k}' recursively without -r`);let R=k===""?"":`${k}/`,x=u.entries.filter(y=>R===""||y.path.startsWith(R));if(x.length===0)return S(`pathspec '${w}' did not match any files`);for(let y of x)h.push(y.path)}else{if(!u.entries.some(x=>x.path===k))return S(`pathspec '${w}' did not match any files`);h.push(k)}}if(!d){let w=await Bw(s,u,h,f);if(w)return w}if(n.dryRun){let w=h.map(k=>`rm '${k}'`);return{stdout:w.length>0?`${w.join(`
795
+ `,a}se();Ce();ie();me();ge();Pn();Ae();function Xd(e,t){e.command("rm",{description:"Remove files from the working tree and from the index",args:[q.string().name("paths").describe("Files to remove").optional().variadic()],options:{cached:O().describe("Only remove from the index"),recursive:O().alias("r").describe("Allow recursive removal when a directory name is given"),force:O().alias("f").describe("Override the up-to-date check"),dryRun:O().alias("n").describe("Don't actually remove any file(s)")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Ye(s);if(i)return i;let a=s.workTree,c=n.paths;if(c.length===0)return _("usage: git rm [--cached] [-f] [-r] <file>...");let f=n.cached,l=n.recursive,d=n.force,u=await V(s),h=[],m=ut(s,r.cwd);for(let w of c){if(dr(w)){let k=[_e(w,m)],x=u.entries.filter(y=>Ee(k,y.path));if(x.length===0)return S(`pathspec '${w}' did not match any files`);for(let y of x)h.push(y.path);continue}let b=Mt(r.cwd,w),R=rt(a,b);if((R==="."||R==="")&&(R=""),R.startsWith(".."))return S(`'${w}' is outside repository at '${a}'`);if(await r.fs.exists(b)&&!(await mt(r.fs,b)).isSymbolicLink&&(await mt(r.fs,b)).isDirectory){if(!l)return S(`not removing '${R}' recursively without -r`);let k=R===""?"":`${R}/`,x=u.entries.filter(y=>k===""||y.path.startsWith(k));if(x.length===0)return S(`pathspec '${w}' did not match any files`);for(let y of x)h.push(y.path)}else{if(!u.entries.some(x=>x.path===R))return S(`pathspec '${w}' did not match any files`);h.push(R)}}if(!d){let w=await Bw(s,u,h,f);if(w)return w}if(n.dryRun){let w=h.map(R=>`rm '${R}'`);return{stdout:w.length>0?`${w.join(`
794
796
  `)}
795
797
  `:"",stderr:"",exitCode:0}}let p=[];for(let w of h){if(u=lt(u,w),!f){let b=H(a,w);await mt(r.fs,b).then(()=>!0).catch(()=>!1)&&await r.fs.rm(b)}p.push(`rm '${w}'`)}return await ae(s,u),{stdout:p.length>0?`${p.join(`
796
798
  `)}
797
- `:"",stderr:"",exitCode:0}}})}async function Bw(e,t,n,r){let o=await Z(e),s=new Map;if(o){let f=await j(e,o),l=await qe(e,f.tree);for(let d of l)s.set(d.path,d.hash)}let i=[],a=[],c=[];for(let f of n){let l=t.entries.find(m=>m.path===f&&m.stage===0);if(!l)continue;let u=s.get(f)!==l.hash,h=!1;if(e.workTree){let m=H(e.workTree,f),p=!1;try{await mt(e.fs,m),p=!0}catch{p=!1}p&&(h=await Un(e.fs,m)!==l.hash)}u&&h?i.push(f):u&&!r?a.push(f):h&&!r&&c.push(f)}if(i.length>0){let f=i.map(d=>` ${d}`).join(`
798
- `),l=i.length===1?"the following file has":"the following files have";return F(`error: ${l} staged content different from both the
799
+ `:"",stderr:"",exitCode:0}}})}async function Bw(e,t,n,r){let o=await Z(e),s=new Map;if(o){let f=await j(e,o),l=await qe(e,f.tree);for(let d of l)s.set(d.path,d.hash)}let i=[],a=[],c=[];for(let f of n){let l=t.entries.find(m=>m.path===f&&m.stage===0);if(!l)continue;let u=s.get(f)!==l.hash,h=!1;if(e.workTree){let m=H(e.workTree,f),p=!1;try{await mt(e.fs,m),p=!0}catch{p=!1}p&&(h=await Wn(e.fs,m)!==l.hash)}u&&h?i.push(f):u&&!r?a.push(f):h&&!r&&c.push(f)}if(i.length>0){let f=i.map(d=>` ${d}`).join(`
800
+ `),l=i.length===1?"the following file has":"the following files have";return _(`error: ${l} staged content different from both the
799
801
  file and the HEAD:
800
802
  ${f}
801
803
  (use -f to force removal)
802
804
  `)}if(a.length>0){let f=a.map(d=>` ${d}`).join(`
803
- `),l=a.length===1?"the following file has":"the following files have";return F(`error: ${l} changes staged in the index:
805
+ `),l=a.length===1?"the following file has":"the following files have";return _(`error: ${l} changes staged in the index:
804
806
  ${f}
805
807
  (use --cached to keep the file, or -f to force removal)
806
808
  `)}if(c.length>0){let f=c.map(d=>` ${d}`).join(`
807
- `),l=c.length===1?"the following file has":"the following files have";return F(`error: ${l} local modifications:
809
+ `),l=c.length===1?"the following file has":"the following files have";return _(`error: ${l} local modifications:
808
810
  ${f}
809
811
  (use --cached to keep the file, or -f to force removal)
810
- `)}return null}se();ie();fn();no();me();Ae();var Ga=new TextDecoder;function Zd(e,t){e.command("show",{description:"Show various types of objects",args:[K.string().name("object").variadic().optional()],options:{patch:O().alias("p").describe("Show diff in patch format"),noPatch:O().describe("Suppress diff output"),stat:O().describe("Show diffstat summary"),nameOnly:O().describe("Show only names of changed files"),nameStatus:O().describe("Show names and status of changed files"),shortstat:O().describe("Show only the shortstat summary line"),numstat:O().describe("Machine-readable insertions/deletions per file"),format:Y.string().describe("Pretty-print format string"),pretty:Y.string().describe("Pretty-print format or preset name")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,a=n.object[0]??"HEAD",c=to(a);if(c)return Ww(s,c.rev,c.path);if(a==="HEAD"){let p=await Qe(s);if(M(p))return p}let f=await yt(s,a,`bad object '${a}'`);if(M(f))return f;let l=await we(s,f),d;n.noPatch?d=null:n.stat?d="stat":n.nameOnly?d="name-only":n.nameStatus?d="name-status":n.shortstat?d="shortstat":n.numstat?d="numstat":d="patch";let u=n.format??n.pretty,h=null,m=null;if(u!==void 0){let p=ei(u);h=p.formatStr,m=p.preset}switch(l.type){case"commit":{let p=await j(s,f);return{stdout:await Jd(s,f,p,d,h,m),stderr:"",exitCode:0}}case"tag":{let p=await Yc(s,f);return{stdout:await qw(s,p,d,h,m),stderr:"",exitCode:0}}case"tree":{let p=En(l.content);return{stdout:Qd(p),stderr:"",exitCode:0}}case"blob":return{stdout:Ga.decode(l.content),stderr:"",exitCode:0}}}})}async function Ww(e,t,n){let r=await Me(e,t);if(M(r))return r;let o=r.commit.tree,s=n.replace(/^\//,""),a=(await le(e,o)).get(s);if(!a){let f=`path '${s}' does not exist in '${t}'`;if(e.workTree){let l=H(e.workTree,s);await e.fs.exists(l)&&(f=`path '${s}' exists on disk, but not in '${t}'`)}return S(f)}let c=await we(e,a.hash);if(c.type==="blob")return{stdout:Ga.decode(c.content),stderr:"",exitCode:0};if(c.type==="tree"){let f=En(c.content);return{stdout:Qd(f),stderr:"",exitCode:0}}return{stdout:Ga.decode(c.content),stderr:"",exitCode:0}}async function Jd(e,t,n,r="patch",o=null,s=null){let i;if(o!==null)i=Ts(o,{hash:t,commit:n});else if(s!==null)i=vs(s,{hash:t,commit:n},!0,!1);else{let c=[];if(c.push(`commit ${t}`),n.parents.length>=2){let l=n.parents.map(d=>X(d)).join(" ");c.push(`Merge: ${l}`)}c.push(`Author: ${n.author.name} <${n.author.email}>`),c.push(`Date: ${On(n.author.timestamp,n.author.timezone)}`),c.push("");let f=n.message.replace(/\n$/,"");for(let l of f.split(`
812
+ `)}return null}se();ie();fn();no();me();Ae();var Ga=new TextDecoder;function Zd(e,t){e.command("show",{description:"Show various types of objects",args:[q.string().name("object").variadic().optional()],options:{patch:O().alias("p").describe("Show diff in patch format"),noPatch:O().describe("Suppress diff output"),stat:O().describe("Show diffstat summary"),nameOnly:O().describe("Show only names of changed files"),nameStatus:O().describe("Show names and status of changed files"),shortstat:O().describe("Show only the shortstat summary line"),numstat:O().describe("Machine-readable insertions/deletions per file"),format:Y.string().describe("Pretty-print format string"),pretty:Y.string().describe("Pretty-print format or preset name")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o,a=n.object[0]??"HEAD",c=to(a);if(c)return Ww(s,c.rev,c.path);if(a==="HEAD"){let p=await Qe(s);if(M(p))return p}let f=await yt(s,a,`bad object '${a}'`);if(M(f))return f;let l=await we(s,f),d;n.noPatch?d=null:n.stat?d="stat":n.nameOnly?d="name-only":n.nameStatus?d="name-status":n.shortstat?d="shortstat":n.numstat?d="numstat":d="patch";let u=n.format??n.pretty,h=null,m=null;if(u!==void 0){let p=ei(u);h=p.formatStr,m=p.preset}switch(l.type){case"commit":{let p=await j(s,f);return{stdout:await Jd(s,f,p,d,h,m),stderr:"",exitCode:0}}case"tag":{let p=await Yc(s,f);return{stdout:await qw(s,p,d,h,m),stderr:"",exitCode:0}}case"tree":{let p=xn(l.content);return{stdout:Qd(p),stderr:"",exitCode:0}}case"blob":return{stdout:Ga.decode(l.content),stderr:"",exitCode:0}}}})}async function Ww(e,t,n){let r=await Me(e,t);if(M(r))return r;let o=r.commit.tree,s=n.replace(/^\//,""),a=(await le(e,o)).get(s);if(!a){let f=`path '${s}' does not exist in '${t}'`;if(e.workTree){let l=H(e.workTree,s);await e.fs.exists(l)&&(f=`path '${s}' exists on disk, but not in '${t}'`)}return S(f)}let c=await we(e,a.hash);if(c.type==="blob")return{stdout:Ga.decode(c.content),stderr:"",exitCode:0};if(c.type==="tree"){let f=xn(c.content);return{stdout:Qd(f),stderr:"",exitCode:0}}return{stdout:Ga.decode(c.content),stderr:"",exitCode:0}}async function Jd(e,t,n,r="patch",o=null,s=null){let i;if(o!==null)i=Ts(o,{hash:t,commit:n});else if(s!==null)i=vs(s,{hash:t,commit:n},!0,!1);else{let c=[];if(c.push(`commit ${t}`),n.parents.length>=2){let l=n.parents.map(d=>X(d)).join(" ");c.push(`Merge: ${l}`)}c.push(`Author: ${n.author.name} <${n.author.email}>`),c.push(`Date: ${Tn(n.author.timestamp,n.author.timezone)}`),c.push("");let f=n.message.replace(/\n$/,"");for(let l of f.split(`
811
813
  `))c.push(` ${l}`);i=c.join(`
812
814
  `)}if(!r)return`${i}
813
815
  `;let a="";if(n.parents.length<=1){let c=n.parents.length===1?(await j(e,n.parents[0])).tree:null,f=await Ve(e,c,n.tree),{remaining:l,renames:d}=await it(e,f);a=await Kw(e,l,d,r)}else r==="patch"&&(a=await tb(e,n)??"");return a?`${i}
@@ -816,7 +818,7 @@ ${a.replace(/\n$/,"")}
816
818
  `:n.parents.length>=2?`${i}
817
819
 
818
820
  `:`${i}
819
- `}async function qw(e,t,n="patch",r=null,o=null){let s=[];s.push(`tag ${t.name}`),s.push(`Tagger: ${t.tagger.name} <${t.tagger.email}>`),s.push(`Date: ${On(t.tagger.timestamp,t.tagger.timezone)}`),s.push("");let i=t.message.replace(/\n$/,"");for(let a of i.split(`
821
+ `}async function qw(e,t,n="patch",r=null,o=null){let s=[];s.push(`tag ${t.name}`),s.push(`Tagger: ${t.tagger.name} <${t.tagger.email}>`),s.push(`Date: ${Tn(t.tagger.timestamp,t.tagger.timezone)}`),s.push("");let i=t.message.replace(/\n$/,"");for(let a of i.split(`
820
822
  `))s.push(` ${a}`);if(t.objectType==="commit"){let a=await j(e,t.object),c=await Jd(e,t.object,a,n,r,o);s.push(""),s.push(c.replace(/\n$/,""))}return`${s.join(`
821
823
  `)}
822
824
  `}function Qd(e){let t=[];for(let n of e.entries){let r=n.mode==="040000"?"tree":"blob";t.push(`${n.mode} ${r} ${n.hash} ${n.name}`)}return t.length>0?`${t.join(`
@@ -824,73 +826,74 @@ ${a.replace(/\n$/,"")}
824
826
  `:""}async function Kw(e,t,n,r){switch(r){case"patch":return eb(e,t,n);case"stat":return Yw(e,t,n);case"shortstat":return Xw(e,t,n);case"numstat":return Zw(e,t,n);case"name-only":return zw(t,n);case"name-status":return Vw(t,n);default:return""}}function zw(e,t){let n=[];for(let r of e)n.push(r.path);for(let r of t)n.push(r.newPath);return n.sort(),n.length>0?`${n.join(`
825
827
  `)}
826
828
  `:""}function Vw(e,t){let n=[];for(let r of e){let o=r.status==="added"?"A":r.status==="deleted"?"D":"M";n.push({key:r.path,line:`${o} ${r.path}`})}for(let r of t){let o=String(r.similarity??100).padStart(3,"0");n.push({key:r.newPath,line:`R${o} ${r.oldPath} ${r.newPath}`})}return n.sort((r,o)=>r.key<o.key?-1:r.key>o.key?1:0),n.length>0?n.map(r=>`${r.line}
827
- `).join(""):""}async function Yw(e,t,n){let{fileStats:r}=await er(e,t,n);return r.sort((o,s)=>o.sortKey<s.sortKey?-1:o.sortKey>s.sortKey?1:0),pr(r)}async function Xw(e,t,n){let{fileStats:r}=await er(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=Qn(r.length,o,s);return i?`${i}
828
- `:""}async function Zw(e,t,n){let r=[];for(let s of t)r.push({key:s.path,oldHash:s.oldHash,newHash:s.newHash,display:s.path});for(let s of n)r.push({key:s.newPath,oldHash:s.oldHash,newHash:s.newHash,display:mn(s.oldPath,s.newPath)});r.sort((s,i)=>s.key<i.key?-1:s.key>i.key?1:0);let o="";for(let s of r){let i=s.oldHash?await oe(e,s.oldHash):"",a=s.newHash?await oe(e,s.newHash):"";if(De(i)||De(a))o+=`- - ${s.display}
829
+ `).join(""):""}async function Yw(e,t,n){let{fileStats:r}=await tr(e,t,n);return r.sort((o,s)=>o.sortKey<s.sortKey?-1:o.sortKey>s.sortKey?1:0),pr(r)}async function Xw(e,t,n){let{fileStats:r}=await tr(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=er(r.length,o,s);return i?`${i}
830
+ `:""}async function Zw(e,t,n){let r=[];for(let s of t)r.push({key:s.path,oldHash:s.oldHash,newHash:s.newHash,display:s.path});for(let s of n)r.push({key:s.newPath,oldHash:s.oldHash,newHash:s.newHash,display:pn(s.oldPath,s.newPath)});r.sort((s,i)=>s.key<i.key?-1:s.key>i.key?1:0);let o="";for(let s of r){let i=s.oldHash?await oe(e,s.oldHash):"",a=s.newHash?await oe(e,s.newHash):"";if(je(i)||je(a))o+=`- - ${s.display}
829
831
  `;else{let c=xt(i),f=xt(a),l=ct(c,f),d=0,u=0;for(let h of l)h.type==="insert"?d++:h.type==="delete"&&u++;o+=`${d} ${u} ${s.display}
830
- `}}return o}async function Jw(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Ht({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash})}async function Qw(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Ht({path:t.oldPath,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash,renameTo:t.newPath,similarity:t.similarity})}async function eb(e,t,n){let r=[];for(let s of t)r.push({type:"diff",entry:s});for(let s of n)r.push({type:"rename",entry:s});r.sort((s,i)=>{let a=s.type==="diff"?s.entry.path:s.entry.newPath,c=i.type==="diff"?i.entry.path:i.entry.newPath;return a<c?-1:a>c?1:0});let o="";for(let s of r)s.type==="rename"?o+=await Qw(e,s.entry):o+=await Jw(e,s.entry);return o}async function tb(e,t){if(t.parents.length<2)return"";let n=await Promise.all(t.parents.map(async a=>{let c=await j(e,a);return le(e,c.tree)})),r=await le(e,t.tree),o=new Set;for(let a of n)for(let c of a.keys())o.add(c);for(let a of r.keys())o.add(a);let s=[];for(let a of o){let f=r.get(a)?.hash??null;n.every(d=>(d.get(a)?.hash??null)!==f)&&s.push(a)}if(s.sort(),s.length===0)return"";let i="";for(let a of s)i+=await nb(e,a,n,r);return i}async function nb(e,t,n,r){let o=r.get(t),s=n.map(u=>u.get(t)??null),i=o?.hash??null,a=o?.mode??null,c=s.map(u=>u?.hash??null),f=s.map(u=>u?.mode??null),l=await Promise.all(c.map(async u=>u?await oe(e,u):"")),d=i?await oe(e,i):"";return Bo({path:t,parentHashes:c,parentModes:f,parentContents:l,resultHash:i,resultMode:a,resultContent:d})}se();Ce();ie();ge();se();rr();Ce();ie();wn();me();Be();ge();Rn();Ae();Zt();Je();var rn="refs/stash";function Fa(e,t){return ve(e.replaceAll("/","\0"),t.replaceAll("/","\0"))}async function eu(e){let t=await et(e,rn),n=[];for(let r=t.length-1;r>=0;r--){let o=t[r];o&&n.push({index:t.length-1-r,hash:o.newHash,message:o.message})}return n}async function Br(e,t){let n=await et(e,rn);if(n.length===0)return null;let r=n.length-1-t;return r<0||r>=n.length?null:n[r]?.newHash??null}async function tu(e,t,n,r){if(!e.workTree)throw new Error("Cannot stash in a bare repository");let o=e.workTree,s=await Z(e);if(!s)return null;let i=await j(e,s),a=await V(e),c=Ge(a),f=await Fe(e,c),l=await Ve(e,i.tree,f),d=new Map(c.map(N=>[N.path,N])),u=await ot(e,o,"",{skipIgnore:!0}),h=!1;for(let N of u){let B=d.get(N);if(!B)continue;let ee=H(o,N),z=await e.fs.readFileBuffer(ee);if(await gt("blob",z)!==B.hash){h=!0;break}}if(!h)for(let[N]of d){let B=H(o,N);if(!await e.fs.exists(B)){h=!0;break}}let m=[];if(r?.includeUntracked){let N=await ot(e,o,"");for(let B of N)d.has(B)||m.push(B)}if(l.length===0&&!h&&m.length===0)return null;let p=await Us(e,t),g=await Xr(e,t),w=await te(e),b=w?.type==="symbolic"?Pe(w.target):"(no branch)",k=X(s),E=ue(i.message),R=`index on ${b}: ${k} ${E}
831
- `,x=cn({type:"commit",tree:f,parents:[s],author:p,committer:g,message:R}),y=await Ie(e,"commit",x),C=await le(e,i.tree),P=[],D=new Set;for(let N of u){let B=d.get(N),ee=C.get(N);if(!B&&!ee)continue;let z=H(o,N),Q=await e.fs.readFileBuffer(z),Re=await Ie(e,"blob",Q),Ne=B?B.mode:parseInt(ee?.mode??"100644",8);P.push({path:N,mode:Ne,hash:Re,stage:0,stat:He()}),D.add(N)}for(let[N,B]of d)if(!D.has(N)){if(_n(B.mode)){P.push({path:N,mode:B.mode,hash:B.hash,stage:0,stat:He()});continue}C.has(N)||P.push({path:N,mode:B.mode,hash:B.hash,stage:0,stat:He()})}let A=await Fe(e,P),$=null;if(r?.includeUntracked){let N=[];for(let Q of m){let Re=H(o,Q),Ne=await e.fs.readFileBuffer(Re),ce=await Ie(e,"blob",Ne);N.push({path:Q,mode:33188,hash:ce,stage:0,stat:He()})}let B=await Fe(e,N),ee=`untracked files on ${b}: ${k} ${E}
832
- `,z=cn({type:"commit",tree:B,parents:[],author:p,committer:g,message:ee});$=await Ie(e,"commit",z)}let v=n?`On ${b}: ${n}`:`WIP on ${b}: ${k} ${E}`,_=[s,y];$&&_.push($);let G=cn({type:"commit",tree:A,parents:_,author:p,committer:g,message:v}),I=await Ie(e,"commit",G),T=await Br(e,0)??ne;await st(e,rn,{oldHash:T,newHash:I,name:g.name,email:g.email,timestamp:g.timestamp,tz:g.timezone,message:v.trimEnd()}),await J(e,rn,I);let L=await Cn(e,i.tree,a);await ae(e,{version:2,entries:L.newEntries}),await je(e,L.worktreeOps),(await te(e))?.type==="symbolic"&&await re(e,t,"HEAD",s,s,"reset: moving to HEAD");for(let N of["CHERRY_PICK_HEAD","MERGE_HEAD","ORIG_HEAD","REVERT_HEAD"])await he(e,N);for(let N of["MERGE_MSG","MERGE_MODE","SQUASH_MSG"]){let B=H(e.gitDir,N);await e.fs.exists(B)&&await e.fs.rm(B)}if(m.length>0)for(let N of m){if(C.has(N))continue;let B=H(o,N);await e.fs.exists(B)&&(await e.fs.rm(B),await cr(e.fs,sn(B),o))}return I}async function Na(e,t){let n=e.workTree,r=await j(e,t),o=await qe(e,r.tree),s=[];for(let i of o){let a=H(n,i.path);await e.fs.exists(a)?s.push(i.path):await dt(e,i)}return s.length>0?(s.sort(Fa),{ok:!1,stdout:"",stderr:`${s.map(i=>`${i} already exists, no checkout`).join(`
832
+ `}}return o}async function Jw(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Ht({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash})}async function Qw(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Ht({path:t.oldPath,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash,renameTo:t.newPath,similarity:t.similarity})}async function eb(e,t,n){let r=[];for(let s of t)r.push({type:"diff",entry:s});for(let s of n)r.push({type:"rename",entry:s});r.sort((s,i)=>{let a=s.type==="diff"?s.entry.path:s.entry.newPath,c=i.type==="diff"?i.entry.path:i.entry.newPath;return a<c?-1:a>c?1:0});let o="";for(let s of r)s.type==="rename"?o+=await Qw(e,s.entry):o+=await Jw(e,s.entry);return o}async function tb(e,t){if(t.parents.length<2)return"";let n=await Promise.all(t.parents.map(async a=>{let c=await j(e,a);return le(e,c.tree)})),r=await le(e,t.tree),o=new Set;for(let a of n)for(let c of a.keys())o.add(c);for(let a of r.keys())o.add(a);let s=[];for(let a of o){let f=r.get(a)?.hash??null;n.every(d=>(d.get(a)?.hash??null)!==f)&&s.push(a)}if(s.sort(),s.length===0)return"";let i="";for(let a of s)i+=await nb(e,a,n,r);return i}async function nb(e,t,n,r){let o=r.get(t),s=n.map(u=>u.get(t)??null),i=o?.hash??null,a=o?.mode??null,c=s.map(u=>u?.hash??null),f=s.map(u=>u?.mode??null),l=await Promise.all(c.map(async u=>u?await oe(e,u):"")),d=i?await oe(e,i):"";return Bo({path:t,parentHashes:c,parentModes:f,parentContents:l,resultHash:i,resultMode:a,resultContent:d})}se();Ce();ie();ge();se();sr();Ce();ie();bn();me();Be();ge();Pn();Ae();Nt();Je();var rn="refs/stash";function Fa(e,t){return ve(e.replaceAll("/","\0"),t.replaceAll("/","\0"))}async function eu(e){let t=await et(e,rn),n=[];for(let r=t.length-1;r>=0;r--){let o=t[r];o&&n.push({index:t.length-1-r,hash:o.newHash,message:o.message})}return n}async function Br(e,t){let n=await et(e,rn);if(n.length===0)return null;let r=n.length-1-t;return r<0||r>=n.length?null:n[r]?.newHash??null}async function tu(e,t,n,r){if(!e.workTree)throw new Error("Cannot stash in a bare repository");let o=e.workTree,s=await Z(e);if(!s)return null;let i=await j(e,s),a=await V(e),c=Ge(a),f=await Fe(e,c),l=await Ve(e,i.tree,f),d=new Map(c.map(F=>[F.path,F])),u=await ot(e,o,"",{skipIgnore:!0}),h=!1;for(let F of u){let B=d.get(F);if(!B)continue;let ee=H(o,F),z=await e.fs.readFileBuffer(ee);if(await gt("blob",z)!==B.hash){h=!0;break}}if(!h)for(let[F]of d){let B=H(o,F);if(!await e.fs.exists(B)){h=!0;break}}let m=[];if(r?.includeUntracked){let F=await ot(e,o,"");for(let B of F)d.has(B)||m.push(B)}if(l.length===0&&!h&&m.length===0)return null;let p=await Us(e,t),g=await Xr(e,t),w=await te(e),b=w?.type==="symbolic"?Pe(w.target):"(no branch)",R=X(s),E=ue(i.message),k=`index on ${b}: ${R} ${E}
833
+ `,x=cn({type:"commit",tree:f,parents:[s],author:p,committer:g,message:k}),y=await Ie(e,"commit",x),P=await le(e,i.tree),C=[],A=new Set;for(let F of u){let B=d.get(F),ee=P.get(F);if(!B&&!ee)continue;let z=H(o,F),Q=await e.fs.readFileBuffer(z),Re=await Ie(e,"blob",Q),Ne=B?B.mode:parseInt(ee?.mode??"100644",8);C.push({path:F,mode:Ne,hash:Re,stage:0,stat:He()}),A.add(F)}for(let[F,B]of d)if(!A.has(F)){if(Bn(B.mode)){C.push({path:F,mode:B.mode,hash:B.hash,stage:0,stat:He()});continue}P.has(F)||C.push({path:F,mode:B.mode,hash:B.hash,stage:0,stat:He()})}let D=await Fe(e,C),$=null;if(r?.includeUntracked){let F=[];for(let Q of m){let Re=H(o,Q),Ne=await e.fs.readFileBuffer(Re),ce=await Ie(e,"blob",Ne);F.push({path:Q,mode:33188,hash:ce,stage:0,stat:He()})}let B=await Fe(e,F),ee=`untracked files on ${b}: ${R} ${E}
834
+ `,z=cn({type:"commit",tree:B,parents:[],author:p,committer:g,message:ee});$=await Ie(e,"commit",z)}let v=n?`On ${b}: ${n}`:`WIP on ${b}: ${R} ${E}`,N=[s,y];$&&N.push($);let L=cn({type:"commit",tree:D,parents:N,author:p,committer:g,message:v}),I=await Ie(e,"commit",L),T=await Br(e,0)??ne;await st(e,rn,{oldHash:T,newHash:I,name:g.name,email:g.email,timestamp:g.timestamp,tz:g.timezone,message:v.trimEnd()}),await J(e,rn,I);let G=await On(e,i.tree,a);await ae(e,{version:2,entries:G.newEntries}),await De(e,G.worktreeOps),(await te(e))?.type==="symbolic"&&await re(e,t,"HEAD",s,s,"reset: moving to HEAD");for(let F of["CHERRY_PICK_HEAD","MERGE_HEAD","ORIG_HEAD","REVERT_HEAD"])await he(e,F);for(let F of["MERGE_MSG","MERGE_MODE","SQUASH_MSG"]){let B=H(e.gitDir,F);await e.fs.exists(B)&&await e.fs.rm(B)}if(m.length>0)for(let F of m){if(P.has(F))continue;let B=H(o,F);await e.fs.exists(B)&&(await e.fs.rm(B),await cr(e.fs,sn(B),o))}return I}async function Na(e,t){let n=e.workTree,r=await j(e,t),o=await qe(e,r.tree),s=[];for(let i of o){let a=H(n,i.path);await e.fs.exists(a)?s.push(i.path):await dt(e,i)}return s.length>0?(s.sort(Fa),{ok:!1,stdout:"",stderr:`${s.map(i=>`${i} already exists, no checkout`).join(`
833
835
  `)}
834
836
  error: could not restore untracked files from stash
835
837
  `,exitCode:1}):{ok:!0,hasConflicts:!1,messages:[]}}async function _a(e,t=0){if(!e.workTree)return{ok:!1,stdout:"",stderr:`fatal: this operation must be run in a work tree
836
838
  `,exitCode:128};let n=await Br(e,t);if(!n)return{ok:!1,stdout:"",stderr:`error: stash@{${t}} is not a valid reference
837
839
  `,exitCode:1};if(!await Z(e))return{ok:!1,stdout:"",stderr:`error: your current branch does not have any commits yet
838
- `,exitCode:1};let o=await V(e),s=Kt(o).sort();if(s.length>0)return{ok:!1,stdout:`${s.map(C=>`${C}: needs merge`).join(`
840
+ `,exitCode:1};let o=await V(e),s=zt(o).sort();if(s.length>0)return{ok:!1,stdout:`${s.map(P=>`${P}: needs merge`).join(`
839
841
  `)}
840
842
  `,stderr:`error: could not write index
841
843
  `,exitCode:1};let i=await j(e,n),a=i.parents[0];if(!a)return{ok:!1,stdout:"",stderr:`error: invalid stash commit (no parent)
842
- `,exitCode:1};let c=await j(e,a),f=i.parents[2],l=Ge(o),d=await Fe(e,l),u={a:"Updated upstream",b:"Stashed changes"};if(c.tree===i.tree){if(f){let y=await Na(e,f);if(!y.ok)return{...y,messages:["Already up to date."]}}return{ok:!0,hasConflicts:!1,messages:["Already up to date."]}}let h=await qt(e,c.tree,d,i.tree,u),m=await le(e,d),p=await le(e,h.resultTree),g=[];for(let[y,C]of p){let P=m.get(y);(!P||P.hash!==C.hash)&&g.push({path:y,type:"checkout",hash:C.hash,mode:parseInt(C.mode,8)})}for(let[y]of m)p.has(y)||g.push({path:y,type:"delete"});let w=new Map(l.map(y=>[y.path,y])),b=[],k=[];for(let y of g){let C=w.get(y.path),P=H(e.workTree,y.path);if(C){if(_n(C.mode)||!await e.fs.exists(P))continue;let D=await e.fs.readFileBuffer(P);await gt("blob",D)!==C.hash&&b.push(y.path)}else y.type==="checkout"&&await e.fs.exists(P)&&k.push(y.path)}if(b.length>0||k.length>0){b.sort(Fa),k.sort(Fa);let y="";if(b.length>0&&(y+=`error: Your local changes to the following files would be overwritten by merge:
843
- ${b.map(C=>` ${C}`).join(`
844
+ `,exitCode:1};let c=await j(e,a),f=i.parents[2],l=Ge(o),d=await Fe(e,l),u={a:"Updated upstream",b:"Stashed changes"};if(c.tree===i.tree){if(f){let y=await Na(e,f);if(!y.ok)return{...y,messages:["Already up to date."]}}return{ok:!0,hasConflicts:!1,messages:["Already up to date."]}}let h=await Kt(e,c.tree,d,i.tree,u),m=await le(e,d),p=await le(e,h.resultTree),g=[];for(let[y,P]of p){let C=m.get(y);(!C||C.hash!==P.hash)&&g.push({path:y,type:"checkout",hash:P.hash,mode:parseInt(P.mode,8)})}for(let[y]of m)p.has(y)||g.push({path:y,type:"delete"});let w=new Map(l.map(y=>[y.path,y])),b=[],R=[];for(let y of g){let P=w.get(y.path),C=H(e.workTree,y.path);if(P){if(Bn(P.mode)||!await e.fs.exists(C))continue;let A=await e.fs.readFileBuffer(C);await gt("blob",A)!==P.hash&&b.push(y.path)}else y.type==="checkout"&&await e.fs.exists(C)&&R.push(y.path)}if(b.length>0||R.length>0){b.sort(Fa),R.sort(Fa);let y="";if(b.length>0&&(y+=`error: Your local changes to the following files would be overwritten by merge:
845
+ ${b.map(P=>` ${P}`).join(`
844
846
  `)}
845
847
  Please commit your changes or stash them before you merge.
846
- `),k.length>0&&(y+=`error: The following untracked working tree files would be overwritten by merge:
847
- ${k.map(C=>` ${C}`).join(`
848
+ `),R.length>0&&(y+=`error: The following untracked working tree files would be overwritten by merge:
849
+ ${R.map(P=>` ${P}`).join(`
848
850
  `)}
849
851
  Please move or remove them before you merge.
850
852
  `),y+=`Aborting
851
- `,f){let C=await Na(e,f);C.ok||(y+=C.stderr)}return{ok:!1,stdout:"",stderr:y,exitCode:1}}await je(e,g);let E=new Set(h.conflicts.map(y=>y.path)),R=new Set;for(let y of h.entries)y.stage>0&&R.add(y.path);let x=E.size>0;if(x){let y=[];for(let[C,P]of p){if(E.has(C)||R.has(C))continue;let D=w.get(C);y.push({path:C,mode:parseInt(P.mode,8),hash:P.hash,stage:0,stat:D?.stat??He()})}for(let C of h.entries)C.stage>0&&y.push(C);y.sort((C,P)=>ve(C.path,P.path)||C.stage-P.stage),await ae(e,{version:2,entries:y})}else{let y=[...o.entries],C=new Set(y.map(P=>P.path));for(let[P,D]of p)m.has(P)||C.has(P)||y.push({path:P,mode:parseInt(D.mode,8),hash:D.hash,stage:0,stat:He()});y.sort((P,D)=>ve(P.path,D.path)||P.stage-D.stage),await ae(e,{version:2,entries:y})}if(f){let y=await Na(e,f);if(!y.ok)return{...y,messages:h.messages}}return{ok:!0,hasConflicts:x,messages:h.messages}}async function Ua(e,t=0){let n=await et(e,rn);if(n.length===0)return`error: stash@{${t}} is not a valid reference`;let r=n.length-1-t;if(r<0||r>=n.length)return`error: stash@{${t}} is not a valid reference`;if(n.splice(r,1),n.length===0)await he(e,rn),await as(e,rn);else{await Fn(e,rn,n);let o=n[n.length-1];o&&await J(e,rn,o.newHash)}return null}async function nu(e){await he(e,rn),await as(e,rn)}Ae();function oi(e){if(e===void 0)return 0;let t=e.match(/^(?:stash@\{)?(\d+)\}?$/);if(t?.[1]!==void 0)return parseInt(t[1],10);let n=parseInt(e,10);return!Number.isNaN(n)&&n>=0?n:-1}async function rb(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Ht({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode})}function su(e,t){let n=e.command("stash",{description:"Stash the changes in a dirty working directory away",options:{message:Y.string().alias("m").describe("Stash message"),"include-untracked":O().alias("u").describe("Also stash untracked files")},transformArgs:r=>{if(r[0]!=="save")return r;let o=r.slice(1),s=[],i=[];for(let a of o)a.startsWith("-")?s.push(a):i.push(a);return i.length>0?[...s,"-m",i.join(" ")]:s},handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);return M(s)?s:ru(s,o.env,r.message,r["include-untracked"])}});n.command("push",{description:"Save your local modifications to a new stash entry",options:{message:Y.string().alias("m").describe("Stash message"),"include-untracked":O().alias("u").describe("Also stash untracked files")},handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);return M(s)?s:ru(s,o.env,r.message,r["include-untracked"])}}),n.command("pop",{description:"Remove a single stash entry and apply it on top of the current working tree",args:[K.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);return M(s)?s:sb(s,r.stash)}}),n.command("apply",{description:"Apply a stash entry on top of the current working tree",args:[K.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);return M(s)?s:ob(s,r.stash)}}),n.command("list",{description:"List the stash entries that you currently have",handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);return M(s)?s:ib(s)}}),n.command("drop",{description:"Remove a single stash entry from the list of stash entries",args:[K.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);return M(s)?s:ab(s,r.stash)}}),n.command("show",{description:"Show the changes recorded in a stash entry as a diff",options:{patch:O().alias("p").describe("Show full diff (default is --stat)")},args:[K.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);return M(s)?s:cb(s,r.stash,r.patch)}}),n.command("clear",{description:"Remove all the stash entries",handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);return M(s)?s:fb(s)}})}async function ru(e,t,n,r){if(!await Z(e))return F(`You do not have the initial commit yet
852
- `);let s=await V(e),i=Kt(s).sort();if(i.length>0)return{stdout:`${i.map(l=>`${l}: needs merge`).join(`
853
+ `,f){let P=await Na(e,f);P.ok||(y+=P.stderr)}return{ok:!1,stdout:"",stderr:y,exitCode:1}}await De(e,g);let E=new Set(h.conflicts.map(y=>y.path)),k=new Set;for(let y of h.entries)y.stage>0&&k.add(y.path);let x=E.size>0;if(x){let y=[];for(let[P,C]of p){if(E.has(P)||k.has(P))continue;let A=w.get(P);y.push({path:P,mode:parseInt(C.mode,8),hash:C.hash,stage:0,stat:A?.stat??He()})}for(let P of h.entries)P.stage>0&&y.push(P);y.sort((P,C)=>ve(P.path,C.path)||P.stage-C.stage),await ae(e,{version:2,entries:y})}else{let y=[...o.entries],P=new Set(y.map(C=>C.path));for(let[C,A]of p)m.has(C)||P.has(C)||y.push({path:C,mode:parseInt(A.mode,8),hash:A.hash,stage:0,stat:He()});y.sort((C,A)=>ve(C.path,A.path)||C.stage-A.stage),await ae(e,{version:2,entries:y})}if(f){let y=await Na(e,f);if(!y.ok)return{...y,messages:h.messages}}return{ok:!0,hasConflicts:x,messages:h.messages}}async function Ua(e,t=0){let n=await et(e,rn);if(n.length===0)return`error: stash@{${t}} is not a valid reference`;let r=n.length-1-t;if(r<0||r>=n.length)return`error: stash@{${t}} is not a valid reference`;if(n.splice(r,1),n.length===0)await he(e,rn),await as(e,rn);else{await Un(e,rn,n);let o=n[n.length-1];o&&await J(e,rn,o.newHash)}return null}async function nu(e){await he(e,rn),await as(e,rn)}Ae();function oi(e){if(e===void 0)return 0;let t=e.match(/^(?:stash@\{)?(\d+)\}?$/);if(t?.[1]!==void 0)return parseInt(t[1],10);let n=parseInt(e,10);return!Number.isNaN(n)&&n>=0?n:-1}async function rb(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Ht({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode})}function su(e,t){let n=e.command("stash",{description:"Stash the changes in a dirty working directory away",options:{message:Y.string().alias("m").describe("Stash message"),"include-untracked":O().alias("u").describe("Also stash untracked files")},transformArgs:r=>{if(r[0]!=="save")return r;let o=r.slice(1),s=[],i=[];for(let a of o)a.startsWith("-")?s.push(a):i.push(a);return i.length>0?[...s,"-m",i.join(" ")]:s},handler:async(r,o)=>{let s=await K(o.fs,o.cwd,t);return M(s)?s:ru(s,o.env,r.message,r["include-untracked"])}});n.command("push",{description:"Save your local modifications to a new stash entry",options:{message:Y.string().alias("m").describe("Stash message"),"include-untracked":O().alias("u").describe("Also stash untracked files")},handler:async(r,o)=>{let s=await K(o.fs,o.cwd,t);return M(s)?s:ru(s,o.env,r.message,r["include-untracked"])}}),n.command("pop",{description:"Remove a single stash entry and apply it on top of the current working tree",args:[q.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await K(o.fs,o.cwd,t);return M(s)?s:sb(s,r.stash)}}),n.command("apply",{description:"Apply a stash entry on top of the current working tree",args:[q.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await K(o.fs,o.cwd,t);return M(s)?s:ob(s,r.stash)}}),n.command("list",{description:"List the stash entries that you currently have",handler:async(r,o)=>{let s=await K(o.fs,o.cwd,t);return M(s)?s:ib(s)}}),n.command("drop",{description:"Remove a single stash entry from the list of stash entries",args:[q.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await K(o.fs,o.cwd,t);return M(s)?s:ab(s,r.stash)}}),n.command("show",{description:"Show the changes recorded in a stash entry as a diff",options:{patch:O().alias("p").describe("Show full diff (default is --stat)")},args:[q.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await K(o.fs,o.cwd,t);return M(s)?s:cb(s,r.stash,r.patch)}}),n.command("clear",{description:"Remove all the stash entries",handler:async(r,o)=>{let s=await K(o.fs,o.cwd,t);return M(s)?s:fb(s)}})}async function ru(e,t,n,r){if(!await Z(e))return _(`You do not have the initial commit yet
854
+ `);let s=await V(e),i=zt(s).sort();if(i.length>0)return{stdout:`${i.map(l=>`${l}: needs merge`).join(`
853
855
  `)}
854
856
  `,stderr:`error: could not write index
855
857
  `,exitCode:1};let a;try{a=await tu(e,t,n,{includeUntracked:r})}catch(l){return S(l.message)}return a?{stdout:`Saved working directory and index state ${(await j(e,a)).message.trim()}
856
858
  `,stderr:"",exitCode:0}:{stdout:`No local changes to save
857
- `,stderr:"",exitCode:0}}async function sb(e,t){let n=oi(t);if(n<0)return F(`error: '${t}' is not a valid stash reference`);let r=await Br(e,n);if(!r)return F(`error: stash@{${n}} is not a valid reference`);let o=await _a(e,n);if(!o.ok){let f=o.messages?.length?`${o.messages.join(`
859
+ `,stderr:"",exitCode:0}}async function sb(e,t){let n=oi(t);if(n<0)return _(`error: '${t}' is not a valid stash reference`);let r=await Br(e,n);if(!r)return _(`error: stash@{${n}} is not a valid reference`);let o=await _a(e,n);if(!o.ok){let f=o.messages?.length?`${o.messages.join(`
858
860
  `)}
859
861
  `:"";if(o.stdout)return{stdout:`${f}${o.stdout}The stash entry is kept in case you need it again.
860
862
  `,stderr:o.stderr,exitCode:o.exitCode};let l=await at(e);return{stdout:`${f}${l}The stash entry is kept in case you need it again.
861
863
  `,stderr:o.stderr,exitCode:o.exitCode}}if(o.hasConflicts){let f=o.messages.length>0?`${o.messages.join(`
862
864
  `)}
863
865
  `:"",l=await at(e);return{stdout:`${f}${l}The stash entry is kept in case you need it again.
864
- `,stderr:"",exitCode:1}}let s=await Ua(e,n);if(s)return F(s);let i=o.messages.length>0?`${o.messages.join(`
866
+ `,stderr:"",exitCode:1}}let s=await Ua(e,n);if(s)return _(s);let i=o.messages.length>0?`${o.messages.join(`
865
867
  `)}
866
868
  `:"",a=t?`stash@{${n}}`:`refs/stash@{${n}}`,c=await at(e);return{stdout:`${i}${c}Dropped ${a} (${r})
867
- `,stderr:"",exitCode:0}}async function ob(e,t){let n=oi(t);if(n<0)return F(`error: '${t}' is not a valid stash reference`);let r=await _a(e,n);if(!r.ok){let a=r.messages?.length?`${r.messages.join(`
869
+ `,stderr:"",exitCode:0}}async function ob(e,t){let n=oi(t);if(n<0)return _(`error: '${t}' is not a valid stash reference`);let r=await _a(e,n);if(!r.ok){let a=r.messages?.length?`${r.messages.join(`
868
870
  `)}
869
871
  `:"",c=r.stdout;return c||(c=await at(e)),{stdout:`${a}${c}`,stderr:r.stderr,exitCode:r.exitCode}}let o=r.messages.length>0?`${r.messages.join(`
870
872
  `)}
871
873
  `:"",s=await at(e),i=r.hasConflicts?1:0;return{stdout:`${o}${s}`,stderr:"",exitCode:i}}async function ib(e){let t=await eu(e);return t.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${t.map(r=>`stash@{${r.index}}: ${r.message}`).join(`
872
874
  `)}
873
- `,stderr:"",exitCode:0}}async function ab(e,t){let n=oi(t);if(n<0)return F(`error: '${t}' is not a valid stash reference`);let r=await Br(e,n);if(!r)return F(`error: stash@{${n}} is not a valid reference`);let o=await Ua(e,n);return o?F(o):{stdout:`Dropped ${t?`stash@{${n}}`:`refs/stash@{${n}}`} (${r})
874
- `,stderr:"",exitCode:0}}async function cb(e,t,n){let r=oi(t);if(r<0)return F(`error: '${t}' is not a valid stash reference`);let o=await Br(e,r);if(!o)return F(`error: stash@{${r}} is not a valid reference`);let s=await j(e,o),i=s.parents[0];if(!i)return F("error: invalid stash commit (no parent)");let a=await j(e,i);if(n){let f=await Ve(e,a.tree,s.tree),l="";for(let d of f)l+=await rb(e,d);return{stdout:l,stderr:"",exitCode:0}}return{stdout:await pn(e,a.tree,s.tree),stderr:"",exitCode:0}}async function fb(e){return await nu(e),{stdout:"",stderr:"",exitCode:0}}se();Ue();Ce();ge();Je();function ou(e,t){e.command("status",{description:"Show the working tree status",options:{short:O().alias("s").describe("Give the output in the short-format"),porcelain:O().describe("Give the output in a machine-parseable format"),branch:O().alias("b").describe("Show the branch in short-format output")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!n.short&&!n.porcelain)return{stdout:await at(s),stderr:"",exitCode:0};let i=await te(s),a=await Z(s),c,f=null;if(i&&i.type==="symbolic"){if(c=Pe(i.target),n.branch){let k=await pe(s),E=await Ut(s,k,c);f=mb(c,E)}}else c="HEAD detached",n.branch&&(f="## HEAD (no branch)");let l=await V(s),d=ra(l),u=await na(s,a,l,d),h=await bt(s,l),m=[],p=[];for(let k of h)k.status==="untracked"?p.push(k.path):m.push({path:k.path,status:k.status});m.sort((k,E)=>ve(k.path,E.path));let g=new Set(l.entries.map(k=>k.path)),w=sa(p,g);return{stdout:hb(f,u,m,d,w),stderr:"",exitCode:0}}})}var lb={"both modified":"UU","both added":"AA","both deleted":"DD","deleted by us":"DU","deleted by them":"UD","added by us":"AU","added by them":"UA",unmerged:"UU"};function db(e){switch(e){case"new file":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";default:return" "}}function ub(e){switch(e){case"modified":return"M";case"deleted":return"D";default:return" "}}function hb(e,t,n,r,o){let s=[];e&&s.push(e);let i=new Map(r.map(d=>[d.path,d])),a=new Map(t.map(d=>[d.path,d])),c=new Map(n.map(d=>[d.path,d])),f=new Set;for(let d of r)f.add(d.path);for(let d of t)f.add(d.path);for(let d of n)f.add(d.path);let l=[...f].sort();for(let d of l){let u=i.get(d);if(u){let w=lb[u.status]??"UU";s.push(`${w} ${Hs(d)}`);continue}let h=a.get(d),m=c.get(d),p=h?db(h.status):" ",g=m?ub(m.status):" ";if(h?.status==="renamed"&&h.displayPath){let w=h.displayPath.indexOf(" -> "),b=h.displayPath.slice(0,w),k=h.displayPath.slice(w+4);s.push(`${p}${g} ${Hs(b)} -> ${Hs(k)}`)}else s.push(`${p}${g} ${Hs(d)}`)}for(let d of o)s.push(`?? ${Hs(d)}`);return s.length===0?"":`${s.join(`
875
+ `,stderr:"",exitCode:0}}async function ab(e,t){let n=oi(t);if(n<0)return _(`error: '${t}' is not a valid stash reference`);let r=await Br(e,n);if(!r)return _(`error: stash@{${n}} is not a valid reference`);let o=await Ua(e,n);return o?_(o):{stdout:`Dropped ${t?`stash@{${n}}`:`refs/stash@{${n}}`} (${r})
876
+ `,stderr:"",exitCode:0}}async function cb(e,t,n){let r=oi(t);if(r<0)return _(`error: '${t}' is not a valid stash reference`);let o=await Br(e,r);if(!o)return _(`error: stash@{${r}} is not a valid reference`);let s=await j(e,o),i=s.parents[0];if(!i)return _("error: invalid stash commit (no parent)");let a=await j(e,i);if(n){let f=await Ve(e,a.tree,s.tree),l="";for(let d of f)l+=await rb(e,d);return{stdout:l,stderr:"",exitCode:0}}return{stdout:await gn(e,a.tree,s.tree),stderr:"",exitCode:0}}async function fb(e){return await nu(e),{stdout:"",stderr:"",exitCode:0}}se();Ue();Ce();ge();Je();function ou(e,t){e.command("status",{description:"Show the working tree status",options:{short:O().alias("s").describe("Give the output in the short-format"),porcelain:O().describe("Give the output in a machine-parseable format"),branch:O().alias("b").describe("Show the branch in short-format output")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!n.short&&!n.porcelain)return{stdout:await at(s),stderr:"",exitCode:0};let i=await te(s),a=await Z(s),c,f=null;if(i&&i.type==="symbolic"){if(c=Pe(i.target),n.branch){let R=await pe(s),E=await Bt(s,R,c);f=mb(c,E)}}else c="HEAD detached",n.branch&&(f="## HEAD (no branch)");let l=await V(s),d=ra(l),u=await na(s,a,l,d),h=await bt(s,l),m=[],p=[];for(let R of h)R.status==="untracked"?p.push(R.path):m.push({path:R.path,status:R.status});m.sort((R,E)=>ve(R.path,E.path));let g=new Set(l.entries.map(R=>R.path)),w=sa(p,g);return{stdout:hb(f,u,m,d,w),stderr:"",exitCode:0}}})}var lb={"both modified":"UU","both added":"AA","both deleted":"DD","deleted by us":"DU","deleted by them":"UD","added by us":"AU","added by them":"UA",unmerged:"UU"};function db(e){switch(e){case"new file":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";default:return" "}}function ub(e){switch(e){case"modified":return"M";case"deleted":return"D";default:return" "}}function hb(e,t,n,r,o){let s=[];e&&s.push(e);let i=new Map(r.map(d=>[d.path,d])),a=new Map(t.map(d=>[d.path,d])),c=new Map(n.map(d=>[d.path,d])),f=new Set;for(let d of r)f.add(d.path);for(let d of t)f.add(d.path);for(let d of n)f.add(d.path);let l=[...f].sort();for(let d of l){let u=i.get(d);if(u){let w=lb[u.status]??"UU";s.push(`${w} ${Hs(d)}`);continue}let h=a.get(d),m=c.get(d),p=h?db(h.status):" ",g=m?ub(m.status):" ";if(h?.status==="renamed"&&h.displayPath){let w=h.displayPath.indexOf(" -> "),b=h.displayPath.slice(0,w),R=h.displayPath.slice(w+4);s.push(`${p}${g} ${Hs(b)} -> ${Hs(R)}`)}else s.push(`${p}${g} ${Hs(d)}`)}for(let d of o)s.push(`?? ${Hs(d)}`);return s.length===0?"":`${s.join(`
875
877
  `)}
876
- `}function mb(e,t){if(!t)return`## ${e}`;let n=`## ${e}...${t.upstream}`,r=Ro(t,!1);return r?`${n} ${r}`:n}function Hs(e){return!/[ \t"\\]/.test(e)&&!/[^\x20-\x7E]/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}"`}se();Ue();Ce();ie();Be();ge();Ae();Zt();function pb(e,t){return e?.type==="symbolic"?e.target.replace(/^refs\/heads\//,""):t??ne}function au(e,t){e.command("switch",{description:"Switch branches",args:[K.string().name("branch-or-start-point").describe("Branch to switch to, or start-point for -c/-C").optional()],options:{create:Y.string().alias("c").describe("Create and switch to a new branch"),forceCreate:Y.string().alias("C").describe("Create/reset and switch to a branch"),detach:O().alias("d").describe("Detach HEAD at named commit"),orphan:Y.string().describe("Create a new orphan branch"),guess:O().default(!0).describe("Guess branch from remote tracking")},handler:async(n,r,o)=>{let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n["branch-or-start-point"];if(n.orphan)return n.create||n.forceCreate?S("--orphan and -c/-C are incompatible"):n.detach?S("--orphan and --detach are incompatible"):bb(i,n.orphan,r.env,t);if(n.detach){if(n.create||n.forceCreate)return S("--detach and -c/-C are incompatible");let l=a??"HEAD",d=await Me(i,l,`invalid reference: ${l}`);return M(d)?d:wb(i,l,d.hash,r.env,t)}if(n.create||n.forceCreate){let l=n.create||n.forceCreate,d=a??(o.passthrough.length>0?o.passthrough[0]:void 0);return iu(i,l,!!n.forceCreate,d,r.env,t)}if(!a)return S("missing branch or commit argument");if(a==="-")return gb(i,r.env,t);let c=`refs/heads/${a}`,f=await U(i,c);if(f)return cu(i,a,c,f,r.env,t);if(n.guess!==!1){let l=await Oo(i,a);if(l)return iu(i,a,!1,l.startPoint,r.env,t,l.trackingRef)}return S(`invalid reference: ${a}`)}})}async function ii(e){return await $e(e,"CHERRY_PICK_HEAD")?S(`cannot switch branch while cherry-picking
878
+ `}function mb(e,t){if(!t)return`## ${e}`;let n=`## ${e}...${t.upstream}`,r=Ro(t,!1);return r?`${n} ${r}`:n}function Hs(e){return!/[ \t"\\]/.test(e)&&!/[^\x20-\x7E]/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}"`}se();Ue();Ce();ie();Be();ge();Ae();Nt();function pb(e,t){return e?.type==="symbolic"?e.target.replace(/^refs\/heads\//,""):t??ne}function au(e,t){e.command("switch",{description:"Switch branches",args:[q.string().name("branch-or-start-point").describe("Branch to switch to, or start-point for -c/-C").optional()],options:{create:Y.string().alias("c").describe("Create and switch to a new branch"),forceCreate:Y.string().alias("C").describe("Create/reset and switch to a branch"),detach:O().alias("d").describe("Detach HEAD at named commit"),orphan:Y.string().describe("Create a new orphan branch"),guess:O().default(!0).describe("Guess branch from remote tracking")},handler:async(n,r,o)=>{let s=await K(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n["branch-or-start-point"];if(n.orphan)return n.create||n.forceCreate?S("--orphan and -c/-C are incompatible"):n.detach?S("--orphan and --detach are incompatible"):bb(i,n.orphan,r.env,t);if(n.detach){if(n.create||n.forceCreate)return S("--detach and -c/-C are incompatible");let l=a??"HEAD",d=await Me(i,l,`invalid reference: ${l}`);return M(d)?d:wb(i,l,d.hash,r.env,t)}if(n.create||n.forceCreate){let l=n.create||n.forceCreate,d=a??(o.passthrough.length>0?o.passthrough[0]:void 0);return iu(i,l,!!n.forceCreate,d,r.env,t)}if(!a)return S("missing branch or commit argument");if(a==="-")return gb(i,r.env,t);let c=`refs/heads/${a}`,f=await U(i,c);if(f)return cu(i,a,c,f,r.env,t);if(n.guess!==!1){let l=await Oo(i,a);if(l)return iu(i,a,!1,l.startPoint,r.env,t,l.trackingRef)}return S(`invalid reference: ${a}`)}})}async function ii(e){return await $e(e,"CHERRY_PICK_HEAD")?S(`cannot switch branch while cherry-picking
877
879
  Consider "git cherry-pick --quit" or "git worktree add".`):await $e(e,"MERGE_HEAD")?S(`cannot switch branch while merging
878
880
  Consider "git merge --quit" or "git worktree add".`):await $e(e,"REVERT_HEAD")?S(`cannot switch branch while reverting
879
- Consider "git revert --quit" or "git worktree add".`):await _t(e)?S(`cannot switch branch while rebasing
881
+ Consider "git revert --quit" or "git worktree add".`):await Ut(e)?S(`cannot switch branch while rebasing
880
882
  Consider "git rebase --quit" or "git worktree add".`):null}async function gb(e,t,n){let r=await oa(e);return r?r.kind==="commit"?{stdout:"",stderr:`fatal: a branch is expected, got commit '${r.target}'
881
883
  hint: If you want to detach HEAD at the commit, try again with the --detach option.
882
- `,exitCode:128}:cu(e,r.name,r.refName,r.hash,t,n):S("invalid reference: @{-1}")}async function iu(e,t,n,r,o,s,i){if(!yn(t))return S(`'${t}' is not a valid branch name`);let a=`refs/heads/${t}`,c=await U(e,a);if(c&&!n)return S(`a branch named '${t}' already exists`);let f;if(r){let C=await Me(e,r,`invalid reference: ${r}`);if(M(C))return C;f=C.hash}else{let C=await Z(e);if(!C){let P=await te(e),D=P?.type==="symbolic"?P.target.replace(/^refs\/heads\//,""):"";n&&c&&await he(e,a),await Ze(e,"HEAD",a),await Et(e);let A=await $n(e);return await re(e,o,"HEAD",null,ne,`checkout: moving from ${D} to ${t}`),{stdout:"",stderr:`Switched to a new branch '${t}'
883
- ${A}`,exitCode:0}}f=C}let l=await ii(e);if(l)return l;let d=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"create-branch"});if(de(d))return{stdout:"",stderr:d.message??"",exitCode:1};let u=await Z(e),h=await V(e);if(r){let C=zn(h);if(C)return C}let m=await j(e,f);if(u&&u!==f){let C=await j(e,u);if(C.tree!==m.tree){let P=await Bn(e,C.tree,m.tree,h);if(!P.success)return P.errorOutput??F("error: checkout would overwrite local changes");h={version:2,entries:P.newEntries},await ae(e,h),await je(e,P.worktreeOps)}}let p=await te(e),g="";p?.type==="direct"&&u&&(g=await Po(e,u,f));let w=pb(p,u);await J(e,a,f),await Ze(e,"HEAD",a),await Et(e);let b=await $n(e),k=r??"HEAD";n&&c?c!==f&&await re(e,o,a,c,f,`branch: Reset to ${k}`):await re(e,o,a,null,f,`branch: Created from ${k}`),await re(e,o,"HEAD",u,f,`checkout: moving from ${w} to ${t}`);let E="";if(i){let C=i.replace(/^refs\/remotes\//,"").split("/"),P=C[0]??"",D=`refs/heads/${C.slice(1).join("/")}`,A=await pe(e);A[`branch "${t}"`]={...A[`branch "${t}"`],remote:P,merge:D},await ze(e,A),E=`branch '${t}' set up to track '${P}/${C.slice(1).join("/")}'.
884
- `}else r&&(E=await $o(e,t,r));await s?.hooks?.postCheckout?.({repo:e,prevHead:u,newHead:f,isBranchCheckout:!0});let R=n&&c?`Switched to and reset branch '${t}'
884
+ `,exitCode:128}:cu(e,r.name,r.refName,r.hash,t,n):S("invalid reference: @{-1}")}async function iu(e,t,n,r,o,s,i){if(!En(t))return S(`'${t}' is not a valid branch name`);let a=`refs/heads/${t}`,c=await U(e,a);if(c&&!n)return S(`a branch named '${t}' already exists`);let f;if(r){let C=await Me(e,r,`invalid reference: ${r}`);if(M(C))return C;f=C.hash}else{let C=await Z(e);if(!C){let A=await te(e),D=A?.type==="symbolic"?A.target.replace(/^refs\/heads\//,""):"";n&&c&&await he(e,a),await Ze(e,"HEAD",a),await Et(e);let $=await In(e);return await re(e,o,"HEAD",null,ne,`checkout: moving from ${D} to ${t}`),{stdout:"",stderr:`Switched to a new branch '${t}'
885
+ ${$}`,exitCode:0}}f=C}let l=await ii(e);if(l)return l;let d=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"create-branch"});if(de(d))return{stdout:"",stderr:d.message??"",exitCode:1};let u=await Z(e),h=await V(e);if(r){let C=Vn(h);if(C)return C}let m=await j(e,f);if(u&&u!==f){let C=await j(e,u);if(C.tree!==m.tree){let A=await hn(e,C.tree,m.tree,h);if(!A.success)return A.errorOutput??_("error: checkout would overwrite local changes");h={version:2,entries:A.newEntries},await ae(e,h),await De(e,A.worktreeOps)}}let p=await te(e),g="";p?.type==="direct"&&u&&(g=await Po(e,u,f));let w=pb(p,u);await J(e,a,f),await Ze(e,"HEAD",a),await Et(e);let b=await In(e),R=r??"HEAD";n&&c?c!==f&&await re(e,o,a,c,f,`branch: Reset to ${R}`):await re(e,o,a,null,f,`branch: Created from ${R}`),await re(e,o,"HEAD",u,f,`checkout: moving from ${w} to ${t}`);let E="";if(i){let C=i.replace(/^refs\/remotes\//,"").split("/"),A=C[0]??"",D=`refs/heads/${C.slice(1).join("/")}`,$=await pe(e);$[`branch "${t}"`]={...$[`branch "${t}"`],remote:A,merge:D},await ze(e,$),E=`branch '${t}' set up to track '${A}/${C.slice(1).join("/")}'.
886
+ `}else r&&(E=await $o(e,t,r));await s?.hooks?.postCheckout?.({repo:e,prevHead:u,newHead:f,isBranchCheckout:!0});let k=p?.type==="symbolic"&&p.target===a,x=n&&c?k?`Reset branch '${t}'
887
+ `:`Switched to and reset branch '${t}'
885
888
  `:`Switched to a new branch '${t}'
886
- `,x=g+R+b,y="";if(E)y=await Vn(e,m.tree,h)+E;else if(r){y=await Vn(e,m.tree,h);let C=await pe(e),P=await Ut(e,C,t);P&&(y+=Kn(P))}else if(n&&c){let C=await pe(e),P=await Ut(e,C,t);P&&(y=Kn(P))}return{stdout:y,stderr:x,exitCode:0}}async function cu(e,t,n,r,o,s){let i=await ii(e);if(i)return i;let a=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"switch"});return de(a)?{stdout:"",stderr:a.message??"",exitCode:1}:mr(e,t,n,r,o,s)}async function wb(e,t,n,r,o){let s=await ii(e);if(s)return s;let i=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"detach"});return de(i)?{stdout:"",stderr:i.message??"",exitCode:1}:Yn(e,n,r,o)}async function bb(e,t,n,r){if(!yn(t))return S(`'${t}' is not a valid branch name`);let o=await ii(e);if(o)return o;let s=`refs/heads/${t}`;if(await U(e,s))return S(`a branch named '${t}' already exists`);let a=await V(e),c=zn(a);if(c)return c;let f=await Z(e),l=await te(e),d="";if(l?.type==="direct"&&f&&(d=await ia(e,f)),e.workTree){let h=f?(await j(e,f)).tree:null,m=await Fe(e,[]),p=await Bn(e,h,m,a);if(!p.success)return p.errorOutput??F("error: checkout would overwrite local changes");await je(e,p.worktreeOps),await ae(e,{version:2,entries:p.newEntries})}else await ae(e,pc());await Ze(e,"HEAD",s),await Et(e);let u=await $n(e);return await r?.hooks?.postCheckout?.({repo:e,prevHead:f,newHead:ne,isBranchCheckout:!0}),{stdout:"",stderr:`${d}Switched to a new branch '${t}'
887
- ${u}`,exitCode:0}}se();ie();Tr();ge();ls();function lu(e,t){e.command("tag",{description:"Create, list, or delete tags",args:[K.string().name("name").describe("Tag name to create or delete").optional(),K.string().name("commit").describe("Commit to tag (defaults to HEAD)").optional()],options:{annotate:O().alias("a").describe("Make an annotated tag object"),message:Y.string().alias("m").describe("Tag message"),delete:O().alias("d").describe("Delete a tag"),force:O().alias("f").describe("Replace an existing tag"),list:O().alias("l").describe("List tags matching pattern")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.delete){if(!n.name)return S("tag name required");let i=`refs/tags/${n.name}`,a=await U(s,i);return a?(await he(s,i),{stdout:`Deleted tag '${n.name}' (was ${X(a)})
888
- `,stderr:"",exitCode:0}):F(`error: tag '${n.name}' not found.
889
+ `,y=g+x+b,P="";if(E)P=await Yn(e,m.tree,h)+E;else if(r){P=await Yn(e,m.tree,h);let C=await pe(e),A=await Bt(e,C,t);A&&(P+=zn(A))}else if(n&&c){let C=await pe(e),A=await Bt(e,C,t);A&&(P=zn(A))}return{stdout:P,stderr:y,exitCode:0}}async function cu(e,t,n,r,o,s){let i=await ii(e);if(i)return i;let a=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"switch"});return de(a)?{stdout:"",stderr:a.message??"",exitCode:1}:mr(e,t,n,r,o,s)}async function wb(e,t,n,r,o){let s=await ii(e);if(s)return s;let i=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"detach"});return de(i)?{stdout:"",stderr:i.message??"",exitCode:1}:Xn(e,n,r,o)}async function bb(e,t,n,r){if(!En(t))return S(`'${t}' is not a valid branch name`);let o=await ii(e);if(o)return o;let s=`refs/heads/${t}`;if(await U(e,s))return S(`a branch named '${t}' already exists`);let a=await V(e),c=Vn(a);if(c)return c;let f=await Z(e),l=await te(e),d="";if(l?.type==="direct"&&f&&(d=await ia(e,f)),e.workTree){let h=f?(await j(e,f)).tree:null,m=await Fe(e,[]),p=await hn(e,h,m,a);if(!p.success)return p.errorOutput??_("error: checkout would overwrite local changes");await De(e,p.worktreeOps),await ae(e,{version:2,entries:p.newEntries})}else await ae(e,pc());await Ze(e,"HEAD",s),await Et(e);let u=await In(e);return await r?.hooks?.postCheckout?.({repo:e,prevHead:f,newHead:ne,isBranchCheckout:!0}),{stdout:"",stderr:`${d}Switched to a new branch '${t}'
890
+ ${u}`,exitCode:0}}se();ie();Tr();ge();ls();function lu(e,t){e.command("tag",{description:"Create, list, or delete tags",args:[q.string().name("name").describe("Tag name to create or delete").optional(),q.string().name("commit").describe("Commit to tag (defaults to HEAD)").optional()],options:{annotate:O().alias("a").describe("Make an annotated tag object"),message:Y.string().alias("m").describe("Tag message"),delete:O().alias("d").describe("Delete a tag"),force:O().alias("f").describe("Replace an existing tag"),list:O().alias("l").describe("List tags matching pattern")},handler:async(n,r)=>{let o=await K(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.delete){if(!n.name)return S("tag name required");let i=`refs/tags/${n.name}`,a=await U(s,i);return a?(await he(s,i),{stdout:`Deleted tag '${n.name}' (was ${X(a)})
891
+ `,stderr:"",exitCode:0}):_(`error: tag '${n.name}' not found.
889
892
  `)}if(n.list)return fu(s,n.name||void 0);if(n.name){if(!Zc(n.name))return S(`'${n.name}' is not a valid tag name`);let i=n.commit,a;if(i){let h=await yt(s,i,`Failed to resolve '${i}' as a valid ref.`);if(M(h))return h;a=h}else if(a=await Z(s),!a)return S("Failed to resolve 'HEAD' as a valid ref.");let c=`refs/tags/${n.name}`,f=await U(s,c);if(f&&!n.force)return S(`tag '${n.name}' already exists`);let l=n.annotate||n.message,d;if(l){if(!n.message)return S("no tag message specified (use -m)");let h=await tt(s,r.env);if(M(h))return h;let m=It(n.message),p=zc({type:"tag",object:a,objectType:"commit",name:n.name,tagger:h,message:m}),g=await Ie(s,"tag",p);await J(s,c,g),d=g}else await J(s,c,a),d=a;return{stdout:f&&n.force&&f!==d?`Updated tag '${n.name}' (was ${X(f)})
890
893
  `:"",stderr:"",exitCode:0}}return fu(s)}})}async function fu(e,t){let n=await ye(e,"refs/tags");if(n.length===0)return{stdout:"",stderr:"",exitCode:0};let r=n.map(o=>o.name.replace("refs/tags/",""));return t&&(r=r.filter(o=>ln(t,o,0)===0)),r.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${r.join(`
891
894
  `)}
892
- `,stderr:"",exitCode:0}}var du=new Set(["am","annotate","apply","archive","bugreport","bundle","cat-file","check-ignore","check-mailmap","check-ref-format","checkout-index","cherry","commit-tree","count-objects","credential","daemon","diff-files","diff-index","diff-tree","difftool","fast-export","fast-import","filter-branch","for-each-ref","format-patch","fsck","hash-object","instaweb","interpret-trailers","log--hierarchical","ls-remote","ls-tree","maintenance","merge-base","merge-tree","mergetool","multi-pack-index","name-rev","notes","pack-objects","pack-refs","patch-id","prune","range-diff","read-tree","receive-pack","replace","request-pull","rerere","rev-list","send-email","send-pack","shortlog","show-branch","show-ref","sparse-checkout","stash--helper","stripspace","submodule","symbolic-ref","unpack-objects","update-index","update-ref","upload-pack","var","verify-commit","verify-pack","verify-tag","whatchanged","worktree","write-tree"]),yb={init:(e,t)=>ud(e,t),clone:(e,t)=>Ul(e,t),describe:(e,t)=>Wl(e,t),fetch:(e,t)=>id(e,t),pull:(e,t)=>Dd(e,t),push:(e,t)=>jd(e,t),add:(e,t)=>Ef(e,t),blame:(e,t)=>el(e,t),commit:(e,t)=>ql(e,t),status:(e,t)=>ou(e,t),log:(e,t)=>Rd(e,t),branch:(e,t)=>sl(e,t),tag:(e,t)=>lu(e,t),checkout:(e,t)=>il(e,t),diff:(e,t)=>td(e,t),reset:(e,t)=>Wd(e,t),merge:(e,t)=>Pd(e,t),"cherry-pick":(e,t)=>El(e,t),revert:(e,t)=>Vd(e,t),rebase:(e,t)=>Ld(e,t),mv:(e,t)=>$d(e,t),rm:(e,t)=>Xd(e,t),remote:(e,t)=>Nd(e,t),config:(e,t)=>Yl(e,t),show:(e,t)=>Zd(e,t),stash:(e,t)=>su(e,t),"rev-parse":(e,t)=>zd(e,t),"ls-files":(e,t)=>Cd(e,t),clean:(e,t)=>kl(e,t),switch:(e,t)=>au(e,t),restore:(e,t)=>Kd(e,t),reflog:(e,t)=>Gd(e,t),repack:(e,t)=>Ud(e,t),gc:(e,t)=>ad(e,t),bisect:(e,t)=>Ff(e,t),grep:(e,t)=>dd(e,t)};function uu(e){let t=mi("git",{description:"Git command"});for(let n of Object.values(yb))n(t,e);return t.command("help",{description:"Display help information",args:[K.string().name("command").describe("Command to get help for").optional()],handler:async n=>{let r=n.command;if(!r)return{stdout:Cr(t),stderr:"",exitCode:0};let o=t.children.get(r);return o?{stdout:Cr(o),stderr:"",exitCode:0}:{stdout:"",stderr:`git: no help available for '${r}'
893
- `,exitCode:1}}}),t}var Eb="1.6.1";function kb(e,t){if(!e)return t;let n=e.locked?"locked":"defaults",r={"user.name":e.name,"user.email":e.email};return t?{...t,[n]:{...r,...t[n]}}:{[n]:r}}var ai=class{name="git";defaultFs;defaultCwd;blocked;hooks;inner;locks=new WeakMap;async withLock(t,n){let r=this.locks.get(t)??Promise.resolve(),o,s=new Promise(i=>{o=i});this.locks.set(t,s),await r;try{return await n()}finally{o()}}constructor(t){this.defaultFs=t?.fs,this.defaultCwd=t?.cwd??"/",this.hooks=t?.hooks,this.blocked=t?.disabled?.length?new Set(t.disabled):null;let n=t?.network,r=kb(t?.identity,t?.config),o=t?.gitDir?{gitDir:t.gitDir,workTree:this.defaultCwd}:{},s={hooks:t?.hooks,credentialProvider:t?.credentials,identityOverride:t?.identity,fetchFn:typeof n=="object"?n.fetch:void 0,networkPolicy:n,resolveRemote:t?.resolveRemote,credentialCache:new Map,onProgress:t?.onProgress,mergeDriver:t?.mergeDriver,...t?.objectStore?{objectStore:t.objectStore}:{},...t?.refStore?{refStore:t.refStore}:{},...o,...r?{configOverrides:r}:{}};this.inner=uu(s).toCommand()}exec=async(t,n)=>{let r=n?.fs??this.defaultFs;if(!r)throw new Error("No filesystem: pass `fs` in exec() options or in createGit()");let o=n?.cwd??this.defaultCwd,s=Rb(t),i=new Map;if(n?.env)for(let[a,c]of Object.entries(n.env))i.set(a,c);return this.execute(s,{fs:r,cwd:o,env:i,stdin:n?.stdin??""})};execute=(t,n)=>this.withLock(n.fs,async()=>{let r=t[0]??"";if(r==="--version"||r==="version")return{stdout:`just-git version ${Eb} (virtual git implementation)
895
+ `,stderr:"",exitCode:0}}var du=new Set(["am","annotate","apply","archive","bugreport","bundle","cat-file","check-ignore","check-mailmap","check-ref-format","checkout-index","cherry","commit-tree","count-objects","credential","daemon","diff-files","diff-index","diff-tree","difftool","fast-export","fast-import","filter-branch","for-each-ref","format-patch","fsck","hash-object","instaweb","interpret-trailers","log--hierarchical","ls-remote","ls-tree","maintenance","merge-base","merge-tree","mergetool","multi-pack-index","name-rev","notes","pack-objects","pack-refs","patch-id","prune","range-diff","read-tree","receive-pack","replace","request-pull","rerere","rev-list","send-email","send-pack","shortlog","show-branch","show-ref","sparse-checkout","stash--helper","stripspace","submodule","symbolic-ref","unpack-objects","update-index","update-ref","upload-pack","var","verify-commit","verify-pack","verify-tag","whatchanged","worktree","write-tree"]),yb={init:(e,t)=>ud(e,t),clone:(e,t)=>Ul(e,t),describe:(e,t)=>Wl(e,t),fetch:(e,t)=>id(e,t),pull:(e,t)=>Dd(e,t),push:(e,t)=>jd(e,t),add:(e,t)=>Ef(e,t),blame:(e,t)=>el(e,t),commit:(e,t)=>ql(e,t),status:(e,t)=>ou(e,t),log:(e,t)=>Rd(e,t),branch:(e,t)=>sl(e,t),tag:(e,t)=>lu(e,t),checkout:(e,t)=>il(e,t),diff:(e,t)=>td(e,t),reset:(e,t)=>Wd(e,t),merge:(e,t)=>Pd(e,t),"cherry-pick":(e,t)=>El(e,t),revert:(e,t)=>Vd(e,t),rebase:(e,t)=>Ld(e,t),mv:(e,t)=>$d(e,t),rm:(e,t)=>Xd(e,t),remote:(e,t)=>Nd(e,t),config:(e,t)=>Yl(e,t),show:(e,t)=>Zd(e,t),stash:(e,t)=>su(e,t),"rev-parse":(e,t)=>zd(e,t),"ls-files":(e,t)=>Cd(e,t),clean:(e,t)=>kl(e,t),switch:(e,t)=>au(e,t),restore:(e,t)=>Kd(e,t),reflog:(e,t)=>Gd(e,t),repack:(e,t)=>Ud(e,t),gc:(e,t)=>ad(e,t),bisect:(e,t)=>Ff(e,t),grep:(e,t)=>dd(e,t)};function uu(e){let t=mi("git",{description:"Git command"});for(let n of Object.values(yb))n(t,e);return t.command("help",{description:"Display help information",args:[q.string().name("command").describe("Command to get help for").optional()],handler:async n=>{let r=n.command;if(!r)return{stdout:Cr(t),stderr:"",exitCode:0};let o=t.children.get(r);return o?{stdout:Cr(o),stderr:"",exitCode:0}:{stdout:"",stderr:`git: no help available for '${r}'
896
+ `,exitCode:1}}}),t}kn();var Eb="1.6.2";function kb(e,t){if(!e)return t;let n=e.locked?"locked":"defaults",r={"user.name":e.name,"user.email":e.email};return t?{...t,[n]:{...r,...t[n]}}:{[n]:r}}var ai=class{name="git";defaultFs;defaultCwd;blocked;hooks;ext;inner;locks=new WeakMap;async withLock(t,n){let r=this.locks.get(t)??Promise.resolve(),o,s=new Promise(i=>{o=i});this.locks.set(t,s),await r;try{return await n()}finally{o()}}constructor(t){this.defaultFs=t?.fs,this.defaultCwd=t?.cwd??"/",this.hooks=t?.hooks,this.blocked=t?.disabled?.length?new Set(t.disabled):null;let n=t?.network,r=kb(t?.identity,t?.config),o=t?.gitDir?{gitDir:t.gitDir,workTree:this.defaultCwd}:{},s={hooks:t?.hooks,credentialProvider:t?.credentials,identityOverride:t?.identity,fetchFn:typeof n=="object"?n.fetch:void 0,networkPolicy:n,resolveRemote:t?.resolveRemote,credentialCache:new Map,onProgress:t?.onProgress,mergeDriver:t?.mergeDriver,...t?.objectStore?{objectStore:t.objectStore}:{},...t?.refStore?{refStore:t.refStore}:{},...o,...r?{configOverrides:r}:{}};this.ext=s,this.inner=uu(s).toCommand()}async findRepo(t){let n=t?.fs??this.defaultFs;if(!n)throw new Error("No filesystem: pass `fs` in findRepo() options or in createGit()");let r=t?.cwd??this.defaultCwd;if(this.ext.objectStore&&this.ext.refStore&&this.ext.gitDir)return{fs:n,gitDir:this.ext.gitDir,workTree:this.ext.workTree??r,objectStore:this.ext.objectStore,refStore:this.ext.refStore,...this.ext};let o=await Rn(n,r);return o?{...o,...this.ext}:null}exec=async(t,n)=>{let r=n?.fs??this.defaultFs;if(!r)throw new Error("No filesystem: pass `fs` in exec() options or in createGit()");let o=n?.cwd??this.defaultCwd,s=Rb(t),i=new Map;if(n?.env)for(let[a,c]of Object.entries(n.env))i.set(a,c);return this.execute(s,{fs:r,cwd:o,env:i,stdin:n?.stdin??""})};execute=(t,n)=>this.withLock(n.fs,async()=>{let r=t[0]??"";if(r==="--version"||r==="version")return{stdout:`just-git version ${Eb} (virtual git implementation)
894
897
  `,stderr:"",exitCode:0};if(this.blocked?.has(r))return{stdout:"",stderr:`git: '${r}' is not available in this environment
895
898
  `,exitCode:1};if(r&&du.has(r))return{stdout:"",stderr:`git: '${r}' is not implemented. Run 'git help' for available commands.
896
- `,exitCode:1};if(this.hooks?.beforeCommand){let s=await this.hooks.beforeCommand({command:r,args:t.slice(1),fs:n.fs,cwd:n.cwd,env:n.env});if(de(s))return{stdout:"",stderr:s.message??"",exitCode:1}}let o=await this.inner.execute(t,n);return this.hooks?.afterCommand&&await this.hooks.afterCommand({command:r,args:t.slice(1),result:o}),o})};function Rb(e){let t=[],n="",r=0;for(;r<e.length;){let o=e[r];if(o==='"'){for(r++;r<e.length&&e[r]!=='"';){if(e[r]==="\\"&&r+1<e.length){let s=e[r+1];if(s==='"'||s==="\\"){n+=s,r+=2;continue}}n+=e[r],r++}r++}else if(o==="'"){for(r++;r<e.length&&e[r]!=="'";)n+=e[r],r++;r++}else o===" "||o===" "?(n.length>0&&(t.push(n),n=""),r++):(n+=o,r++)}return n.length>0&&t.push(n),t.length>0&&t[0]==="git"&&t.shift(),t}function xb(e){return new ai(e)}var hu=new TextEncoder,Cb=new TextDecoder;function gn(e){let t=[];for(let n of e.split("/"))n==="."||n===""||(n===".."?t.pop():t.push(n));return"/"+t.join("/")}function ci(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var Ba=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:16877,mtime:new Date}),t)for(let[n,r]of Object.entries(t)){let o=gn(n);this.ensureParents(o),this.data.set(o,{type:"file",content:typeof r=="string"?hu.encode(r):r,mode:33188,mtime:new Date})}}ensureParents(t){let n=ci(t);n!=="/"&&(this.data.has(n)||(this.ensureParents(n),this.data.set(n,{type:"directory",mode:16877,mtime:new Date})))}resolve(t){let n="",r=new Set;for(let o of gn(t).slice(1).split("/")){n=`${n}/${o}`;let s=0,i=this.data.get(n);for(;i?.type==="symlink"&&s<40;){if(r.has(n))throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`);r.add(n);let a=i.target;n=a.startsWith("/")?gn(a):gn(ci(n)+"/"+a),i=this.data.get(n),s++}if(s>=40)throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`)}return n}resolveParent(t){let n=gn(t);if(n==="/")return"/";let r=n.slice(1).split("/");if(r.length<=1)return n;let o="",s=new Set;for(let i=0;i<r.length-1;i++){o=`${o}/${r[i]}`;let a=this.data.get(o),c=0;for(;a?.type==="symlink"&&c<40;){if(s.has(o))throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`);s.add(o);let f=a.target;o=f.startsWith("/")?gn(f):gn(ci(o)+"/"+f),a=this.data.get(o),c++}}return`${o}/${r[r.length-1]}`}async readFile(t){return Cb.decode(await this.readFileBuffer(t))}async readFileBuffer(t){let n=this.data.get(this.resolve(t));if(!n)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);return n.content}async writeFile(t,n){let r=this.resolve(t);this.ensureParents(r),this.data.set(r,{type:"file",content:typeof n=="string"?hu.encode(n):n,mode:33188,mtime:new Date})}async exists(t){try{return this.data.has(this.resolve(t))}catch{return!1}}async stat(t){let n=this.data.get(this.resolve(t));if(!n)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);return{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:n.type==="file"?n.content.byteLength:0,mtime:n.mtime}}async lstat(t){let n=this.resolveParent(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);return{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:r.type==="symlink",mode:r.mode,size:r.type==="file"?r.content.byteLength:r.type==="symlink"?r.target.length:0,mtime:r.mtime}}async mkdir(t,n){let r=gn(t);if(this.data.has(r)){if(this.data.get(r).type!=="directory")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!n?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let o=ci(r);if(o!=="/"&&!this.data.has(o))if(n?.recursive)await this.mkdir(o,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(r,{type:"directory",mode:16877,mtime:new Date})}async readdir(t){let n=this.resolve(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(r.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let o=n==="/"?"/":`${n}/`,s=new Set;for(let i of this.data.keys())if(i!==n&&i.startsWith(o)){let c=i.slice(o.length).split("/")[0];c&&s.add(c)}return[...s].sort()}async rm(t,n){let r=gn(t),o=this.data.get(r);if(!o){if(n?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(o.type==="directory"){if(!n?.recursive&&(await this.readdir(r)).length>0)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);let s=r==="/"?"/":`${r}/`;for(let i of[...this.data.keys()])i.startsWith(s)&&this.data.delete(i)}this.data.delete(r)}async readlink(t){let n=this.resolveParent(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}async symlink(t,n){let r=gn(n);if(this.data.has(r))throw new Error(`EEXIST: file already exists, symlink '${n}'`);this.ensureParents(r),this.data.set(r,{type:"symlink",target:t,mode:40960,mtime:new Date})}};Nn();export{ai as Git,Ba as MemoryFileSystem,gp as composeGitHooks,xb as createGit,ir as findRepo,de as isRejection};
899
+ `,exitCode:1};if(this.hooks?.beforeCommand){let s=await this.hooks.beforeCommand({command:r,args:t.slice(1),fs:n.fs,cwd:n.cwd,env:n.env});if(de(s))return{stdout:"",stderr:s.message??"",exitCode:1}}let o=await this.inner.execute(t,n);return this.hooks?.afterCommand&&await this.hooks.afterCommand({command:r,args:t.slice(1),result:o}),o})};function Rb(e){let t=[],n="",r=0;for(;r<e.length;){let o=e[r];if(o==='"'){for(r++;r<e.length&&e[r]!=='"';){if(e[r]==="\\"&&r+1<e.length){let s=e[r+1];if(s==='"'||s==="\\"){n+=s,r+=2;continue}}n+=e[r],r++}r++}else if(o==="'"){for(r++;r<e.length&&e[r]!=="'";)n+=e[r],r++;r++}else o===" "||o===" "?(n.length>0&&(t.push(n),n=""),r++):(n+=o,r++)}return n.length>0&&t.push(n),t.length>0&&t[0]==="git"&&t.shift(),t}function xb(e){return new ai(e)}var hu=new TextEncoder,Cb=new TextDecoder;function wn(e){let t=[];for(let n of e.split("/"))n==="."||n===""||(n===".."?t.pop():t.push(n));return"/"+t.join("/")}function ci(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var Ba=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:16877,mtime:new Date}),t)for(let[n,r]of Object.entries(t)){let o=wn(n);this.ensureParents(o),this.data.set(o,{type:"file",content:typeof r=="string"?hu.encode(r):r,mode:33188,mtime:new Date})}}ensureParents(t){let n=ci(t);n!=="/"&&(this.data.has(n)||(this.ensureParents(n),this.data.set(n,{type:"directory",mode:16877,mtime:new Date})))}resolve(t){let n="",r=new Set;for(let o of wn(t).slice(1).split("/")){n=`${n}/${o}`;let s=0,i=this.data.get(n);for(;i?.type==="symlink"&&s<40;){if(r.has(n))throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`);r.add(n);let a=i.target;n=a.startsWith("/")?wn(a):wn(ci(n)+"/"+a),i=this.data.get(n),s++}if(s>=40)throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`)}return n}resolveParent(t){let n=wn(t);if(n==="/")return"/";let r=n.slice(1).split("/");if(r.length<=1)return n;let o="",s=new Set;for(let i=0;i<r.length-1;i++){o=`${o}/${r[i]}`;let a=this.data.get(o),c=0;for(;a?.type==="symlink"&&c<40;){if(s.has(o))throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`);s.add(o);let f=a.target;o=f.startsWith("/")?wn(f):wn(ci(o)+"/"+f),a=this.data.get(o),c++}}return`${o}/${r[r.length-1]}`}async readFile(t){return Cb.decode(await this.readFileBuffer(t))}async readFileBuffer(t){let n=this.data.get(this.resolve(t));if(!n)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);return n.content}async writeFile(t,n){let r=this.resolve(t);this.ensureParents(r),this.data.set(r,{type:"file",content:typeof n=="string"?hu.encode(n):n,mode:33188,mtime:new Date})}async exists(t){try{return this.data.has(this.resolve(t))}catch{return!1}}async stat(t){let n=this.data.get(this.resolve(t));if(!n)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);return{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:n.type==="file"?n.content.byteLength:0,mtime:n.mtime}}async lstat(t){let n=this.resolveParent(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);return{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:r.type==="symlink",mode:r.mode,size:r.type==="file"?r.content.byteLength:r.type==="symlink"?r.target.length:0,mtime:r.mtime}}async mkdir(t,n){let r=wn(t);if(this.data.has(r)){if(this.data.get(r).type!=="directory")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!n?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let o=ci(r);if(o!=="/"&&!this.data.has(o))if(n?.recursive)await this.mkdir(o,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(r,{type:"directory",mode:16877,mtime:new Date})}async readdir(t){let n=this.resolve(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(r.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let o=n==="/"?"/":`${n}/`,s=new Set;for(let i of this.data.keys())if(i!==n&&i.startsWith(o)){let c=i.slice(o.length).split("/")[0];c&&s.add(c)}return[...s].sort()}async rm(t,n){let r=wn(t),o=this.data.get(r);if(!o){if(n?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(o.type==="directory"){if(!n?.recursive&&(await this.readdir(r)).length>0)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);let s=r==="/"?"/":`${r}/`;for(let i of[...this.data.keys()])i.startsWith(s)&&this.data.delete(i)}this.data.delete(r)}async readlink(t){let n=this.resolveParent(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}async symlink(t,n){let r=wn(n);if(this.data.has(r))throw new Error(`EEXIST: file already exists, symlink '${n}'`);this.ensureParents(r),this.data.set(r,{type:"symlink",target:t,mode:40960,mtime:new Date})}};kn();export{ai as Git,Ba as MemoryFileSystem,gp as composeGitHooks,xb as createGit,Rn as findRepo,de as isRejection};