just-git 1.0.2 → 1.1.0

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
@@ -1,7 +1,7 @@
1
- var sd=Object.defineProperty;var Zr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ke=(e,t)=>()=>(e&&(t=e(e=0)),t);var od=(e,t)=>{for(var n in t)sd(e,n,{get:t[n],enumerable:!0})};function ts(e){if(e==="")return".";if(e==="/")return"/";let t=e.charCodeAt(0)===47,n=e.charCodeAt(e.length-1)===47,r=e.split("/"),o=[];for(let i of r)i===""||i==="."||(i===".."?t||o.length>0&&o[o.length-1]!==".."?o.pop():o.push(".."):o.push(i));let s=o.join("/");return t&&(s=`/${s}`),n&&s.length>1&&!s.endsWith("/")&&(s+="/"),s||(t?"/":n?"./":".")}function T(...e){if(e.length===0)return".";let t=e.filter(n=>n!=="").join("/");return t===""?".":ts(t)}function xt(...e){let t="";for(let n=e.length-1;n>=0;n--){let r=e[n];if(r&&(t=t?`${r}/${t}`:r,r.charCodeAt(0)===47))break}return ts(t||".")}function Ut(e){if(e==="")return".";if(e==="/")return"/";let t=e.length;for(;t>1&&e.charCodeAt(t-1)===47;)t--;let n=e.slice(0,t),r=n.lastIndexOf("/");return r===-1?".":r===0?"/":n.slice(0,r)}function wr(e,t){if(e==="")return"";let n=e.length;for(;n>1&&e.charCodeAt(n-1)===47;)n--;let r=e.slice(0,n);if(r==="/")return"";let o=r.lastIndexOf("/"),s=o===-1?r:r.slice(o+1);return t&&s.endsWith(t)&&s.length>t.length?s.slice(0,s.length-t.length):s}function st(e,t){let n=ts(e),r=ts(t);if(n===r)return"";let o=n==="/"?[""]:n.split("/"),s=r==="/"?[""]:r.split("/"),i=n.charCodeAt(0)===47,a=r.charCodeAt(0)===47,f=i&&a?1:0,d=Math.min(o.length,s.length);for(;f<d&&o[f]===s[f];)f++;let l=o.length-f,u=s.slice(f),m=[];for(let h=0;h<l;h++)m.push("..");for(let h of u)m.push(h);return m.join("/")||"."}var ue=ke(()=>{"use strict"});function dd(e){let t={},n=null;for(let r of e.split(`
2
- `)){let o=r.trim();if(!(!o||o.startsWith("#")||o.startsWith(";"))){if(o.startsWith("[")){let s=o.indexOf("]");if(s===-1)continue;n=o.slice(1,s).trim(),n in t||(t[n]={});continue}if(n!==null){let s=t[n];if(!s)continue;let i=o.indexOf("=");if(i===-1){let a=o.trim().toLowerCase();s[a]="true"}else{let a=o.slice(0,i).trim().toLowerCase(),c=o.slice(i+1).trim();s[a]=c}}}}return t}function wo(e){let t=[];for(let[n,r]of Object.entries(e)){t.push(`[${n}]`);for(let[o,s]of Object.entries(r))t.push(` ${o} = ${s}`)}return`${t.join(`
1
+ var od=Object.defineProperty;var os=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ye=(e,t)=>()=>(e&&(t=e(e=0)),t);var id=(e,t)=>{for(var n in t)od(e,n,{get:t[n],enumerable:!0})};function fs(e){if(e==="")return".";if(e==="/")return"/";let t=e.charCodeAt(0)===47,n=e.charCodeAt(e.length-1)===47,r=e.split("/"),o=[];for(let a of r)a===""||a==="."||(a===".."?t||o.length>0&&o[o.length-1]!==".."?o.pop():o.push(".."):o.push(a));let s=o.join("/");return t&&(s=`/${s}`),n&&s.length>1&&!s.endsWith("/")&&(s+="/"),s||(t?"/":n?"./":".")}function T(...e){if(e.length===0)return".";let t=e.filter(n=>n!=="").join("/");return t===""?".":fs(t)}function Pt(...e){let t="";for(let n=e.length-1;n>=0;n--){let r=e[n];if(r&&(t=t?`${r}/${t}`:r,r.charCodeAt(0)===47))break}return fs(t||".")}function Kt(e){if(e==="")return".";if(e==="/")return"/";let t=e.length;for(;t>1&&e.charCodeAt(t-1)===47;)t--;let n=e.slice(0,t),r=n.lastIndexOf("/");return r===-1?".":r===0?"/":n.slice(0,r)}function xr(e,t){if(e==="")return"";let n=e.length;for(;n>1&&e.charCodeAt(n-1)===47;)n--;let r=e.slice(0,n);if(r==="/")return"";let o=r.lastIndexOf("/"),s=o===-1?r:r.slice(o+1);return t&&s.endsWith(t)&&s.length>t.length?s.slice(0,s.length-t.length):s}function at(e,t){let n=fs(e),r=fs(t);if(n===r)return"";let o=n==="/"?[""]:n.split("/"),s=r==="/"?[""]:r.split("/"),a=n.charCodeAt(0)===47,i=r.charCodeAt(0)===47,f=a&&i?1:0,d=Math.min(o.length,s.length);for(;f<d&&o[f]===s[f];)f++;let l=o.length-f,u=s.slice(f),m=[];for(let h=0;h<l;h++)m.push("..");for(let h of u)m.push(h);return m.join("/")||"."}var de=ye(()=>{"use strict"});function ld(e){let t={},n=null;for(let r of e.split(`
2
+ `)){let o=r.trim();if(!(!o||o.startsWith("#")||o.startsWith(";"))){if(o.startsWith("[")){let s=o.indexOf("]");if(s===-1)continue;n=o.slice(1,s).trim(),n in t||(t[n]={});continue}if(n!==null){let s=t[n];if(!s)continue;let a=o.indexOf("=");if(a===-1){let i=o.trim().toLowerCase();s[i]="true"}else{let i=o.slice(0,a).trim().toLowerCase(),c=o.slice(a+1).trim();s[i]=c}}}}return t}function Eo(e){let t=[];for(let[n,r]of Object.entries(e)){t.push(`[${n}]`);for(let[o,s]of Object.entries(r))t.push(` ${o} = ${s}`)}return`${t.join(`
3
3
  `)}
4
- `}async function pe(e){let t=T(e.gitDir,"config");if(!await e.fs.exists(t))return{};let n=await e.fs.readFile(t);return dd(n)}async function Ye(e,t){let n=T(e.gitDir,"config");await e.fs.writeFile(n,wo(t))}async function jt(e,t){let n=await pe(e),{section:r,key:o}=yo(t);return n[r]?.[o]}async function bo(e,t,n){let r=await pe(e),{section:o,key:s}=yo(t);r[o]||(r[o]={}),r[o][s]=n,await Ye(e,r)}async function _i(e,t){let n=await pe(e),{section:r,key:o}=yo(t);return n[r]?.[o]?(delete n[r][o],Object.keys(n[r]).length===0&&delete n[r],await Ye(e,n),!0):!1}function yo(e){let t=e.split(".");if(t.length===2){let[n="",r=""]=t;return{section:n,key:r.toLowerCase()}}if(t.length===3){let[n="",r="",o=""]=t;return{section:`${n} "${r}"`,key:o.toLowerCase()}}throw new Error(`Invalid config key: "${e}"`)}var Xe=ke(()=>{"use strict";ue()});function ns(e,t){return Fi(e,t,"author")}function br(e,t){return Fi(e,t,"committer")}async function Fi(e,t,n){let r=ld[n],o=e.identityOverride;if(o?.locked)return{name:o.name,email:o.email,timestamp:Ni(t.get(r.date)),timezone:"+0000"};let s=t.get(r.name)??await jt(e,"user.name")??o?.name,i=t.get(r.email)??await jt(e,"user.email")??o?.email;if(!s||!i)throw new Error(`${n.charAt(0).toUpperCase()}${n.slice(1)} identity unknown
4
+ `}async function he(e){let t=T(e.gitDir,"config");if(!await e.fs.exists(t))return{};let n=await e.fs.readFile(t);return ld(n)}async function Ze(e,t){let n=T(e.gitDir,"config");await e.fs.writeFile(n,Eo(t))}async function _t(e,t){let n=await he(e),{section:r,key:o}=Ro(t);return n[r]?.[o]}async function ko(e,t,n){let r=await he(e),{section:o,key:s}=Ro(t);r[o]||(r[o]={}),r[o][s]=n,await Ze(e,r)}async function Ki(e,t){let n=await he(e),{section:r,key:o}=Ro(t);return n[r]?.[o]?(delete n[r][o],Object.keys(n[r]).length===0&&delete n[r],await Ze(e,n),!0):!1}function Ro(e){let t=e.split(".");if(t.length===2){let[n="",r=""]=t;return{section:n,key:r.toLowerCase()}}if(t.length===3){let[n="",r="",o=""]=t;return{section:`${n} "${r}"`,key:o.toLowerCase()}}throw new Error(`Invalid config key: "${e}"`)}var Je=ye(()=>{"use strict";de()});function ds(e,t){return Vi(e,t,"author")}function Cr(e,t){return Vi(e,t,"committer")}async function Vi(e,t,n){let r=ud[n],o=e.identityOverride;if(o?.locked)return{name:o.name,email:o.email,timestamp:zi(t.get(r.date)),timezone:"+0000"};let s=t.get(r.name)??await _t(e,"user.name")??o?.name,a=t.get(r.email)??await _t(e,"user.email")??o?.email;if(!s||!a)throw new Error(`${n.charAt(0).toUpperCase()}${n.slice(1)} identity unknown
5
5
 
6
6
  *** Please tell me who you are.
7
7
 
@@ -9,94 +9,94 @@ Run
9
9
 
10
10
  git config user.email "you@example.com"
11
11
  git config user.name "Your Name"
12
- `);return{name:s,email:i,timestamp:Ni(t.get(r.date)),timezone:"+0000"}}async function Bt(e,t){try{let n=await br(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 Ni(e){if(e){let t=parseInt(e,10);if(!Number.isNaN(t))return t;let n=Date.parse(e);if(!Number.isNaN(n))return Math.floor(n/1e3)}return Math.floor(Date.now()/1e3)}var ld,ln=ke(()=>{"use strict";Xe();ld={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 un(e){let t="";for(let n=0;n<20;n++)t+=Ui[e[n]];return t}function rs(e,t){let n="";for(let r=0;r<20;r++)n+=Ui[e[t+r]];return n}function Ct(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 J,Ui,at=ke(()=>{"use strict";J="0000000000000000000000000000000000000000",Ui=(()=>{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 Eo(e){return typeof e=="string"?ud.encode(e):e}function md(){if(typeof globalThis.Bun<"u")return()=>{let e=new Bun.CryptoHasher("sha1"),t={update(n){return e.update(Eo(n)),t},hex:()=>Promise.resolve(e.digest("hex"))};return t};try{let e=Zr(["node","crypto"].join(":"));if(typeof e.createHash=="function")return()=>{let t=e.createHash("sha1"),n={update(r){return t.update(Eo(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(Eo(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 un(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 Qn(e){return Bi().update(e).hex()}var ud,Bi,mn,Dn=ke(()=>{"use strict";at();ud=new TextEncoder;Bi=md(),mn=Bi});async function q(e){let t=T(e.gitDir,"index");if(!await e.fs.exists(t))return{version:ko,entries:[]};let n=await e.fs.readFileBuffer(t);return hd(n)}async function re(e,t){let n=T(e.gitDir,"index"),r=await pd(t);await e.fs.writeFile(n,r)}function ht(e,t){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(xo),{...e,entries:n}}function nt(e,t){return{...e,entries:e.entries.filter(n=>n.path!==t)}}function ss(e,t,n=0){return e.entries.find(r=>r.path===t&&r.stage===n)}function Pt(e){return e.entries.some(t=>t.stage>0)}function Gt(e){return[...new Set(e.entries.filter(t=>t.stage>0).map(t=>t.path))]}function ve(e){return e.entries.filter(t=>t.stage===0)}function qi(){return{version:ko,entries:[]}}function os(e){let t=[...e].sort(xo);return{version:ko,entries:t}}function Pe(){return{ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,uid:0,gid:0,size:0}}function hd(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=0,r=t.getUint32(n);if(n+=4,r!==Wi)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)},d=t.getUint32(n+24);n+=40;let l=e.subarray(n,n+20),u=un(l);n+=20;let m=t.getUint16(n);n+=2;let h=m>>12&3,p=m&4095,g;if(p<4095)g=new TextDecoder().decode(e.subarray(n,n+p));else{let b=n;for(;b<e.byteLength&&e[b]!==0;)b++;g=new TextDecoder().decode(e.subarray(n,b))}let w=62+g.length+1,k=Math.ceil(w/8)*8;n=c+k,i.push({path:g,mode:d,hash:u,stage:h,stat:f})}return{version:o,entries:i}}async function pd(e){let t=[...e.entries].sort(xo),n=12;for(let d of t){let l=62+d.path.length+1;n+=Math.ceil(l/8)*8}n+=20;let r=new ArrayBuffer(n),o=new Uint8Array(r),s=new DataView(r),i=0;s.setUint32(i,Wi),i+=4,s.setUint32(i,e.version),i+=4,s.setUint32(i,t.length),i+=4;for(let d of t){let l=i;s.setUint32(i,d.stat.ctimeSeconds),s.setUint32(i+4,d.stat.ctimeNanoseconds),s.setUint32(i+8,d.stat.mtimeSeconds),s.setUint32(i+12,d.stat.mtimeNanoseconds),s.setUint32(i+16,d.stat.dev),s.setUint32(i+20,d.stat.ino),s.setUint32(i+24,d.mode),s.setUint32(i+28,d.stat.uid),s.setUint32(i+32,d.stat.gid),s.setUint32(i+36,d.stat.size),i+=40;let u=Ct(d.hash);o.set(u,i),i+=20;let m=Math.min(d.path.length,4095),h=(d.stage&3)<<12|m;s.setUint16(i,h),i+=2;let p=new TextEncoder().encode(d.path);o.set(p,i),i+=p.byteLength,o[i]=0,i+=1;let g=62+p.byteLength+1,w=Math.ceil(g/8)*8;i=l+w}let a=o.subarray(0,i),c=await Qn(a),f=Ct(c);return o.set(f,i),o}function xo(e,t){return e.path<t.path?-1:e.path>t.path?1:e.stage-t.stage}var Wi,ko,xe=ke(()=>{"use strict";at();ue();Dn();Wi=1145655875,ko=2});function Co(e){let t=4294967295;for(let n=0;n<e.byteLength;n++)t=Ki[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var Ki,zi=ke(()=>{"use strict";Ki=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;Ki[e]=t}});function gd(){try{let e=Zr(["node","zlib"].join(":"));if(typeof e.deflateSync=="function"&&typeof e.inflateSync=="function")return{deflate:t=>Promise.resolve(new Uint8Array(e.deflateSync(t))),inflate:t=>Promise.resolve(new Uint8Array(e.inflateSync(t)))}}catch{}if(typeof globalThis.CompressionStream=="function"&&typeof globalThis.DecompressionStream=="function")return{async deflate(e){let t=new CompressionStream("deflate"),n=t.writable.getWriter();return n.write(e),n.close(),new Uint8Array(await new Response(t.readable).arrayBuffer())},async inflate(e){let t=new DecompressionStream("deflate"),n=t.writable.getWriter();return n.write(e),n.close(),new Uint8Array(await new Response(t.readable).arrayBuffer())}};throw new Error("No zlib implementation available. Requires Bun, Node.js, Deno, or a browser with CompressionStream.")}var Vi,er,Qt,is=ke(()=>{"use strict";Vi=gd(),er=Vi.deflate,Qt=Vi.inflate});async function na(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=t.getUint32(0);if(n!==as)throw new Error(`Invalid pack signature: 0x${n.toString(16)} (expected 0x${as.toString(16)})`);let r=t.getUint32(4);if(r!==Ro)throw new Error(`Unsupported pack version: ${r}`);let o=t.getUint32(8),s=[],i=12;for(let c=0;c<o;c++){let f=await bd(e,i);s.push(f),i=f.nextOffset}return(await yd(s)).map((c,f)=>({...c,offset:s[f].headerOffset,nextOffset:s[f].nextOffset}))}async function bd(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===yr){let l=e[t++];for(a=l&127;l&128;)a+=1,l=e[t++],a=(a<<7)+(l&127);a=n-a}else o===$o&&(c=rs(e,t),t+=20);let{result:f,bytesConsumed:d}=await xd(e,t,s);return{headerOffset:n,typeNum:o,inflated:f,baseOffset:a,baseHash:c,nextOffset:t+d}}async function yd(e){let t=new Map;for(let o=0;o<e.length;o++)t.set(e[o].headerOffset,o);let n=new Array(e.length).fill(null);async function r(o){let s=n[o];if(s)return s;let i=e[o];if(i.typeNum!==yr&&i.typeNum!==$o){let l=wd[i.typeNum];if(!l)throw new Error(`Unknown object type: ${i.typeNum}`);let u={type:l,content:i.inflated,hash:await Xi(l,i.inflated)};return n[o]=u,u}let a;if(i.typeNum===yr){if(a=t.get(i.baseOffset),a===void 0)throw new Error(`OFS_DELTA base not found at offset ${i.baseOffset}`)}else if(a=await Ed(e,n,i.baseHash,r),a===void 0)throw new Error(`REF_DELTA base not found for hash ${i.baseHash}`);let c=await r(a),f=cs(c.content,i.inflated),d={type:c.type,content:f,hash:await Xi(c.type,f)};return n[o]=d,d}for(let o=0;o<e.length;o++)await r(o);return n}async function Ed(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!==yr&&s.typeNum!==$o&&(await r(o)).hash===n)return o}}function cs(e,t){let n=0,{value:r,newPos:o}=Yi(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}=Yi(t,n);n=i;let a=new Uint8Array(s),c=0;for(;n<t.byteLength;){let f=t[n++];if(f&128){let d=0,l=0;f&1&&(d=t[n++]),f&2&&(d|=t[n++]<<8),f&4&&(d|=t[n++]<<16),f&8&&(d|=t[n++]<<24),f&16&&(l=t[n++]),f&32&&(l|=t[n++]<<8),f&64&&(l|=t[n++]<<16),l===0&&(l=65536),a.set(e.subarray(d,d+l),c),c+=l}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 fs(e){let t=[],n=new Uint8Array(12),r=new DataView(n.buffer);r.setUint32(0,as),r.setUint32(4,Ro),r.setUint32(8,e.length),t.push(n);for(let d of e){let l=ta[d.type],u=await er(d.content),m=Po(l,d.content.byteLength);t.push(m),t.push(u)}let o=0;for(let d of t)o+=d.byteLength;o+=20;let s=new Uint8Array(o),i=0;for(let d of t)s.set(d,i),i+=d.byteLength;let a=mn();a.update(s.subarray(0,i));let c=await a.hex(),f=Ct(c);return s.set(f,i),s}async function ra(e){let t=[],n=new Map,r=new Uint8Array(12),o=new DataView(r.buffer);o.setUint32(0,as),o.setUint32(4,Ro),o.setUint32(8,e.length),t.push(r);let s=12,i=[];for(let u of e){let m=s;n.set(u.hash,s);let h=u.delta&&u.deltaBaseHash?n.get(u.deltaBaseHash):void 0;if(u.delta&&h!==void 0){let p=Po(yr,u.delta.byteLength),g=kd(s-h),w=await er(u.delta);t.push(p,g,w),s+=p.byteLength+g.byteLength+w.byteLength}else{let p=ta[u.type],g=Po(p,u.content.byteLength),w=await er(u.content);t.push(g,w),s+=g.byteLength+w.byteLength}i.push({hash:u.hash,offset:m,nextOffset:s})}let a=0;for(let u of t)a+=u.byteLength;a+=20;let c=new Uint8Array(a),f=0;for(let u of t)c.set(u,f),f+=u.byteLength;let d=mn();d.update(c.subarray(0,f));let l=await d.hex();return c.set(Ct(l),f),{data:c,entries:i}}function kd(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 Po(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 Yi(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 xd(e,t,n){let r=e.subarray(t),o=await Qt(r);if(o.byteLength!==n)throw new Error(`Inflate size mismatch: got ${o.byteLength}, expected ${n}`);let s=2,i=r.byteLength;for(;s<i;){let a=s+i>>>1;try{(await Qt(r.subarray(0,a))).byteLength===n?i=a:s=a+1}catch{s=a+1}}return{result:o,bytesConsumed:s}}async function Xi(e,t){let n=Cd.encode(`${e} ${t.byteLength}\0`),r=mn();return r.update(n),r.update(t),r.hex()}var as,Ro,Zi,Ji,Qi,ea,yr,$o,wd,ta,Cd,Er=ke(()=>{"use strict";at();Dn();is();as=1346454347,Ro=2,Zi=1,Ji=2,Qi=3,ea=4,yr=6,$o=7,wd={[Zi]:"commit",[Ji]:"tree",[Qi]:"blob",[ea]:"tag"},ta={commit:Zi,tree:Ji,blob:Qi,tag:ea};Cd=new TextEncoder});async function ia(e,t){let n=[...e].sort((m,h)=>m.hash<h.hash?-1:m.hash>h.hash?1:0),r=n.length,o=[];for(let m of n)m.offset>=2147483648&&o.push(BigInt(m.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,sa),c+=4,a.setUint32(c,oa),c+=4;let f=new Uint32Array(256);for(let m of n){let h=parseInt(m.hash.slice(0,2),16);for(let p=h;p<256;p++)f[p]++}for(let m=0;m<256;m++)a.setUint32(c,f[m]),c+=4;for(let m of n)i.set(Ct(m.hash),c),c+=20;for(let m of n)a.setUint32(c,m.crc),c+=4;let d=0;for(let m of n)m.offset>=2147483648?a.setUint32(c,2147483648|d++):a.setUint32(c,m.offset),c+=4;for(let m of o)a.setBigUint64(c,m),c+=8;i.set(t,c),c+=20;let l=mn();l.update(i.subarray(0,c));let u=await l.hex();return i.set(Ct(u),c),i}async function aa(e){let n=(await na(e)).map(o=>({hash:o.hash,offset:o.offset,crc:Co(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return ia(n,r)}async function ca(e,t){let n=t.map(o=>({hash:o.hash,offset:o.offset,crc:Co(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return ia(n,r)}var sa,oa,Mn,ds=ke(()=>{"use strict";at();Dn();zi();Er();sa=4285812579,oa=2,Mn=class{fanout;hashes;offsets;largeOffsets;count;constructor(t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(n.getUint32(0)!==sa)throw new Error("Invalid pack index: bad magic");if(n.getUint32(4)!==oa)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=Ct(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++){let r="",o=n*20;for(let s=0;s<20;s++){let i=this.hashes[o+s];r+=(i>>4).toString(16)+(i&15).toString(16)}t.push(r)}return t}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 Pd,Rd,$d,kr,fa=ke(()=>{"use strict";at();ds();Er();is();Pd=6,Rd=7,$d={1:"commit",2:"tree",3:"blob",4:"tag"},kr=class{constructor(t,n){this.data=t;this.index=new Mn(n)}index;hasObject(t){return this.index.has(t)}async readObject(t){let n=this.index.lookup(t);return n===null?null:this.readAt(n)}get objectCount(){return this.index.objectCount}async readAt(t){let n=this.data,r=t,o=n[r++],s=o>>4&7,i=o&15,a=4;for(;o&128;)o=n[r++],i|=(o&127)<<a,a+=7;if(s===Pd){let d=n[r++],l=d&127;for(;d&128;)l+=1,d=n[r++],l=(l<<7)+(d&127);let u=await Qt(n.subarray(r)),m=await this.readAt(t-l);return{type:m.type,content:cs(m.content,u)}}if(s===Rd){let d=rs(n,r);r+=20;let l=await Qt(n.subarray(r)),u=this.index.lookup(d);if(u===null)throw new Error(`REF_DELTA base ${d} not found in pack`);let m=await this.readAt(u);return{type:m.type,content:cs(m.content,l)}}let c=$d[s];if(!c)throw new Error(`Unknown pack object type: ${s}`);let f=await Qt(n.subarray(r));if(f.byteLength!==i)throw new Error(`Pack inflate size mismatch at offset ${t}: got ${f.byteLength}, expected ${i}`);return{type:c,content:f}}}});function Oo(e,t){let n=Id.encode(`${e} ${t.byteLength}\0`),r=new Uint8Array(n.byteLength+t.byteLength);return r.set(n),r.set(t,n.byteLength),r}function Td(e,t){let n=t.indexOf(0);if(n===-1)throw new Error(`Corrupt object ${e}: no null byte in header`);let r=Od.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 Io(e,t){return T(e,"objects",t.slice(0,2),t.slice(2))}var Id,Od,ls,da=ke(()=>{"use strict";at();ds();fa();is();ue();Dn();Id=new TextEncoder,Od=new TextDecoder;ls=class{constructor(t,n,r){this.fs=t;this.gitDir=n;this.hooks=r}packs=[];loadedPackNames=new Set;discoverPromise=null;async write(t,n){let r=Oo(t,n),o=await Qn(r),s=Io(this.gitDir,o);if(await this.fs.exists(s))return o;let i=T(this.gitDir,"objects",o.slice(0,2));return await this.fs.mkdir(i,{recursive:!0}),await this.fs.writeFile(s,await er(r)),this.hooks?.emit("object:write",{type:t,hash:o}),o}async read(t){let n=Io(this.gitDir,t);if(await this.fs.exists(n)){let r=await this.fs.readFileBuffer(n),o=await Qt(r);return Td(t,o)}await this.discover();for(let r of this.packs){let o=await r.readObject(t);if(o)return o}throw new Error(`object ${t} not found`)}async exists(t){if(await this.fs.exists(Io(this.gitDir,t)))return!0;await this.discover();for(let n of this.packs)if(n.hasObject(t))return!0;return!1}async ingestPack(t){if(t.byteLength<32)return 0;let r=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(8);if(r===0)return 0;let o=t.subarray(t.byteLength-20),s=un(o),i=T(this.gitDir,"objects","pack");await this.fs.mkdir(i,{recursive:!0});let a=`pack-${s}`,c=T(i,`${a}.pack`);await this.fs.writeFile(c,t);let f=await aa(t),d=T(i,`${a}.idx`);return await this.fs.writeFile(d,f),this.loadedPackNames.add(a),this.packs.push(new kr(t,f)),r}discover(){return this.discoverPromise||(this.discoverPromise=this.doDiscover()),this.discoverPromise}async doDiscover(){let t=T(this.gitDir,"objects","pack");if(!await this.fs.exists(t))return;let n=await this.fs.readdir(t);for(let r of n){if(!r.endsWith(".idx"))continue;let o=r.slice(0,-4);if(this.loadedPackNames.has(o))continue;let s=T(t,`${o}.pack`);if(!await this.fs.exists(s))continue;let[i,a]=await Promise.all([this.fs.readFileBuffer(T(t,r)),this.fs.readFileBuffer(s)]);this.loadedPackNames.add(o),this.packs.push(new kr(a,i))}}}});function xr(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 Cr(e){return`${e.name} <${e.email}> ${e.timestamp} ${e.timezone}`}var To=ke(()=>{"use strict"});function Wt(e){let t=Ad.decode(e),n=t.indexOf(`
13
-
14
- `),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(`
15
- `)){let d=f.indexOf(" ");if(d===-1)continue;let l=f.slice(0,d),u=f.slice(d+1);switch(l){case"tree":s=u;break;case"parent":i.push(u);break;case"author":a=xr(u);break;case"committer":c=xr(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 qt(e){let t=[];t.push(`tree ${e.tree}`);for(let n of e.parents)t.push(`parent ${n}`);return t.push(`author ${Cr(e.author)}`),t.push(`committer ${Cr(e.committer)}`),t.push(""),t.push(e.message),Hd.encode(t.join(`
16
- `))}var Hd,Ad,en=ke(()=>{"use strict";To();Hd=new TextEncoder,Ad=new TextDecoder});function tn(e){let t=Sd.decode(e),n=t.indexOf(`
17
-
18
- `),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(`
19
- `)){let d=f.indexOf(" ");if(d===-1)continue;let l=f.slice(0,d),u=f.slice(d+1);switch(l){case"object":s=u;break;case"type":i=u;break;case"tag":a=u;break;case"tagger":c=xr(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 la(e){let t=[];return t.push(`object ${e.object}`),t.push(`type ${e.objectType}`),t.push(`tag ${e.name}`),t.push(`tagger ${Cr(e.tagger)}`),t.push(""),t.push(e.message),vd.encode(t.join(`
20
- `))}var vd,Sd,Pr=ke(()=>{"use strict";To();vd=new TextEncoder,Sd=new TextDecoder});function us(e){if(e.objectStore)return e.objectStore;let t=new ls(e.fs,e.gitDir,e.hooks);return e.objectStore=t,t}async function pt(e,t){return Qn(Oo(e,t))}async function Re(e,t,n){return us(e).write(t,n)}async function ge(e,t){return us(e).read(t)}async function hn(e,t){return us(e).exists(t)}async function ms(e,t){return us(e).ingestPack(t)}function Oe(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 pn(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 se(e,t){let n=await ge(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return Dd.decode(n.content)}async function gt(e,t){let n=await ge(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return n.content}async function M(e,t){let n=await ge(e,t);if(n.type!=="commit")throw new Error(`Expected commit object for ${t}, got ${n.type}`);return Wt(n.content)}async function ua(e,t){let n=await ge(e,t);if(n.type!=="tag")throw new Error(`Expected tag object for ${t}, got ${n.type}`);return tn(n.content)}async function _e(e,t){let n=t;for(let r=0;r<100;r++){let o=await ge(e,n);if(o.type==="commit")return n;if(o.type==="tag"){n=tn(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 Dd,oe=ke(()=>{"use strict";da();en();Pr();Dn();Dd=new TextDecoder});async function ma(e,t){let n=Rr(e,t);if(await e.fs.exists(n)){let s=(await e.fs.readFile(n)).trim();return s.startsWith(Ho)?{type:"symbolic",target:s.slice(Ho.length)}:{type:"direct",hash:s}}let o=(await ga(e)).get(t);return o?{type:"direct",hash:o}:null}async function N(e,t){let n=t;for(let r=0;r<Md;r++){let o=await ma(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 Z(e){return ma(e,"HEAD")}async function X(e){return N(e,"HEAD")}async function Y(e,t,n){let r=e.hooks?await N(e,t):null,o=Rr(e,t);await tr(e.fs,o),await e.fs.writeFile(o,`${n}
21
- `),e.hooks?.emit("ref:update",{ref:t,oldHash:r,newHash:n})}async function Fe(e,t,n){let r=Rr(e,t);await tr(e.fs,r),await e.fs.writeFile(r,`${Ho}${n}
22
- `)}async function de(e,t){let n=e.hooks?await N(e,t):null,r=Rr(e,t);await e.fs.exists(r)&&await e.fs.rm(r),await jd(e,t),await $r(e,t),e.hooks&&n&&e.hooks.emit("ref:delete",{ref:t,oldHash:n})}async function we(e,t="refs"){let n=[],r=T(e.gitDir,t);await e.fs.exists(r)&&await wa(e,r,t,n);let o=await ga(e);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)}function be(e){return e.replace("refs/heads/","")}async function gn(e,t){let n=await Z(e);n&&n.type==="symbolic"?await Y(e,n.target,t):await Y(e,"HEAD",t)}async function jd(e,t){let n=T(e.gitDir,"packed-refs");if(!await e.fs.exists(n))return;let o=(await e.fs.readFile(n)).split(`
23
- `),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 e.fs.writeFile(n,s.join(`
24
- `)):await e.fs.rm(n)}async function ha(e){let t=await we(e,"refs");if(t.length===0)return;let n=["# pack-refs with: peeled fully-peeled sorted"];for(let o of t)if(n.push(`${o.hash} ${o.name}`),o.name.startsWith("refs/tags/"))try{let s=await ge(e,o.hash);if(s.type==="tag"){let i=tn(s.content).object;for(let a=0;a<100;a++){let c=await ge(e,i);if(c.type!=="tag")break;i=tn(c.content).object}n.push(`^${i}`)}}catch{}await e.fs.writeFile(T(e.gitDir,"packed-refs"),`${n.join(`
25
- `)}
26
- `);for(let o of t){let s=Rr(e,o.name);await e.fs.exists(s)&&await e.fs.rm(s)}await pa(e,T(e.gitDir,"refs"));let r=T(e.gitDir,"refs");await e.fs.mkdir(r,{recursive:!0}),await e.fs.mkdir(T(r,"heads"),{recursive:!0}),await e.fs.mkdir(T(r,"tags"),{recursive:!0})}async function pa(e,t){if(!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 pa(e,T(t,s));(await e.fs.readdir(t)).length===0&&await e.fs.rm(t,{recursive:!0})}async function ga(e){let t=T(e.gitDir,"packed-refs");if(!await e.fs.exists(t))return new Map;let n=await e.fs.readFile(t),r=new Map;for(let o of n.split(`
27
- `)){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}function Rr(e,t){return T(e.gitDir,t)}async function wa(e,t,n,r){let o=await e.fs.readdir(t);for(let s of o){let i=T(t,s),a=`${n}/${s}`,c=await e.fs.stat(i);if(c.isDirectory)await wa(e,i,a,r);else if(c.isFile){let f=await N(e,a);f&&r.push({name:a,hash:f})}}}var Ho,Md,me=ke(()=>{"use strict";oe();Pr();ue();Ge();wn();Ho="ref: ",Md=10});async function jn(e,t){let n=t;for(;;){let r=T(n,".git");if(await e.exists(r)&&(await e.stat(r)).isDirectory)return{fs:e,gitDir:r,workTree:n};if(await Gd(e,n))return{fs:e,gitDir:n,workTree:null};let o=Ld(n);if(o===n)return null;n=o}}async function Gd(e,t){let n=T(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=T(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 hs(e,t,n={}){let{bare:r=!1,initialBranch:o="main"}=n,s=r?t:T(t,".git"),i=r?null:t,a=T(s,"HEAD"),c=await e.exists(a);await e.mkdir(T(s,"objects"),{recursive:!0}),await e.mkdir(T(s,"refs","heads"),{recursive:!0}),await e.mkdir(T(s,"refs","tags"),{recursive:!0});let f={fs:e,gitDir:s,workTree:i};if(!c){await Fe(f,"HEAD",`refs/heads/${o}`);let d={core:{repositoryformatversion:"0",filemode:"true",bare:r?"true":"false",...r?{}:{logallrefupdates:"true"}}};await e.writeFile(T(s,"config"),wo(d))}return{ctx:f,reinit:c}}async function tr(e,t){let n=t.lastIndexOf("/");if(n>0){let r=t.slice(0,n);await e.mkdir(r,{recursive:!0})}}function Ld(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var wn=ke(()=>{"use strict";Xe();ue();me()});function ps(e,t){return T(e.gitDir,"logs",t)}function _d(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(),d=n.slice(a+1,c),l=n.slice(c+2),u=l.indexOf(" ");if(u<0)return null;let m=parseInt(l.slice(0,u),10),h=l.slice(u+1);return{oldHash:s,newHash:i,name:f,email:d,timestamp:m,tz:h,message:r}}async function ze(e,t){let n=ps(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(`
28
- `)){if(!s)continue;let i=_d(s);i&&o.push(i)}return o}function ba(e){return`${e.oldHash} ${e.newHash} ${e.name} <${e.email}> ${e.timestamp} ${e.tz} ${e.message}`}async function bn(e,t,n){let r=ps(e,t);if(await tr(e.fs,r),n.length===0){await e.fs.writeFile(r,"");return}let o=`${n.map(ba).join(`
29
- `)}
30
- `;await e.fs.writeFile(r,o)}async function Ue(e,t,n){let r=ps(e,t);await tr(e.fs,r);let o=`${ba(n)}
31
- `;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 $r(e,t){let n=ps(e,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function te(e,t,n,r,o,s,i=!1){let a=await Bt(e,t),c={oldHash:r??J,newHash:o,...a,message:s};await Ue(e,n,c),i&&n!=="HEAD"&&await Ue(e,"HEAD",c)}var Ge=ke(()=>{"use strict";at();ln();ue();wn();at()});function Nd(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 a=s[2]===""?1:parseInt(s[2],10);t.unshift({type:"tilde",n:a}),n=s[1].length;continue}let i=e.slice(0,n).match(/^(.+?)\^(\d*)$/);if(i&&i[1]!==void 0&&i[2]!==void 0){let a=i[2]===""?1:parseInt(i[2],10);t.unshift({type:"caret",n:a}),n=i[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 Fd(e,t){let n=t.slice(0,2),r=t.slice(2),o=T(e.gitDir,"objects",n);if(!await e.fs.exists(o))return null;let i=(await e.fs.readdir(o)).filter(a=>a.startsWith(r));if(i.length===0)return null;if(i.length>1)throw new Ao(t);return`${n}${i[0]}`}async function Ud(e,t){if(t==="HEAD"||t==="@")return N(e,"HEAD");if(ya.includes(t))return N(e,t);if(/^[0-9a-f]{40}$/.test(t))return await hn(e,t)?t:null;if(/^[0-9a-f]{4,39}$/.test(t)){let s=await Fd(e,t);if(s)return s}if(t.startsWith("refs/")){let s=await N(e,t);if(s)return s}let n=await N(e,`refs/heads/${t}`);if(n)return n;let r=await N(e,`refs/tags/${t}`);if(r)return r;let o=await N(e,`refs/remotes/${t}`);return o||null}function Bd(e){if(e==="HEAD"||e==="@")return"HEAD";for(let t of ya)if(e===t)return t;return e.startsWith("refs/")?e:`refs/heads/${e}`}async function Wd(e,t,n){let r=Bd(t),o=await ze(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 Be(e,t){let{base:n,reflogIndex:r,suffixes:o}=Nd(t),s;if(r!==void 0?s=await Wd(e,n,r):s=await Ud(e,n),!s)return null;o.length>0&&(s=await _e(e,s));for(let i of o)if(i.type==="tilde")for(let a=0;a<i.n;a++){if(!s)return null;let c=await M(e,s);if(c.parents.length===0||(s=c.parents[0]??null,!s))return null}else{if(i.n===0)continue;if(!s)return null;let a=await M(e,s);if(i.n>a.parents.length||(s=a.parents[i.n-1]??null,!s))return null}return s}function Ea(e){let t=e.indexOf(":");return t<0?null:{rev:e.slice(0,t)||"HEAD",path:e.slice(t+1)}}var ya,Ao,nn=ke(()=>{"use strict";oe();ue();Ge();me();ya=["HEAD","FETCH_HEAD","ORIG_HEAD","MERGE_HEAD","CHERRY_PICK_HEAD","REBASE_HEAD"];Ao=class extends Error{constructor(n){super(`short object ID ${n} is ambiguous`);this.prefix=n}}});function ot(e,t){return e.lstat?e.lstat(t):e.stat(t)}function rn(e){return typeof e=="string"?e==="120000":e===40960}async function Ir(e,t){if((await ot(e,t)).isSymbolicLink&&e.readlink){let r=await e.readlink(t);return qd.encode(r)}return e.readFileBuffer(t)}async function yn(e,t){let n=await Ir(e,t);return pt("blob",n)}var qd,Gn=ke(()=>{"use strict";oe();qd=new TextEncoder});function En(e){let t=[],n=0;for(;n<e.byteLength;){let r=e.indexOf(32,n);if(r===-1)break;let o=ka.decode(e.subarray(n,r)),s=e.indexOf(0,r+1);if(s===-1)break;let i=ka.decode(e.subarray(r+1,s)),a=e.subarray(s+1,s+21),c=un(a),f=o.padStart(6,"0");t.push({mode:f,name:i,hash:c}),n=s+21}return{type:"tree",entries:t}}function xa(e){let t=[];for(let s of e.entries){let i=s.mode.replace(/^0+/,""),a=Kd.encode(`${i} ${s.name}\0`),c=Ct(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 Kd,ka,gs=ke(()=>{"use strict";at();Kd=new TextEncoder,ka=new TextDecoder});var Or,Ca=ke(()=>{"use strict";Or={REGULAR:"100644",EXECUTABLE:"100755",SYMLINK:"120000",DIRECTORY:"040000",SUBMODULE:"160000"}});async function Se(e,t){return Pa(e,t,"")}async function Pa(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:zd(i.mode),name:a,hash:i.hash});else{let f=a.slice(0,c),d=o.get(f);d||(d=[],o.set(f,d)),d.push(i)}}for(let[i,a]of o){let c=n?`${n}/${i}`:i,f=await Pa(e,a,c);r.push({mode:Or.DIRECTORY,name:i,hash:f})}r.sort((i,a)=>{let c=i.mode===Or.DIRECTORY?`${i.name}/`:i.name,f=a.mode===Or.DIRECTORY?`${a.name}/`:a.name;return c<f?-1:c>f?1:0});let s=xa({type:"tree",entries:r});return Re(e,"tree",s)}async function We(e,t,n=""){let r=await ge(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===Or.DIRECTORY){let c=await We(e,i.hash,a);s.push(...c)}else s.push({path:a,mode:i.mode,hash:i.hash})}return s}async function fe(e,t){if(!t)return new Map;let n=await We(e,t);return new Map(n.map(r=>[r.path,r]))}async function Ne(e,t,n){let r=await fe(e,t),o=await fe(e,n),s=[];for(let[i,a]of r){let c=o.get(i);c?(a.hash!==c.hash||a.mode!==c.mode)&&s.push({path:i,status:"modified",oldHash:a.hash,newHash:c.hash,oldMode:a.mode,newMode:c.mode}):s.push({path:i,status:"deleted",oldHash:a.hash,oldMode:a.mode})}for(let[i,a]of o)r.has(i)||s.push({path:i,status:"added",newHash:a.hash,newMode:a.mode});return s.sort((i,a)=>Ce(i.path,a.path))}function zd(e){return e.toString(8).padStart(6,"0")}var Te=ke(()=>{"use strict";ne();oe();gs();Ca()});function Ra(e){return/^[a-zA-Z0-9]$/.test(e)}function Vd(e){return/^[a-zA-Z]$/.test(e)}function Yd(e){return e>="0"&&e<="9"}function vo(e){return e>="A"&&e<="Z"}function So(e){return e>="a"&&e<="z"}function $a(e){return/^\s$/.test(e)}function Xd(e){return e===" "||e===" "}function Mo(e){let t=e.charCodeAt(0);return t>=32&&t<=126}function Zd(e){return Mo(e)&&!$a(e)}function Jd(e){return Mo(e)&&!Ra(e)&&e!==" "}function Qd(e){let t=e.charCodeAt(0);return t<32||t===127}function el(e){return/^[0-9a-fA-F]$/.test(e)}function Tr(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e===t}function Do(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(!Tr(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 d=t;for(;t<e.length&&e[t]==="*";)t++;if(!i)f=!0;else if((d-1<1||e[d-2]==="/")&&(t>=e.length||e[t]==="/"||e[t]==="\\"&&t+1<e.length&&e[t+1]==="/")){if(t<e.length&&e[t]==="/"&&Do(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 d=n.indexOf("/",r);if(d===-1)return-1;r=d+1,t++;break}for(;!(r>=n.length);){if(!tl(e[t])){let l=s?e[t].toLowerCase():e[t];for(;r<n.length&&(f||n[r]!=="/")&&(s?n[r].toLowerCase():n[r])!==l;)r++;if(r>=n.length||!f&&n[r]==="/")return r<n.length&&!f&&n[r]==="/"?-2:f?-1:-2}let d=Do(e,t,n,r,o);if(d!==1){if(!f||d!==-2)return d}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 d=!1,l="",u=!0;for(;t<e.length&&(u||e[t]!=="]");){u=!1;let m=e[t];if(m==="\\"){if(t++,t>=e.length)return-1;m=e[t],Tr(c,m,s)&&(d=!0)}else if(m==="-"&&l&&t+1<e.length&&e[t+1]!=="]"){if(t++,m=e[t],m==="\\"){if(t++,t>=e.length)return-1;m=e[t]}let h=l,p=m;if(c>=h&&c<=p&&(d=!0),s){if(So(c)){let g=c.toUpperCase();g>=h&&g<=p&&(d=!0)}else if(vo(c)){let g=c.toLowerCase();g>=h&&g<=p&&(d=!0)}}m=""}else if(m==="["&&t+1<e.length&&e[t+1]===":"){t+=2;let h=t;for(;t<e.length&&e[t]!=="]";)t++;if(t>=e.length)return-1;let p=t-h-1;if(p<0||e[t-1]!==":")t=h-2,m="[",Tr(c,m,s)&&(d=!0);else{let g=e.slice(h,h+p);nl(g,c,s)&&(d=!0),m=""}}else Tr(c,m,s)&&(d=!0);l=m,t++}if(t>=e.length)return-1;if(t++,d===f)return 1;r++;break}default:{if(!Tr(c,a,s))return 1;r++,t++;break}}}return r>=n.length?0:1}function tl(e){return e==="*"||e==="?"||e==="["||e==="\\"}function nl(e,t,n){switch(e){case"alnum":return Ra(t);case"alpha":return Vd(t);case"blank":return Xd(t);case"cntrl":return Qd(t);case"digit":return Yd(t);case"graph":return Zd(t);case"lower":return So(t)||n&&vo(t);case"print":return Mo(t);case"punct":return Jd(t);case"space":return $a(t);case"upper":return vo(t)||n&&So(t);case"xdigit":return el(t);default:return!1}}function Ln(e,t,n=0){return Do(e,0,t,0,n)===0?0:1}var ws=ke(()=>{"use strict"});function Ha(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 rl(e){return Ha(e)===e.length}function sl(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|=bs,o=o.slice(1)),o.length===0)return null;let s=o.length;o[s-1]==="/"&&(s--,o=o.slice(0,s),r|=Ta);let i=!1;for(let c=0;c<s;c++)if(o[c]==="/"){i=!0;break}i||(r|=Ia);let a=Math.min(Ha(o),s);return o[0]==="*"&&rl(o.slice(1))&&(r|=Oa),{pattern:o,patternLen:s,nowildcardLen:a,flags:r,base:t}}function Hr(e,t,n){let r=[];for(let o of e.split(`
32
- `)){let s=sl(o,t);s&&r.push(s)}return{patterns:r,src:n}}function ol(e,t){let{pattern:n,patternLen:r,nowildcardLen:o,flags:s}=t;if(o===r)return e===n;if(s&Oa){let i=n.slice(1);return e.length>=i.length&&e.endsWith(i)}return Ln(n,e,2)===0}function il(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 jo(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&Ta&&!t)){if(s.flags&Ia){if(s.base&&!e.startsWith(`${s.base}/`))continue;if(ol(r,s))return s;continue}if(il(e,s))return s}}return null}function Kt(e,t,n){for(let r=e.dirPatterns.length-1;r>=0;r--){let o=e.dirPatterns[r],s=jo(t,n,o);if(s)return s.flags&bs?"not-ignored":"ignored"}if(e.excludeFile){let r=jo(t,n,e.excludeFile);if(r)return r.flags&bs?"not-ignored":"ignored"}if(e.globalExclude){let r=jo(t,n,e.globalExclude);if(r)return r.flags&bs?"not-ignored":"ignored"}return"undecided"}async function rr(e){let t={dirPatterns:[],excludeFile:null,globalExclude:null},n=T(e.gitDir,"info","exclude");try{let r=await e.fs.readFile(n);t.excludeFile=Hr(r,"",n)}catch{}try{let r=await jt(e,"core.excludesFile");if(r)try{let o=await e.fs.readFile(r);t.globalExclude=Hr(o,"",r)}catch{}}catch{}return t}function _n(e,t,n,r){let s=Hr(t,n===""?"":n,r);return{...e,dirPatterns:[...e.dirPatterns,s]}}var Ia,Oa,Ta,bs,Es=ke(()=>{"use strict";Xe();ue();ws();Ia=1,Oa=4,Ta=8,bs=16});async function Rt(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)continue;let i=T(e.workTree,s.path),a;try{a=await ot(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 yn(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 Ze(e,e.workTree,"");for(let s of o)r.has(s)||n.push({path:s,status:"untracked"});return n.sort((s,i)=>Ce(s.path,i.path))}async function rt(e,t){if(!e.workTree)throw new Error("Cannot checkout in a bare repository");let n=await ge(e,t.hash);if(n.type!=="blob")throw new Error(`Expected blob for ${t.path}, got ${n.type}`);let r=T(e.workTree,t.path),o=r.lastIndexOf("/");if(o>0&&await e.fs.mkdir(r.slice(0,o),{recursive:!0}),t.mode!=null&&rn(t.mode)&&e.fs.symlink){await ot(e.fs,r).then(()=>!0).catch(()=>!1)&&await e.fs.rm(r,{force:!0});let i=cl.decode(n.content);await e.fs.symlink(i,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 Aa(e,t){let n=await We(e,t);for(let r of n)await rt(e,r)}async function zt(e,t,n){if(!e.workTree)throw new Error("Cannot stage in a bare repository");let r=T(e.workTree,n);if(!await e.fs.exists(r))throw new Error(`Path does not exist: ${n}`);let o=await ot(e.fs,r);if(o.isSymbolicLink&&e.fs.readlink){let f=await e.fs.readlink(r),d=al.encode(f),l=await Re(e,"blob",d),u={path:n,mode:40960,hash:l,stage:0,stat:{...Pe(),size:d.byteLength}};return{index:ht(t,u),hash:l}}let s=await e.fs.readFileBuffer(r),i=await Re(e,"blob",s),a=o.mode!=null?fl(o.mode):33188,c={path:n,mode:a,hash:i,stage:0,stat:{...Pe(),size:s.byteLength}};return{index:ht(t,c),hash:i}}async function Ze(e,t,n,r){let o=r?.skipIgnore??!1,s=null;if(!o){s=r?._ignore??await rr(e);let c=T(t,".gitignore");try{let f=await e.fs.readFile(c);s=_n(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=T(t,c),d=n?`${n}/${c}`:c,l=await ot(e.fs,f);if(l.isSymbolicLink){if(s&&Kt(s,d,!1)==="ignored")continue;i.push(d)}else if(l.isDirectory){if(s&&Kt(s,d,!0)==="ignored")continue;let u=await Ze(e,f,d,{skipIgnore:o,_ignore:s??void 0});i.push(...u)}else if(l.isFile){if(s&&Kt(s,d,!1)==="ignored")continue;i.push(d)}}return i}function fl(e){return e>511?e:e&73?33261:33188}async function Nn(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 Nn(e,Ut(t),n))}var al,cl,Je=ke(()=>{"use strict";ne();Es();xe();oe();ue();Gn();Te();al=new TextEncoder,cl=new TextDecoder});function Go(e){return e.existsOnDisk&&e.indexHash===null}async function dl(e,t,n){let r=await Promise.all(t.map(h=>fe(e,h.treeHash))),o=new Map,s=new Set;for(let h of n.entries)h.stage===0?o.set(h.path,h):s.add(h.path);let i=e.workTree?new Set(await Ze(e,e.workTree,"",{skipIgnore:!0})):new Set,a=null,c=async()=>(a===null&&(a=e.workTree?new Set(await Ze(e,e.workTree,"")):new Set),a),f=new Set;for(let h of r)for(let p of h.keys())f.add(p);let d=new Set;for(let h of n.entries)f.has(h.path)||d.add(h.path);for(let h of i)f.has(h)||d.add(h);let l=Array.from(f).sort().concat(Array.from(d).sort()),u=(h,p)=>r[h]?.get(p),m=[];for(let h of l){let p=null,g=null,w=null,k=null,b=null;if(r.length===1){let L=u(0,h);w=L?.hash??null,b=L?.mode??null}else if(r.length===2){let L=u(0,h),G=u(1,h);g=L?.hash??null,k=L?.mode??null,w=G?.hash??null,b=G?.mode??null}else if(r.length>=3){let L=u(0,h),G=u(1,h),V=u(2,h);p=L?.hash??null,g=G?.hash??null,k=G?.mode??null,w=V?.hash??null,b=V?.mode??null}let x=o.get(h)?.hash??null,P=s.has(h)?1:0,C=i.has(h),R,y=async()=>R!==void 0?R:C?(R=!(await c()).has(h),R):(R=!1,!1),$,A=async()=>{if($!==void 0)return $;if(!C||!e.workTree)return $=null,null;let L=T(e.workTree,h);try{$=await yn(e.fs,L)}catch{$=null}return $};m.push({path:h,baseHash:p,headHash:g,remoteHash:w,indexHash:x,indexStage:P,existsOnDisk:C,isIgnoredOnDisk:y,getWorktreeHash:A,headMode:k,remoteMode:b})}return m}function ks(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 xs(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 ll(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 ul(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=ll(s,i);for(let c of s.requirements){if(n.allowStagedChanges&&c==="INDEX_MUST_MATCH_HEAD")continue;let f=await ml(c,i,a);if(f){r.push({path:o,error:f});break}}if(n.stopAtFirstError&&r.length>0)break}return r}async function ml(e,t,n,r){switch(e){case"INDEX_MUST_NOT_EXIST":return t.indexHash!==null?"WOULD_OVERWRITE":Go(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 Go(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_OVERWRITTEN":null;case"NO_UNTRACKED_REMOVED":return Go(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_REMOVED":null}}function hl(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 d=t.get(c);if(d)switch(f.action){case"KEEP":{let l=a.get(c);l&&(o.push(l),r.reset&&r.updateWorktree&&s.push({path:c,type:"checkout",hash:l.hash,mode:l.mode}));break}case"TAKE":{let l=f.takeFrom==="head"?d.headHash:d.remoteHash,u=f.takeFrom==="head"?d.headMode:d.remoteMode,m=u?Number.parseInt(u,8):33188;o.push({path:c,mode:m,hash:l,stage:0,stat:Pe()}),r.updateWorktree&&s.push({path:c,type:"checkout",hash:l,mode:m});break}case"DELETE":{r.updateWorktree&&d.existsOnDisk&&s.push({path:c,type:"delete"});break}case"SKIP":break}}return o.sort((c,f)=>Ce(c.path,f.path)||c.stage-f.stage),{newEntries:o,worktreeOps:s}}function Cs(e,t){let n=t.actionHint??t.operationName,r=[];for(let{error:s,msg:i,fix:a}of pl){let c=e.filter(f=>f.error===s).map(f=>f.path).sort();if(c.length>0){let f=c.map(d=>` ${d}`).join(`
33
- `);r.push(`${i(t.operationName)}
12
+ `);return{name:s,email:a,timestamp:zi(t.get(r.date)),timezone:"+0000"}}async function zt(e,t){try{let n=await Cr(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 zi(e){if(e){let t=parseInt(e,10);if(!Number.isNaN(t))return t;let n=Date.parse(e);if(!Number.isNaN(n))return Math.floor(n/1e3)}return Math.floor(Date.now()/1e3)}var ud,pn=ye(()=>{"use strict";Je();ud={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 gn(e){let t="";for(let n=0;n<20;n++)t+=Yi[e[n]];return t}function ls(e,t){let n="";for(let r=0;r<20;r++)n+=Yi[e[t+r]];return n}function Ot(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 J,Yi,dt=ye(()=>{"use strict";J="0000000000000000000000000000000000000000",Yi=(()=>{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 xo(e){return typeof e=="string"?md.encode(e):e}function hd(){if(typeof globalThis.Bun<"u")return()=>{let e=new Bun.CryptoHasher("sha1"),t={update(n){return e.update(xo(n)),t},hex:()=>Promise.resolve(e.digest("hex"))};return t};try{let e=os(["node","crypto"].join(":"));if(typeof e.createHash=="function")return()=>{let t=e.createHash("sha1"),n={update(r){return t.update(xo(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(xo(n)),t},async hex(){let n=0;for(let a of e)n+=a.byteLength;let r=new Uint8Array(n),o=0;for(let a of e)r.set(a,o),o+=a.byteLength;let s=await crypto.subtle.digest("SHA-1",r);return gn(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 rr(e){return Xi().update(e).hex()}var md,Xi,Gn,Ln=ye(()=>{"use strict";dt();md=new TextEncoder;Xi=hd(),Gn=Xi});async function K(e){let t=T(e.gitDir,"index");if(!await e.fs.exists(t))return{version:Co,entries:[]};let n=await e.fs.readFileBuffer(t);return pd(n)}async function se(e,t){let n=T(e.gitDir,"index"),r=await gd(t);await e.fs.writeFile(n,r)}function wt(e,t){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(Po),{...e,entries:n}}function ot(e,t){return{...e,entries:e.entries.filter(n=>n.path!==t)}}function us(e,t,n=0){return e.entries.find(r=>r.path===t&&r.stage===n)}function It(e){return e.entries.some(t=>t.stage>0)}function Nt(e){return[...new Set(e.entries.filter(t=>t.stage>0).map(t=>t.path))]}function Ae(e){return e.entries.filter(t=>t.stage===0)}function Ji(){return{version:Co,entries:[]}}function ms(e){let t=[...e].sort(Po);return{version:Co,entries:t}}function Ce(){return{ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,uid:0,gid:0,size:0}}function pd(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=0,r=t.getUint32(n);if(n+=4,r!==Zi)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 a=[];for(let i=0;i<s;i++){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)},d=t.getUint32(n+24);n+=40;let l=e.subarray(n,n+20),u=gn(l);n+=20;let m=t.getUint16(n);n+=2;let h=m>>12&3,p=m&4095,g;if(p<4095)g=new TextDecoder().decode(e.subarray(n,n+p));else{let R=n;for(;R<e.byteLength&&e[R]!==0;)R++;g=new TextDecoder().decode(e.subarray(n,R))}let w=62+g.length+1,y=Math.ceil(w/8)*8;n=c+y,a.push({path:g,mode:d,hash:u,stage:h,stat:f})}return{version:o,entries:a}}async function gd(e){let t=[...e.entries].sort(Po),n=12;for(let d of t){let l=62+d.path.length+1;n+=Math.ceil(l/8)*8}n+=20;let r=new ArrayBuffer(n),o=new Uint8Array(r),s=new DataView(r),a=0;s.setUint32(a,Zi),a+=4,s.setUint32(a,e.version),a+=4,s.setUint32(a,t.length),a+=4;for(let d of t){let l=a;s.setUint32(a,d.stat.ctimeSeconds),s.setUint32(a+4,d.stat.ctimeNanoseconds),s.setUint32(a+8,d.stat.mtimeSeconds),s.setUint32(a+12,d.stat.mtimeNanoseconds),s.setUint32(a+16,d.stat.dev),s.setUint32(a+20,d.stat.ino),s.setUint32(a+24,d.mode),s.setUint32(a+28,d.stat.uid),s.setUint32(a+32,d.stat.gid),s.setUint32(a+36,d.stat.size),a+=40;let u=Ot(d.hash);o.set(u,a),a+=20;let m=Math.min(d.path.length,4095),h=(d.stage&3)<<12|m;s.setUint16(a,h),a+=2;let p=new TextEncoder().encode(d.path);o.set(p,a),a+=p.byteLength,o[a]=0,a+=1;let g=62+p.byteLength+1,w=Math.ceil(g/8)*8;a=l+w}let i=o.subarray(0,a),c=await rr(i),f=Ot(c);return o.set(f,a),o}function Po(e,t){return e.path<t.path?-1:e.path>t.path?1:e.stage-t.stage}var Zi,Co,ke=ye(()=>{"use strict";dt();de();Ln();Zi=1145655875,Co=2});var wd,hs,Qi=ye(()=>{"use strict";wd=new Set(["tree","commit","tag"]),hs=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(!wd.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 Oo(e){let t=4294967295;for(let n=0;n<e.byteLength;n++)t=ea[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var ea,ta=ye(()=>{"use strict";ea=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;ea[e]=t}});function bd(){try{let e=os(["node","zlib"].join(":"));if(typeof e.deflateSync=="function"&&typeof e.inflateSync=="function"){let t;try{let n=e.inflateSync(e.deflateSync(Buffer.from("x")),{info:!0});n?.engine&&typeof n.engine.bytesWritten=="number"&&(t=r=>{let o=e.inflateSync(r,{info:!0});return Promise.resolve({result:new Uint8Array(o.buffer),bytesConsumed:o.engine.bytesWritten})})}catch{}return{deflate:n=>Promise.resolve(new Uint8Array(e.deflateSync(n))),inflate:n=>Promise.resolve(new Uint8Array(e.inflateSync(n))),inflateWithConsumed:t}}}catch{}if(typeof globalThis.CompressionStream=="function"&&typeof globalThis.DecompressionStream=="function")return{async deflate(e){let t=new CompressionStream("deflate"),n=t.writable.getWriter();return n.write(e),n.close(),new Uint8Array(await new Response(t.readable).arrayBuffer())},async inflate(e){let t=new DecompressionStream("deflate"),n=t.writable.getWriter();return n.write(e),n.close(),new Uint8Array(await new Response(t.readable).arrayBuffer())}};throw new Error("No zlib implementation available. Requires Bun, Node.js, Deno, or a browser with CompressionStream.")}var Io,Pr,rn,$o,ps=ye(()=>{"use strict";Io=bd(),Pr=Io.deflate,rn=Io.inflate,$o=Io.inflateWithConsumed});async function fa(e,t){let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=n.getUint32(0);if(r!==Ho)throw new Error(`Invalid pack signature: 0x${r.toString(16)} (expected 0x${Ho.toString(16)})`);let o=n.getUint32(4);if(o!==sa)throw new Error(`Unsupported pack version: ${o}`);let s=n.getUint32(8),a=[],i=12;for(let f=0;f<s;f++){let d=await kd(e,i);a.push(d),i=d.nextOffset}return(await Rd(a,t)).map((f,d)=>({...f,offset:a[d].headerOffset,nextOffset:a[d].nextOffset}))}async function kd(e,t){let n=t,r=e[t++],o=r>>4&7,s=r&15,a=4;for(;r&128;)r=e[t++],s|=(r&127)<<a,a+=7;let i,c;if(o===Or){let l=e[t++];for(i=l&127;l&128;)i+=1,l=e[t++],i=(i<<7)+(l&127);i=n-i}else o===So&&(c=ls(e,t),t+=20);let{result:f,bytesConsumed:d}=await Od(e,t,s);return{headerOffset:n,typeNum:o,inflated:f,baseOffset:i,baseHash:c,nextOffset:t+d}}async function Rd(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){let a=r[s];if(a)return a;let i=e[s];if(i.typeNum!==Or&&i.typeNum!==So){let u=yd[i.typeNum];if(!u)throw new Error(`Unknown object type: ${i.typeNum}`);let m={type:u,content:i.inflated,hash:await To(u,i.inflated)};return r[s]=m,m}if(i.typeNum===Or){let u=n.get(i.baseOffset);if(u===void 0)throw new Error(`OFS_DELTA base not found at offset ${i.baseOffset}`);let m=await o(u),h=Ir(m.content,i.inflated),p={type:m.type,content:h,hash:await To(m.type,h)};return r[s]=p,p}let c=await xd(e,r,i.baseHash,o),f;if(c!==void 0)f=await o(c);else if(t){let u=await t(i.baseHash);u&&(f=u)}if(!f)throw new Error(`REF_DELTA base not found for hash ${i.baseHash}`);let d=Ir(f.content,i.inflated),l={type:f.type,content:d,hash:await To(f.type,d)};return r[s]=l,l}for(let s=0;s<e.length;s++)await o(s);return r}async function xd(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!==Or&&s.typeNum!==So&&(await r(o)).hash===n)return o}}function Ir(e,t){let n=0,{value:r,newPos:o}=ra(t,n);if(n=o,r!==e.byteLength)throw new Error(`Delta base size mismatch: expected ${r}, got ${e.byteLength}`);let{value:s,newPos:a}=ra(t,n);n=a;let i=new Uint8Array(s),c=0;for(;n<t.byteLength;){let f=t[n++];if(f&128){let d=0,l=0;f&1&&(d=t[n++]),f&2&&(d|=t[n++]<<8),f&4&&(d|=t[n++]<<16),f&8&&(d|=t[n++]<<24),f&16&&(l=t[n++]),f&32&&(l|=t[n++]<<8),f&64&&(l|=t[n++]<<16),l===0&&(l=65536),i.set(e.subarray(d,d+l),c),c+=l}else if(f>0)i.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 i}async function gs(e){let t=[],n=new Map,r=new Uint8Array(12),o=new DataView(r.buffer);o.setUint32(0,Ho),o.setUint32(4,sa),o.setUint32(8,e.length),t.push(r);let s=12,a=[];for(let i of e){let c=s;n.set(i.hash,s);let f=i.delta&&i.deltaBaseHash?n.get(i.deltaBaseHash):void 0;if(i.delta&&f!==void 0){let d=na(Or,i.delta.byteLength),l=Pd(s-f),u=await Pr(i.delta);t.push(d,l,u),s+=d.byteLength+l.byteLength+u.byteLength}else{let d=Ed[i.type],l=na(d,i.content.byteLength),u=await Pr(i.content);t.push(l,u),s+=l.byteLength+u.byteLength}a.push({hash:i.hash,offset:c,nextOffset:s})}return{data:await Cd(t),entries:a}}async function Cd(e){let t=0;for(let a of e)t+=a.byteLength;t+=20;let n=new Uint8Array(t),r=0;for(let a of e)n.set(a,r),r+=a.byteLength;let o=Gn();o.update(n.subarray(0,r));let s=await o.hex();return n.set(Ot(s),r),n}function Pd(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 na(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 ra(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 Od(e,t,n){let r=e.subarray(t);if($o){let{result:i,bytesConsumed:c}=await $o(r);if(i.byteLength!==n)throw new Error(`Inflate size mismatch: got ${i.byteLength}, expected ${n}`);return{result:i,bytesConsumed:c}}let o=await rn(r);if(o.byteLength!==n)throw new Error(`Inflate size mismatch: got ${o.byteLength}, expected ${n}`);let s=2,a=r.byteLength;for(;s<a;){let i=s+a>>>1;try{(await rn(r.subarray(0,i))).byteLength===n?a=i:s=i+1}catch{s=i+1}}return{result:o,bytesConsumed:s}}async function To(e,t){let n=Id.encode(`${e} ${t.byteLength}\0`),r=Gn();return r.update(n),r.update(t),r.hex()}var Ho,sa,oa,ia,aa,ca,Or,So,yd,Ed,Id,$r=ye(()=>{"use strict";dt();Ln();ps();Ho=1346454347,sa=2,oa=1,ia=2,aa=3,ca=4,Or=6,So=7,yd={[oa]:"commit",[ia]:"tree",[aa]:"blob",[ca]:"tag"},Ed={commit:oa,tree:ia,blob:aa,tag:ca};Id=new TextEncoder});async function ua(e,t){let n=[...e].sort((m,h)=>m.hash<h.hash?-1:m.hash>h.hash?1:0),r=n.length,o=[];for(let m of n)m.offset>=2147483648&&o.push(BigInt(m.offset));let s=8+256*4+r*20+r*4+r*4+o.length*8+20+20,a=new Uint8Array(s),i=new DataView(a.buffer),c=0;i.setUint32(c,da),c+=4,i.setUint32(c,la),c+=4;let f=new Uint32Array(256);for(let m of n){let h=parseInt(m.hash.slice(0,2),16);for(let p=h;p<256;p++)f[p]++}for(let m=0;m<256;m++)i.setUint32(c,f[m]),c+=4;for(let m of n)a.set(Ot(m.hash),c),c+=20;for(let m of n)i.setUint32(c,m.crc),c+=4;let d=0;for(let m of n)m.offset>=2147483648?i.setUint32(c,2147483648|d++):i.setUint32(c,m.offset),c+=4;for(let m of o)i.setBigUint64(c,m),c+=8;a.set(t,c),c+=20;let l=Gn();l.update(a.subarray(0,c));let u=await l.hex();return a.set(Ot(u),c),a}async function ma(e){let n=(await fa(e)).map(o=>({hash:o.hash,offset:o.offset,crc:Oo(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return ua(n,r)}async function ha(e,t){let n=t.map(o=>({hash:o.hash,offset:o.offset,crc:Oo(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return ua(n,r)}var da,la,Ft,ws=ye(()=>{"use strict";dt();Ln();ta();$r();da=4285812579,la=2,Ft=class{fanout;hashes;offsets;largeOffsets;count;constructor(t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(n.getUint32(0)!==da)throw new Error("Invalid pack index: bad magic");if(n.getUint32(4)!==la)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=Ot(t),r=n[0],o=r===0?0:this.fanout[r-1],s=this.fanout[r],a=o,i=s;for(;a<i;){let c=a+i>>>1,f=this.compareAt(c,n);if(f<0)a=c+1;else if(f>0)i=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=Ot(t.padEnd(40,"0")),a=t.length,i=[];for(let c=r;c<o;c++){let f=c*20,d=!0;for(let l=0;l<a;l++){let u=l%2===0?this.hashes[f+(l>>1)]>>4&15:this.hashes[f+(l>>1)]&15,m=l%2===0?s[l>>1]>>4&15:s[l>>1]&15;if(u!==m){d=!1;break}}d&&i.push(this.hashAtSlot(c))}return i}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],a=n[o];if(s<a)return-1;if(s>a)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 $d,Td,Hd,Tr,pa=ye(()=>{"use strict";dt();ws();$r();ps();$d=6,Td=7,Hd={1:"commit",2:"tree",3:"blob",4:"tag"},Tr=class{constructor(t,n){this.data=t;this.index=n instanceof Ft?n:new Ft(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)}get objectCount(){return this.index.objectCount}async readAt(t){let n=this.data,r=t,o=n[r++],s=o>>4&7,a=o&15,i=4;for(;o&128;)o=n[r++],a|=(o&127)<<i,i+=7;if(s===$d){let d=n[r++],l=d&127;for(;d&128;)l+=1,d=n[r++],l=(l<<7)+(d&127);let u=await rn(n.subarray(r)),m=await this.readAt(t-l);return{type:m.type,content:Ir(m.content,u)}}if(s===Td){let d=ls(n,r);r+=20;let l=await rn(n.subarray(r)),u=this.index.lookup(d);if(u===null)throw new Error(`REF_DELTA base ${d} not found in pack`);let m=await this.readAt(u);return{type:m.type,content:Ir(m.content,l)}}let c=Hd[s];if(!c)throw new Error(`Unknown pack object type: ${s}`);let f=await rn(n.subarray(r));if(f.byteLength!==a)throw new Error(`Pack inflate size mismatch at offset ${t}: got ${f.byteLength}, expected ${a}`);return{type:c,content:f}}}});function Ao(e,t){let n=Sd.encode(`${e} ${t.byteLength}\0`),r=new Uint8Array(n.byteLength+t.byteLength);return r.set(n),r.set(t,n.byteLength),r}function Ad(e,t){let n=t.indexOf(0);if(n===-1)throw new Error(`Corrupt object ${e}: no null byte in header`);let r=vd.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),a=parseInt(r.slice(o+1),10),i=t.subarray(n+1);if(i.byteLength!==a)throw new Error(`Corrupt object ${e}: expected ${a} bytes, got ${i.byteLength}`);return{type:s,content:i}}function vo(e,t){return T(e,"objects",t.slice(0,2),t.slice(2))}var Sd,vd,sr,Do=ye(()=>{"use strict";dt();Qi();ws();pa();ps();de();Ln();Sd=new TextEncoder,vd=new TextDecoder;sr=class{constructor(t,n,r){this.fs=t;this.gitDir=n;this.cache=new hs(r),this.packDir=T(n,"objects","pack")}packs=[];loadedPackNames=new Set;discoverPromise=null;cache;packDir;async write(t,n){let r=Ao(t,n),o=await rr(r),s=vo(this.gitDir,o);if(await this.fs.exists(s))return o;let a=T(this.gitDir,"objects",o.slice(0,2));return await this.fs.mkdir(a,{recursive:!0}),await this.fs.writeFile(s,await Pr(r)),o}async read(t){let n=this.cache.get(t);if(n)return n;let r=vo(this.gitDir,t);if(await this.fs.exists(r)){let o=await this.fs.readFileBuffer(r),s=await rn(o),a=Ad(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 a=await(await this.ensureReader(o)).readObject(t);if(a)return this.cache.set(t,a),a}throw new Error(`object ${t} not found`)}async exists(t){if(await this.fs.exists(vo(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 r=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(8);if(r===0)return 0;let o=t.subarray(t.byteLength-20),s=gn(o);await this.fs.mkdir(this.packDir,{recursive:!0});let a=`pack-${s}`,i=T(this.packDir,`${a}.pack`);await this.fs.writeFile(i,t);let c=await ma(t),f=T(this.packDir,`${a}.idx`);await this.fs.writeFile(f,c),this.loadedPackNames.add(a);let d=new Ft(c);return this.packs.push({name:a,index:d,reader:new Tr(t,d)}),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=T(this.gitDir,"objects",n),s=[];if(await this.fs.exists(o)){let a=await this.fs.readdir(o);for(let i of a)i.startsWith(r)&&s.push(`${n}${i}`)}await this.discover();for(let a of this.packs)for(let i of a.index.findByPrefix(t))s.includes(i)||s.push(i);return s}async ensureReader(t){if(t.reader)return t.reader;let n=T(this.packDir,`${t.name}.pack`),r=await this.fs.readFileBuffer(n);return t.reader=new Tr(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=T(this.packDir,`${r}.pack`);if(!await this.fs.exists(o))continue;let s=await this.fs.readFileBuffer(T(this.packDir,n));this.loadedPackNames.add(r),this.packs.push({name:r,index:new Ft(s),reader:null})}}}});function Hr(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),[a="0",i="+0000"]=s.split(" "),c=parseInt(a,10);return{name:r,email:o,timestamp:c,timezone:i}}function Sr(e){return`${e.name} <${e.email}> ${e.timestamp} ${e.timezone}`}var Mo=ye(()=>{"use strict"});function Vt(e){let t=Md.decode(e),n=t.indexOf(`
13
+
14
+ `),r=n===-1?t:t.slice(0,n),o=n===-1?"":t.slice(n+2),s="",a=[],i,c;for(let f of r.split(`
15
+ `)){let d=f.indexOf(" ");if(d===-1)continue;let l=f.slice(0,d),u=f.slice(d+1);switch(l){case"tree":s=u;break;case"parent":a.push(u);break;case"author":i=Hr(u);break;case"committer":c=Hr(u);break}}if(!s)throw new Error("Commit missing tree field");if(!i)throw new Error("Commit missing author field");if(!c)throw new Error("Commit missing committer field");return{type:"commit",tree:s,parents:a,author:i,committer:c,message:o}}function Yt(e){let t=[];t.push(`tree ${e.tree}`);for(let n of e.parents)t.push(`parent ${n}`);return t.push(`author ${Sr(e.author)}`),t.push(`committer ${Sr(e.committer)}`),t.push(""),t.push(e.message),Dd.encode(t.join(`
16
+ `))}var Dd,Md,sn=ye(()=>{"use strict";Mo();Dd=new TextEncoder,Md=new TextDecoder});function on(e){let t=Gd.decode(e),n=t.indexOf(`
17
+
18
+ `),r=n===-1?t:t.slice(0,n),o=n===-1?"":t.slice(n+2),s="",a="commit",i="",c;for(let f of r.split(`
19
+ `)){let d=f.indexOf(" ");if(d===-1)continue;let l=f.slice(0,d),u=f.slice(d+1);switch(l){case"object":s=u;break;case"type":a=u;break;case"tag":i=u;break;case"tagger":c=Hr(u);break}}if(!s)throw new Error("Tag missing object field");if(!i)throw new Error("Tag missing tag name field");if(!c)throw new Error("Tag missing tagger field");return{type:"tag",object:s,objectType:a,name:i,tagger:c,message:o}}function ga(e){let t=[];return t.push(`object ${e.object}`),t.push(`type ${e.objectType}`),t.push(`tag ${e.name}`),t.push(`tagger ${Sr(e.tagger)}`),t.push(""),t.push(e.message),jd.encode(t.join(`
20
+ `))}var jd,Gd,vr=ye(()=>{"use strict";Mo();jd=new TextEncoder,Gd=new TextDecoder});async function bt(e,t){return rr(Ao(e,t))}async function Pe(e,t,n){let r=await e.objectStore.write(t,n);return e.hooks?.onObjectWrite?.({repo:e,type:t,hash:r}),r}async function ge(e,t){return e.objectStore.read(t)}async function wn(e,t){return e.objectStore.exists(t)}async function bs(e,t){return e.objectStore.ingestPack(t)}async function wa(e,t){return e.objectStore.findByPrefix(t)}function Te(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 bn(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 ge(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return Ld.decode(n.content)}async function yt(e,t){let n=await ge(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return n.content}async function M(e,t){let n=await ge(e,t);if(n.type!=="commit")throw new Error(`Expected commit object for ${t}, got ${n.type}`);return Vt(n.content)}async function ba(e,t){let n=await ge(e,t);if(n.type!=="tag")throw new Error(`Expected tag object for ${t}, got ${n.type}`);return on(n.content)}async function _e(e,t){let n=t;for(let r=0;r<100;r++){let o=await ge(e,n);if(o.type==="commit")return n;if(o.type==="tag"){n=on(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 Ld,ie=ye(()=>{"use strict";Do();sn();vr();Ln();Ld=new TextDecoder});async function Ea(e,t){return e.refStore.readRef(t)}async function U(e,t){let n=t;for(let r=0;r<ya;r++){let o=await Ea(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 Z(e){return Ea(e,"HEAD")}async function X(e){return U(e,"HEAD")}async function Y(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 Ue(e,t,n){await e.refStore.writeRef(t,{type:"symbolic",target:n})}async function fe(e,t){let n=e.hooks?await U(e,t):null;await e.refStore.deleteRef(t),await Dr(e,t),e.hooks&&n&&e.hooks.onRefDelete?.({repo:e,ref:t,oldHash:n})}async function pe(e,t="refs"){return e.refStore.listRefs(t)}function we(e){return e.replace("refs/heads/","")}async function En(e,t){let n=await Z(e);n&&n.type==="symbolic"?await Y(e,n.target,t):await Y(e,"HEAD",t)}async function ka(e){if(e.refStore&&!(e.refStore instanceof yn))return;let t=await pe(e,"refs");if(t.length===0)return;let n=["# pack-refs with: peeled fully-peeled sorted"];for(let o of t)if(n.push(`${o.hash} ${o.name}`),o.name.startsWith("refs/tags/"))try{let s=await ge(e,o.hash);if(s.type==="tag"){let a=on(s.content).object;for(let i=0;i<100;i++){let c=await ge(e,a);if(c.type!=="tag")break;a=on(c.content).object}n.push(`^${a}`)}}catch{}await e.fs.writeFile(T(e.gitDir,"packed-refs"),`${n.join(`
21
+ `)}
22
+ `);for(let o of t){let s=T(e.gitDir,o.name);await e.fs.exists(s)&&await e.fs.rm(s)}await Ra(e,T(e.gitDir,"refs"));let r=T(e.gitDir,"refs");await e.fs.mkdir(r,{recursive:!0}),await e.fs.mkdir(T(r,"heads"),{recursive:!0}),await e.fs.mkdir(T(r,"tags"),{recursive:!0})}async function Ra(e,t){if(e.refStore&&!(e.refStore instanceof yn)||!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 Ra(e,T(t,s));(await e.fs.readdir(t)).length===0&&await e.fs.rm(t,{recursive:!0})}var jo,ya,yn,le=ye(()=>{"use strict";ie();vr();de();je();kn();jo="ref: ",ya=10,yn=class{constructor(t,n){this.fs=t;this.gitDir=n}casLocks=new Map;async readRef(t){let n=T(this.gitDir,t);if(await this.fs.exists(n)){let s=(await this.fs.readFile(n)).trim();return s.startsWith(jo)?{type:"symbolic",target:s.slice(jo.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=T(this.gitDir,t);await Ar(this.fs,r),n.type==="symbolic"?await this.fs.writeFile(r,`${jo}${n.target}
23
+ `):await this.fs.writeFile(r,`${n.hash}
24
+ `)}async deleteRef(t){let n=T(this.gitDir,t);await this.fs.exists(n)&&await this.fs.rm(n),await this.removePackedRef(t)}async listRefs(t="refs"){let n=[],r=T(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(i=>i.name)),a=`${t}/`;for(let[i,c]of o)i.startsWith(a)&&!s.has(i)&&n.push({name:i,hash:c})}return n.sort((s,a)=>s.name<a.name?-1:s.name>a.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<ya;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=T(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(`
25
+ `)){if(!o||o.startsWith("#")||o.startsWith("^"))continue;let s=o.indexOf(" ");if(s===-1)continue;let a=o.slice(0,s),i=o.slice(s+1).trim();a.length===40&&i&&r.set(i,a)}return r}async removePackedRef(t){let n=T(this.gitDir,"packed-refs");if(!await this.fs.exists(n))return;let o=(await this.fs.readFile(n)).split(`
26
+ `),s=[],a=!1;for(let c of o){if(a&&c.startsWith("^")){a=!1;continue}if(a=!1,!c||c.startsWith("#")){s.push(c);continue}let f=c.indexOf(" ");if(f!==-1&&c.slice(f+1).trim()===t){a=!0;continue}s.push(c)}s.some(c=>c&&!c.startsWith("#")&&!c.startsWith("^"))?await this.fs.writeFile(n,s.join(`
27
+ `)):await this.fs.rm(n)}async walkRefs(t,n,r){let o=await this.fs.readdir(t);for(let s of o){let a=T(t,s),i=`${n}/${s}`,c=await this.fs.stat(a);if(c.isDirectory)await this.walkRefs(a,i,r);else if(c.isFile){let f=await this.resolveRefInternal(i);f&&r.push({name:i,hash:f})}}}}});async function _n(e,t){let n=t;for(;;){let r=T(n,".git");if(await e.exists(r)&&(await e.stat(r)).isDirectory)return{fs:e,gitDir:r,workTree:n,objectStore:new sr(e,r),refStore:new yn(e,r)};if(await _d(e,n))return{fs:e,gitDir:n,workTree:null,objectStore:new sr(e,n),refStore:new yn(e,n)};let o=Nd(n);if(o===n)return null;n=o}}async function _d(e,t){let n=T(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=T(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 ys(e,t,n={}){let{bare:r=!1,initialBranch:o="main"}=n,s=r?t:T(t,".git"),a=r?null:t,i=T(s,"HEAD"),c=await e.exists(i);await e.mkdir(T(s,"objects"),{recursive:!0}),await e.mkdir(T(s,"refs","heads"),{recursive:!0}),await e.mkdir(T(s,"refs","tags"),{recursive:!0});let f={fs:e,gitDir:s,workTree:a,objectStore:new sr(e,s),refStore:new yn(e,s)};if(!c){await Ue(f,"HEAD",`refs/heads/${o}`);let d={core:{repositoryformatversion:"0",filemode:"true",bare:r?"true":"false",...r?{}:{logallrefupdates:"true"}}};await e.writeFile(T(s,"config"),Eo(d))}return{ctx:f,reinit:c}}async function Ar(e,t){let n=t.lastIndexOf("/");if(n>0){let r=t.slice(0,n);await e.mkdir(r,{recursive:!0})}}function Nd(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var kn=ye(()=>{"use strict";Je();Do();de();le()});function Es(e,t){return T(e.gitDir,"logs",t)}function Fd(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],a=o[1];if(!s||!a)return null;let i=n.indexOf("<"),c=n.indexOf(">",i);if(i<0||c<0)return null;let f=n.slice(s.length+1+a.length+1,i).trim(),d=n.slice(i+1,c),l=n.slice(c+2),u=l.indexOf(" ");if(u<0)return null;let m=parseInt(l.slice(0,u),10),h=l.slice(u+1);return{oldHash:s,newHash:a,name:f,email:d,timestamp:m,tz:h,message:r}}async function Ve(e,t){let n=Es(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(`
28
+ `)){if(!s)continue;let a=Fd(s);a&&o.push(a)}return o}function xa(e){return`${e.oldHash} ${e.newHash} ${e.name} <${e.email}> ${e.timestamp} ${e.tz} ${e.message}`}async function Rn(e,t,n){let r=Es(e,t);if(await Ar(e.fs,r),n.length===0){await e.fs.writeFile(r,"");return}let o=`${n.map(xa).join(`
29
+ `)}
30
+ `;await e.fs.writeFile(r,o)}async function Be(e,t,n){let r=Es(e,t);await Ar(e.fs,r);let o=`${xa(n)}
31
+ `;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 Dr(e,t){let n=Es(e,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function ne(e,t,n,r,o,s,a=!1){let i=await zt(e,t),c={oldHash:r??J,newHash:o,...i,message:s};await Be(e,n,c),a&&n!=="HEAD"&&await Be(e,"HEAD",c)}var je=ye(()=>{"use strict";dt();pn();de();kn();dt()});function Ud(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 i=s[2]===""?1:parseInt(s[2],10);t.unshift({type:"tilde",n:i}),n=s[1].length;continue}let a=e.slice(0,n).match(/^(.+?)\^(\d*)$/);if(a&&a[1]!==void 0&&a[2]!==void 0){let i=a[2]===""?1:parseInt(a[2],10);t.unshift({type:"caret",n:i}),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 Bd(e,t){let n=await wa(e,t);if(n.length===0)return null;if(n.length>1)throw new Go(t);return n[0]}async function Wd(e,t){if(t==="HEAD"||t==="@")return U(e,"HEAD");if(Ca.includes(t))return U(e,t);if(/^[0-9a-f]{40}$/.test(t))return await wn(e,t)?t:null;if(/^[0-9a-f]{4,39}$/.test(t)){let s=await Bd(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 qd(e){if(e==="HEAD"||e==="@")return"HEAD";for(let t of Ca)if(e===t)return t;return e.startsWith("refs/")?e:`refs/heads/${e}`}async function Kd(e,t,n){let r=qd(t),o=await Ve(e,r);if(o.length===0)return null;let s=o.length-1-n;if(s<0||s>=o.length)return null;let a=o[s];return a?a.newHash:null}async function We(e,t){let{base:n,reflogIndex:r,suffixes:o}=Ud(t),s;if(r!==void 0?s=await Kd(e,n,r):s=await Wd(e,n),!s)return null;o.length>0&&(s=await _e(e,s));for(let a of o)if(a.type==="tilde")for(let i=0;i<a.n;i++){if(!s)return null;let c=await M(e,s);if(c.parents.length===0||(s=c.parents[0]??null,!s))return null}else{if(a.n===0)continue;if(!s)return null;let i=await M(e,s);if(a.n>i.parents.length||(s=i.parents[a.n-1]??null,!s))return null}return s}function Pa(e){let t=e.indexOf(":");return t<0?null:{rev:e.slice(0,t)||"HEAD",path:e.slice(t+1)}}var Ca,Go,an=ye(()=>{"use strict";ie();je();le();Ca=["HEAD","FETCH_HEAD","ORIG_HEAD","MERGE_HEAD","CHERRY_PICK_HEAD","REBASE_HEAD"];Go=class extends Error{constructor(n){super(`short object ID ${n} is ambiguous`);this.prefix=n}}});function ct(e,t){return e.lstat?e.lstat(t):e.stat(t)}function cn(e){return typeof e=="string"?e==="120000":e===40960}async function Mr(e,t){if((await ct(e,t)).isSymbolicLink&&e.readlink){let r=await e.readlink(t);return zd.encode(r)}return e.readFileBuffer(t)}async function xn(e,t){let n=await Mr(e,t);return bt("blob",n)}var zd,Nn=ye(()=>{"use strict";ie();zd=new TextEncoder});function Cn(e){let t=[],n=0;for(;n<e.byteLength;){let r=e.indexOf(32,n);if(r===-1)break;let o=Oa.decode(e.subarray(n,r)),s=e.indexOf(0,r+1);if(s===-1)break;let a=Oa.decode(e.subarray(r+1,s)),i=e.subarray(s+1,s+21),c=gn(i),f=o.padStart(6,"0");t.push({mode:f,name:a,hash:c}),n=s+21}return{type:"tree",entries:t}}function Ia(e){let t=[];for(let s of e.entries){let a=s.mode.replace(/^0+/,""),i=Vd.encode(`${a} ${s.name}\0`),c=Ot(s.hash);t.push(i),t.push(c)}let n=t.reduce((s,a)=>s+a.byteLength,0),r=new Uint8Array(n),o=0;for(let s of t)r.set(s,o),o+=s.byteLength;return r}var Vd,Oa,ks=ye(()=>{"use strict";dt();Vd=new TextEncoder,Oa=new TextDecoder});var jr,$a=ye(()=>{"use strict";jr={REGULAR:"100644",EXECUTABLE:"100755",SYMLINK:"120000",DIRECTORY:"040000",SUBMODULE:"160000"}});async function De(e,t){return Ta(e,t,"")}async function Ta(e,t,n){let r=[],o=new Map;for(let a of t){let i=n?a.path.slice(n.length+1):a.path,c=i.indexOf("/");if(c===-1)r.push({mode:Yd(a.mode),name:i,hash:a.hash});else{let f=i.slice(0,c),d=o.get(f);d||(d=[],o.set(f,d)),d.push(a)}}for(let[a,i]of o){let c=n?`${n}/${a}`:a,f=await Ta(e,i,c);r.push({mode:jr.DIRECTORY,name:a,hash:f})}r.sort((a,i)=>{let c=a.mode===jr.DIRECTORY?`${a.name}/`:a.name,f=i.mode===jr.DIRECTORY?`${i.name}/`:i.name;return c<f?-1:c>f?1:0});let s=Ia({type:"tree",entries:r});return Pe(e,"tree",s)}async function qe(e,t,n=""){let r=await ge(e,t);if(r.type!=="tree")throw new Error(`Expected tree object, got ${r.type}`);let o=Cn(r.content),s=[];for(let a of o.entries){let i=n?`${n}/${a.name}`:a.name;if(a.mode===jr.DIRECTORY){let c=await qe(e,a.hash,i);s.push(...c)}else s.push({path:i,mode:a.mode,hash:a.hash})}return s}async function ce(e,t){if(!t)return new Map;let n=await qe(e,t);return new Map(n.map(r=>[r.path,r]))}async function Ne(e,t,n){let r=await ce(e,t),o=await ce(e,n),s=[];for(let[a,i]of r){let c=o.get(a);c?(i.hash!==c.hash||i.mode!==c.mode)&&s.push({path:a,status:"modified",oldHash:i.hash,newHash:c.hash,oldMode:i.mode,newMode:c.mode}):s.push({path:a,status:"deleted",oldHash:i.hash,oldMode:i.mode})}for(let[a,i]of o)r.has(a)||s.push({path:a,status:"added",newHash:i.hash,newMode:i.mode});return s.sort((a,i)=>Re(a.path,i.path))}function Yd(e){return e.toString(8).padStart(6,"0")}var He=ye(()=>{"use strict";re();ie();ks();$a()});function Ha(e){return/^[a-zA-Z0-9]$/.test(e)}function Xd(e){return/^[a-zA-Z]$/.test(e)}function Zd(e){return e>="0"&&e<="9"}function Lo(e){return e>="A"&&e<="Z"}function _o(e){return e>="a"&&e<="z"}function Sa(e){return/^\s$/.test(e)}function Jd(e){return e===" "||e===" "}function Fo(e){let t=e.charCodeAt(0);return t>=32&&t<=126}function Qd(e){return Fo(e)&&!Sa(e)}function el(e){return Fo(e)&&!Ha(e)&&e!==" "}function tl(e){let t=e.charCodeAt(0);return t<32||t===127}function nl(e){return/^[0-9a-fA-F]$/.test(e)}function Gr(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e===t}function No(e,t,n,r,o){let s=(o&1)!==0,a=(o&2)!==0;for(;t<e.length;){let i=e[t];if(r>=n.length&&i!=="*")return-1;let c=r<n.length?n[r]:"";switch(i){case"\\":{if(t++,t>=e.length)return-1;if(!Gr(n[r],e[t],s))return 1;r++,t++;break}case"?":{if(a&&c==="/")return 1;r++,t++;break}case"*":{let f;if(t++,t<e.length&&e[t]==="*"){let d=t;for(;t<e.length&&e[t]==="*";)t++;if(!a)f=!0;else if((d-1<1||e[d-2]==="/")&&(t>=e.length||e[t]==="/"||e[t]==="\\"&&t+1<e.length&&e[t+1]==="/")){if(t<e.length&&e[t]==="/"&&No(e,t+1,n,r,o)===0)return 0;f=!0}else f=!1}else f=!a;if(t>=e.length)return!f&&n.indexOf("/",r)!==-1?-2:0;if(!f&&e[t]==="/"){let d=n.indexOf("/",r);if(d===-1)return-1;r=d+1,t++;break}for(;!(r>=n.length);){if(!rl(e[t])){let l=s?e[t].toLowerCase():e[t];for(;r<n.length&&(f||n[r]!=="/")&&(s?n[r].toLowerCase():n[r])!==l;)r++;if(r>=n.length||!f&&n[r]==="/")return r<n.length&&!f&&n[r]==="/"?-2:f?-1:-2}let d=No(e,t,n,r,o);if(d!==1){if(!f||d!==-2)return d}else if(!f&&n[r]==="/")return-2;r++}return-1}case"[":{if(a&&c==="/")return 1;if(t++,t>=e.length)return-1;let f=!1;(e[t]==="!"||e[t]==="^")&&(f=!0,t++);let d=!1,l="",u=!0;for(;t<e.length&&(u||e[t]!=="]");){u=!1;let m=e[t];if(m==="\\"){if(t++,t>=e.length)return-1;m=e[t],Gr(c,m,s)&&(d=!0)}else if(m==="-"&&l&&t+1<e.length&&e[t+1]!=="]"){if(t++,m=e[t],m==="\\"){if(t++,t>=e.length)return-1;m=e[t]}let h=l,p=m;if(c>=h&&c<=p&&(d=!0),s){if(_o(c)){let g=c.toUpperCase();g>=h&&g<=p&&(d=!0)}else if(Lo(c)){let g=c.toLowerCase();g>=h&&g<=p&&(d=!0)}}m=""}else if(m==="["&&t+1<e.length&&e[t+1]===":"){t+=2;let h=t;for(;t<e.length&&e[t]!=="]";)t++;if(t>=e.length)return-1;let p=t-h-1;if(p<0||e[t-1]!==":")t=h-2,m="[",Gr(c,m,s)&&(d=!0);else{let g=e.slice(h,h+p);sl(g,c,s)&&(d=!0),m=""}}else Gr(c,m,s)&&(d=!0);l=m,t++}if(t>=e.length)return-1;if(t++,d===f)return 1;r++;break}default:{if(!Gr(c,i,s))return 1;r++,t++;break}}}return r>=n.length?0:1}function rl(e){return e==="*"||e==="?"||e==="["||e==="\\"}function sl(e,t,n){switch(e){case"alnum":return Ha(t);case"alpha":return Xd(t);case"blank":return Jd(t);case"cntrl":return tl(t);case"digit":return Zd(t);case"graph":return Qd(t);case"lower":return _o(t)||n&&Lo(t);case"print":return Fo(t);case"punct":return el(t);case"space":return Sa(t);case"upper":return Lo(t)||n&&_o(t);case"xdigit":return nl(t);default:return!1}}function Fn(e,t,n=0){return No(e,0,t,0,n)===0?0:1}var Rs=ye(()=>{"use strict"});function Ma(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 ol(e){return Ma(e)===e.length}function il(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|=xs,o=o.slice(1)),o.length===0)return null;let s=o.length;o[s-1]==="/"&&(s--,o=o.slice(0,s),r|=Da);let a=!1;for(let c=0;c<s;c++)if(o[c]==="/"){a=!0;break}a||(r|=va);let i=Math.min(Ma(o),s);return o[0]==="*"&&ol(o.slice(1))&&(r|=Aa),{pattern:o,patternLen:s,nowildcardLen:i,flags:r,base:t}}function Lr(e,t,n){let r=[];for(let o of e.split(`
32
+ `)){let s=il(o,t);s&&r.push(s)}return{patterns:r,src:n}}function al(e,t){let{pattern:n,patternLen:r,nowildcardLen:o,flags:s}=t;if(o===r)return e===n;if(s&Aa){let a=n.slice(1);return e.length>=a.length&&e.endsWith(a)}return Fn(n,e,2)===0}function cl(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 a=n.length;if(a>0&&(e.length<a+1||e[a]!=="/"||!e.startsWith(n)))return!1;let i=a>0?e.slice(a+1):e,c=i.length;if(s>0){if(s>c||i.slice(0,s)!==r.slice(0,s))return!1;if(o===s&&c===s)return!0}return Fn(r,i,2)===0}function Uo(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&Da&&!t)){if(s.flags&va){if(s.base&&!e.startsWith(`${s.base}/`))continue;if(al(r,s))return s;continue}if(cl(e,s))return s}}return null}function Xt(e,t,n){for(let r=e.dirPatterns.length-1;r>=0;r--){let o=e.dirPatterns[r],s=Uo(t,n,o);if(s)return s.flags&xs?"not-ignored":"ignored"}if(e.excludeFile){let r=Uo(t,n,e.excludeFile);if(r)return r.flags&xs?"not-ignored":"ignored"}if(e.globalExclude){let r=Uo(t,n,e.globalExclude);if(r)return r.flags&xs?"not-ignored":"ignored"}return"undecided"}async function ir(e){let t={dirPatterns:[],excludeFile:null,globalExclude:null},n=T(e.gitDir,"info","exclude");try{let r=await e.fs.readFile(n);t.excludeFile=Lr(r,"",n)}catch{}try{let r=await _t(e,"core.excludesFile");if(r)try{let o=await e.fs.readFile(r);t.globalExclude=Lr(o,"",r)}catch{}}catch{}return t}function Un(e,t,n,r){let s=Lr(t,n===""?"":n,r);return{...e,dirPatterns:[...e.dirPatterns,s]}}var va,Aa,Da,xs,Ps=ye(()=>{"use strict";Je();de();Rs();va=1,Aa=4,Da=8,xs=16});async function $t(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)continue;let a=T(e.workTree,s.path),i;try{i=await ct(e.fs,a)}catch{i=null}if(!i){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}if(!i.isFile&&!i.isSymbolicLink){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}await xn(e.fs,a)!==s.hash&&n.push({path:s.path,status:"modified",indexHash:s.hash})}let r=new Set(t.entries.map(s=>s.path)),o=await Qe(e,e.workTree,"");for(let s of o)r.has(s)||n.push({path:s,status:"untracked"});return n.sort((s,a)=>Re(s.path,a.path))}async function it(e,t){if(!e.workTree)throw new Error("Cannot checkout in a bare repository");let n=await ge(e,t.hash);if(n.type!=="blob")throw new Error(`Expected blob for ${t.path}, got ${n.type}`);let r=T(e.workTree,t.path),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){await ct(e.fs,r).then(()=>!0).catch(()=>!1)&&await e.fs.rm(r,{force:!0});let a=dl.decode(n.content);await e.fs.symlink(a,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 ja(e,t){let n=await qe(e,t);for(let r of n)await it(e,r)}async function Zt(e,t,n){if(!e.workTree)throw new Error("Cannot stage in a bare repository");let r=T(e.workTree,n);if(!await e.fs.exists(r))throw new Error(`Path does not exist: ${n}`);let o=await ct(e.fs,r);if(o.isSymbolicLink&&e.fs.readlink){let f=await e.fs.readlink(r),d=fl.encode(f),l=await Pe(e,"blob",d),u={path:n,mode:40960,hash:l,stage:0,stat:{...Ce(),size:d.byteLength}};return{index:wt(t,u),hash:l}}let s=await e.fs.readFileBuffer(r),a=await Pe(e,"blob",s),i=o.mode!=null?ll(o.mode):33188,c={path:n,mode:i,hash:a,stage:0,stat:{...Ce(),size:s.byteLength}};return{index:wt(t,c),hash:a}}async function Qe(e,t,n,r){let o=r?.skipIgnore??!1,s=null;if(!o){s=r?._ignore??await ir(e);let c=T(t,".gitignore");try{let f=await e.fs.readFile(c);s=Un(s,f,n,c)}catch{}}let a=[],i=await e.fs.readdir(t);for(let c of i){if(n===""&&c===".git")continue;let f=T(t,c),d=n?`${n}/${c}`:c,l=await ct(e.fs,f);if(l.isSymbolicLink){if(s&&Xt(s,d,!1)==="ignored")continue;a.push(d)}else if(l.isDirectory){if(s&&Xt(s,d,!0)==="ignored")continue;let u=await Qe(e,f,d,{skipIgnore:o,_ignore:s??void 0});a.push(...u)}else if(l.isFile){if(s&&Xt(s,d,!1)==="ignored")continue;a.push(d)}}return a}function ll(e){return e>511?e:e&73?33261:33188}async function Bn(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 Bn(e,Kt(t),n))}var fl,dl,et=ye(()=>{"use strict";re();Ps();ke();ie();de();Nn();He();fl=new TextEncoder,dl=new TextDecoder});function Bo(e){return e.existsOnDisk&&e.indexHash===null}async function ul(e,t,n){let r=await Promise.all(t.map(h=>ce(e,h.treeHash))),o=new Map,s=new Set;for(let h of n.entries)h.stage===0?o.set(h.path,h):s.add(h.path);let a=e.workTree?new Set(await Qe(e,e.workTree,"",{skipIgnore:!0})):new Set,i=null,c=async()=>(i===null&&(i=e.workTree?new Set(await Qe(e,e.workTree,"")):new Set),i),f=new Set;for(let h of r)for(let p of h.keys())f.add(p);let d=new Set;for(let h of n.entries)f.has(h.path)||d.add(h.path);for(let h of a)f.has(h)||d.add(h);let l=Array.from(f).sort().concat(Array.from(d).sort()),u=(h,p)=>r[h]?.get(p),m=[];for(let h of l){let p=null,g=null,w=null,y=null,R=null;if(r.length===1){let G=u(0,h);w=G?.hash??null,R=G?.mode??null}else if(r.length===2){let G=u(0,h),j=u(1,h);g=G?.hash??null,y=G?.mode??null,w=j?.hash??null,R=j?.mode??null}else if(r.length>=3){let G=u(0,h),j=u(1,h),z=u(2,h);p=G?.hash??null,g=j?.hash??null,y=j?.mode??null,w=z?.hash??null,R=z?.mode??null}let E=o.get(h)?.hash??null,k=s.has(h)?1:0,C=a.has(h),O,x=async()=>O!==void 0?O:C?(O=!(await c()).has(h),O):(O=!1,!1),P,I=async()=>{if(P!==void 0)return P;if(!C||!e.workTree)return P=null,null;let G=T(e.workTree,h);try{P=await xn(e.fs,G)}catch{P=null}return P};m.push({path:h,baseHash:p,headHash:g,remoteHash:w,indexHash:E,indexStage:k,existsOnDisk:C,isIgnoredOnDisk:x,getWorktreeHash:I,headMode:y,remoteMode:R})}return m}function Os(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 Is(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 ml(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 hl(e,t,n){let r=[];if(n.reset)return r;for(let[o,s]of e){if(s.requirements.length===0)continue;let a=t.get(o);if(!a)continue;let i=ml(s,a);for(let c of s.requirements){if(n.allowStagedChanges&&c==="INDEX_MUST_MATCH_HEAD")continue;let f=await pl(c,a,i);if(f){r.push({path:o,error:f});break}}if(n.stopAtFirstError&&r.length>0)break}return r}async function pl(e,t,n,r){switch(e){case"INDEX_MUST_NOT_EXIST":return t.indexHash!==null?"WOULD_OVERWRITE":Bo(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 Bo(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_OVERWRITTEN":null;case"NO_UNTRACKED_REMOVED":return Bo(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_REMOVED":null}}function gl(e,t,n,r){let o=[],s=[],a=new Set(e.keys()),i=new Map;for(let c of n.entries)a.has(c.path)||o.push(c),c.stage===0&&i.set(c.path,c);for(let[c,f]of e){let d=t.get(c);if(d)switch(f.action){case"KEEP":{let l=i.get(c);l&&(o.push(l),r.reset&&r.updateWorktree&&s.push({path:c,type:"checkout",hash:l.hash,mode:l.mode}));break}case"TAKE":{let l=f.takeFrom==="head"?d.headHash:d.remoteHash,u=f.takeFrom==="head"?d.headMode:d.remoteMode,m=u?Number.parseInt(u,8):33188;o.push({path:c,mode:m,hash:l,stage:0,stat:Ce()}),r.updateWorktree&&s.push({path:c,type:"checkout",hash:l,mode:m});break}case"DELETE":{r.updateWorktree&&d.existsOnDisk&&s.push({path:c,type:"delete"});break}case"SKIP":break}}return o.sort((c,f)=>Re(c.path,f.path)||c.stage-f.stage),{newEntries:o,worktreeOps:s}}function $s(e,t){let n=t.actionHint??t.operationName,r=[];for(let{error:s,msg:a,fix:i}of wl){let c=e.filter(f=>f.error===s).map(f=>f.path).sort();if(c.length>0){let f=c.map(d=>` ${d}`).join(`
33
+ `);r.push(`${a(t.operationName)}
34
34
  ${f}
35
- ${a(n)}
35
+ ${i(n)}
36
36
  `)}}return{stdout:"",stderr:r.length>0?`${r.join("")}Aborting
37
- `:"",exitCode:t.errorExitCode}}async function Fn(e,t,n,r){let o=await dl(e,t,n),s=new Map(o.map(d=>[d.path,d])),i=new Map;for(let d of o){let l=r.mergeFn(d,r);i.set(d.path,l)}let a=await ul(i,s,r);if(a.length>0)return{success:!1,newEntries:[],worktreeOps:[],errors:a,errorOutput:Cs(a,r)};let{newEntries:c,worktreeOps:f}=hl(i,s,n,r);return{success:!0,newEntries:c,worktreeOps:f,errors:[],errorOutput:null}}async function He(e,t){if(!e.workTree)return;let n=e.workTree,r=[];for(let o of t){let s=T(n,o.path);o.type==="delete"?await ot(e.fs,s).then(()=>!0).catch(()=>!1)&&(await e.fs.rm(s),r.push(s)):o.type==="checkout"&&o.hash&&await rt(e,{path:o.path,hash:o.hash,mode:o.mode})}for(let o of r)await Nn(e.fs,Ut(o),n)}async function kn(e,t,n,r){return Fn(e,[{label:"current",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:xs,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"checkout",actionHint:"switch branches"})}async function va(e,t,n,r){return Fn(e,[{label:"HEAD",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:xs,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"merge"})}async function sn(e,t,n){return Fn(e,[{label:"target",treeHash:t}],n,{mergeFn:ks,updateWorktree:!0,reset:!0,errorExitCode:128,operationName:"reset"})}async function Ps(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:ve(n)},i=await Fn(e,[{label:"ORIG_HEAD",treeHash:t}],s,{mergeFn:ks,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.
37
+ `:"",exitCode:t.errorExitCode}}async function Wn(e,t,n,r){let o=await ul(e,t,n),s=new Map(o.map(d=>[d.path,d])),a=new Map;for(let d of o){let l=r.mergeFn(d,r);a.set(d.path,l)}let i=await hl(a,s,r);if(i.length>0)return{success:!1,newEntries:[],worktreeOps:[],errors:i,errorOutput:$s(i,r)};let{newEntries:c,worktreeOps:f}=gl(a,s,n,r);return{success:!0,newEntries:c,worktreeOps:f,errors:[],errorOutput:null}}async function Se(e,t){if(!e.workTree)return;let n=e.workTree,r=[];for(let o of t){let s=T(n,o.path);o.type==="delete"?await ct(e.fs,s).then(()=>!0).catch(()=>!1)&&(await e.fs.rm(s),r.push(s)):o.type==="checkout"&&o.hash&&await it(e,{path:o.path,hash:o.hash,mode:o.mode})}for(let o of r)await Bn(e.fs,Kt(o),n)}async function Pn(e,t,n,r){return Wn(e,[{label:"current",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:Is,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"checkout",actionHint:"switch branches"})}async function Ga(e,t,n,r){return Wn(e,[{label:"HEAD",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:Is,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"merge"})}async function fn(e,t,n){return Wn(e,[{label:"target",treeHash:t}],n,{mergeFn:Os,updateWorktree:!0,reset:!0,errorExitCode:128,operationName:"reset"})}async function Ts(e,t,n,r){let o=new Set;for(let i of n.entries)i.stage>0&&o.add(i.path);let s={version:n.version,entries:Ae(n)},a=await Wn(e,[{label:"ORIG_HEAD",treeHash:t}],s,{mergeFn:Os,updateWorktree:!0,reset:!1,errorExitCode:128,operationName:"merge",stopAtFirstError:!0,strippedConflictPaths:o});if(!a.success){let i=r??"HEAD",c=[];for(let f of a.errors)f.error==="NOT_UPTODATE_FILE"?c.push(`error: Entry '${f.path}' not uptodate. Cannot merge.
38
38
  `):f.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"&&c.push(`error: Untracked working tree file '${f.path}' would be overwritten by merge.
39
- `);return c.length>0&&(i.errorOutput=_(c.join("")+`fatal: Could not reset index file to revision '${a}'.
40
- `,128)),i}if(e.workTree&&o.size>0){let a=await fe(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 pl,Vt=ke(()=>{"use strict";ne();xe();ue();Gn();Te();Je();pl=[{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 I(e){return{stdout:"",stderr:`fatal: ${e}
41
- `,exitCode:128}}function _(e,t=1){return{stdout:"",stderr:e,exitCode:t}}async function U(e,t,n){let r=await jn(e,t);return r?n?{...r,...n}:r:gl}function S(e){return typeof e=="object"&&e!==null&&"exitCode"in e}function qe(e){return e.workTree?null:wl}async function Ke(e){let t=await X(e);return t||I("your current branch does not have any commits yet")}function on(e,t,n=`fatal: Exiting because of an unresolved conflict.
42
- `){return Pt(e)?_(`error: ${t} is not possible because you have unmerged files.
39
+ `);return c.length>0&&(a.errorOutput=N(c.join("")+`fatal: Could not reset index file to revision '${i}'.
40
+ `,128)),a}if(e.workTree&&o.size>0){let i=await ce(e,t),c=new Set(a.newEntries.map(f=>f.path));for(let f of o)!i.has(f)&&!c.has(f)&&a.worktreeOps.push({path:f,type:"delete"})}return a}var wl,Jt=ye(()=>{"use strict";re();ke();de();Nn();He();et();wl=[{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 $(e){return{stdout:"",stderr:`fatal: ${e}
41
+ `,exitCode:128}}function N(e,t=1){return{stdout:"",stderr:e,exitCode:t}}async function B(e,t,n){let r=await _n(e,t);return r?n?{...r,...n}:r:bl}function v(e){return typeof e=="object"&&e!==null&&"exitCode"in e}function Ke(e){return e.workTree?null:yl}async function ze(e){let t=await X(e);return t||$("your current branch does not have any commits yet")}function dn(e,t,n=`fatal: Exiting because of an unresolved conflict.
42
+ `){return It(e)?N(`error: ${t} is not possible because you have unmerged files.
43
43
  hint: Fix them up in the work tree, and then use 'git add/rm <file>'
44
44
  hint: as appropriate to mark resolution and make a commit.
45
- `+n,128):null}async function $t(e,t,n){let r=await Be(e,t);return r||I(n??`bad revision '${t}'`)}async function Ie(e,t,n){let r=await Be(e,t);if(!r)return I(n??`bad revision '${t}'`);try{let o=await _e(e,r),s=await M(e,o);return{hash:o,commit:s}}catch{return I(n??`bad revision '${t}'`)}}async function Ve(e,t){try{return await br(e,t)}catch(n){return I(n.message)}}async function Yt(e,t){try{return await ns(e,t)}catch(n){return I(n.message)}}function sr(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}function Ce(e,t){return e<t?-1:e>t?1:0}function ct(e,t){return e.workTree?st(e.workTree,t):""}function z(e){return e.slice(0,7)}function ie(e){let t=e.indexOf(`
46
- `);return t===-1?e:e.slice(0,t)}function Lt(e){return I(`ambiguous argument '${e}': unknown revision or path not in the working tree.
45
+ `+n,128):null}async function Tt(e,t,n){let r=await We(e,t);return r||$(n??`bad revision '${t}'`)}async function Ie(e,t,n){let r=await We(e,t);if(!r)return $(n??`bad revision '${t}'`);try{let o=await _e(e,r),s=await M(e,o);return{hash:o,commit:s}}catch{return $(n??`bad revision '${t}'`)}}async function Ye(e,t){try{return await Cr(e,t)}catch(n){return $(n.message)}}async function Qt(e,t){try{return await ds(e,t)}catch(n){return $(n.message)}}function ar(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}function Re(e,t){return e<t?-1:e>t?1:0}function lt(e,t){return e.workTree?at(e.workTree,t):""}function V(e){return e.slice(0,7)}function ae(e){let t=e.indexOf(`
46
+ `);return t===-1?e:e.slice(0,t)}function Ut(e){return $(`ambiguous argument '${e}': unknown revision or path not in the working tree.
47
47
  Use '--' to separate paths from revisions, like this:
48
- 'git <command> [<revision>...] -- [<file>...]'`)}function It(e,t,n,r=!1){return`[${e}${r?" (root-commit)":""} ${z(t)}] ${ie(n)}`}async function xn(e,t,n){if(!await N(e,n.operationRef))return n.noOpError;let o=await N(e,"ORIG_HEAD")??await X(e);if(!o)return I(`There is no ${n.operationName} to abort (ORIG_HEAD missing).`);let s=await X(e),i=await M(e,o),a=await q(e),c=await Ps(e,i.tree,a,n.origHeadAsTargetRev?o:void 0);if(!c.success)return c.errorOutput;if(await gn(e,o),await re(e,{version:2,entries:c.newEntries}),await He(e,c.worktreeOps),s&&((await Z(e))?.type==="symbolic"||s!==o)){let l=n.origHeadAsTargetRev?o:"HEAD";await te(e,t,"HEAD",s,o,`reset: moving to ${l}`)}return await n.clearState(e),{stdout:"",stderr:"",exitCode:0}}async function ft(e,t,n,r,o,s){let i=qt({type:"commit",tree:t,parents:n,author:r,committer:o,message:s}),a=await Re(e,"commit",i);return await gn(e,a),a}function Xt(e){return e.split(`
48
+ 'git <command> [<revision>...] -- [<file>...]'`)}function Ht(e,t,n,r=!1){return`[${e}${r?" (root-commit)":""} ${V(t)}] ${ae(n)}`}async function On(e,t,n){if(!await U(e,n.operationRef))return n.noOpError;let o=await U(e,"ORIG_HEAD")??await X(e);if(!o)return $(`There is no ${n.operationName} to abort (ORIG_HEAD missing).`);let s=await X(e),a=await M(e,o),i=await K(e),c=await Ts(e,a.tree,i,n.origHeadAsTargetRev?o:void 0);if(!c.success)return c.errorOutput;if(await En(e,o),await se(e,{version:2,entries:c.newEntries}),await Se(e,c.worktreeOps),s&&((await Z(e))?.type==="symbolic"||s!==o)){let l=n.origHeadAsTargetRev?o:"HEAD";await ne(e,t,"HEAD",s,o,`reset: moving to ${l}`)}return await n.clearState(e),{stdout:"",stderr:"",exitCode:0}}async function ut(e,t,n,r,o,s){let a=Yt({type:"commit",tree:t,parents:n,author:r,committer:o,message:s}),i=await Pe(e,"commit",a);return await En(e,i),i}function en(e){return e.split(`
49
49
  `).filter(t=>!t.startsWith("#")).map(t=>t.trimEnd()).join(`
50
50
  `).replace(/\n+$/,`
51
- `)}function Ot(e){return e.endsWith(`
51
+ `)}function St(e){return e.endsWith(`
52
52
  `)?e:`${e}
53
- `}var gl,wl,ne=ke(()=>{"use strict";ln();xe();oe();en();ue();Ge();me();wn();nn();Vt();gl=I("not a git repository (or any of the parent directories): .git"),wl=I("this operation must be run in a work tree")});var ja={};od(ja,{CommitHeap:()=>Bn,countAheadBehind:()=>Fo,findOrphanedCommits:()=>Uo,walkCommits:()=>Tt});async function*Tt(e,t,n){let r=await Cl(e,n?.exclude),o=new Set(r),s=new Bn,i=Array.isArray(t)?t:[t];for(let a of i)o.has(a)||s.push(await Os(e,a));for(;s.size>0;){let a=s.pop();if(!o.has(a.hash)){o.add(a.hash),yield a;for(let c of a.commit.parents)o.has(c)||s.push(await Os(e,c))}}}async function Fo(e,t,n){if(t===n)return{ahead:0,behind:0};let r=new Set;for await(let a of Tt(e,t))r.add(a.hash);let o=new Set;for await(let a of Tt(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 Uo(e,t,n){let r=n?.maxCount??25,o=await we(e,"refs"),s=[];for(let d of o)try{s.push(await _e(e,d.hash))}catch{}n?.targetHash&&s.push(n.targetHash);let i=new Set;if(s.length>0)for await(let d of Tt(e,s))i.add(d.hash);if(i.has(t))return[];let a=[],c=new Set,f=new Bn;for(f.push(await Os(e,t));f.size>0&&a.length<r;){let d=f.pop();if(!c.has(d.hash)&&(c.add(d.hash),!i.has(d.hash))){a.push({hash:d.hash,subject:ie(d.commit.message)});for(let l of d.commit.parents)c.has(l)||f.push(await Os(e,l))}}return a}async function Cl(e,t){if(!t||t.length===0)return new Set;let n=new Set;for await(let r of Tt(e,t))n.add(r.hash);return n}async function Os(e,t){return{hash:t,commit:await M(e,t)}}var Bn,Wn=ke(()=>{"use strict";ne();oe();me();Bn=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 uo=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 Hi(e){return new uo({_kind:"arg",type:e,required:!0})}function Ai(){return Hi("string")}function vi(){return Hi("number")}var Jr=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 mo=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})}};function Si(e){return new mo({_kind:"option",type:e})}function Di(){return Si("string")}function Mi(){return Si("number")}var Q={string:Di,number:Mi};function H(){return new Jr}var B={string:Ai,number:vi};function id(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}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=`Unknown command "${e.path}".`;return e.suggestions.length>0&&(t+=` Did you mean ${e.suggestions.map(n=>`"${n}"`).join(" or ")}?`),t}}}function ho(e){return e.map(id).join(`
54
- `)}function ad(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 Qr(e,t,n=3){return t.map(o=>({candidate:o,distance:ad(e,o)})).filter(o=>o.distance<=n&&o.distance>0).sort((o,s)=>o.distance-s.distance).slice(0,2).map(o=>o.candidate)}function ji(e,t,n,r){let o=[],s=new Map,i=new Map;for(let[u,m]of Object.entries(e)){let h=gr(u);s.set(h,{key:u,def:m}),m.short&&i.set(m.short,{key:u,def:m})}let a={},c=[],f=[],d=0;for(;d<n.length;){let u=n[d];if(u==="--"){for(d++;d<n.length;)f.push(n[d]),d++;break}if(u.startsWith("--")){let m=u.indexOf("="),h,p;m!==-1?(h=u.slice(2,m),p=u.slice(m+1)):h=u.slice(2);let g=s.get(h);if(!g){if(h.startsWith("no-")){let E=s.get(h.slice(3));if(E&&E.def._kind==="flag"){a[E.key]=E.def.counted?0:!1,d++;continue}}let b=[...s.keys()];o.push({type:"unknown_option",name:`--${h}`,suggestions:Qr(h,b).map(E=>`--${E}`)}),d++;continue}if(g.def._kind==="flag"){g.def.counted?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0,d++;continue}let w=p??n[++d];if(w===void 0){o.push({type:"missing_value",name:g.key}),d++;continue}let k=pr(w,g.def.type,g.key,o);k!==void 0&&(a[g.key]=k),d++;continue}if(u.startsWith("-")&&u.length>1){let m=u.slice(1);for(let h=0;h<m.length;h++){let p=m[h],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=m.slice(h+1),k=w.length>0?w:n[++d];if(k===void 0){o.push({type:"missing_value",name:g.key});break}let b=pr(k,g.def.type,g.key,o);b!==void 0&&(a[g.key]=b);break}d++;continue}c.push(u),d++}let l=0;for(let u=0;u<t.length;u++){let m=t[u],h=m.name??`arg${u}`;if(m.variadic){let p=c.slice(l);p.length>0?a[h]=p.map(g=>pr(g,m.type,h,o)):m.required?o.push({type:"missing_required",name:h,kind:"arg"}):m.default!==void 0?a[h]=m.default:a[h]=[],l=c.length}else{let p=c[l];p!==void 0?(a[h]=pr(p,m.type,h,o),l++):m.required?o.push({type:"missing_required",name:h,kind:"arg"}):m.default!==void 0&&(a[h]=m.default)}}if(l<c.length)for(let u=l;u<c.length;u++)o.push({type:"unexpected_positional",value:c[u],maxPositionals:t.length});for(let[u,m]of Object.entries(e))if(a[u]===void 0){if(m._kind==="flag")a[u]=m.default??(m.counted?0:!1);else if(m._kind==="option"){let h=m;if(h.env&&r?.[h.env]!==void 0){let p=pr(r[h.env],h.type,u,o);p!==void 0&&(a[u]=p)}a[u]===void 0&&(h.required&&h.default===void 0?o.push({type:"missing_required",name:u,kind:"option"}):h.default!==void 0&&(a[u]=h.default))}}return o.length>0?{ok:!1,errors:o}:{ok:!0,args:a,passthrough:f}}function pr(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 gr(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function po(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 d=" ".repeat(a-c.length+2);t.push(` ${c}${d}${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",d=c.variadic?`${f}...`:f,l=[];c.description&&l.push(c.description),c.required&&l.push("(required)"),c.default!==void 0&&l.push(`(default: ${JSON.stringify(c.default)})`),i.push([d,l.join(" ")])}let a=Math.max(...i.map(([c])=>c.length));for(let[c,f]of i)if(f){let d=" ".repeat(a-c.length+2);t.push(` ${c}${d}${f}`)}else t.push(` ${c}`);t.push("")}let s=cd(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(`
55
- `)}function cd(e,t){let n=Object.entries(e);if(n.length===0)return[];let r=[];for(let[i,a]of n){let c=gr(i);if(a._kind==="flag"){let f=a,d=[];f.short&&d.push(`-${f.short},`),d.push(`--${c}`);let l=[];f.description&&l.push(f.description),f.counted&&l.push("(counted)"),f.default!==void 0&&l.push(`(default: ${f.default})`),r.push([d.join(" "),l.join(" ")])}else{let f=a,d=[];f.short&&d.push(`-${f.short},`),d.push(`--${c} <${f.type}>`);let l=[];f.description&&l.push(f.description),f.required&&l.push("(required)"),f.default!==void 0&&l.push(`(default: ${JSON.stringify(f.default)})`),f.env&&l.push(`[env: ${f.env}]`),r.push([d.join(" "),l.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 Gi(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r._def;return t}function Li(e){return e?e.map(t=>t._def):[]}var es=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,Gi(n.options),Li(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=gr(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(fd(t))return{stdout:po(this),stderr:"",exitCode:0};if(this.handler){let s=this.transformArgs?this.transformArgs([...t]):[...t],i=ji(this.allOptions,this.args,s,r);if(!i.ok)return{stdout:"",stderr:ho(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}}}if(o&&!o.startsWith("-")){let s=Qr(o,[...this.children.keys()]);return{stdout:"",stderr:ho([{type:"unknown_command",path:`${this.fullPath} ${o}`,suggestions:s}]),exitCode:1}}return{stdout:po(this),stderr:"",exitCode:0}}};function go(e,t){return new es(e,t.description,Gi(t.options),Li(t.args),t.examples??[],t.handler,t.transformArgs)}function fd(e){return e.some(t=>t==="--help"||t==="-h")}ne();Es();xe();ue();ws();var $s=1,Lo=2,Rs=4,_o=8,Ar=16,Da=new Set(["*","?","[","\\"]),yl={glob:$s,literal:Lo,icase:Rs,top:_o,exclude:Ar};function Un(e){for(let t=0;t<e.length;t++)if(Da.has(e[t]))return!0;return!1}function El(e){for(let t=0;t<e.length;t++)if(Da.has(e[t]))return t;return e.length}function Sa(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 Le(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 d of f.split(",")){let l=yl[d.trim()];l!==void 0&&(n|=l)}}}else r.startsWith(":/")?(n|=_o,r=r.slice(2)):(r.startsWith(":!")||r.startsWith(":^"))&&(n|=Ar,r=r.slice(2));n&Lo&&n&$s&&(n&=~$s);let o;n&_o||t===""?o=Sa(r):o=Sa(`${t}/${r}`);let s=!!(n&Lo),i=s?!1:Un(o),a=s?o.length:El(o);return{original:e,pattern:o,magic:n,hasWildcard:i,nowildcardLen:a}}function Is(e,t){let{pattern:n,hasWildcard:r,magic:o,nowildcardLen:s}=e;if(n==="")return!0;if(!r){let a=!!(o&Rs),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&Rs){if(a.toLowerCase()!==c.toLowerCase())return!1}else if(a!==c)return!1}let i=0;return o&$s&&(i|=2),o&Rs&&(i|=1),Ln(n,t,i)===0}function ye(e,t){let n=!1,r=!1;for(let o of e)o.magic&Ar?Is(o,t)&&(r=!0):Is(o,t)&&(n=!0);return n&&!r}Je();function Ma(e,t){e.command("add",{description:"Add file contents to the index",args:[B.string().name("paths").describe("Pathspec of files to add").optional().variadic()],options:{all:H().alias("A").describe("Add changes from all tracked and untracked files"),force:H().alias("f").describe("Allow adding otherwise ignored files"),update:H().alias("u").describe("Update tracked files"),"dry-run":H().alias("n").describe("Don't actually add the file(s)")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=qe(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 q(s);return p=await No(s,p,a,"",c),n["dry-run"]||await re(s,p),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}if(f.length===0)return{stdout:"",stderr:`Nothing specified, nothing added.
56
- Maybe you wanted to say 'git add .'?`,exitCode:0};let d=await q(s),l=[],u=[];for(let p of f)Un(p)?u.push(p):l.push(p);let m=[];for(let p of l){let g=xt(r.cwd,p),w=st(a,g);if((w==="."||w==="")&&(w=""),w.startsWith(".."))return I(`'${p}' is outside repository at '${a}'`);if(await r.fs.exists(g)){if(!n.force&&w!==""){let E=d.entries.some(P=>P.path===w||P.path.startsWith(`${w}/`)),x=await xl(s,a,w,E);if(x){E&&((await r.fs.stat(g)).isDirectory?d=await No(s,d,g,w,c):d=(await zt(s,d,w)).index),m.push(x);continue}}if((await r.fs.stat(g)).isDirectory)d=await No(s,d,g,w,c);else{let E=d.entries.find(P=>P.path===w&&P.stage===0)?.hash,x=await zt(s,d,w);d=x.index,c.actions&&x.hash!==E&&c.actions.push(`add '${w}'
57
- `)}}else if(d.entries.some(E=>E.path===w||E.path.startsWith(`${w}/`))){if(c.actions)for(let E of d.entries)(E.path===w||E.path.startsWith(`${w}/`))&&c.actions.push(`remove '${E.path}'
58
- `);d={...d,entries:d.entries.filter(E=>E.path!==w&&!E.path.startsWith(`${w}/`))}}else return I(`pathspec '${p}' did not match any files`)}if(m.length>0)return n["dry-run"]||await re(s,d),_(`The following paths are ignored by one of your .gitignore files:
53
+ `}var bl,yl,re=ye(()=>{"use strict";pn();ke();ie();sn();de();je();le();kn();an();Jt();bl=$("not a git repository (or any of the parent directories): .git"),yl=$("this operation must be run in a work tree")});var Fa={};id(Fa,{CommitHeap:()=>Kn,countAheadBehind:()=>zo,findOrphanedCommits:()=>Vo,walkCommits:()=>vt});async function*vt(e,t,n){let r=await Pl(e,n?.exclude),o=new Set(r),s=new Kn,a=Array.isArray(t)?t:[t];for(let i of a)o.has(i)||s.push(await As(e,i));for(;s.size>0;){let i=s.pop();if(!o.has(i.hash)){o.add(i.hash),yield i;for(let c of i.commit.parents)o.has(c)||s.push(await As(e,c))}}}async function zo(e,t,n){if(t===n)return{ahead:0,behind:0};let r=new Set;for await(let i of vt(e,t))r.add(i.hash);let o=new Set;for await(let i of vt(e,n))o.add(i.hash);let s=0;for(let i of r)o.has(i)||s++;let a=0;for(let i of o)r.has(i)||a++;return{ahead:s,behind:a}}async function Vo(e,t,n){let r=n?.maxCount??25,o=await pe(e,"refs"),s=[];for(let d of o)try{s.push(await _e(e,d.hash))}catch{}n?.targetHash&&s.push(n.targetHash);let a=new Set;if(s.length>0)for await(let d of vt(e,s))a.add(d.hash);if(a.has(t))return[];let i=[],c=new Set,f=new Kn;for(f.push(await As(e,t));f.size>0&&i.length<r;){let d=f.pop();if(!c.has(d.hash)&&(c.add(d.hash),!a.has(d.hash))){i.push({hash:d.hash,subject:ae(d.commit.message)});for(let l of d.commit.parents)c.has(l)||f.push(await As(e,l))}}return i}async function Pl(e,t){if(!t||t.length===0)return new Set;let n=new Set;for await(let r of vt(e,t))n.add(r.hash);return n}async function As(e,t){return{hash:t,commit:await M(e,t)}}var Kn,zn=ye(()=>{"use strict";re();ie();le();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,a=2*t+2;if(s<r&&this.higher(n[s],n[o])&&(o=s),a<r&&this.higher(n[a],n[o])&&(o=a),o===t)break;[n[t],n[o]]=[n[o],n[t]],t=o}}}});var po=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 Gi(e){return new po({_kind:"arg",type:e,required:!0})}function Li(){return Gi("string")}function _i(){return Gi("number")}var is=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 go=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})}};function Ni(e){return new go({_kind:"option",type:e})}function Fi(){return Ni("string")}function Ui(){return Ni("number")}var ee={string:Fi,number:Ui};function H(){return new is}var q={string:Li,number:_i};function ad(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}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=`Unknown command "${e.path}".`;return e.suggestions.length>0&&(t+=` Did you mean ${e.suggestions.map(n=>`"${n}"`).join(" or ")}?`),t}}}function wo(e){return e.map(ad).join(`
54
+ `)}function cd(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 a=1;a<=r;a++){let i=e[s-1]===t[a-1]?0:1;o[s*(r+1)+a]=Math.min(o[(s-1)*(r+1)+a]+1,o[s*(r+1)+(a-1)]+1,o[(s-1)*(r+1)+(a-1)]+i)}return o[n*(r+1)+r]}function as(e,t,n=3){return t.map(o=>({candidate:o,distance:cd(e,o)})).filter(o=>o.distance<=n&&o.distance>0).sort((o,s)=>o.distance-s.distance).slice(0,2).map(o=>o.candidate)}function Bi(e,t,n,r){let o=[],s=new Map,a=new Map;for(let[u,m]of Object.entries(e)){let h=Rr(u);s.set(h,{key:u,def:m}),m.short&&a.set(m.short,{key:u,def:m})}let i={},c=[],f=[],d=0;for(;d<n.length;){let u=n[d];if(u==="--"){for(d++;d<n.length;)f.push(n[d]),d++;break}if(u.startsWith("--")){let m=u.indexOf("="),h,p;m!==-1?(h=u.slice(2,m),p=u.slice(m+1)):h=u.slice(2);let g=s.get(h);if(!g){if(h.startsWith("no-")){let b=s.get(h.slice(3));if(b&&b.def._kind==="flag"){i[b.key]=b.def.counted?0:!1,d++;continue}}let R=[...s.keys()];o.push({type:"unknown_option",name:`--${h}`,suggestions:as(h,R).map(b=>`--${b}`)}),d++;continue}if(g.def._kind==="flag"){g.def.counted?i[g.key]=(i[g.key]||0)+1:i[g.key]=!0,d++;continue}let w=p??n[++d];if(w===void 0){o.push({type:"missing_value",name:g.key}),d++;continue}let y=kr(w,g.def.type,g.key,o);y!==void 0&&(i[g.key]=y),d++;continue}if(u.startsWith("-")&&u.length>1){let m=u.slice(1);for(let h=0;h<m.length;h++){let p=m[h],g=a.get(p);if(!g){let b=[];s.has(p)&&b.push(`--${p}`),o.push({type:"unknown_option",name:`-${p}`,suggestions:b});continue}if(g.def._kind==="flag"){g.def.counted?i[g.key]=(i[g.key]||0)+1:i[g.key]=!0;continue}let w=m.slice(h+1),y=w.length>0?w:n[++d];if(y===void 0){o.push({type:"missing_value",name:g.key});break}let R=kr(y,g.def.type,g.key,o);R!==void 0&&(i[g.key]=R);break}d++;continue}c.push(u),d++}let l=0;for(let u=0;u<t.length;u++){let m=t[u],h=m.name??`arg${u}`;if(m.variadic){let p=c.slice(l);p.length>0?i[h]=p.map(g=>kr(g,m.type,h,o)):m.required?o.push({type:"missing_required",name:h,kind:"arg"}):m.default!==void 0?i[h]=m.default:i[h]=[],l=c.length}else{let p=c[l];p!==void 0?(i[h]=kr(p,m.type,h,o),l++):m.required?o.push({type:"missing_required",name:h,kind:"arg"}):m.default!==void 0&&(i[h]=m.default)}}if(l<c.length)for(let u=l;u<c.length;u++)o.push({type:"unexpected_positional",value:c[u],maxPositionals:t.length});for(let[u,m]of Object.entries(e))if(i[u]===void 0){if(m._kind==="flag")i[u]=m.default??(m.counted?0:!1);else if(m._kind==="option"){let h=m;if(h.env&&r?.[h.env]!==void 0){let p=kr(r[h.env],h.type,u,o);p!==void 0&&(i[u]=p)}i[u]===void 0&&(h.required&&h.default===void 0?o.push({type:"missing_required",name:u,kind:"option"}):h.default!==void 0&&(i[u]=h.default))}}return o.length>0?{ok:!1,errors:o}:{ok:!0,args:i,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 Rr(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function bo(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 a of o){let i=a.name??"arg",c=a.variadic?`${i}...`:i;r.push(a.required?`<${c}>`:`[${c}]`)}if(t.push("Usage:"),t.push(` ${r.join(" ")}`),t.push(""),n){t.push("Commands:");let a=[];for(let[c,f]of e.children)a.push([c,f.description||""]);let i=Math.max(...a.map(([c])=>c.length));for(let[c,f]of a)if(f){let d=" ".repeat(i-c.length+2);t.push(` ${c}${d}${f}`)}else t.push(` ${c}`);t.push("")}if(o.length>0){t.push("Arguments:");let a=[];for(let c of o){let f=c.name??"arg",d=c.variadic?`${f}...`:f,l=[];c.description&&l.push(c.description),c.required&&l.push("(required)"),c.default!==void 0&&l.push(`(default: ${JSON.stringify(c.default)})`),a.push([d,l.join(" ")])}let i=Math.max(...a.map(([c])=>c.length));for(let[c,f]of a)if(f){let d=" ".repeat(i-c.length+2);t.push(` ${c}${d}${f}`)}else t.push(` ${c}`);t.push("")}let s=fd(e.options);if(s.length>0&&(t.push("Options:"),t.push(...s),t.push("")),e.examples.length>0){t.push("Examples:");for(let a of e.examples)t.push(` ${a}`);t.push("")}return t.join(`
55
+ `)}function fd(e,t){let n=Object.entries(e);if(n.length===0)return[];let r=[];for(let[a,i]of n){let c=Rr(a);if(i._kind==="flag"){let f=i,d=[];f.short&&d.push(`-${f.short},`),d.push(`--${c}`);let l=[];f.description&&l.push(f.description),f.counted&&l.push("(counted)"),f.default!==void 0&&l.push(`(default: ${f.default})`),r.push([d.join(" "),l.join(" ")])}else{let f=i,d=[];f.short&&d.push(`-${f.short},`),d.push(`--${c} <${f.type}>`);let l=[];f.description&&l.push(f.description),f.required&&l.push("(required)"),f.default!==void 0&&l.push(`(default: ${JSON.stringify(f.default)})`),f.env&&l.push(`[env: ${f.env}]`),r.push([d.join(" "),l.join(" ")])}}let o=Math.max(...r.map(([a])=>a.length)),s=[];t&&s.push(t);for(let[a,i]of r)if(i){let c=" ".repeat(o-a.length+2);s.push(` ${a}${c}${i}`)}else s.push(` ${a}`);return s}function Wi(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r._def;return t}function qi(e){return e?e.map(t=>t._def):[]}var cs=class e{name;description;options;args;examples;handler;transformArgs;children=new Map;parent;constructor(t,n,r,o,s,a,i){this.name=t,this.description=n,this.options=r,this.args=o,this.examples=s,this.handler=a,this.transformArgs=i}command(t,n){let r=new e(t,n.description,Wi(n.options),qi(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,a]of Object.entries(r)){let i=o[s],c=Rr(s);if(a._kind==="flag")if(a.counted&&typeof i=="number"&&i>0)for(let f=0;f<i;f++)n.push(`--${c}`);else i===!0?n.push(`--${c}`):i===!1&&a.default===!0&&n.push(`--no-${c}`);else a._kind==="option"&&i!==void 0&&n.push(`--${c}`,String(i))}for(let s of this.args){let a=s.name??"arg",i=o[a];if(i!==void 0)if(s.variadic&&Array.isArray(i))for(let c of i)n.push(String(c));else n.push(String(i))}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,a]of Object.entries(o))if(r[s]===void 0){if(a._kind==="flag")r[s]=a.default??(a.counted?0:!1);else if(a._kind==="option"){if(a.default!==void 0)r[s]=a.default;else if(a.required)return{stdout:"",stderr:`Missing required option "${s}"`,exitCode:1}}}for(let s of this.args){let a=s.name??"arg";if(r[a]===void 0){if(s.default!==void 0)r[a]=s.default;else if(s.required)return{stdout:"",stderr:`Missing required arg "${a}"`,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(dd(t))return{stdout:bo(this),stderr:"",exitCode:0};if(this.handler){let s=this.transformArgs?this.transformArgs([...t]):[...t],a=Bi(this.allOptions,this.args,s,r);if(!a.ok)return{stdout:"",stderr:wo(a.errors),exitCode:1};try{return await this.handler(a.args,n,{passthrough:a.passthrough})}catch(i){return{stdout:"",stderr:i instanceof Error?i.message:String(i),exitCode:1}}}if(o&&!o.startsWith("-")){let s=as(o,[...this.children.keys()]);return{stdout:"",stderr:wo([{type:"unknown_command",path:`${this.fullPath} ${o}`,suggestions:s}]),exitCode:1}}return{stdout:bo(this),stderr:"",exitCode:0}}};function yo(e,t){return new cs(e,t.description,Wi(t.options),qi(t.args),t.examples??[],t.handler,t.transformArgs)}function dd(e){return e.some(t=>t==="--help"||t==="-h")}re();Ps();ke();de();Rs();var Ss=1,Wo=2,Hs=4,qo=8,_r=16,_a=new Set(["*","?","[","\\"]),kl={glob:Ss,literal:Wo,icase:Hs,top:qo,exclude:_r};function qn(e){for(let t=0;t<e.length;t++)if(_a.has(e[t]))return!0;return!1}function Rl(e){for(let t=0;t<e.length;t++)if(_a.has(e[t]))return t;return e.length}function La(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 Ge(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 d of f.split(",")){let l=kl[d.trim()];l!==void 0&&(n|=l)}}}else r.startsWith(":/")?(n|=qo,r=r.slice(2)):(r.startsWith(":!")||r.startsWith(":^"))&&(n|=_r,r=r.slice(2));n&Wo&&n&Ss&&(n&=~Ss);let o;n&qo||t===""?o=La(r):o=La(`${t}/${r}`);let s=!!(n&Wo),a=s?!1:qn(o),i=s?o.length:Rl(o);return{original:e,pattern:o,magic:n,hasWildcard:a,nowildcardLen:i}}function vs(e,t){let{pattern:n,hasWildcard:r,magic:o,nowildcardLen:s}=e;if(n==="")return!0;if(!r){let i=!!(o&Hs),c=i?n.toLowerCase():n,f=i?t.toLowerCase():t;return!!(c===f||f.startsWith(c)&&f[c.length]==="/"||c.endsWith("/")&&f.startsWith(c))}if(s>0){let i=n.slice(0,s),c=t.slice(0,s);if(o&Hs){if(i.toLowerCase()!==c.toLowerCase())return!1}else if(i!==c)return!1}let a=0;return o&Ss&&(a|=2),o&Hs&&(a|=1),Fn(n,t,a)===0}function be(e,t){let n=!1,r=!1;for(let o of e)o.magic&_r?vs(o,t)&&(r=!0):vs(o,t)&&(n=!0);return n&&!r}et();function Na(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:H().alias("A").describe("Add changes from all tracked and untracked files"),force:H().alias("f").describe("Allow adding otherwise ignored files"),update:H().alias("u").describe("Update tracked files"),"dry-run":H().alias("n").describe("Don't actually add the file(s)")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=Ke(s);if(a)return a;let i=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 K(s);return p=await Ko(s,p,i,"",c),n["dry-run"]||await se(s,p),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}if(f.length===0)return{stdout:"",stderr:`Nothing specified, nothing added.
56
+ Maybe you wanted to say 'git add .'?`,exitCode:0};let d=await K(s),l=[],u=[];for(let p of f)qn(p)?u.push(p):l.push(p);let m=[];for(let p of l){let g=Pt(r.cwd,p),w=at(i,g);if((w==="."||w==="")&&(w=""),w.startsWith(".."))return $(`'${p}' is outside repository at '${i}'`);if(await r.fs.exists(g)){if(!n.force&&w!==""){let b=d.entries.some(k=>k.path===w||k.path.startsWith(`${w}/`)),E=await Cl(s,i,w,b);if(E){b&&((await r.fs.stat(g)).isDirectory?d=await Ko(s,d,g,w,c):d=(await Zt(s,d,w)).index),m.push(E);continue}}if((await r.fs.stat(g)).isDirectory)d=await Ko(s,d,g,w,c);else{let b=d.entries.find(k=>k.path===w&&k.stage===0)?.hash,E=await Zt(s,d,w);d=E.index,c.actions&&E.hash!==b&&c.actions.push(`add '${w}'
57
+ `)}}else if(d.entries.some(b=>b.path===w||b.path.startsWith(`${w}/`))){if(c.actions)for(let b of d.entries)(b.path===w||b.path.startsWith(`${w}/`))&&c.actions.push(`remove '${b.path}'
58
+ `);d={...d,entries:d.entries.filter(b=>b.path!==w&&!b.path.startsWith(`${w}/`))}}else return $(`pathspec '${p}' did not match any files`)}if(m.length>0)return n["dry-run"]||await se(s,d),N(`The following paths are ignored by one of your .gitignore files:
59
59
  ${m.join(`
60
60
  `)}
61
61
  hint: Use -f if you really want to add them.
62
62
  hint: Disable this message with "git config set advice.addIgnoredFile false"
63
- `);if(u.length>0){let p=await kl(s,r.cwd,d,u,c);if(p.error)return p.error;d=p.index}return n["dry-run"]||await re(s,d),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}})}async function kl(e,t,n,r,o){let s=e.workTree,i=ct(e,t),a=r.map(l=>Le(l,i)),c=new Array(a.length).fill(!1),f=l=>{for(let u=0;u<a.length;u++)a[u].hasWildcard&&Is(a[u],l)&&(c[u]=!0)},d=[];for(let l of n.entries){if(l.stage>0||!ye(a,l.path))continue;f(l.path);let u=T(s,l.path);if(await e.fs.exists(u)){let m=await zt(e,n,l.path);n=m.index,o?.actions&&m.hash!==l.hash&&o.actions.push(`add '${l.path}'
63
+ `);if(u.length>0){let p=await xl(s,r.cwd,d,u,c);if(p.error)return p.error;d=p.index}return n["dry-run"]||await se(s,d),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}})}async function xl(e,t,n,r,o){let s=e.workTree,a=lt(e,t),i=r.map(l=>Ge(l,a)),c=new Array(i.length).fill(!1),f=l=>{for(let u=0;u<i.length;u++)i[u].hasWildcard&&vs(i[u],l)&&(c[u]=!0)},d=[];for(let l of n.entries){if(l.stage>0||!be(i,l.path))continue;f(l.path);let u=T(s,l.path);if(await e.fs.exists(u)){let m=await Zt(e,n,l.path);n=m.index,o?.actions&&m.hash!==l.hash&&o.actions.push(`add '${l.path}'
64
64
  `)}else o?.actions&&o.actions.push(`remove '${l.path}'
65
- `),d.push(l.path)}for(let l of d)n=nt(n,l);if(!o?.updateOnly){let l=new Set(n.entries.map(m=>m.path)),u=await Ze(e,s,"",{skipIgnore:o?.skipIgnore});for(let m of u){if(l.has(m)||!ye(a,m))continue;f(m),o?.actions&&o.actions.push(`add '${m}'
66
- `),n=(await zt(e,n,m)).index}}for(let l=0;l<a.length;l++){let u=a[l];if(!c[l]&&!(u.magic&Ar))return{index:n,error:I(`pathspec '${u.original}' did not match any files`)}}return{index:n}}async function No(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 d=T(i,f.path);if(await e.fs.exists(d)){let l=f.stage>0,u=await zt(e,t,f.path);t=u.index,o?.actions&&(l||u.hash!==f.hash)&&o.actions.push(`add '${f.path}'
65
+ `),d.push(l.path)}for(let l of d)n=ot(n,l);if(!o?.updateOnly){let l=new Set(n.entries.map(m=>m.path)),u=await Qe(e,s,"",{skipIgnore:o?.skipIgnore});for(let m of u){if(l.has(m)||!be(i,m))continue;f(m),o?.actions&&o.actions.push(`add '${m}'
66
+ `),n=(await Zt(e,n,m)).index}}for(let l=0;l<i.length;l++){let u=i[l];if(!c[l]&&!(u.magic&_r))return{index:n,error:$(`pathspec '${u.original}' did not match any files`)}}return{index:n}}async function Ko(e,t,n,r,o){let s=r===""?"":`${r}/`,a=e.workTree,i=[],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 d=T(a,f.path);if(await e.fs.exists(d)){let l=f.stage>0,u=await Zt(e,t,f.path);t=u.index,o?.actions&&(l||u.hash!==f.hash)&&o.actions.push(`add '${f.path}'
67
67
  `)}else o?.actions&&o.actions.push(`remove '${f.path}'
68
- `),a.push(f.path)}for(let f of a)t=nt(t,f);if(!o?.updateOnly){let f=new Set(t.entries.map(l=>l.path)),d=await Ze(e,n,r===""?"":r,{skipIgnore:o?.skipIgnore});for(let l of d){if(f.has(l))continue;o?.actions&&o.actions.push(`add '${l}'
69
- `),t=(await zt(e,t,l)).index}}return t}async function xl(e,t,n,r){let o=await rr(e);try{let i=await e.fs.readFile(T(t,".gitignore"));o=_n(o,i,"",T(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=T(t,a);if(Kt(o,a,!0)==="ignored")return a;try{let f=await e.fs.readFile(T(c,".gitignore"));o=_n(o,f,a,T(c,".gitignore"))}catch{}}if(!r){let i=await e.fs.stat(T(t,n)).then(a=>a.isDirectory).catch(()=>!1);if(Kt(o,n,i)==="ignored")return n}return null}ne();ne();Wn();oe();ue();me();async function Ee(e,t){let n=T(e.gitDir,t);return await e.fs.exists(n)?e.fs.readFile(n):null}async function $e(e,t,n){await e.fs.writeFile(T(e.gitDir,t),n)}async function he(e,t){let n=T(e.gitDir,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function vr(e){await de(e,"MERGE_HEAD"),await de(e,"ORIG_HEAD"),await he(e,"MERGE_MSG"),await he(e,"MERGE_MODE"),await he(e,"SQUASH_MSG")}async function _t(e){await de(e,"CHERRY_PICK_HEAD"),await de(e,"ORIG_HEAD"),await he(e,"MERGE_MSG")}async function Ht(e){await de(e,"REVERT_HEAD"),await de(e,"ORIG_HEAD"),await he(e,"MERGE_MSG")}async function qn(e){for(let t of["CHERRY_PICK_HEAD","REVERT_HEAD","MERGE_HEAD","ORIG_HEAD"])await de(e,t);await he(e,"MERGE_MSG"),await he(e,"MERGE_MODE"),await he(e,"SQUASH_MSG")}var Bo="DETACH_POINT";async function Ga(e,t){await e.fs.writeFile(T(e.gitDir,Bo),t)}async function dt(e){let t=T(e.gitDir,Bo);await e.fs.exists(t)&&await e.fs.rm(t)}async function Sr(e){let t=T(e.gitDir,Bo);return await e.fs.exists(t)?(await e.fs.readFile(t))?.trim()??null:null}ue();me();async function wt(e){let t=await Ee(e,"BISECT_START");return t!=null&&t.trim().length>0}async function Dr(e){let t=await Ee(e,"BISECT_TERMS");if(!t)return{termBad:"bad",termGood:"good"};let n=t.trim().split(`
70
- `);return{termBad:n[0]??"bad",termGood:n[1]??"good"}}async function Ts(e){let t=(await Ee(e,"BISECT_START"))?.trim()??"",{termBad:n,termGood:r}=await Dr(e),o=await N(e,`refs/bisect/${n}`),s=[],i=[],a=await we(e,"refs/bisect");for(let d of a)d.name.startsWith(`refs/bisect/${r}-`)?s.push(d.hash):d.name.startsWith("refs/bisect/skip-")&&i.push(d.hash);let c=await Ee(e,"BISECT_HEAD")!=null||await e.fs.exists(T(e.gitDir,"BISECT_HEAD")),f=await e.fs.exists(T(e.gitDir,"BISECT_FIRST_PARENT"));return{startRef:t,badHash:o,goodHashes:s,skipHashes:i,termBad:n,termGood:r,noCheckout:c,firstParent:f}}async function bt(e,t){let n=await Ee(e,"BISECT_LOG")??"";await $e(e,"BISECT_LOG",n+t+`
71
- `)}async function Hs(e){let t=await we(e,"refs/bisect");for(let r of t)await de(e,r.name);await he(e,"BISECT_EXPECTED_REV"),await he(e,"BISECT_ANCESTORS_OK"),await he(e,"BISECT_LOG"),await he(e,"BISECT_TERMS"),await he(e,"BISECT_NAMES"),await he(e,"BISECT_FIRST_PARENT"),await he(e,"BISECT_HEAD"),await he(e,"BISECT_START");let n=T(e.gitDir,"refs","bisect");if(await e.fs.exists(n))try{await e.fs.rm(n,{recursive:!0})}catch{}}async function La(e,t,n,r,o){let s=[],i=new Map;for await(let g of Tt(e,t,{exclude:n})){let w=o?g.commit.parents.slice(0,1):g.commit.parents;s.push({hash:g.hash,subject:ie(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,k=[g.hash],b=0;for(;b<k.length;){let E=k[b++];if(w.has(E)||!c.has(E))continue;w.add(E);let x=i.get(E);if(x)for(let P of x)!w.has(P)&&c.has(P)&&k.push(P)}f.set(g.hash,w.size)}let d=s[0].hash,l=a;for(let g of s){if(r.has(g.hash))continue;let w=f.get(g.hash)??0,k=Math.abs(2*w-a);k<l&&(l=k,d=g.hash)}let u=!1;if(l===a){u=!0;for(let g of s){let w=f.get(g.hash)??0,k=Math.abs(2*w-a);k<l&&(l=k,d=g.hash)}}let m=s.find(g=>g.hash===d),h=Pl(a),p=Rl(a);return{hash:m.hash,subject:m.subject,remaining:h,steps:p,found:!1,onlySkippedLeft:u}}function Pl(e){return Math.floor((e-1)/2)}function Rl(e){return e<=1?0:Math.ceil(Math.log2(e))}function _a(e){let t=e.badHash!=null,n=e.goodHashes.length;return!t&&n===0?`status: waiting for both ${e.termGood} and ${e.termBad} commits
68
+ `),i.push(f.path)}for(let f of i)t=ot(t,f);if(!o?.updateOnly){let f=new Set(t.entries.map(l=>l.path)),d=await Qe(e,n,r===""?"":r,{skipIgnore:o?.skipIgnore});for(let l of d){if(f.has(l))continue;o?.actions&&o.actions.push(`add '${l}'
69
+ `),t=(await Zt(e,t,l)).index}}return t}async function Cl(e,t,n,r){let o=await ir(e);try{let a=await e.fs.readFile(T(t,".gitignore"));o=Un(o,a,"",T(t,".gitignore"))}catch{}let s=n.split("/");for(let a=0;a<s.length-1;a++){let i=s.slice(0,a+1).join("/"),c=T(t,i);if(Xt(o,i,!0)==="ignored")return i;try{let f=await e.fs.readFile(T(c,".gitignore"));o=Un(o,f,i,T(c,".gitignore"))}catch{}}if(!r){let a=await e.fs.stat(T(t,n)).then(i=>i.isDirectory).catch(()=>!1);if(Xt(o,n,a)==="ignored")return n}return null}re();re();zn();ie();de();le();async function Ee(e,t){let n=T(e.gitDir,t);return await e.fs.exists(n)?e.fs.readFile(n):null}async function Oe(e,t,n){await e.fs.writeFile(T(e.gitDir,t),n)}async function me(e,t){let n=T(e.gitDir,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function Nr(e){await fe(e,"MERGE_HEAD"),await fe(e,"ORIG_HEAD"),await me(e,"MERGE_MSG"),await me(e,"MERGE_MODE"),await me(e,"SQUASH_MSG")}async function Bt(e){await fe(e,"CHERRY_PICK_HEAD"),await fe(e,"ORIG_HEAD"),await me(e,"MERGE_MSG")}async function At(e){await fe(e,"REVERT_HEAD"),await fe(e,"ORIG_HEAD"),await me(e,"MERGE_MSG")}async function Vn(e){for(let t of["CHERRY_PICK_HEAD","REVERT_HEAD","MERGE_HEAD","ORIG_HEAD"])await fe(e,t);await me(e,"MERGE_MSG"),await me(e,"MERGE_MODE"),await me(e,"SQUASH_MSG")}var Yo="DETACH_POINT";async function Ua(e,t){await e.fs.writeFile(T(e.gitDir,Yo),t)}async function mt(e){let t=T(e.gitDir,Yo);await e.fs.exists(t)&&await e.fs.rm(t)}async function Fr(e){let t=T(e.gitDir,Yo);return await e.fs.exists(t)?(await e.fs.readFile(t))?.trim()??null:null}de();le();async function Et(e){let t=await Ee(e,"BISECT_START");return t!=null&&t.trim().length>0}async function Ur(e){let t=await Ee(e,"BISECT_TERMS");if(!t)return{termBad:"bad",termGood:"good"};let n=t.trim().split(`
70
+ `);return{termBad:n[0]??"bad",termGood:n[1]??"good"}}async function Ds(e){let t=(await Ee(e,"BISECT_START"))?.trim()??"",{termBad:n,termGood:r}=await Ur(e),o=await U(e,`refs/bisect/${n}`),s=[],a=[],i=await pe(e,"refs/bisect");for(let d of i)d.name.startsWith(`refs/bisect/${r}-`)?s.push(d.hash):d.name.startsWith("refs/bisect/skip-")&&a.push(d.hash);let c=await Ee(e,"BISECT_HEAD")!=null||await e.fs.exists(T(e.gitDir,"BISECT_HEAD")),f=await e.fs.exists(T(e.gitDir,"BISECT_FIRST_PARENT"));return{startRef:t,badHash:o,goodHashes:s,skipHashes:a,termBad:n,termGood:r,noCheckout:c,firstParent:f}}async function kt(e,t){let n=await Ee(e,"BISECT_LOG")??"";await Oe(e,"BISECT_LOG",n+t+`
71
+ `)}async function Ms(e){let t=await pe(e,"refs/bisect");for(let r of t)await fe(e,r.name);await me(e,"BISECT_EXPECTED_REV"),await me(e,"BISECT_ANCESTORS_OK"),await me(e,"BISECT_LOG"),await me(e,"BISECT_TERMS"),await me(e,"BISECT_NAMES"),await me(e,"BISECT_FIRST_PARENT"),await me(e,"BISECT_HEAD"),await me(e,"BISECT_START");let n=T(e.gitDir,"refs","bisect");if(await e.fs.exists(n))try{await e.fs.rm(n,{recursive:!0})}catch{}}async function Ba(e,t,n,r,o){let s=[],a=new Map;for await(let g of vt(e,t,{exclude:n})){let w=o?g.commit.parents.slice(0,1):g.commit.parents;s.push({hash:g.hash,subject:ae(g.commit.message)}),a.set(g.hash,w)}let i=s.length;if(i===0)return null;if(i===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,y=[g.hash],R=0;for(;R<y.length;){let b=y[R++];if(w.has(b)||!c.has(b))continue;w.add(b);let E=a.get(b);if(E)for(let k of E)!w.has(k)&&c.has(k)&&y.push(k)}f.set(g.hash,w.size)}let d=s[0].hash,l=i;for(let g of s){if(r.has(g.hash))continue;let w=f.get(g.hash)??0,y=Math.abs(2*w-i);y<l&&(l=y,d=g.hash)}let u=!1;if(l===i){u=!0;for(let g of s){let w=f.get(g.hash)??0,y=Math.abs(2*w-i);y<l&&(l=y,d=g.hash)}}let m=s.find(g=>g.hash===d),h=Ol(i),p=Il(i);return{hash:m.hash,subject:m.subject,remaining:h,steps:p,found:!1,onlySkippedLeft:u}}function Ol(e){return Math.floor((e-1)/2)}function Il(e){return e<=1?0:Math.ceil(Math.log2(e))}function Wa(e){let t=e.badHash!=null,n=e.goodHashes.length;return!t&&n===0?`status: waiting for both ${e.termGood} and ${e.termBad} commits
72
72
  `:t?n===0?`status: waiting for ${e.termGood} commit(s), ${e.termBad} commit known
73
73
  `:"":`status: waiting for ${e.termBad} commit, ${n} ${e.termGood} commit(s) known
74
- `}function Na(e){return`Bisecting: ${e.remaining} revision${e.remaining===1?"":"s"} left to test after this (roughly ${e.steps} step${e.steps===1?"":"s"})
74
+ `}function qa(e){return`Bisecting: ${e.remaining} revision${e.remaining===1?"":"s"} left to test after this (roughly ${e.steps} step${e.steps===1?"":"s"})
75
75
  [${e.hash}] ${e.subject}
76
- `}async function Fa(e,t){let n=await M(e,t),r=ie(n.message),s=new Date(n.author.timestamp*1e3).toUTCString().replace("GMT","+0000"),i=`${t} is the first bad commit
77
- `;return i+=`commit ${t}
78
- `,i+=`Author: ${n.author.name} <${n.author.email}>
79
- `,i+=`Date: ${s}
80
- `,i+=`
81
- `,i+=` ${r}
82
- `,i+=`
83
- `,i}ne();Wn();Xe();xe();oe();ue();Ge();me();ne();Wn();Xe();xe();oe();ue();oe();en();ue();function or(e){return T(e.gitDir,"rebase-merge")}async function At(e){return e.fs.exists(or(e))}async function lt(e){let t=or(e);if(!await e.fs.exists(t))return null;let n=await e.fs.readFile(T(t,"head-name")),r=await e.fs.readFile(T(t,"orig-head")),o=await e.fs.readFile(T(t,"onto")),s=Number.parseInt(await e.fs.readFile(T(t,"msgnum")),10),i=Number.parseInt(await e.fs.readFile(T(t,"end")),10),a=await e.fs.exists(T(t,"git-rebase-todo"))?T(t,"git-rebase-todo"):T(t,"todo"),c=Ua(await e.fs.readFile(a)),f=await e.fs.exists(T(t,"done"))?await e.fs.readFile(T(t,"done")):"",d=Ua(f);return{headName:n.trim(),origHead:r.trim(),onto:o.trim(),todo:c,done:d,msgnum:s,end:i}}async function Wo(e,t){let n=or(e);await e.fs.mkdir(n,{recursive:!0}),await e.fs.writeFile(T(n,"head-name"),`${t.headName}
76
+ `}async function Ka(e,t){let n=await M(e,t),r=ae(n.message),s=new Date(n.author.timestamp*1e3).toUTCString().replace("GMT","+0000"),a=`${t} is the first bad commit
77
+ `;return a+=`commit ${t}
78
+ `,a+=`Author: ${n.author.name} <${n.author.email}>
79
+ `,a+=`Date: ${s}
80
+ `,a+=`
81
+ `,a+=` ${r}
82
+ `,a+=`
83
+ `,a}re();zn();Je();ke();ie();de();je();le();re();zn();Je();ke();ie();de();ie();sn();de();function cr(e){return T(e.gitDir,"rebase-merge")}async function Dt(e){return e.fs.exists(cr(e))}async function ht(e){let t=cr(e);if(!await e.fs.exists(t))return null;let n=await e.fs.readFile(T(t,"head-name")),r=await e.fs.readFile(T(t,"orig-head")),o=await e.fs.readFile(T(t,"onto")),s=Number.parseInt(await e.fs.readFile(T(t,"msgnum")),10),a=Number.parseInt(await e.fs.readFile(T(t,"end")),10),i=await e.fs.exists(T(t,"git-rebase-todo"))?T(t,"git-rebase-todo"):T(t,"todo"),c=za(await e.fs.readFile(i)),f=await e.fs.exists(T(t,"done"))?await e.fs.readFile(T(t,"done")):"",d=za(f);return{headName:n.trim(),origHead:r.trim(),onto:o.trim(),todo:c,done:d,msgnum:s,end:a}}async function Xo(e,t){let n=cr(e);await e.fs.mkdir(n,{recursive:!0}),await e.fs.writeFile(T(n,"head-name"),`${t.headName}
84
84
  `),await e.fs.writeFile(T(n,"orig-head"),`${t.origHead}
85
85
  `),await e.fs.writeFile(T(n,"onto"),`${t.onto}
86
86
  `),await e.fs.writeFile(T(n,"msgnum"),`${String(t.msgnum)}
87
87
  `),await e.fs.writeFile(T(n,"end"),`${String(t.end)}
88
- `),await e.fs.writeFile(T(n,"git-rebase-todo"),vs(t.todo)),await e.fs.writeFile(T(n,"done"),vs(t.done)),await e.fs.writeFile(T(n,"interactive"),"")}async function qa(e){let t=or(e),n=await lt(e);if(!n)throw new Error("No rebase in progress");let r=n.todo.shift();r&&n.done.push(r),n.msgnum=n.done.length,await e.fs.writeFile(T(t,"msgnum"),`${String(n.msgnum)}
89
- `),await e.fs.writeFile(T(t,"git-rebase-todo"),vs(n.todo)),await e.fs.writeFile(T(t,"done"),vs(n.done))}async function qo(e){let t=or(e);await e.fs.exists(t)&&await e.fs.rm(t,{recursive:!0})}async function Ss(e,t,n){let r=or(e),o=`@${n.timestamp} ${n.timezone}`;await e.fs.writeFile(T(r,"author-script"),`GIT_AUTHOR_NAME='${n.name}'
88
+ `),await e.fs.writeFile(T(n,"git-rebase-todo"),Gs(t.todo)),await e.fs.writeFile(T(n,"done"),Gs(t.done)),await e.fs.writeFile(T(n,"interactive"),"")}async function Xa(e){let t=cr(e),n=await ht(e);if(!n)throw new Error("No rebase in progress");let r=n.todo.shift();r&&n.done.push(r),n.msgnum=n.done.length,await e.fs.writeFile(T(t,"msgnum"),`${String(n.msgnum)}
89
+ `),await e.fs.writeFile(T(t,"git-rebase-todo"),Gs(n.todo)),await e.fs.writeFile(T(t,"done"),Gs(n.done))}async function Zo(e){let t=cr(e);await e.fs.exists(t)&&await e.fs.rm(t,{recursive:!0})}async function Ls(e,t,n){let r=cr(e),o=`@${n.timestamp} ${n.timezone}`;await e.fs.writeFile(T(r,"author-script"),`GIT_AUTHOR_NAME='${n.name}'
90
90
  GIT_AUTHOR_EMAIL='${n.email}'
91
91
  GIT_AUTHOR_DATE='${o}'
92
92
  `),await e.fs.writeFile(T(r,"stopped-sha"),`${t}
93
- `)}function Ua(e){let t=[];for(let n of e.split(`
94
- `)){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 vs(e){return e.length===0?"":`${e.map(t=>`pick ${t.hash} # ${t.subject}`).join(`
93
+ `)}function za(e){let t=[];for(let n of e.split(`
94
+ `)){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 Gs(e){return e.length===0?"":`${e.map(t=>`pick ${t.hash} # ${t.subject}`).join(`
95
95
  `)}
96
- `}async function Ka(e,t,n){let r=new Map,[o,s]=await Promise.all([Ba(e,t,r),Ba(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 Wa(e,r,n,i),left:await Wa(e,r,t,a)}}async function Ba(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 As(e,i,n);for(let c of a.commit.parents)r.has(c)||o.push(c)}return r}async function Wa(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 d=await As(e,f,t);for(let l of d.commit.parents)r.has(l)&&o.set(l,(o.get(l)??0)+1)}let s=[];for(let f of r)o.get(f)===0&&s.push(await As(e,f,t));s.sort((f,d)=>f.commit.committer.timestamp-d.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 d=await As(e,f,t);d.commit.parents.length<=1&&a.push(d);for(let l of d.commit.parents)if(r.has(l)&&!c.has(l)){let u=(o.get(l)??0)-1;o.set(l,u),u<=0&&i.push(l)}}return a.reverse(),a}async function As(e,t,n){let r=n.get(t);if(r)return r;let o=await ge(e,t);if(o.type!=="commit")throw new Error(`Expected commit object, got ${o.type}`);let s={hash:t,commit:Wt(o.content)};return n.set(t,s),s}me();oe();function ir(e){let t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function $l(e,t){if(e.length===0)return;if(e.length===1)return e.shift();let n=ir(t),r=0;for(let o=0;o<e.length;o++){let s=e[o];if(s&&ir(s.path)===n){r=o;break}}return e.splice(r,1)[0]}var Il=50;async function Qe(e,t,n=Il){let r=new Map,o=[],s=[],i=[];for(let d of t)if(d.status==="deleted"&&d.oldHash){let l=r.get(d.oldHash)??[];l.push(d),r.set(d.oldHash,l),o.push(d)}else d.status==="added"&&d.newHash?s.push(d):i.push(d);let a=[],c=[];for(let d of s){let l=d.newHash;if(!l){c.push(d);continue}let u=r.get(l);if(u&&u.length>0){let m=$l(u,d.path);m&&a.push({oldPath:m.path,newPath:d.path,oldHash:m.oldHash??l,newHash:l,similarity:100,oldMode:m.oldMode,newMode:d.newMode})}else c.push(d)}let f=[...r.values()].flat();if(f.length>0&&c.length>0){let d=await Ol(e,f,c,n);if(d.length>0){let l=new Set(d.map(m=>m.oldPath)),u=new Set(d.map(m=>m.newPath));f=f.filter(m=>!l.has(m.path)),c=c.filter(m=>!u.has(m.path)),a.push(...d)}}if(f.length>0&&c.length>0){let d=await Al(e,f,c,n);if(d.length>0){let l=new Set(d.map(m=>m.oldPath)),u=new Set(d.map(m=>m.newPath));f=f.filter(m=>!l.has(m.path)),c=c.filter(m=>!u.has(m.path)),a.push(...d)}}return{remaining:[...i,...f,...c],renames:a}}async function Ol(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=ir(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=ir(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 d=t[c],l=n[f];if(!d?.oldHash||!l?.newHash||d.oldHash===l.newHash)continue;let u=await gt(e,d.oldHash),m=await gt(e,l.newHash),h=Hl(u,m);h<r||i.push({oldPath:d.path,newPath:l.path,oldHash:d.oldHash,newHash:l.newHash,similarity:h,oldMode:d.oldMode,newMode:l.newMode})}return i}var za=107927;function Ds(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))%za;t.set(f,(t.get(f)??0)+n),n=0,r=0,o=0}if(n>0){let i=(r+Math.imul(o,97))%za;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 Tl(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 Hl(e,t){return e.length===0&&t.length===0?100:e.length===0||t.length===0?0:Va(e.length,Ds(e),t.length,Ds(t))}function Va(e,t,n,r){let o=Math.max(e,n),s=Math.min(e,n);if(s<o-s)return 0;let{srcCopied:i}=Tl(t,r);return Math.floor(i*100/o)}async function Al(e,t,n,r){let o=[];for(let d of t)if(d.oldHash){let l=await gt(e,d.oldHash);o.push({size:l.length,chunks:Ds(l)})}else o.push(null);let s=[];for(let d of n)if(d.newHash){let l=await gt(e,d.newHash);s.push({size:l.length,chunks:Ds(l)})}else s.push(null);let i=[];for(let d=0;d<t.length;d++){let l=t[d],u=o[d];if(!(!l||!u))for(let m=0;m<n.length;m++){let h=n[m],p=s[m];if(!h||!p)continue;let g=Va(u.size,u.chunks,p.size,p.chunks);if(g>=r){let w=ir(l.path)===ir(h.path)?1:0;i.push({similarity:g,nameScore:w,delIdx:d,addIdx:m})}}}i.sort((d,l)=>l.similarity-d.similarity||l.nameScore-d.nameScore);let a=new Set,c=new Set,f=[];for(let{similarity:d,delIdx:l,addIdx:u}of i){if(a.has(l)||c.has(u))continue;a.add(l),c.add(u);let m=t[l],h=n[u];!m||!h||f.push({oldPath:m.path,newPath:h.path,oldHash:m.oldHash??"",newHash:h.newHash??"",similarity:d,oldMode:m.oldMode,newMode:h.newMode})}return f}function Cn(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 d=Math.max(0,n-o-a),l=Math.max(0,r-o-a),u=e.slice(0,o),m=e.slice(n-a),h=e.slice(o,o+d),p=t.slice(o,o+l);return o+a>0?`${u}{${h} => ${p}}${m}`:`${e} => ${t}`}Te();Je();async function et(e,t){let n=await Z(e),r=await X(e),o,s=!1;n&&n.type==="symbolic"?o=be(n.target):(s=!0,o="HEAD detached");let i=t?.index??await q(e),a=zo(i),c=t?.compareHash!==void 0?t.compareHash:r,f=t?.compareHash!==void 0?!t.compareHash:!r,d=await Ko(e,c,i,a),l=await Rt(e,i),u=[],m=[];for(let g of l)g.status==="untracked"?m.push(g.path):u.push({path:g.path,status:g.status});u.sort((g,w)=>Ce(g.path,w.path));let h=new Set(i.entries.map(g=>g.path)),p=Vo(m,h);return vl(e,r,s,o,i,d,u,a,p,{fromCommit:t?.fromCommit,noWarn:t?.noWarn,isInitial:f})}function Ya(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 ${z(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 ${z(r.hash)} # ${r.subject}`);e.push(' (use "git rebase --edit-todo" to view and edit)')}else e.push("No commands remaining.")}async function vl(e,t,n,r,o,s,i,a,c,f){let d=[],l=!1,u=await N(e,"CHERRY_PICK_HEAD"),m=await N(e,"REVERT_HEAD"),h=await N(e,"MERGE_HEAD"),p=!u&&!h,w=await At(e)?await lt(e):null;if(n&&w){let R=z(w.onto);d.push(`interactive rebase in progress; onto ${R}`)}else if(n){let R=await Sr(e);if(R){let y=t===R?"at":"from";d.push(`HEAD detached ${y} ${z(R)}`)}else d.push("Not currently on any branch.")}else d.push(`On branch ${r}`);if(!n&&!w){let R=await pe(e),y=await an(e,R,r);if(y){let $=Kn(y,{abbreviated:f?.fromCommit});for(let A of $.trimEnd().split(`
97
- `))d.push(A);l=!0}}if(l&&(w||u||m||h)&&d.push(""),w&&h)Ya(d,w),d.push(""),a.length>0?(d.push("You have unmerged paths."),d.push(' (fix conflicts and run "git commit")'),d.push(' (use "git merge --abort" to abort the merge)')):(d.push("All conflicts fixed but you are still merging."),d.push(' (use "git commit" to conclude merge)')),l=!0;else if(w){let R=Pt(o),y=await e.fs.exists(T(e.gitDir,"MERGE_MSG"));Ya(d,w);let A=w.headName==="detached HEAD"?null:be(w.headName),L=z(w.onto),G=A?` branch '${A}' on '${L}'`:"";if(R)d.push(`You are currently rebasing${G}.`),d.push(' (fix conflicts and then run "git rebase --continue")'),d.push(' (use "git rebase --skip" to skip this patch)'),d.push(' (use "git rebase --abort" to check out the original branch)');else if(y)d.push(`You are currently rebasing${G}.`),d.push(' (all conflicts fixed: run "git rebase --continue")');else{let V=G?`You are currently editing a commit while rebasing${G}.`:"You are currently editing a commit during a rebase.";d.push(V),d.push(' (use "git commit --amend" to amend the current commit)'),d.push(' (use "git rebase --continue" once you are satisfied with your changes)')}l=!0}else u?(d.push(`You are currently cherry-picking commit ${z(u)}.`),a.length>0?d.push(' (fix conflicts and run "git cherry-pick --continue")'):d.push(' (all conflicts fixed: run "git cherry-pick --continue")'),d.push(' (use "git cherry-pick --skip" to skip this patch)'),d.push(' (use "git cherry-pick --abort" to cancel the cherry-pick operation)'),l=!0):m?(d.push(`You are currently reverting commit ${z(m)}.`),a.length>0?d.push(' (fix conflicts and run "git revert --continue")'):d.push(' (all conflicts fixed: run "git revert --continue")'),d.push(' (use "git revert --skip" to skip this patch)'),d.push(' (use "git revert --abort" to cancel the revert operation)'),l=!0):h&&(a.length>0?(d.push("You have unmerged paths."),d.push(' (fix conflicts and run "git commit")'),d.push(' (use "git merge --abort" to abort the merge)')):(d.push("All conflicts fixed but you are still merging."),d.push(' (use "git commit" to conclude merge)')),l=!0);if(await wt(e)){let y=(await Ee(e,"BISECT_START"))?.trim()??"";d.push(`You are currently bisecting, started from branch '${y}'.`),d.push(' (use "git bisect reset" to get back to the original branch)'),l=!0}let k=f?.isInitial??!t;k&&(d.push(""),d.push(f?.fromCommit?"Initial commit":"No commits yet"),l=!0);let b=null;p&&(b=t?' (use "git restore --staged <file>..." to unstage)':' (use "git rm --cached <file>..." to unstage)');let x=i.some(R=>R.status==="deleted")?' (use "git add/rm <file>..." to update what will be committed)':' (use "git add <file>..." to update what will be committed)',P=!1;if(s.length>0){l&&d.push(""),d.push("Changes to be committed:"),b&&d.push(b);for(let R of s)d.push(` ${Xa(R.status,R.path,R.displayPath)}`);d.push(""),P=!0}if(a.length>0){!P&&l&&d.push(""),d.push("Unmerged paths:"),p&&(t?d.push(' (use "git restore --staged <file>..." to unstage)'):d.push(' (use "git rm --cached <file>..." to unstage)')),a.some(y=>y.status==="deleted by us"||y.status==="deleted by them"||y.status==="both deleted")?d.push(' (use "git add/rm <file>..." as appropriate to mark resolution)'):d.push(' (use "git add <file>..." to mark resolution)');for(let y of a)d.push(` ${Sl(y.status,y.path)}`);d.push(""),P=!0}if(i.length>0){!P&&l&&d.push(""),d.push("Changes not staged for commit:"),d.push(x),d.push(' (use "git restore <file>..." to discard changes in working directory)');for(let R of i)d.push(` ${Xa(R.status,R.path)}`);d.push(""),P=!0}if(c.length>0){!P&&l&&d.push(""),d.push("Untracked files:"),d.push(' (use "git add <file>..." to include in what will be committed)');for(let R of c)d.push(` ${R}`);d.push(""),P=!0}let C=s.length>0||!!h&&a.length===0;return!P&&l&&(f?.noWarn||C)&&d.push(""),!C&&!f?.noWarn&&(!P&&l&&i.length===0&&a.length===0&&c.length===0&&d.push(""),i.length>0||a.length>0?d.push('no changes added to commit (use "git add" and/or "git commit -a")'):c.length>0?d.push('nothing added to commit but untracked files present (use "git add" to track)'):k?d.push('nothing to commit (create/copy files and use "git add" to track)'):d.push("nothing to commit, working tree clean")),`${d.join(`
96
+ `}async function Za(e,t,n){let r=new Map,[o,s]=await Promise.all([Va(e,t,r),Va(e,n,r)]),a=new Set;for(let c of s)o.has(c)||a.add(c);let i=new Set;for(let c of o)s.has(c)||i.add(c);return{right:await Ya(e,r,n,a),left:await Ya(e,r,t,i)}}async function Va(e,t,n){let r=new Set,o=[t],s=0;for(;s<o.length;){let a=o[s++];if(r.has(a))continue;r.add(a);let i=await js(e,a,n);for(let c of i.commit.parents)r.has(c)||o.push(c)}return r}async function Ya(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 d=await js(e,f,t);for(let l of d.commit.parents)r.has(l)&&o.set(l,(o.get(l)??0)+1)}let s=[];for(let f of r)o.get(f)===0&&s.push(await js(e,f,t));s.sort((f,d)=>f.commit.committer.timestamp-d.commit.committer.timestamp);let a=s.map(f=>f.hash),i=[],c=new Set;for(;a.length>0;){let f=a.pop();if(!f||c.has(f))continue;c.add(f);let d=await js(e,f,t);d.commit.parents.length<=1&&i.push(d);for(let l of d.commit.parents)if(r.has(l)&&!c.has(l)){let u=(o.get(l)??0)-1;o.set(l,u),u<=0&&a.push(l)}}return i.reverse(),i}async function js(e,t,n){let r=n.get(t);if(r)return r;let o=await ge(e,t);if(o.type!=="commit")throw new Error(`Expected commit object, got ${o.type}`);let s={hash:t,commit:Vt(o.content)};return n.set(t,s),s}le();ie();function fr(e){let t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function $l(e,t){if(e.length===0)return;if(e.length===1)return e.shift();let n=fr(t),r=0;for(let o=0;o<e.length;o++){let s=e[o];if(s&&fr(s.path)===n){r=o;break}}return e.splice(r,1)[0]}var Tl=50;async function tt(e,t,n=Tl){let r=new Map,o=[],s=[],a=[];for(let d of t)if(d.status==="deleted"&&d.oldHash){let l=r.get(d.oldHash)??[];l.push(d),r.set(d.oldHash,l),o.push(d)}else d.status==="added"&&d.newHash?s.push(d):a.push(d);let i=[],c=[];for(let d of s){let l=d.newHash;if(!l){c.push(d);continue}let u=r.get(l);if(u&&u.length>0){let m=$l(u,d.path);m&&i.push({oldPath:m.path,newPath:d.path,oldHash:m.oldHash??l,newHash:l,similarity:100,oldMode:m.oldMode,newMode:d.newMode})}else c.push(d)}let f=[...r.values()].flat();if(f.length>0&&c.length>0){let d=await Hl(e,f,c,n);if(d.length>0){let l=new Set(d.map(m=>m.oldPath)),u=new Set(d.map(m=>m.newPath));f=f.filter(m=>!l.has(m.path)),c=c.filter(m=>!u.has(m.path)),i.push(...d)}}if(f.length>0&&c.length>0){let d=await Al(e,f,c,n);if(d.length>0){let l=new Set(d.map(m=>m.oldPath)),u=new Set(d.map(m=>m.newPath));f=f.filter(m=>!l.has(m.path)),c=c.filter(m=>!u.has(m.path)),i.push(...d)}}return{remaining:[...a,...f,...c],renames:i}}async function Hl(e,t,n,r){let o=new Map;for(let i=0;i<t.length;i++){let c=t[i];if(!c)continue;let f=fr(c.path);o.has(f)?o.set(f,-1):o.set(f,i)}let s=new Map;for(let i=0;i<n.length;i++){let c=n[i];if(!c)continue;let f=fr(c.path);s.has(f)?s.set(f,-1):s.set(f,i)}let a=[];for(let[i,c]of o){if(c===-1)continue;let f=s.get(i);if(f===void 0||f===-1)continue;let d=t[c],l=n[f];if(!d?.oldHash||!l?.newHash||d.oldHash===l.newHash)continue;let u=await yt(e,d.oldHash),m=await yt(e,l.newHash),h=vl(u,m);h<r||a.push({oldPath:d.path,newPath:l.path,oldHash:d.oldHash,newHash:l.newHash,similarity:h,oldMode:d.oldMode,newMode:l.newMode})}return a}var Ja=107927;function _s(e){let t=new Map,n=0,r=0,o=0;for(let a=0;a<e.length;a++){let i=e[a],c=r;if(r=(r<<7^o>>>25)>>>0,o=(o<<7^c>>>25)>>>0,r=r+i>>>0,n++,n<64&&i!==10)continue;let f=(r+Math.imul(o,97))%Ja;t.set(f,(t.get(f)??0)+n),n=0,r=0,o=0}if(n>0){let a=(r+Math.imul(o,97))%Ja;t.set(a,(t.get(a)??0)+n)}let s=[];for(let[a,i]of t)s.push({hash:a,count:i});return s.sort((a,i)=>a.hash-i.hash),s}function Sl(e,t){let n=0,r=0,o=0,s=0;for(;o<e.length;){let a=e[o];if(!a)break;for(;s<t.length;){let f=t[s];if(!f||f.hash>=a.hash)break;r+=f.count,s++}let i=a.count,c=0;if(s<t.length){let f=t[s];f&&f.hash===a.hash&&(c=f.count,s++)}i<c?(r+=c-i,n+=i):n+=c,o++}for(;s<t.length;){let a=t[s];a&&(r+=a.count),s++}return{srcCopied:n,literalAdded:r}}function vl(e,t){return e.length===0&&t.length===0?100:e.length===0||t.length===0?0:Qa(e.length,_s(e),t.length,_s(t))}function Qa(e,t,n,r){let o=Math.max(e,n),s=Math.min(e,n);if(s<o-s)return 0;let{srcCopied:a}=Sl(t,r);return Math.floor(a*100/o)}async function Al(e,t,n,r){let o=[];for(let d of t)if(d.oldHash){let l=await yt(e,d.oldHash);o.push({size:l.length,chunks:_s(l)})}else o.push(null);let s=[];for(let d of n)if(d.newHash){let l=await yt(e,d.newHash);s.push({size:l.length,chunks:_s(l)})}else s.push(null);let a=[];for(let d=0;d<t.length;d++){let l=t[d],u=o[d];if(!(!l||!u))for(let m=0;m<n.length;m++){let h=n[m],p=s[m];if(!h||!p)continue;let g=Qa(u.size,u.chunks,p.size,p.chunks);if(g>=r){let w=fr(l.path)===fr(h.path)?1:0;a.push({similarity:g,nameScore:w,delIdx:d,addIdx:m})}}}a.sort((d,l)=>l.similarity-d.similarity||l.nameScore-d.nameScore);let i=new Set,c=new Set,f=[];for(let{similarity:d,delIdx:l,addIdx:u}of a){if(i.has(l)||c.has(u))continue;i.add(l),c.add(u);let m=t[l],h=n[u];!m||!h||f.push({oldPath:m.path,newPath:h.path,oldHash:m.oldHash??"",newHash:h.newHash??"",similarity:d,oldMode:m.oldMode,newMode:h.newMode})}return f}function In(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 a=o>0?1:0,i=0,c=n,f=r;for(;o-a<=c&&o-a<=f&&c>=0&&f>=0;){if(c===n&&f===r){c--,f--;continue}if(e[c]!==t[f])break;e[c]==="/"&&(i=n-c),c--,f--}let d=Math.max(0,n-o-i),l=Math.max(0,r-o-i),u=e.slice(0,o),m=e.slice(n-i),h=e.slice(o,o+d),p=t.slice(o,o+l);return o+i>0?`${u}{${h} => ${p}}${m}`:`${e} => ${t}`}He();et();async function nt(e,t){let n=await Z(e),r=await X(e),o,s=!1;n&&n.type==="symbolic"?o=we(n.target):(s=!0,o="HEAD detached");let a=t?.index??await K(e),i=Qo(a),c=t?.compareHash!==void 0?t.compareHash:r,f=t?.compareHash!==void 0?!t.compareHash:!r,d=await Jo(e,c,a,i),l=await $t(e,a),u=[],m=[];for(let g of l)g.status==="untracked"?m.push(g.path):u.push({path:g.path,status:g.status});u.sort((g,w)=>Re(g.path,w.path));let h=new Set(a.entries.map(g=>g.path)),p=ei(m,h);return Dl(e,r,s,o,a,d,u,i,p,{fromCommit:t?.fromCommit,noWarn:t?.noWarn,isInitial:f})}function ec(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 ${V(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 ${V(r.hash)} # ${r.subject}`);e.push(' (use "git rebase --edit-todo" to view and edit)')}else e.push("No commands remaining.")}async function Dl(e,t,n,r,o,s,a,i,c,f){let d=[],l=!1,u=await U(e,"CHERRY_PICK_HEAD"),m=await U(e,"REVERT_HEAD"),h=await U(e,"MERGE_HEAD"),p=!u&&!h,w=await Dt(e)?await ht(e):null;if(n&&w){let O=V(w.onto);d.push(`interactive rebase in progress; onto ${O}`)}else if(n){let O=await Fr(e);if(O){let x=t===O?"at":"from";d.push(`HEAD detached ${x} ${V(O)}`)}else d.push("Not currently on any branch.")}else d.push(`On branch ${r}`);if(!n&&!w){let O=await he(e),x=await ln(e,O,r);if(x){let P=Yn(x,{abbreviated:f?.fromCommit});for(let I of P.trimEnd().split(`
97
+ `))d.push(I);l=!0}}if(l&&(w||u||m||h)&&d.push(""),w&&h)ec(d,w),d.push(""),i.length>0?(d.push("You have unmerged paths."),d.push(' (fix conflicts and run "git commit")'),d.push(' (use "git merge --abort" to abort the merge)')):(d.push("All conflicts fixed but you are still merging."),d.push(' (use "git commit" to conclude merge)')),l=!0;else if(w){let O=It(o),x=await e.fs.exists(T(e.gitDir,"MERGE_MSG"));ec(d,w);let I=w.headName==="detached HEAD"?null:we(w.headName),G=V(w.onto),j=I?` branch '${I}' on '${G}'`:"";if(O)d.push(`You are currently rebasing${j}.`),d.push(' (fix conflicts and then run "git rebase --continue")'),d.push(' (use "git rebase --skip" to skip this patch)'),d.push(' (use "git rebase --abort" to check out the original branch)');else if(x)d.push(`You are currently rebasing${j}.`),d.push(' (all conflicts fixed: run "git rebase --continue")');else{let z=j?`You are currently editing a commit while rebasing${j}.`:"You are currently editing a commit during a rebase.";d.push(z),d.push(' (use "git commit --amend" to amend the current commit)'),d.push(' (use "git rebase --continue" once you are satisfied with your changes)')}l=!0}else u?(d.push(`You are currently cherry-picking commit ${V(u)}.`),i.length>0?d.push(' (fix conflicts and run "git cherry-pick --continue")'):d.push(' (all conflicts fixed: run "git cherry-pick --continue")'),d.push(' (use "git cherry-pick --skip" to skip this patch)'),d.push(' (use "git cherry-pick --abort" to cancel the cherry-pick operation)'),l=!0):m?(d.push(`You are currently reverting commit ${V(m)}.`),i.length>0?d.push(' (fix conflicts and run "git revert --continue")'):d.push(' (all conflicts fixed: run "git revert --continue")'),d.push(' (use "git revert --skip" to skip this patch)'),d.push(' (use "git revert --abort" to cancel the revert operation)'),l=!0):h&&(i.length>0?(d.push("You have unmerged paths."),d.push(' (fix conflicts and run "git commit")'),d.push(' (use "git merge --abort" to abort the merge)')):(d.push("All conflicts fixed but you are still merging."),d.push(' (use "git commit" to conclude merge)')),l=!0);if(await Et(e)){let x=(await Ee(e,"BISECT_START"))?.trim()??"";d.push(`You are currently bisecting, started from branch '${x}'.`),d.push(' (use "git bisect reset" to get back to the original branch)'),l=!0}let y=f?.isInitial??!t;y&&(d.push(""),d.push(f?.fromCommit?"Initial commit":"No commits yet"),l=!0);let R=null;p&&(R=t?' (use "git restore --staged <file>..." to unstage)':' (use "git rm --cached <file>..." to unstage)');let E=a.some(O=>O.status==="deleted")?' (use "git add/rm <file>..." to update what will be committed)':' (use "git add <file>..." to update what will be committed)',k=!1;if(s.length>0){l&&d.push(""),d.push("Changes to be committed:"),R&&d.push(R);for(let O of s)d.push(` ${tc(O.status,O.path,O.displayPath)}`);d.push(""),k=!0}if(i.length>0){!k&&l&&d.push(""),d.push("Unmerged paths:"),p&&(t?d.push(' (use "git restore --staged <file>..." to unstage)'):d.push(' (use "git rm --cached <file>..." to unstage)')),i.some(x=>x.status==="deleted by us"||x.status==="deleted by them"||x.status==="both deleted")?d.push(' (use "git add/rm <file>..." as appropriate to mark resolution)'):d.push(' (use "git add <file>..." to mark resolution)');for(let x of i)d.push(` ${Ml(x.status,x.path)}`);d.push(""),k=!0}if(a.length>0){!k&&l&&d.push(""),d.push("Changes not staged for commit:"),d.push(E),d.push(' (use "git restore <file>..." to discard changes in working directory)');for(let O of a)d.push(` ${tc(O.status,O.path)}`);d.push(""),k=!0}if(c.length>0){!k&&l&&d.push(""),d.push("Untracked files:"),d.push(' (use "git add <file>..." to include in what will be committed)');for(let O of c)d.push(` ${O}`);d.push(""),k=!0}let C=s.length>0||!!h&&i.length===0;return!k&&l&&(f?.noWarn||C)&&d.push(""),!C&&!f?.noWarn&&(!k&&l&&a.length===0&&i.length===0&&c.length===0&&d.push(""),a.length>0||i.length>0?d.push('no changes added to commit (use "git add" and/or "git commit -a")'):c.length>0?d.push('nothing added to commit but untracked files present (use "git add" to track)'):y?d.push('nothing to commit (create/copy files and use "git add" to track)'):d.push("nothing to commit, working tree clean")),`${d.join(`
98
98
  `)}
99
- `}async function Ko(e,t,n,r){let o=new Set(r?.map(m=>m.path)),s=null;t&&(s=(await M(e,t)).tree);let i=await fe(e,s),a=new Map(ve(n).map(m=>[m.path,m])),c=[];for(let[m,h]of a){if(o.has(m))continue;let p=i.get(m);p?p.hash!==h.hash&&c.push({path:m,status:"modified",oldHash:p.hash,newHash:h.hash,oldMode:p.mode,newMode:h.mode.toString(8).padStart(6,"0")}):c.push({path:m,status:"added",newHash:h.hash,newMode:h.mode.toString(8).padStart(6,"0")})}for(let[m,h]of i)o.has(m)||a.has(m)||c.push({path:m,status:"deleted",oldHash:h.hash,oldMode:h.mode});let{remaining:f,renames:d}=await Qe(e,c),l={added:"new file",deleted:"deleted",modified:"modified"},u=[];for(let m of f){let h=l[m.status];h&&u.push({path:m.path,status:h})}for(let m of d)u.push({path:m.newPath,status:"renamed",displayPath:`${m.oldPath} -> ${m.newPath}`});return u.sort((m,h)=>Ce(m.path,h.path))}function zo(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)=>Ce(r.path,o.path))}function Vo(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 Xa(e,t,n){return`${e}:`.padEnd(12)+(n??t)}function Sl(e,t){return`${e}:`.padEnd(17)+t}async function an(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 N(e,i);if(!c)return{upstream:a,ahead:0,behind:0,gone:!0};let f=await N(e,`refs/heads/${n}`);if(!f)return null;if(f===c)return{upstream:a,ahead:0,behind:0,gone:!1};let{ahead:d,behind:l}=await Fo(e,f,c);return{upstream:a,ahead:d,behind:l,gone:!1}}function Za(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.
99
+ `}async function Jo(e,t,n,r){let o=new Set(r?.map(m=>m.path)),s=null;t&&(s=(await M(e,t)).tree);let a=await ce(e,s),i=new Map(Ae(n).map(m=>[m.path,m])),c=[];for(let[m,h]of i){if(o.has(m))continue;let p=a.get(m);p?p.hash!==h.hash&&c.push({path:m,status:"modified",oldHash:p.hash,newHash:h.hash,oldMode:p.mode,newMode:h.mode.toString(8).padStart(6,"0")}):c.push({path:m,status:"added",newHash:h.hash,newMode:h.mode.toString(8).padStart(6,"0")})}for(let[m,h]of a)o.has(m)||i.has(m)||c.push({path:m,status:"deleted",oldHash:h.hash,oldMode:h.mode});let{remaining:f,renames:d}=await tt(e,c),l={added:"new file",deleted:"deleted",modified:"modified"},u=[];for(let m of f){let h=l[m.status];h&&u.push({path:m.path,status:h})}for(let m of d)u.push({path:m.newPath,status:"renamed",displayPath:`${m.oldPath} -> ${m.newPath}`});return u.sort((m,h)=>Re(m.path,h.path))}function Qo(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,a=o.has(1),i=o.has(2),c=o.has(3);i&&c?s=a?"both modified":"both added":a&&!i&&!c?s="both deleted":a&&c?s="deleted by us":a&&i?s="deleted by them":i&&!a&&!c?s="added by us":c&&!a&&!i?s="added by them":s="unmerged",n.push({path:r,status:s})}return n.sort((r,o)=>Re(r.path,o.path))}function ei(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 a=!1;for(let i=1;i<s.length;i++){let c=`${s.slice(0,i).join("/")}/`;if(!n.has(c)){r.add(c),a=!0;break}}a||r.add(o)}return[...r].sort()}function tc(e,t,n){return`${e}:`.padEnd(12)+(n??t)}function Ml(e,t){return`${e}:`.padEnd(17)+t}async function ln(e,t,n){let r=t[`branch "${n}"`];if(!r?.remote||!r?.merge)return null;let o=r.remote,s=r.merge,a=s.replace(/^refs\/heads\//,`refs/remotes/${o}/`),i=`${o}/${s.replace(/^refs\/heads\//,"")}`,c=await U(e,a);if(!c)return{upstream:i,ahead:0,behind:0,gone:!0};let f=await U(e,`refs/heads/${n}`);if(!f)return null;if(f===c)return{upstream:i,ahead:0,behind:0,gone:!1};let{ahead:d,behind:l}=await zo(e,f,c);return{upstream:i,ahead:d,behind:l,gone:!1}}function nc(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 Yn(e,t){if(e.gone)return`Your branch is based on '${e.upstream}', but the upstream is gone.
100
100
  (use "git branch --unset-upstream" to fixup)
101
101
  `;if(e.ahead===0&&e.behind===0)return`Your branch is up to date with '${e.upstream}'.
102
102
  `;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}.
@@ -106,33 +106,33 @@ GIT_AUTHOR_DATE='${o}'
106
106
  `}let n=`Your branch and '${e.upstream}' have diverged,
107
107
  and have ${e.ahead} and ${e.behind} different commits each, respectively.
108
108
  `;return t?.abbreviated?n:n+` (use "git pull" if you want to integrate the remote branch with yours)
109
- `}Te();Vt();Je();async function Ms(e){let t=await ze(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]){let s=o[1],i=`refs/heads/${s}`,a=await N(e,i);if(a)return{name:s,refName:i,hash:a}}}return null}async function cn(e){let t="";return await N(e,"CHERRY_PICK_HEAD")&&(t=`warning: cancelling a cherry picking in progress
110
- `),await N(e,"REVERT_HEAD")&&(t+=`warning: cancelling a revert in progress
111
- `),await qn(e),t}function Dl(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(`
112
- `)}
113
- `:""}function Pn(e){return e.entries.some(t=>t.stage>0)?{stdout:Dl(e),stderr:`error: you need to resolve your current index first
114
- `,exitCode:1}:null}async function js(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");if(r)return Ml(e,t,n,r);let o=await q(e),s=t.map(a=>Le(a,n)),i=o.entries.filter(a=>a.stage===0&&ye(s,a.path));if(i.length===0)return o.entries.some(c=>c.stage>0&&ye(s,c.path))?_(`error: path '${t[0]}' is unmerged
115
- `):_(`error: pathspec '${t[0]}' did not match any file(s) known to git
116
- `);for(let a of i)await rt(e,{path:a.path,hash:a.hash,mode:a.mode});return{stdout:"",stderr:"",exitCode:0}}async function Ml(e,t,n,r){let o=await fe(e,r),s=await q(e),i=t.map(c=>Le(c,n)),a=[];for(let[c]of o)ye(i,c)&&a.push(c);if(a.length===0)return _(`error: pathspec '${t[0]}' did not match any file(s) known to git
117
- `);for(let c of a){let f=o.get(c);f&&(await rt(e,{path:f.path,hash:f.hash,mode:f.mode}),s=ht(s,{path:f.path,hash:f.hash,mode:parseInt(f.mode,8),stage:0,stat:Pe()}))}return await re(e,s),{stdout:"",stderr:"",exitCode:0}}async function Gs(e,t,n,r,o){if(!e.workTree)return I("this operation must be run in a work tree");let s=o?.deleteOnMissing??!1,i=await q(e),a=t.map(f=>Le(f,n)),c=new Set;for(let f of i.entries)ye(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
118
- `);for(let f of c){let d=i.entries.find(m=>m.path===f&&m.stage===r),l=!d&&i.entries.find(m=>m.path===f&&m.stage===0),u=d||l;if(u)await rt(e,{path:u.path,hash:u.hash,mode:u.mode});else if(s){let m=T(e.workTree,f);await e.fs.exists(m)&&await e.fs.rm(m)}else if(i.entries.some(h=>h.path===f&&h.stage>0))return _(`error: path '${f}' does not have ${r===2?"our":"their"} version
119
- `)}return{stdout:"",stderr:"",exitCode:0}}async function zn(e,t,n){if(!e.workTree)return"";let r=await We(e,t),o=new Map;for(let c of r)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=T(e.workTree,c);if(await e.fs.exists(f)){if((await e.fs.stat(f)).isFile){let l=await e.fs.readFileBuffer(f);i.set(c,await pt("blob",l))}}else i.set(c,null)}let a=[];for(let[c,f]of o){let d=s.get(c);if(d===void 0){a.push(`D ${c}`);continue}let l=i.get(c);l===null?a.push(`D ${c}`):(d!==f||l!==void 0&&l!==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 d=c.slice(2),l=f.slice(2);return d<l?-1:d>l?1:0}),`${a.join(`
120
- `)}
121
- `)}var Ja=5;function jl(e){let t=e.length,n=t===1?"commit":"commits",r=t===1?"it":"them",o=t>Ja?Ja-1:t,i=e.slice(0,o).map(c=>` ${z(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
109
+ `}He();Jt();et();async function Ns(e){let t=await Ve(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]){let s=o[1],a=`refs/heads/${s}`,i=await U(e,a);if(i)return{name:s,refName:a,hash:i}}}return null}async function un(e){let t="";return await U(e,"CHERRY_PICK_HEAD")&&(t=`warning: cancelling a cherry picking in progress
110
+ `),await U(e,"REVERT_HEAD")&&(t+=`warning: cancelling a revert in progress
111
+ `),await Vn(e),t}function jl(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(`
112
+ `)}
113
+ `:""}function $n(e){return e.entries.some(t=>t.stage>0)?{stdout:jl(e),stderr:`error: you need to resolve your current index first
114
+ `,exitCode:1}:null}async function Fs(e,t,n,r){if(!e.workTree)return $("this operation must be run in a work tree");if(r)return Gl(e,t,n,r);let o=await K(e),s=t.map(i=>Ge(i,n)),a=o.entries.filter(i=>i.stage===0&&be(s,i.path));if(a.length===0)return o.entries.some(c=>c.stage>0&&be(s,c.path))?N(`error: path '${t[0]}' is unmerged
115
+ `):N(`error: pathspec '${t[0]}' did not match any file(s) known to git
116
+ `);for(let i of a)await it(e,{path:i.path,hash:i.hash,mode:i.mode});return{stdout:"",stderr:"",exitCode:0}}async function Gl(e,t,n,r){let o=await ce(e,r),s=await K(e),a=t.map(c=>Ge(c,n)),i=[];for(let[c]of o)be(a,c)&&i.push(c);if(i.length===0)return N(`error: pathspec '${t[0]}' did not match any file(s) known to git
117
+ `);for(let c of i){let f=o.get(c);f&&(await it(e,{path:f.path,hash:f.hash,mode:f.mode}),s=wt(s,{path:f.path,hash:f.hash,mode:parseInt(f.mode,8),stage:0,stat:Ce()}))}return await se(e,s),{stdout:"",stderr:"",exitCode:0}}async function Us(e,t,n,r,o){if(!e.workTree)return $("this operation must be run in a work tree");let s=o?.deleteOnMissing??!1,a=await K(e),i=t.map(f=>Ge(f,n)),c=new Set;for(let f of a.entries)be(i,f.path)&&c.add(f.path);if(c.size===0)return N(`error: pathspec '${t[0]}' did not match any file(s) known to git
118
+ `);for(let f of c){let d=a.entries.find(m=>m.path===f&&m.stage===r),l=!d&&a.entries.find(m=>m.path===f&&m.stage===0),u=d||l;if(u)await it(e,{path:u.path,hash:u.hash,mode:u.mode});else if(s){let m=T(e.workTree,f);await e.fs.exists(m)&&await e.fs.rm(m)}else if(a.entries.some(h=>h.path===f&&h.stage>0))return N(`error: path '${f}' does not have ${r===2?"our":"their"} version
119
+ `)}return{stdout:"",stderr:"",exitCode:0}}async function Xn(e,t,n){if(!e.workTree)return"";let r=await qe(e,t),o=new Map;for(let c of r)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 a=new Map;for(let[c]of s){let f=T(e.workTree,c);if(await e.fs.exists(f)){if((await e.fs.stat(f)).isFile){let l=await e.fs.readFileBuffer(f);a.set(c,await bt("blob",l))}}else a.set(c,null)}let i=[];for(let[c,f]of o){let d=s.get(c);if(d===void 0){i.push(`D ${c}`);continue}let l=a.get(c);l===null?i.push(`D ${c}`):(d!==f||l!==void 0&&l!==f)&&i.push(`M ${c}`)}for(let[c]of s)o.has(c)||a.get(c)!=null&&i.push(`A ${c}`);return i.length===0?"":(i.sort((c,f)=>{let d=c.slice(2),l=f.slice(2);return d<l?-1:d>l?1:0}),`${i.join(`
120
+ `)}
121
+ `)}var rc=5;function Ll(e){let t=e.length,n=t===1?"commit":"commits",r=t===1?"it":"them",o=t>rc?rc-1:t,a=e.slice(0,o).map(c=>` ${V(c.hash)} ${c.subject}`),i=t-o;return i>0&&a.push(` ... and ${i} more.`),`Warning: you are leaving ${t} ${n} behind, not connected to
122
122
  any of your branches:
123
123
 
124
- ${i.join(`
124
+ ${a.join(`
125
125
  `)}
126
126
 
127
127
  If you want to keep ${r} by creating a new branch, this may be a good time
128
128
  to do so with:
129
129
 
130
- git branch <new-branch-name> ${z(e[0].hash)}
130
+ git branch <new-branch-name> ${V(e[0].hash)}
131
131
 
132
- `}async function Yo(e,t){let n=await M(e,t);return`Previous HEAD position was ${z(t)} ${ie(n.message)}
133
- `}async function Ls(e,t,n){let r=await Uo(e,t,{targetHash:n});return r.length>0?jl(r):t!==n?Yo(e,t):""}async function ar(e,t,n,r,o,s){let i=await Z(e);if(i?.type==="symbolic"&&i.target===n)return{stdout:"",stderr:`Already on '${t}'
134
- `,exitCode:0};let a=await q(e),c=Pn(a);if(c)return c;let f=await X(e),l=(await M(e,r)).tree,u=null;if(f&&(u=(await M(e,f)).tree),u!==l){let b=await kn(e,u,l,a);if(!b.success)return b.errorOutput??_("error: checkout would overwrite local changes");a={version:2,entries:b.newEntries},await re(e,a),await He(e,b.worktreeOps)}let m="";i?.type==="direct"&&f&&(m=await Ls(e,f,r));let h=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):f??J;await Fe(e,"HEAD",n),await dt(e);let p=await cn(e);await te(e,o,"HEAD",f,r,`checkout: moving from ${h} to ${t}`),await s?.hooks?.emitPost("post-checkout",{prevHead:f,newHead:r,isBranchCheckout:!0});let g=await zn(e,l,a),w=await pe(e),k=await an(e,w,t);return k&&(g+=Kn(k)),{stdout:g,stderr:`${m}Switched to branch '${t}'
135
- ${p}`,exitCode:0}}async function Rn(e,t,n,r,o){let s=await q(e),i=Pn(s);if(i)return i;let a=await X(e),c=await M(e,t),f=c.tree,d=null;if(a&&(d=(await M(e,a)).tree),d!==f){let b=await kn(e,d,f,s);if(!b.success)return b.errorOutput??_("error: checkout would overwrite local changes");s={version:2,entries:b.newEntries},await re(e,s),await He(e,b.worktreeOps)}let l=await Z(e),u=l?.type==="direct"&&a===t;if(await Y(e,"HEAD",t),!u){await Ga(e,t);let b=l?.type==="symbolic"?l.target.replace(/^refs\/heads\//,""):a??J;await te(e,n,"HEAD",a,t,`checkout: moving from ${b} to ${t}`)}let m=await cn(e);await r?.hooks?.emitPost("post-checkout",{prevHead:a,newHead:t,isBranchCheckout:!1});let h=z(t),p=ie(c.message),g=l?.type==="direct",w="";return g&&a&&a!==t&&(w+=await Ls(e,a,t)),g||!o?.detachAdviceTarget?w+=`HEAD is now at ${h} ${p}
132
+ `}async function ti(e,t){let n=await M(e,t);return`Previous HEAD position was ${V(t)} ${ae(n.message)}
133
+ `}async function Bs(e,t,n){let r=await Vo(e,t,{targetHash:n});return r.length>0?Ll(r):t!==n?ti(e,t):""}async function dr(e,t,n,r,o,s){let a=await Z(e);if(a?.type==="symbolic"&&a.target===n)return{stdout:"",stderr:`Already on '${t}'
134
+ `,exitCode:0};let i=await K(e),c=$n(i);if(c)return c;let f=await X(e),l=(await M(e,r)).tree,u=null;if(f&&(u=(await M(e,f)).tree),u!==l){let R=await Pn(e,u,l,i);if(!R.success)return R.errorOutput??N("error: checkout would overwrite local changes");i={version:2,entries:R.newEntries},await se(e,i),await Se(e,R.worktreeOps)}let m="";a?.type==="direct"&&f&&(m=await Bs(e,f,r));let h=a?.type==="symbolic"?a.target.replace(/^refs\/heads\//,""):f??J;await Ue(e,"HEAD",n),await mt(e);let p=await un(e);await ne(e,o,"HEAD",f,r,`checkout: moving from ${h} to ${t}`),await s?.hooks?.postCheckout?.({repo:e,prevHead:f,newHead:r,isBranchCheckout:!0});let g=await Xn(e,l,i),w=await he(e),y=await ln(e,w,t);return y&&(g+=Yn(y)),{stdout:g,stderr:`${m}Switched to branch '${t}'
135
+ ${p}`,exitCode:0}}async function Tn(e,t,n,r,o){let s=await K(e),a=$n(s);if(a)return a;let i=await X(e),c=await M(e,t),f=c.tree,d=null;if(i&&(d=(await M(e,i)).tree),d!==f){let R=await Pn(e,d,f,s);if(!R.success)return R.errorOutput??N("error: checkout would overwrite local changes");s={version:2,entries:R.newEntries},await se(e,s),await Se(e,R.worktreeOps)}let l=await Z(e),u=l?.type==="direct"&&i===t;if(await Y(e,"HEAD",t),!u){await Ua(e,t);let R=l?.type==="symbolic"?l.target.replace(/^refs\/heads\//,""):i??J;await ne(e,n,"HEAD",i,t,`checkout: moving from ${R} to ${t}`)}let m=await un(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:i,newHead:t,isBranchCheckout:!1});let h=V(t),p=ae(c.message),g=l?.type==="direct",w="";return g&&i&&i!==t&&(w+=await Bs(e,i,t)),g||!o?.detachAdviceTarget?w+=`HEAD is now at ${h} ${p}
136
136
  `:w=`Note: switching to '${o.detachAdviceTarget}'.
137
137
 
138
138
  You are in 'detached HEAD' state. You can look around, make experimental
@@ -151,91 +151,91 @@ Or undo this operation with:
151
151
  Turn off this advice by setting config variable advice.detachedHead to false
152
152
 
153
153
  HEAD is now at ${h} ${p}
154
- `,w+=m,{stdout:await zn(e,f,s),stderr:w,exitCode:0}}oe();ue();me();nn();var Qa=new Set(["help","start","skip","next","reset","visualize","view","replay","log","run","terms"]),jr={stdout:`You need to start by "git bisect start"
155
- `,stderr:"",exitCode:1};async function Xo(e){let t=await Ee(e,"BISECT_HEAD");if(t?.trim())return t.trim();let n=await X(e);return n||I("no current commit")}function ec(e,t){let n=e.command("bisect",{description:"Use binary search to find the commit that introduced a bug",args:[B.string().name("subcommand").describe("Subcommand or custom term").optional(),B.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]
156
- `,exitCode:1};let i=r.rest??[],a=await U(o.fs,o.cwd,t);return S(a)?a:Nl(a,o.env,t,s,i)}});Gl(n,t),Ll(n,t),Fl(n,t),Ul(n,t),Wl(n,t),ql(n,t),zl(n,t),Yl(n,t),Xl(n,t)}function Gl(e,t){e.command("start",{description:"Start bisecting",args:[B.string().name("revs").describe("Bad and good revisions").optional().variadic()],options:{"term-new":Q.string().describe("Alternate term for new/bad"),"term-bad":Q.string().describe("Alternate term for new/bad"),"term-old":Q.string().describe("Alternate term for old/good"),"term-good":Q.string().describe("Alternate term for old/good"),"no-checkout":H().describe("Do not checkout the bisection commit"),"first-parent":H().describe("Follow only first parent on merges")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=qe(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 Qa.has(a)?I(`'${a}' is not a valid term`):Qa.has(c)?I(`'${c}' is not a valid term`):a===c?I("'bad' and 'good' terms must be different"):tc(s,r.env,t,n.revs??[],a,c,n["no-checkout"]??!1,n["first-parent"]??!1)}})}async function tc(e,t,n,r,o,s,i,a){await wt(e)&&await Hs(e);let c=await Z(e),f;if(c?.type==="symbolic"?f=c.target.replace(/^refs\/heads\//,""):f=await X(e)??"HEAD",await $e(e,"BISECT_START",f+`
157
- `),await $e(e,"BISECT_TERMS",`${o}
154
+ `,w+=m,{stdout:await Xn(e,f,s),stderr:w,exitCode:0}}ie();de();le();an();var sc=new Set(["help","start","skip","next","reset","visualize","view","replay","log","run","terms"]),Wr={stdout:`You need to start by "git bisect start"
155
+ `,stderr:"",exitCode:1};async function ni(e){let t=await Ee(e,"BISECT_HEAD");if(t?.trim())return t.trim();let n=await X(e);return n||$("no current commit")}function oc(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]
156
+ `,exitCode:1};let a=r.rest??[],i=await B(o.fs,o.cwd,t);return v(i)?i:Ul(i,o.env,t,s,a)}});_l(n,t),Nl(n,t),Bl(n,t),Wl(n,t),Kl(n,t),zl(n,t),Yl(n,t),Zl(n,t),Jl(n,t)}function _l(e,t){e.command("start",{description:"Start bisecting",args:[q.string().name("revs").describe("Bad and good revisions").optional().variadic()],options:{"term-new":ee.string().describe("Alternate term for new/bad"),"term-bad":ee.string().describe("Alternate term for new/bad"),"term-old":ee.string().describe("Alternate term for old/good"),"term-good":ee.string().describe("Alternate term for old/good"),"no-checkout":H().describe("Do not checkout the bisection commit"),"first-parent":H().describe("Follow only first parent on merges")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=Ke(s);if(a&&!n["no-checkout"])return a;let i=n["term-new"]??n["term-bad"]??"bad",c=n["term-old"]??n["term-good"]??"good";return sc.has(i)?$(`'${i}' is not a valid term`):sc.has(c)?$(`'${c}' is not a valid term`):i===c?$("'bad' and 'good' terms must be different"):ic(s,r.env,t,n.revs??[],i,c,n["no-checkout"]??!1,n["first-parent"]??!1)}})}async function ic(e,t,n,r,o,s,a,i){await Et(e)&&await Ms(e);let c=await Z(e),f;if(c?.type==="symbolic"?f=c.target.replace(/^refs\/heads\//,""):f=await X(e)??"HEAD",await Oe(e,"BISECT_START",f+`
157
+ `),await Oe(e,"BISECT_TERMS",`${o}
158
158
  ${s}
159
- `),await $e(e,"BISECT_NAMES",`
160
- `),a&&await $e(e,"BISECT_FIRST_PARENT",""),i){let u=await X(e);u&&await $e(e,"BISECT_HEAD",u)}if(r.length>0){let u=r[0],m=await $t(e,u);if(S(m))return m;await Y(e,`refs/bisect/${o}`,m);let h=await M(e,m);await bt(e,`# ${o}: [${m}] ${ie(h.message)}`);for(let p=1;p<r.length;p++){let g=r[p],w=await $t(e,g);if(S(w))return w;await Y(e,`refs/bisect/${s}-${w}`,w);let k=await M(e,w);await bt(e,`# ${s}: [${w}] ${ie(k.message)}`)}}let d=r.map(u=>`'${u}'`),l=d.length>0?` ${d.join(" ")}`:"";return await bt(e,`git bisect start${l}`),Gr(e,t,n)}function Ll(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:[B.string().name("rev").describe("Revision to mark").optional()],handler:async(r,o)=>{let s=await U(o.fs,o.cwd,t);return S(s)?s:_l(s,o.env,t,n,r.rev)}})}async function _l(e,t,n,r,o){if(!await wt(e))return jr;let s=await Dr(e),i=r==="bad"||r==="new"?s.termBad:s.termGood;return Mr(e,t,n,i,s,o)}async function Nl(e,t,n,r,o){if(!await wt(e))return jr;let s=await Dr(e);return r!==s.termBad&&r!==s.termGood?{stdout:"",stderr:`error: unknown command: 'git bisect ${r}'
161
- `,exitCode:1}:Mr(e,t,n,r,s,o[0])}async function Mr(e,t,n,r,o,s){let i;if(s){let f=await $t(e,s);if(S(f))return f;i=f}else{let f=await Xo(e);if(S(f))return f;i=f}let a=await M(e,i),c=ie(a.message);return r===o.termBad?await Y(e,`refs/bisect/${o.termBad}`,i):await Y(e,`refs/bisect/${o.termGood}-${i}`,i),await bt(e,`# ${r}: [${i}] ${c}`),await bt(e,`git bisect ${r} ${i}`),Gr(e,t,n)}function Fl(e,t){e.command("skip",{description:"Mark a commit as untestable",args:[B.string().name("revs").describe("Revisions to skip").optional().variadic()],handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(!await wt(s))return jr;let i=n.revs??[];if(i.length===0){let a=await Xo(s);if(S(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 d=await $t(s,a);if(S(d))return d;c=d}await Y(s,`refs/bisect/skip-${c}`,c);let f=await M(s,c);await bt(s,`# skip: [${c}] ${ie(f.message)}`),await bt(s,`git bisect skip ${c}`)}return Gr(s,r.env,t)}})}function Ul(e,t){e.command("reset",{description:"Finish bisecting and return to original branch",args:[B.string().name("commit").describe("Branch or commit to checkout").optional()],handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;return await wt(s)?Bl(s,r.env,t,n.commit):{stdout:`We are not bisecting.
162
- `,stderr:"",exitCode:0}}})}async function Bl(e,t,n,r){let o=(await Ee(e,"BISECT_START"))?.trim()??"";if(await Hs(e),r){let s=await $t(e,r);return S(s)?s:Rn(e,s,t,n)}if(o){let s=`refs/heads/${o}`,i=await N(e,s);if(i)return ar(e,o,s,i,t,n);let a=await Be(e,o);if(a)return Rn(e,a,t,n)}return{stdout:"",stderr:"",exitCode:0}}function Wl(e,t){e.command("log",{description:"Show the bisect log",handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;return await wt(s)?{stdout:await Ee(s,"BISECT_LOG")??"",stderr:"",exitCode:0}:{stdout:"",stderr:`error: We are not bisecting.
163
- `,exitCode:1}}})}function ql(e,t){e.command("replay",{description:"Replay a bisect log",args:[B.string().name("logfile").describe("Path to bisect log file")],handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=n.logfile.startsWith("/")?n.logfile:T(r.cwd,n.logfile);if(!await r.fs.exists(i))return I(`cannot open '${n.logfile}': No such file or directory`);let a=await r.fs.readFile(i);return Kl(s,r.env,t,a)}})}async function Kl(e,t,n,r){await wt(e)&&await Hs(e);let o={termBad:"bad",termGood:"good"},s="";for(let i of r.split(`
164
- `)){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],d=c[2].trim(),l;if(f==="start"){let u=d?d.split(/\s+/).map(m=>m.replace(/^'|'$/g,"")):[];l=await tc(e,t,n,u,"bad","good",!1,!1)}else if(f==="bad"||f==="new")l=await Mr(e,t,n,"bad",o,d||void 0);else if(f==="good"||f==="old")l=await Mr(e,t,n,"good",o,d||void 0);else if(f==="skip"){for(let u of d?d.split(/\s+/):[]){await Y(e,`refs/bisect/skip-${u}`,u);let m=await M(e,u);await bt(e,`# skip: [${u}] ${ie(m.message)}`),await bt(e,`git bisect skip ${u}`)}l=await Gr(e,t,n)}else continue;if(l.exitCode!==0)return l;s+=l.stdout}return{stdout:s,stderr:"",exitCode:0}}function zl(e,t){e.command("run",{description:"Bisect by running a command",args:[B.string().name("cmd").describe("Command and arguments to run").variadic()],handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(!await wt(s))return jr;if(!r.exec)return I("bisect run requires shell execution support");let i=n.cmd.join(" ");return Vl(s,r.env,t,i,r.exec,r.cwd)}})}async function Vl(e,t,n,r,o,s){let i="";for(;;){i+=`running '${r}'
165
- `;let c=(await o(r,{cwd:s})).exitCode;if(c===125){let u=await Xo(e);if(S(u))return u;await Y(e,`refs/bisect/skip-${u}`,u);let m=await M(e,u);await bt(e,`# skip: [${u}] ${ie(m.message)}`),await bt(e,`git bisect skip ${u}`);let h=await Gr(e,t,n);if(i+=h.stdout,h.stdout.includes("is the first bad commit"))return i+=`bisect found first bad commit
166
- `,{stdout:i,stderr:"",exitCode:0};if(h.exitCode!==0)return{stdout:i,stderr:h.stderr,exitCode:h.exitCode};continue}let f=await Ts(e),d=c===0?f.termGood:f.termBad,l=await Mr(e,t,n,d,f,void 0);if(i+=l.stdout,l.stdout.includes("is the first bad commit"))return i+=`bisect found first bad commit
167
- `,{stdout:i,stderr:"",exitCode:0};if(l.exitCode!==0)return{stdout:i,stderr:l.stderr,exitCode:l.exitCode}}}function Yl(e,t){e.command("terms",{description:"Show the terms used for old and new commits",options:{"term-good":H().describe("Show the term for the old state"),"term-bad":H().describe("Show the term for the new state")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(!await wt(s))return{stdout:"",stderr:`error: no terms defined
168
- `,exitCode:1};let{termBad:i,termGood:a}=await Dr(s);return n["term-good"]?{stdout:`${a}
169
- `,stderr:"",exitCode:0}:n["term-bad"]?{stdout:`${i}
170
- `,stderr:"",exitCode:0}:{stdout:`Your current terms are ${a} for the old state
171
- and ${i} for the new state.
172
- `,stderr:"",exitCode:0}}})}function Xl(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 U(o.fs,o.cwd,t);if(S(s))return s;let i=s;if(!await wt(i))return jr;let a=await Ts(i);if(!a.badHash||a.goodHashes.length===0)return{stdout:"",stderr:`error: need both bad and good commits to visualize
173
- `,exitCode:1};let{walkCommits:c}=await Promise.resolve().then(()=>(Wn(),ja)),f="";for await(let d of c(i,a.badHash,{exclude:a.goodHashes}))f+=`${z(d.hash)} ${ie(d.commit.message)}
174
- `;return{stdout:f,stderr:"",exitCode:0}}})}async function Gr(e,t,n){let r=await Ts(e);return!r.badHash||r.goodHashes.length===0?{stdout:_a(r),stderr:"",exitCode:0}:(await $e(e,"BISECT_ANCESTORS_OK",""),Zl(e,t,n,r))}async function Zl(e,t,n,r){let o=await La(e,r.badHash,r.goodHashes,new Set(r.skipHashes),r.firstParent);if(!o)return{stdout:"",stderr:`error: no testable commits found
175
- `,exitCode:1};if(o.found){let s=await Fa(e,o.hash);return await bt(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.
159
+ `),await Oe(e,"BISECT_NAMES",`
160
+ `),i&&await Oe(e,"BISECT_FIRST_PARENT",""),a){let u=await X(e);u&&await Oe(e,"BISECT_HEAD",u)}if(r.length>0){let u=r[0],m=await Tt(e,u);if(v(m))return m;await Y(e,`refs/bisect/${o}`,m);let h=await M(e,m);await kt(e,`# ${o}: [${m}] ${ae(h.message)}`);for(let p=1;p<r.length;p++){let g=r[p],w=await Tt(e,g);if(v(w))return w;await Y(e,`refs/bisect/${s}-${w}`,w);let y=await M(e,w);await kt(e,`# ${s}: [${w}] ${ae(y.message)}`)}}let d=r.map(u=>`'${u}'`),l=d.length>0?` ${d.join(" ")}`:"";return await kt(e,`git bisect start${l}`),qr(e,t,n)}function Nl(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 B(o.fs,o.cwd,t);return v(s)?s:Fl(s,o.env,t,n,r.rev)}})}async function Fl(e,t,n,r,o){if(!await Et(e))return Wr;let s=await Ur(e),a=r==="bad"||r==="new"?s.termBad:s.termGood;return Br(e,t,n,a,s,o)}async function Ul(e,t,n,r,o){if(!await Et(e))return Wr;let s=await Ur(e);return r!==s.termBad&&r!==s.termGood?{stdout:"",stderr:`error: unknown command: 'git bisect ${r}'
161
+ `,exitCode:1}:Br(e,t,n,r,s,o[0])}async function Br(e,t,n,r,o,s){let a;if(s){let f=await Tt(e,s);if(v(f))return f;a=f}else{let f=await ni(e);if(v(f))return f;a=f}let i=await M(e,a),c=ae(i.message);return r===o.termBad?await Y(e,`refs/bisect/${o.termBad}`,a):await Y(e,`refs/bisect/${o.termGood}-${a}`,a),await kt(e,`# ${r}: [${a}] ${c}`),await kt(e,`git bisect ${r} ${a}`),qr(e,t,n)}function Bl(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 B(r.fs,r.cwd,t);if(v(o))return o;let s=o;if(!await Et(s))return Wr;let a=n.revs??[];if(a.length===0){let i=await ni(s);if(v(i))return i;a.push(i)}for(let i of a){let c;if(i.length===40&&/^[0-9a-f]+$/.test(i))c=i;else{let d=await Tt(s,i);if(v(d))return d;c=d}await Y(s,`refs/bisect/skip-${c}`,c);let f=await M(s,c);await kt(s,`# skip: [${c}] ${ae(f.message)}`),await kt(s,`git bisect skip ${c}`)}return qr(s,r.env,t)}})}function Wl(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 B(r.fs,r.cwd,t);if(v(o))return o;let s=o;return await Et(s)?ql(s,r.env,t,n.commit):{stdout:`We are not bisecting.
162
+ `,stderr:"",exitCode:0}}})}async function ql(e,t,n,r){let o=(await Ee(e,"BISECT_START"))?.trim()??"";if(await Ms(e),r){let s=await Tt(e,r);return v(s)?s:Tn(e,s,t,n)}if(o){let s=`refs/heads/${o}`,a=await U(e,s);if(a)return dr(e,o,s,a,t,n);let i=await We(e,o);if(i)return Tn(e,i,t,n)}return{stdout:"",stderr:"",exitCode:0}}function Kl(e,t){e.command("log",{description:"Show the bisect log",handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o;return await Et(s)?{stdout:await Ee(s,"BISECT_LOG")??"",stderr:"",exitCode:0}:{stdout:"",stderr:`error: We are not bisecting.
163
+ `,exitCode:1}}})}function zl(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 B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=n.logfile.startsWith("/")?n.logfile:T(r.cwd,n.logfile);if(!await r.fs.exists(a))return $(`cannot open '${n.logfile}': No such file or directory`);let i=await r.fs.readFile(a);return Vl(s,r.env,t,i)}})}async function Vl(e,t,n,r){await Et(e)&&await Ms(e);let o={termBad:"bad",termGood:"good"},s="";for(let a of r.split(`
164
+ `)){let i=a.trim();if(!i||i.startsWith("#"))continue;let c=i.match(/^git[\s-]bisect\s+(\S+)(.*)$/);if(!c)continue;let f=c[1],d=c[2].trim(),l;if(f==="start"){let u=d?d.split(/\s+/).map(m=>m.replace(/^'|'$/g,"")):[];l=await ic(e,t,n,u,"bad","good",!1,!1)}else if(f==="bad"||f==="new")l=await Br(e,t,n,"bad",o,d||void 0);else if(f==="good"||f==="old")l=await Br(e,t,n,"good",o,d||void 0);else if(f==="skip"){for(let u of d?d.split(/\s+/):[]){await Y(e,`refs/bisect/skip-${u}`,u);let m=await M(e,u);await kt(e,`# skip: [${u}] ${ae(m.message)}`),await kt(e,`git bisect skip ${u}`)}l=await qr(e,t,n)}else continue;if(l.exitCode!==0)return l;s+=l.stdout}return{stdout:s,stderr:"",exitCode:0}}function Yl(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 B(r.fs,r.cwd,t);if(v(o))return o;let s=o;if(!await Et(s))return Wr;if(!r.exec)return $("bisect run requires shell execution support");let a=n.cmd.join(" ");return Xl(s,r.env,t,a,r.exec,r.cwd)}})}async function Xl(e,t,n,r,o,s){let a="";for(;;){a+=`running '${r}'
165
+ `;let c=(await o(r,{cwd:s})).exitCode;if(c===125){let u=await ni(e);if(v(u))return u;await Y(e,`refs/bisect/skip-${u}`,u);let m=await M(e,u);await kt(e,`# skip: [${u}] ${ae(m.message)}`),await kt(e,`git bisect skip ${u}`);let h=await qr(e,t,n);if(a+=h.stdout,h.stdout.includes("is the first bad commit"))return a+=`bisect found first bad commit
166
+ `,{stdout:a,stderr:"",exitCode:0};if(h.exitCode!==0)return{stdout:a,stderr:h.stderr,exitCode:h.exitCode};continue}let f=await Ds(e),d=c===0?f.termGood:f.termBad,l=await Br(e,t,n,d,f,void 0);if(a+=l.stdout,l.stdout.includes("is the first bad commit"))return a+=`bisect found first bad commit
167
+ `,{stdout:a,stderr:"",exitCode:0};if(l.exitCode!==0)return{stdout:a,stderr:l.stderr,exitCode:l.exitCode}}}function Zl(e,t){e.command("terms",{description:"Show the terms used for old and new commits",options:{"term-good":H().describe("Show the term for the old state"),"term-bad":H().describe("Show the term for the new state")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o;if(!await Et(s))return{stdout:"",stderr:`error: no terms defined
168
+ `,exitCode:1};let{termBad:a,termGood:i}=await Ur(s);return n["term-good"]?{stdout:`${i}
169
+ `,stderr:"",exitCode:0}:n["term-bad"]?{stdout:`${a}
170
+ `,stderr:"",exitCode:0}:{stdout:`Your current terms are ${i} for the old state
171
+ and ${a} for the new state.
172
+ `,stderr:"",exitCode:0}}})}function Jl(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 B(o.fs,o.cwd,t);if(v(s))return s;let a=s;if(!await Et(a))return Wr;let i=await Ds(a);if(!i.badHash||i.goodHashes.length===0)return{stdout:"",stderr:`error: need both bad and good commits to visualize
173
+ `,exitCode:1};let{walkCommits:c}=await Promise.resolve().then(()=>(zn(),Fa)),f="";for await(let d of c(a,i.badHash,{exclude:i.goodHashes}))f+=`${V(d.hash)} ${ae(d.commit.message)}
174
+ `;return{stdout:f,stderr:"",exitCode:0}}})}async function qr(e,t,n){let r=await Ds(e);return!r.badHash||r.goodHashes.length===0?{stdout:Wa(r),stderr:"",exitCode:0}:(await Oe(e,"BISECT_ANCESTORS_OK",""),Ql(e,t,n,r))}async function Ql(e,t,n,r){let o=await Ba(e,r.badHash,r.goodHashes,new Set(r.skipHashes),r.firstParent);if(!o)return{stdout:"",stderr:`error: no testable commits found
175
+ `,exitCode:1};if(o.found){let s=await Ka(e,o.hash);return await kt(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.
176
176
  The first bad commit could be any of:
177
- `;for(let i of r.skipHashes)s+=i+`
177
+ `;for(let a of r.skipHashes)s+=a+`
178
178
  `;return r.badHash&&(s+=r.badHash+`
179
179
  `),s+=`We cannot bisect more!
180
- `,{stdout:s,stderr:"",exitCode:2}}if(r.noCheckout)await $e(e,"BISECT_HEAD",o.hash);else{let s=await Rn(e,o.hash,t,n);if(s.exitCode!==0)return s}return await $e(e,"BISECT_EXPECTED_REV",o.hash+`
181
- `),{stdout:Na(o),stderr:"",exitCode:0}}ne();oe();function vt(e){if(e.length===0)return[];let t=e.split(`
182
- `);return t[t.length-1]===""&&t.pop(),t}function Nt(e){if(e.length===0)return[];let t=[],n=0;for(let r=0;r<e.length;r++)e[r]===`
183
- `&&(t.push(e.slice(n,r+1)),n=r+1);return n<e.length&&t.push(e.slice(n)),t}var Jl=4,nc=1024,_s=100,Us=0,Ns=1,cr=2;function Jo(e){let t=1;for(;t*t<e;)t++;return t}function Ql(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 eu(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 rc(e,t,n,r){t-n>_s&&(n=t-_s),r-t>_s&&(r=t+_s);let o=0,s=1;for(let c=1;t-c>=n;c++){let f=e[t-c];if(f===Us)o++;else if(f===cr)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===Us)i++;else if(f===cr)a++;else break}return i===0?!1:(i+=o,a+=s,a*Jl<a+i)}function tu(e,t,n,r,o,s,i,a,c,f){let d=new Uint8Array(t),l=new Uint8Array(r),u=Math.min(Jo(t),nc);for(let g=s;g<=i;g++){let w=o[e[g]].len2;w===0?d[g]=Us:w>=u?d[g]=cr:d[g]=Ns}let m=Math.min(Jo(r),nc);for(let g=s;g<=a;g++){let w=o[n[g]].len1;w===0?l[g]=Us:w>=m?l[g]=cr:l[g]=Ns}let h=[];for(let g=s;g<=i;g++)d[g]===Ns||d[g]===cr&&!rc(d,g,s,i)?h.push(g):c[g]=1;let p=[];for(let g=s;g<=a;g++)l[g]===Ns||l[g]===cr&&!rc(l,g,s,a)?p.push(g):f[g]=1;return{refIndex1:h,nreff1:h.length,refIndex2:p,nreff2:p.length}}var $n=20,sc=4,nu=256,ru=256,Fs=2147483647;function ut(e,t){return e[t]??0}function su(e,t,n,r,o,s,i,a,c,f){let d=t-s,l=n-o,u=t-o,m=n-s,h=u-m&1,p=u,g=u,w=m,k=m;i[u]=t,a[m]=n;for(let b=1;;b++){let E=!1;p>d?i[--p-1]=-1:++p,g<l?i[++g+1]=-1:--g;for(let x=g;x>=p;x-=2){let P;ut(i,x-1)>=ut(i,x+1)?P=ut(i,x-1)+1:P=ut(i,x+1);let C=P,R=P-x;for(;P<n&&R<s&&e[P]===r[R];)P++,R++;if(P-C>$n&&(E=!0),i[x]=P,h&&w<=x&&x<=k&&ut(a,x)<=P)return{i1:P,i2:R,minLo:!0,minHi:!0}}w>d?a[--w-1]=Fs:++w,k<l?a[++k+1]=Fs:--k;for(let x=k;x>=w;x-=2){let P;ut(a,x-1)<ut(a,x+1)?P=ut(a,x-1):P=ut(a,x+1)-1;let C=P,R=P-x;for(;P>t&&R>o&&e[P-1]===r[R-1];)P--,R--;if(C-P>$n&&(E=!0),a[x]=P,!h&&p<=x&&x<=g&&P<=ut(i,x))return{i1:P,i2:R,minLo:!0,minHi:!0}}if(!c){if(E&&b>nu){let x=0,P=null;for(let C=g;C>=p;C-=2){let R=C>u?C-u:u-C,y=ut(i,C),$=y-C,A=y-t+($-o)-R;if(A>sc*b&&A>x&&t+$n<=y&&y<n&&o+$n<=$&&$<s){let L=!0;for(let G=1;G<=$n;G++)if(e[y-G]!==r[$-G]){L=!1;break}L&&(x=A,P={i1:y,i2:$,minLo:!0,minHi:!1})}}if(P)return P;x=0,P=null;for(let C=k;C>=w;C-=2){let R=C>m?C-m:m-C,y=ut(a,C),$=y-C,A=n-y+(s-$)-R;if(A>sc*b&&A>x&&t<y&&y<=n-$n&&o<$&&$<=s-$n){let L=!0;for(let G=0;G<$n;G++)if(e[y+G]!==r[$+G]){L=!1;break}L&&(x=A,P={i1:y,i2:$,minLo:!1,minHi:!0})}}if(P)return P}if(b>=f){let x=-1,P=-1;for(let y=g;y>=p;y-=2){let $=Math.min(ut(i,y),n),A=$-y;s<A&&($=s+y,A=s),x<$+A&&(x=$+A,P=$)}let C=Fs,R=Fs;for(let y=k;y>=w;y-=2){let $=Math.max(t,ut(a,y)),A=$-y;A<o&&($=o+y,A=o),$+A<C&&(C=$+A,R=$)}return n+s-C<x-(t+o)?{i1:P,i2:x-P,minLo:!0,minHi:!1}:{i1:R,i2:C-R,minLo:!1,minHi:!0}}}}}function Qo(e,t,n,r,o,s,i,a,c,f,d,l,u,m){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 h=o;h<s;h++)a[f[h]]=1;else if(o===s)for(let h=t;h<n;h++)i[c[h]]=1;else{let h=su(e,t,n,r,o,s,d,l,u,m);Qo(e,t,h.i1,r,o,h.i2,i,a,c,f,d,l,h.minLo,m),Qo(e,h.i1,n,r,h.i2,s,i,a,c,f,d,l,h.minHi,m)}}function ou(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 oc=200,ic=20,ac=100,iu=1,au=21,cu=-30,fu=6,du=-4,lu=10,uu=24,mu=17,hu=23,pu=17,gu=60;function Zo(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>=oc)return oc}return-1}function cc(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=Zo(e[n]));for(let o=n-1;o>=0&&(r.preIndent=Zo(e[o]),r.preIndent===-1);o--)if(r.preBlank+=1,r.preBlank===ic){r.preIndent=0;break}for(let o=n+1;o<t&&(r.postIndent=Zo(e[o]),r.postIndent===-1);o++)if(r.postBlank+=1,r.postBlank===ic){r.postIndent=0;break}return r}function fc(e,t){e.preIndent===-1&&e.preBlank===0&&(t.penalty+=iu),e.endOfFile&&(t.penalty+=au);let n=e.indent===-1?1+e.postBlank:0,r=e.preBlank+n;t.penalty+=cu*r,t.penalty+=fu*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?lu:du:o===e.preIndent||(e.postIndent!==-1&&e.postIndent>o?t.penalty+=s?mu:uu:t.penalty+=s?pu:hu))}function wu(e,t){let n=(e.effectiveIndent>t.effectiveIndent?1:0)-(e.effectiveIndent<t.effectiveIndent?1:0);return gu*n+(e.penalty-t.penalty)}function dc(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 d=(l,u)=>t[l]===t[u];for(;;){if(a!==i){let l,u,m;do{for(l=a-i,u=-1;i>0&&d(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(m=a,f>c&&(u=a);!(a>=r||!d(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(l!==a-i);if(a!==m)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 h=-1,p={effectiveIndent:0,penalty:0},g=m;for(a-l-1>g&&(g=a-l-1),a-ac>g&&(g=a-ac);g<=a;g++){let w={effectiveIndent:0,penalty:0},k=cc(n,r,g);fc(k,w);let b=cc(n,r,g-l);fc(b,w),(h===-1||wu(w,p)<=0)&&(p={effectiveIndent:w.effectiveIndent,penalty:w.penalty},h=g)}for(;a>h;){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 ei(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}=Ql(e,t),{dstart:f,dend1:d,dend2:l}=eu(i,n,a,r);if(f>d)for(let u=f;u<r-(n-1-d);u++)s[u]=1;else if(f>l)for(let u=f;u<n-(r-1-l);u++)o[u]=1;else{let{refIndex1:u,nreff1:m,refIndex2:h,nreff2:p}=tu(i,n,a,r,c,f,d,l,o,s);if(m>0&&p>0){let g=new Array(m);for(let P=0;P<m;P++)g[P]=i[u[P]];let w=new Array(p);for(let P=0;P<p;P++)w[P]=a[h[P]];let k={},b={},E=m+p+3,x=Math.max(ru,Jo(E));Qo(g,0,m,w,0,p,o,s,u,h,k,b,!1,x)}else if(m===0)for(let g=0;g<p;g++)s[h[g]]=1;else for(let g=0;g<m;g++)o[u[g]]=1;dc(o,i,e,n,s,r),dc(s,a,t,r,o,n)}}else n===0?s.fill(1):o.fill(1);return{changedOld:o,changedNew:s}}function it(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}=ei(e,t);return ou(e,t,o,s)}var bu=3;function yu(e,t=bu){if(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),d=Math.min(e.length-1,c+t);f<=i+1||(o.push({start:s,end:i}),s=f),i=d}return o.push({start:s,end:i}),o.map(a=>Eu(e,a.start,a.end))}function Eu(e,t,n){let r=0,o=0,s=0,i=0,a=[],c=!1,f=!1;for(let d=t;d<=n;d++){let l=e[d];if(l)switch(l.type){case"keep":c||(r=l.oldLineNo,c=!0),f||(s=l.newLineNo,f=!0),o++,i++,a.push({type:"context",content:l.line});break;case"delete":c||(r=l.oldLineNo,c=!0),o++,a.push({type:"delete",content:l.line});break;case"insert":f||(s=l.newLineNo,f=!0),i++,a.push({type:"insert",content:l.line});break}}if(c||(r=s>0?s:1),f||(s=r>0?r:1),o===0)for(let d=t;d<=n;d++){let l=e[d];if(l&&l.type==="insert"){r=l.newLineNo>1?l.newLineNo-1:0;break}}if(i===0)for(let d=t;d<=n;d++){let l=e[d];if(l&&l.type==="delete"){s=l.oldLineNo>1?l.oldLineNo-1:0;break}}return{oldStart:r,oldCount:o,newStart:s,newCount:i,lines:a}}function Bs(e){return e?e.length<40?e:z(e):"0000000"}function lc(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 ku(e,t,n){let{path:r,oldContent:o,newContent:s,oldMode:i,oldHash:a,newHash:c}=e,f=e.renameTo!==void 0,d=e.renameTo??r,l=e.isNew??o==="",u=e.isDeleted??s==="";if(o===s&&!f)return"";let m=[];if(lc(m,e,d,l,u,f),o!==s){if(a||c){let h=Bs(a),p=Bs(c);l||u||f?m.push(`index ${h}..${p}`):m.push(`index ${h}..${p} ${i||"100644"}`)}t&&n?m.push(`Binary files a/${r} and b/${d} differ`):l?m.push(`Binary files /dev/null and b/${d} differ`):u?m.push(`Binary files a/${r} and /dev/null differ`):m.push(`Binary files a/${r} and b/${d} differ`)}return`${m.join(`
180
+ `,{stdout:s,stderr:"",exitCode:2}}if(r.noCheckout)await Oe(e,"BISECT_HEAD",o.hash);else{let s=await Tn(e,o.hash,t,n);if(s.exitCode!==0)return s}return await Oe(e,"BISECT_EXPECTED_REV",o.hash+`
181
+ `),{stdout:qa(o),stderr:"",exitCode:0}}re();ie();function Mt(e){if(e.length===0)return[];let t=e.split(`
182
+ `);return t[t.length-1]===""&&t.pop(),t}function Wt(e){if(e.length===0)return[];let t=[],n=0;for(let r=0;r<e.length;r++)e[r]===`
183
+ `&&(t.push(e.slice(n,r+1)),n=r+1);return n<e.length&&t.push(e.slice(n)),t}var eu=4,ac=1024,Ws=100,zs=0,qs=1,lr=2;function si(e){let t=1;for(;t*t<e;)t++;return t}function tu(e,t){let n=new Map,r=[],o=new Array(e.length),s=new Array(t.length);for(let a=0;a<e.length;a++){let i=e[a],c=n.get(i);c===void 0&&(c=r.length,n.set(i,c),r.push({len1:0,len2:0})),r[c].len1++,o[a]=c}for(let a=0;a<t.length;a++){let i=t[a],c=n.get(i);c===void 0&&(c=r.length,n.set(i,c),r.push({len1:0,len2:0})),r[c].len2++,s[a]=c}return{classes1:o,classes2:s,classInfo:r}}function nu(e,t,n,r){let o=0,s=Math.min(t,r);for(;o<s&&e[o]===n[o];)o++;let a=o,i=0,c=s-a;for(;i<c&&e[t-1-i]===n[r-1-i];)i++;return{dstart:a,dend1:t-i-1,dend2:r-i-1}}function cc(e,t,n,r){t-n>Ws&&(n=t-Ws),r-t>Ws&&(r=t+Ws);let o=0,s=1;for(let c=1;t-c>=n;c++){let f=e[t-c];if(f===zs)o++;else if(f===lr)s++;else break}if(o===0)return!1;let a=0,i=1;for(let c=1;t+c<=r;c++){let f=e[t+c];if(f===zs)a++;else if(f===lr)i++;else break}return a===0?!1:(a+=o,i+=s,i*eu<i+a)}function ru(e,t,n,r,o,s,a,i,c,f){let d=new Uint8Array(t),l=new Uint8Array(r),u=Math.min(si(t),ac);for(let g=s;g<=a;g++){let w=o[e[g]].len2;w===0?d[g]=zs:w>=u?d[g]=lr:d[g]=qs}let m=Math.min(si(r),ac);for(let g=s;g<=i;g++){let w=o[n[g]].len1;w===0?l[g]=zs:w>=m?l[g]=lr:l[g]=qs}let h=[];for(let g=s;g<=a;g++)d[g]===qs||d[g]===lr&&!cc(d,g,s,a)?h.push(g):c[g]=1;let p=[];for(let g=s;g<=i;g++)l[g]===qs||l[g]===lr&&!cc(l,g,s,i)?p.push(g):f[g]=1;return{refIndex1:h,nreff1:h.length,refIndex2:p,nreff2:p.length}}var Hn=20,fc=4,su=256,ou=256,Ks=2147483647;function pt(e,t){return e[t]??0}function iu(e,t,n,r,o,s,a,i,c,f){let d=t-s,l=n-o,u=t-o,m=n-s,h=u-m&1,p=u,g=u,w=m,y=m;a[u]=t,i[m]=n;for(let R=1;;R++){let b=!1;p>d?a[--p-1]=-1:++p,g<l?a[++g+1]=-1:--g;for(let E=g;E>=p;E-=2){let k;pt(a,E-1)>=pt(a,E+1)?k=pt(a,E-1)+1:k=pt(a,E+1);let C=k,O=k-E;for(;k<n&&O<s&&e[k]===r[O];)k++,O++;if(k-C>Hn&&(b=!0),a[E]=k,h&&w<=E&&E<=y&&pt(i,E)<=k)return{i1:k,i2:O,minLo:!0,minHi:!0}}w>d?i[--w-1]=Ks:++w,y<l?i[++y+1]=Ks:--y;for(let E=y;E>=w;E-=2){let k;pt(i,E-1)<pt(i,E+1)?k=pt(i,E-1):k=pt(i,E+1)-1;let C=k,O=k-E;for(;k>t&&O>o&&e[k-1]===r[O-1];)k--,O--;if(C-k>Hn&&(b=!0),i[E]=k,!h&&p<=E&&E<=g&&k<=pt(a,E))return{i1:k,i2:O,minLo:!0,minHi:!0}}if(!c){if(b&&R>su){let E=0,k=null;for(let C=g;C>=p;C-=2){let O=C>u?C-u:u-C,x=pt(a,C),P=x-C,I=x-t+(P-o)-O;if(I>fc*R&&I>E&&t+Hn<=x&&x<n&&o+Hn<=P&&P<s){let G=!0;for(let j=1;j<=Hn;j++)if(e[x-j]!==r[P-j]){G=!1;break}G&&(E=I,k={i1:x,i2:P,minLo:!0,minHi:!1})}}if(k)return k;E=0,k=null;for(let C=y;C>=w;C-=2){let O=C>m?C-m:m-C,x=pt(i,C),P=x-C,I=n-x+(s-P)-O;if(I>fc*R&&I>E&&t<x&&x<=n-Hn&&o<P&&P<=s-Hn){let G=!0;for(let j=0;j<Hn;j++)if(e[x+j]!==r[P+j]){G=!1;break}G&&(E=I,k={i1:x,i2:P,minLo:!1,minHi:!0})}}if(k)return k}if(R>=f){let E=-1,k=-1;for(let x=g;x>=p;x-=2){let P=Math.min(pt(a,x),n),I=P-x;s<I&&(P=s+x,I=s),E<P+I&&(E=P+I,k=P)}let C=Ks,O=Ks;for(let x=y;x>=w;x-=2){let P=Math.max(t,pt(i,x)),I=P-x;I<o&&(P=o+x,I=o),P+I<C&&(C=P+I,O=P)}return n+s-C<E-(t+o)?{i1:k,i2:E-k,minLo:!0,minHi:!1}:{i1:O,i2:C-O,minLo:!1,minHi:!0}}}}}function oi(e,t,n,r,o,s,a,i,c,f,d,l,u,m){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 h=o;h<s;h++)i[f[h]]=1;else if(o===s)for(let h=t;h<n;h++)a[c[h]]=1;else{let h=iu(e,t,n,r,o,s,d,l,u,m);oi(e,t,h.i1,r,o,h.i2,a,i,c,f,d,l,h.minLo,m),oi(e,h.i1,n,r,h.i2,s,a,i,c,f,d,l,h.minHi,m)}}function au(e,t,n,r){let o=[],s=0,a=0,i=1,c=1;for(;s<e.length||a<t.length;){if(s<e.length&&a<t.length&&!n[s]&&!r[a]){o.push({type:"keep",line:e[s]??"",oldLineNo:i++,newLineNo:c++}),s++,a++;continue}for(;s<e.length&&n[s];)o.push({type:"delete",line:e[s]??"",oldLineNo:i++,newLineNo:0}),s++;for(;a<t.length&&r[a];)o.push({type:"insert",line:t[a]??"",oldLineNo:0,newLineNo:c++}),a++}return o}var dc=200,lc=20,uc=100,cu=1,fu=21,du=-30,lu=6,uu=-4,mu=10,hu=24,pu=17,gu=23,wu=17,bu=60;function ri(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>=dc)return dc}return-1}function mc(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=ri(e[n]));for(let o=n-1;o>=0&&(r.preIndent=ri(e[o]),r.preIndent===-1);o--)if(r.preBlank+=1,r.preBlank===lc){r.preIndent=0;break}for(let o=n+1;o<t&&(r.postIndent=ri(e[o]),r.postIndent===-1);o++)if(r.postBlank+=1,r.postBlank===lc){r.postIndent=0;break}return r}function hc(e,t){e.preIndent===-1&&e.preBlank===0&&(t.penalty+=cu),e.endOfFile&&(t.penalty+=fu);let n=e.indent===-1?1+e.postBlank:0,r=e.preBlank+n;t.penalty+=du*r,t.penalty+=lu*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?mu:uu:o===e.preIndent||(e.postIndent!==-1&&e.postIndent>o?t.penalty+=s?pu:hu:t.penalty+=s?wu:gu))}function yu(e,t){let n=(e.effectiveIndent>t.effectiveIndent?1:0)-(e.effectiveIndent<t.effectiveIndent?1:0);return bu*n+(e.penalty-t.penalty)}function pc(e,t,n,r,o,s){let a=0,i=0;for(;e[i];)i++;let c=0,f=0;for(;o[f];)f++;let d=(l,u)=>t[l]===t[u];for(;;){if(i!==a){let l,u,m;do{for(l=i-a,u=-1;a>0&&d(a-1,i-1);){for(e[--a]=1,e[--i]=0;e[a-1];)a--;if(c===0)break;for(f=c-1,c=f;o[c-1];c--);}for(m=i,f>c&&(u=i);!(i>=r||!d(a,i));){for(e[a++]=0,e[i++]=1;e[i];)i++;if(f>=s)break;for(c=f+1,f=c;o[f];f++);f>c&&(u=i)}}while(l!==i-a);if(i!==m)if(u!==-1)for(;f===c;){for(e[--i]=0,e[--a]=1;e[a-1];)a--;for(f=c-1,c=f;o[c-1];c--);}else{let h=-1,p={effectiveIndent:0,penalty:0},g=m;for(i-l-1>g&&(g=i-l-1),i-uc>g&&(g=i-uc);g<=i;g++){let w={effectiveIndent:0,penalty:0},y=mc(n,r,g);hc(y,w);let R=mc(n,r,g-l);hc(R,w),(h===-1||yu(w,p)<=0)&&(p={effectiveIndent:w.effectiveIndent,penalty:w.penalty},h=g)}for(;i>h;){for(e[--i]=0,e[--a]=1;e[a-1];)a--;for(f=c-1,c=f;o[c-1];c--);}}}if(i>=r)break;for(a=i+1,i=a;e[i];i++);if(f>=s)break;for(c=f+1,f=c;o[f];f++);}}function ii(e,t){let n=e.length,r=t.length,o=new Uint8Array(n),s=new Uint8Array(r);if(n>0&&r>0){let{classes1:a,classes2:i,classInfo:c}=tu(e,t),{dstart:f,dend1:d,dend2:l}=nu(a,n,i,r);if(f>d)for(let u=f;u<r-(n-1-d);u++)s[u]=1;else if(f>l)for(let u=f;u<n-(r-1-l);u++)o[u]=1;else{let{refIndex1:u,nreff1:m,refIndex2:h,nreff2:p}=ru(a,n,i,r,c,f,d,l,o,s);if(m>0&&p>0){let g=new Array(m);for(let k=0;k<m;k++)g[k]=a[u[k]];let w=new Array(p);for(let k=0;k<p;k++)w[k]=i[h[k]];let y={},R={},b=m+p+3,E=Math.max(ou,si(b));oi(g,0,m,w,0,p,o,s,u,h,y,R,!1,E)}else if(m===0)for(let g=0;g<p;g++)s[h[g]]=1;else for(let g=0;g<m;g++)o[u[g]]=1;pc(o,a,e,n,s,r),pc(s,i,t,r,o,n)}}else n===0?s.fill(1):o.fill(1);return{changedOld:o,changedNew:s}}function ft(e,t){let n=e.length,r=t.length;if(n===0&&r===0)return[];if(n===0)return t.map((a,i)=>({type:"insert",line:a,oldLineNo:0,newLineNo:i+1}));if(r===0)return e.map((a,i)=>({type:"delete",line:a,oldLineNo:i+1,newLineNo:0}));let{changedOld:o,changedNew:s}=ii(e,t);return au(e,t,o,s)}var Eu=3;function ku(e,t=Eu){if(e.length===0)return[];let n=[];for(let i=0;i<e.length;i++){let c=e[i];c&&c.type!=="keep"&&n.push(i)}if(n.length===0)return[];let r=n[0]??0,o=[],s=Math.max(0,r-t),a=Math.min(e.length-1,r+t);for(let i=1;i<n.length;i++){let c=n[i]??0,f=Math.max(0,c-t),d=Math.min(e.length-1,c+t);f<=a+1||(o.push({start:s,end:a}),s=f),a=d}return o.push({start:s,end:a}),o.map(i=>Ru(e,i.start,i.end))}function Ru(e,t,n){let r=0,o=0,s=0,a=0,i=[],c=!1,f=!1;for(let d=t;d<=n;d++){let l=e[d];if(l)switch(l.type){case"keep":c||(r=l.oldLineNo,c=!0),f||(s=l.newLineNo,f=!0),o++,a++,i.push({type:"context",content:l.line});break;case"delete":c||(r=l.oldLineNo,c=!0),o++,i.push({type:"delete",content:l.line});break;case"insert":f||(s=l.newLineNo,f=!0),a++,i.push({type:"insert",content:l.line});break}}if(c||(r=s>0?s:1),f||(s=r>0?r:1),o===0)for(let d=t;d<=n;d++){let l=e[d];if(l&&l.type==="insert"){r=l.newLineNo>1?l.newLineNo-1:0;break}}if(a===0)for(let d=t;d<=n;d++){let l=e[d];if(l&&l.type==="delete"){s=l.oldLineNo>1?l.oldLineNo-1:0;break}}return{oldStart:r,oldCount:o,newStart:s,newCount:a,lines:i}}function Vs(e){return e?e.length<40?e:V(e):"0000000"}function gc(e,t,n,r,o,s){let{path:a,oldMode:i,newMode:c}=t;e.push(`diff --git a/${a} b/${n}`),s?(e.push(`similarity index ${t.similarity??100}%`),e.push(`rename from ${a}`),e.push(`rename to ${n}`)):r?e.push(`new file mode ${c||"100644"}`):o?e.push(`deleted file mode ${i||"100644"}`):i&&c&&i!==c&&(e.push(`old mode ${i}`),e.push(`new mode ${c}`))}function xu(e,t,n){let{path:r,oldContent:o,newContent:s,oldMode:a,oldHash:i,newHash:c}=e,f=e.renameTo!==void 0,d=e.renameTo??r,l=e.isNew??o==="",u=e.isDeleted??s==="";if(o===s&&!f)return"";let m=[];if(gc(m,e,d,l,u,f),o!==s){if(i||c){let h=Vs(i),p=Vs(c);l||u||f?m.push(`index ${h}..${p}`):m.push(`index ${h}..${p} ${a||"100644"}`)}t&&n?m.push(`Binary files a/${r} and b/${d} differ`):l?m.push(`Binary files /dev/null and b/${d} differ`):u?m.push(`Binary files a/${r} and /dev/null differ`):m.push(`Binary files a/${r} and b/${d} differ`)}return`${m.join(`
184
184
  `)}
185
- `}function yt(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,d=Oe(n),l=Oe(r);if(d||l)return ku(e,d,l);let u=vt(n),m=vt(r),h=n.length>0&&n.endsWith(`
185
+ `}function Rt(e){let{path:t,oldContent:n,newContent:r,oldMode:o,newMode:s,oldHash:a,newHash:i}=e,c=e.renameTo!==void 0,f=e.renameTo??t,d=Te(n),l=Te(r);if(d||l)return xu(e,d,l);let u=Mt(n),m=Mt(r),h=n.length>0&&n.endsWith(`
186
186
  `),p=r.length>0&&r.endsWith(`
187
- `),g="\0NOEOL",w=u;!h&&u.length>0&&(w=u.slice(),w[w.length-1]+=g);let k=m;!p&&m.length>0&&(k=m.slice(),k[k.length-1]+=g);let b=it(w,k);if(!h||!p)for(let A of b)A.line.includes(g)&&(A.line=A.line.replace(g,""));let E=yu(b);if(E.length===0&&!c)return"";let x=e.isNew??n==="",P=e.isDeleted??r==="",C=[];if(lc(C,e,f,x,P,c),E.length===0)return`${C.join(`
187
+ `),g="\0NOEOL",w=u;!h&&u.length>0&&(w=u.slice(),w[w.length-1]+=g);let y=m;!p&&m.length>0&&(y=m.slice(),y[y.length-1]+=g);let R=ft(w,y);if(!h||!p)for(let I of R)I.line.includes(g)&&(I.line=I.line.replace(g,""));let b=ku(R);if(b.length===0&&!c)return"";let E=e.isNew??n==="",k=e.isDeleted??r==="",C=[];if(gc(C,e,f,E,k,c),b.length===0)return`${C.join(`
188
188
  `)}
189
- `;if(i||a){let A=Bs(i),L=Bs(a);x||P?C.push(`index ${A}..${L}`):c?C.push(`index ${A}..${L} ${o||"100644"}`):o&&s&&o!==s?C.push(`index ${A}..${L}`):C.push(`index ${A}..${L} ${o||"100644"}`)}let R=A=>A.includes(" ")?" ":"";x?(C.push("--- /dev/null"),C.push(`+++ b/${f}${R(f)}`)):P?(C.push(`--- a/${t}${R(t)}`),C.push("+++ /dev/null")):(C.push(`--- a/${t}${R(t)}`),C.push(`+++ b/${f}${R(f)}`));let y=u.length,$=m.length;for(let A of E){let L=A.oldCount===1?`${A.oldStart}`:`${A.oldStart},${A.oldCount}`,G=A.newCount===1?`${A.newStart}`:`${A.newStart},${A.newCount}`,V="";for(let v=A.oldStart-2;v>=0;v--){let W=u[v];if(W&&/^[a-zA-Z$_]/.test(W)){V=` ${W.trimEnd().slice(0,79)}`;break}}C.push(`@@ -${L} +${G} @@${V}`);let j=A.oldStart,O=A.newStart;for(let v of A.lines)switch(v.type){case"context":C.push(` ${v.content}`),(!h&&j===y||!p&&O===$)&&C.push("\"),j++,O++;break;case"delete":C.push(`-${v.content}`),!h&&j===y&&C.push("\"),j++;break;case"insert":C.push(`+${v.content}`),!p&&O===$&&C.push("\"),O++;break}}return`${C.join(`
189
+ `;if(a||i){let I=Vs(a),G=Vs(i);E||k?C.push(`index ${I}..${G}`):c?C.push(`index ${I}..${G} ${o||"100644"}`):o&&s&&o!==s?C.push(`index ${I}..${G}`):C.push(`index ${I}..${G} ${o||"100644"}`)}let O=I=>I.includes(" ")?" ":"";E?(C.push("--- /dev/null"),C.push(`+++ b/${f}${O(f)}`)):k?(C.push(`--- a/${t}${O(t)}`),C.push("+++ /dev/null")):(C.push(`--- a/${t}${O(t)}`),C.push(`+++ b/${f}${O(f)}`));let x=u.length,P=m.length;for(let I of b){let G=I.oldCount===1?`${I.oldStart}`:`${I.oldStart},${I.oldCount}`,j=I.newCount===1?`${I.newStart}`:`${I.newStart},${I.newCount}`,z="";for(let L=I.oldStart-2;L>=0;L--){let _=u[L];if(_&&/^[a-zA-Z$_]/.test(_)){z=` ${_.trimEnd().slice(0,79)}`;break}}C.push(`@@ -${G} +${j} @@${z}`);let A=I.oldStart,S=I.newStart;for(let L of I.lines)switch(L.type){case"context":C.push(` ${L.content}`),(!h&&A===x||!p&&S===P)&&C.push("\"),A++,S++;break;case"delete":C.push(`-${L.content}`),!h&&A===x&&C.push("\"),A++;break;case"insert":C.push(`+${L.content}`),!p&&S===P&&C.push("\"),S++;break}}return`${C.join(`
190
190
  `)}
191
- `}oe();Te();async function In(e,t,n){return(await fe(e,t)).get(n)?.hash??null}async function uc(e,t,n,r){let o=await Ne(e,t,n);if(!o.find(c=>c.status==="added"&&c.path===r))return null;let{renames:i}=await Qe(e,o);return i.find(c=>c.newPath===r)?.oldPath??null}async function xu(e,t,n,r,o,s){let i=await In(e,(await M(e,t)).tree,n);if(!i){let p=new Map,g=await M(e,t);for(let w of r)p.set(w.finalIdx,On(t,n,w.currentLine,s+w.finalIdx,o[w.finalIdx],g,!1,void 0));return p}let a=await se(e,i),c=vt(a),f=new Array(o.length),d=[...r],l=t,u=n,m=c;for(;d.length>0;){let p=await M(e,l);if(p.parents.length===0){for(let y of d)f[y.finalIdx]=On(l,u,y.currentLine,s+y.finalIdx,o[y.finalIdx],p,!0,void 0);break}let g=await In(e,p.tree,u),w=null,k=[];for(let y of p.parents){let $=await M(e,y),A=u,L=await In(e,$.tree,A);if(!L){let G=await uc(e,$.tree,p.tree,u);G&&(A=G,L=await In(e,$.tree,A))}if(L&&(k.push({hash:y,path:A,blobHash:L}),L===g)){w={hash:y,path:A};break}}if(w){l=w.hash,u=w.path;continue}if(k.length===0){for(let y of d)f[y.finalIdx]=On(l,u,y.currentLine,s+y.finalIdx,o[y.finalIdx],p,!1,void 0);break}let b=k[0],E=await se(e,b.blobHash),x=vt(E),P=it(x,m),C=new Map;for(let y of P)y.type==="keep"&&C.set(y.newLineNo,y.oldLineNo);let R=[];for(let y of d){let $=C.get(y.currentLine);$!==void 0?R.push({finalIdx:y.finalIdx,currentLine:$}):f[y.finalIdx]=On(l,u,y.currentLine,s+y.finalIdx,o[y.finalIdx],p,!1,{hash:b.hash,path:b.path})}d=R,l=b.hash,u=b.path,m=x}let h=new Map;for(let p of r)f[p.finalIdx]&&h.set(p.finalIdx,f[p.finalIdx]);return h}async function mc(e,t,n,r){let o=await M(e,t),s=await In(e,o.tree,n);if(!s)throw new Error(`no such path '${n}' in ${t.slice(0,7)}`);let i=await se(e,s),a=vt(i),c=r?.startLine??1,f=r?.endLine??a.length,d=a.slice(c-1,f),l=new Array(d.length),u=d.map((g,w)=>({finalIdx:w,currentLine:c+w})),m=t,h=n,p=a;for(;u.length>0;){let g=await M(e,m);if(g.parents.length===0){for(let C of u)l[C.finalIdx]=On(m,h,C.currentLine,c+C.finalIdx,d[C.finalIdx],g,!0,void 0);break}let w=await In(e,g.tree,h),k=[],b=null;for(let C of g.parents){let R=await M(e,C),y=h,$=await In(e,R.tree,y);if(!$){let A=await uc(e,R.tree,g.tree,h);A&&(y=A,$=await In(e,R.tree,y))}if($){let A={hash:C,path:y,blobHash:$};if(k.push(A),$===w){b=A;break}}}if(b){m=b.hash,h=b.path;continue}if(k.length===0){for(let C of u)l[C.finalIdx]=On(m,h,C.currentLine,c+C.finalIdx,d[C.finalIdx],g,!1,void 0);break}if(k.length===1){let C=k[0],R=await se(e,C.blobHash),y=vt(R),$=it(y,p),A=new Map;for(let G of $)G.type==="keep"&&A.set(G.newLineNo,G.oldLineNo);let L=[];for(let G of u){let V=A.get(G.currentLine);V!==void 0?L.push({finalIdx:G.finalIdx,currentLine:V}):l[G.finalIdx]=On(m,h,G.currentLine,c+G.finalIdx,d[G.finalIdx],g,!1,{hash:C.hash,path:C.path})}u=L,m=C.hash,h=C.path,p=y;continue}let E=[];for(let C of k){let R=await se(e,C.blobHash),y=vt(R),$=it(y,p),A=new Map;for(let L of $)L.type==="keep"&&A.set(L.newLineNo,L.oldLineNo);E.push({info:C,newToOld:A})}let x=new Map;for(let C of u){let R=!1;for(let y=0;y<E.length;y++){let $=E[y],A=$.newToOld.get(C.currentLine);if(A!==void 0){let L=x.get(y);L||(L={info:$.info,lines:[]},x.set(y,L)),L.lines.push({finalIdx:C.finalIdx,currentLine:A}),R=!0;break}}R||(l[C.finalIdx]=On(m,h,C.currentLine,c+C.finalIdx,d[C.finalIdx],g,!1,{hash:k[0].hash,path:k[0].path}))}let P=x.get(0);for(let[C,R]of x){if(C===0)continue;let y=await xu(e,R.info.hash,R.info.path,R.lines,d,c);for(let[$,A]of y)l[$]=A}if(P&&P.lines.length>0){u=P.lines,m=P.info.hash,h=P.info.path;let C=await se(e,P.info.blobHash);p=vt(C)}else break}return l}function On(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(`
192
- `)[0],boundary:i,previous:a}}ne();oe();Te();oe();ue();function Cu(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 Pu(e,t){let n=Cu(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 Ru(e,t,n,r,o){if(e.length===0)return"";let s=Math.max(...e.map(l=>l.finalLine)),i=String(s).length,a=e.some(l=>l.origPath!==t),c=0;if(!o)for(let l of e){let u=r?`<${l.author.email}>`:l.author.name;u.length>c&&(c=u.length)}let f=0;if(a)for(let l of e)l.origPath.length>f&&(f=l.origPath.length);let d=[];for(let l of e){let u;n?u=l.boundary?`^${l.hash.slice(0,39)}`:l.hash:u=l.boundary?`^${l.hash.slice(0,7)}`:l.hash.slice(0,8);let m=a?` ${l.origPath.padEnd(f)}`:"";if(o)d.push(`${u}${m} ${String(l.finalLine).padStart(i)}) ${l.content}`);else{let h=r?`<${l.author.email}>`:l.author.name,p=Pu(l.author.timestamp,l.author.timezone);d.push(`${u}${m} (${h.padEnd(c)} ${p} ${String(l.finalLine).padStart(i)}) ${l.content}`)}}return`${d.join(`
191
+ `}ie();He();async function Sn(e,t,n){return(await ce(e,t)).get(n)?.hash??null}async function wc(e,t,n,r){let o=await Ne(e,t,n);if(!o.find(c=>c.status==="added"&&c.path===r))return null;let{renames:a}=await tt(e,o);return a.find(c=>c.newPath===r)?.oldPath??null}async function Cu(e,t,n,r,o,s){let a=await Sn(e,(await M(e,t)).tree,n);if(!a){let p=new Map,g=await M(e,t);for(let w of r)p.set(w.finalIdx,vn(t,n,w.currentLine,s+w.finalIdx,o[w.finalIdx],g,!1,void 0));return p}let i=await oe(e,a),c=Mt(i),f=new Array(o.length),d=[...r],l=t,u=n,m=c;for(;d.length>0;){let p=await M(e,l);if(p.parents.length===0){for(let x of d)f[x.finalIdx]=vn(l,u,x.currentLine,s+x.finalIdx,o[x.finalIdx],p,!0,void 0);break}let g=await Sn(e,p.tree,u),w=null,y=[];for(let x of p.parents){let P=await M(e,x),I=u,G=await Sn(e,P.tree,I);if(!G){let j=await wc(e,P.tree,p.tree,u);j&&(I=j,G=await Sn(e,P.tree,I))}if(G&&(y.push({hash:x,path:I,blobHash:G}),G===g)){w={hash:x,path:I};break}}if(w){l=w.hash,u=w.path;continue}if(y.length===0){for(let x of d)f[x.finalIdx]=vn(l,u,x.currentLine,s+x.finalIdx,o[x.finalIdx],p,!1,void 0);break}let R=y[0],b=await oe(e,R.blobHash),E=Mt(b),k=ft(E,m),C=new Map;for(let x of k)x.type==="keep"&&C.set(x.newLineNo,x.oldLineNo);let O=[];for(let x of d){let P=C.get(x.currentLine);P!==void 0?O.push({finalIdx:x.finalIdx,currentLine:P}):f[x.finalIdx]=vn(l,u,x.currentLine,s+x.finalIdx,o[x.finalIdx],p,!1,{hash:R.hash,path:R.path})}d=O,l=R.hash,u=R.path,m=E}let h=new Map;for(let p of r)f[p.finalIdx]&&h.set(p.finalIdx,f[p.finalIdx]);return h}async function bc(e,t,n,r){let o=await M(e,t),s=await Sn(e,o.tree,n);if(!s)throw new Error(`no such path '${n}' in ${t.slice(0,7)}`);let a=await oe(e,s),i=Mt(a),c=r?.startLine??1,f=r?.endLine??i.length,d=i.slice(c-1,f),l=new Array(d.length),u=d.map((g,w)=>({finalIdx:w,currentLine:c+w})),m=t,h=n,p=i;for(;u.length>0;){let g=await M(e,m);if(g.parents.length===0){for(let C of u)l[C.finalIdx]=vn(m,h,C.currentLine,c+C.finalIdx,d[C.finalIdx],g,!0,void 0);break}let w=await Sn(e,g.tree,h),y=[],R=null;for(let C of g.parents){let O=await M(e,C),x=h,P=await Sn(e,O.tree,x);if(!P){let I=await wc(e,O.tree,g.tree,h);I&&(x=I,P=await Sn(e,O.tree,x))}if(P){let I={hash:C,path:x,blobHash:P};if(y.push(I),P===w){R=I;break}}}if(R){m=R.hash,h=R.path;continue}if(y.length===0){for(let C of u)l[C.finalIdx]=vn(m,h,C.currentLine,c+C.finalIdx,d[C.finalIdx],g,!1,void 0);break}if(y.length===1){let C=y[0],O=await oe(e,C.blobHash),x=Mt(O),P=ft(x,p),I=new Map;for(let j of P)j.type==="keep"&&I.set(j.newLineNo,j.oldLineNo);let G=[];for(let j of u){let z=I.get(j.currentLine);z!==void 0?G.push({finalIdx:j.finalIdx,currentLine:z}):l[j.finalIdx]=vn(m,h,j.currentLine,c+j.finalIdx,d[j.finalIdx],g,!1,{hash:C.hash,path:C.path})}u=G,m=C.hash,h=C.path,p=x;continue}let b=[];for(let C of y){let O=await oe(e,C.blobHash),x=Mt(O),P=ft(x,p),I=new Map;for(let G of P)G.type==="keep"&&I.set(G.newLineNo,G.oldLineNo);b.push({info:C,newToOld:I})}let E=new Map;for(let C of u){let O=!1;for(let x=0;x<b.length;x++){let P=b[x],I=P.newToOld.get(C.currentLine);if(I!==void 0){let G=E.get(x);G||(G={info:P.info,lines:[]},E.set(x,G)),G.lines.push({finalIdx:C.finalIdx,currentLine:I}),O=!0;break}}O||(l[C.finalIdx]=vn(m,h,C.currentLine,c+C.finalIdx,d[C.finalIdx],g,!1,{hash:y[0].hash,path:y[0].path}))}let k=E.get(0);for(let[C,O]of E){if(C===0)continue;let x=await Cu(e,O.info.hash,O.info.path,O.lines,d,c);for(let[P,I]of x)l[P]=I}if(k&&k.lines.length>0){u=k.lines,m=k.info.hash,h=k.info.path;let C=await oe(e,k.info.blobHash);p=Mt(C)}else break}return l}function vn(e,t,n,r,o,s,a,i){return{hash:e,origPath:t,origLine:n,finalLine:r,content:o,author:s.author,committer:s.committer,summary:s.message.split(`
192
+ `)[0],boundary:a,previous:i}}re();ie();He();ie();de();function Pu(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 Ou(e,t){let n=Pu(t),r=new Date((e+n*60)*1e3),o=r.getUTCFullYear(),s=(r.getUTCMonth()+1).toString().padStart(2,"0"),a=r.getUTCDate().toString().padStart(2,"0"),i=r.getUTCHours().toString().padStart(2,"0"),c=r.getUTCMinutes().toString().padStart(2,"0"),f=r.getUTCSeconds().toString().padStart(2,"0");return`${o}-${s}-${a} ${i}:${c}:${f} ${t}`}function Iu(e,t,n,r,o){if(e.length===0)return"";let s=Math.max(...e.map(l=>l.finalLine)),a=String(s).length,i=e.some(l=>l.origPath!==t),c=0;if(!o)for(let l of e){let u=r?`<${l.author.email}>`:l.author.name;u.length>c&&(c=u.length)}let f=0;if(i)for(let l of e)l.origPath.length>f&&(f=l.origPath.length);let d=[];for(let l of e){let u;n?u=l.boundary?`^${l.hash.slice(0,39)}`:l.hash:u=l.boundary?`^${l.hash.slice(0,7)}`:l.hash.slice(0,8);let m=i?` ${l.origPath.padEnd(f)}`:"";if(o)d.push(`${u}${m} ${String(l.finalLine).padStart(a)}) ${l.content}`);else{let h=r?`<${l.author.email}>`:l.author.name,p=Ou(l.author.timestamp,l.author.timezone);d.push(`${u}${m} (${h.padEnd(c)} ${p} ${String(l.finalLine).padStart(a)}) ${l.content}`)}}return`${d.join(`
193
193
  `)}
194
194
  `}function $u(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(`
195
195
  `)}
196
- `}function Iu(e,t,n){if(e.startsWith("/"))return st(n,e);let r=st(n,t);return r===""||r==="."?e:`${r}/${e}`}function hc(e,t){e.command("blame",{description:"Show what revision and author last modified each line of a file",args:[B.string().name("args").variadic().optional()],options:{lineRange:Q.string().alias("L").describe("Annotate only the given line range (<start>,<end>)"),long:H().alias("l").describe("Show long revision"),showEmail:H().alias("e").describe("Show author email instead of name"),suppress:H().alias("s").describe("Suppress author name and date"),porcelain:H().alias("p").describe("Show in machine-readable format"),linePorcelain:H().describe("Show porcelain format with full headers for each line")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s;if(!i.workTree)return I("this operation must be run in a work tree");let a=await Ke(i);if(S(a))return a;let c=n.args??[],f=o.passthrough??[],d=null,l=null;if(f.length>0?(l=f[f.length-1],c.length>0&&(d=c[0])):c.length===2?(d=c[0],l=c[1]):c.length===1&&(l=c[0]),!l)return I("no file specified");let u=Iu(l,r.cwd,i.workTree),m;if(d){let P=await $t(i,d);if(S(P))return P;m=await _e(i,P)}else m=a;let h=await M(i,m),p=await fe(i,h.tree);if(!p.has(u))return I(`no such path ${u} in ${d??"HEAD"}`);let g=p.get(u).hash,w=await se(i,g);if(Oe(w))return I(`cannot blame binary file '${u}'`);let k,b;if(n.lineRange){let P=n.lineRange,C=P.match(/^(\d+),(\d+)$/);if(C)k=parseInt(C[1],10),b=parseInt(C[2],10);else return I(`invalid -L range: '${P}'`)}let E;try{E=await mc(i,m,u,{startLine:k,endLine:b})}catch(P){let C=P instanceof Error?P.message:String(P);return I(C)}let x;return n.porcelain||n.linePorcelain?x=$u(E,!!n.linePorcelain):x=Ru(E,u,!!n.long,!!n.showEmail,!!n.suppress),{stdout:x,stderr:"",exitCode:0}}})}ne();Xe();ln();ne();var Ou=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Tu=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function St(e,t){let n=Hu(t),r=new Date((e+n*60)*1e3),o=Ou[r.getUTCDay()],s=Tu[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"),d=r.getUTCFullYear();return`${o} ${s} ${i} ${a}:${c}:${f} ${d} ${t}`}function ti(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 Hu(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)}oe();Te();var Ws=new TextDecoder;function pc(e){if(e.length===0)return 0;let t=0;for(let n=0;n<e.length;n++)e[n]===`
196
+ `}function Tu(e,t,n){if(e.startsWith("/"))return at(n,e);let r=at(n,t);return r===""||r==="."?e:`${r}/${e}`}function yc(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:ee.string().alias("L").describe("Annotate only the given line range (<start>,<end>)"),long:H().alias("l").describe("Show long revision"),showEmail:H().alias("e").describe("Show author email instead of name"),suppress:H().alias("s").describe("Suppress author name and date"),porcelain:H().alias("p").describe("Show in machine-readable format"),linePorcelain:H().describe("Show porcelain format with full headers for each line")},handler:async(n,r,o)=>{let s=await B(r.fs,r.cwd,t);if(v(s))return s;let a=s;if(!a.workTree)return $("this operation must be run in a work tree");let i=await ze(a);if(v(i))return i;let c=n.args??[],f=o.passthrough??[],d=null,l=null;if(f.length>0?(l=f[f.length-1],c.length>0&&(d=c[0])):c.length===2?(d=c[0],l=c[1]):c.length===1&&(l=c[0]),!l)return $("no file specified");let u=Tu(l,r.cwd,a.workTree),m;if(d){let k=await Tt(a,d);if(v(k))return k;m=await _e(a,k)}else m=i;let h=await M(a,m),p=await ce(a,h.tree);if(!p.has(u))return $(`no such path ${u} in ${d??"HEAD"}`);let g=p.get(u).hash,w=await oe(a,g);if(Te(w))return $(`cannot blame binary file '${u}'`);let y,R;if(n.lineRange){let k=n.lineRange,C=k.match(/^(\d+),(\d+)$/);if(C)y=parseInt(C[1],10),R=parseInt(C[2],10);else return $(`invalid -L range: '${k}'`)}let b;try{b=await bc(a,m,u,{startLine:y,endLine:R})}catch(k){let C=k instanceof Error?k.message:String(k);return $(C)}let E;return n.porcelain||n.linePorcelain?E=$u(b,!!n.linePorcelain):E=Iu(b,u,!!n.long,!!n.showEmail,!!n.suppress),{stdout:E,stderr:"",exitCode:0}}})}re();Je();pn();re();var Hu=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Su=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function jt(e,t){let n=vu(t),r=new Date((e+n*60)*1e3),o=Hu[r.getUTCDay()],s=Su[r.getUTCMonth()],a=r.getUTCDate(),i=r.getUTCHours().toString().padStart(2,"0"),c=r.getUTCMinutes().toString().padStart(2,"0"),f=r.getUTCSeconds().toString().padStart(2,"0"),d=r.getUTCFullYear();return`${o} ${s} ${a} ${i}:${c}:${f} ${d} ${t}`}function ai(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 vu(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();He();var Ys=new TextDecoder;function Ec(e){if(e.length===0)return 0;let t=0;for(let n=0;n<e.length;n++)e[n]===`
197
197
  `&&t++;return e[e.length-1]!==`
198
- `&&t++,t}function fr(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 Lr(e,t,n){let r=[],o=[],s=[];for(let a of t)if(a.status==="added"&&a.newHash&&a.newMode){let c=await gt(e,a.newHash);pn(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:pc(Ws.decode(c)),deletions:0}),o.push({path:a.path,mode:a.newMode})}else if(a.status==="deleted"&&a.oldHash&&a.oldMode){let c=await gt(e,a.oldHash);pn(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:pc(Ws.decode(c))}),s.push({path:a.path,mode:a.oldMode})}else if(a.status==="modified"&&a.oldHash&&a.newHash){let c=await gt(e,a.oldHash),f=await gt(e,a.newHash);if(pn(c)||pn(f))r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:f.byteLength});else{let d=Nt(Ws.decode(c)),l=Nt(Ws.decode(f)),u=it(d,l),m=0,h=0;for(let p of u)p.type==="insert"?m++:p.type==="delete"&&h++;r.push({path:a.path,sortKey:a.path,insertions:m,deletions:h})}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=Cn(a.oldPath,a.newPath),f=0,d=0;if(a.similarity<100&&a.oldHash&&a.newHash){let l=await se(e,a.oldHash),u=await se(e,a.newHash);if(!Oe(l)&&!Oe(u)){let m=Nt(l),h=Nt(u),p=it(m,h);for(let g of p)g.type==="insert"?f++:g.type==="delete"&&d++}}r.push({path:c,sortKey:a.newPath,insertions:f,deletions:d})}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=Cn(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 Zt(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: ${St(r.timestamp,r.timezone)}`),i)return a.join(`
199
- `)+(a.length>0?`
200
- `:"");let c=await Ne(e,t,n),{remaining:f,renames:d}=await Qe(e,c),{fileStats:l,modeLines:u}=await Lr(e,f,d),m=0,h=0;for(let g of l)m+=g.insertions,h+=g.deletions;let p=fr(l.length,m,h);p&&a.push(p);for(let g of u)a.push(g);return a.join(`
201
- `)+(a.length>0?`
202
- `:"")}var qs=80;function Au(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 _r(e){if(e.length===0)return"";let t=e.filter(h=>!h.isUnmerged),n=t.length>0?Math.max(...t.map(h=>h.insertions+h.deletions)):0,r=e.some(h=>h.isBinary),o=n>0?String(n).length:1;r&&o<3&&(o=3);let s=Math.max(...e.map(h=>h.path.length)),i=n,a=s;if(a+o+6+i>qs){let h=Math.floor(qs*3/8)-o-6;i>h&&(i=Math.max(h,6));let p=qs-o-6-i;a>p?a=p:i=qs-o-6-a}for(let h of e)h.path=Au(h.path,a);let c=a,f=[],d=0,l=0,u=0;for(let h of e){let p=h.path.padEnd(c);if(h.isUnmerged){f.push(` ${p} | Unmerged`);continue}if(u++,d+=h.insertions,l+=h.deletions,h.isBinary){let C=`${"Bin".padStart(o)} ${h.oldSize??0} -> ${h.newSize??0} bytes`;f.push(` ${p} | ${C}`);continue}let g=h.insertions+h.deletions,w=String(g).padStart(o),k,b;if(n<=i)k=h.insertions,b=h.deletions;else{let P=y=>y===0?0:1+Math.floor(y*(i-1)/n),C=P(g),R=C<2&&h.insertions>0&&h.deletions>0?2:C;h.insertions<h.deletions?(k=P(h.insertions),b=R-k):(b=P(h.deletions),k=R-b)}let E="+".repeat(k)+"-".repeat(b),x=E?` ${E}`:"";f.push(` ${p} | ${w}${x}`)}let m=fr(u,d,l);return m?f.push(m):e.some(h=>h.isUnmerged)&&f.push(" 0 files changed"),`${f.join(`
203
- `)}
204
- `}async function Tn(e,t,n){let r=await Ne(e,t,n),{remaining:o,renames:s}=await Qe(e,r);if(o.length===0&&s.length===0)return"";let{fileStats:i,modeLines:a}=await Lr(e,o,s);i.sort((f,d)=>f.sortKey<d.sortKey?-1:f.sortKey>d.sortKey?1:0);let c=_r(i);for(let f of a)c+=`${f}
205
- `;return c}Xe();xe();oe();me();Vt();async function vu(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=await M(e,s);for(let a of i.parents)n.has(a)||r.push(a)}return n}async function fn(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=await M(e,i);for(let c of a.parents)r.has(c)||o.push(c)}return!1}async function Dt(e,t,n){if(t===n)return[t];let r=await vu(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 d=await M(e,f);for(let l of d.parents)s.has(l)||i.push(l)}if(o.length<=1)return o;let c=[];for(let f of o){let d=!1;for(let l of o)if(l!==f&&await fn(e,f,l)){d=!0;break}d||c.push(f)}return c.length<=1?c:Su(e,t,n,c)}async function Su(e,t,n,r){let o=new Set(r),s=new Set,i=[],a=new Map,c=new Map,f=0,d=[{hash:t,mask:1,seq:f++},{hash:n,mask:2,seq:f++}];async function l(u){let m=c.get(u);if(m!==void 0)return m;let h=(await M(e,u)).committer.timestamp;return c.set(u,h),h}for(;d.length>0;){let u=0,m=await l(d[0].hash);for(let k=1;k<d.length;k++){let b=d[k],E=await l(b.hash),x=d[u];(E>m||E===m&&b.seq<x.seq)&&(u=k,m=E)}let h=d.splice(u,1)[0],p=a.get(h.hash)??0,g=p|h.mask;if(g===p)continue;if(a.set(h.hash,g),g===3&&o.has(h.hash)&&!s.has(h.hash)&&(i.push(h.hash),s.add(h.hash),s.size===o.size))break;let w=await M(e,h.hash);for(let k of w.parents)d.push({hash:k,mask:g,seq:f++})}for(let u of r)s.has(u)||i.push(u);return i}async function Vn(e,t,n){let r=await jt(e,"init.defaultBranch")??"main";return n===r?`Merge branch '${t}'
198
+ `&&t++,t}function ur(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 Kr(e,t,n){let r=[],o=[],s=[];for(let i of t)if(i.status==="added"&&i.newHash&&i.newMode){let c=await yt(e,i.newHash);bn(c)?r.push({path:i.path,sortKey:i.path,insertions:0,deletions:0,isBinary:!0,oldSize:0,newSize:c.byteLength}):r.push({path:i.path,sortKey:i.path,insertions:Ec(Ys.decode(c)),deletions:0}),o.push({path:i.path,mode:i.newMode})}else if(i.status==="deleted"&&i.oldHash&&i.oldMode){let c=await yt(e,i.oldHash);bn(c)?r.push({path:i.path,sortKey:i.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:0}):r.push({path:i.path,sortKey:i.path,insertions:0,deletions:Ec(Ys.decode(c))}),s.push({path:i.path,mode:i.oldMode})}else if(i.status==="modified"&&i.oldHash&&i.newHash){let c=await yt(e,i.oldHash),f=await yt(e,i.newHash);if(bn(c)||bn(f))r.push({path:i.path,sortKey:i.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:f.byteLength});else{let d=Wt(Ys.decode(c)),l=Wt(Ys.decode(f)),u=ft(d,l),m=0,h=0;for(let p of u)p.type==="insert"?m++:p.type==="delete"&&h++;r.push({path:i.path,sortKey:i.path,insertions:m,deletions:h})}i.oldMode&&i.newMode&&i.oldMode!==i.newMode&&(s.push({path:i.path,mode:i.oldMode}),o.push({path:i.path,mode:i.newMode}))}for(let i of n){let c=In(i.oldPath,i.newPath),f=0,d=0;if(i.similarity<100&&i.oldHash&&i.newHash){let l=await oe(e,i.oldHash),u=await oe(e,i.newHash);if(!Te(l)&&!Te(u)){let m=Wt(l),h=Wt(u),p=ft(m,h);for(let g of p)g.type==="insert"?f++:g.type==="delete"&&d++}}r.push({path:c,sortKey:i.newPath,insertions:f,deletions:d})}let a=[];for(let{path:i,mode:c}of o)a.push({sortKey:i,text:` create mode ${c} ${i}`});for(let{path:i,mode:c}of s)a.push({sortKey:i,text:` delete mode ${c} ${i}`});for(let i of n){let c=In(i.oldPath,i.newPath);a.push({sortKey:i.newPath,text:` rename ${c} (${i.similarity}%)`})}return a.sort((i,c)=>i.sortKey<c.sortKey?-1:i.sortKey>c.sortKey?1:0),{fileStats:r,modeLines:a.map(i=>i.text)}}async function tn(e,t,n,r,o,s=!1,a=!1){let i=[];if((r.name!==o.name||r.email!==o.email)&&i.push(` Author: ${r.name} <${r.email}>`),s&&i.push(` Date: ${jt(r.timestamp,r.timezone)}`),a)return i.join(`
199
+ `)+(i.length>0?`
200
+ `:"");let c=await Ne(e,t,n),{remaining:f,renames:d}=await tt(e,c),{fileStats:l,modeLines:u}=await Kr(e,f,d),m=0,h=0;for(let g of l)m+=g.insertions,h+=g.deletions;let p=ur(l.length,m,h);p&&i.push(p);for(let g of u)i.push(g);return i.join(`
201
+ `)+(i.length>0?`
202
+ `:"")}var Xs=80;function Au(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 zr(e){if(e.length===0)return"";let t=e.filter(h=>!h.isUnmerged),n=t.length>0?Math.max(...t.map(h=>h.insertions+h.deletions)):0,r=e.some(h=>h.isBinary),o=n>0?String(n).length:1;r&&o<3&&(o=3);let s=Math.max(...e.map(h=>h.path.length)),a=n,i=s;if(i+o+6+a>Xs){let h=Math.floor(Xs*3/8)-o-6;a>h&&(a=Math.max(h,6));let p=Xs-o-6-a;i>p?i=p:a=Xs-o-6-i}for(let h of e)h.path=Au(h.path,i);let c=i,f=[],d=0,l=0,u=0;for(let h of e){let p=h.path.padEnd(c);if(h.isUnmerged){f.push(` ${p} | Unmerged`);continue}if(u++,d+=h.insertions,l+=h.deletions,h.isBinary){let C=`${"Bin".padStart(o)} ${h.oldSize??0} -> ${h.newSize??0} bytes`;f.push(` ${p} | ${C}`);continue}let g=h.insertions+h.deletions,w=String(g).padStart(o),y,R;if(n<=a)y=h.insertions,R=h.deletions;else{let k=x=>x===0?0:1+Math.floor(x*(a-1)/n),C=k(g),O=C<2&&h.insertions>0&&h.deletions>0?2:C;h.insertions<h.deletions?(y=k(h.insertions),R=O-y):(R=k(h.deletions),y=O-R)}let b="+".repeat(y)+"-".repeat(R),E=b?` ${b}`:"";f.push(` ${p} | ${w}${E}`)}let m=ur(u,d,l);return m?f.push(m):e.some(h=>h.isUnmerged)&&f.push(" 0 files changed"),`${f.join(`
203
+ `)}
204
+ `}async function An(e,t,n){let r=await Ne(e,t,n),{remaining:o,renames:s}=await tt(e,r);if(o.length===0&&s.length===0)return"";let{fileStats:a,modeLines:i}=await Kr(e,o,s);a.sort((f,d)=>f.sortKey<d.sortKey?-1:f.sortKey>d.sortKey?1:0);let c=zr(a);for(let f of i)c+=`${f}
205
+ `;return c}Je();ke();ie();le();Jt();async function Du(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 a=await M(e,s);for(let i of a.parents)n.has(i)||r.push(i)}return n}async function mn(e,t,n){if(t===n)return!0;let r=new Set,o=[n],s=0;for(;s<o.length;){let a=o[s++];if(a===t)return!0;if(r.has(a))continue;r.add(a);let i=await M(e,a);for(let c of i.parents)r.has(c)||o.push(c)}return!1}async function Gt(e,t,n){if(t===n)return[t];let r=await Du(e,t),o=[],s=new Set,a=[n],i=0;for(;i<a.length;){let f=a[i++];if(s.has(f))continue;if(s.add(f),r.has(f)){o.push(f);continue}let d=await M(e,f);for(let l of d.parents)s.has(l)||a.push(l)}if(o.length<=1)return o;let c=[];for(let f of o){let d=!1;for(let l of o)if(l!==f&&await mn(e,f,l)){d=!0;break}d||c.push(f)}return c.length<=1?c:Mu(e,t,n,c)}async function Mu(e,t,n,r){let o=new Set(r),s=new Set,a=[],i=new Map,c=new Map,f=0,d=[{hash:t,mask:1,seq:f++},{hash:n,mask:2,seq:f++}];async function l(u){let m=c.get(u);if(m!==void 0)return m;let h=(await M(e,u)).committer.timestamp;return c.set(u,h),h}for(;d.length>0;){let u=0,m=await l(d[0].hash);for(let y=1;y<d.length;y++){let R=d[y],b=await l(R.hash),E=d[u];(b>m||b===m&&R.seq<E.seq)&&(u=y,m=b)}let h=d.splice(u,1)[0],p=i.get(h.hash)??0,g=p|h.mask;if(g===p)continue;if(i.set(h.hash,g),g===3&&o.has(h.hash)&&!s.has(h.hash)&&(a.push(h.hash),s.add(h.hash),s.size===o.size))break;let w=await M(e,h.hash);for(let y of w.parents)d.push({hash:y,mask:g,seq:f++})}for(let u of r)s.has(u)||a.push(u);return a}async function Zn(e,t,n){let r=await _t(e,"init.defaultBranch")??"main";return n===r?`Merge branch '${t}'
206
206
  `:`Merge branch '${t}' into ${n}
207
- `}async function Ks(e,t,n){let r=await M(e,t),o=await M(e,n),s=z(t),i=z(n),a=`Updating ${s}..${i}
208
- `;if(e.workTree){let f=await q(e),d=await va(e,r.tree,o.tree,f);if(!d.success){let l=d.errorOutput;return{stdout:a+l.stdout,stderr:l.stderr,exitCode:l.exitCode}}await re(e,{version:2,entries:d.newEntries}),await He(e,d.worktreeOps)}await gn(e,n);let c=await Tn(e,r.tree,o.tree);return{stdout:`${a}Fast-forward
209
- ${c}`,stderr:"",exitCode:0}}oe();Ge();me();function gc(e,t){e.command("branch",{description:"List, create, or delete branches",args:[B.string().name("name").describe("Branch name").optional(),B.string().name("newName").describe("New branch name (for -m) or start-point (for create)").optional()],options:{delete:H().alias("d").describe("Delete a branch"),forceDelete:H().alias("D").describe("Force delete a branch"),move:H().alias("m").describe("Rename a branch"),forceMove:H().alias("M").describe("Force rename a branch"),remotes:H().alias("r").describe("List remote-tracking branches"),all:H().alias("a").describe("List all branches"),setUpstreamTo:Q.string().alias("u").describe("Set upstream tracking branch"),verbose:H().alias("v").count().describe("Show hash and subject")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=await Z(s),a=i?.type==="symbolic"?be(i.target):null,c=!!n.forceMove;if(n.move||c){let w,k;if(n.newName)w=n.name,k=n.newName;else if(n.name){if(!a)return I("not on any branch");w=a,k=n.name}else return I("branch name required");let b=`refs/heads/${w}`,E=`refs/heads/${k}`,x=await N(s,b);if(!x)return I(`no branch named '${w}'`);if(await At(s)&&(await lt(s))?.headName===b)return I(`branch ${b} is being rebased at ${s.workTree}`);let P=await N(s,E);if(P&&!c)return I(`a branch named '${k}' already exists`);P&&await de(s,E);let C=await ze(s,b);await Y(s,E,x),await de(s,b),w===a&&await Fe(s,"HEAD",E),C.length>0&&await bn(s,E,C);let R=`Branch: renamed ${b} to ${E}`;if(await te(s,r.env,E,x,x,R),w===a){let A=await Bt(s,r.env);await Ue(s,"HEAD",{oldHash:x,newHash:J,...A,message:R}),await Ue(s,"HEAD",{oldHash:J,newHash:x,...A,message:R})}let y=await pe(s),$=`branch "${w}"`;return y[$]&&(y[`branch "${k}"`]=y[$],delete y[$],await Ye(s,y)),{stdout:"",stderr:"",exitCode:0}}let f=n.forceDelete;if(n.delete||f){if(!n.name)return I("branch name required");let w=n.name===a;if(!w&&!a&&await At(s)&&(await lt(s))?.headName===`refs/heads/${n.name}`&&(w=!0),w)return _(`error: cannot delete branch '${n.name}' used by worktree at '${s.workTree}'
210
- `);let k=`refs/heads/${n.name}`,b=await N(s,k);if(!b)return _(`error: branch '${n.name}' not found
211
- `);let E="";if(!f){let x=await X(s),C=(await pe(s))[`branch "${n.name}"`],R=C?.remote,y=C?.merge,$=null,A=null;if(R&&y&&($=y.replace(/^refs\/heads\//,`refs/remotes/${R}/`),A=await N(s,$)),A&&$){if(!(b===A||await fn(s,b,A))){let j=x!=null&&(b===x||await fn(s,b,x))?`warning: not deleting branch '${n.name}' that is not yet merged to
212
- '${$}', even though it is merged to HEAD
213
- `:"";return _(`${j}error: the branch '${n.name}' is not fully merged
207
+ `}async function Zs(e,t,n){let r=await M(e,t),o=await M(e,n),s=V(t),a=V(n),i=`Updating ${s}..${a}
208
+ `;if(e.workTree){let f=await K(e),d=await Ga(e,r.tree,o.tree,f);if(!d.success){let l=d.errorOutput;return{stdout:i+l.stdout,stderr:l.stderr,exitCode:l.exitCode}}await se(e,{version:2,entries:d.newEntries}),await Se(e,d.worktreeOps)}await En(e,n);let c=await An(e,r.tree,o.tree);return{stdout:`${i}Fast-forward
209
+ ${c}`,stderr:"",exitCode:0}}ie();je();le();function kc(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:H().alias("d").describe("Delete a branch"),forceDelete:H().alias("D").describe("Force delete a branch"),move:H().alias("m").describe("Rename a branch"),forceMove:H().alias("M").describe("Force rename a branch"),remotes:H().alias("r").describe("List remote-tracking branches"),all:H().alias("a").describe("List all branches"),setUpstreamTo:ee.string().alias("u").describe("Set upstream tracking branch"),verbose:H().alias("v").count().describe("Show hash and subject")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=await Z(s),i=a?.type==="symbolic"?we(a.target):null,c=!!n.forceMove;if(n.move||c){let w,y;if(n.newName)w=n.name,y=n.newName;else if(n.name){if(!i)return $("not on any branch");w=i,y=n.name}else return $("branch name required");let R=`refs/heads/${w}`,b=`refs/heads/${y}`,E=await U(s,R);if(!E)return $(`no branch named '${w}'`);if(await Dt(s)&&(await ht(s))?.headName===R)return $(`branch ${R} is being rebased at ${s.workTree}`);let k=await U(s,b);if(k&&!c)return $(`a branch named '${y}' already exists`);k&&await fe(s,b);let C=await Ve(s,R);await Y(s,b,E),await fe(s,R),w===i&&await Ue(s,"HEAD",b),C.length>0&&await Rn(s,b,C);let O=`Branch: renamed ${R} to ${b}`;if(await ne(s,r.env,b,E,E,O),w===i){let I=await zt(s,r.env);await Be(s,"HEAD",{oldHash:E,newHash:J,...I,message:O}),await Be(s,"HEAD",{oldHash:J,newHash:E,...I,message:O})}let x=await he(s),P=`branch "${w}"`;return x[P]&&(x[`branch "${y}"`]=x[P],delete x[P],await Ze(s,x)),{stdout:"",stderr:"",exitCode:0}}let f=n.forceDelete;if(n.delete||f){if(!n.name)return $("branch name required");let w=n.name===i;if(!w&&!i&&await Dt(s)&&(await ht(s))?.headName===`refs/heads/${n.name}`&&(w=!0),w)return N(`error: cannot delete branch '${n.name}' used by worktree at '${s.workTree}'
210
+ `);let y=`refs/heads/${n.name}`,R=await U(s,y);if(!R)return N(`error: branch '${n.name}' not found
211
+ `);let b="";if(!f){let E=await X(s),C=(await he(s))[`branch "${n.name}"`],O=C?.remote,x=C?.merge,P=null,I=null;if(O&&x&&(P=x.replace(/^refs\/heads\//,`refs/remotes/${O}/`),I=await U(s,P)),I&&P){if(!(R===I||await mn(s,R,I))){let A=E!=null&&(R===E||await mn(s,R,E))?`warning: not deleting branch '${n.name}' that is not yet merged to
212
+ '${P}', even though it is merged to HEAD
213
+ `:"";return N(`${A}error: the branch '${n.name}' is not fully merged
214
214
  hint: If you are sure you want to delete it, run 'git branch -D ${n.name}'
215
215
  hint: Disable this message with "git config set advice.forceDeleteBranch false"
216
- `)}x!=null&&(b===x||await fn(s,b,x))||(E=`warning: deleting branch '${n.name}' that has been merged to
217
- '${$}', but not yet merged to HEAD
218
- `)}else if(x&&b!==x&&!await fn(s,b,x))return _(`error: the branch '${n.name}' is not fully merged
216
+ `)}E!=null&&(R===E||await mn(s,R,E))||(b=`warning: deleting branch '${n.name}' that has been merged to
217
+ '${P}', but not yet merged to HEAD
218
+ `)}else if(E&&R!==E&&!await mn(s,R,E))return N(`error: the branch '${n.name}' is not fully merged
219
219
  hint: If you are sure you want to delete it, run 'git branch -D ${n.name}'
220
220
  hint: Disable this message with "git config set advice.forceDeleteBranch false"
221
- `)}return await de(s,k),{stdout:`Deleted branch ${n.name} (was ${z(b)}).
222
- `,stderr:E,exitCode:0}}if(n.setUpstreamTo){let w=n.setUpstreamTo,k=n.name||a;if(!k)return I("could not set upstream of HEAD when it does not point to any branch.");if(!await N(s,`refs/heads/${k}`))return I(`branch '${k}' does not exist`);let E=w.indexOf("/");if(E<0)return I(`the requested upstream branch '${w}' does not exist`);let x=w.slice(0,E),P=w.slice(E+1);if(!await N(s,`refs/remotes/${w}`))return I(`the requested upstream branch '${w}' does not exist`);let R=await pe(s),y=`branch "${k}"`;return R[y]||(R[y]={}),R[y].remote=x,R[y].merge=`refs/heads/${P}`,await Ye(s,R),{stdout:"",stderr:`branch '${k}' set up to track '${w}'.
223
- `,exitCode:0}}if(n.name&&!n.remotes&&!n.all){let w=n.newName,k;if(w){let P=await Ie(s,w,`not a valid object name: '${w}'`);if(S(P))return P;k=P.hash}else if(k=await X(s),!k)return I("Not a valid object name: 'HEAD'.");let b=`refs/heads/${n.name}`;if(await N(s,b))return I(`a branch named '${n.name}' already exists`);await Y(s,b,k);let x=w??"HEAD";return await te(s,r.env,b,null,k,`branch: Created from ${x}`),{stdout:"",stderr:"",exitCode:0}}let d=n.verbose||0,l=!n.remotes||n.all,u=n.remotes||n.all,m=[];if(l&&!a){let w=await X(s);if(w){let k=await At(s),b;if(k){let E=await lt(s);if(E?.headName){let x=be(E.headName);if(x==="detached HEAD"){let P=await Sr(s);b=`(no branch, rebasing detached HEAD ${P?z(P):"(null)"})`}else b=`(no branch, rebasing ${x})`}else b="(no branch)"}else{let E=await Sr(s);E?b=`(HEAD detached ${w===E?"at":"from"} ${z(E)})`:b="(no branch)"}m.push({displayName:b,hash:w,isCurrent:!0,branchName:null})}}if(l){let w=await we(s,"refs/heads");for(let k of w){let b=be(k.name);m.push({displayName:b,hash:k.hash,isCurrent:b===a,branchName:b})}}if(u){let w=await we(s,"refs/remotes");for(let k of w){let b=k.name.replace("refs/remotes/","");m.push({displayName:n.all?`remotes/${b}`:b,hash:k.hash,isCurrent:!1,branchName:null})}}if(m.length===0)return{stdout:"",stderr:"",exitCode:0};if(d===0)return{stdout:`${m.map(k=>k.isCurrent?`* ${k.displayName}`:` ${k.displayName}`).join(`
221
+ `)}return await fe(s,y),{stdout:`Deleted branch ${n.name} (was ${V(R)}).
222
+ `,stderr:b,exitCode:0}}if(n.setUpstreamTo){let w=n.setUpstreamTo,y=n.name||i;if(!y)return $("could not set upstream of HEAD when it does not point to any branch.");if(!await U(s,`refs/heads/${y}`))return $(`branch '${y}' does not exist`);let b=w.indexOf("/");if(b<0)return $(`the requested upstream branch '${w}' does not exist`);let E=w.slice(0,b),k=w.slice(b+1);if(!await U(s,`refs/remotes/${w}`))return $(`the requested upstream branch '${w}' does not exist`);let O=await he(s),x=`branch "${y}"`;return O[x]||(O[x]={}),O[x].remote=E,O[x].merge=`refs/heads/${k}`,await Ze(s,O),{stdout:"",stderr:`branch '${y}' set up to track '${w}'.
223
+ `,exitCode:0}}if(n.name&&!n.remotes&&!n.all){let w=n.newName,y;if(w){let k=await Ie(s,w,`not a valid object name: '${w}'`);if(v(k))return k;y=k.hash}else if(y=await X(s),!y)return $("Not a valid object name: 'HEAD'.");let R=`refs/heads/${n.name}`;if(await U(s,R))return $(`a branch named '${n.name}' already exists`);await Y(s,R,y);let E=w??"HEAD";return await ne(s,r.env,R,null,y,`branch: Created from ${E}`),{stdout:"",stderr:"",exitCode:0}}let d=n.verbose||0,l=!n.remotes||n.all,u=n.remotes||n.all,m=[];if(l&&!i){let w=await X(s);if(w){let y=await Dt(s),R;if(y){let b=await ht(s);if(b?.headName){let E=we(b.headName);if(E==="detached HEAD"){let k=await Fr(s);R=`(no branch, rebasing detached HEAD ${k?V(k):"(null)"})`}else R=`(no branch, rebasing ${E})`}else R="(no branch)"}else{let b=await Fr(s);b?R=`(HEAD detached ${w===b?"at":"from"} ${V(b)})`:R="(no branch)"}m.push({displayName:R,hash:w,isCurrent:!0,branchName:null})}}if(l){let w=await pe(s,"refs/heads");for(let y of w){let R=we(y.name);m.push({displayName:R,hash:y.hash,isCurrent:R===i,branchName:R})}}if(u){let w=await pe(s,"refs/remotes");for(let y of w){let R=y.name.replace("refs/remotes/","");m.push({displayName:n.all?`remotes/${R}`:R,hash:y.hash,isCurrent:!1,branchName:null})}}if(m.length===0)return{stdout:"",stderr:"",exitCode:0};if(d===0)return{stdout:`${m.map(y=>y.isCurrent?`* ${y.displayName}`:` ${y.displayName}`).join(`
224
224
  `)}
225
- `,stderr:"",exitCode:0};let h=d>=1?await pe(s):null,p=Math.max(...m.map(w=>w.displayName.length)),g=[];for(let w of m){let k=w.isCurrent?"* ":" ",b=w.displayName.padEnd(p),E=z(w.hash),x="";try{let C=await M(s,w.hash);x=ie(C.message)}catch{}let P="";if(h&&w.branchName){let C=await an(s,h,w.branchName);if(C){let R=Za(C,d>=2);R&&(P=` ${R}`)}}g.push(`${k}${b} ${E}${P} ${x}`)}return{stdout:`${g.join(`
225
+ `,stderr:"",exitCode:0};let h=d>=1?await he(s):null,p=Math.max(...m.map(w=>w.displayName.length)),g=[];for(let w of m){let y=w.isCurrent?"* ":" ",R=w.displayName.padEnd(p),b=V(w.hash),E="";try{let C=await M(s,w.hash);E=ae(C.message)}catch{}let k="";if(h&&w.branchName){let C=await ln(s,h,w.branchName);if(C){let O=nc(C,d>=2);O&&(k=` ${O}`)}}g.push(`${y}${R} ${b}${k} ${E}`)}return{stdout:`${g.join(`
226
226
  `)}
227
- `,stderr:"",exitCode:0}}})}ne();Xe();xe();oe();Ge();me();nn();Je();function bc(e,t){e.command("checkout",{description:"Switch branches or restore working tree files",args:[B.string().name("target").describe("Branch name or path to checkout").optional()],options:{branch:H().alias("b").describe("Create and switch to a new branch"),forceBranch:H().alias("B").describe("Create/reset and switch to a new branch"),detach:H().alias("d").describe("Detach HEAD at named commit"),orphan:H().describe("Create a new orphan branch"),ours:H().describe("Checkout our version for unmerged files"),theirs:H().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=n.target;if(n.ours&&n.theirs)return I("--ours and --theirs are incompatible");if(n.detach&&(n.branch||n.forceBranch||n.orphan))return I("'--detach' cannot be used with '-b/-B/--orphan'");if(o.passthrough.length>0){if(n.detach)return I(`git checkout: --detach does not take a path argument '${o.passthrough[0]}'`);let l=ct(i,r.cwd),u=o.passthrough,m=null;if(a){if(n.ours||n.theirs)return I("cannot specify both a revision and --ours/--theirs");let h=await Ie(i,a,`invalid reference: ${a}`);if(S(h))return h;m=h.commit.tree}return n.ours||n.theirs?Gs(i,u,l,n.theirs?3:2):js(i,u,l,m)}if(n.orphan)return n.branch?I("--orphan and -b are incompatible"):n.ours||n.theirs?I("--orphan and --ours/--theirs are incompatible"):a?Mu(i,a,r.env,t):I("you must specify a branch to checkout");if(n.detach){let l=a??"HEAD",u=await Ie(i,l,`invalid reference: ${l}`);return S(u)?u:wc(i,l,u.hash,r.env,t)}if(!a)return I("you must specify a branch to checkout");if(n.branch||n.forceBranch)return ju(i,a,r.env,t,!!n.forceBranch);if(a==="-")return Du(i,r.env,t);let c=`refs/heads/${a}`,f=await N(i,c);if(f)return yc(i,a,c,f,r.env,t);let d=await Be(i,a);if(d){let l=await _e(i,d);return wc(i,a,l,r.env,t)}if(i.workTree){let l=await q(i),u=ss(l,a);if(u)return await rt(i,{path:u.path,hash:u.hash,mode:u.mode}),{stdout:"",stderr:"",exitCode:0}}return _(`error: pathspec '${a}' did not match any file(s) known to git
228
- `)}})}async function Du(e,t,n){let r=await Ms(e);return r?yc(e,r.name,r.refName,r.hash,t,n):I("no previous branch")}async function Mu(e,t,n,r){let o=`refs/heads/${t}`;if(await N(e,o))return I(`a branch named '${t}' already exists`);let i=await q(e),a=Pn(i);if(a)return a;let c=await X(e),f=null;c&&(f=(await M(e,c)).tree),await Fe(e,"HEAD",o),await dt(e);let d=await cn(e);await r?.hooks?.emitPost("post-checkout",{prevHead:c,newHead:J,isBranchCheckout:!0});let l="";return f&&(l=await zn(e,f,i)),{stdout:l,stderr:`Switched to a new branch '${t}'
229
- ${d}`,exitCode:0}}async function ju(e,t,n,r,o=!1){if(r?.hooks){let p=await r.hooks.emitPre("pre-checkout",{target:t,mode:"create-branch"});if(p)return{stdout:"",stderr:p.message??"",exitCode:1}}let s=await Z(e),i=await X(e),a=`refs/heads/${t}`,c=await N(e,a);if(c&&!o)return I(`a branch named '${t}' already exists`);if(o){let p=await q(e),g=Pn(p);if(g)return g}i&&await Y(e,a,i),await Fe(e,"HEAD",a),await dt(e);let f=await cn(e),d=s?.type==="symbolic"?s.target.replace(/^refs\/heads\//,""):i??J;i&&(c?c!==i&&await te(e,n,a,c,i,"branch: Reset to HEAD"):await te(e,n,a,null,i,"branch: Created from HEAD")),await te(e,n,"HEAD",i,i??J,`checkout: moving from ${d} to ${t}`),await r?.hooks?.emitPost("post-checkout",{prevHead:i,newHead:i??J,isBranchCheckout:!0});let l="";if(o&&i){let p=await q(e),g=await M(e,i);l=await zn(e,g.tree,p)}let u=await pe(e),m=await an(e,u,t);m&&(l+=Kn(m));let h=c?`Switched to and reset branch '${t}'
227
+ `,stderr:"",exitCode:0}}})}function Q(e){return e!=null&&typeof e=="object"&&"reject"in e&&e.reject===!0}var ju=["preCommit","preMergeCommit","preCheckout","prePush","preFetch","preClone","prePull","preRebase","preReset","preClean","preRm","preCherryPick","preRevert","preStash","beforeCommand"],Gu=["commitMsg","mergeMsg"],Lu=["postCommit","postMerge","postCheckout","postPush","postFetch","postClone","postPull","postReset","postClean","postRm","postCherryPick","postRevert","postStash","afterCommand"],_u=["onRefUpdate","onRefDelete","onObjectWrite"];function Nu(...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 ju){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let a of o){let i=await a(s);if(Q(i))return i}})}for(let r of Gu){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let a of o){let i=await a(s);if(Q(i))return i}})}for(let r of Lu){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let a of o)try{await a(s)}catch{}})}for(let r of _u){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=s=>{for(let a of o)try{a(s)}catch{}})}return n}re();Je();ke();ie();je();le();an();et();function xc(e,t){e.command("checkout",{description:"Switch branches or restore working tree files",args:[q.string().name("target").describe("Branch name or path to checkout").optional()],options:{branch:H().alias("b").describe("Create and switch to a new branch"),forceBranch:H().alias("B").describe("Create/reset and switch to a new branch"),detach:H().alias("d").describe("Detach HEAD at named commit"),orphan:H().describe("Create a new orphan branch"),ours:H().describe("Checkout our version for unmerged files"),theirs:H().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await B(r.fs,r.cwd,t);if(v(s))return s;let a=s,i=n.target;if(n.ours&&n.theirs)return $("--ours and --theirs are incompatible");if(n.detach&&(n.branch||n.forceBranch||n.orphan))return $("'--detach' cannot be used with '-b/-B/--orphan'");if(o.passthrough.length>0){if(n.detach)return $(`git checkout: --detach does not take a path argument '${o.passthrough[0]}'`);let l=lt(a,r.cwd),u=o.passthrough,m=null;if(i){if(n.ours||n.theirs)return $("cannot specify both a revision and --ours/--theirs");let h=await Ie(a,i,`invalid reference: ${i}`);if(v(h))return h;m=h.commit.tree}return n.ours||n.theirs?Us(a,u,l,n.theirs?3:2):Fs(a,u,l,m)}if(n.orphan)return n.branch?$("--orphan and -b are incompatible"):n.ours||n.theirs?$("--orphan and --ours/--theirs are incompatible"):i?Uu(a,i,r.env,t):$("you must specify a branch to checkout");if(n.detach){let l=i??"HEAD",u=await Ie(a,l,`invalid reference: ${l}`);return v(u)?u:Rc(a,l,u.hash,r.env,t)}if(!i)return $("you must specify a branch to checkout");if(n.branch||n.forceBranch)return Bu(a,i,r.env,t,!!n.forceBranch);if(i==="-")return Fu(a,r.env,t);let c=`refs/heads/${i}`,f=await U(a,c);if(f)return Cc(a,i,c,f,r.env,t);let d=await We(a,i);if(d){let l=await _e(a,d);return Rc(a,i,l,r.env,t)}if(a.workTree){let l=await K(a),u=us(l,i);if(u)return await it(a,{path:u.path,hash:u.hash,mode:u.mode}),{stdout:"",stderr:"",exitCode:0}}return N(`error: pathspec '${i}' did not match any file(s) known to git
228
+ `)}})}async function Fu(e,t,n){let r=await Ns(e);return r?Cc(e,r.name,r.refName,r.hash,t,n):$("no previous branch")}async function Uu(e,t,n,r){let o=`refs/heads/${t}`;if(await U(e,o))return $(`a branch named '${t}' already exists`);let a=await K(e),i=$n(a);if(i)return i;let c=await X(e),f=null;c&&(f=(await M(e,c)).tree),await Ue(e,"HEAD",o),await mt(e);let d=await un(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:c,newHead:J,isBranchCheckout:!0});let l="";return f&&(l=await Xn(e,f,a)),{stdout:l,stderr:`Switched to a new branch '${t}'
229
+ ${d}`,exitCode:0}}async function Bu(e,t,n,r,o=!1){let s=await r?.hooks?.preCheckout?.({repo:e,target:t,mode:"create-branch"});if(Q(s))return N(s.message??"");let a=await Z(e),i=await X(e),c=`refs/heads/${t}`,f=await U(e,c);if(f&&!o)return $(`a branch named '${t}' already exists`);if(o){let g=await K(e),w=$n(g);if(w)return w}i&&await Y(e,c,i),await Ue(e,"HEAD",c),await mt(e);let d=await un(e),l=a?.type==="symbolic"?a.target.replace(/^refs\/heads\//,""):i??J;i&&(f?f!==i&&await ne(e,n,c,f,i,"branch: Reset to HEAD"):await ne(e,n,c,null,i,"branch: Created from HEAD")),await ne(e,n,"HEAD",i,i??J,`checkout: moving from ${l} to ${t}`),await r?.hooks?.postCheckout?.({repo:e,prevHead:i,newHead:i??J,isBranchCheckout:!0});let u="";if(o&&i){let g=await K(e),w=await M(e,i);u=await Xn(e,w.tree,g)}let m=await he(e),h=await ln(e,m,t);h&&(u+=Yn(h));let p=f?`Switched to and reset branch '${t}'
230
230
  `:`Switched to a new branch '${t}'
231
- `;return{stdout:l,stderr:`${h}${f}`,exitCode:0}}async function yc(e,t,n,r,o,s){if(s?.hooks){let i=await s.hooks.emitPre("pre-checkout",{target:t,mode:"switch"});if(i)return{stdout:"",stderr:i.message??"",exitCode:1}}return ar(e,t,n,r,o,s)}async function wc(e,t,n,r,o){if(o?.hooks){let s=await o.hooks.emitPre("pre-checkout",{target:t,mode:"detach"});if(s)return{stdout:"",stderr:s.message??"",exitCode:1}}return Rn(e,n,r,o,{detachAdviceTarget:t})}ne();xe();ne();function ni(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}=ei(e,t);return Gu(o,n,s,r)}function Gu(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 Lu(e,t,n){let r=[];for(let c of ni(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 ni(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,d=c.oStart+c.oLength,l=[c];for(i(f);a<r.length;){let u=r[a];if(u.oStart>d)break;d=Math.max(d,u.oStart+u.oLength),l.push(u),a++}if(l.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 l){let k=w.oStart,b=k+w.oLength,E=w.abStart,x=E+w.abLength,P=u[w.ab];P.abMin=Math.min(E,P.abMin),P.abMax=Math.max(x,P.abMax),P.oMin=Math.min(k,P.oMin),P.oMax=Math.max(b,P.oMax)}let m=u.a.abMin+(f-u.a.oMin),h=u.a.abMax+(d-u.a.oMax),p=u.b.abMin+(f-u.b.oMin),g=u.b.abMax+(d-u.b.oMax);o.push({stable:!1,a:e.slice(m,h),o:t.slice(f,d),b:n.slice(p,g)})}s=d}return i(t.length),o}function _u(e,t,n,r){let o=r?.excludeFalseConflicts??!0,s=Lu(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&&Ec(f.a,f.b)?a.push(...f.a):(c(),i.push({type:"conflict",a:f.a,o:f.o,b:f.b}));return c(),Uu(Nu(i))}function Nr(e,t,n,r){let o=r?.markerSize??7,s=`${"<".repeat(o)}${r?.a?` ${r.a}`:""}`,i="=".repeat(o),a=`${">".repeat(o)}${r?.b?` ${r.b}`:""}`,c=_u(e,t,n),f=!1,d=[];for(let l of c)l.type==="ok"?d.push(...l.lines):(f=!0,d.push(s,...l.a,i,...l.b,a));return{conflict:f,result:d}}function Nu(e){let t=[];for(let n of e)n.type==="ok"?t.push(n):t.push(...Fu(n));return t}function Fu(e){let{a:t,b:n}=e;if(t.length===0||n.length===0)return[e];if(Ec(t,n))return[e];let r=ni(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 d=c+a.buffer1[1],l=a.buffer2[0]+a.buffer2[1];o.push({type:"conflict",a:t.slice(c,d),o:[],b:n.slice(a.buffer2[0],l)}),s=d}return t.length-s>0&&o.push({type:"ok",lines:t.slice(s)}),o.length===1&&o[0].type==="conflict"?[e]:o}function Uu(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 Yn(e,t,n,r){let o=Nr(Et(e),Et(t),Et(n),{a:r.a,b:r.b,markerSize:r.markerSize}),i=(o.result[o.result.length-1]??"").endsWith("\0"),a=o.result.map(ri);return(a[a.length-1]??"").startsWith(">>>>>>>")||!i?`${a.join(`
231
+ `;return{stdout:u,stderr:`${p}${d}`,exitCode:0}}async function Cc(e,t,n,r,o,s){let a=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"switch"});return Q(a)?N(a.message??""):dr(e,t,n,r,o,s)}async function Rc(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"detach"});return Q(s)?N(s.message??""):Tn(e,n,r,o,{detachAdviceTarget:t})}re();ke();re();function ci(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}=ii(e,t);return Wu(o,n,s,r)}function Wu(e,t,n,r){let o=[],s=0,a=0;for(;s<t||a<r;){for(;s<t&&a<r&&!e[s]&&!n[a];)s++,a++;if(s>=t&&a>=r)break;let i=s,c=a;for(;s<t&&e[s];)s++;for(;a<r&&n[a];)a++;(s>i||a>c)&&o.push({buffer1:[i,s-i],buffer2:[c,a-c]})}return o}function qu(e,t,n){let r=[];for(let c of ci(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 ci(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 a(c){c>s&&(o.push({stable:!0,buffer:"o",bufferStart:s,bufferLength:c-s,content:t.slice(s,c)}),s=c)}let i=0;for(;i<r.length;){let c=r[i++],f=c.oStart,d=c.oStart+c.oLength,l=[c];for(a(f);i<r.length;){let u=r[i];if(u.oStart>d)break;d=Math.max(d,u.oStart+u.oLength),l.push(u),i++}if(l.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 l){let y=w.oStart,R=y+w.oLength,b=w.abStart,E=b+w.abLength,k=u[w.ab];k.abMin=Math.min(b,k.abMin),k.abMax=Math.max(E,k.abMax),k.oMin=Math.min(y,k.oMin),k.oMax=Math.max(R,k.oMax)}let m=u.a.abMin+(f-u.a.oMin),h=u.a.abMax+(d-u.a.oMax),p=u.b.abMin+(f-u.b.oMin),g=u.b.abMax+(d-u.b.oMax);o.push({stable:!1,a:e.slice(m,h),o:t.slice(f,d),b:n.slice(p,g)})}s=d}return a(t.length),o}function Ku(e,t,n,r){let o=r?.excludeFalseConflicts??!0,s=qu(e,t,n),a=[],i=[];function c(){i.length&&(a.push({type:"ok",lines:i}),i=[])}for(let f of s)f.stable?i.push(...f.content):o&&Pc(f.a,f.b)?i.push(...f.a):(c(),a.push({type:"conflict",a:f.a,o:f.o,b:f.b}));return c(),Yu(zu(a))}function Vr(e,t,n,r){let o=r?.markerSize??7,s=`${"<".repeat(o)}${r?.a?` ${r.a}`:""}`,a="=".repeat(o),i=`${">".repeat(o)}${r?.b?` ${r.b}`:""}`,c=Ku(e,t,n),f=!1,d=[];for(let l of c)l.type==="ok"?d.push(...l.lines):(f=!0,d.push(s,...l.a,a,...l.b,i));return{conflict:f,result:d}}function zu(e){let t=[];for(let n of e)n.type==="ok"?t.push(n):t.push(...Vu(n));return t}function Vu(e){let{a:t,b:n}=e;if(t.length===0||n.length===0)return[e];if(Pc(t,n))return[e];let r=ci(t,n);if(r.length===0)return[{type:"ok",lines:t}];let o=[],s=0;for(let i of r){let c=i.buffer1[0];c-s>0&&o.push({type:"ok",lines:t.slice(s,c)});let d=c+i.buffer1[1],l=i.buffer2[0]+i.buffer2[1];o.push({type:"conflict",a:t.slice(c,d),o:[],b:n.slice(i.buffer2[0],l)}),s=d}return t.length-s>0&&o.push({type:"ok",lines:t.slice(s)}),o.length===1&&o[0].type==="conflict"?[e]:o}function Yu(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 a=t[r+1],i=o;i.a=[...o.a,...s.lines,...a.a],i.b=[...o.b,...s.lines,...a.b],i.o=[...o.o,...s.lines,...a.o],r++}else n.push(s)}return n}function Jn(e,t,n,r){let o=Vr(xt(e),xt(t),xt(n),{a:r.a,b:r.b,markerSize:r.markerSize}),a=(o.result[o.result.length-1]??"").endsWith("\0"),i=o.result.map(fi);return(i[i.length-1]??"").startsWith(">>>>>>>")||!a?`${i.join(`
232
232
  `)}
233
- `:a.join(`
234
- `)}function Et(e){if(e==="")return[];let t=e.split(`
235
- `);if(t[t.length-1]==="")t.pop();else{let n=t[t.length-1]??"";t[t.length-1]=`${n}\0`}return t}function ri(e){return e.endsWith("\0")?e.slice(0,-1):e}function Ec(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}xe();oe();en();ue();Gn();Te();Je();Vt();var dr=new TextDecoder,Hn=new TextEncoder,kc={name:"virtual",email:"virtual@merge",timestamp:0,timezone:"+0000"};async function Mt(e,t,n,r,o){let{paths:s,baseMap:i,oursMap:a,theirsMap:c}=await Wu(e,t,n,r),f=await Ku(e,s,i,a,c,o);return zu(e,s,o,f)}async function Ur(e,t,n,r){let o=await Dt(e,t,n),s=await M(e,t),i=await M(e,n);if(o.length===0)return{...await Mt(e,null,s.tree,i.tree,r),baseTree:null};if(o.length===1){let f=await M(e,o[0]);return{...await Mt(e,f.tree,s.tree,i.tree,r),baseTree:f.tree}}let a=await Hc(e,t,n,o,1);return{...await Mt(e,a,s.tree,i.tree,r),baseTree:a}}async function Wu(e,t,n,r){let o=await fe(e,t),s=await fe(e,n),i=await fe(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 d=o.get(f)??null,l=s.get(f)??null,u=i.get(f)??null,m=d?{hash:d.hash,mode:d.mode}:null,h=l?{hash:l.hash,mode:l.mode}:null,p=u?{hash:u.hash,mode:u.mode}:null,g=(d?1:0)|(l?2:0)|(u?4:0),w=d?.hash??null,k=l?.hash??null,b=u?.hash??null,E=0;w!==null&&w===k&&(E|=3),w!==null&&w===b&&(E|=5),k!==null&&k===b&&(E|=6);let x={path:f,stages:[m,h,p],pathnames:[f,f,f],filemask:g,matchMask:E,merged:{result:null,clean:!1},pathConflict:!1};if(qu(x)){c.set(f,x);continue}c.set(f,x)}return{paths:c,baseMap:o,oursMap:s,theirsMap:i}}function qu(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 Ku(e,t,n,r,o,s){let i={entries:[],conflicts:[],msgBuf:[],worktreeBlobs:new Map},a=[],c=[];for(let[j,O]of n)r.has(j)||a.push({path:j,status:"deleted",oldHash:O.hash,oldMode:O.mode}),o.has(j)||c.push({path:j,status:"deleted",oldHash:O.hash,oldMode:O.mode});for(let[j,O]of r)n.has(j)||a.push({path:j,status:"added",newHash:O.hash,newMode:O.mode});for(let[j,O]of o)n.has(j)||c.push({path:j,status:"added",newHash:O.hash,newMode:O.mode});let f=await Qe(e,a),d=await Qe(e,c);if(f.renames.length===0&&d.renames.length===0)return i;let l=new Map,u=new Map;for(let j of f.renames)l.set(j.oldPath,j);for(let j of d.renames)u.set(j.oldPath,j);let m=new Set;for(let[j]of r)!n.has(j)&&o.has(j)&&m.add(j);let h=new Set,p=s?.a??"HEAD",g=s?.b??"theirs";function w(j,O,v=0){i.msgBuf.push({sortKey:j,subOrder:v,text:O})}for(let j of[...n.keys()].sort()){let O=l.get(j),v=u.get(j);if(!O&&!v)continue;let W=n.get(j);if(h.add(j),O&&v)if(h.add(O.newPath),h.add(v.newPath),O.newPath===v.newPath){let F=r.get(O.newPath),D=o.get(v.newPath);if(F.hash===D.hash)i.entries.push(mt(O.newPath,F));else{let K=si(t,O.newPath);K.stages=[{hash:W.hash,mode:W.mode},{hash:F.hash,mode:F.mode},{hash:D.hash,mode:D.mode}],K.pathnames=[j,O.newPath,v.newPath],K.filemask=7,K.merged={result:null,clean:!1}}}else{let F=r.get(O.newPath),D=o.get(v.newPath),K=await Tc(e,W,F,D,s);K.conflict&&w(j,`Auto-merging ${j}`,-1),i.conflicts.push({path:j,reason:"rename-rename",oursPath:O.newPath,theirsPath:v.newPath}),w(j,`CONFLICT (rename/rename): ${j} renamed to ${O.newPath} in ${p} and to ${v.newPath} in ${g}.`),i.entries.push(mt(j,W,1)),i.entries.push(tt(O.newPath,F.mode,K.hash,2)),i.entries.push(tt(v.newPath,D.mode,K.hash,3)),i.worktreeBlobs.set(O.newPath,{hash:K.hash,mode:F.mode}),i.worktreeBlobs.set(v.newPath,{hash:K.hash,mode:D.mode})}else if(O){h.add(O.newPath);let F=o.get(j),D=r.get(O.newPath),K=m.has(O.newPath);if(F)if(K)await Ic(e,i,O.newPath,j,W,D,F,r,o,!1,s);else if(F.hash===W.hash&&D.hash===W.hash)i.entries.push(mt(O.newPath,D));else if(F.hash===W.hash)i.entries.push(mt(O.newPath,D));else if(D.hash===W.hash)i.entries.push(tt(O.newPath,D.mode,F.hash));else{let ae=si(t,O.newPath);ae.stages=[{hash:W.hash,mode:W.mode},{hash:D.hash,mode:D.mode},{hash:F.hash,mode:F.mode}],ae.pathnames=[j,O.newPath,j],ae.filemask=7,ae.merged={result:null,clean:!1}}else{let ae=o.get(O.newPath);if(i.conflicts.push({path:O.newPath,reason:"rename-delete",deletedBy:"theirs",oldPath:j}),w(O.newPath,`CONFLICT (rename/delete): ${j} renamed to ${O.newPath} in ${p}, but deleted in ${g}.`),ae){i.conflicts.push({path:O.newPath,reason:"add-add"}),w(O.newPath,`Auto-merging ${O.newPath}`,0),w(O.newPath,`CONFLICT (add/add): Merge conflict in ${O.newPath}`,1),i.entries.push(mt(O.newPath,D,2)),i.entries.push(mt(O.newPath,ae,3));let ee=await zs(e,D.hash,ae.hash,D.mode,s);i.worktreeBlobs.set(O.newPath,{hash:ee,mode:D.mode})}else i.entries.push(tt(O.newPath,W.mode,W.hash,1)),i.entries.push(mt(O.newPath,D,2)),i.worktreeBlobs.set(O.newPath,{hash:D.hash,mode:D.mode}),D.hash!==W.hash&&w(O.newPath,`CONFLICT (modify/delete): ${O.newPath} deleted in ${g} and modified in ${p}. Version ${p} of ${O.newPath} left in tree.`,1)}}else if(v){h.add(v.newPath);let F=r.get(j),D=o.get(v.newPath),K=m.has(v.newPath);if(F)if(K)await Ic(e,i,v.newPath,j,W,F,D,r,o,!0,s);else if(F.hash===W.hash&&D.hash===W.hash)i.entries.push(mt(v.newPath,D));else if(F.hash===W.hash)i.entries.push(mt(v.newPath,D));else if(D.hash===W.hash)i.entries.push(tt(v.newPath,D.mode,F.hash));else{let ae=si(t,v.newPath);ae.stages=[{hash:W.hash,mode:W.mode},{hash:F.hash,mode:F.mode},{hash:D.hash,mode:D.mode}],ae.pathnames=[j,j,v.newPath],ae.filemask=7,ae.merged={result:null,clean:!1}}else{let ae=r.get(v.newPath);if(i.conflicts.push({path:v.newPath,reason:"rename-delete",deletedBy:"ours",oldPath:j}),w(v.newPath,`CONFLICT (rename/delete): ${j} renamed to ${v.newPath} in ${g}, but deleted in ${p}.`),ae){i.conflicts.push({path:v.newPath,reason:"add-add"}),w(v.newPath,`Auto-merging ${v.newPath}`,0),w(v.newPath,`CONFLICT (add/add): Merge conflict in ${v.newPath}`,1),i.entries.push(mt(v.newPath,ae,2)),i.entries.push(mt(v.newPath,D,3));let ee=await zs(e,ae.hash,D.hash,ae.mode,s);i.worktreeBlobs.set(v.newPath,{hash:ee,mode:ae.mode})}else i.entries.push(tt(v.newPath,W.mode,W.hash,1)),i.entries.push(mt(v.newPath,D,3)),i.worktreeBlobs.set(v.newPath,{hash:D.hash,mode:D.mode}),D.hash!==W.hash&&w(v.newPath,`CONFLICT (modify/delete): ${v.newPath} deleted in ${p} and modified in ${g}. Version ${g} of ${v.newPath} left in tree.`,1)}}}let k=new Set(f.renames.map(j=>j.newPath)),b=new Set(d.renames.map(j=>j.newPath)),E=xc(n,r),x=xc(n,o),P=Cc(E,o,n),C=Cc(x,r,n),R=Pc(f.renames,P),y=Pc(d.renames,C),$=Rc(R),A=Rc(y);for(let j of[...$.keys()])A.has(j)&&($.delete(j),A.delete(j));let L=new Set($.keys()),G=new Set(A.keys());if(A.size>0)for(let j of a){if(j.status!=="added"||k.has(j.path))continue;let O=$c(j.path,A,L);if(!O)continue;if(t.has(O)||n.has(O)||r.has(O)||o.has(O)){if(r.has(O)){w(O,`CONFLICT (implicit dir rename): Existing file/dir at ${O} in the way of implicit directory rename(s) putting the following path(s) there: ${j.path}.`,1);continue}let F=r.get(j.path),D=o.get(O)??n.get(O);i.entries.push(tt(O,F.mode,F.hash,2)),D&&i.entries.push(tt(O,D.mode,D.hash,3)),i.worktreeBlobs.set(O,{hash:F.hash,mode:F.mode}),i.conflicts.push({path:O,reason:"add-add"}),w(O,`CONFLICT (file location): ${j.path} added in ${p} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${O}.`,1);let K=t.get(j.path);K&&(K.merged={result:null,clean:!0}),h.add(j.path);continue}let v=r.get(j.path);i.entries.push(tt(O,v.mode,v.hash,2)),i.worktreeBlobs.set(O,{hash:v.hash,mode:v.mode}),i.conflicts.push({path:O,reason:"directory-rename"}),w(O,`CONFLICT (file location): ${j.path} added in ${p} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${O}.`,1);let W=t.get(j.path);W&&(W.merged={result:null,clean:!0}),h.add(j.path)}if($.size>0)for(let j of c){if(j.status!=="added"||b.has(j.path))continue;let O=$c(j.path,$,G);if(!O)continue;if(t.has(O)||n.has(O)||r.has(O)||o.has(O)){if(o.has(O)){w(O,`CONFLICT (implicit dir rename): Existing file/dir at ${O} in the way of implicit directory rename(s) putting the following path(s) there: ${j.path}.`,1);continue}let F=o.get(j.path),D=r.get(O)??n.get(O);D&&i.entries.push(tt(O,D.mode,D.hash,2)),i.entries.push(tt(O,F.mode,F.hash,3)),i.worktreeBlobs.set(O,{hash:F.hash,mode:F.mode}),i.conflicts.push({path:O,reason:"add-add"}),w(O,`CONFLICT (file location): ${j.path} added in ${g} inside a directory that was renamed in ${p}, suggesting it should perhaps be moved to ${O}.`,1);let K=t.get(j.path);K&&(K.merged={result:null,clean:!0}),h.add(j.path);continue}let v=o.get(j.path);i.entries.push(tt(O,v.mode,v.hash,3)),i.worktreeBlobs.set(O,{hash:v.hash,mode:v.mode}),i.conflicts.push({path:O,reason:"directory-rename"}),w(O,`CONFLICT (file location): ${j.path} added in ${g} inside a directory that was renamed in ${p}, suggesting it should perhaps be moved to ${O}.`,1);let W=t.get(j.path);W&&(W.merged={result:null,clean:!0}),h.add(j.path)}let V=new Set(i.entries.map(j=>j.path));for(let j of V){let O=t.get(j);O&&(O.merged={result:null,clean:!0})}for(let j of h){if(V.has(j))continue;let O=t.get(j);if(!O||O.merged.clean)continue;O.filemask===7&&!O.pathConflict||(O.merged={result:null,clean:!0})}return i}function xc(e,t){let n=new Set;for(let s of e.keys()){let i=kt(s);for(;i;)n.add(i),i=kt(i)}let r=new Set;for(let s of t.keys()){let i=kt(s);for(;i;)r.add(i),i=kt(i)}let o=new Set;for(let s of n)r.has(s)||o.add(s);return o}function Cc(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=kt(o)??"";e.has(s)&&r.add(s)}for(let o of[...r]){let s=kt(o);for(;s;)e.has(s)&&!r.has(s)&&r.add(s),s=kt(s)}return r}function Pc(e,t){let n=new Map;for(let r of e){let o=kt(r.oldPath),s=kt(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)),d=r.newPath.slice(c,r.newPath.indexOf("/",c));if(f!==d)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=kt(o),s=kt(s)}}return n}function Rc(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 $c(e,t,n){let r=kt(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=kt(r)}let o=t.get("");return o!==void 0&&!n.has(o)?`${o}/${e}`:null}function kt(e){let t=e.lastIndexOf("/");return t===-1?"":e.slice(0,t)}async function Ic(e,t,n,r,o,s,i,a,c,f=!1,d){let l=f?a.get(n):c.get(n),u=f?i:s;if(l.hash===u.hash){t.entries.push(tt(n,l.mode,l.hash)),t.msgBuf.push({sortKey:r,subOrder:0,text:`Auto-merging ${r}`});return}let h=await Tc(e,o,s,i,d,f?{oursPath:r,theirsPath:n}:{oursPath:n,theirsPath:r},8);if(l.hash===h.hash)t.entries.push(tt(n,l.mode,h.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(mt(n,l,2)),t.entries.push(tt(n,i.mode,h.hash,3));let p=await zs(e,l.hash,h.hash,l.mode,d);t.worktreeBlobs.set(n,{hash:p,mode:l.mode})}else{t.entries.push(tt(n,s.mode,h.hash,2)),t.entries.push(mt(n,l,3));let p=await zs(e,h.hash,l.hash,s.mode,d);t.worktreeBlobs.set(n,{hash:p,mode:s.mode})}}async function Tc(e,t,n,r,o,s,i){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(rn(t.mode)||rn(n.mode)||rn(r.mode))return{hash:n.hash,conflict:!0};let a=await se(e,t.hash),c=await se(e,n.hash),f=await se(e,r.hash);if(Oe(c)||Oe(f)||Oe(a))return{hash:n.hash,conflict:!0};let d=Et(a),l=Et(c),u=Et(f),m=Nr(l,d,u);if(!m.conflict)return{hash:await ii(e,m.result),conflict:!1};let h=o?.a??"HEAD",p=o?.b??"theirs",g=s?.oursPath?`${h}:${s.oursPath}`:h,w=s?.theirsPath?`${p}:${s.theirsPath}`:p,k=Yn(c,a,f,{a:g,b:w,markerSize:i??7});return{hash:await Re(e,"blob",Hn.encode(k)),conflict:!0}}async function zs(e,t,n,r,o){let s=await se(e,t),i=await se(e,n),a=Yn(s,"",i,{a:o?.a??"HEAD",b:o?.b??"theirs"});return Re(e,"blob",Hn.encode(a))}function mt(e,t,n=0){return tt(e,t.mode,t.hash,n)}function tt(e,t,n,r=0){return{path:e,mode:parseInt(t,8),hash:n,stage:r,stat:Pe()}}async function zu(e,t,n,r){let o=[...r.entries],s=[...r.conflicts],i=[...r.msgBuf],a=new Map(r.worktreeBlobs);function c(m,h,p=0){i.push({sortKey:m,subOrder:p,text:h})}for(let m of[...t.keys()].sort()){let h=t.get(m);if(h.merged.clean){h.merged.result?.hash&&o.push(Ae(m,h.merged.result.hash,h.merged.result.mode));continue}await Vu(e,h,n,o,s,c,a)}i.sort((m,h)=>(m.sortKey<h.sortKey?-1:m.sortKey>h.sortKey?1:0)||m.subOrder-h.subOrder);let f=i.map(m=>m.text),d=[],l=new Set;for(let m of o)m.stage===0&&(d.push(m),l.add(m.path));for(let[m,h]of a)l.has(m)||d.push(Ae(m,h.hash,h.mode));d.sort((m,h)=>Ce(m.path,h.path));let u=await Se(e,d);return{entries:o,conflicts:s,messages:f,resultTree:u}}async function Vu(e,t,n,r,o,s,i){let a=t.path,[c,f,d]=t.stages,l=c?.hash??null,u=f?.hash??null,m=d?.hash??null;if(u===null&&m!==null&&l!==null){o.push({path:a,reason:"delete-modify",deletedBy:"ours"});let h=n?.a??"HEAD",p=n?.b??"theirs";s(a,`CONFLICT (modify/delete): ${a} deleted in ${h} and modified in ${p}. Version ${p} of ${a} left in tree.`),c&&r.push(Ae(a,l,c.mode,1)),r.push(Ae(a,m,d.mode,3)),i.set(a,{hash:m,mode:d.mode});return}if(m===null&&u!==null&&l!==null){o.push({path:a,reason:"delete-modify",deletedBy:"theirs"});let h=n?.b??"theirs",p=n?.a??"HEAD";s(a,`CONFLICT (modify/delete): ${a} deleted in ${h} and modified in ${p}. Version ${p} of ${a} left in tree.`),c&&r.push(Ae(a,l,c.mode,1)),r.push(Ae(a,u,f.mode,2)),i.set(a,{hash:u,mode:f.mode});return}if(l===null&&u!==null&&m!==null){if(u===m){r.push(Ae(a,u,f.mode));return}s(a,`Auto-merging ${a}`,0);let h=await se(e,u),p=await se(e,m);if(Oe(h)||Oe(p)){o.push({path:a,reason:"add-add"}),s(a,`warning: Cannot merge binary files: ${a} (${n?.a??"HEAD"} vs. ${n?.b??"theirs"})`,-1),s(a,`CONFLICT (add/add): Merge conflict in ${a}`,1),r.push(Ae(a,u,f.mode,2)),r.push(Ae(a,m,d.mode,3)),i.set(a,{hash:u,mode:f.mode});return}let g=Et(""),w=Et(h),k=Et(p),b=Nr(w,g,k,n);if(!b.conflict){let P=await ii(e,b.result);r.push(Ae(a,P,f.mode));return}o.push({path:a,reason:"add-add"}),s(a,`CONFLICT (add/add): Merge conflict in ${a}`,1),r.push(Ae(a,u,f.mode,2)),r.push(Ae(a,m,d.mode,3));let E=Yn(h,"",p,{a:n?.a??"HEAD",b:n?.b??"theirs"}),x=await Re(e,"blob",Hn.encode(E));i.set(a,{hash:x,mode:f.mode});return}if(l!==null&&u!==null&&m!==null){if(u===l){r.push(Ae(a,m,d.mode));return}if(m===l){r.push(Ae(a,u,f.mode));return}if(u===m){r.push(Ae(a,u,f.mode));return}if(s(a,`Auto-merging ${a}`,0),rn(c.mode)||rn(f.mode)||rn(d.mode)){o.push({path:a,reason:"content"}),s(a,`CONFLICT (content): Merge conflict in ${a}`,1),r.push(Ae(a,l,c.mode,1)),r.push(Ae(a,u,f.mode,2)),r.push(Ae(a,m,d.mode,3)),i.set(a,{hash:u,mode:f.mode});return}let h=await se(e,l),p=await se(e,u),g=await se(e,m);if(Oe(p)||Oe(g)||Oe(h)){o.push({path:a,reason:"content"}),s(a,`warning: Cannot merge binary files: ${a} (${n?.a??"HEAD"} vs. ${n?.b??"theirs"})`,-1),s(a,`CONFLICT (content): Merge conflict in ${a}`,1),r.push(Ae(a,l,c.mode,1)),r.push(Ae(a,u,f.mode,2)),r.push(Ae(a,m,d.mode,3)),i.set(a,{hash:u,mode:f.mode});return}let w=Et(h),k=Et(p),b=Et(g),E=Nr(k,w,b,n);if(E.conflict){let x=t.pathnames[1],P=t.pathnames[2],C=x!==a||P!==a,R={path:a,reason:"content"};C&&(x!==a&&(R.oursOrigPath=x),P!==a&&(R.theirsOrigPath=P)),o.push(R),s(a,`CONFLICT (content): Merge conflict in ${a}`,1),r.push(Ae(a,l,c.mode,1)),r.push(Ae(a,u,f.mode,2)),r.push(Ae(a,m,d.mode,3));let y=C?`${n?.a??"HEAD"}:${x}`:n?.a??"HEAD",$=C?`${n?.b??"theirs"}:${P}`:n?.b??"theirs",A=Yn(p,h,g,{a:y,b:$}),L=await Re(e,"blob",Hn.encode(A));i.set(a,{hash:L,mode:f.mode})}else{let x=await ii(e,E.result);r.push(Ae(a,x,f.mode))}return}}var Yu=200;async function Hc(e,t,n,r,o){let s=await Promise.all(r.map(async d=>({hash:d,timestamp:(await M(e,d)).committer.timestamp})));s.sort((d,l)=>d.timestamp-l.timestamp);let i=s.map(d=>d.hash),a=i[0],c=a,f=(await M(e,a)).tree;for(let d=1;d<i.length;d++){let l=i[d],u=(await M(e,l)).tree,m=null;if(o>=Yu)m=f;else{let g=await Dt(e,c,l);g.length===0?m=null:g.length===1?m=(await M(e,g[0])).tree:m=await Hc(e,c,l,g,o+1)}let h=await Mt(e,m,f,u);f=await Xu(e,h,o);let p=qt({type:"commit",tree:f,parents:[c,l],author:kc,committer:kc,message:"merged common ancestors"});c=await Re(e,"commit",p)}return f}async function Xu(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 d=s(a.path,1);if(d){r.push({...d,stage:0});continue}}if(a.reason==="rename-rename"){let d=a.oursPath??a.path,l=a.theirsPath??a.path,u=s(a.path,1),m=s(d,2),h=s(l,3);if(m&&h){let p=dr.decode((await ge(e,m.hash)).content),g=dr.decode((await ge(e,h.hash)).content),w=u?dr.decode((await ge(e,u.hash)).content):"",k=8+n*2,b=i.a??"Temporary merge branch 1",E=i.b??"Temporary merge branch 2",x=Yn(p,w,g,{a:`${b}:${d}`,o:i.o,b:`${E}:${l}`,markerSize:k}),P=await Re(e,"blob",Hn.encode(x));r.push({path:d,mode:m.mode,hash:P,stage:0,stat:Pe()}),r.push({path:l,mode:h.mode,hash:P,stage:0,stat:Pe()});continue}else if(m){r.push({...m,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 d=dr.decode((await ge(e,c.hash)).content),l=dr.decode((await ge(e,f.hash)).content),u=a.reason==="content"?s(a.path,1):null,m=u?dr.decode((await ge(e,u.hash)).content):"",h=a.oursOrigPath||a.theirsOrigPath,p=i.a??"Temporary merge branch 1",g=i.b??"Temporary merge branch 2",w=h?`${p}:${a.oursOrigPath??a.path}`:p,k=h?`${g}:${a.theirsOrigPath??a.path}`:g,b=Yn(d,m,l,{a:w,o:i.o,b:k,markerSize:i.markerSize}),E=await Re(e,"blob",Hn.encode(b));r.push({path:a.path,mode:c.mode,hash:E,stage:0,stat:Pe()})}else c?r.push({...c,stage:0}):f&&r.push({...f,stage:0})}return r.sort((a,c)=>Ce(a.path,c.path)),Se(e,r)}async function ii(e,t){let n=t.map(ri);if(n.length===0)return Re(e,"blob",Hn.encode(""));let s=(t[t.length-1]??"").endsWith("\0")?n.join(`
233
+ `:i.join(`
234
+ `)}function xt(e){if(e==="")return[];let t=e.split(`
235
+ `);if(t[t.length-1]==="")t.pop();else{let n=t[t.length-1]??"";t[t.length-1]=`${n}\0`}return t}function fi(e){return e.endsWith("\0")?e.slice(0,-1):e}function Pc(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}ke();ie();sn();de();Nn();He();et();Jt();var mr=new TextDecoder,Dn=new TextEncoder,Oc={name:"virtual",email:"virtual@merge",timestamp:0,timezone:"+0000"};async function Lt(e,t,n,r,o){let{paths:s,baseMap:a,oursMap:i,theirsMap:c}=await Zu(e,t,n,r),f=await Qu(e,s,a,i,c,o);return em(e,s,o,f)}async function Xr(e,t,n,r){let o=await Gt(e,t,n),s=await M(e,t),a=await M(e,n);if(o.length===0)return{...await Lt(e,null,s.tree,a.tree,r),baseTree:null};if(o.length===1){let f=await M(e,o[0]);return{...await Lt(e,f.tree,s.tree,a.tree,r),baseTree:f.tree}}let i=await Mc(e,t,n,o,1);return{...await Lt(e,i,s.tree,a.tree,r),baseTree:i}}async function Zu(e,t,n,r){let o=await ce(e,t),s=await ce(e,n),a=await ce(e,r),i=new Set;for(let f of o.keys())i.add(f);for(let f of s.keys())i.add(f);for(let f of a.keys())i.add(f);let c=new Map;for(let f of i){let d=o.get(f)??null,l=s.get(f)??null,u=a.get(f)??null,m=d?{hash:d.hash,mode:d.mode}:null,h=l?{hash:l.hash,mode:l.mode}:null,p=u?{hash:u.hash,mode:u.mode}:null,g=(d?1:0)|(l?2:0)|(u?4:0),w=d?.hash??null,y=l?.hash??null,R=u?.hash??null,b=0;w!==null&&w===y&&(b|=3),w!==null&&w===R&&(b|=5),y!==null&&y===R&&(b|=6);let E={path:f,stages:[m,h,p],pathnames:[f,f,f],filemask:g,matchMask:b,merged:{result:null,clean:!1},pathConflict:!1};if(Ju(E)){c.set(f,E);continue}c.set(f,E)}return{paths:c,baseMap:o,oursMap:s,theirsMap:a}}function Ju(e){let[t,n,r]=e.stages,o=t?.hash??null,s=n?.hash??null,a=r?.hash??null;return s===o&&a===o?(n?e.merged={result:{hash:s,mode:n.mode},clean:!0}:e.merged={result:null,clean:!0},!0):s===a&&s!==null?(e.merged={result:{hash:s,mode:n.mode},clean:!0},!0):s===null&&a===null?(e.merged={result:null,clean:!0},!0):a===o&&s!==o?(n?e.merged={result:{hash:s,mode:n.mode},clean:!0}:e.merged={result:null,clean:!0},!0):s===o&&a!==o?(r?e.merged={result:{hash:a,mode:r.mode},clean:!0}:e.merged={result:null,clean:!0},!0):!1}async function Qu(e,t,n,r,o,s){let a={entries:[],conflicts:[],msgBuf:[],worktreeBlobs:new Map},i=[],c=[];for(let[A,S]of n)r.has(A)||i.push({path:A,status:"deleted",oldHash:S.hash,oldMode:S.mode}),o.has(A)||c.push({path:A,status:"deleted",oldHash:S.hash,oldMode:S.mode});for(let[A,S]of r)n.has(A)||i.push({path:A,status:"added",newHash:S.hash,newMode:S.mode});for(let[A,S]of o)n.has(A)||c.push({path:A,status:"added",newHash:S.hash,newMode:S.mode});let f=await tt(e,i),d=await tt(e,c);if(f.renames.length===0&&d.renames.length===0)return a;let l=new Map,u=new Map;for(let A of f.renames)l.set(A.oldPath,A);for(let A of d.renames)u.set(A.oldPath,A);let m=new Set;for(let[A]of r)!n.has(A)&&o.has(A)&&m.add(A);let h=new Set,p=s?.a??"HEAD",g=s?.b??"theirs";function w(A,S,L=0){a.msgBuf.push({sortKey:A,subOrder:L,text:S})}for(let A of[...n.keys()].sort()){let S=l.get(A),L=u.get(A);if(!S&&!L)continue;let _=n.get(A);if(h.add(A),S&&L)if(h.add(S.newPath),h.add(L.newPath),S.newPath===L.newPath){let F=r.get(S.newPath),D=o.get(L.newPath);if(F.hash===D.hash)a.entries.push(gt(S.newPath,F));else{let W=di(t,S.newPath);W.stages=[{hash:_.hash,mode:_.mode},{hash:F.hash,mode:F.mode},{hash:D.hash,mode:D.mode}],W.pathnames=[A,S.newPath,L.newPath],W.filemask=7,W.merged={result:null,clean:!1}}}else{let F=r.get(S.newPath),D=o.get(L.newPath),W=await Dc(e,_,F,D,s);W.conflict&&w(A,`Auto-merging ${A}`,-1),a.conflicts.push({path:A,reason:"rename-rename",oursPath:S.newPath,theirsPath:L.newPath}),w(A,`CONFLICT (rename/rename): ${A} renamed to ${S.newPath} in ${p} and to ${L.newPath} in ${g}.`),a.entries.push(gt(A,_,1)),a.entries.push(rt(S.newPath,F.mode,W.hash,2)),a.entries.push(rt(L.newPath,D.mode,W.hash,3)),a.worktreeBlobs.set(S.newPath,{hash:W.hash,mode:F.mode}),a.worktreeBlobs.set(L.newPath,{hash:W.hash,mode:D.mode})}else if(S){h.add(S.newPath);let F=o.get(A),D=r.get(S.newPath),W=m.has(S.newPath);if(F)if(W)await vc(e,a,S.newPath,A,_,D,F,r,o,!1,s);else if(F.hash===_.hash&&D.hash===_.hash)a.entries.push(gt(S.newPath,D));else if(F.hash===_.hash)a.entries.push(gt(S.newPath,D));else if(D.hash===_.hash)a.entries.push(rt(S.newPath,D.mode,F.hash));else{let te=di(t,S.newPath);te.stages=[{hash:_.hash,mode:_.mode},{hash:D.hash,mode:D.mode},{hash:F.hash,mode:F.mode}],te.pathnames=[A,S.newPath,A],te.filemask=7,te.merged={result:null,clean:!1}}else{let te=o.get(S.newPath);if(a.conflicts.push({path:S.newPath,reason:"rename-delete",deletedBy:"theirs",oldPath:A}),w(S.newPath,`CONFLICT (rename/delete): ${A} renamed to ${S.newPath} in ${p}, but deleted in ${g}.`),te){a.conflicts.push({path:S.newPath,reason:"add-add"}),w(S.newPath,`Auto-merging ${S.newPath}`,0),w(S.newPath,`CONFLICT (add/add): Merge conflict in ${S.newPath}`,1),a.entries.push(gt(S.newPath,D,2)),a.entries.push(gt(S.newPath,te,3));let $e=await Js(e,D.hash,te.hash,D.mode,s);a.worktreeBlobs.set(S.newPath,{hash:$e,mode:D.mode})}else a.entries.push(rt(S.newPath,_.mode,_.hash,1)),a.entries.push(gt(S.newPath,D,2)),a.worktreeBlobs.set(S.newPath,{hash:D.hash,mode:D.mode}),D.hash!==_.hash&&w(S.newPath,`CONFLICT (modify/delete): ${S.newPath} deleted in ${g} and modified in ${p}. Version ${p} of ${S.newPath} left in tree.`,1)}}else if(L){h.add(L.newPath);let F=r.get(A),D=o.get(L.newPath),W=m.has(L.newPath);if(F)if(W)await vc(e,a,L.newPath,A,_,F,D,r,o,!0,s);else if(F.hash===_.hash&&D.hash===_.hash)a.entries.push(gt(L.newPath,D));else if(F.hash===_.hash)a.entries.push(gt(L.newPath,D));else if(D.hash===_.hash)a.entries.push(rt(L.newPath,D.mode,F.hash));else{let te=di(t,L.newPath);te.stages=[{hash:_.hash,mode:_.mode},{hash:F.hash,mode:F.mode},{hash:D.hash,mode:D.mode}],te.pathnames=[A,A,L.newPath],te.filemask=7,te.merged={result:null,clean:!1}}else{let te=r.get(L.newPath);if(a.conflicts.push({path:L.newPath,reason:"rename-delete",deletedBy:"ours",oldPath:A}),w(L.newPath,`CONFLICT (rename/delete): ${A} renamed to ${L.newPath} in ${g}, but deleted in ${p}.`),te){a.conflicts.push({path:L.newPath,reason:"add-add"}),w(L.newPath,`Auto-merging ${L.newPath}`,0),w(L.newPath,`CONFLICT (add/add): Merge conflict in ${L.newPath}`,1),a.entries.push(gt(L.newPath,te,2)),a.entries.push(gt(L.newPath,D,3));let $e=await Js(e,te.hash,D.hash,te.mode,s);a.worktreeBlobs.set(L.newPath,{hash:$e,mode:te.mode})}else a.entries.push(rt(L.newPath,_.mode,_.hash,1)),a.entries.push(gt(L.newPath,D,3)),a.worktreeBlobs.set(L.newPath,{hash:D.hash,mode:D.mode}),D.hash!==_.hash&&w(L.newPath,`CONFLICT (modify/delete): ${L.newPath} deleted in ${p} and modified in ${g}. Version ${g} of ${L.newPath} left in tree.`,1)}}}let y=new Set(f.renames.map(A=>A.newPath)),R=new Set(d.renames.map(A=>A.newPath)),b=Ic(n,r),E=Ic(n,o),k=$c(b,o,n),C=$c(E,r,n),O=Tc(f.renames,k),x=Tc(d.renames,C),P=Hc(O),I=Hc(x);for(let A of[...P.keys()])I.has(A)&&(P.delete(A),I.delete(A));let G=new Set(P.keys()),j=new Set(I.keys());if(I.size>0)for(let A of i){if(A.status!=="added"||y.has(A.path))continue;let S=Sc(A.path,I,G);if(!S)continue;if(t.has(S)||n.has(S)||r.has(S)||o.has(S)){if(r.has(S)){w(S,`CONFLICT (implicit dir rename): Existing file/dir at ${S} in the way of implicit directory rename(s) putting the following path(s) there: ${A.path}.`,1);continue}let F=r.get(A.path),D=o.get(S)??n.get(S);a.entries.push(rt(S,F.mode,F.hash,2)),D&&a.entries.push(rt(S,D.mode,D.hash,3)),a.worktreeBlobs.set(S,{hash:F.hash,mode:F.mode}),a.conflicts.push({path:S,reason:"add-add"}),w(S,`CONFLICT (file location): ${A.path} added in ${p} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${S}.`,1);let W=t.get(A.path);W&&(W.merged={result:null,clean:!0}),h.add(A.path);continue}let L=r.get(A.path);a.entries.push(rt(S,L.mode,L.hash,2)),a.worktreeBlobs.set(S,{hash:L.hash,mode:L.mode}),a.conflicts.push({path:S,reason:"directory-rename"}),w(S,`CONFLICT (file location): ${A.path} added in ${p} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${S}.`,1);let _=t.get(A.path);_&&(_.merged={result:null,clean:!0}),h.add(A.path)}if(P.size>0)for(let A of c){if(A.status!=="added"||R.has(A.path))continue;let S=Sc(A.path,P,j);if(!S)continue;if(t.has(S)||n.has(S)||r.has(S)||o.has(S)){if(o.has(S)){w(S,`CONFLICT (implicit dir rename): Existing file/dir at ${S} in the way of implicit directory rename(s) putting the following path(s) there: ${A.path}.`,1);continue}let F=o.get(A.path),D=r.get(S)??n.get(S);D&&a.entries.push(rt(S,D.mode,D.hash,2)),a.entries.push(rt(S,F.mode,F.hash,3)),a.worktreeBlobs.set(S,{hash:F.hash,mode:F.mode}),a.conflicts.push({path:S,reason:"add-add"}),w(S,`CONFLICT (file location): ${A.path} added in ${g} inside a directory that was renamed in ${p}, suggesting it should perhaps be moved to ${S}.`,1);let W=t.get(A.path);W&&(W.merged={result:null,clean:!0}),h.add(A.path);continue}let L=o.get(A.path);a.entries.push(rt(S,L.mode,L.hash,3)),a.worktreeBlobs.set(S,{hash:L.hash,mode:L.mode}),a.conflicts.push({path:S,reason:"directory-rename"}),w(S,`CONFLICT (file location): ${A.path} added in ${g} inside a directory that was renamed in ${p}, suggesting it should perhaps be moved to ${S}.`,1);let _=t.get(A.path);_&&(_.merged={result:null,clean:!0}),h.add(A.path)}let z=new Set(a.entries.map(A=>A.path));for(let A of z){let S=t.get(A);S&&(S.merged={result:null,clean:!0})}for(let A of h){if(z.has(A))continue;let S=t.get(A);if(!S||S.merged.clean)continue;S.filemask===7&&!S.pathConflict||(S.merged={result:null,clean:!0})}return a}function Ic(e,t){let n=new Set;for(let s of e.keys()){let a=Ct(s);for(;a;)n.add(a),a=Ct(a)}let r=new Set;for(let s of t.keys()){let a=Ct(s);for(;a;)r.add(a),a=Ct(a)}let o=new Set;for(let s of n)r.has(s)||o.add(s);return o}function $c(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=Ct(o)??"";e.has(s)&&r.add(s)}for(let o of[...r]){let s=Ct(o);for(;s;)e.has(s)&&!r.has(s)&&r.add(s),s=Ct(s)}return r}function Tc(e,t){let n=new Map;for(let r of e){let o=Ct(r.oldPath),s=Ct(r.newPath),a=!0;for(;;){if(!a){let i=o.length+(o?1:0),c=s.length+(s?1:0),f=r.oldPath.slice(i,r.oldPath.indexOf("/",i)),d=r.newPath.slice(c,r.newPath.indexOf("/",c));if(f!==d)break}if(t.has(o)){let i=n.get(o);i||(i=new Map,n.set(o,i)),i.set(s,(i.get(s)??0)+1)}if(a=!1,!o||!s)break;o=Ct(o),s=Ct(s)}}return n}function Hc(e){let t=new Map;for(let[n,r]of e){let o=0,s=0,a=null;for(let[i,c]of r)c===o?s=o:c>o&&(o=c,a=i);o>0&&s!==o&&a!==null&&t.set(n,a)}return t}function Sc(e,t,n){let r=Ct(e);for(;r;){let s=t.get(r);if(s!==void 0){if(n.has(s))return null;let a=e.slice(r.length+1);return s?`${s}/${a}`:a}r=Ct(r)}let o=t.get("");return o!==void 0&&!n.has(o)?`${o}/${e}`:null}function Ct(e){let t=e.lastIndexOf("/");return t===-1?"":e.slice(0,t)}async function vc(e,t,n,r,o,s,a,i,c,f=!1,d){let l=f?i.get(n):c.get(n),u=f?a:s;if(l.hash===u.hash){t.entries.push(rt(n,l.mode,l.hash)),t.msgBuf.push({sortKey:r,subOrder:0,text:`Auto-merging ${r}`});return}let h=await Dc(e,o,s,a,d,f?{oursPath:r,theirsPath:n}:{oursPath:n,theirsPath:r},8);if(l.hash===h.hash)t.entries.push(rt(n,l.mode,h.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(gt(n,l,2)),t.entries.push(rt(n,a.mode,h.hash,3));let p=await Js(e,l.hash,h.hash,l.mode,d);t.worktreeBlobs.set(n,{hash:p,mode:l.mode})}else{t.entries.push(rt(n,s.mode,h.hash,2)),t.entries.push(gt(n,l,3));let p=await Js(e,h.hash,l.hash,s.mode,d);t.worktreeBlobs.set(n,{hash:p,mode:s.mode})}}async function Dc(e,t,n,r,o,s,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 i=await oe(e,t.hash),c=await oe(e,n.hash),f=await oe(e,r.hash);if(Te(c)||Te(f)||Te(i))return{hash:n.hash,conflict:!0};let d=xt(i),l=xt(c),u=xt(f),m=Vr(l,d,u);if(!m.conflict)return{hash:await ui(e,m.result),conflict:!1};let h=o?.a??"HEAD",p=o?.b??"theirs",g=s?.oursPath?`${h}:${s.oursPath}`:h,w=s?.theirsPath?`${p}:${s.theirsPath}`:p,y=Jn(c,i,f,{a:g,b:w,markerSize:a??7});return{hash:await Pe(e,"blob",Dn.encode(y)),conflict:!0}}async function Js(e,t,n,r,o){let s=await oe(e,t),a=await oe(e,n),i=Jn(s,"",a,{a:o?.a??"HEAD",b:o?.b??"theirs"});return Pe(e,"blob",Dn.encode(i))}function gt(e,t,n=0){return rt(e,t.mode,t.hash,n)}function rt(e,t,n,r=0){return{path:e,mode:parseInt(t,8),hash:n,stage:r,stat:Ce()}}async function em(e,t,n,r){let o=[...r.entries],s=[...r.conflicts],a=[...r.msgBuf],i=new Map(r.worktreeBlobs);function c(m,h,p=0){a.push({sortKey:m,subOrder:p,text:h})}for(let m of[...t.keys()].sort()){let h=t.get(m);if(h.merged.clean){h.merged.result?.hash&&o.push(ve(m,h.merged.result.hash,h.merged.result.mode));continue}await tm(e,h,n,o,s,c,i)}a.sort((m,h)=>(m.sortKey<h.sortKey?-1:m.sortKey>h.sortKey?1:0)||m.subOrder-h.subOrder);let f=a.map(m=>m.text),d=[],l=new Set;for(let m of o)m.stage===0&&(d.push(m),l.add(m.path));for(let[m,h]of i)l.has(m)||d.push(ve(m,h.hash,h.mode));d.sort((m,h)=>Re(m.path,h.path));let u=await De(e,d);return{entries:o,conflicts:s,messages:f,resultTree:u}}async function tm(e,t,n,r,o,s,a){let i=t.path,[c,f,d]=t.stages,l=c?.hash??null,u=f?.hash??null,m=d?.hash??null;if(u===null&&m!==null&&l!==null){o.push({path:i,reason:"delete-modify",deletedBy:"ours"});let h=n?.a??"HEAD",p=n?.b??"theirs";s(i,`CONFLICT (modify/delete): ${i} deleted in ${h} and modified in ${p}. Version ${p} of ${i} left in tree.`),c&&r.push(ve(i,l,c.mode,1)),r.push(ve(i,m,d.mode,3)),a.set(i,{hash:m,mode:d.mode});return}if(m===null&&u!==null&&l!==null){o.push({path:i,reason:"delete-modify",deletedBy:"theirs"});let h=n?.b??"theirs",p=n?.a??"HEAD";s(i,`CONFLICT (modify/delete): ${i} deleted in ${h} and modified in ${p}. Version ${p} of ${i} left in tree.`),c&&r.push(ve(i,l,c.mode,1)),r.push(ve(i,u,f.mode,2)),a.set(i,{hash:u,mode:f.mode});return}if(l===null&&u!==null&&m!==null){if(u===m){r.push(ve(i,u,f.mode));return}s(i,`Auto-merging ${i}`,0);let h=await oe(e,u),p=await oe(e,m);if(Te(h)||Te(p)){o.push({path:i,reason:"add-add"}),s(i,`warning: Cannot merge binary files: ${i} (${n?.a??"HEAD"} vs. ${n?.b??"theirs"})`,-1),s(i,`CONFLICT (add/add): Merge conflict in ${i}`,1),r.push(ve(i,u,f.mode,2)),r.push(ve(i,m,d.mode,3)),a.set(i,{hash:u,mode:f.mode});return}let g=xt(""),w=xt(h),y=xt(p),R=Vr(w,g,y,n);if(!R.conflict){let k=await ui(e,R.result);r.push(ve(i,k,f.mode));return}o.push({path:i,reason:"add-add"}),s(i,`CONFLICT (add/add): Merge conflict in ${i}`,1),r.push(ve(i,u,f.mode,2)),r.push(ve(i,m,d.mode,3));let b=Jn(h,"",p,{a:n?.a??"HEAD",b:n?.b??"theirs"}),E=await Pe(e,"blob",Dn.encode(b));a.set(i,{hash:E,mode:f.mode});return}if(l!==null&&u!==null&&m!==null){if(u===l){r.push(ve(i,m,d.mode));return}if(m===l){r.push(ve(i,u,f.mode));return}if(u===m){r.push(ve(i,u,f.mode));return}if(s(i,`Auto-merging ${i}`,0),cn(c.mode)||cn(f.mode)||cn(d.mode)){o.push({path:i,reason:"content"}),s(i,`CONFLICT (content): Merge conflict in ${i}`,1),r.push(ve(i,l,c.mode,1)),r.push(ve(i,u,f.mode,2)),r.push(ve(i,m,d.mode,3)),a.set(i,{hash:u,mode:f.mode});return}let h=await oe(e,l),p=await oe(e,u),g=await oe(e,m);if(Te(p)||Te(g)||Te(h)){o.push({path:i,reason:"content"}),s(i,`warning: Cannot merge binary files: ${i} (${n?.a??"HEAD"} vs. ${n?.b??"theirs"})`,-1),s(i,`CONFLICT (content): Merge conflict in ${i}`,1),r.push(ve(i,l,c.mode,1)),r.push(ve(i,u,f.mode,2)),r.push(ve(i,m,d.mode,3)),a.set(i,{hash:u,mode:f.mode});return}let w=xt(h),y=xt(p),R=xt(g),b=Vr(y,w,R,n);if(b.conflict){let E=t.pathnames[1],k=t.pathnames[2],C=E!==i||k!==i,O={path:i,reason:"content"};C&&(E!==i&&(O.oursOrigPath=E),k!==i&&(O.theirsOrigPath=k)),o.push(O),s(i,`CONFLICT (content): Merge conflict in ${i}`,1),r.push(ve(i,l,c.mode,1)),r.push(ve(i,u,f.mode,2)),r.push(ve(i,m,d.mode,3));let x=C?`${n?.a??"HEAD"}:${E}`:n?.a??"HEAD",P=C?`${n?.b??"theirs"}:${k}`:n?.b??"theirs",I=Jn(p,h,g,{a:x,b:P}),G=await Pe(e,"blob",Dn.encode(I));a.set(i,{hash:G,mode:f.mode})}else{let E=await ui(e,b.result);r.push(ve(i,E,f.mode))}return}}var nm=200;async function Mc(e,t,n,r,o){let s=await Promise.all(r.map(async d=>({hash:d,timestamp:(await M(e,d)).committer.timestamp})));s.sort((d,l)=>d.timestamp-l.timestamp);let a=s.map(d=>d.hash),i=a[0],c=i,f=(await M(e,i)).tree;for(let d=1;d<a.length;d++){let l=a[d],u=(await M(e,l)).tree,m=null;if(o>=nm)m=f;else{let g=await Gt(e,c,l);g.length===0?m=null:g.length===1?m=(await M(e,g[0])).tree:m=await Mc(e,c,l,g,o+1)}let h=await Lt(e,m,f,u);f=await rm(e,h,o);let p=Yt({type:"commit",tree:f,parents:[c,l],author:Oc,committer:Oc,message:"merged common ancestors"});c=await Pe(e,"commit",p)}return f}async function rm(e,t,n){let r=t.entries.filter(i=>i.stage===0),o=new Map;for(let i of t.entries)i.stage>0&&o.set(`${i.path}\0${i.stage}`,i);let s=(i,c)=>o.get(`${i}\0${c}`),a={a:"Temporary merge branch 1",b:"Temporary merge branch 2",markerSize:7+n*2};for(let i of t.conflicts){if(i.reason==="delete-modify"||i.reason==="rename-delete"){let d=s(i.path,1);if(d){r.push({...d,stage:0});continue}}if(i.reason==="rename-rename"){let d=i.oursPath??i.path,l=i.theirsPath??i.path,u=s(i.path,1),m=s(d,2),h=s(l,3);if(m&&h){let p=mr.decode((await ge(e,m.hash)).content),g=mr.decode((await ge(e,h.hash)).content),w=u?mr.decode((await ge(e,u.hash)).content):"",y=8+n*2,R=a.a??"Temporary merge branch 1",b=a.b??"Temporary merge branch 2",E=Jn(p,w,g,{a:`${R}:${d}`,o:a.o,b:`${b}:${l}`,markerSize:y}),k=await Pe(e,"blob",Dn.encode(E));r.push({path:d,mode:m.mode,hash:k,stage:0,stat:Ce()}),r.push({path:l,mode:h.mode,hash:k,stage:0,stat:Ce()});continue}else if(m){r.push({...m,stage:0});continue}}let c=s(i.path,2),f=s(i.path,3);if(c&&f&&(i.reason==="content"||i.reason==="add-add")){let d=mr.decode((await ge(e,c.hash)).content),l=mr.decode((await ge(e,f.hash)).content),u=i.reason==="content"?s(i.path,1):null,m=u?mr.decode((await ge(e,u.hash)).content):"",h=i.oursOrigPath||i.theirsOrigPath,p=a.a??"Temporary merge branch 1",g=a.b??"Temporary merge branch 2",w=h?`${p}:${i.oursOrigPath??i.path}`:p,y=h?`${g}:${i.theirsOrigPath??i.path}`:g,R=Jn(d,m,l,{a:w,o:a.o,b:y,markerSize:a.markerSize}),b=await Pe(e,"blob",Dn.encode(R));r.push({path:i.path,mode:c.mode,hash:b,stage:0,stat:Ce()})}else c?r.push({...c,stage:0}):f&&r.push({...f,stage:0})}return r.sort((i,c)=>Re(i.path,c.path)),De(e,r)}async function ui(e,t){let n=t.map(fi);if(n.length===0)return Pe(e,"blob",Dn.encode(""));let s=(t[t.length-1]??"").endsWith("\0")?n.join(`
236
236
  `):`${n.join(`
237
237
  `)}
238
- `;return Re(e,"blob",Hn.encode(s))}function Ae(e,t,n,r=0){let o=typeof n=="string"?parseInt(n,8):n;return{path:e,mode:o,hash:t,stage:r,stat:Pe()}}function si(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 Fr(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}
238
+ `;return Pe(e,"blob",Dn.encode(s))}function ve(e,t,n,r=0){let o=typeof n=="string"?parseInt(n,8):n;return{path:e,mode:o,hash:t,stage:r,stat:Ce()}}function di(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 Yr(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}
239
239
  ${e.join(" ")}
240
240
  Merge with strategy ort failed.
241
241
  `;let c=e.map(d=>` ${d}`).join(`
@@ -244,53 +244,53 @@ ${c}
244
244
  ${f}
245
245
  Aborting
246
246
  Merge with strategy ort failed.
247
- `}let i=e.map(c=>` ${c}`).join(`
248
- `),a=r==="untracked"?`Please move or remove them before you ${t}.`:`Please commit your changes or stash them before you ${t}.`;return`${s}
249
- ${i}
247
+ `}let a=e.map(c=>` ${c}`).join(`
248
+ `),i=r==="untracked"?`Please move or remove them before you ${t}.`:`Please commit your changes or stash them before you ${t}.`;return`${s}
250
249
  ${a}
250
+ ${i}
251
251
  Aborting
252
252
  fatal: ${n} failed
253
- `}function Oc(e,t,n,r){let o=[];if(e.length>0){let i=e.map(a=>` ${a}`).join(`
253
+ `}function Ac(e,t,n,r){let o=[];if(e.length>0){let a=e.map(i=>` ${i}`).join(`
254
254
  `);o.push(`error: Your local changes to the following files would be overwritten by ${n}:
255
- ${i}
255
+ ${a}
256
256
  Please commit your changes or stash them before you ${n}.
257
- `)}if(t.length>0){let i=t.map(a=>` ${a}`).join(`
257
+ `)}if(t.length>0){let a=t.map(i=>` ${i}`).join(`
258
258
  `);o.push(`error: The following untracked working tree files would be overwritten by ${n}:
259
- ${i}
259
+ ${a}
260
260
  Please move or remove them before you ${n}.
261
261
  `)}let s=r==="merge"?"Merge with strategy ort failed.":`fatal: ${r} failed`;return`${o.join("")}Aborting
262
262
  ${s}
263
- `}async function dn(e,t,n,r){let o=await q(e),s=await fe(e,n);if(!r.skipStagedChangeCheck&&e.workTree){let h=new Map(ve(o).map(g=>[g.path,g])),p=[];for(let[g,w]of h){let k=s.get(g);(!k||k.hash!==w.hash)&&p.push(g)}for(let[g]of s)h.has(g)||p.push(g);if(p.length>0){let g=[...p].sort();await oi(e,o,s);let w=r.operationName??"merge",k=r.callerCommand??"merge";return{ok:!1,stdout:"",stderr:Fr(g,w,k,"local","staged"),exitCode:r.errorExitCode??2,failureKind:"staged"}}}if(e.workTree&&r.preflightOnewayCheck){let h=await Fn(e,[{label:"target",treeHash:t.resultTree}],o,{mergeFn:ks,updateWorktree:!1,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge"});if(!h.success){await oi(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=h.errors.filter(E=>E.error==="WOULD_OVERWRITE"||E.error==="NOT_UPTODATE_FILE").map(E=>E.path).sort(),k=h.errors.filter(E=>E.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||E.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(E=>E.path).sort(),b;return w.length>0&&k.length>0?b=Oc(w,k,p,g):k.length>0?b=Fr(k,p,g,"untracked","worktree"):b=Fr(w,p,g,"local","worktree"),{ok:!1,stdout:"",stderr:b,exitCode:r.errorExitCode??2,failureKind:"worktree"}}}if(e.workTree){let h=await Fn(e,[{label:"current",treeHash:n},{label:"target",treeHash:t.resultTree}],o,{mergeFn:xs,updateWorktree:!0,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge",allowStagedChanges:!!r.preflightOnewayCheck});if(!h.success){await oi(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=h.errors.filter(x=>x.error==="WOULD_OVERWRITE"||x.error==="NOT_UPTODATE_FILE").map(x=>x.path).sort(),k=h.errors.filter(x=>x.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||x.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(x=>x.path).sort(),b=[];w.length>0&&b.push(Fr(w,p,g,"local","worktree")),k.length>0&&b.push(Fr(k,p,g,"untracked","worktree"));let E;return b.length>1?E=Oc(w,k,p,g):E=b[0]??"",{ok:!1,stdout:"",stderr:E,exitCode:r.errorExitCode??2,failureKind:"worktree"}}await He(e,h.worktreeOps)}let i=new Set,a=t.entries;if(r.preflightOnewayCheck){let h=[];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}}h.push(p)}a=h}let c=new Set(a.map(h=>h.path));for(let h of s.keys())i.has(h)||c.add(h);let f=o.entries.filter(h=>!c.has(h.path)),d=[...a,...f];d.sort((h,p)=>Ce(h.path,p.path)||h.stage-p.stage);let l={version:2,entries:d};await re(e,l);let u=d.filter(h=>h.stage===0),m=await Se(e,u);return{ok:!0,finalIndex:l,mergedTreeHash:m}}async function oi(e,t,n){if(e.workTree)for(let r of t.entries){if(r.stage!==0||n.has(r.path))continue;let o=T(e.workTree,r.path);await e.fs.exists(o)||await rt(e,{path:r.path,hash:r.hash,mode:r.mode})}}oe();Ge();me();Te();Vt();function Ac(e,t){e.command("cherry-pick",{description:"Apply the changes introduced by some existing commits",args:[B.string().name("commit").describe("The commit to cherry-pick").optional()],options:{abort:H().describe("Abort the current cherry-pick operation"),continue:H().describe("Continue the cherry-pick after conflict resolution"),skip:H().describe("Skip the current cherry-pick and continue with the rest"),"record-origin":H().alias("x").describe('Append "(cherry picked from commit ...)" to the commit message'),mainline:Q.number().alias("m").describe("Select parent number for merge commit (1-based)"),noCommit:H().alias("n").describe("Apply changes without creating a commit")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(n.abort){if(t?.hooks){let v=await t.hooks.emitPre("pre-cherry-pick",{mode:"abort",commit:null});if(v)return{stdout:"",stderr:v.message??"",exitCode:1}}let O=await Ju(s,r.env);return O.exitCode===0&&await t?.hooks?.emitPost("post-cherry-pick",{mode:"abort",commitHash:null,hadConflicts:!1}),O}if(n.continue){if(t?.hooks){let v=await t.hooks.emitPre("pre-cherry-pick",{mode:"continue",commit:null});if(v)return{stdout:"",stderr:v.message??"",exitCode:1}}let O=await Qu(s,r.env);return O.exitCode===0&&await t?.hooks?.emitPost("post-cherry-pick",{mode:"continue",commitHash:null,hadConflicts:!1}),O}if(n.skip)return Zu(s,r.env);let i=n.commit;if(!i)return I("you must specify a commit to cherry-pick");if(t?.hooks){let O=await t.hooks.emitPre("pre-cherry-pick",{mode:"pick",commit:i});if(O)return{stdout:"",stderr:O.message??"",exitCode:1}}let a=await Ie(s,i);if(S(a))return a;let c=a.hash,f=a.commit,d=await Ke(s);if(S(d))return d;let l=await q(s);if(n.noCommit){let O=l.entries.filter(v=>v.stage>0);if(O.length>0){let F=O.slice(0,10).map(K=>`${K.path}: unmerged (${K.hash})`).join(`
264
- `),D=O.length>10?`
265
- ...`:"";return _(`${F}${D}
263
+ `}async function hn(e,t,n,r){let o=await K(e),s=await ce(e,n);if(!r.skipStagedChangeCheck&&e.workTree){let h=new Map(Ae(o).map(g=>[g.path,g])),p=[];for(let[g,w]of h){let y=s.get(g);(!y||y.hash!==w.hash)&&p.push(g)}for(let[g]of s)h.has(g)||p.push(g);if(p.length>0){let g=[...p].sort();await li(e,o,s);let w=r.operationName??"merge",y=r.callerCommand??"merge";return{ok:!1,stdout:"",stderr:Yr(g,w,y,"local","staged"),exitCode:r.errorExitCode??2,failureKind:"staged"}}}if(e.workTree&&r.preflightOnewayCheck){let h=await Wn(e,[{label:"target",treeHash:t.resultTree}],o,{mergeFn:Os,updateWorktree:!1,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge"});if(!h.success){await li(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=h.errors.filter(b=>b.error==="WOULD_OVERWRITE"||b.error==="NOT_UPTODATE_FILE").map(b=>b.path).sort(),y=h.errors.filter(b=>b.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||b.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(b=>b.path).sort(),R;return w.length>0&&y.length>0?R=Ac(w,y,p,g):y.length>0?R=Yr(y,p,g,"untracked","worktree"):R=Yr(w,p,g,"local","worktree"),{ok:!1,stdout:"",stderr:R,exitCode:r.errorExitCode??2,failureKind:"worktree"}}}if(e.workTree){let h=await Wn(e,[{label:"current",treeHash:n},{label:"target",treeHash:t.resultTree}],o,{mergeFn:Is,updateWorktree:!0,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge",allowStagedChanges:!!r.preflightOnewayCheck});if(!h.success){await li(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=h.errors.filter(E=>E.error==="WOULD_OVERWRITE"||E.error==="NOT_UPTODATE_FILE").map(E=>E.path).sort(),y=h.errors.filter(E=>E.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||E.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(E=>E.path).sort(),R=[];w.length>0&&R.push(Yr(w,p,g,"local","worktree")),y.length>0&&R.push(Yr(y,p,g,"untracked","worktree"));let b;return R.length>1?b=Ac(w,y,p,g):b=R[0]??"",{ok:!1,stdout:"",stderr:b,exitCode:r.errorExitCode??2,failureKind:"worktree"}}await Se(e,h.worktreeOps)}let a=new Set,i=t.entries;if(r.preflightOnewayCheck){let h=[];for(let p of t.entries){if(p.stage===0){let g=s.get(p.path);if(g&&g.hash===p.hash){a.add(p.path);continue}}h.push(p)}i=h}let c=new Set(i.map(h=>h.path));for(let h of s.keys())a.has(h)||c.add(h);let f=o.entries.filter(h=>!c.has(h.path)),d=[...i,...f];d.sort((h,p)=>Re(h.path,p.path)||h.stage-p.stage);let l={version:2,entries:d};await se(e,l);let u=d.filter(h=>h.stage===0),m=await De(e,u);return{ok:!0,finalIndex:l,mergedTreeHash:m}}async function li(e,t,n){if(e.workTree)for(let r of t.entries){if(r.stage!==0||n.has(r.path))continue;let o=T(e.workTree,r.path);await e.fs.exists(o)||await it(e,{path:r.path,hash:r.hash,mode:r.mode})}}ie();je();le();He();Jt();function jc(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:H().describe("Abort the current cherry-pick operation"),continue:H().describe("Continue the cherry-pick after conflict resolution"),skip:H().describe("Skip the current cherry-pick and continue with the rest"),"record-origin":H().alias("x").describe('Append "(cherry picked from commit ...)" to the commit message'),mainline:ee.number().alias("m").describe("Select parent number for merge commit (1-based)"),noCommit:H().alias("n").describe("Apply changes without creating a commit")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o;if(n.abort){let L=await t?.hooks?.preCherryPick?.({repo:s,mode:"abort",commit:null});if(Q(L))return{stdout:"",stderr:L.message??"",exitCode:1};let _=await om(s,r.env);return _.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),_}if(n.continue){let L=await t?.hooks?.preCherryPick?.({repo:s,mode:"continue",commit:null});if(Q(L))return{stdout:"",stderr:L.message??"",exitCode:1};let _=await im(s,r.env);return _.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"continue",commitHash:null,hadConflicts:!1}),_}if(n.skip)return sm(s,r.env);let a=n.commit;if(!a)return $("you must specify a commit to cherry-pick");let i=await t?.hooks?.preCherryPick?.({repo:s,mode:"pick",commit:a});if(Q(i))return{stdout:"",stderr:i.message??"",exitCode:1};let c=await Ie(s,a);if(v(c))return c;let f=c.hash,d=c.commit,l=await ze(s);if(v(l))return l;let u=await K(s);if(n.noCommit){let L=u.entries.filter(_=>_.stage>0);if(L.length>0){let D=L.slice(0,10).map(te=>`${te.path}: unmerged (${te.hash})`).join(`
264
+ `),W=L.length>10?`
265
+ ...`:"";return N(`${D}${W}
266
266
  error: your index file is unmerged.
267
267
  fatal: cherry-pick failed
268
- `,128)}}else{let O=on(l,"Cherry-picking",`fatal: cherry-pick failed
269
- `);if(O)return O}let u=await M(s,d),h=!!n["record-origin"]?em(f.message,c):f.message;if(s.workTree&&!n.noCommit){let O=await fe(s,u.tree);if(sr(l,O))return _(`error: your local changes would be overwritten by cherry-pick.
268
+ `,128)}}else{let L=dn(u,"Cherry-picking",`fatal: cherry-pick failed
269
+ `);if(L)return L}let m=await M(s,l),p=!!n["record-origin"]?am(d.message,f):d.message;if(s.workTree&&!n.noCommit){let L=await ce(s,m.tree);if(ar(u,L))return N(`error: your local changes would be overwritten by cherry-pick.
270
270
  hint: commit your changes or stash them to proceed.
271
271
  fatal: cherry-pick failed
272
- `,128)}if(f.parents.length>1){if(!n.mainline)return _(`error: commit ${c} is a merge but no -m option was given.
272
+ `,128)}if(d.parents.length>1){if(!n.mainline)return N(`error: commit ${f} is a merge but no -m option was given.
273
273
  fatal: cherry-pick failed
274
- `,128);let O=n.mainline-1;if(O<0||O>=f.parents.length)return _(`error: commit ${c} does not have parent ${n.mainline}
274
+ `,128);let L=n.mainline-1;if(L<0||L>=d.parents.length)return N(`error: commit ${f} does not have parent ${n.mainline}
275
275
  fatal: cherry-pick failed
276
- `,128)}else if(n.mainline)return _(`error: mainline was specified but commit is not a merge.
276
+ `,128)}else if(n.mainline)return N(`error: mainline was specified but commit is not a merge.
277
277
  fatal: cherry-pick failed
278
- `,128);let p;if(f.parents.length===0)p=await Se(s,[]);else{let O=f.parents.length>1?n.mainline-1:0,v=f.parents[O];if(!v)throw new Error("unreachable: parent must exist");p=(await M(s,v)).tree}let g=z(c),w=ie(f.message),k={a:"HEAD",b:w?`${g} (${w})`:g},b=await Mt(s,p,u.tree,f.tree,k);if(b.conflicts.length===0&&b.resultTree===u.tree){if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};await Y(s,"CHERRY_PICK_HEAD",c),await Y(s,"ORIG_HEAD",d),await $e(s,"MERGE_MSG",h);let O=b.messages.length>0?`${b.messages.join(`
278
+ `,128);let g;if(d.parents.length===0)g=await De(s,[]);else{let L=d.parents.length>1?n.mainline-1:0,_=d.parents[L];if(!_)throw new Error("unreachable: parent must exist");g=(await M(s,_)).tree}let w=V(f),y=ae(d.message),R={a:"HEAD",b:y?`${w} (${y})`:w},b=await Lt(s,g,m.tree,d.tree,R);if(b.conflicts.length===0&&b.resultTree===m.tree){if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};await Y(s,"CHERRY_PICK_HEAD",f),await Y(s,"ORIG_HEAD",l),await Oe(s,"MERGE_MSG",p);let L=b.messages.length>0?`${b.messages.join(`
279
279
  `)}
280
- `:"",v=await et(s,{fromCommit:!0});return{stdout:`${O}${v}`,stderr:`The previous cherry-pick is now empty, possibly due to conflict resolution.
280
+ `:"",_=await nt(s,{fromCommit:!0});return{stdout:`${L}${_}`,stderr:`The previous cherry-pick is now empty, possibly due to conflict resolution.
281
281
  If you wish to commit it anyway, use:
282
282
 
283
283
  git commit --allow-empty
284
284
 
285
285
  Otherwise, please use 'git cherry-pick --skip'
286
- `,exitCode:1}}let E=await dn(s,b,u.tree,{labels:k,errorExitCode:128,operationName:"merge",callerCommand:"cherry-pick",skipStagedChangeCheck:!0,preflightOnewayCheck:!!n.noCommit});if(!E.ok)return E;if(b.conflicts.length>0){let O=b.messages.join(`
287
- `);return await t?.hooks?.emitPost("post-cherry-pick",{mode:"pick",commitHash:null,hadConflicts:!0}),n.noCommit?{stdout:O?`${O}
288
- `:"",stderr:`error: could not apply ${g}... ${ie(f.message)}
286
+ `,exitCode:1}}let E=await hn(s,b,m.tree,{labels:R,errorExitCode:128,operationName:"merge",callerCommand:"cherry-pick",skipStagedChangeCheck:!0,preflightOnewayCheck:!!n.noCommit});if(!E.ok)return E;if(b.conflicts.length>0){let L=b.messages.join(`
287
+ `);return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:null,hadConflicts:!0}),n.noCommit?{stdout:L?`${L}
288
+ `:"",stderr:`error: could not apply ${w}... ${ae(d.message)}
289
289
  hint: after resolving the conflicts, mark the corrected paths
290
290
  hint: with 'git add <paths>' or 'git rm <paths>'
291
291
  hint: Disable this message with "git config set advice.mergeConflict false"
292
- `,exitCode:1}:(await Y(s,"CHERRY_PICK_HEAD",c),await Y(s,"ORIG_HEAD",d),await $e(s,"MERGE_MSG",h),{stdout:O?`${O}
293
- `:"",stderr:`error: could not apply ${g}... ${ie(f.message)}
292
+ `,exitCode:1}:(await Y(s,"CHERRY_PICK_HEAD",f),await Y(s,"ORIG_HEAD",l),await Oe(s,"MERGE_MSG",p),{stdout:L?`${L}
293
+ `:"",stderr:`error: could not apply ${w}... ${ae(d.message)}
294
294
  hint: After resolving the conflicts, mark them with
295
295
  hint: "git add/rm <pathspec>", then run
296
296
  hint: "git cherry-pick --continue".
@@ -298,125 +298,125 @@ hint: You can instead skip this commit with "git cherry-pick --skip".
298
298
  hint: To abort and get back to the state before "git cherry-pick",
299
299
  hint: run "git cherry-pick --abort".
300
300
  hint: Disable this message with "git config set advice.mergeConflict false"
301
- `,exitCode:1})}let x=E.mergedTreeHash;if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};let P=await Ve(s,r.env);if(S(P))return P;let C=await ft(s,x,[d],f.author,P,h);await _t(s),await Ht(s);let R=await Z(s),y=h.split(`
302
- `)[0]??"",$=R?.type==="symbolic"?R.target:"HEAD";await te(s,r.env,$,d,C,`cherry-pick: ${y}`,R?.type==="symbolic");let A=R?.type==="symbolic"?be(R.target):"detached HEAD",L=u.tree,G=await Zt(s,L,x,f.author,P,!0),V=It(A,C,h),j=b.messages.length>0?`${b.messages.join(`
301
+ `,exitCode:1})}let k=E.mergedTreeHash;if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};let C=await Ye(s,r.env);if(v(C))return C;let O=await ut(s,k,[l],d.author,C,p);await Bt(s),await At(s);let x=await Z(s),P=p.split(`
302
+ `)[0]??"",I=x?.type==="symbolic"?x.target:"HEAD";await ne(s,r.env,I,l,O,`cherry-pick: ${P}`,x?.type==="symbolic");let G=x?.type==="symbolic"?we(x.target):"detached HEAD",j=m.tree,z=await tn(s,j,k,d.author,C,!0),A=Ht(G,O,p),S=b.messages.length>0?`${b.messages.join(`
303
303
  `)}
304
- `:"";return await t?.hooks?.emitPost("post-cherry-pick",{mode:"pick",commitHash:C,hadConflicts:!1}),{stdout:`${j}${V}
305
- ${G}`,stderr:"",exitCode:0}}})}async function Zu(e,t){if(!await N(e,"CHERRY_PICK_HEAD"))return _(`error: no cherry-pick in progress
304
+ `:"";return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:O,hadConflicts:!1}),{stdout:`${S}${A}
305
+ ${z}`,stderr:"",exitCode:0}}})}async function sm(e,t){if(!await U(e,"CHERRY_PICK_HEAD"))return N(`error: no cherry-pick in progress
306
306
  fatal: cherry-pick failed
307
- `,128);let r=await X(e);if(!r)return I("unable to resolve HEAD");let o=await M(e,r),s=await q(e),i=await Ps(e,o.tree,s,r);if(!i.success){let a=i.errorOutput;return{...a,stderr:a.stderr+`error: failed to skip the commit
307
+ `,128);let r=await X(e);if(!r)return $("unable to resolve HEAD");let o=await M(e,r),s=await K(e),a=await Ts(e,o.tree,s,r);if(!a.success){let i=a.errorOutput;return{...i,stderr:i.stderr+`error: failed to skip the commit
308
308
  fatal: cherry-pick failed
309
- `}}return await re(e,{version:2,entries:i.newEntries}),await He(e,i.worktreeOps),await te(e,t,"HEAD",r,r,`reset: moving to ${r}`),await _t(e),{stdout:"",stderr:"",exitCode:0}}async function Ju(e,t){return await N(e,"CHERRY_PICK_HEAD")?xn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:_(`error: no cherry-pick or revert in progress
309
+ `}}return await se(e,{version:2,entries:a.newEntries}),await Se(e,a.worktreeOps),await ne(e,t,"HEAD",r,r,`reset: moving to ${r}`),await Bt(e),{stdout:"",stderr:"",exitCode:0}}async function om(e,t){return await U(e,"CHERRY_PICK_HEAD")?On(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:N(`error: no cherry-pick or revert in progress
310
310
  fatal: cherry-pick failed
311
- `,128),operationName:"cherry-pick",clearState:_t,origHeadAsTargetRev:!0}):await N(e,"REVERT_HEAD")?xn(e,t,{operationRef:"REVERT_HEAD",noOpError:_(`error: no cherry-pick or revert in progress
311
+ `,128),operationName:"cherry-pick",clearState:Bt,origHeadAsTargetRev:!0}):await U(e,"REVERT_HEAD")?On(e,t,{operationRef:"REVERT_HEAD",noOpError:N(`error: no cherry-pick or revert in progress
312
312
  fatal: cherry-pick failed
313
- `,128),operationName:"cherry-pick",clearState:Ht,origHeadAsTargetRev:!0}):_(`error: no cherry-pick or revert in progress
313
+ `,128),operationName:"cherry-pick",clearState:At,origHeadAsTargetRev:!0}):N(`error: no cherry-pick or revert in progress
314
314
  fatal: cherry-pick failed
315
- `,128)}async function Qu(e,t){let n=await N(e,"CHERRY_PICK_HEAD");if(!n)return _(`error: no cherry-pick or revert in progress
315
+ `,128)}async function im(e,t){let n=await U(e,"CHERRY_PICK_HEAD");if(!n)return N(`error: no cherry-pick or revert in progress
316
316
  fatal: cherry-pick failed
317
- `,128);let r=await q(e),o=on(r,"Committing");if(o)return o;let s=await M(e,n),i=await Ee(e,"MERGE_MSG");if(!i)return _(`Aborting commit due to empty commit message.
318
- `,1);let a=await Ee(e,"SQUASH_MSG");a&&(i=a+i),i=Xt(i);let c=ve(r),f=await Se(e,c),d=await Ke(e);if(S(d))return d;let u=(await M(e,d)).tree,m=await Ve(e,t);if(S(m))return m;let h=Ot(i),p=await ft(e,f,[d],s.author,m,h);await _t(e),await Ht(e),await he(e,"SQUASH_MSG");let g=await Z(e),w=ie(h),k=g?.type==="symbolic"?g.target:"HEAD";await te(e,t,k,d,p,`commit (cherry-pick): ${w}`,g?.type==="symbolic");let b=g?.type==="symbolic"?be(g.target):"detached HEAD",E=await Zt(e,u,f,s.author,m,!0);return{stdout:`${It(b,p,i)}
319
- ${E}`,stderr:"",exitCode:0}}function em(e,t){let n=`(cherry picked from commit ${t})`,r=e.replace(/\n+$/,""),o=r.lastIndexOf(`
317
+ `,128);let r=await K(e),o=dn(r,"Committing");if(o)return o;let s=await M(e,n),a=await Ee(e,"MERGE_MSG");if(!a)return N(`Aborting commit due to empty commit message.
318
+ `,1);let i=await Ee(e,"SQUASH_MSG");i&&(a=i+a),a=en(a);let c=Ae(r),f=await De(e,c),d=await ze(e);if(v(d))return d;let u=(await M(e,d)).tree,m=await Ye(e,t);if(v(m))return m;let h=St(a),p=await ut(e,f,[d],s.author,m,h);await Bt(e),await At(e),await me(e,"SQUASH_MSG");let g=await Z(e),w=ae(h),y=g?.type==="symbolic"?g.target:"HEAD";await ne(e,t,y,d,p,`commit (cherry-pick): ${w}`,g?.type==="symbolic");let R=g?.type==="symbolic"?we(g.target):"detached HEAD",b=await tn(e,u,f,s.author,m,!0);return{stdout:`${Ht(R,p,a)}
319
+ ${b}`,stderr:"",exitCode:0}}function am(e,t){let n=`(cherry picked from commit ${t})`,r=e.replace(/\n+$/,""),o=r.lastIndexOf(`
320
320
  `),s=o===-1?r:r.slice(o+1);return/^\(cherry picked from commit [0-9a-f]+\)$/.test(s)?`${r}
321
321
  ${n}
322
322
  `:`${r}
323
323
 
324
324
  ${n}
325
- `}ne();Xe();Es();xe();ue();function vc(e,t){e.command("clean",{description:"Remove untracked files from the working tree",args:[B.string().name("pathspec").describe("Pathspec to limit which files are removed").optional().variadic()],options:{force:H().alias("f").describe("Required to actually remove files"),"dry-run":H().alias("n").describe("Don't actually remove anything, just show what would be done"),directories:H().alias("d").describe("Also remove untracked directories"),removeIgnored:H().alias("x").describe("Remove ignored files as well"),onlyIgnored:H().alias("X").describe("Remove only ignored files"),exclude:Q.string().alias("e").describe("Additional exclude pattern")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=qe(s);if(i)return i;let a=s.workTree,c=n["dry-run"],f=n.force,d=n.directories,l=n.removeIgnored,u=n.onlyIgnored;if(t?.hooks){let C=await t.hooks.emitPre("pre-clean",{dryRun:c,force:f,removeDirs:d,removeIgnored:l,onlyIgnored:u});if(C)return{stdout:"",stderr:C.message??"",exitCode:1}}if(!f&&!c&&await jt(s,"clean.requireForce")!=="false")return I("clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean");let m=await q(s),h=new Set(m.entries.map(C=>C.path)),p=ct(s,r.cwd),g=n.pathspec,w=g.length>0?g.map(C=>Le(C,p)):null,k=n.exclude?[n.exclude]:[],b=await Sc(s,a,"",{trackedPaths:h,removeDirs:d,removeIgnored:l,onlyIgnored:u,extraExcludes:k}),E;w?E=b.filter(C=>ye(w,C.path)):E=b,E.sort((C,R)=>C.path<R.path?-1:C.path>R.path?1:0);let x=[];if(c)for(let C of E){let R=C.isDir?`Would remove ${C.path}/`:`Would remove ${C.path}`;x.push(R)}else for(let C of E){let R=T(a,C.path);C.isDir?(await r.fs.rm(R,{recursive:!0}),x.push(`Removing ${C.path}/`)):(await r.fs.rm(R),x.push(`Removing ${C.path}`))}let P=x.length>0?`${x.join(`
326
- `)}
327
- `:"";return await t?.hooks?.emitPost("post-clean",{removed:E.map(C=>C.path),dryRun:c}),{stdout:P,stderr:"",exitCode:0}}})}async function Sc(e,t,n,r){let o=[],s=!r.removeIgnored,i=null;if(s||r.onlyIgnored){i=r._ignore??await rr(e);let c=T(t,".gitignore");try{let f=await e.fs.readFile(c);i=_n(i,f,n,c)}catch{}if(!r._ignore&&r.extraExcludes.length>0){let f=r.extraExcludes.join(`
328
- `),d=Hr(f,"","<cli>");i={...i,dirPatterns:[d,...i.dirPatterns]}}}let a=await e.fs.readdir(t);for(let c of a){if(n===""&&c===".git")continue;let f=T(t,c),d=n?`${n}/${c}`:c,l=await e.fs.stat(f);if(l.isDirectory){let u=i&&Kt(i,d,!0)==="ignored",m=tm(r.trackedPaths,d),h=()=>Sc(e,f,d,{...r,_ignore:i??void 0});if(r.onlyIgnored){if(u&&!m){r.removeDirs&&o.push({path:d,isDir:!0});continue}let p=await h();!m&&r.removeDirs?p.length>0&&o.push({path:d,isDir:!0}):o.push(...p)}else if(m){let p=await h();o.push(...p)}else if(!(u&&s)){if(r.removeDirs)if(r.removeIgnored)o.push({path:d,isDir:!0});else{let p=await h(),g=await e.fs.readdir(f);(p.length>0||g.length===0)&&o.push({path:d,isDir:!0})}}}else if(l.isFile){if(r.trackedPaths.has(d))continue;let u=i&&Kt(i,d,!1)==="ignored";r.onlyIgnored?u&&o.push({path:d,isDir:!1}):u&&s||o.push({path:d,isDir:!1})}}return o}function tm(e,t){let n=`${t}/`;for(let r of e)if(r.startsWith(n))return!0;return!1}ne();Xe();ln();xe();oe();ue();Ge();me();wn();Xe();wn();at();oe();Er();me();oe();en();Pr();gs();async function Vs(e,t,n){return Dc(e,t,n,!1)}async function Ys(e,t,n){return Dc(e,t,n,!0)}async function Dc(e,t,n,r){let o=new Set;for(let a of n)await Br(e,a,o);let s=[],i=new Set;for(let a of t)await Wr(e,a,o,i,s,r);return s}async function Br(e,t,n){if(n.has(t)||(n.add(t),!await hn(e,t)))return;let r=await ge(e,t);switch(r.type){case"commit":{let o=Wt(r.content);await Br(e,o.tree,n);for(let s of o.parents)await Br(e,s,n);break}case"tree":{let o=En(r.content);for(let s of o.entries)await Br(e,s.hash,n);break}case"tag":{let o=tn(r.content);await Br(e,o.object,n);break}case"blob":break}}async function Wr(e,t,n,r,o,s){if(r.has(t)||n.has(t))return;r.add(t);let i=await ge(e,t);switch(o.push(s?{hash:t,type:i.type,content:i.content}:{hash:t,type:i.type}),i.type){case"commit":{let a=Wt(i.content);await Wr(e,a.tree,n,r,o,s);for(let c of a.parents)await Wr(e,c,n,r,o,s);break}case"tree":{let a=En(i.content);for(let c of a.entries)await Wr(e,c.hash,n,r,o,s);break}case"tag":{let a=tn(i.content);await Wr(e,a.object,n,r,o,s);break}case"blob":break}}var nm=new TextEncoder,Xs=new TextDecoder,Mc=65520,rm=new Uint8Array([48,48,48,48]);function Xn(e){let t=typeof e=="string"?nm.encode(e):e,n=4+t.byteLength;if(n>Mc)throw new Error(`pkt-line too long: ${n} bytes (max ${Mc})`);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 ai(){return rm.slice()}function Zs(...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 lr(e){let t=[],n=0;for(;n<e.byteLength;){if(n+4>e.byteLength)throw new Error("Truncated pkt-line header");let r=Xs.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<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 Js(e){if(e.type==="flush")return"";let t=Xs.decode(e.data);return t.endsWith(`
329
- `)?t.slice(0,-1):t}var sm=1,om=2,im=3;function ci(e){let t=[],n=[],r=[],o=0;for(let a of e){if(a.type==="flush"||a.data.byteLength===0)continue;let c=a.data[0];if(c===void 0)continue;let f=a.data.subarray(1);switch(c){case sm:t.push(f),o+=f.byteLength;break;case om:n.push(Xs.decode(f));break;case im:r.push(Xs.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}}at();function fi(e){return e?e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:{Authorization:`Basic ${btoa(`${e.username}:${e.password}`)}`}:{}}async function di(e,t,n,r=globalThis.fetch){let o=e.replace(/\/+$/,""),s=await r(`${o}/info/refs?service=${t}`,{headers:{...fi(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 d=new TextDecoder().decode(c.subarray(0,5));if(!/^[0-9a-f]{4}#/.test(d))throw new Error(`Server does not support smart HTTP (Content-Type: ${i})`)}let f=lr(c);return am(f,t)}function am(e,t){let n=0,r=e[n];r?.type==="data"&&Js(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;let c=a.data,f=c.indexOf(0),d;if(f!==-1){d=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 d=new TextDecoder().decode(c).replace(/\n$/,"");let l=d.indexOf(" ");if(l===-1)continue;let u=d.slice(0,l),m=d.slice(l+1);if(!(u===J&&m==="capabilities^{}")){if(m.endsWith("^{}")){let h=m.slice(0,-3),p=o.find(g=>g.name===h);p&&(p.peeledHash=u);continue}o.push({name:m,hash:u})}}return{refs:o,capabilities:s,symrefs:i}}var cm=["multi_ack_detailed","no-done","side-band-64k","ofs-delta","include-tag"];async function jc(e,t,n,r,o,s=globalThis.fetch){if(t.length===0)throw new Error("fetchPack requires at least one want");let i=Lc(r,cm),a=[];a.push(Xn(`want ${t[0]} ${i.join(" ")}
330
- `));for(let u=1;u<t.length;u++)a.push(Xn(`want ${t[u]}
331
- `));a.push(ai());for(let u of n)a.push(Xn(`have ${u}
332
- `));a.push(Xn(`done
333
- `));let c=Zs(...a),f=e.replace(/\/+$/,""),d=await s(`${f}/git-upload-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-upload-pack-request",...fi(o),"User-Agent":"just-git/1.0"},body:c});if(!d.ok)throw new Error(`HTTP ${d.status} fetching pack from ${f}`);let l=new Uint8Array(await d.arrayBuffer());return fm(l,i.includes("side-band-64k"))}function fm(e,t){let n=lr(e),r=[],o=0;for(let f=0;f<n.length;f++){let d=n[f];if(!d||d.type==="flush"){o=f+1;continue}if(d.type!=="data")continue;let l=Js(d);if(l.startsWith("ACK ")||l==="NAK")r.push(l),o=f+1;else{o=f;break}}let s=n.slice(o);if(t){let{packData:f,progress:d,errors:l}=ci(s);if(l.length>0)throw new Error(`Remote error: ${l.join("")}`);return{packData:f,acks:r,progress:d}}let i=0;for(let f of s)f.type==="data"&&(i+=f.data.byteLength);let a=new Uint8Array(i),c=0;for(let f of s)f.type==="data"&&(a.set(f.data,c),c+=f.data.byteLength);return{packData:a,acks:r,progress:[]}}var dm=["report-status","side-band-64k","ofs-delta","delete-refs"];async function Gc(e,t,n,r,o,s=globalThis.fetch){if(t.length===0)throw new Error("pushPack requires at least one command");let i=Lc(r,dm),a=[],[c,...f]=t;if(!c)throw new Error("pushPack requires at least one command");a.push(Xn(`${c.oldHash} ${c.newHash} ${c.refName}\0${i.join(" ")}
334
- `));for(let h of f)a.push(Xn(`${h.oldHash} ${h.newHash} ${h.refName}
335
- `));a.push(ai());let d;if(n&&n.byteLength>0){let h=Zs(...a);d=new Uint8Array(h.byteLength+n.byteLength),d.set(h,0),d.set(n,h.byteLength)}else d=Zs(...a);let l=e.replace(/\/+$/,""),u=await s(`${l}/git-receive-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-receive-pack-request",...fi(o),"User-Agent":"just-git/1.0"},body:d});if(!u.ok)throw new Error(`HTTP ${u.status} pushing to ${l}`);let m=new Uint8Array(await u.arrayBuffer());return i.includes("report-status")?lm(m,i.includes("side-band-64k")):{unpackOk:!0,refResults:[],progress:[]}}function lm(e,t){let n,r=[];if(t){let a=lr(e),{packData:c,progress:f,errors:d}=ci(a);if(d.length>0)throw new Error(`Remote error: ${d.join("")}`);r=f,n=lr(c)}else n=lr(e);let o=!1,s,i=[];for(let a of n){if(a.type==="flush")break;let c=Js(a);if(c.startsWith("unpack "))o=c==="unpack ok",o||(s=c.slice(7));else if(c.startsWith("ok "))i.push({name:c.slice(3),ok:!0});else if(c.startsWith("ng ")){let f=c.slice(3),d=f.indexOf(" ");d!==-1?i.push({name:f.slice(0,d),ok:!1,error:f.slice(d+1)}):i.push({name:f,ok:!1})}}return{unpackOk:o,unpackError:s,refResults:i,progress:r}}function Lc(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 li=class{queue=Promise.resolve();async acquire(){let t,n=new Promise(o=>{t=o}),r=this.queue;return this.queue=n,await r,t}},_c=new WeakMap;function um(e){let t=_c.get(e);return t||(t=new li,_c.set(e,t)),t}var qr=class{constructor(t,n){this.local=t;this.remote=n}headTarget;async advertiseRefs(){let t=await we(this.remote),n=[];for(let s of t)n.push({name:s.name,hash:s.hash});let r=await N(this.remote,"HEAD");r&&n.push({name:"HEAD",hash:r});let o=await Z(this.remote);return o?.type==="symbolic"&&(this.headTarget=o.target),n}async fetch(t,n){let r=await this.advertiseRefs();if(t.length===0)return{remoteRefs:r,objectCount:0};let o=await Vs(this.remote,t,n);if(o.length===0)return{remoteRefs:r,objectCount:0};let s=[];for(let c of o){let f=await ge(this.remote,c.hash);s.push({type:f.type,content:f.content})}let i=await fs(s),a=await ms(this.local,i);return{remoteRefs:r,objectCount:a}}async push(t){let n=await um(this.remote.fs).acquire();try{return await this.pushInner(t)}finally{n()}}async pushInner(t){let n=[],r=[];for(let s of t)s.newHash!==J&&n.push(s.newHash),s.oldHash&&r.push(s.oldHash);if(n.length>0){let s=await Vs(this.local,n,r);if(s.length>0){let i=[];for(let c of s){let f=await ge(this.local,c.hash);i.push({type:f.type,content:f.content})}let a=await fs(i);await ms(this.remote,a)}}let o=[];for(let s of t)try{if(s.newHash===J){await de(this.remote,s.name),o.push({...s,ok:!0});continue}let i=await N(this.remote,s.name);if(i&&!s.ok&&!await fn(this.remote,i,s.newHash)){o.push({...s,ok:!1,error:`non-fast-forward update rejected for ${s.name}`});continue}await Y(this.remote,s.name,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}}},Kr=class{constructor(t,n,r,o){this.local=t;this.url=n;this.auth=r;this.fetchFn=o}headTarget;cachedFetchCaps=null;cachedPushCaps=null;cachedFetchRefs=null;async advertiseRefs(){let t=await di(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 di(this.url,"git-receive-pack",this.auth,this.fetchFn);this.cachedPushCaps=t.capabilities}return this.cachedPushCaps}async fetch(t,n){let{caps:r,refs:o}=await this.ensureFetchDiscovery();if(t.length===0)return{remoteRefs:o,objectCount:0};let s=await jc(this.url,t,n,r,this.auth,this.fetchFn);if(s.packData.byteLength===0)return{remoteRefs:o,objectCount:0};let i=await ms(this.local,s.packData);return{remoteRefs:o,objectCount:i}}async push(t){for(let d of t)if(d.oldHash&&d.oldHash!==J&&d.newHash!==J&&!d.ok&&!await fn(this.local,d.oldHash,d.newHash))return{updates:t.map(u=>u===d?{...u,ok:!1,error:"non-fast-forward"}:{...u,ok:!1,error:"atomic push failed"})};let n=await this.ensurePushDiscovery(),r=t.map(d=>({oldHash:d.oldHash??J,newHash:d.newHash,refName:d.name})),o=[],s=[],i=!1;for(let d of t)d.newHash!==J&&(o.push(d.newHash),i=!0),d.oldHash&&d.oldHash!==J&&s.push(d.oldHash);let a=null;if(i){let d=await Vs(this.local,o,s),l=[];for(let u of d){let m=await ge(this.local,u.hash);l.push({type:m.type,content:m.content})}a=await fs(l)}let c=await Gc(this.url,r,a,n,this.auth,this.fetchFn);return{updates:t.map(d=>{let l=c.refResults.find(h=>h.name===d.name),u=l?.ok??c.unpackOk,m=l?.error??(!u&&c.unpackError?`unpack failed: ${c.unpackError}`:void 0);return{...d,ok:u,error:m}})}}};async function mm(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 ui(e){return e.startsWith("http://")||e.startsWith("https://")}function Nc(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(ui(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 hm(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 Fc(e,t,n){if(e.credentialProvider){let r=await e.credentialProvider(t);if(r)return r}return hm(n)}async function Uc(e,t,n,r){if(ui(t)){let o=Nc(t,e.networkPolicy);if(o)throw new Error(o);let s=await Fc(e,t,n);return new Kr(e,t,s,e.fetchFn)}if(!r&&e.resolveRemote&&(r=await e.resolveRemote(t)??void 0),!r)throw new Error(`'${t}' does not appear to be a git repository`);return new qr(e,r)}async function ur(e,t,n){let r=await mm(e,t);if(!r)return null;if(ui(r.url)){let s=Nc(r.url,e.networkPolicy);if(s)throw new Error(s);let i=n?await Fc(e,r.url,n):void 0;return{transport:new Kr(e,r.url,i,e.fetchFn),config:r}}let o=(e.resolveRemote?await e.resolveRemote(r.url):null)??await jn(e.fs,r.url);return o?{transport:new qr(e,o),config:r}:null}Te();Je();function Bc(e,t){e.command("clone",{description:"Clone a repository into a new directory",args:[B.string().name("repository").describe("Repository to clone"),B.string().name("directory").describe("Target directory").optional()],options:{bare:H().describe("Create a bare clone"),branch:Q.string().alias("b").describe("Checkout this branch instead of HEAD")},handler:async(n,r)=>{let o=n.repository;if(!o)return I("You must specify a repository to clone.");let s=o.startsWith("http://")||o.startsWith("https://"),i=s?o:xt(r.cwd,o),a=n.branch,c=n.directory;if(!c){let y=s?o.split("/").pop()??o:wr(i);y.endsWith(".git")&&(y=y.slice(0,-4)),c=y}let f=xt(r.cwd,c);if(t?.hooks){let y=await t.hooks.emitPre("pre-clone",{repository:o,targetPath:f,bare:n.bare,branch:a??null});if(y)return{stdout:"",stderr:y.message??"",exitCode:1}}if(await r.fs.exists(f))try{if((await r.fs.readdir(f)).length>0)return I(`destination path '${c}' already exists and is not an empty directory.`)}catch{return I(`destination path '${c}' already exists and is not an empty directory.`)}let d=null;if(!s&&(t?.resolveRemote&&(d=await t.resolveRemote(i)),d||(d=await jn(r.fs,i)),!d))return I(`repository '${o}' does not exist`);await r.fs.mkdir(f,{recursive:!0});let{ctx:l}=await hs(r.fs,f,{bare:n.bare}),u=t?{...l,hooks:t.hooks,credentialProvider:t.credentialProvider,identityOverride:t.identityOverride,fetchFn:t.fetchFn,networkPolicy:t.networkPolicy,resolveRemote:t.resolveRemote}:l,m=await pe(u);m['remote "origin"']={url:i,fetch:"+refs/heads/*:refs/remotes/origin/*"},await Ye(u,m);let h;try{h=await Uc(u,i,r.env,d??void 0)}catch(y){let $=y instanceof Error?y.message:"";return $.startsWith("network")?I($):I(`repository '${o}' does not exist`)}let p=await h.advertiseRefs();if(p.length===0)return await t?.hooks?.emitPost("post-clone",{repository:o,targetPath:f,bare:n.bare,branch:a??null}),{stdout:"",stderr:`Cloning into '${c}'...
325
+ `}re();Je();Ps();ke();de();function Gc(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:H().alias("f").describe("Required to actually remove files"),"dry-run":H().alias("n").describe("Don't actually remove anything, just show what would be done"),directories:H().alias("d").describe("Also remove untracked directories"),removeIgnored:H().alias("x").describe("Remove ignored files as well"),onlyIgnored:H().alias("X").describe("Remove only ignored files"),exclude:ee.string().alias("e").describe("Additional exclude pattern")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=Ke(s);if(a)return a;let i=s.workTree,c=n["dry-run"],f=n.force,d=n.directories,l=n.removeIgnored,u=n.onlyIgnored,m=await t?.hooks?.preClean?.({repo:s,dryRun:c,force:f,removeDirs:d,removeIgnored:l,onlyIgnored:u});if(Q(m))return{stdout:"",stderr:m.message??"",exitCode:1};if(!f&&!c&&await _t(s,"clean.requireForce")!=="false")return $("clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean");let h=await K(s),p=new Set(h.entries.map(O=>O.path)),g=lt(s,r.cwd),w=n.pathspec,y=w.length>0?w.map(O=>Ge(O,g)):null,R=n.exclude?[n.exclude]:[],b=await Lc(s,i,"",{trackedPaths:p,removeDirs:d,removeIgnored:l,onlyIgnored:u,extraExcludes:R}),E;y?E=b.filter(O=>be(y,O.path)):E=b,E.sort((O,x)=>O.path<x.path?-1:O.path>x.path?1:0);let k=[];if(c)for(let O of E){let x=O.isDir?`Would remove ${O.path}/`:`Would remove ${O.path}`;k.push(x)}else for(let O of E){let x=T(i,O.path);O.isDir?(await r.fs.rm(x,{recursive:!0}),k.push(`Removing ${O.path}/`)):(await r.fs.rm(x),k.push(`Removing ${O.path}`))}let C=k.length>0?`${k.join(`
326
+ `)}
327
+ `:"";return await t?.hooks?.postClean?.({repo:s,removed:E.map(O=>O.path),dryRun:c}),{stdout:C,stderr:"",exitCode:0}}})}async function Lc(e,t,n,r){let o=[],s=!r.removeIgnored,a=null;if(s||r.onlyIgnored){a=r._ignore??await ir(e);let c=T(t,".gitignore");try{let f=await e.fs.readFile(c);a=Un(a,f,n,c)}catch{}if(!r._ignore&&r.extraExcludes.length>0){let f=r.extraExcludes.join(`
328
+ `),d=Lr(f,"","<cli>");a={...a,dirPatterns:[d,...a.dirPatterns]}}}let i=await e.fs.readdir(t);for(let c of i){if(n===""&&c===".git")continue;let f=T(t,c),d=n?`${n}/${c}`:c,l=await e.fs.stat(f);if(l.isDirectory){let u=a&&Xt(a,d,!0)==="ignored",m=cm(r.trackedPaths,d),h=()=>Lc(e,f,d,{...r,_ignore:a??void 0});if(r.onlyIgnored){if(u&&!m){r.removeDirs&&o.push({path:d,isDir:!0});continue}let p=await h();!m&&r.removeDirs?p.length>0&&o.push({path:d,isDir:!0}):o.push(...p)}else if(m){let p=await h();o.push(...p)}else if(!(u&&s)){if(r.removeDirs)if(r.removeIgnored)o.push({path:d,isDir:!0});else{let p=await h(),g=await e.fs.readdir(f);(p.length>0||g.length===0)&&o.push({path:d,isDir:!0})}}}else if(l.isFile){if(r.trackedPaths.has(d))continue;let u=a&&Xt(a,d,!1)==="ignored";r.onlyIgnored?u&&o.push({path:d,isDir:!1}):u&&s||o.push({path:d,isDir:!1})}}return o}function cm(e,t){let n=`${t}/`;for(let r of e)if(r.startsWith(n))return!0;return!1}re();Je();pn();ke();ie();de();je();le();kn();Je();kn();dt();ie();var eo=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]),fm=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]),Qs=64,dm=4,mi=4096,_c=65536,lm=127;function um(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=hm(r);let o=r-1,s=new Uint32Array(r),a=[],i=-1>>>0;for(let u=n*16-16;u>=0;u-=16){let m=0;for(let h=1;h<=16;h++)m=(m<<8|e[u+h])^eo[m>>>23];if(m=m>>>0,m===i)a[a.length-1].ptr=u+16;else{i=m;let h=m&o;a.push({ptr:u+16,val:m}),s[h]++}}let c=new Map;for(let u of a){let m=u.val&o,h=c.get(m);h||(h=[],c.set(m,h)),h.push(u)}for(let[u,m]of c){if(m.length<=Qs)continue;let h=[],p=m.length/Qs;for(let g=0;g<Qs;g++)h.push(m[Math.floor(g*p)]);c.set(u,h),s[u]=Qs}let f=new Uint32Array(r+1),d=[],l=0;for(let u=0;u<r;u++){f[u]=l;let m=c.get(u);if(m){for(let h of m)d.push(h);l+=m.length}}return f[r]=l,{src:e,hashMask:o,buckets:f,entries:d}}function mm(e,t,n){if(!e||t.byteLength===0)return null;let r=e.src.byteLength,o=t.byteLength,s=e.src,a=new Uint8Array(Math.max(o,1024)),i=0;function c(p){for(;i+p>a.length;){let g=new Uint8Array(a.length*2);g.set(a),a=g}}i=Fc(a,i,r),i=Fc(a,i,o),c(18),i++;let f=0,d=0,l=Math.min(16,o);for(let p=0;p<l;p++)a[i++]=t[p],f=(f<<8|t[p])^eo[f>>>23],d++;f=f>>>0;let u=l,m=0,h=0;for(;u<o;){if(h<mi){f^=fm[t[u-16]],f=((f<<8|t[u])^eo[f>>>23])>>>0;let p=f&e.hashMask,g=e.buckets[p],w=e.buckets[p+1];for(let y=g;y<w;y++){let R=e.entries[y];if(R.val!==f)continue;let b=R.ptr,E=s.byteLength-b,k=o-u;if(E>k&&(E=k),E<=h)break;let C=0;for(;C<E&&s[b+C]===t[u+C];)C++;if(C>h&&(h=C,m=b,h>=mi))break}}if(h<dm)c(2),d===0&&i++,a[i++]=t[u++],d++,d===lm&&(a[i-d-1]=d,d=0),h=0;else{if(d>0){for(;m>0&&s[m-1]===t[u-1];)if(h++,m--,u--,i--,!(--d>0)){i--,d=-1;break}d>0&&(a[i-d-1]=d),d=0}let p=h>_c?h-_c:0;h-=p,c(8);let g=i++,w=128;if(m&255&&(a[i++]=m&255,w|=1),m&65280&&(a[i++]=m>>>8&255,w|=2),m&16711680&&(a[i++]=m>>>16&255,w|=4),m&4278190080&&(a[i++]=m>>>24&255,w|=8),h&255&&(a[i++]=h&255,w|=16),h&65280&&(a[i++]=h>>>8&255,w|=32),a[g]=w,u+=h,m+=h,h=p,m>4294967295&&(h=0),h<mi){f=0;for(let y=-16;y<0;y++)f=(f<<8|t[u+y])^eo[f>>>23];f=f>>>0}}if(n&&i>n)return null}return d>0&&(a[i-d-1]=d),n&&i>n?null:a.subarray(0,i)}var Nc={blob:0,tree:1,commit:2,tag:3};function to(e,t){let n=t?.window??10,r=t?.depth??50,o=e.slice().sort((f,d)=>{let l=Nc[f.type]??99,u=Nc[d.type]??99;return l!==u?l-u:d.content.byteLength-f.content.byteLength}),s=new Map,a=[],i=[],c=[];for(let f=0;f<o.length;f++){let d=o[f],l={hash:d.hash,type:d.type,content:d.content,depth:0},u=null,m=null,h=Math.max(0,f-n);for(let p=f-1;p>=h;p--){let g=o[p];if(g.type!==d.type||(s.get(g.hash)?.depth??0)>=r||d.content.byteLength<g.content.byteLength>>>5)continue;let R=i[p-h]??null;if(!R)continue;let b=u?u.byteLength:d.content.byteLength/2|0;if(b<16)continue;let E=mm(R,d.content,b);E&&(!u||E.byteLength<u.byteLength)&&(u=E,m=g.hash)}if(u&&m){l.delta=u,l.deltaBase=m;let p=s.get(m);l.depth=(p?.depth??0)+1}s.set(d.hash,l),a.push(l),i.length>=n&&(i.shift(),c.shift()),i.push(um(d.content)),c.push(d.hash)}return a}function hm(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 Fc(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}$r();le();ie();sn();vr();ks();async function pm(e,t,n){let r=new Set;for(let a of n)await Zr(e,a,r);let o=[],s=new Set;for(let a of t)await Jr(e,a,r,s,o);return{count:o.length,objects:gm(o)}}async function hr(e,t,n){let{count:r,objects:o}=await pm(e,t,n);return{count:r,objects:wm(e,o)}}async function*gm(e){for(let t of e)yield t}async function*wm(e,t){for await(let n of t){let r=await ge(e,n.hash);yield{hash:n.hash,type:n.type,content:r.content}}}async function pr(e){let t=[];for await(let n of e.objects)t.push(n);return t}async function Zr(e,t,n){if(n.has(t)||(n.add(t),!await wn(e,t)))return;let r=await ge(e,t);switch(r.type){case"commit":{let o=Vt(r.content);await Zr(e,o.tree,n);for(let s of o.parents)await Zr(e,s,n);break}case"tree":{let o=Cn(r.content);for(let s of o.entries)await Zr(e,s.hash,n);break}case"tag":{let o=on(r.content);await Zr(e,o.object,n);break}case"blob":break}}async function Jr(e,t,n,r,o){if(r.has(t)||n.has(t))return;r.add(t);let s=await ge(e,t);switch(o.push({hash:t,type:s.type}),s.type){case"commit":{let a=Vt(s.content);await Jr(e,a.tree,n,r,o);for(let i of a.parents)await Jr(e,i,n,r,o);break}case"tree":{let a=Cn(s.content);for(let i of a.entries)await Jr(e,i.hash,n,r,o);break}case"tag":{let a=on(s.content);await Jr(e,a.object,n,r,o);break}case"blob":break}}var bm=new TextEncoder,no=new TextDecoder,Uc=65520,ym=new Uint8Array([48,48,48,48]);function Qn(e){let t=typeof e=="string"?bm.encode(e):e,n=4+t.byteLength;if(n>Uc)throw new Error(`pkt-line too long: ${n} bytes (max ${Uc})`);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 hi(){return ym.slice()}function ro(...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 gr(e){let t=[],n=0;for(;n<e.byteLength;){if(n+4>e.byteLength)throw new Error("Truncated pkt-line header");let r=no.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<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 so(e){if(e.type==="flush")return"";let t=no.decode(e.data);return t.endsWith(`
329
+ `)?t.slice(0,-1):t}var Em=1,km=2,Rm=3;function pi(e){let t=[],n=[],r=[],o=0;for(let i of e){if(i.type==="flush"||i.data.byteLength===0)continue;let c=i.data[0];if(c===void 0)continue;let f=i.data.subarray(1);switch(c){case Em:t.push(f),o+=f.byteLength;break;case km:n.push(no.decode(f));break;case Rm:r.push(no.decode(f));break;default:break}}let s=new Uint8Array(o),a=0;for(let i of t)s.set(i,a),a+=i.byteLength;return{packData:s,progress:n,errors:r}}dt();function gi(e){return e?e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:{Authorization:`Basic ${btoa(`${e.username}:${e.password}`)}`}:{}}async function wi(e,t,n,r=globalThis.fetch){let o=e.replace(/\/+$/,""),s=await r(`${o}/info/refs?service=${t}`,{headers:{...gi(n),"User-Agent":"just-git/1.0"}});if(!s.ok)throw new Error(`HTTP ${s.status} discovering refs at ${o}`);let a=s.headers.get("content-type")??"",i=`application/x-${t}-advertisement`,c=new Uint8Array(await s.arrayBuffer());if(!a.startsWith(i)){let d=new TextDecoder().decode(c.subarray(0,5));if(!/^[0-9a-f]{4}#/.test(d))throw new Error(`Server does not support smart HTTP (Content-Type: ${a})`)}let f=gr(c);return xm(f,t)}function xm(e,t){let n=0,r=e[n];r?.type==="data"&&so(r)===`# service=${t}`&&n++,e[n]?.type==="flush"&&n++;let o=[],s=[],a=new Map;for(;n<e.length;n++){let i=e[n];if(!i||i.type==="flush")break;let c=i.data,f=c.indexOf(0),d;if(f!==-1){d=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&&a.set(g.slice(0,w),g.slice(w+1))}}else d=new TextDecoder().decode(c).replace(/\n$/,"");let l=d.indexOf(" ");if(l===-1)continue;let u=d.slice(0,l),m=d.slice(l+1);if(!(u===J&&m==="capabilities^{}")){if(m.endsWith("^{}")){let h=m.slice(0,-3),p=o.find(g=>g.name===h);p&&(p.peeledHash=u);continue}o.push({name:m,hash:u})}}return{refs:o,capabilities:s,symrefs:a}}var Cm=["multi_ack_detailed","no-done","side-band-64k","ofs-delta","include-tag"];async function Bc(e,t,n,r,o,s=globalThis.fetch){if(t.length===0)throw new Error("fetchPack requires at least one want");let a=qc(r,Cm),i=[];i.push(Qn(`want ${t[0]} ${a.join(" ")}
330
+ `));for(let u=1;u<t.length;u++)i.push(Qn(`want ${t[u]}
331
+ `));i.push(hi());for(let u of n)i.push(Qn(`have ${u}
332
+ `));i.push(Qn(`done
333
+ `));let c=ro(...i),f=e.replace(/\/+$/,""),d=await s(`${f}/git-upload-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-upload-pack-request",...gi(o),"User-Agent":"just-git/1.0"},body:c});if(!d.ok)throw new Error(`HTTP ${d.status} fetching pack from ${f}`);let l=new Uint8Array(await d.arrayBuffer());return Pm(l,a.includes("side-band-64k"))}function Pm(e,t){let n=gr(e),r=[],o=0;for(let f=0;f<n.length;f++){let d=n[f];if(!d||d.type==="flush"){o=f+1;continue}if(d.type!=="data")continue;let l=so(d);if(l.startsWith("ACK ")||l==="NAK")r.push(l),o=f+1;else{o=f;break}}let s=n.slice(o);if(t){let{packData:f,progress:d,errors:l}=pi(s);if(l.length>0)throw new Error(`Remote error: ${l.join("")}`);return{packData:f,acks:r,progress:d}}let a=0;for(let f of s)f.type==="data"&&(a+=f.data.byteLength);let i=new Uint8Array(a),c=0;for(let f of s)f.type==="data"&&(i.set(f.data,c),c+=f.data.byteLength);return{packData:i,acks:r,progress:[]}}var Om=["report-status","side-band-64k","ofs-delta","delete-refs"];async function Wc(e,t,n,r,o,s=globalThis.fetch){if(t.length===0)throw new Error("pushPack requires at least one command");let a=qc(r,Om),i=[],[c,...f]=t;if(!c)throw new Error("pushPack requires at least one command");i.push(Qn(`${c.oldHash} ${c.newHash} ${c.refName}\0${a.join(" ")}
334
+ `));for(let h of f)i.push(Qn(`${h.oldHash} ${h.newHash} ${h.refName}
335
+ `));i.push(hi());let d;if(n&&n.byteLength>0){let h=ro(...i);d=new Uint8Array(h.byteLength+n.byteLength),d.set(h,0),d.set(n,h.byteLength)}else d=ro(...i);let l=e.replace(/\/+$/,""),u=await s(`${l}/git-receive-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-receive-pack-request",...gi(o),"User-Agent":"just-git/1.0"},body:d});if(!u.ok)throw new Error(`HTTP ${u.status} pushing to ${l}`);let m=new Uint8Array(await u.arrayBuffer());return a.includes("report-status")?Im(m,a.includes("side-band-64k")):{unpackOk:!0,refResults:[],progress:[]}}function Im(e,t){let n,r=[];if(t){let i=gr(e),{packData:c,progress:f,errors:d}=pi(i);if(d.length>0)throw new Error(`Remote error: ${d.join("")}`);r=f,n=gr(c)}else n=gr(e);let o=!1,s,a=[];for(let i of n){if(i.type==="flush")break;let c=so(i);if(c.startsWith("unpack "))o=c==="unpack ok",o||(s=c.slice(7));else if(c.startsWith("ok "))a.push({name:c.slice(3),ok:!0});else if(c.startsWith("ng ")){let f=c.slice(3),d=f.indexOf(" ");d!==-1?a.push({name:f.slice(0,d),ok:!1,error:f.slice(d+1)}):a.push({name:f,ok:!1})}}return{unpackOk:o,unpackError:s,refResults:a,progress:r}}function qc(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 Qr=class{constructor(t,n){this.local=t;this.remote=n}headTarget;async advertiseRefs(){let t=await pe(this.remote),n=[];for(let s of t)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 Z(this.remote);return o?.type==="symbolic"&&(this.headTarget=o.target),n}async fetch(t,n){let r=await this.advertiseRefs();if(t.length===0)return{remoteRefs:r,objectCount:0};let o=await bi(this.remote,t,n);if(!o)return{remoteRefs:r,objectCount:0};let s=await bs(this.local,o);return{remoteRefs:r,objectCount:s}}async push(t){let n=[],r=[];for(let s of t)s.newHash!==J&&n.push(s.newHash),s.oldHash&&r.push(s.oldHash);if(n.length>0){let s=await bi(this.local,n,r);s&&await bs(this.remote,s)}let o=[];for(let s of t)try{let a=s.newHash===J,i=s.oldHash??null;if(!a&&!s.ok&&s.oldHash&&!await mn(this.remote,s.oldHash,s.newHash)){o.push({...s,ok:!1,error:`non-fast-forward update rejected for ${s.name}`});continue}let c=a?null:{type:"direct",hash:s.newHash};if(!await this.remote.refStore.compareAndSwapRef(s.name,i,c)){o.push({...s,ok:!1,error:`failed to lock ref '${s.name}'`});continue}this.remote.hooks&&(a&&s.oldHash?this.remote.hooks.onRefDelete?.({repo:this.remote,ref:s.name,oldHash:s.oldHash}):a||this.remote.hooks.onRefUpdate?.({repo:this.remote,ref:s.name,oldHash:s.oldHash,newHash:s.newHash})),o.push({...s,ok:!0})}catch(a){o.push({...s,ok:!1,error:a instanceof Error?a.message:String(a)})}return{updates:o}}},es=class{constructor(t,n,r,o){this.local=t;this.url=n;this.auth=r;this.fetchFn=o}headTarget;cachedFetchCaps=null;cachedPushCaps=null;cachedFetchRefs=null;async advertiseRefs(){let t=await wi(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 wi(this.url,"git-receive-pack",this.auth,this.fetchFn);this.cachedPushCaps=t.capabilities}return this.cachedPushCaps}async fetch(t,n){let{caps:r,refs:o}=await this.ensureFetchDiscovery();if(t.length===0)return{remoteRefs:o,objectCount:0};let s=await Bc(this.url,t,n,r,this.auth,this.fetchFn);if(s.packData.byteLength===0)return{remoteRefs:o,objectCount:0};let a=await bs(this.local,s.packData);return{remoteRefs:o,objectCount:a}}async push(t){for(let d of t)if(d.oldHash&&d.oldHash!==J&&d.newHash!==J&&!d.ok&&!await mn(this.local,d.oldHash,d.newHash))return{updates:t.map(u=>u===d?{...u,ok:!1,error:"non-fast-forward"}:{...u,ok:!1,error:"atomic push failed"})};let n=await this.ensurePushDiscovery(),r=t.map(d=>({oldHash:d.oldHash??J,newHash:d.newHash,refName:d.name})),o=[],s=[],a=!1;for(let d of t)d.newHash!==J&&(o.push(d.newHash),a=!0),d.oldHash&&d.oldHash!==J&&s.push(d.oldHash);let i=null;a&&(i=await bi(this.local,o,s)??null);let c=await Wc(this.url,r,i,n,this.auth,this.fetchFn);return{updates:t.map(d=>{let l=c.refResults.find(h=>h.name===d.name),u=l?.ok??c.unpackOk,m=l?.error??(!u&&c.unpackError?`unpack failed: ${c.unpackError}`:void 0);return{...d,ok:u,error:m}})}}};async function bi(e,t,n){let r=await hr(e,t,n);if(r.count===0)return;let o=await pr(r),a=to(o).map(c=>({hash:c.hash,type:c.type,content:c.content,delta:c.delta,deltaBaseHash:c.deltaBase})),{data:i}=await gs(a);return i}async function $m(e,t){let r=(await he(e))[`remote "${t}"`];return r?.url?{name:t,url:r.url,fetchRefspec:r.fetch??"+refs/heads/*:refs/remotes/origin/*"}:null}function yi(e){return e.startsWith("http://")||e.startsWith("https://")}function Kc(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(yi(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 Tm(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 zc(e,t,n){if(e.credentialProvider){let r=await e.credentialProvider(t);if(r)return r}return Tm(n)}async function Vc(e,t,n,r){if(yi(t)){let o=Kc(t,e.networkPolicy);if(o)throw new Error(o);let s=await zc(e,t,n);return new es(e,t,s,e.fetchFn)}if(!r&&e.resolveRemote&&(r=await e.resolveRemote(t)??void 0),!r)throw new Error(`'${t}' does not appear to be a git repository`);return new Qr(e,r)}async function wr(e,t,n){let r=await $m(e,t);if(!r)return null;if(yi(r.url)){let s=Kc(r.url,e.networkPolicy);if(s)throw new Error(s);let a=n?await zc(e,r.url,n):void 0;return{transport:new es(e,r.url,a,e.fetchFn),config:r}}let o=(e.resolveRemote?await e.resolveRemote(r.url):null)??await _n(e.fs,r.url);return o?{transport:new Qr(e,o),config:r}:null}He();et();function Yc(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:H().describe("Create a bare clone"),branch:ee.string().alias("b").describe("Checkout this branch instead of HEAD")},handler:async(n,r)=>{let o=n.repository;if(!o)return $("You must specify a repository to clone.");let s=o.startsWith("http://")||o.startsWith("https://"),a=s?o:Pt(r.cwd,o),i=n.branch,c=n.directory;if(!c){let P=s?o.split("/").pop()??o:xr(a);P.endsWith(".git")&&(P=P.slice(0,-4)),c=P}let f=Pt(r.cwd,c),d=await t?.hooks?.preClone?.({repository:o,targetPath:f,bare:n.bare,branch:i??null});if(Q(d))return N(d.message??"");if(await r.fs.exists(f))try{if((await r.fs.readdir(f)).length>0)return $(`destination path '${c}' already exists and is not an empty directory.`)}catch{return $(`destination path '${c}' already exists and is not an empty directory.`)}let l=null;if(!s&&(t?.resolveRemote&&(l=await t.resolveRemote(a)),l||(l=await _n(r.fs,a)),!l))return $(`repository '${o}' does not exist`);await r.fs.mkdir(f,{recursive:!0});let{ctx:u}=await ys(r.fs,f,{bare:n.bare}),m=t?{...u,hooks:t.hooks,credentialProvider:t.credentialProvider,identityOverride:t.identityOverride,fetchFn:t.fetchFn,networkPolicy:t.networkPolicy,resolveRemote:t.resolveRemote}:u,h=await he(m);h['remote "origin"']={url:a,fetch:"+refs/heads/*:refs/remotes/origin/*"},await Ze(m,h);let p;try{p=await Vc(m,a,r.env,l??void 0)}catch(P){let I=P instanceof Error?P.message:"";return I.startsWith("network")?$(I):$(`repository '${o}' does not exist`)}let g=await p.advertiseRefs();if(g.length===0)return await t?.hooks?.postClone?.({repo:u,repository:o,targetPath:f,bare:n.bare,branch:i??null}),{stdout:"",stderr:`Cloning into '${c}'...
336
336
  warning: You appear to have cloned an empty repository.
337
- `,exitCode:0};let g=[],w=new Set;for(let y of p)y.name!=="HEAD"&&(w.has(y.hash)||(w.add(y.hash),g.push(y.hash)));g.length>0&&await h.fetch(g,[]);let k=p.find(y=>y.name==="HEAD"),b=null,E=null,x=await Bt(u,r.env),P=`clone: from ${i}`,C=h.headTarget;C?.startsWith("refs/heads/")&&p.some(y=>y.name===C)&&(b=C.slice(11),E=p.find(y=>y.name===C)?.hash??null);for(let y of p)if(y.name!=="HEAD"){if(y.name.startsWith("refs/heads/")){let $=y.name.slice(11),A=`refs/remotes/origin/${$}`;await Y(u,A,y.hash),await Ue(u,A,{oldHash:J,newHash:y.hash,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:P}),!b&&k&&y.hash===k.hash&&(b=$,E=y.hash)}y.name.startsWith("refs/tags/")&&await Y(u,y.name,y.hash)}if(a){let y=p.find($=>$.name===`refs/heads/${a}`);if(!y)return I(`Remote branch '${a}' not found in upstream origin`);b=a,E=y.hash}if(!b){let y=p.find($=>$.name.startsWith("refs/heads/"));y&&(b=y.name.slice(11),E=y.hash)}if(n.bare)return b&&await Fe(u,"HEAD",`refs/heads/${b}`),await t?.hooks?.emitPost("post-clone",{repository:o,targetPath:f,bare:n.bare,branch:b}),{stdout:"",stderr:`Cloning into bare repository '${c}'...
338
- `,exitCode:0};if(b&&await Fe(u,"refs/remotes/origin/HEAD",`refs/remotes/origin/${b}`),b&&E){await Y(u,`refs/heads/${b}`,E),await Fe(u,"HEAD",`refs/heads/${b}`);let y={oldHash:J,newHash:E,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:P};await Ue(u,`refs/heads/${b}`,y),await Ue(u,"HEAD",y);let $=await pe(u);$[`branch "${b}"`]={remote:"origin",merge:`refs/heads/${b}`},await Ye(u,$);let A=await M(u,E);await Aa(u,A.tree);let L=await We(u,A.tree),G=os(L.map(V=>({path:V.path,mode:parseInt(V.mode,8),hash:V.hash,stage:0,stat:Pe()})));await re(u,G)}let R={stdout:"",stderr:`Cloning into '${c}'...
339
- `,exitCode:0};return await t?.hooks?.emitPost("post-clone",{repository:o,targetPath:f,bare:n.bare,branch:b}),R}})}ne();xe();oe();en();ue();Ge();me();Te();Je();function Wc(e,t){e.command("commit",{description:"Record changes to the repository",options:{message:Q.string().alias("m").describe("Commit message"),file:Q.string().alias("F").describe("Read commit message from file ('-' for stdin)"),allowEmpty:H().describe("Allow creating an empty commit"),amend:H().describe("Amend the previous commit"),noEdit:H().describe("Use the previous commit message without editing"),all:H().alias("a").describe("Auto-stage modified and deleted tracked files")},handler:async(n,r)=>{if(n.message!==void 0&&n.file!==void 0)return I("options '-m' and '-F' cannot be used together");let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=await q(s);if(n.all){let ee=qe(s);if(ee)return ee;let le=await Rt(s,i);for(let De of le)De.status==="modified"?i=(await zt(s,i,De.path)).index:De.status==="deleted"&&(i=nt(i,De.path));let je=new Set(ve(i).map(De=>De.path)),Jt=new Set(i.entries.filter(De=>De.stage>0&&!je.has(De.path)).map(De=>De.path));for(let De of Jt){let Xr=T(s.workTree,De);await r.fs.exists(Xr)?i=(await zt(s,i,De)).index:i=nt(i,De)}}let a=await N(s,"MERGE_HEAD"),c=await N(s,"CHERRY_PICK_HEAD"),f=await N(s,"REVERT_HEAD"),l=await At(s)?await N(s,"REBASE_HEAD"):null,u=n.amend,m=await X(s);if(u){if(!m)return I("You have nothing yet to amend.");if(a)return I("You are in the middle of a merge -- cannot amend.");if(c)return I("You are in the middle of a cherry-pick -- cannot amend.")}if(Pt(i)){let ee=new Set,le=[];for(let je of i.entries)je.stage>0&&!ee.has(je.path)&&(ee.add(je.path),le.push(`U ${je.path}`));return le.sort(),{stdout:le.length>0?`${le.join(`
337
+ `,exitCode:0};let w=[],y=new Set;for(let P of g)P.name!=="HEAD"&&(y.has(P.hash)||(y.add(P.hash),w.push(P.hash)));w.length>0&&await p.fetch(w,[]);let R=g.find(P=>P.name==="HEAD"),b=null,E=null,k=await zt(m,r.env),C=`clone: from ${a}`,O=p.headTarget;O?.startsWith("refs/heads/")&&g.some(P=>P.name===O)&&(b=O.slice(11),E=g.find(P=>P.name===O)?.hash??null);for(let P of g)if(P.name!=="HEAD"){if(P.name.startsWith("refs/heads/")){let I=P.name.slice(11),G=`refs/remotes/origin/${I}`;await Y(m,G,P.hash),await Be(m,G,{oldHash:J,newHash:P.hash,name:k.name,email:k.email,timestamp:k.timestamp,tz:k.tz,message:C}),!b&&R&&P.hash===R.hash&&(b=I,E=P.hash)}P.name.startsWith("refs/tags/")&&await Y(m,P.name,P.hash)}if(i){let P=g.find(I=>I.name===`refs/heads/${i}`);if(!P)return $(`Remote branch '${i}' not found in upstream origin`);b=i,E=P.hash}if(!b){let P=g.find(I=>I.name.startsWith("refs/heads/"));P&&(b=P.name.slice(11),E=P.hash)}if(n.bare)return b&&await Ue(m,"HEAD",`refs/heads/${b}`),await t?.hooks?.postClone?.({repo:m,repository:o,targetPath:f,bare:n.bare,branch:b}),{stdout:"",stderr:`Cloning into bare repository '${c}'...
338
+ `,exitCode:0};if(b&&await Ue(m,"refs/remotes/origin/HEAD",`refs/remotes/origin/${b}`),b&&E){await Y(m,`refs/heads/${b}`,E),await Ue(m,"HEAD",`refs/heads/${b}`);let P={oldHash:J,newHash:E,name:k.name,email:k.email,timestamp:k.timestamp,tz:k.tz,message:C};await Be(m,`refs/heads/${b}`,P),await Be(m,"HEAD",P);let I=await he(m);I[`branch "${b}"`]={remote:"origin",merge:`refs/heads/${b}`},await Ze(m,I);let G=await M(m,E);await ja(m,G.tree);let j=await qe(m,G.tree),z=ms(j.map(A=>({path:A.path,mode:parseInt(A.mode,8),hash:A.hash,stage:0,stat:Ce()})));await se(m,z)}let x={stdout:"",stderr:`Cloning into '${c}'...
339
+ `,exitCode:0};return await t?.hooks?.postClone?.({repo:m,repository:o,targetPath:f,bare:n.bare,branch:b}),x}})}re();ke();ie();sn();de();je();le();He();et();function Xc(e,t){e.command("commit",{description:"Record changes to the repository",options:{message:ee.string().alias("m").describe("Commit message"),file:ee.string().alias("F").describe("Read commit message from file ('-' for stdin)"),allowEmpty:H().describe("Allow creating an empty commit"),amend:H().describe("Amend the previous commit"),noEdit:H().describe("Use the previous commit message without editing"),all:H().alias("a").describe("Auto-stage modified and deleted tracked files")},handler:async(n,r)=>{if(n.message!==void 0&&n.file!==void 0)return $("options '-m' and '-F' cannot be used together");let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=await K(s);if(n.all){let xe=Ke(s);if(xe)return xe;let Me=await $t(s,a);for(let Xe of Me)Xe.status==="modified"?a=(await Zt(s,a,Xe.path)).index:Xe.status==="deleted"&&(a=ot(a,Xe.path));let nn=new Set(Ae(a).map(Xe=>Xe.path)),tr=new Set(a.entries.filter(Xe=>Xe.stage>0&&!nn.has(Xe.path)).map(Xe=>Xe.path));for(let Xe of tr){let Er=T(s.workTree,Xe);await r.fs.exists(Er)?a=(await Zt(s,a,Xe)).index:a=ot(a,Xe)}}let i=await U(s,"MERGE_HEAD"),c=await U(s,"CHERRY_PICK_HEAD"),f=await U(s,"REVERT_HEAD"),l=await Dt(s)?await U(s,"REBASE_HEAD"):null,u=n.amend,m=await X(s);if(u){if(!m)return $("You have nothing yet to amend.");if(i)return $("You are in the middle of a merge -- cannot amend.");if(c)return $("You are in the middle of a cherry-pick -- cannot amend.")}if(It(a)){let xe=new Set,Me=[];for(let nn of a.entries)nn.stage>0&&!xe.has(nn.path)&&(xe.add(nn.path),Me.push(`U ${nn.path}`));return Me.sort(),{stdout:Me.length>0?`${Me.join(`
340
340
  `)}
341
341
  `:"",stderr:`error: Committing is not possible because you have unmerged files.
342
342
  hint: Fix them up in the work tree, and then use 'git add/rm <file>'
343
343
  hint: as appropriate to mark resolution and make a commit.
344
344
  fatal: Exiting because of an unresolved conflict.
345
- `,exitCode:128}}let h=u&&m?await M(s,m):null,p=n.message;if(!p&&n.file!==void 0){if(n.file==="-")p=r.stdin;else{let ee=n.file.startsWith("/")?n.file:T(r.cwd,n.file);if(!await r.fs.exists(ee))return I(`could not read log file '${n.file}': No such file or directory`);let le=await r.fs.readFile(ee);p=typeof le=="string"?le:new TextDecoder().decode(le)}if(p=Xt(p),!p)return{stdout:`Aborting commit due to empty commit message.
346
- `,stderr:"",exitCode:1}}if(!p&&u&&h&&(p=h.message),!p&&(a||c||f||l)){let ee=await Ee(s,"SQUASH_MSG");if(ee)p=Xt(ee);else{let le=await Ee(s,"MERGE_MSG");le!==null&&(p=Xt(le))}}if(!p)return _("error: must provide a commit message with -m or -F");let g=ve(i),w=await Se(s,g);if(t?.hooks){let ee=await t.hooks.emitPre("pre-commit",{index:i,treeHash:w});if(ee)return _(ee.message??"")}let k=n.allowEmpty,b=null;if(u&&h){let ee=h.parents[0];ee?b=(await M(s,ee)).tree:b=await pt("tree",new Uint8Array(0))}else m&&(b=(await M(s,m)).tree);let E=u&&h&&h.parents.length>1;if(!k&&!a&&!E){if(!m&&!u&&g.length===0)return{stdout:await et(s,{fromCommit:!0,index:i}),stderr:"",exitCode:1};if(b!==null&&b===w){if(u){let ee=h?.parents[0]??null;return{stdout:`${await et(s,{fromCommit:!0,compareHash:ee,noWarn:!0,index:i})}No changes
345
+ `,exitCode:128}}let h=u&&m?await M(s,m):null,p=n.message;if(!p&&n.file!==void 0){if(n.file==="-")p=r.stdin;else{let xe=n.file.startsWith("/")?n.file:T(r.cwd,n.file);if(!await r.fs.exists(xe))return $(`could not read log file '${n.file}': No such file or directory`);let Me=await r.fs.readFile(xe);p=typeof Me=="string"?Me:new TextDecoder().decode(Me)}if(p=en(p),!p)return{stdout:`Aborting commit due to empty commit message.
346
+ `,stderr:"",exitCode:1}}if(!p&&u&&h&&(p=h.message),!p&&(i||c||f||l)){let xe=await Ee(s,"SQUASH_MSG");if(xe)p=en(xe);else{let Me=await Ee(s,"MERGE_MSG");Me!==null&&(p=en(Me))}}if(!p)return N("error: must provide a commit message with -m or -F");let g=Ae(a),w=await De(s,g),y=await t?.hooks?.preCommit?.({repo:s,index:a,treeHash:w});if(Q(y))return N(y.message??"");let R=n.allowEmpty,b=null;if(u&&h){let xe=h.parents[0];xe?b=(await M(s,xe)).tree:b=await bt("tree",new Uint8Array(0))}else m&&(b=(await M(s,m)).tree);let E=u&&h&&h.parents.length>1;if(!R&&!i&&!E){if(!m&&!u&&g.length===0)return{stdout:await nt(s,{fromCommit:!0,index:a}),stderr:"",exitCode:1};if(b!==null&&b===w){if(u){let xe=h?.parents[0]??null;return{stdout:`${await nt(s,{fromCommit:!0,compareHash:xe,noWarn:!0,index:a})}No changes
347
347
  `,stderr:`You asked to amend the most recent commit, but doing so would make
348
348
  it empty. You can repeat your command with --allow-empty, or you can
349
349
  remove the commit entirely with "git reset HEAD^".
350
- `,exitCode:1}}return c?{stdout:await et(s,{fromCommit:!0,index:i}),stderr:`The previous cherry-pick is now empty, possibly due to conflict resolution.
350
+ `,exitCode:1}}return c?{stdout:await nt(s,{fromCommit:!0,index:a}),stderr:`The previous cherry-pick is now empty, possibly due to conflict resolution.
351
351
  If you wish to commit it anyway, use:
352
352
 
353
353
  git commit --allow-empty
354
354
 
355
355
  Otherwise, please use 'git cherry-pick --skip'
356
- `,exitCode:1}:{stdout:await et(s,{fromCommit:!0,index:i}),stderr:"",exitCode:1}}}let x=await Yt(s,r.env);if(S(x))return x;let P=await Ve(s,r.env);if(S(P))return P;u&&h&&(x.name=h.author.name,x.email=h.author.email,x.timestamp=h.author.timestamp,x.timezone=h.author.timezone),c&&(x=(await M(s,c)).author);let C=Ot(p);if(t?.hooks){let ee={message:C},le=await t.hooks.emitPre("commit-msg",ee);if(le)return _(le.message??"");C=ee.message}let R;u&&h?R=[...h.parents]:(R=m?[m]:[],a&&R.push(a));let y=qt({type:"commit",tree:w,parents:R,author:x,committer:P,message:C}),$=await Re(s,"commit",y);await re(s,i);let A=await Z(s);A&&A.type==="symbolic"?await Y(s,A.target,$):await Y(s,"HEAD",$);let L=ie(C),G;u?G="commit (amend)":a?G="commit (merge)":c?G="commit (cherry-pick)":m?G="commit":G="commit (initial)";let V=`${G}: ${L}`,j=A?.type==="symbolic"?A.target:"HEAD";await te(s,r.env,j,m,$,V,A?.type==="symbolic"),a&&await vr(s),c&&await _t(s),f&&await Ht(s),l&&await he(s,"MERGE_MSG"),await he(s,"SQUASH_MSG"),await t?.hooks?.emitPost("post-commit",{hash:$,message:C,branch:A?.type==="symbolic"?be(A.target):null,parents:R,author:x});let O=A?.type==="symbolic"?A.target:null,v=O?be(O):"detached HEAD",W;if(u&&h){let ee=h.parents[0];W=ee?(await M(s,ee)).tree:null}else W=m?(await M(s,m)).tree:null;let F=x.timestamp!==P.timestamp||x.timezone!==P.timezone,D=R.length>1,K=await Zt(s,W,w,x,P,F,D);return{stdout:`${It(v,$,p,R.length===0&&!u)}
357
- ${K}`,stderr:"",exitCode:0}}})}ne();Xe();function zr(e){let t=e.split(".");return t.length===2||t.length===3}function pm(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}`;t.push(`${a}=${i}`)}}return t}function Vc(e,t){e.command("config",{description:"Get and set repository options",args:[B.string().name("positionals").variadic().optional()],options:{list:H().alias("l").describe("List all config entries"),unset:H().describe("Remove a config key")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=n.positionals,a=i[0];if(n.list)return zc(await pe(s));if(n.unset){let f=a;return f?zr(f)?Kc(s,f):_(`error: invalid key: ${f}`,2):_("error: missing key",2)}if(a==="list")return zc(await pe(s));if(a==="get"){let f=i[1];return f?zr(f)?qc(s,f):_(`error: invalid key: ${f}`,2):_("error: missing key",2)}if(a==="set"){let f=i[1],d=i[2];return!f||d===void 0?_("error: missing key and/or value",2):zr(f)?(await bo(s,f,d),{stdout:"",stderr:"",exitCode:0}):_(`error: invalid key: ${f}`,2)}if(a==="unset"){let f=i[1];return f?zr(f)?Kc(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(!zr(a))return _(`error: invalid key: ${a}`,2);let c=i[1];return c!==void 0?(await bo(s,a,c),{stdout:"",stderr:"",exitCode:0}):qc(s,a)}})}async function qc(e,t){let n=await jt(e,t);return n===void 0?_(""):{stdout:`${n}
358
- `,stderr:"",exitCode:0}}async function Kc(e,t){return await _i(e,t)?{stdout:"",stderr:"",exitCode:0}:_("",5)}function zc(e){let t=pm(e);return{stdout:t.length>0?`${t.join(`
356
+ `,exitCode:1}:{stdout:await nt(s,{fromCommit:!0,index:a}),stderr:"",exitCode:1}}}let k=await Qt(s,r.env);if(v(k))return k;let C=await Ye(s,r.env);if(v(C))return C;u&&h&&(k.name=h.author.name,k.email=h.author.email,k.timestamp=h.author.timestamp,k.timezone=h.author.timezone),c&&(k=(await M(s,c)).author);let O=St(p),x={repo:s,message:O},P=await t?.hooks?.commitMsg?.(x);if(Q(P))return N(P.message??"");O=x.message;let I;u&&h?I=[...h.parents]:(I=m?[m]:[],i&&I.push(i));let G=Yt({type:"commit",tree:w,parents:I,author:k,committer:C,message:O}),j=await Pe(s,"commit",G);await se(s,a);let z=await Z(s);z&&z.type==="symbolic"?await Y(s,z.target,j):await Y(s,"HEAD",j);let A=ae(O),S;u?S="commit (amend)":i?S="commit (merge)":c?S="commit (cherry-pick)":m?S="commit":S="commit (initial)";let L=`${S}: ${A}`,_=z?.type==="symbolic"?z.target:"HEAD";await ne(s,r.env,_,m,j,L,z?.type==="symbolic"),i&&await Nr(s),c&&await Bt(s),f&&await At(s),l&&await me(s,"MERGE_MSG"),await me(s,"SQUASH_MSG"),await t?.hooks?.postCommit?.({repo:s,hash:j,message:O,branch:z?.type==="symbolic"?we(z.target):null,parents:I,author:k});let F=z?.type==="symbolic"?z.target:null,D=F?we(F):"detached HEAD",W;if(u&&h){let xe=h.parents[0];W=xe?(await M(s,xe)).tree:null}else W=m?(await M(s,m)).tree:null;let te=k.timestamp!==C.timestamp||k.timezone!==C.timezone,$e=I.length>1,Le=await tn(s,W,w,k,C,te,$e);return{stdout:`${Ht(D,j,p,I.length===0&&!u)}
357
+ ${Le}`,stderr:"",exitCode:0}}})}re();Je();function ts(e){let t=e.split(".");return t.length===2||t.length===3}function Hm(e){let t=[];for(let[n,r]of Object.entries(e)){let o=n.match(/^(\S+)\s+"(.+)"$/);for(let[s,a]of Object.entries(r)){let i=o?`${o[1]}.${o[2]}.${s}`:`${n}.${s}`;t.push(`${i}=${a}`)}}return t}function ef(e,t){e.command("config",{description:"Get and set repository options",args:[q.string().name("positionals").variadic().optional()],options:{list:H().alias("l").describe("List all config entries"),unset:H().describe("Remove a config key")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=n.positionals,i=a[0];if(n.list)return Qc(await he(s));if(n.unset){let f=i;return f?ts(f)?Jc(s,f):N(`error: invalid key: ${f}`,2):N("error: missing key",2)}if(i==="list")return Qc(await he(s));if(i==="get"){let f=a[1];return f?ts(f)?Zc(s,f):N(`error: invalid key: ${f}`,2):N("error: missing key",2)}if(i==="set"){let f=a[1],d=a[2];return!f||d===void 0?N("error: missing key and/or value",2):ts(f)?(await ko(s,f,d),{stdout:"",stderr:"",exitCode:0}):N(`error: invalid key: ${f}`,2)}if(i==="unset"){let f=a[1];return f?ts(f)?Jc(s,f):N(`error: invalid key: ${f}`,2):N("error: missing key",2)}if(!i)return N("usage: git config [get|set|unset|list] [<key>] [<value>]",2);if(!ts(i))return N(`error: invalid key: ${i}`,2);let c=a[1];return c!==void 0?(await ko(s,i,c),{stdout:"",stderr:"",exitCode:0}):Zc(s,i)}})}async function Zc(e,t){let n=await _t(e,t);return n===void 0?N(""):{stdout:`${n}
358
+ `,stderr:"",exitCode:0}}async function Jc(e,t){return await Ki(e,t)?{stdout:"",stderr:"",exitCode:0}:N("",5)}function Qc(e){let t=Hm(e);return{stdout:t.length>0?`${t.join(`
359
359
  `)}
360
- `:"",stderr:"",exitCode:0}}ne();function Qs(e){let{path:t,parentHashes:n,parentModes:r,resultHash:o,resultMode:s}=e,i=[];i.push(`diff --cc ${t}`);let a=n.map(k=>k?z(k):"0000000"),c=o?z(o):"0000000";i.push(`index ${a.join(",")}..${c}`);let f=e.resultContent.length>0,d=n.every(k=>k===null),l=!f&&n.some(k=>k!==null);if(d&&s)i.push(`new file mode ${s}`);else if(l){let k=r.map(b=>b||"000000").join(",");i.push(`deleted file mode ${k}`)}else{let k=r.map(x=>x||"000000"),b=s||"000000";k.some(x=>x!==b)&&i.push(`mode ${k.join(",")}..${b}`)}let u=n.some(k=>k!==null);if(i.push(u?`--- a/${t}`:"--- /dev/null"),i.push(f?`+++ b/${t}`:"+++ /dev/null"),l||d)return`${i.join(`
360
+ `:"",stderr:"",exitCode:0}}re();function oo(e){let{path:t,parentHashes:n,parentModes:r,resultHash:o,resultMode:s}=e,a=[];a.push(`diff --cc ${t}`);let i=n.map(y=>y?V(y):"0000000"),c=o?V(o):"0000000";a.push(`index ${i.join(",")}..${c}`);let f=e.resultContent.length>0,d=n.every(y=>y===null),l=!f&&n.some(y=>y!==null);if(d&&s)a.push(`new file mode ${s}`);else if(l){let y=r.map(R=>R||"000000").join(",");a.push(`deleted file mode ${y}`)}else{let y=r.map(E=>E||"000000"),R=s||"000000";y.some(E=>E!==R)&&a.push(`mode ${y.join(",")}..${R}`)}let u=n.some(y=>y!==null);if(a.push(u?`--- a/${t}`:"--- /dev/null"),a.push(f?`+++ b/${t}`:"+++ /dev/null"),l||d)return`${a.join(`
361
361
  `)}
362
- `;let m=e.parentContents.map(k=>k.length>0?vt(k):[]),h=e.resultContent.length>0?vt(e.resultContent):[],p=m.map(k=>it(k,h)),g=gm(m,h,p),w=bm(g,m.length,h);if(w.length===0)return"";for(let k of w)i.push(k);return`${i.join(`
362
+ `;let m=e.parentContents.map(y=>y.length>0?Mt(y):[]),h=e.resultContent.length>0?Mt(e.resultContent):[],p=m.map(y=>ft(y,h)),g=Sm(m,h,p),w=Am(g,m.length,h);if(w.length===0)return"";for(let y of w)a.push(y);return`${a.join(`
363
363
  `)}
364
- `}function gm(e,t,n){let r=e.length,o=n.map(i=>{let a=[],c=new Map,f=0;for(let d of i)if(d.type==="keep")a[d.newLineNo-1]="keep",f=d.newLineNo;else if(d.type==="insert")a[d.newLineNo-1]="insert",f=d.newLineNo;else if(d.type==="delete"){let l=c.get(f)??[];l.push({text:d.line,parentLineNo:d.oldLineNo}),c.set(f,l)}return{resultStatus:a,deletions:c}}),s=[];for(let i=0;i<=t.length;i++){let a=[];for(let f=0;f<r;f++){let d=o[f];a.push(d?.deletions.get(i)??[])}let c=wm(a,r);for(let f of c)s.push(f);if(i<t.length){let f=[],d=Array(r).fill(0);for(let l=0;l<r;l++){let m=o[l]?.resultStatus[i];if(f.push(m==="insert"?"+":" "),m==="keep"){let h=n[l];if(h){for(let p of h)if(p.type==="keep"&&p.newLineNo===i+1){d[l]=p.oldLineNo;break}}}}s.push({columns:f,text:t[i]??"",resultLineNo:i+1,parentLineNos:d})}}return s}function wm(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(d=>({columns:[" ","-"],text:d.text,resultLineNo:0,parentLineNos:[0,d.parentLineNo]}));if(s.length===0)return o.map(d=>({columns:["-"," "],text:d.text,resultLineNo:0,parentLineNos:[d.parentLineNo,0]}));let i=o.map(d=>d.text),a=s.map(d=>d.text),c=it(i,a),f=[];for(let d of c)if(d.type==="keep"){let l=o.find(m=>m.text===d.line&&m.parentLineNo===d.oldLineNo),u=s.find(m=>m.text===d.line&&m.parentLineNo===d.newLineNo);f.push({columns:["-","-"],text:d.line,resultLineNo:0,parentLineNos:[l?.parentLineNo??0,u?.parentLineNo??0]})}else if(d.type==="delete"){let l=o.find(u=>u.parentLineNo===d.oldLineNo);f.push({columns:["-"," "],text:d.line,resultLineNo:0,parentLineNos:[l?.parentLineNo??0,0]})}else if(d.type==="insert"){let l=s.find(u=>u.parentLineNo===d.newLineNo);f.push({columns:[" ","-"],text:d.line,resultLineNo:0,parentLineNos:[0,l?.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 bm(e,t,n){let o=[];for(let d=0;d<e.length;d++)e[d]?.columns.some(u=>u!==" ")&&o.push(d);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 d=1;d<o.length;d++){let l=o[d]??0,u=Math.max(0,l-3),m=Math.min(e.length-1,l+3);u<=c+1||(s.push({start:a,end:c}),a=u),c=m}s.push({start:a,end:c});let f=[];for(let d of s){let l=e.slice(d.start,d.end+1),u=[];for(let E=0;E<t;E++){let x=l.filter(P=>(P.parentLineNos[E]??0)>0||P.columns[E]==="-");if(x.length===0)u.push({start:1,count:0});else{let C=x.find(R=>(R.parentLineNos[E]??0)>0)?.parentLineNos[E]??1;u.push({start:C,count:x.length})}}let m=l.filter(E=>E.resultLineNo>0),h=m[0],p=h?h.resultLineNo:1,g=m.length,w="";for(let E=p-2;E>=0;E--){let x=n[E];if(x&&/^[a-zA-Z$_]/.test(x)){w=` ${x.trimEnd().slice(0,79)}`;break}}let k=u.map(E=>`-${E.start},${E.count}`),b=`${"@".repeat(t+1)} ${k.join(" ")} +${p},${g} ${"@".repeat(t+1)}${w}`;f.push(b);for(let E of l)f.push(`${E.columns.join("")}${E.text}`)}return f}ne();xe();oe();ue();function eo(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}Gn();me();Te();Je();var mi=new TextDecoder;function Jc(e){return"exitCode"in e}function mr(e){return e.toString(8).padStart(6,"0")}function Qc(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 ef(e,t){e.command("diff",{description:"Show changes between commits, commit and working tree, etc.",args:[B.string().name("commits").variadic().optional()],options:{cached:H().describe("Show staged changes (index vs HEAD)"),staged:H().describe("Synonym for --cached"),stat:H().describe("Show diffstat summary"),nameOnly:H().describe("Show only names of changed files"),nameStatus:H().describe("Show names and status of changed files"),shortstat:H().describe("Show only the shortstat summary line"),numstat:H().describe("Machine-readable insertions/deletions per file")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=n.cached||n.staged,c=n.commits,f=ct(i,r.cwd),d=o.passthrough.length>0?o.passthrough.map(p=>Le(p,f)):null,l=n.stat?"stat":n.nameOnly?"name-only":n.nameStatus?"name-status":n.shortstat?"shortstat":n.numstat?"numstat":"unified",u,m=c.length===1?eo(c[0]):null;if(m){if(a)return I("too many arguments");m.type==="three-dot"?u=await xm(i,m.left,m.right,d):u=await Zc(i,m.left,m.right,d)}else if(c.length===2)u=await Zc(i,c[0],c[1],d);else{if(c.length>2)return I("too many arguments");a?u=await km(i,c.length===1?c[0]:null,d):c.length===1?u=await Cm(i,c[0],d):u=await ym(i,d)}if(Jc(u))return u;let h=await Pm(i,u.items,l);return u.stderr&&(h.stderr=u.stderr),h}})}async function ym(e,t){let n=qe(e);if(n)return n;let r=await q(e),o=new Set,s=new Map,i=new Map,a=new Map;for(let d of r.entries)d.stage===0?s.set(d.path,d):(o.add(d.path),d.stage===2?i.set(d.path,d):d.stage===3&&a.set(d.path,d));let c=await Rt(e,r);c.sort((d,l)=>Ce(d.path,l.path));let f=[];for(let d of c){if(d.status==="untracked"||t&&!ye(t,d.path)||o.has(d.path))continue;let l=s.get(d.path);if(!l)continue;let u=mr(l.mode),m;if(d.status==="modified"&&e.workTree){let h=T(e.workTree,d.path),p=await e.fs.readFileBuffer(h);m=await pt("blob",p)}f.push({path:d.path,status:d.status==="deleted"?"D":"M",oldHash:l.hash,newHash:m,oldMode:u,newMode:u,newFromWorkTree:d.status==="modified"})}for(let d of o){if(t&&!ye(t,d))continue;let l=i.get(d),u=a.get(d);await Em(f,e,d,l,u)}return f.sort((d,l)=>{let u=Ce(d.path,l.path);return u!==0?u:d.status==="U"&&l.status!=="U"?-1:d.status!=="U"&&l.status==="U"?1:0}),{items:f}}async function Em(e,t,n,r,o){let s=t.workTree;if(s&&r&&o){let i=mr(r.mode),a=mr(o.mode),{exists:c,hash:f}=await Yc(t.fs,s,n);e.push({path:n,status:"U",newHash:f,newMode:i,newFromWorkTree:c,combinedParentHashes:[r.hash,o.hash],combinedParentModes:[i,a]}),Xc(e,n,r.hash,i,c,f);return}if(e.push({path:n,status:"U"}),s&&r){let i=mr(r.mode),{exists:a,hash:c}=await Yc(t.fs,s,n);Xc(e,n,r.hash,i,a,c)}}async function Yc(e,t,n){let r=T(t,n);if(!await e.exists(r))return{exists:!1};let o=await Ir(e,r);return{exists:!0,hash:await pt("blob",o)}}function Xc(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 km(e,t,n){let r=null;if(t){let u=await Ie(e,t);if(S(u))return u;r=u.commit.tree}else{let u=await X(e);u&&(r=(await M(e,u)).tree)}let o=await fe(e,r),s=await q(e),i=new Set;for(let u of s.entries)u.stage>0&&i.add(u.path);let a=new Map(ve(s).map(u=>[u.path,u])),c=[];for(let[u,m]of a){if(i.has(u))continue;let h=o.get(u);h?h.hash!==m.hash&&c.push({path:u,status:"modified",oldHash:h.hash,newHash:m.hash,oldMode:h.mode,newMode:mr(m.mode)}):c.push({path:u,status:"added",newHash:m.hash,newMode:mr(m.mode)})}for(let[u,m]of o)i.has(u)||a.has(u)||c.push({path:u,status:"deleted",oldHash:m.hash,oldMode:m.mode});let{remaining:f,renames:d}=await Qe(e,c),l=Qc(f,d);for(let u of i)l.push({path:u,status:"U"});return l.sort((u,m)=>Ce(u.path,m.path)),n?{items:l.filter(u=>ye(n,u.path))}:{items:l}}async function Zc(e,t,n,r){let o=await Ie(e,t);if(S(o))return o;let s=await Ie(e,n);if(S(s))return s;let i=await Ne(e,o.commit.tree,s.commit.tree);return tf(e,i,r)}async function xm(e,t,n,r){let o=await Ie(e,t);if(S(o))return o;let s=await Ie(e,n);if(S(s))return s;let i=await Dt(e,o.hash,s.hash);if(i.length===0)return I(`${t}...${n}: no merge base`);let a;i.length>1&&(a=`warning: ${t}...${n}: multiple merge bases, using ${i[0]}
365
- `);let c=i[0],f=await M(e,c),d=await Ne(e,f.tree,s.commit.tree),l=await tf(e,d,r);return Jc(l)||a&&(l.stderr=a),l}async function tf(e,t,n){let{remaining:r,renames:o}=await Qe(e,t),s=Qc(r,o);return s.sort((i,a)=>Ce(i.path,a.path)),n?{items:s.filter(i=>ye(n,i.path))}:{items:s}}async function Cm(e,t,n){let r=qe(e);if(r)return r;let o=await Ie(e,t);if(S(o))return o;let s=e.workTree,i=await fe(e,o.commit.tree),a=[];for(let[c,f]of i){if(n&&!ye(n,c))continue;let d=T(s,c);if(!await e.fs.exists(d)){a.push({path:c,status:"D",oldHash:f.hash,oldMode:f.mode});continue}let l=await e.fs.readFileBuffer(d),u=await pt("blob",l);u!==f.hash&&a.push({path:c,status:"M",oldHash:f.hash,newHash:u,oldMode:f.mode,newMode:f.mode,newFromWorkTree:!0})}return a.sort((c,f)=>Ce(c.path,f.path)),{items:a}}async function Pm(e,t,n){let r;switch(n){case"stat":r=await Hm(e,t);break;case"shortstat":r=await Am(e,t);break;case"numstat":r=await Tm(e,t);break;case"name-only":r=Im(t);break;case"name-status":r=Om(t);break;default:r=await Rm(e,t);break}return{stdout:r,stderr:"",exitCode:0}}async function Rm(e,t){let n="",r=new Set,o=await $m(e,t);for(let s of t)if(s.status==="U")if(s.combinedParentHashes){let i=await Promise.all(s.combinedParentHashes.map(async f=>f?await se(e,f):"")),a=await hi(e,s);if(i.some(f=>Oe(f))||Oe(a)){let f=s.combinedParentHashes.map(d=>d?z(d):"0000000");n+=`diff --cc ${s.path}
364
+ `}function Sm(e,t,n){let r=e.length,o=n.map(a=>{let i=[],c=new Map,f=0;for(let d of a)if(d.type==="keep")i[d.newLineNo-1]="keep",f=d.newLineNo;else if(d.type==="insert")i[d.newLineNo-1]="insert",f=d.newLineNo;else if(d.type==="delete"){let l=c.get(f)??[];l.push({text:d.line,parentLineNo:d.oldLineNo}),c.set(f,l)}return{resultStatus:i,deletions:c}}),s=[];for(let a=0;a<=t.length;a++){let i=[];for(let f=0;f<r;f++){let d=o[f];i.push(d?.deletions.get(a)??[])}let c=vm(i,r);for(let f of c)s.push(f);if(a<t.length){let f=[],d=Array(r).fill(0);for(let l=0;l<r;l++){let m=o[l]?.resultStatus[a];if(f.push(m==="insert"?"+":" "),m==="keep"){let h=n[l];if(h){for(let p of h)if(p.type==="keep"&&p.newLineNo===a+1){d[l]=p.oldLineNo;break}}}}s.push({columns:f,text:t[a]??"",resultLineNo:a+1,parentLineNos:d})}}return s}function vm(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(d=>({columns:[" ","-"],text:d.text,resultLineNo:0,parentLineNos:[0,d.parentLineNo]}));if(s.length===0)return o.map(d=>({columns:["-"," "],text:d.text,resultLineNo:0,parentLineNos:[d.parentLineNo,0]}));let a=o.map(d=>d.text),i=s.map(d=>d.text),c=ft(a,i),f=[];for(let d of c)if(d.type==="keep"){let l=o.find(m=>m.text===d.line&&m.parentLineNo===d.oldLineNo),u=s.find(m=>m.text===d.line&&m.parentLineNo===d.newLineNo);f.push({columns:["-","-"],text:d.line,resultLineNo:0,parentLineNos:[l?.parentLineNo??0,u?.parentLineNo??0]})}else if(d.type==="delete"){let l=o.find(u=>u.parentLineNo===d.oldLineNo);f.push({columns:["-"," "],text:d.line,resultLineNo:0,parentLineNos:[l?.parentLineNo??0,0]})}else if(d.type==="insert"){let l=s.find(u=>u.parentLineNo===d.newLineNo);f.push({columns:[" ","-"],text:d.line,resultLineNo:0,parentLineNos:[0,l?.parentLineNo??0]})}return f}let r=[];for(let o=0;o<t;o++){let s=e[o]??[];for(let a of s){let i=Array(t).fill(" ");i[o]="-";let c=Array(t).fill(0);c[o]=a.parentLineNo,r.push({columns:i,text:a.text,resultLineNo:0,parentLineNos:c})}}return r}function Am(e,t,n){let o=[];for(let d=0;d<e.length;d++)e[d]?.columns.some(u=>u!==" ")&&o.push(d);if(o.length===0)return[];let s=[],a=o[0]??0,i=Math.max(0,a-3),c=Math.min(e.length-1,a+3);for(let d=1;d<o.length;d++){let l=o[d]??0,u=Math.max(0,l-3),m=Math.min(e.length-1,l+3);u<=c+1||(s.push({start:i,end:c}),i=u),c=m}s.push({start:i,end:c});let f=[];for(let d of s){let l=e.slice(d.start,d.end+1),u=[];for(let b=0;b<t;b++){let E=l.filter(k=>(k.parentLineNos[b]??0)>0||k.columns[b]==="-");if(E.length===0)u.push({start:1,count:0});else{let C=E.find(O=>(O.parentLineNos[b]??0)>0)?.parentLineNos[b]??1;u.push({start:C,count:E.length})}}let m=l.filter(b=>b.resultLineNo>0),h=m[0],p=h?h.resultLineNo:1,g=m.length,w="";for(let b=p-2;b>=0;b--){let E=n[b];if(E&&/^[a-zA-Z$_]/.test(E)){w=` ${E.trimEnd().slice(0,79)}`;break}}let y=u.map(b=>`-${b.start},${b.count}`),R=`${"@".repeat(t+1)} ${y.join(" ")} +${p},${g} ${"@".repeat(t+1)}${w}`;f.push(R);for(let b of l)f.push(`${b.columns.join("")}${b.text}`)}return f}re();ke();ie();de();function io(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}Nn();le();He();et();var Ei=new TextDecoder;function sf(e){return"exitCode"in e}function br(e){return e.toString(8).padStart(6,"0")}function of(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 af(e,t){e.command("diff",{description:"Show changes between commits, commit and working tree, etc.",args:[q.string().name("commits").variadic().optional()],options:{cached:H().describe("Show staged changes (index vs HEAD)"),staged:H().describe("Synonym for --cached"),stat:H().describe("Show diffstat summary"),nameOnly:H().describe("Show only names of changed files"),nameStatus:H().describe("Show names and status of changed files"),shortstat:H().describe("Show only the shortstat summary line"),numstat:H().describe("Machine-readable insertions/deletions per file")},handler:async(n,r,o)=>{let s=await B(r.fs,r.cwd,t);if(v(s))return s;let a=s,i=n.cached||n.staged,c=n.commits,f=lt(a,r.cwd),d=o.passthrough.length>0?o.passthrough.map(p=>Ge(p,f)):null,l=n.stat?"stat":n.nameOnly?"name-only":n.nameStatus?"name-status":n.shortstat?"shortstat":n.numstat?"numstat":"unified",u,m=c.length===1?io(c[0]):null;if(m){if(i)return $("too many arguments");m.type==="three-dot"?u=await Gm(a,m.left,m.right,d):u=await rf(a,m.left,m.right,d)}else if(c.length===2)u=await rf(a,c[0],c[1],d);else{if(c.length>2)return $("too many arguments");i?u=await jm(a,c.length===1?c[0]:null,d):c.length===1?u=await Lm(a,c[0],d):u=await Dm(a,d)}if(sf(u))return u;let h=await _m(a,u.items,l);return u.stderr&&(h.stderr=u.stderr),h}})}async function Dm(e,t){let n=Ke(e);if(n)return n;let r=await K(e),o=new Set,s=new Map,a=new Map,i=new Map;for(let d of r.entries)d.stage===0?s.set(d.path,d):(o.add(d.path),d.stage===2?a.set(d.path,d):d.stage===3&&i.set(d.path,d));let c=await $t(e,r);c.sort((d,l)=>Re(d.path,l.path));let f=[];for(let d of c){if(d.status==="untracked"||t&&!be(t,d.path)||o.has(d.path))continue;let l=s.get(d.path);if(!l)continue;let u=br(l.mode),m;if(d.status==="modified"&&e.workTree){let h=T(e.workTree,d.path),p=await e.fs.readFileBuffer(h);m=await bt("blob",p)}f.push({path:d.path,status:d.status==="deleted"?"D":"M",oldHash:l.hash,newHash:m,oldMode:u,newMode:u,newFromWorkTree:d.status==="modified"})}for(let d of o){if(t&&!be(t,d))continue;let l=a.get(d),u=i.get(d);await Mm(f,e,d,l,u)}return f.sort((d,l)=>{let u=Re(d.path,l.path);return u!==0?u:d.status==="U"&&l.status!=="U"?-1:d.status!=="U"&&l.status==="U"?1:0}),{items:f}}async function Mm(e,t,n,r,o){let s=t.workTree;if(s&&r&&o){let a=br(r.mode),i=br(o.mode),{exists:c,hash:f}=await tf(t.fs,s,n);e.push({path:n,status:"U",newHash:f,newMode:a,newFromWorkTree:c,combinedParentHashes:[r.hash,o.hash],combinedParentModes:[a,i]}),nf(e,n,r.hash,a,c,f);return}if(e.push({path:n,status:"U"}),s&&r){let a=br(r.mode),{exists:i,hash:c}=await tf(t.fs,s,n);nf(e,n,r.hash,a,i,c)}}async function tf(e,t,n){let r=T(t,n);if(!await e.exists(r))return{exists:!1};let o=await Mr(e,r);return{exists:!0,hash:await bt("blob",o)}}function nf(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 jm(e,t,n){let r=null;if(t){let u=await Ie(e,t);if(v(u))return u;r=u.commit.tree}else{let u=await X(e);u&&(r=(await M(e,u)).tree)}let o=await ce(e,r),s=await K(e),a=new Set;for(let u of s.entries)u.stage>0&&a.add(u.path);let i=new Map(Ae(s).map(u=>[u.path,u])),c=[];for(let[u,m]of i){if(a.has(u))continue;let h=o.get(u);h?h.hash!==m.hash&&c.push({path:u,status:"modified",oldHash:h.hash,newHash:m.hash,oldMode:h.mode,newMode:br(m.mode)}):c.push({path:u,status:"added",newHash:m.hash,newMode:br(m.mode)})}for(let[u,m]of o)a.has(u)||i.has(u)||c.push({path:u,status:"deleted",oldHash:m.hash,oldMode:m.mode});let{remaining:f,renames:d}=await tt(e,c),l=of(f,d);for(let u of a)l.push({path:u,status:"U"});return l.sort((u,m)=>Re(u.path,m.path)),n?{items:l.filter(u=>be(n,u.path))}:{items:l}}async function rf(e,t,n,r){let o=await Ie(e,t);if(v(o))return o;let s=await Ie(e,n);if(v(s))return s;let a=await Ne(e,o.commit.tree,s.commit.tree);return cf(e,a,r)}async function Gm(e,t,n,r){let o=await Ie(e,t);if(v(o))return o;let s=await Ie(e,n);if(v(s))return s;let a=await Gt(e,o.hash,s.hash);if(a.length===0)return $(`${t}...${n}: no merge base`);let i;a.length>1&&(i=`warning: ${t}...${n}: multiple merge bases, using ${a[0]}
365
+ `);let c=a[0],f=await M(e,c),d=await Ne(e,f.tree,s.commit.tree),l=await cf(e,d,r);return sf(l)||i&&(l.stderr=i),l}async function cf(e,t,n){let{remaining:r,renames:o}=await tt(e,t),s=of(r,o);return s.sort((a,i)=>Re(a.path,i.path)),n?{items:s.filter(a=>be(n,a.path))}:{items:s}}async function Lm(e,t,n){let r=Ke(e);if(r)return r;let o=await Ie(e,t);if(v(o))return o;let s=e.workTree,a=await ce(e,o.commit.tree),i=[];for(let[c,f]of a){if(n&&!be(n,c))continue;let d=T(s,c);if(!await e.fs.exists(d)){i.push({path:c,status:"D",oldHash:f.hash,oldMode:f.mode});continue}let l=await e.fs.readFileBuffer(d),u=await bt("blob",l);u!==f.hash&&i.push({path:c,status:"M",oldHash:f.hash,newHash:u,oldMode:f.mode,newMode:f.mode,newFromWorkTree:!0})}return i.sort((c,f)=>Re(c.path,f.path)),{items:i}}async function _m(e,t,n){let r;switch(n){case"stat":r=await qm(e,t);break;case"shortstat":r=await Km(e,t);break;case"numstat":r=await Wm(e,t);break;case"name-only":r=Um(t);break;case"name-status":r=Bm(t);break;default:r=await Nm(e,t);break}return{stdout:r,stderr:"",exitCode:0}}async function Nm(e,t){let n="",r=new Set,o=await Fm(e,t);for(let s of t)if(s.status==="U")if(s.combinedParentHashes){let a=await Promise.all(s.combinedParentHashes.map(async f=>f?await oe(e,f):"")),i=await ki(e,s);if(a.some(f=>Te(f))||Te(i)){let f=s.combinedParentHashes.map(d=>d?V(d):"0000000");n+=`diff --cc ${s.path}
366
366
  index ${f.join(",")}..0000000
367
367
  Binary files differ
368
- `,r.add(s.path)}else{let f=Qs({path:s.path,parentHashes:s.combinedParentHashes,parentModes:s.combinedParentModes??[],parentContents:i,resultHash:null,resultMode:s.newMode??null,resultContent:a});f?(n+=f,r.add(s.path)):n+=`* Unmerged path ${s.path}
368
+ `,r.add(s.path)}else{let f=oo({path:s.path,parentHashes:s.combinedParentHashes,parentModes:s.combinedParentModes??[],parentContents:a,resultHash:null,resultMode:s.newMode??null,resultContent:i});f?(n+=f,r.add(s.path)):n+=`* Unmerged path ${s.path}
369
369
  `}}else n+=`* Unmerged path ${s.path}
370
- `;for(let s of t){if(s.status==="U"||r.has(s.path))continue;let i=s.oldHash?await se(e,s.oldHash):"",a=await hi(e,s);s.status==="R"&&s.oldPath?n+=yt({path:s.oldPath,oldContent:i,newContent:a,oldMode:s.oldMode,newMode:s.newMode,oldHash:to(s.oldHash,o),newHash:to(s.newHash,o),renameTo:s.path,similarity:s.similarity}):n+=yt({path:s.path,oldContent:i,newContent:a,oldMode:s.oldMode,newMode:s.newMode,oldHash:to(s.oldHash,o),newHash:to(s.newHash,o),isNew:s.status==="A",isDeleted:s.status==="D"})}return n}async function $m(e,t){let n=new Set;for(let a of t)a.oldHash&&a.oldHash.length===40&&n.add(a.oldHash),a.newHash&&a.newHash.length===40&&n.add(a.newHash);let r=new Map,o=async a=>{let c=r.get(a);if(c)return c;let f=T(e.gitDir,"objects",a),d=await e.fs.exists(f)?await e.fs.readdir(f):[];return r.set(a,d),d},s=async(a,c)=>{let f=a.slice(0,2),d=a.slice(2,c),l=await o(f),u=0;for(let m of l)if(m.startsWith(d)&&(u++,u>1))return!1;return u===1},i=new Map;for(let a of n){let c=7;for(;c<40&&!await s(a,c);)c++;i.set(a,a.slice(0,c))}return i}function to(e,t){if(e)return e.length!==40?e:t.get(e)??z(e)}function Im(e){let t="";for(let n of e)t+=`${n.path}
371
- `;return t}function Om(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}
370
+ `;for(let s of t){if(s.status==="U"||r.has(s.path))continue;let a=s.oldHash?await oe(e,s.oldHash):"",i=await ki(e,s);s.status==="R"&&s.oldPath?n+=Rt({path:s.oldPath,oldContent:a,newContent:i,oldMode:s.oldMode,newMode:s.newMode,oldHash:ao(s.oldHash,o),newHash:ao(s.newHash,o),renameTo:s.path,similarity:s.similarity}):n+=Rt({path:s.path,oldContent:a,newContent:i,oldMode:s.oldMode,newMode:s.newMode,oldHash:ao(s.oldHash,o),newHash:ao(s.newHash,o),isNew:s.status==="A",isDeleted:s.status==="D"})}return n}async function Fm(e,t){let n=new Set;for(let i of t)i.oldHash&&i.oldHash.length===40&&n.add(i.oldHash),i.newHash&&i.newHash.length===40&&n.add(i.newHash);let r=new Map,o=async i=>{let c=r.get(i);if(c)return c;let f=T(e.gitDir,"objects",i),d=await e.fs.exists(f)?await e.fs.readdir(f):[];return r.set(i,d),d},s=async(i,c)=>{let f=i.slice(0,2),d=i.slice(2,c),l=await o(f),u=0;for(let m of l)if(m.startsWith(d)&&(u++,u>1))return!1;return u===1},a=new Map;for(let i of n){let c=7;for(;c<40&&!await s(i,c);)c++;a.set(i,i.slice(0,c))}return a}function ao(e,t){if(e)return e.length!==40?e:t.get(e)??V(e)}function Um(e){let t="";for(let n of e)t+=`${n.path}
371
+ `;return t}function Bm(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}
372
372
  `}else t+=`${n.status} ${n.path}
373
- `;return t}async function Tm(e,t){let n="";for(let r of t){if(r.status==="U"){n+=`0 0 ${r.path}
374
- `;continue}let o=r.oldHash?await se(e,r.oldHash):"",s=await hi(e,r),i=Oe(o)||Oe(s),a,c;if(i)a="-",c="-";else{let{ins:f,del:d}=nf(o,s);a=String(f),c=String(d)}if(r.status==="R"&&r.oldPath){let f=Cn(r.oldPath,r.path);n+=`${a} ${c} ${f}
375
- `}else n+=`${a} ${c} ${r.path}
376
- `}return n}async function Hm(e,t){let n=await rf(e,t);return _r(n)}async function Am(e,t){let n=await rf(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=fr(s,r,o);return i?`${i}
377
- `:n.some(a=>a.isUnmerged)?` 0 files changed
378
- `:""}async function hi(e,t){if(!t.newHash)return"";if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path),r=await Ir(e.fs,n);return mi.decode(r)}return se(e,t.newHash)}async function vm(e,t){if(!t.newHash)return new Uint8Array(0);if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path);return Ir(e.fs,n)}return gt(e,t.newHash)}function nf(e,t){let n=Nt(e),r=Nt(t),o=it(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 rf(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?Cn(r.oldPath,r.path):r.path,s=r.oldHash?await gt(e,r.oldHash):new Uint8Array(0),i=await vm(e,r);if(pn(s)||pn(i))n.push({path:o,sortKey:r.path,insertions:0,deletions:0,isBinary:!0,oldSize:s.byteLength,newSize:i.byteLength});else{let a=mi.decode(s),c=mi.decode(i),{ins:f,del:d}=nf(a,c);n.push({path:o,sortKey:r.path,insertions:f,deletions:d})}}return n}ne();ln();ue();Ge();me();function Zn(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 Sm(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 no(e,t){if(!Sm(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 sf(e,t){e.command("fetch",{description:"Download objects and refs from another repository",args:[B.string().name("remote").describe("Remote to fetch from").optional(),B.string().name("refspec").describe("Refspec(s) to fetch").optional().variadic()],options:{all:H().describe("Fetch from all remotes"),prune:H().alias("p").describe("Remove stale remote-tracking refs"),tags:H().describe("Also fetch tags")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=n.remote||"origin",a;try{a=await ur(s,i,r.env)}catch(y){let $=y instanceof Error?y.message:"";if($.startsWith("network"))return I($);throw y}if(!a)return I(`'${i}' does not appear to be a git repository`);let{transport:c,config:f}=a,d=n.refspec,l;if(d&&d.length>0?l=d.map(Zn):l=[Zn(f.fetchRefspec)],t?.hooks){let y=await t.hooks.emitPre("pre-fetch",{remote:i,url:f.url,refspecs:l.map($=>`${$.src}:${$.dst}`),prune:n.prune,tags:n.tags});if(y)return{stdout:"",stderr:y.message??"",exitCode:1}}let u=await c.advertiseRefs();if(u.length===0)return{stdout:"",stderr:"",exitCode:0};let h=(await we(s)).map(y=>y.hash),p=await N(s,"HEAD");p&&h.push(p);let g=[],w=new Set,k=[];for(let y of u)if(y.name!=="HEAD")for(let $ of l){let A=no($,y.name);if(A!==null){k.push({remote:y,localRef:A,force:$.force}),w.has(y.hash)||(w.add(y.hash),g.push(y.hash));break}}if(n.tags)for(let y of u)y.name.startsWith("refs/tags/")&&(k.push({remote:y,localRef:y.name,force:!1}),w.has(y.hash)||(w.add(y.hash),g.push(y.hash)));let b=new Set(h),E=g.filter(y=>!b.has(y));E.length>0&&await c.fetch(E,h);let x=await Bt(s,r.env),P=[];P.push(`From ${f.url}
379
- `);for(let y of k){let $=await N(s,y.localRef);await Y(s,y.localRef,y.remote.hash),await Ue(s,y.localRef,{oldHash:$??J,newHash:y.remote.hash,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:$?"fetch":"fetch: storing head"});let A=ro(y.remote.name),L=ro(y.localRef);if($){if($!==y.remote.hash){let G=z($),V=z(y.remote.hash);P.push(` ${G}..${V} ${A} -> ${L}
380
- `)}}else{let V=y.remote.name.startsWith("refs/tags/")?" * [new tag]":" * [new branch]";P.push(`${V} ${A} -> ${L}
381
- `)}}if(!n.tags)for(let y of u){if(!y.name.startsWith("refs/tags/")||w.has(y.hash))continue;let $=await N(s,y.name),A=y.peeledHash??y.hash;!$&&b.has(A)&&(await Y(s,y.name,y.hash),await Ue(s,y.name,{oldHash:J,newHash:y.hash,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:"fetch: storing head"}),P.push(` * [new tag] ${ro(y.name)} -> ${ro(y.name)}
382
- `))}if(n.prune){let y=`refs/remotes/${i}`,$=await we(s,y),A=new Set(u.filter(L=>L.name.startsWith("refs/heads/")).map(L=>L.name.slice(11)));for(let L of $){let G=L.name.slice(y.length+1);A.has(G)||(await de(s,L.name),P.push(` - [deleted] (none) -> ${i}/${G}
383
- `))}}let C=u.find(y=>y.name==="HEAD");if(C){let y=T(s.gitDir,"FETCH_HEAD"),$=u.find(L=>L.name.startsWith("refs/heads/")&&L.hash===C.hash),A=$?`branch '${$.name.slice(11)}' of`:"of";await r.fs.writeFile(y,`${C.hash} ${A} ${f.url}
384
- `)}let R={stdout:"",stderr:P.join(""),exitCode:0};return await t?.hooks?.emitPost("post-fetch",{remote:i,url:f.url,refsUpdated:k.length}),R}})}function ro(e){return e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/tags/")?e.slice(10):e.startsWith("refs/remotes/")?e.slice(13):e}ne();xe();oe();ue();Ge();me();ne();xe();oe();ue();Ge();me();async function of(e){let t=new Set,n=await X(e);n&&t.add(n);let r=await we(e,"refs");for(let a of r)t.add(a.hash);let o=T(e.gitDir,"logs");await e.fs.exists(o)&&await af(e,o,o,t);let s=await q(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 N(e,a);c&&t.add(c)}let i=[];for(let a of t)await hn(e,a)&&i.push(a);return i}async function af(e,t,n,r){let o=await e.fs.readdir(t);for(let s of o){let i=T(t,s),a=await e.fs.stat(i);if(a.isDirectory)await af(e,i,n,r);else if(a.isFile){let c=i.slice(n.length+1),f=await ze(e,c);for(let d of f)d.newHash!==J&&r.add(d.newHash)}}}var oo=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]),Dm=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]),so=64,Mm=4,pi=4096,cf=65536,jm=127;function Gm(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=_m(r);let o=r-1,s=new Uint32Array(r),i=[],a=-1>>>0;for(let u=n*16-16;u>=0;u-=16){let m=0;for(let h=1;h<=16;h++)m=(m<<8|e[u+h])^oo[m>>>23];if(m=m>>>0,m===a)i[i.length-1].ptr=u+16;else{a=m;let h=m&o;i.push({ptr:u+16,val:m}),s[h]++}}let c=new Map;for(let u of i){let m=u.val&o,h=c.get(m);h||(h=[],c.set(m,h)),h.push(u)}for(let[u,m]of c){if(m.length<=so)continue;let h=[],p=m.length/so;for(let g=0;g<so;g++)h.push(m[Math.floor(g*p)]);c.set(u,h),s[u]=so}let f=new Uint32Array(r+1),d=[],l=0;for(let u=0;u<r;u++){f[u]=l;let m=c.get(u);if(m){for(let h of m)d.push(h);l+=m.length}}return f[r]=l,{src:e,hashMask:o,buckets:f,entries:d}}function Lm(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=df(i,a,r),a=df(i,a,o),c(18),a++;let f=0,d=0,l=Math.min(16,o);for(let p=0;p<l;p++)i[a++]=t[p],f=(f<<8|t[p])^oo[f>>>23],d++;f=f>>>0;let u=l,m=0,h=0;for(;u<o;){if(h<pi){f^=Dm[t[u-16]],f=((f<<8|t[u])^oo[f>>>23])>>>0;let p=f&e.hashMask,g=e.buckets[p],w=e.buckets[p+1];for(let k=g;k<w;k++){let b=e.entries[k];if(b.val!==f)continue;let E=b.ptr,x=s.byteLength-E,P=o-u;if(x>P&&(x=P),x<=h)break;let C=0;for(;C<x&&s[E+C]===t[u+C];)C++;if(C>h&&(h=C,m=E,h>=pi))break}}if(h<Mm)c(2),d===0&&a++,i[a++]=t[u++],d++,d===jm&&(i[a-d-1]=d,d=0),h=0;else{if(d>0){for(;m>0&&s[m-1]===t[u-1];)if(h++,m--,u--,a--,!(--d>0)){a--,d=-1;break}d>0&&(i[a-d-1]=d),d=0}let p=h>cf?h-cf:0;h-=p,c(8);let g=a++,w=128;if(m&255&&(i[a++]=m&255,w|=1),m&65280&&(i[a++]=m>>>8&255,w|=2),m&16711680&&(i[a++]=m>>>16&255,w|=4),m&4278190080&&(i[a++]=m>>>24&255,w|=8),h&255&&(i[a++]=h&255,w|=16),h&65280&&(i[a++]=h>>>8&255,w|=32),i[g]=w,u+=h,m+=h,h=p,m>4294967295&&(h=0),h<pi){f=0;for(let k=-16;k<0;k++)f=(f<<8|t[u+k])^oo[f>>>23];f=f>>>0}}if(n&&a>n)return null}return d>0&&(i[a-d-1]=d),n&&a>n?null:i.subarray(0,a)}var ff={blob:0,tree:1,commit:2,tag:3};function lf(e,t){let n=t?.window??10,r=t?.depth??50,o=e.slice().sort((f,d)=>{let l=ff[f.type]??99,u=ff[d.type]??99;return l!==u?l-u:d.content.byteLength-f.content.byteLength}),s=new Map,i=[],a=[],c=[];for(let f=0;f<o.length;f++){let d=o[f],l={hash:d.hash,type:d.type,content:d.content,depth:0},u=null,m=null,h=Math.max(0,f-n);for(let p=f-1;p>=h;p--){let g=o[p];if(g.type!==d.type||(s.get(g.hash)?.depth??0)>=r||d.content.byteLength<g.content.byteLength>>>5)continue;let b=a[p-h]??null;if(!b)continue;let E=u?u.byteLength:d.content.byteLength/2|0;if(E<16)continue;let x=Lm(b,d.content,E);x&&(!u||x.byteLength<u.byteLength)&&(u=x,m=g.hash)}if(u&&m){l.delta=u,l.deltaBase=m;let p=s.get(m);l.depth=(p?.depth??0)+1}s.set(d.hash,l),i.push(l),a.length>=n&&(a.shift(),c.shift()),a.push(Gm(d.content)),c.push(d.hash)}return i}function _m(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 df(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}ds();Er();ue();async function Nm(e,t){let n=new Set,r=T(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(T(r,i)),c=new Mn(a);for(let f of c.allHashes())n.add(f)}}catch{}return n.size===0?Ys(e,t,[]):(await Ys(e,t,[])).filter(s=>!n.has(s.hash))}async function gi(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 Ys(t,r,[]):await Nm(t,r);if(a.length===0)return null;let c=a.length,f=lf(a,{window:s,depth:i}),d=f.filter(P=>P.delta).length,l=f.map(P=>({hash:P.hash,type:P.type,content:P.content,delta:P.delta,deltaBaseHash:P.deltaBase})),{data:u,entries:m}=await ra(l),h=await ca(u,m),p=u.subarray(u.byteLength-20),g="";for(let P=0;P<20;P++){let C=p[P];g+=(C>>4).toString(16)+(C&15).toString(16)}let w=T(t.gitDir,"objects","pack");await n.mkdir(w,{recursive:!0});let k=`pack-${g}`,b=T(w,`${k}.pack`),E=T(w,`${k}.idx`);await n.writeFile(b,u),await n.writeFile(E,h);let x=new Set(f.map(P=>P.hash));if(o){let P=await n.readdir(w);for(let y of P){if(!y.endsWith(".idx"))continue;let $=y.slice(0,-4);if($===k)continue;let A=T(w,`${$}.idx`),L=!0;try{let G=await n.readFileBuffer(A),V=new Mn(G);for(let j of V.allHashes())if(!x.has(j)){L=!1;break}}catch{L=!1}if(L){try{await n.rm(T(w,`${$}.pack`))}catch{}try{await n.rm(A)}catch{}}}let C=T(t.gitDir,"objects"),R;try{R=await n.readdir(C)}catch{R=[]}for(let y of R){if(y==="pack"||y==="info"||y.length!==2)continue;let $=T(C,y),A;try{A=await n.readdir($)}catch{continue}for(let L of A){let G=`${y}${L}`;x.has(G)&&await n.rm(T($,L))}try{(await n.readdir($)).length===0&&await n.rm($,{recursive:!0})}catch{}}}return{totalCount:c,deltaCount:d,packHash:g}}function wi(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(`
385
- `)}function uf(e,t){e.command("repack",{description:"Pack unpacked objects in a repository",options:{all:H().alias("a").describe("Pack all objects, including already-packed"),delete:H().alias("d").describe("After packing, remove redundant packs and loose objects")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=await of(s),a=await gi({gitCtx:s,fs:r.fs,tips:i,cleanup:n.delete,all:n.all});return a?{stdout:"",stderr:`${wi(a.totalCount,a.deltaCount)}
373
+ `;return t}async function Wm(e,t){let n="";for(let r of t){if(r.status==="U"){n+=`0 0 ${r.path}
374
+ `;continue}let o=r.oldHash?await oe(e,r.oldHash):"",s=await ki(e,r),a=Te(o)||Te(s),i,c;if(a)i="-",c="-";else{let{ins:f,del:d}=ff(o,s);i=String(f),c=String(d)}if(r.status==="R"&&r.oldPath){let f=In(r.oldPath,r.path);n+=`${i} ${c} ${f}
375
+ `}else n+=`${i} ${c} ${r.path}
376
+ `}return n}async function qm(e,t){let n=await df(e,t);return zr(n)}async function Km(e,t){let n=await df(e,t);if(n.length===0)return"";let r=0,o=0,s=0;for(let i of n)i.isUnmerged||(s++,r+=i.insertions,o+=i.deletions);let a=ur(s,r,o);return a?`${a}
377
+ `:n.some(i=>i.isUnmerged)?` 0 files changed
378
+ `:""}async function ki(e,t){if(!t.newHash)return"";if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path),r=await Mr(e.fs,n);return Ei.decode(r)}return oe(e,t.newHash)}async function zm(e,t){if(!t.newHash)return new Uint8Array(0);if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path);return Mr(e.fs,n)}return yt(e,t.newHash)}function ff(e,t){let n=Wt(e),r=Wt(t),o=ft(n,r),s=0,a=0;for(let i of o)i.type==="insert"?s++:i.type==="delete"&&a++;return{ins:s,del:a}}async function df(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?In(r.oldPath,r.path):r.path,s=r.oldHash?await yt(e,r.oldHash):new Uint8Array(0),a=await zm(e,r);if(bn(s)||bn(a))n.push({path:o,sortKey:r.path,insertions:0,deletions:0,isBinary:!0,oldSize:s.byteLength,newSize:a.byteLength});else{let i=Ei.decode(s),c=Ei.decode(a),{ins:f,del:d}=ff(i,c);n.push({path:o,sortKey:r.path,insertions:f,deletions:d})}}return n}re();pn();de();je();le();function er(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 Vm(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 co(e,t){if(!Vm(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),a=s.length>0?t.length-s.length:t.length,i=t.slice(o.length,a);return r===-1?e.dst:e.dst.slice(0,r)+i+e.dst.slice(r+1)}function lf(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:H().describe("Fetch from all remotes"),prune:H().alias("p").describe("Remove stale remote-tracking refs"),tags:H().describe("Also fetch tags")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=n.remote||"origin",i;try{i=await wr(s,a,r.env)}catch(P){let I=P instanceof Error?P.message:"";if(I.startsWith("network"))return $(I);throw P}if(!i)return $(`'${a}' does not appear to be a git repository`);let{transport:c,config:f}=i,d=n.refspec,l;d&&d.length>0?l=d.map(er):l=[er(f.fetchRefspec)];let u=await t?.hooks?.preFetch?.({repo:s,remote:a,url:f.url,refspecs:l.map(P=>`${P.src}:${P.dst}`),prune:n.prune,tags:n.tags});if(Q(u))return{stdout:"",stderr:u.message??"",exitCode:1};let m=await c.advertiseRefs();if(m.length===0)return{stdout:"",stderr:"",exitCode:0};let p=(await pe(s)).map(P=>P.hash),g=await U(s,"HEAD");g&&p.push(g);let w=[],y=new Set,R=[];for(let P of m)if(P.name!=="HEAD")for(let I of l){let G=co(I,P.name);if(G!==null){R.push({remote:P,localRef:G,force:I.force}),y.has(P.hash)||(y.add(P.hash),w.push(P.hash));break}}if(n.tags)for(let P of m)P.name.startsWith("refs/tags/")&&(R.push({remote:P,localRef:P.name,force:!1}),y.has(P.hash)||(y.add(P.hash),w.push(P.hash)));let b=new Set(p),E=w.filter(P=>!b.has(P));E.length>0&&await c.fetch(E,p);let k=await zt(s,r.env),C=[];C.push(`From ${f.url}
379
+ `);for(let P of R){let I=await U(s,P.localRef);await Y(s,P.localRef,P.remote.hash),await Be(s,P.localRef,{oldHash:I??J,newHash:P.remote.hash,name:k.name,email:k.email,timestamp:k.timestamp,tz:k.tz,message:I?"fetch":"fetch: storing head"});let G=fo(P.remote.name),j=fo(P.localRef);if(I){if(I!==P.remote.hash){let z=V(I),A=V(P.remote.hash);C.push(` ${z}..${A} ${G} -> ${j}
380
+ `)}}else{let A=P.remote.name.startsWith("refs/tags/")?" * [new tag]":" * [new branch]";C.push(`${A} ${G} -> ${j}
381
+ `)}}if(!n.tags)for(let P of m){if(!P.name.startsWith("refs/tags/")||y.has(P.hash))continue;let I=await U(s,P.name),G=P.peeledHash??P.hash;!I&&b.has(G)&&(await Y(s,P.name,P.hash),await Be(s,P.name,{oldHash:J,newHash:P.hash,name:k.name,email:k.email,timestamp:k.timestamp,tz:k.tz,message:"fetch: storing head"}),C.push(` * [new tag] ${fo(P.name)} -> ${fo(P.name)}
382
+ `))}if(n.prune){let P=`refs/remotes/${a}`,I=await pe(s,P),G=new Set(m.filter(j=>j.name.startsWith("refs/heads/")).map(j=>j.name.slice(11)));for(let j of I){let z=j.name.slice(P.length+1);G.has(z)||(await fe(s,j.name),C.push(` - [deleted] (none) -> ${a}/${z}
383
+ `))}}let O=m.find(P=>P.name==="HEAD");if(O){let P=T(s.gitDir,"FETCH_HEAD"),I=m.find(j=>j.name.startsWith("refs/heads/")&&j.hash===O.hash),G=I?`branch '${I.name.slice(11)}' of`:"of";await r.fs.writeFile(P,`${O.hash} ${G} ${f.url}
384
+ `)}let x={stdout:"",stderr:C.join(""),exitCode:0};return await t?.hooks?.postFetch?.({repo:s,remote:a,url:f.url,refsUpdated:R.length}),x}})}function fo(e){return e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/tags/")?e.slice(10):e.startsWith("refs/remotes/")?e.slice(13):e}re();ke();ie();de();je();le();re();ke();ie();de();je();le();async function uf(e){let t=new Set,n=await X(e);n&&t.add(n);let r=await pe(e,"refs");for(let i of r)t.add(i.hash);let o=T(e.gitDir,"logs");await e.fs.exists(o)&&await mf(e,o,o,t);let s=await K(e);for(let i of s.entries)t.add(i.hash);for(let i of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let c=await U(e,i);c&&t.add(c)}let a=[];for(let i of t)await wn(e,i)&&a.push(i);return a}async function mf(e,t,n,r){let o=await e.fs.readdir(t);for(let s of o){let a=T(t,s),i=await e.fs.stat(a);if(i.isDirectory)await mf(e,a,n,r);else if(i.isFile){let c=a.slice(n.length+1),f=await Ve(e,c);for(let d of f)d.newHash!==J&&r.add(d.newHash)}}}ws();$r();de();async function Ym(e,t){let n=new Set,r=T(e.gitDir,"objects","pack");try{let s=await e.fs.readdir(r);for(let a of s){if(!a.endsWith(".idx"))continue;let i=await e.fs.readFileBuffer(T(r,a)),c=new Ft(i);for(let f of c.allHashes())n.add(f)}}catch{}return n.size===0?pr(await hr(e,t,[])):(await pr(await hr(e,t,[]))).filter(s=>!n.has(s.hash))}async function Ri(e){let{gitCtx:t,fs:n,tips:r,cleanup:o}=e,s=e.window??10,a=e.depth??50;if(r.length===0)return null;let i=e.all?await pr(await hr(t,r,[])):await Ym(t,r);if(i.length===0)return null;let c=i.length,f=to(i,{window:s,depth:a}),d=f.filter(k=>k.delta).length,l=f.map(k=>({hash:k.hash,type:k.type,content:k.content,delta:k.delta,deltaBaseHash:k.deltaBase})),{data:u,entries:m}=await gs(l),h=await ha(u,m),p=u.subarray(u.byteLength-20),g="";for(let k=0;k<20;k++){let C=p[k];g+=(C>>4).toString(16)+(C&15).toString(16)}let w=T(t.gitDir,"objects","pack");await n.mkdir(w,{recursive:!0});let y=`pack-${g}`,R=T(w,`${y}.pack`),b=T(w,`${y}.idx`);await n.writeFile(R,u),await n.writeFile(b,h);let E=new Set(f.map(k=>k.hash));if(t.objectStore.invalidatePacks?.(),o){let k=await n.readdir(w);for(let x of k){if(!x.endsWith(".idx"))continue;let P=x.slice(0,-4);if(P===y)continue;let I=T(w,`${P}.idx`),G=!0;try{let j=await n.readFileBuffer(I),z=new Ft(j);for(let A of z.allHashes())if(!E.has(A)){G=!1;break}}catch{G=!1}if(G){try{await n.rm(T(w,`${P}.pack`))}catch{}try{await n.rm(I)}catch{}}}let C=T(t.gitDir,"objects"),O;try{O=await n.readdir(C)}catch{O=[]}for(let x of O){if(x==="pack"||x==="info"||x.length!==2)continue;let P=T(C,x),I;try{I=await n.readdir(P)}catch{continue}for(let G of I){let j=`${x}${G}`;E.has(j)&&await n.rm(T(P,G))}try{(await n.readdir(P)).length===0&&await n.rm(P,{recursive:!0})}catch{}}}return{totalCount:c,deltaCount:d,packHash:g}}function xi(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(`
385
+ `)}function hf(e,t){e.command("repack",{description:"Pack unpacked objects in a repository",options:{all:H().alias("a").describe("Pack all objects, including already-packed"),delete:H().alias("d").describe("After packing, remove redundant packs and loose objects")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=await uf(s),i=await Ri({gitCtx:s,fs:r.fs,tips:a,cleanup:n.delete,all:n.all});return i?{stdout:"",stderr:`${xi(i.totalCount,i.deltaCount)}
386
386
  `,exitCode:0}:{stdout:`Nothing new to pack.
387
- `,stderr:"",exitCode:0}}})}function mf(e,t){e.command("gc",{description:"Cleanup unnecessary files and optimize the local repository",options:{aggressive:H().describe("More aggressively optimize the repository")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;await ha(s),await dt(s);let i=await Um(s);if(i.length>0){let a=n.aggressive?250:10,c=n.aggressive?250:50,f=await gi({gitCtx:s,fs:r.fs,tips:i,window:a,depth:c,cleanup:!0,all:!0});if(await Bm(s.gitDir,r.fs),f)return{stdout:"",stderr:`${wi(f.totalCount,f.deltaCount,!0)}
388
- `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}})}var Fm=2160*60*60;async function Um(e){let t=new Set,n=await X(e);n&&t.add(n);let r=await we(e,"refs");for(let f of r)t.add(f.hash);let s=Math.floor(Date.now()/1e3)-Fm,i=T(e.gitDir,"logs");await e.fs.exists(i)&&await hf(e,i,i,s,t);let a=await q(e);for(let f of a.entries)t.add(f.hash);for(let f of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let d=await N(e,f);d&&t.add(d)}let c=[];for(let f of t)await hn(e,f)&&c.push(f);return c}async function hf(e,t,n,r,o){let s=await e.fs.readdir(t);for(let i of s){let a=T(t,i),c=await e.fs.stat(a);if(c.isDirectory){await hf(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),d=await ze(e,f);if(f==="refs/stash"){for(let u of d)u.newHash!==J&&o.add(u.newHash);continue}let l=d.filter(u=>u.timestamp>=r);await bn(e,f,l);for(let u of l)u.newHash!==J&&o.add(u.newHash)}}}async function Bm(e,t){let n=T(e,"objects"),r;try{r=await t.readdir(n)}catch{return}for(let o of r)if(!(o==="pack"||o==="info"||o.length!==2))try{await t.rm(T(n,o),{recursive:!0})}catch{}}ue();wn();function pf(e){e.command("init",{description:"Initialize a new repository",args:[B.string().name("directory").describe("The directory to initialize").optional()],options:{bare:H().describe("Create a bare repository"),initialBranch:Q.string().alias("b").describe("Name for the initial branch")},examples:["git init","git init --bare","git init my-project"],handler:async(t,n)=>{let r=t.initialBranch,o=t.directory?xt(n.cwd,t.directory):n.cwd;t.directory&&await n.fs.mkdir(o,{recursive:!0});let{ctx:s,reinit:i}=await hs(n.fs,o,{bare:t.bare,...r?{initialBranch:r}:{}}),a="";i&&r&&(a=`warning: re-init: ignored --initial-branch=${r}
389
- `);let c=t.bare?"bare ":"";return{stdout:`${i?"Reinitialized existing":"Initialized empty"} ${c}Git repository in ${s.gitDir}/
390
- `,stderr:a,exitCode:0}}})}ne();Wn();ne();function gf(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+=Xm(c.timestamp,c.timezone),s+=3;continue;case"i":o+=Zm(c.timestamp,c.timezone),s+=3;continue;case"d":o+=St(c.timestamp,c.timezone),s+=3;continue;case"D":o+=Jm(c.timestamp,c.timezone),s+=3;continue}}switch(i){case"H":o+=n,s+=2;continue;case"h":o+=z(n),s+=2;continue;case"T":o+=r.tree,s+=2;continue;case"t":o+=z(r.tree),s+=2;continue;case"P":o+=r.parents.join(" "),s+=2;continue;case"p":o+=r.parents.map(z).join(" "),s+=2;continue;case"s":o+=bi(r.message),s+=2;continue;case"b":o+=Wm(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+=`
391
- `,s+=2;continue;case"%":o+="%",s+=2;continue;default:o+=`%${i}`,s+=2;continue}}o+=e[s],s++}return o}var bi=ie;function Wm(e){let t=e.indexOf(`
392
-
393
- `);return t===-1?"":e.slice(t+2).replace(/\n$/,"")}function wf(e){return e.startsWith("format:")?{formatStr:e.slice(7),preset:null}:e.startsWith("tformat:")?{formatStr:e.slice(8),preset:null}:["oneline","short","medium","full","fuller"].includes(e)?{formatStr:null,preset:e}:{formatStr:e,preset:null}}function bf(e,t,n,r=!1){let{hash:o,commit:s}=t,i=t.decorations?t.decorations(o):"";switch(e){case"oneline":{let a=r?z(o):o,c=bi(s.message);return i?`${a} ${i} ${c}`:`${a} ${c}`}case"short":{let a=[];return n||a.push(""),a.push(i?`commit ${o} ${i}`:`commit ${o}`),s.parents.length>=2&&a.push(`Merge: ${s.parents.map(z).join(" ")}`),a.push(`Author: ${s.author.name} <${s.author.email}>`),a.push(""),a.push(` ${bi(s.message)}`),a.join(`
394
- `)}case"full":{let a=[];n||a.push(""),a.push(i?`commit ${o} ${i}`:`commit ${o}`),s.parents.length>=2&&a.push(`Merge: ${s.parents.map(z).join(" ")}`),a.push(`Author: ${s.author.name} <${s.author.email}>`),a.push(`Commit: ${s.committer.name} <${s.committer.email}>`),a.push("");let c=s.message.replace(/\n$/,"");for(let f of c.split(`
395
- `))a.push(` ${f}`);return a.join(`
396
- `)}case"fuller":{let a=[];n||a.push(""),a.push(i?`commit ${o} ${i}`:`commit ${o}`),s.parents.length>=2&&a.push(`Merge: ${s.parents.map(z).join(" ")}`),a.push(`Author: ${s.author.name} <${s.author.email}>`),a.push(`AuthorDate: ${St(s.author.timestamp,s.author.timezone)}`),a.push(`Commit: ${s.committer.name} <${s.committer.email}>`),a.push(`CommitDate: ${St(s.committer.timestamp,s.committer.timezone)}`),a.push("");let c=s.message.replace(/\n$/,"");for(let f of c.split(`
397
- `))a.push(` ${f}`);return a.join(`
398
- `)}default:return qm(t,n)}}function qm(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(z).join(" ")}`),s.push(`Author: ${r.author.name} <${r.author.email}>`),s.push(`Date: ${St(r.author.timestamp,r.author.timezone)}`),s.push("");let i=r.message.replace(/\n$/,"");for(let a of i.split(`
399
- `))s.push(` ${a}`);return s.join(`
400
- `)}var Km=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],zm=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Vm(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 yi(e,t){let n=Vm(t);return new Date((e+n*60)*1e3)}function Ym(e){return`${e.slice(0,3)}:${e.slice(3)}`}function Xm(e,t){let n=yi(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}T${i}:${a}:${c}${Ym(t)}`}function Zm(e,t){let n=yi(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 Jm(e,t){let n=yi(e,t),r=Km[n.getUTCDay()]?.slice(0,3),o=zm[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}`}oe();me();nn();Te();function xf(e,t){e.command("log",{description:"Show commit logs",transformArgs:n=>n.map(r=>/^-(\d+)$/.test(r)?`-n${r.slice(1)}`:r),args:[B.string().name("revisions").variadic().optional()],options:{maxCount:Q.number().alias("n").describe("Limit the number of commits to output"),oneline:H().describe("Condense each commit to a single line"),all:H().describe("Walk all refs, not just HEAD"),author:Q.string().describe("Filter by author (regex or substring)"),grep:Q.string().describe("Filter by commit message (regex or substring)"),since:Q.string().describe("Show commits after date"),after:Q.string().describe("Synonym for --since"),until:Q.string().describe("Show commits before date"),before:Q.string().describe("Synonym for --until"),decorate:H().describe("Show ref names next to commit hashes"),reverse:H().describe("Output commits in reverse order"),format:Q.string().describe("Pretty-print format string"),pretty:Q.string().describe("Pretty-print format or preset name"),patch:H().alias("p").describe("Show diff in patch format"),stat:H().describe("Show diffstat summary"),nameStatus:H().describe("Show names and status of changed files"),nameOnly:H().describe("Show only names of changed files"),shortstat:H().describe("Show only the shortstat summary line"),numstat:H().describe("Machine-readable insertions/deletions per file")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a,c,f=n.revisions,d=f&&f.length===1?eo(f[0]):null;if(d){let F=async le=>{let je=await Be(i,le);if(!je)return Lt(le);try{return await _e(i,je)}catch{return Lt(le)}},D=await F(d.left);if(typeof D=="object"&&"exitCode"in D)return D;let K=await F(d.right);if(typeof K=="object"&&"exitCode"in K)return K;let ae=D,ee=K;if(d.type==="two-dot")a=[ee],c=[ae];else{a=[ae,ee];let le=await Dt(i,ae,ee);c=le.length>0?le:void 0}if(n.all){let le=await we(i);for(let Jt of le)try{let De=await _e(i,Jt.hash);a.includes(De)||a.push(De)}catch{}let je=await X(i);je&&!a.includes(je)&&a.push(je)}}else if(n.all){let F=await we(i),D=new Set;for(let ae of F)try{D.add(await _e(i,ae.hash))}catch{}let K=await X(i);K&&D.add(K),a=[...D]}else if(f&&f.length>0){let F=[];for(let D of f){let K=await Be(i,D);if(!K)return Lt(D);try{F.push(await _e(i,K))}catch{return Lt(D)}}a=F}else{let F=await Ke(i);if(S(F))return F;a=[F]}if(a.length===0)return I("your current branch does not have any commits yet");let l=o.passthrough.length>0?o.passthrough.map(F=>Le(F,"")):null,u=n.author?yf(n.author):null,m=n.grep?yf(n.grep):null,h=n.since??n.after,p=n.until??n.before,g=h?ti(h):null,w=p?ti(p):null,k=n.format??n.pretty,b=null,E=null,x=!1;if(n.oneline)E="oneline",x=!0;else if(k!==void 0){let F=wf(k);b=F.formatStr,E=F.preset}let P=n.patch?"patch":n.stat?"stat":n.nameStatus?"name-status":n.nameOnly?"name-only":n.shortstat?"shortstat":n.numstat?"numstat":null,R=n.decorate||b!=null&&(b.includes("%d")||b.includes("%D"))?await th(i):null,y=R?F=>Ef(R,F):void 0,$=R?F=>{let D=Ef(R,F);return D.startsWith("(")&&D.endsWith(")")?D.slice(1,-1):D}:void 0,A=n.maxCount,L=n.reverse,G=l?eh(i,a,l,c?await Qm(i,c):void 0):Tt(i,a,{exclude:c}),V=[];for await(let F of G){if(A!==void 0&&V.length>=A)break;let{commit:D}=F;if(!(w!==null&&D.committer.timestamp>w)&&!(g!==null&&D.committer.timestamp<=g)){if(u){let K=`${D.author.name} <${D.author.email}>`;if(!u(K))continue}m&&!m(D.message)||V.push(F)}}let j=L?V.reverse():V;if(b!==null){let F=[];for(let D of j){let K={hash:D.hash,commit:D.commit,decorations:y,decorationsRaw:$},ae=gf(b,K),ee=await kf(i,D.commit,P);ee&&(ae+=`
401
-
402
- ${ee.replace(/\n$/,"")}`),F.push(ae)}return{stdout:F.length>0?`${F.join(`
403
- `)}
404
- `:"",stderr:"",exitCode:0}}let O=E??"medium",v=O==="oneline",W=[];for(let F=0;F<j.length;F++){let D=j[F],K={hash:D.hash,commit:D.commit,decorations:y,decorationsRaw:$},ae=bf(O,K,F===0,x),ee=await kf(i,D.commit,P);ee&&(ae+=`${v?`
387
+ `,stderr:"",exitCode:0}}})}function pf(e,t){e.command("gc",{description:"Cleanup unnecessary files and optimize the local repository",options:{aggressive:H().describe("More aggressively optimize the repository")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o;await ka(s),await mt(s);let a=await Zm(s);if(a.length>0){let i=n.aggressive?250:10,c=n.aggressive?250:50,f=await Ri({gitCtx:s,fs:r.fs,tips:a,window:i,depth:c,cleanup:!0,all:!0});if(await Jm(s.gitDir,r.fs),f)return{stdout:"",stderr:`${xi(f.totalCount,f.deltaCount,!0)}
388
+ `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}})}var Xm=2160*60*60;async function Zm(e){let t=new Set,n=await X(e);n&&t.add(n);let r=await pe(e,"refs");for(let f of r)t.add(f.hash);let s=Math.floor(Date.now()/1e3)-Xm,a=T(e.gitDir,"logs");await e.fs.exists(a)&&await gf(e,a,a,s,t);let i=await K(e);for(let f of i.entries)t.add(f.hash);for(let f of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let d=await U(e,f);d&&t.add(d)}let c=[];for(let f of t)await wn(e,f)&&c.push(f);return c}async function gf(e,t,n,r,o){let s=await e.fs.readdir(t);for(let a of s){let i=T(t,a),c=await e.fs.stat(i);if(c.isDirectory){await gf(e,i,n,r,o);try{(await e.fs.readdir(i)).length===0&&await e.fs.rm(i,{recursive:!0})}catch{}}else if(c.isFile){let f=i.slice(n.length+1),d=await Ve(e,f);if(f==="refs/stash"){for(let u of d)u.newHash!==J&&o.add(u.newHash);continue}let l=d.filter(u=>u.timestamp>=r);await Rn(e,f,l);for(let u of l)u.newHash!==J&&o.add(u.newHash)}}}async function Jm(e,t){let n=T(e,"objects"),r;try{r=await t.readdir(n)}catch{return}for(let o of r)if(!(o==="pack"||o==="info"||o.length!==2))try{await t.rm(T(n,o),{recursive:!0})}catch{}}de();kn();function wf(e){e.command("init",{description:"Initialize a new repository",args:[q.string().name("directory").describe("The directory to initialize").optional()],options:{bare:H().describe("Create a bare repository"),initialBranch:ee.string().alias("b").describe("Name for the initial branch")},examples:["git init","git init --bare","git init my-project"],handler:async(t,n)=>{let r=t.initialBranch,o=t.directory?Pt(n.cwd,t.directory):n.cwd;t.directory&&await n.fs.mkdir(o,{recursive:!0});let{ctx:s,reinit:a}=await ys(n.fs,o,{bare:t.bare,...r?{initialBranch:r}:{}}),i="";a&&r&&(i=`warning: re-init: ignored --initial-branch=${r}
389
+ `);let c=t.bare?"bare ":"";return{stdout:`${a?"Reinitialized existing":"Initialized empty"} ${c}Git repository in ${s.gitDir}/
390
+ `,stderr:i,exitCode:0}}})}re();zn();re();function bf(e,t){let{hash:n,commit:r}=t,o="",s=0;for(;s<e.length;){if(e[s]==="%"){let a=e[s+1];if(a===void 0){o+="%",s++;continue}if((a==="a"||a==="c")&&s+2<e.length){let i=e[s+2],c=a==="a"?r.author:r.committer;switch(i){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+=oh(c.timestamp,c.timezone),s+=3;continue;case"i":o+=ih(c.timestamp,c.timezone),s+=3;continue;case"d":o+=jt(c.timestamp,c.timezone),s+=3;continue;case"D":o+=ah(c.timestamp,c.timezone),s+=3;continue}}switch(a){case"H":o+=n,s+=2;continue;case"h":o+=V(n),s+=2;continue;case"T":o+=r.tree,s+=2;continue;case"t":o+=V(r.tree),s+=2;continue;case"P":o+=r.parents.join(" "),s+=2;continue;case"p":o+=r.parents.map(V).join(" "),s+=2;continue;case"s":o+=Ci(r.message),s+=2;continue;case"b":o+=Qm(r.message),s+=2;continue;case"B":o+=r.message.replace(/\n$/,""),s+=2;continue;case"d":if(t.decorations){let i=t.decorations(n);o+=i?` ${i}`:""}s+=2;continue;case"D":t.decorationsRaw&&(o+=t.decorationsRaw(n)),s+=2;continue;case"n":o+=`
391
+ `,s+=2;continue;case"%":o+="%",s+=2;continue;default:o+=`%${a}`,s+=2;continue}}o+=e[s],s++}return o}var Ci=ae;function Qm(e){let t=e.indexOf(`
392
+
393
+ `);return t===-1?"":e.slice(t+2).replace(/\n$/,"")}function yf(e){return e.startsWith("format:")?{formatStr:e.slice(7),preset:null}:e.startsWith("tformat:")?{formatStr:e.slice(8),preset:null}:["oneline","short","medium","full","fuller"].includes(e)?{formatStr:null,preset:e}:{formatStr:e,preset:null}}function Ef(e,t,n,r=!1){let{hash:o,commit:s}=t,a=t.decorations?t.decorations(o):"";switch(e){case"oneline":{let i=r?V(o):o,c=Ci(s.message);return a?`${i} ${a} ${c}`:`${i} ${c}`}case"short":{let i=[];return n||i.push(""),i.push(a?`commit ${o} ${a}`:`commit ${o}`),s.parents.length>=2&&i.push(`Merge: ${s.parents.map(V).join(" ")}`),i.push(`Author: ${s.author.name} <${s.author.email}>`),i.push(""),i.push(` ${Ci(s.message)}`),i.join(`
394
+ `)}case"full":{let i=[];n||i.push(""),i.push(a?`commit ${o} ${a}`:`commit ${o}`),s.parents.length>=2&&i.push(`Merge: ${s.parents.map(V).join(" ")}`),i.push(`Author: ${s.author.name} <${s.author.email}>`),i.push(`Commit: ${s.committer.name} <${s.committer.email}>`),i.push("");let c=s.message.replace(/\n$/,"");for(let f of c.split(`
395
+ `))i.push(` ${f}`);return i.join(`
396
+ `)}case"fuller":{let i=[];n||i.push(""),i.push(a?`commit ${o} ${a}`:`commit ${o}`),s.parents.length>=2&&i.push(`Merge: ${s.parents.map(V).join(" ")}`),i.push(`Author: ${s.author.name} <${s.author.email}>`),i.push(`AuthorDate: ${jt(s.author.timestamp,s.author.timezone)}`),i.push(`Commit: ${s.committer.name} <${s.committer.email}>`),i.push(`CommitDate: ${jt(s.committer.timestamp,s.committer.timezone)}`),i.push("");let c=s.message.replace(/\n$/,"");for(let f of c.split(`
397
+ `))i.push(` ${f}`);return i.join(`
398
+ `)}default:return eh(t,n)}}function eh(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(V).join(" ")}`),s.push(`Author: ${r.author.name} <${r.author.email}>`),s.push(`Date: ${jt(r.author.timestamp,r.author.timezone)}`),s.push("");let a=r.message.replace(/\n$/,"");for(let i of a.split(`
399
+ `))s.push(` ${i}`);return s.join(`
400
+ `)}var th=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],nh=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function rh(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 Pi(e,t){let n=rh(t);return new Date((e+n*60)*1e3)}function sh(e){return`${e.slice(0,3)}:${e.slice(3)}`}function oh(e,t){let n=Pi(e,t),r=n.getUTCFullYear(),o=String(n.getUTCMonth()+1).padStart(2,"0"),s=String(n.getUTCDate()).padStart(2,"0"),a=String(n.getUTCHours()).padStart(2,"0"),i=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0");return`${r}-${o}-${s}T${a}:${i}:${c}${sh(t)}`}function ih(e,t){let n=Pi(e,t),r=n.getUTCFullYear(),o=String(n.getUTCMonth()+1).padStart(2,"0"),s=String(n.getUTCDate()).padStart(2,"0"),a=String(n.getUTCHours()).padStart(2,"0"),i=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0");return`${r}-${o}-${s} ${a}:${i}:${c} ${t}`}function ah(e,t){let n=Pi(e,t),r=th[n.getUTCDay()]?.slice(0,3),o=nh[n.getUTCMonth()],s=n.getUTCDate(),a=String(n.getUTCHours()).padStart(2,"0"),i=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0"),f=n.getUTCFullYear();return`${r}, ${s} ${o} ${f} ${a}:${i}:${c} ${t}`}ie();le();an();He();function Cf(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:ee.number().alias("n").describe("Limit the number of commits to output"),oneline:H().describe("Condense each commit to a single line"),all:H().describe("Walk all refs, not just HEAD"),author:ee.string().describe("Filter by author (regex or substring)"),grep:ee.string().describe("Filter by commit message (regex or substring)"),since:ee.string().describe("Show commits after date"),after:ee.string().describe("Synonym for --since"),until:ee.string().describe("Show commits before date"),before:ee.string().describe("Synonym for --until"),decorate:H().describe("Show ref names next to commit hashes"),reverse:H().describe("Output commits in reverse order"),format:ee.string().describe("Pretty-print format string"),pretty:ee.string().describe("Pretty-print format or preset name"),patch:H().alias("p").describe("Show diff in patch format"),stat:H().describe("Show diffstat summary"),nameStatus:H().describe("Show names and status of changed files"),nameOnly:H().describe("Show only names of changed files"),shortstat:H().describe("Show only the shortstat summary line"),numstat:H().describe("Machine-readable insertions/deletions per file")},handler:async(n,r,o)=>{let s=await B(r.fs,r.cwd,t);if(v(s))return s;let a=s,i,c,f=n.revisions,d=f&&f.length===1?io(f[0]):null;if(d){let F=async Le=>{let st=await We(a,Le);if(!st)return Ut(Le);try{return await _e(a,st)}catch{return Ut(Le)}},D=await F(d.left);if(typeof D=="object"&&"exitCode"in D)return D;let W=await F(d.right);if(typeof W=="object"&&"exitCode"in W)return W;let te=D,$e=W;if(d.type==="two-dot")i=[$e],c=[te];else{i=[te,$e];let Le=await Gt(a,te,$e);c=Le.length>0?Le:void 0}if(n.all){let Le=await pe(a);for(let xe of Le)try{let Me=await _e(a,xe.hash);i.includes(Me)||i.push(Me)}catch{}let st=await X(a);st&&!i.includes(st)&&i.push(st)}}else if(n.all){let F=await pe(a),D=new Set;for(let te of F)try{D.add(await _e(a,te.hash))}catch{}let W=await X(a);W&&D.add(W),i=[...D]}else if(f&&f.length>0){let F=[];for(let D of f){let W=await We(a,D);if(!W)return Ut(D);try{F.push(await _e(a,W))}catch{return Ut(D)}}i=F}else{let F=await ze(a);if(v(F))return F;i=[F]}if(i.length===0)return $("your current branch does not have any commits yet");let l=o.passthrough.length>0?o.passthrough.map(F=>Ge(F,"")):null,u=n.author?kf(n.author):null,m=n.grep?kf(n.grep):null,h=n.since??n.after,p=n.until??n.before,g=h?ai(h):null,w=p?ai(p):null,y=n.format??n.pretty,R=null,b=null,E=!1;if(n.oneline)b="oneline",E=!0;else if(y!==void 0){let F=yf(y);R=F.formatStr,b=F.preset}let k=n.patch?"patch":n.stat?"stat":n.nameStatus?"name-status":n.nameOnly?"name-only":n.shortstat?"shortstat":n.numstat?"numstat":null,O=n.decorate||R!=null&&(R.includes("%d")||R.includes("%D"))?await dh(a):null,x=O?F=>Rf(O,F):void 0,P=O?F=>{let D=Rf(O,F);return D.startsWith("(")&&D.endsWith(")")?D.slice(1,-1):D}:void 0,I=n.maxCount,G=n.reverse,j=l?fh(a,i,l,c?await ch(a,c):void 0):vt(a,i,{exclude:c}),z=[];for await(let F of j){if(I!==void 0&&z.length>=I)break;let{commit:D}=F;if(!(w!==null&&D.committer.timestamp>w)&&!(g!==null&&D.committer.timestamp<=g)){if(u){let W=`${D.author.name} <${D.author.email}>`;if(!u(W))continue}m&&!m(D.message)||z.push(F)}}let A=G?z.reverse():z;if(R!==null){let F=[];for(let D of A){let W={hash:D.hash,commit:D.commit,decorations:x,decorationsRaw:P},te=bf(R,W),$e=await xf(a,D.commit,k);$e&&(te+=`
401
+
402
+ ${$e.replace(/\n$/,"")}`),F.push(te)}return{stdout:F.length>0?`${F.join(`
403
+ `)}
404
+ `:"",stderr:"",exitCode:0}}let S=b??"medium",L=S==="oneline",_=[];for(let F=0;F<A.length;F++){let D=A[F],W={hash:D.hash,commit:D.commit,decorations:x,decorationsRaw:P},te=Ef(S,W,F===0,E),$e=await xf(a,D.commit,k);$e&&(te+=`${L?`
405
405
  `:`
406
406
 
407
- `}${ee.replace(/\n$/,"")}`),W.push(ae)}return{stdout:W.length>0?`${W.join(`
408
- `)}
409
- `:"",stderr:"",exitCode:0}}})}async function Qm(e,t){let n=new Set;for await(let r of Tt(e,t))n.add(r.hash);return n}function yf(e){try{let t=new RegExp(e);return n=>t.test(n)}catch{return t=>t.includes(e)}}async function*eh(e,t,n,r){let o=new Set(r),s=new Bn,i=async a=>{if(!o.has(a)){let c=await M(e,a);s.push({hash:a,commit:c})}};for(let a of t)await i(a);for(;s.size>0;){let a=s.pop();if(o.has(a.hash))continue;o.add(a.hash);let{commit:c}=a,f=c.parents;if(f.length===0){(await Ne(e,null,c.tree)).some(u=>ye(n,u.path))&&(yield a);continue}if(f.length===1){let l=f[0];if(l){let u=await M(e,l);(await Ne(e,u.tree,c.tree)).some(h=>ye(n,h.path))&&(yield a),await i(l)}continue}let d=[];for(let l of f){let u=await M(e,l);(await Ne(e,u.tree,c.tree)).some(h=>ye(n,h.path))||d.push(l)}if(d.length>0&&d[0])await i(d[0]);else{yield a;for(let l of f)await i(l)}}}async function th(e){let t=await Z(e),n=t?.type==="symbolic"?be(t.target):null,r=await X(e),o=new Map,s=(f,d,l)=>{let u=o.get(f);u||(u=[],o.set(f,u)),u.push({label:d,fullRef:l})},i=await we(e,"refs/heads");for(let f of i)s(f.hash,be(f.name),f.name);let a=await we(e,"refs/remotes");for(let f of a)s(f.hash,f.name.replace("refs/remotes/",""),f.name);let c=await we(e,"refs/tags");for(let f of c){let d=f.hash;try{d=await _e(e,f.hash)}catch{}s(d,`tag: ${f.name.replace("refs/tags/","")}`,f.name)}return{headTarget:n,headHash:r,byHash:o}}function Ef(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 kf(e,t,n){if(!n||t.parents.length>=2)return"";let r=t.parents.length===1?(await M(e,t.parents[0])).tree:null,o=await Ne(e,r,t.tree),{remaining:s,renames:i}=await Qe(e,o);switch(n){case"name-only":return nh(s,i);case"name-status":return rh(s,i);case"stat":return sh(e,s,i);case"shortstat":return oh(e,s,i);case"numstat":return ih(e,s,i);case"patch":return ah(e,s,i)}}function nh(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}
410
- `).join("")}function rh(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}
411
- `).join("")}async function sh(e,t,n){let{fileStats:r}=await Lr(e,t,n);return r.sort((o,s)=>o.sortKey<s.sortKey?-1:o.sortKey>s.sortKey?1:0),_r(r)}async function oh(e,t,n){let{fileStats:r}=await Lr(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=fr(r.length,o,s);return i?`${i}
412
- `:""}async function ih(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:Cn(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 se(e,s.oldHash):"",a=s.newHash?await se(e,s.newHash):"";if(Oe(i)||Oe(a))o+=`- - ${s.display}
413
- `;else{let c=Nt(i),f=Nt(a),d=it(c,f),l=0,u=0;for(let m of d)m.type==="insert"?l++:m.type==="delete"&&u++;o+=`${l} ${u} ${s.display}
414
- `}}return o}async function ah(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 se(e,i.oldHash):"",c=i.newHash?await se(e,i.newHash):"";o+=yt({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 se(e,i.oldHash):"",c=i.newHash?await se(e,i.newHash):"";o+=yt({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}ne();xe();ue();Gn();Je();function Pf(e,t){e.command("ls-files",{description:"Show information about files in the index and the working tree",options:{cached:H().alias("c").describe("Show cached files (default)"),modified:H().alias("m").describe("Show modified files"),deleted:H().alias("d").describe("Show deleted files"),others:H().alias("o").describe("Show other (untracked) files"),unmerged:H().alias("u").describe("Show unmerged files"),stage:H().alias("s").describe("Show staged contents' mode, hash, and stage number"),"exclude-standard":H().describe("Add standard git exclusions (.gitignore, info/exclude, core.excludesFile)"),"nul-terminate":H().alias("z").describe("Use \\0 as line terminator instead of \\n"),"show-tags":H().alias("t").describe("Show status tags")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=qe(i);if(a)return a;let c=i.workTree,f=n.cached,d=n.modified,l=n.deleted,u=n.others,m=n.unmerged,h=n.stage,p=n["exclude-standard"],g=n["nul-terminate"],w=n["show-tags"];f||d||l||u||m||(f=!0);let b=await q(i),E=g?"\0":`
415
- `,x=o.passthrough.length>0?o.passthrough.map(R=>{let y=r.cwd!==c?ch(c,r.cwd):"";return Le(R,y)}):null,P=[];if(f)for(let R of b.entries){if(x&&!ye(x,R.path))continue;let y=w?R.stage>0?"M":"H":null;P.push(Cf(R,h,y))}if(m&&!f)for(let R of b.entries)R.stage!==0&&(x&&!ye(x,R.path)||P.push(Cf(R,!0,w?"M":null)));if(d||l){let R=await fh(i,c,b);for(let{path:y,status:$}of R){if($==="modified"&&!d||$==="deleted"&&!l||x&&!ye(x,y))continue;let A=w?$==="deleted"?"R":"C":null;P.push(A?`${A} ${y}`:y)}}if(u){let R=await dh(i,c,b,p);for(let y of R)x&&!ye(x,y)||P.push(w?`? ${y}`:y)}return{stdout:P.length>0?P.join(E)+E:"",stderr:"",exitCode:0}}})}function Cf(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 ch(e,t){return t===e?"":t.startsWith(`${e}/`)?t.slice(e.length+1):""}async function fh(e,t,n){let r=[];for(let o of n.entries){if(o.stage!==0)continue;let s=T(t,o.path);if(!await e.fs.exists(s)){r.push({path:o.path,status:"deleted"});continue}let a=await ot(e.fs,s);if(!a.isFile&&!a.isSymbolicLink)continue;await yn(e.fs,s)!==o.hash&&r.push({path:o.path,status:"modified"})}return r}async function dh(e,t,n,r){let o=new Set(n.entries.map(i=>i.path));return(await Ze(e,t,"",{skipIgnore:!r})).filter(i=>!o.has(i))}ne();Wn();xe();oe();Ge();me();nn();Te();function Rf(e,t){e.command("merge",{description:"Join two or more development histories together",args:[B.string().name("branch").describe("Branch to merge into the current branch").optional()],options:{abort:H().describe("Abort the current in-progress merge"),continue:H().describe("Continue the merge after conflict resolution"),noFf:H().describe("Create a merge commit even when fast-forward is possible"),ffOnly:H().describe("Refuse to merge unless fast-forward is possible"),squash:H().describe("Apply merge result to worktree/index without creating a merge commit"),edit:H().describe("Edit the merge message (no-op, accepted for compatibility)"),message:Q.string().alias("m").describe("Merge commit message")},transformArgs:n=>n.filter(r=>r!=="--ff"),handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(n.abort)return ph(s,r.env);if(n.continue)return hh(s,r.env,t);let i=n.branch;if(!i)return I("you must specify a branch to merge");let a=await Ke(s);if(S(a))return a;let c=await q(s),f=on(c,"Merging");if(f)return f;if(await N(s,"MERGE_HEAD"))return I(`You have not concluded your merge (MERGE_HEAD exists).
416
- Please, commit your changes before you merge.`);if(await N(s,"CHERRY_PICK_HEAD"))return I(`You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
417
- Please, commit your changes before you merge.`);let u=await Be(s,i);if(!u)return _(`merge: ${i} - not something we can merge
418
- `);let m=await _e(s,u),h=await Dt(s,a,m),p=h[0]??null;if(h.length===0)return I("refusing to merge unrelated histories");if(p===m)return await he(s,"MERGE_MSG"),{stdout:`Already up to date.${n.squash?" (nothing to squash)":""}
419
- `,stderr:"",exitCode:0};if(n.noFf&&n.ffOnly)return I("--no-ff and --ff-only are incompatible");let g=p===a&&!n.noFf;if(n.ffOnly&&!g)return _(`hint: Diverging branches can't be fast-forwarded, you need to either:
407
+ `}${$e.replace(/\n$/,"")}`),_.push(te)}return{stdout:_.length>0?`${_.join(`
408
+ `)}
409
+ `:"",stderr:"",exitCode:0}}})}async function ch(e,t){let n=new Set;for await(let r of vt(e,t))n.add(r.hash);return n}function kf(e){try{let t=new RegExp(e);return n=>t.test(n)}catch{return t=>t.includes(e)}}async function*fh(e,t,n,r){let o=new Set(r),s=new Kn,a=async i=>{if(!o.has(i)){let c=await M(e,i);s.push({hash:i,commit:c})}};for(let i of t)await a(i);for(;s.size>0;){let i=s.pop();if(o.has(i.hash))continue;o.add(i.hash);let{commit:c}=i,f=c.parents;if(f.length===0){(await Ne(e,null,c.tree)).some(u=>be(n,u.path))&&(yield i);continue}if(f.length===1){let l=f[0];if(l){let u=await M(e,l);(await Ne(e,u.tree,c.tree)).some(h=>be(n,h.path))&&(yield i),await a(l)}continue}let d=[];for(let l of f){let u=await M(e,l);(await Ne(e,u.tree,c.tree)).some(h=>be(n,h.path))||d.push(l)}if(d.length>0&&d[0])await a(d[0]);else{yield i;for(let l of f)await a(l)}}}async function dh(e){let t=await Z(e),n=t?.type==="symbolic"?we(t.target):null,r=await X(e),o=new Map,s=(f,d,l)=>{let u=o.get(f);u||(u=[],o.set(f,u)),u.push({label:d,fullRef:l})},a=await pe(e,"refs/heads");for(let f of a)s(f.hash,we(f.name),f.name);let i=await pe(e,"refs/remotes");for(let f of i)s(f.hash,f.name.replace("refs/remotes/",""),f.name);let c=await pe(e,"refs/tags");for(let f of c){let d=f.hash;try{d=await _e(e,f.hash)}catch{}s(d,`tag: ${f.name.replace("refs/tags/","")}`,f.name)}return{headTarget:n,headHash:r,byHash:o}}function Rf(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(i=>i.label===e.headTarget):null;s?o.push(`HEAD -> ${s.label}`):r&&o.push("HEAD");let a=n?n.filter(i=>i!==s):[];a.sort((i,c)=>i.fullRef>c.fullRef?-1:i.fullRef<c.fullRef?1:0);for(let i of a)o.push(i.label);return o.length>0?`(${o.join(", ")})`:""}async function xf(e,t,n){if(!n||t.parents.length>=2)return"";let r=t.parents.length===1?(await M(e,t.parents[0])).tree:null,o=await Ne(e,r,t.tree),{remaining:s,renames:a}=await tt(e,o);switch(n){case"name-only":return lh(s,a);case"name-status":return uh(s,a);case"stat":return mh(e,s,a);case"shortstat":return hh(e,s,a);case"numstat":return ph(e,s,a);case"patch":return gh(e,s,a)}}function lh(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}
410
+ `).join("")}function uh(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}
411
+ `).join("")}async function mh(e,t,n){let{fileStats:r}=await Kr(e,t,n);return r.sort((o,s)=>o.sortKey<s.sortKey?-1:o.sortKey>s.sortKey?1:0),zr(r)}async function hh(e,t,n){let{fileStats:r}=await Kr(e,t,n),o=0,s=0;for(let i of r)o+=i.insertions,s+=i.deletions;let a=ur(r.length,o,s);return a?`${a}
412
+ `:""}async function ph(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:In(s.oldPath,s.newPath)});r.sort((s,a)=>s.key<a.key?-1:s.key>a.key?1:0);let o="";for(let s of r){let a=s.oldHash?await oe(e,s.oldHash):"",i=s.newHash?await oe(e,s.newHash):"";if(Te(a)||Te(i))o+=`- - ${s.display}
413
+ `;else{let c=Wt(a),f=Wt(i),d=ft(c,f),l=0,u=0;for(let m of d)m.type==="insert"?l++:m.type==="delete"&&u++;o+=`${l} ${u} ${s.display}
414
+ `}}return o}async function gh(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,a)=>{let i=s.type==="diff"?s.entry.path:s.entry.newPath,c=a.type==="diff"?a.entry.path:a.entry.newPath;return i<c?-1:i>c?1:0});let o="";for(let s of r)if(s.type==="rename"){let a=s.entry,i=a.oldHash?await oe(e,a.oldHash):"",c=a.newHash?await oe(e,a.newHash):"";o+=Rt({path:a.oldPath,oldContent:i,newContent:c,oldMode:a.oldMode,newMode:a.newMode,oldHash:a.oldHash,newHash:a.newHash,renameTo:a.newPath,similarity:a.similarity})}else{let a=s.entry,i=a.oldHash?await oe(e,a.oldHash):"",c=a.newHash?await oe(e,a.newHash):"";o+=Rt({path:a.path,oldContent:i,newContent:c,oldMode:a.oldMode,newMode:a.newMode,oldHash:a.oldHash,newHash:a.newHash,isNew:a.status==="added",isDeleted:a.status==="deleted"})}return o}re();ke();de();Nn();et();function Of(e,t){e.command("ls-files",{description:"Show information about files in the index and the working tree",options:{cached:H().alias("c").describe("Show cached files (default)"),modified:H().alias("m").describe("Show modified files"),deleted:H().alias("d").describe("Show deleted files"),others:H().alias("o").describe("Show other (untracked) files"),unmerged:H().alias("u").describe("Show unmerged files"),stage:H().alias("s").describe("Show staged contents' mode, hash, and stage number"),"exclude-standard":H().describe("Add standard git exclusions (.gitignore, info/exclude, core.excludesFile)"),"nul-terminate":H().alias("z").describe("Use \\0 as line terminator instead of \\n"),"show-tags":H().alias("t").describe("Show status tags")},handler:async(n,r,o)=>{let s=await B(r.fs,r.cwd,t);if(v(s))return s;let a=s,i=Ke(a);if(i)return i;let c=a.workTree,f=n.cached,d=n.modified,l=n.deleted,u=n.others,m=n.unmerged,h=n.stage,p=n["exclude-standard"],g=n["nul-terminate"],w=n["show-tags"];f||d||l||u||m||(f=!0);let R=await K(a),b=g?"\0":`
415
+ `,E=o.passthrough.length>0?o.passthrough.map(O=>{let x=r.cwd!==c?wh(c,r.cwd):"";return Ge(O,x)}):null,k=[];if(f)for(let O of R.entries){if(E&&!be(E,O.path))continue;let x=w?O.stage>0?"M":"H":null;k.push(Pf(O,h,x))}if(m&&!f)for(let O of R.entries)O.stage!==0&&(E&&!be(E,O.path)||k.push(Pf(O,!0,w?"M":null)));if(d||l){let O=await bh(a,c,R);for(let{path:x,status:P}of O){if(P==="modified"&&!d||P==="deleted"&&!l||E&&!be(E,x))continue;let I=w?P==="deleted"?"R":"C":null;k.push(I?`${I} ${x}`:x)}}if(u){let O=await yh(a,c,R,p);for(let x of O)E&&!be(E,x)||k.push(w?`? ${x}`:x)}return{stdout:k.length>0?k.join(b)+b:"",stderr:"",exitCode:0}}})}function Pf(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 wh(e,t){return t===e?"":t.startsWith(`${e}/`)?t.slice(e.length+1):""}async function bh(e,t,n){let r=[];for(let o of n.entries){if(o.stage!==0)continue;let s=T(t,o.path);if(!await e.fs.exists(s)){r.push({path:o.path,status:"deleted"});continue}let i=await ct(e.fs,s);if(!i.isFile&&!i.isSymbolicLink)continue;await xn(e.fs,s)!==o.hash&&r.push({path:o.path,status:"modified"})}return r}async function yh(e,t,n,r){let o=new Set(n.entries.map(a=>a.path));return(await Qe(e,t,"",{skipIgnore:!r})).filter(a=>!o.has(a))}re();zn();ke();ie();je();le();an();He();function If(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:H().describe("Abort the current in-progress merge"),continue:H().describe("Continue the merge after conflict resolution"),noFf:H().describe("Create a merge commit even when fast-forward is possible"),ffOnly:H().describe("Refuse to merge unless fast-forward is possible"),squash:H().describe("Apply merge result to worktree/index without creating a merge commit"),edit:H().describe("Edit the merge message (no-op, accepted for compatibility)"),message:ee.string().alias("m").describe("Merge commit message")},transformArgs:n=>n.filter(r=>r!=="--ff"),handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o;if(n.abort)return Ch(s,r.env);if(n.continue)return xh(s,r.env,t);let a=n.branch;if(!a)return $("you must specify a branch to merge");let i=await ze(s);if(v(i))return i;let c=await K(s),f=dn(c,"Merging");if(f)return f;if(await U(s,"MERGE_HEAD"))return $(`You have not concluded your merge (MERGE_HEAD exists).
416
+ Please, commit your changes before you merge.`);if(await U(s,"CHERRY_PICK_HEAD"))return $(`You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
417
+ Please, commit your changes before you merge.`);let u=await We(s,a);if(!u)return N(`merge: ${a} - not something we can merge
418
+ `);let m=await _e(s,u),h=await Gt(s,i,m),p=h[0]??null;if(h.length===0)return $("refusing to merge unrelated histories");if(p===m)return await me(s,"MERGE_MSG"),{stdout:`Already up to date.${n.squash?" (nothing to squash)":""}
419
+ `,stderr:"",exitCode:0};if(n.noFf&&n.ffOnly)return $("--no-ff and --ff-only are incompatible");let g=p===i&&!n.noFf;if(n.ffOnly&&!g)return N(`hint: Diverging branches can't be fast-forwarded, you need to either:
420
420
  hint:
421
421
  hint: git merge --no-ff
422
422
  hint:
@@ -426,67 +426,67 @@ hint: git rebase
426
426
  hint:
427
427
  hint: Disable this message with "git config set advice.diverging false"
428
428
  fatal: Not possible to fast-forward, aborting.
429
- `,128);if(await N(s,"REVERT_HEAD")&&await Ht(s),g&&!n.squash){let b=await Z(s),E=await Ks(s,a,m);if(E.exitCode===0&&n.message&&(E.stdout=E.stdout.replace(/^Fast-forward$/m,"Fast-forward (no commit created; -m option ignored)")),E.exitCode===0){await he(s,"MERGE_MSG");let x=b?.type==="symbolic"?b.target:"HEAD";await te(s,r.env,x,a,m,`merge ${i}: Fast-forward${n.message?" (no commit created; -m option ignored)":""}`,b?.type==="symbolic"),await t?.hooks?.emitPost("post-merge",{headHash:a,theirsHash:m,strategy:"fast-forward",commitHash:null})}return E}let w=n.message,k=w?w.endsWith(`
429
+ `,128);if(await U(s,"REVERT_HEAD")&&await At(s),g&&!n.squash){let R=await Z(s),b=await Zs(s,i,m);if(b.exitCode===0&&n.message&&(b.stdout=b.stdout.replace(/^Fast-forward$/m,"Fast-forward (no commit created; -m option ignored)")),b.exitCode===0){await me(s,"MERGE_MSG");let E=R?.type==="symbolic"?R.target:"HEAD";await ne(s,r.env,E,i,m,`merge ${a}: Fast-forward${n.message?" (no commit created; -m option ignored)":""}`,R?.type==="symbolic"),await t?.hooks?.postMerge?.({repo:s,headHash:i,theirsHash:m,strategy:"fast-forward",commitHash:null})}return b}let w=n.message,y=w?w.endsWith(`
430
430
  `)?w:`${w}
431
- `:void 0;return n.squash?mh(s,a,m,i,r.env,t,k):lh(s,a,m,i,r.env,n.noFf,t,k)}})}async function lh(e,t,n,r,o,s=!1,i,a){let c=await M(e,t),f=await Z(e),d=f?.type==="symbolic"?be(f.target):"HEAD",l={a:"HEAD",b:r},u=await Ur(e,t,n,l),m=await dn(e,u,c.tree,{labels:l,errorExitCode:2,operationName:"merge"});if(!m.ok)return await he(e,"MERGE_MSG"),m.failureKind==="staged"&&f?.type==="symbolic"&&await te(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`),m;if(u.conflicts.length>0){await Y(e,"MERGE_HEAD",n),await Y(e,"ORIG_HEAD",t);let P=a??await Vn(e,r,d);if(i?.hooks){let y={message:P,treeHash:m.mergedTreeHash,headHash:t,theirsHash:n},$=await i.hooks.emitPre("merge-msg",y);if($)return{stdout:"",stderr:$.message??"",exitCode:1};P=y.message}let C=Gt({version:2,entries:u.entries}).sort();return P+=`
431
+ `:void 0;return n.squash?Rh(s,i,m,a,r.env,t,y):Eh(s,i,m,a,r.env,n.noFf,t,y)}})}async function Eh(e,t,n,r,o,s=!1,a,i){let c=await M(e,t),f=await Z(e),d=f?.type==="symbolic"?we(f.target):"HEAD",l={a:"HEAD",b:r},u=await Xr(e,t,n,l),m=await hn(e,u,c.tree,{labels:l,errorExitCode:2,operationName:"merge"});if(!m.ok)return await me(e,"MERGE_MSG"),m.failureKind==="staged"&&f?.type==="symbolic"&&await ne(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`),m;if(u.conflicts.length>0){await Y(e,"MERGE_HEAD",n),await Y(e,"ORIG_HEAD",t);let x=i??await Zn(e,r,d),P={repo:e,message:x,treeHash:m.mergedTreeHash,headHash:t,theirsHash:n},I=await a?.hooks?.mergeMsg?.(P);if(Q(I))return{stdout:"",stderr:I.message??"",exitCode:1};x=P.message;let G=Nt({version:2,entries:u.entries}).sort();return x+=`
432
432
  # Conflicts:
433
- ${C.map(y=>`# ${y}`).join(`
433
+ ${G.map(z=>`# ${z}`).join(`
434
434
  `)}
435
- `,await $e(e,"MERGE_MSG",P),await $e(e,"MERGE_MODE",s?"no-ff":""),{stdout:`${[...u.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
435
+ `,await Oe(e,"MERGE_MSG",x),await Oe(e,"MERGE_MODE",s?"no-ff":""),{stdout:`${[...u.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
436
436
  `)}
437
- `,stderr:"",exitCode:1}}await he(e,"MERGE_MSG");let h=m.mergedTreeHash,p=await Yt(e,o);if(S(p))return p;let g=await Ve(e,o);if(S(g))return g;let w=a??await Vn(e,r,d);if(i?.hooks){let P={message:w,treeHash:h,headHash:t,theirsHash:n},C=await i.hooks.emitPre("merge-msg",P);if(C)return{stdout:"",stderr:C.message??"",exitCode:1};w=P.message}if(i?.hooks){let P=await i.hooks.emitPre("pre-merge-commit",{mergeMessage:w,treeHash:h,headHash:t,theirsHash:n});if(P)return{stdout:"",stderr:P.message??"",exitCode:1}}let k=await ft(e,h,[t,n],p,g,w),b=f?.type==="symbolic"?f.target:"HEAD";await te(e,o,b,t,k,`merge ${r}: Merge made by the 'ort' strategy.`,f?.type==="symbolic"),await i?.hooks?.emitPost("post-merge",{headHash:t,theirsHash:n,strategy:"three-way",commitHash:k});let E=await Tn(e,c.tree,h);return{stdout:`${u.messages.length>0?`${u.messages.join(`
437
+ `,stderr:"",exitCode:1}}await me(e,"MERGE_MSG");let h=m.mergedTreeHash,p=await Qt(e,o);if(v(p))return p;let g=await Ye(e,o);if(v(g))return g;let w=i??await Zn(e,r,d),y={repo:e,message:w,treeHash:h,headHash:t,theirsHash:n},R=await a?.hooks?.mergeMsg?.(y);if(Q(R))return{stdout:"",stderr:R.message??"",exitCode:1};w=y.message;let b=await a?.hooks?.preMergeCommit?.({repo:e,mergeMessage:w,treeHash:h,headHash:t,theirsHash:n});if(Q(b))return{stdout:"",stderr:b.message??"",exitCode:1};let E=await ut(e,h,[t,n],p,g,w),k=f?.type==="symbolic"?f.target:"HEAD";await ne(e,o,k,t,E,`merge ${r}: Merge made by the 'ort' strategy.`,f?.type==="symbolic"),await a?.hooks?.postMerge?.({repo:e,headHash:t,theirsHash:n,strategy:"three-way",commitHash:E});let C=await An(e,c.tree,h);return{stdout:`${u.messages.length>0?`${u.messages.join(`
438
438
  `)}
439
439
  `:""}Merge made by the 'ort' strategy.
440
- ${E}`,stderr:"",exitCode:0}}async function uh(e,t,n){let r=[];for await(let o of Tt(e,n,{exclude:[t]})){if(o.commit.parents.length>1)continue;r.push(`commit ${o.hash}`);let s=o.commit.author;r.push(`Author: ${s.name} <${s.email}>`),r.push(`Date: ${St(s.timestamp,s.timezone)}`),r.push("");for(let i of o.commit.message.replace(/\n+$/,"").split(`
441
- `))r.push(` ${i}`);r.push("")}return r.join(`
442
- `)}async function mh(e,t,n,r,o,s,i){let a=await M(e,t),c=await Z(e),f={a:"HEAD",b:r},d=await Dt(e,t,n),l=d.length>0&&d[0]===t,u=l?`Updating ${z(t)}..${z(n)}
443
- `:"",m=await Ur(e,t,n,f),h=await dn(e,m,a.tree,{labels:f,errorExitCode:l?1:2,operationName:"merge",skipStagedChangeCheck:l});if(!h.ok){await he(e,"MERGE_MSG"),!l&&h.failureKind==="staged"&&c?.type==="symbolic"&&await te(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`);let E=h;return u&&(E.stdout=u+E.stdout),E}let p;if(i?p=`Squashed commit of the following:
440
+ ${C}`,stderr:"",exitCode:0}}async function kh(e,t,n){let r=[];for await(let o of vt(e,n,{exclude:[t]})){if(o.commit.parents.length>1)continue;r.push(`commit ${o.hash}`);let s=o.commit.author;r.push(`Author: ${s.name} <${s.email}>`),r.push(`Date: ${jt(s.timestamp,s.timezone)}`),r.push("");for(let a of o.commit.message.replace(/\n+$/,"").split(`
441
+ `))r.push(` ${a}`);r.push("")}return r.join(`
442
+ `)}async function Rh(e,t,n,r,o,s,a){let i=await M(e,t),c=await Z(e),f={a:"HEAD",b:r},d=await Gt(e,t,n),l=d.length>0&&d[0]===t,u=l?`Updating ${V(t)}..${V(n)}
443
+ `:"",m=await Xr(e,t,n,f),h=await hn(e,m,i.tree,{labels:f,errorExitCode:l?1:2,operationName:"merge",skipStagedChangeCheck:l});if(!h.ok){await me(e,"MERGE_MSG"),!l&&h.failureKind==="staged"&&c?.type==="symbolic"&&await ne(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`);let b=h;return u&&(b.stdout=u+b.stdout),b}let p;if(a?p=`Squashed commit of the following:
444
444
 
445
- ${i}`:p=`Squashed commit of the following:
445
+ ${a}`:p=`Squashed commit of the following:
446
446
 
447
- ${await uh(e,t,n)}`,await $e(e,"SQUASH_MSG",p),m.conflicts.length>0){let x=`
447
+ ${await kh(e,t,n)}`,await Oe(e,"SQUASH_MSG",p),m.conflicts.length>0){let E=`
448
448
  # Conflicts:
449
- ${Gt({version:2,entries:m.entries}).sort().map(R=>`# ${R}`).join(`
449
+ ${Nt({version:2,entries:m.entries}).sort().map(O=>`# ${O}`).join(`
450
450
  `)}
451
- `,P=await Ee(e,"MERGE_MSG");return await $e(e,"MERGE_MSG",(P??"")+x),{stdout:`${[...m.messages,"Squash commit -- not updating HEAD","Automatic merge failed; fix conflicts and then commit the result."].join(`
451
+ `,k=await Ee(e,"MERGE_MSG");return await Oe(e,"MERGE_MSG",(k??"")+E),{stdout:`${[...m.messages,"Squash commit -- not updating HEAD","Automatic merge failed; fix conflicts and then commit the result."].join(`
452
452
  `)}
453
- `,stderr:"",exitCode:1}}let g=h.mergedTreeHash,w=await Tn(e,a.tree,g),k=m.messages.length>0?`${m.messages.join(`
453
+ `,stderr:"",exitCode:1}}let g=h.mergedTreeHash,w=await An(e,i.tree,g),y=m.messages.length>0?`${m.messages.join(`
454
454
  `)}
455
455
  `:"";return{stdout:`${l?`${u}Fast-forward
456
- `:""}${k}Squash commit -- not updating HEAD
456
+ `:""}${y}Squash commit -- not updating HEAD
457
457
  ${l?w:""}`,stderr:l?"":`Automatic merge went well; stopped before committing as requested
458
- `,exitCode:0}}async function hh(e,t,n){let r=await N(e,"MERGE_HEAD");if(!r)return I("There is no merge in progress (MERGE_HEAD missing).");let o=await q(e),s=on(o,"Committing");if(s)return s;let i=await Ke(e);if(S(i))return i;let a=await M(e,i),c=await Ee(e,"MERGE_MSG");if(c)c=Xt(c);else{let x=await Z(e),P=x?.type==="symbolic"?be(x.target):"HEAD";c=await Vn(e,"unknown",P)}let f=ve(o),d=await Se(e,f),l=await Yt(e,t);if(S(l))return l;let u=await Ve(e,t);if(S(u))return u;let m=Ot(c);if(n?.hooks){let x={message:m,treeHash:d,headHash:i,theirsHash:r},P=await n.hooks.emitPre("merge-msg",x);if(P)return{stdout:"",stderr:P.message??"",exitCode:1};m=x.message}if(n?.hooks){let x=await n.hooks.emitPre("pre-merge-commit",{mergeMessage:m,treeHash:d,headHash:i,theirsHash:r});if(x)return{stdout:"",stderr:x.message??"",exitCode:1}}let h=await ft(e,d,[i,r],l,u,m);await vr(e);let p=await Z(e),g=ie(m),w=p?.type==="symbolic"?p.target:"HEAD";await te(e,t,w,i,h,`commit (merge): ${g}`,p?.type==="symbolic"),await n?.hooks?.emitPost("post-merge",{headHash:i,theirsHash:r,strategy:"three-way",commitHash:h});let k=await Tn(e,a.tree,d),b=p?.type==="symbolic"?be(p.target):"detached HEAD";return{stdout:`${It(b,h,c)}
459
- ${k}`,stderr:"",exitCode:0}}async function ph(e,t){return xn(e,t,{operationRef:"MERGE_HEAD",noOpError:I("There is no merge to abort (MERGE_HEAD missing)."),operationName:"merge",clearState:vr})}ne();xe();ue();Je();function $f(e,t){e.command("mv",{description:"Move or rename a file, directory, or symlink",args:[B.string().name("sources").describe("Source file(s) or directory").optional().variadic()],options:{force:H().alias("f").describe("Force renaming even if target exists"),"dry-run":H().alias("n").describe("Do nothing; only show what would happen"),skip:H().alias("k").describe("Skip move/rename actions that would lead to errors")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=qe(s);if(i)return i;let a=s.workTree,c=n.sources;if(c.length<2)return _(`usage: git mv [<options>] <source>... <destination>
460
- `);let f=c[c.length-1],d=c.slice(0,-1),l=xt(r.cwd,f),u=st(a,l);if(u.startsWith(".."))return I(`'${f}' is outside repository at '${a}'`);let m=await q(s),h=await r.fs.exists(l),p=h&&(await r.fs.stat(l)).isDirectory;if(d.length>1&&!p)return I(h?`destination '${f}' is not a directory`:`destination directory '${f}' does not exist`);let g=[];for(let w of d){let k=xt(r.cwd,w),b=st(a,k);if(b.startsWith("..")){if(n.skip)continue;return I(`'${w}' is outside repository at '${a}'`)}if(!await r.fs.exists(k)){if(n.skip)continue;return I(`bad source, source=${b}, destination=${u}`)}let P=(await r.fs.stat(k)).isDirectory;if(!(P?m.entries.some(L=>L.path===b||L.path.startsWith(`${b}/`)):m.entries.some(L=>L.path===b&&L.stage===0))){let L=!P&&m.entries.some(G=>G.path===b&&G.stage>0);if(n.skip)continue;return I(L?`conflicted, source=${b}, destination=${u}`:`not under version control, source=${b}, destination=${u}`)}let R,y;if(p){let L=wr(b);R=u===""||u==="."?L:`${u}/${L}`,y=T(l,L)}else R=u,y=l;if(await r.fs.exists(y)&&!n.force)if((await r.fs.stat(y)).isDirectory){let G=wr(b);R=`${R}/${G}`,y=T(y,G)}else{if(n.skip)continue;return I(`destination exists, source=${b}, destination=${R}`)}if(b===R){if(n.skip)continue;return I(`can not move directory into itself, source=${b}, destination=${R}`)}let A=Ut(y);if(!await r.fs.exists(A)){if(n.skip)continue;return I(`renaming '${b}' failed: No such file or directory`)}if(P){let L=`${b}/`,G=m.entries.filter(V=>V.path.startsWith(L)&&V.stage===0);for(let V of G){let j=V.path.slice(b.length),O=R+j,v=y+j;g.push({srcRel:V.path,dstRel:O,srcAbs:T(a,V.path),dstAbs:v})}}else g.push({srcRel:b,dstRel:R,srcAbs:k,dstAbs:y})}if(g.length===0)return{stdout:"",stderr:"",exitCode:0};if(n["dry-run"])return{stdout:"",stderr:"",exitCode:0};for(let w of g){let k=Ut(w.dstAbs);await r.fs.exists(k)||await r.fs.mkdir(k,{recursive:!0});let b=await r.fs.readFileBuffer(w.srcAbs);await r.fs.writeFile(w.dstAbs,b),await r.fs.rm(w.srcAbs);let E=ss(m,w.srcRel,0);if(E){m=nt(m,w.srcRel);let x={...E,path:w.dstRel};m=ht(m,x)}}for(let w of g)await Nn(r.fs,Ut(w.srcAbs),a);return await re(s,m),{stdout:"",stderr:"",exitCode:0}}})}ne();Xe();ln();xe();oe();ue();at();Ge();me();function If(e,t){e.command("pull",{description:"Fetch from and integrate with another repository",args:[B.string().name("remote").describe("Remote to pull from").optional(),B.string().name("branch").describe("Remote branch").optional()],options:{rebase:H().alias("r").describe("Rebase instead of merge"),noRebase:H().describe("Merge instead of rebase"),ffOnly:H().describe("Only fast-forward"),noFf:H().describe("Create a merge commit even for fast-forwards")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=await Ke(s);if(S(i))return i;let a=await q(s);if(Pt(a))return _(`error: Pulling is not possible because you have unmerged files.
461
- `,128);let c=n.remote,f=n.branch;if(!c){let ce=await Z(s);if(ce?.type==="symbolic"){let Me=ce.target.startsWith("refs/heads/")?ce.target.slice(11):ce.target,Jn=(await pe(s))[`branch "${Me}"`];Jn&&(c=Jn.remote||"origin",!f&&Jn.merge&&(f=Jn.merge.startsWith("refs/heads/")?Jn.merge.slice(11):Jn.merge))}}c=c||"origin";let d;try{d=await ur(s,c,r.env)}catch(ce){let Me=ce instanceof Error?ce.message:"";if(Me.startsWith("network"))return I(Me);throw ce}if(!d)return I(`'${c}' does not appear to be a git repository`);let{transport:l,config:u}=d,m=f??null;if(t?.hooks){let ce=await t.hooks.emitPre("pre-pull",{remote:c,branch:m});if(ce)return{stdout:"",stderr:ce.message??"",exitCode:1}}let h=Zn(u.fetchRefspec),p=await l.advertiseRefs();if(p.length===0)return I("Couldn't find remote ref HEAD");let w=(await we(s)).map(ce=>ce.hash),k=await N(s,"HEAD");k&&w.push(k);let b=[],E=new Set,x=[];for(let ce of p){if(ce.name==="HEAD")continue;let Me=no(h,ce.name);Me!==null&&(x.push({remote:ce,localRef:Me}),E.has(ce.hash)||(E.add(ce.hash),b.push(ce.hash)))}let P=new Set(w),C=b.filter(ce=>!P.has(ce));C.length>0&&await l.fetch(C,w);let R=await Bt(s,r.env);for(let ce of x){let Me=await N(s,ce.localRef);await Y(s,ce.localRef,ce.remote.hash),await Ue(s,ce.localRef,{oldHash:Me??J,newHash:ce.remote.hash,name:R.name,email:R.email,timestamp:R.timestamp,tz:R.tz,message:Me?"pull":"pull: storing head"})}let y=null;if(f){let ce=p.find(Me=>Me.name===`refs/heads/${f}`);if(ce)y=ce.hash;else return I(`Couldn't find remote ref refs/heads/${f}`)}else{let ce=p.find(Me=>Me.name==="HEAD");ce&&(y=ce.hash)}if(y&&await r.fs.writeFile(T(s.gitDir,"FETCH_HEAD"),`${y} ${u.url}
462
- `),!y)return I("Could not determine remote HEAD");let $=y;if(i===$)return await t?.hooks?.emitPost("post-pull",{remote:c,branch:m,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
463
- `,stderr:"",exitCode:0};let A=await Dt(s,i,$),L=A[0]??null;if(A.length===0)return I("refusing to merge unrelated histories");if(L===$)return await t?.hooks?.emitPost("post-pull",{remote:c,branch:m,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
464
- `,stderr:"",exitCode:0};let G=L===i;if(n.ffOnly&&!G)return I("Not possible to fast-forward, aborting.");if(G&&!n.noFf){let ce=await Ks(s,i,$),Me=await Z(s),Sn=Me?.type==="symbolic"?Me.target:"HEAD";return await Ue(s,Sn,{oldHash:i,newHash:$,name:R.name,email:R.email,timestamp:R.timestamp,tz:R.tz,message:"pull: Fast-forward"}),Me?.type==="symbolic"&&await Ue(s,"HEAD",{oldHash:i,newHash:$,name:R.name,email:R.email,timestamp:R.timestamp,tz:R.tz,message:"pull: Fast-forward"}),ce.exitCode===0&&(await t?.hooks?.emitPost("post-merge",{headHash:i,theirsHash:$,strategy:"fast-forward",commitHash:null}),await t?.hooks?.emitPost("post-pull",{remote:c,branch:m,strategy:"fast-forward",commitHash:null})),ce}let V=await Z(s),j=V?.type==="symbolic"?be(V.target):"HEAD",O=f||c||"FETCH_HEAD",v={a:"HEAD",b:O},W=await Ur(s,i,$,v),F=await M(s,i),D=await dn(s,W,F.tree,{labels:v,errorExitCode:2,operationName:"merge"});if(!D.ok)return D;if(W.conflicts.length>0){await Y(s,"MERGE_HEAD",$),await Y(s,"ORIG_HEAD",i);let ce=await Vn(s,O,j),Me=Gt({version:2,entries:W.entries}).sort();return ce+=`
458
+ `,exitCode:0}}async function xh(e,t,n){let r=await U(e,"MERGE_HEAD");if(!r)return $("There is no merge in progress (MERGE_HEAD missing).");let o=await K(e),s=dn(o,"Committing");if(s)return s;let a=await ze(e);if(v(a))return a;let i=await M(e,a),c=await Ee(e,"MERGE_MSG");if(c)c=en(c);else{let O=await Z(e),x=O?.type==="symbolic"?we(O.target):"HEAD";c=await Zn(e,"unknown",x)}let f=Ae(o),d=await De(e,f),l=await Qt(e,t);if(v(l))return l;let u=await Ye(e,t);if(v(u))return u;let m=St(c),h={repo:e,message:m,treeHash:d,headHash:a,theirsHash:r},p=await n?.hooks?.mergeMsg?.(h);if(Q(p))return{stdout:"",stderr:p.message??"",exitCode:1};m=h.message;let g=await n?.hooks?.preMergeCommit?.({repo:e,mergeMessage:m,treeHash:d,headHash:a,theirsHash:r});if(Q(g))return{stdout:"",stderr:g.message??"",exitCode:1};let w=await ut(e,d,[a,r],l,u,m);await Nr(e);let y=await Z(e),R=ae(m),b=y?.type==="symbolic"?y.target:"HEAD";await ne(e,t,b,a,w,`commit (merge): ${R}`,y?.type==="symbolic"),await n?.hooks?.postMerge?.({repo:e,headHash:a,theirsHash:r,strategy:"three-way",commitHash:w});let E=await An(e,i.tree,d),k=y?.type==="symbolic"?we(y.target):"detached HEAD";return{stdout:`${Ht(k,w,c)}
459
+ ${E}`,stderr:"",exitCode:0}}async function Ch(e,t){return On(e,t,{operationRef:"MERGE_HEAD",noOpError:$("There is no merge to abort (MERGE_HEAD missing)."),operationName:"merge",clearState:Nr})}re();ke();de();et();function $f(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:H().alias("f").describe("Force renaming even if target exists"),"dry-run":H().alias("n").describe("Do nothing; only show what would happen"),skip:H().alias("k").describe("Skip move/rename actions that would lead to errors")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=Ke(s);if(a)return a;let i=s.workTree,c=n.sources;if(c.length<2)return N(`usage: git mv [<options>] <source>... <destination>
460
+ `);let f=c[c.length-1],d=c.slice(0,-1),l=Pt(r.cwd,f),u=at(i,l);if(u.startsWith(".."))return $(`'${f}' is outside repository at '${i}'`);let m=await K(s),h=await r.fs.exists(l),p=h&&(await r.fs.stat(l)).isDirectory;if(d.length>1&&!p)return $(h?`destination '${f}' is not a directory`:`destination directory '${f}' does not exist`);let g=[];for(let w of d){let y=Pt(r.cwd,w),R=at(i,y);if(R.startsWith("..")){if(n.skip)continue;return $(`'${w}' is outside repository at '${i}'`)}if(!await r.fs.exists(y)){if(n.skip)continue;return $(`bad source, source=${R}, destination=${u}`)}let k=(await r.fs.stat(y)).isDirectory;if(!(k?m.entries.some(G=>G.path===R||G.path.startsWith(`${R}/`)):m.entries.some(G=>G.path===R&&G.stage===0))){let G=!k&&m.entries.some(j=>j.path===R&&j.stage>0);if(n.skip)continue;return $(G?`conflicted, source=${R}, destination=${u}`:`not under version control, source=${R}, destination=${u}`)}let O,x;if(p){let G=xr(R);O=u===""||u==="."?G:`${u}/${G}`,x=T(l,G)}else O=u,x=l;if(await r.fs.exists(x)&&!n.force)if((await r.fs.stat(x)).isDirectory){let j=xr(R);O=`${O}/${j}`,x=T(x,j)}else{if(n.skip)continue;return $(`destination exists, source=${R}, destination=${O}`)}if(R===O){if(n.skip)continue;return $(`can not move directory into itself, source=${R}, destination=${O}`)}let I=Kt(x);if(!await r.fs.exists(I)){if(n.skip)continue;return $(`renaming '${R}' failed: No such file or directory`)}if(k){let G=`${R}/`,j=m.entries.filter(z=>z.path.startsWith(G)&&z.stage===0);for(let z of j){let A=z.path.slice(R.length),S=O+A,L=x+A;g.push({srcRel:z.path,dstRel:S,srcAbs:T(i,z.path),dstAbs:L})}}else g.push({srcRel:R,dstRel:O,srcAbs:y,dstAbs:x})}if(g.length===0)return{stdout:"",stderr:"",exitCode:0};if(n["dry-run"])return{stdout:"",stderr:"",exitCode:0};for(let w of g){let y=Kt(w.dstAbs);await r.fs.exists(y)||await r.fs.mkdir(y,{recursive:!0});let R=await r.fs.readFileBuffer(w.srcAbs);await r.fs.writeFile(w.dstAbs,R),await r.fs.rm(w.srcAbs);let b=us(m,w.srcRel,0);if(b){m=ot(m,w.srcRel);let E={...b,path:w.dstRel};m=wt(m,E)}}for(let w of g)await Bn(r.fs,Kt(w.srcAbs),i);return await se(s,m),{stdout:"",stderr:"",exitCode:0}}})}re();Je();pn();ke();ie();de();dt();je();le();function Tf(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:H().alias("r").describe("Rebase instead of merge"),noRebase:H().describe("Merge instead of rebase"),ffOnly:H().describe("Only fast-forward"),noFf:H().describe("Create a merge commit even for fast-forwards")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=await ze(s);if(v(a))return a;let i=await K(s);if(It(i))return N(`error: Pulling is not possible because you have unmerged files.
461
+ `,128);let c=n.remote,f=n.branch;if(!c){let ue=await Z(s);if(ue?.type==="symbolic"){let Fe=ue.target.startsWith("refs/heads/")?ue.target.slice(11):ue.target,nr=(await he(s))[`branch "${Fe}"`];nr&&(c=nr.remote||"origin",!f&&nr.merge&&(f=nr.merge.startsWith("refs/heads/")?nr.merge.slice(11):nr.merge))}}c=c||"origin";let d;try{d=await wr(s,c,r.env)}catch(ue){let Fe=ue instanceof Error?ue.message:"";if(Fe.startsWith("network"))return $(Fe);throw ue}if(!d)return $(`'${c}' does not appear to be a git repository`);let{transport:l,config:u}=d,m=f??null,h=await t?.hooks?.prePull?.({repo:s,remote:c,branch:m});if(Q(h))return{stdout:"",stderr:h.message??"",exitCode:1};let p=er(u.fetchRefspec),g=await l.advertiseRefs();if(g.length===0)return $("Couldn't find remote ref HEAD");let y=(await pe(s)).map(ue=>ue.hash),R=await U(s,"HEAD");R&&y.push(R);let b=[],E=new Set,k=[];for(let ue of g){if(ue.name==="HEAD")continue;let Fe=co(p,ue.name);Fe!==null&&(k.push({remote:ue,localRef:Fe}),E.has(ue.hash)||(E.add(ue.hash),b.push(ue.hash)))}let C=new Set(y),O=b.filter(ue=>!C.has(ue));O.length>0&&await l.fetch(O,y);let x=await zt(s,r.env);for(let ue of k){let Fe=await U(s,ue.localRef);await Y(s,ue.localRef,ue.remote.hash),await Be(s,ue.localRef,{oldHash:Fe??J,newHash:ue.remote.hash,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:Fe?"pull":"pull: storing head"})}let P=null;if(f){let ue=g.find(Fe=>Fe.name===`refs/heads/${f}`);if(ue)P=ue.hash;else return $(`Couldn't find remote ref refs/heads/${f}`)}else{let ue=g.find(Fe=>Fe.name==="HEAD");ue&&(P=ue.hash)}if(P&&await r.fs.writeFile(T(s.gitDir,"FETCH_HEAD"),`${P} ${u.url}
462
+ `),!P)return $("Could not determine remote HEAD");let I=P;if(a===I)return await t?.hooks?.postPull?.({repo:s,remote:c,branch:m,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
463
+ `,stderr:"",exitCode:0};let G=await Gt(s,a,I),j=G[0]??null;if(G.length===0)return $("refusing to merge unrelated histories");if(j===I)return await t?.hooks?.postPull?.({repo:s,remote:c,branch:m,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
464
+ `,stderr:"",exitCode:0};let z=j===a;if(n.ffOnly&&!z)return $("Not possible to fast-forward, aborting.");if(z&&!n.noFf){let ue=await Zs(s,a,I),Fe=await Z(s),ss=Fe?.type==="symbolic"?Fe.target:"HEAD";return await Be(s,ss,{oldHash:a,newHash:I,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:"pull: Fast-forward"}),Fe?.type==="symbolic"&&await Be(s,"HEAD",{oldHash:a,newHash:I,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:"pull: Fast-forward"}),ue.exitCode===0&&(await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:I,strategy:"fast-forward",commitHash:null}),await t?.hooks?.postPull?.({repo:s,remote:c,branch:m,strategy:"fast-forward",commitHash:null})),ue}let A=await Z(s),S=A?.type==="symbolic"?we(A.target):"HEAD",L=f||c||"FETCH_HEAD",_={a:"HEAD",b:L},F=await Xr(s,a,I,_),D=await M(s,a),W=await hn(s,F,D.tree,{labels:_,errorExitCode:2,operationName:"merge"});if(!W.ok)return W;if(F.conflicts.length>0){await Y(s,"MERGE_HEAD",I),await Y(s,"ORIG_HEAD",a);let ue=await Zn(s,L,S),Fe=Nt({version:2,entries:F.entries}).sort();return ue+=`
465
465
  # Conflicts:
466
- ${Me.map(Sn=>`# ${Sn}`).join(`
466
+ ${Fe.map(ss=>`# ${ss}`).join(`
467
467
  `)}
468
- `,await $e(s,"MERGE_MSG",ce),{stdout:`${[...W.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
468
+ `,await Oe(s,"MERGE_MSG",ue),{stdout:`${[...F.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
469
469
  `)}
470
- `,stderr:"",exitCode:1}}let K=D.mergedTreeHash,ae=await Yt(s,r.env);if(S(ae))return ae;let ee=await Ve(s,r.env);if(S(ee))return ee;let le=await Vn(s,O,j);if(t?.hooks){let ce={message:le,treeHash:K,headHash:i,theirsHash:$},Me=await t.hooks.emitPre("merge-msg",ce);if(Me)return{stdout:"",stderr:Me.message??"",exitCode:1};le=ce.message;let Sn=await t.hooks.emitPre("pre-merge-commit",{mergeMessage:le,treeHash:K,headHash:i,theirsHash:$});if(Sn)return{stdout:"",stderr:Sn.message??"",exitCode:1}}let je=await ft(s,K,[i,$],ae,ee,le);await t?.hooks?.emitPost("post-merge",{headHash:i,theirsHash:$,strategy:"three-way",commitHash:je}),await t?.hooks?.emitPost("post-pull",{remote:c,branch:m,strategy:"three-way",commitHash:je});let Jt=V?.type==="symbolic"?V.target:"HEAD",De="pull: Merge made by the 'ort' strategy.";await Ue(s,Jt,{oldHash:i,newHash:je,name:R.name,email:R.email,timestamp:R.timestamp,tz:R.tz,message:De}),V?.type==="symbolic"&&await Ue(s,"HEAD",{oldHash:i,newHash:je,name:R.name,email:R.email,timestamp:R.timestamp,tz:R.tz,message:De});let Xr=await Tn(s,F.tree,K);return{stdout:`${W.messages.length>0?`${W.messages.join(`
470
+ `,stderr:"",exitCode:1}}let te=W.mergedTreeHash,$e=await Qt(s,r.env);if(v($e))return $e;let Le=await Ye(s,r.env);if(v(Le))return Le;let st=await Zn(s,L,S),xe={repo:s,message:st,treeHash:te,headHash:a,theirsHash:I},Me=await t?.hooks?.mergeMsg?.(xe);if(Q(Me))return{stdout:"",stderr:Me.message??"",exitCode:1};st=xe.message;let nn=await t?.hooks?.preMergeCommit?.({repo:s,mergeMessage:st,treeHash:te,headHash:a,theirsHash:I});if(Q(nn))return{stdout:"",stderr:nn.message??"",exitCode:1};let tr=await ut(s,te,[a,I],$e,Le,st);await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:I,strategy:"three-way",commitHash:tr}),await t?.hooks?.postPull?.({repo:s,remote:c,branch:m,strategy:"three-way",commitHash:tr});let Xe=A?.type==="symbolic"?A.target:"HEAD",Er="pull: Merge made by the 'ort' strategy.";await Be(s,Xe,{oldHash:a,newHash:tr,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:Er}),A?.type==="symbolic"&&await Be(s,"HEAD",{oldHash:a,newHash:tr,name:x.name,email:x.email,timestamp:x.timestamp,tz:x.tz,message:Er});let ji=await An(s,D.tree,te);return{stdout:`${F.messages.length>0?`${F.messages.join(`
471
471
  `)}
472
472
  `:""}Merge made by the 'ort' strategy.
473
- ${Xr}`,stderr:"",exitCode:0}}})}ne();Xe();at();me();function Of(e,t){e.command("push",{description:"Update remote refs along with associated objects",args:[B.string().name("remote").describe("Remote to push to").optional(),B.string().name("refspec").describe("Refspec(s) to push").optional().variadic()],options:{force:H().alias("f").describe("Force push"),"set-upstream":H().alias("u").describe("Set upstream tracking reference"),all:H().describe("Push all branches"),delete:H().alias("d").describe("Delete remote refs"),tags:H().describe("Push all tags")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=n.remote||"origin",a;try{a=await ur(s,i,r.env)}catch(b){let E=b instanceof Error?b.message:"";if(E.startsWith("network"))return I(E);throw b}if(!a)return I(`'${i}' does not appear to be a git repository`);let{transport:c,config:f}=a,d=n.force,l=await c.advertiseRefs(),u=new Map;for(let b of l)u.set(b.name,b.hash);let m=[],h=n.refspec;if(n.delete){let b=h&&h.length>0?h:[];if(b.length===0)return I("--delete requires a ref argument");for(let E of b){let x=E.startsWith("refs/")?E:`refs/heads/${E}`,P=u.get(x)??null;if(!P)return _(`error: unable to delete '${E}': remote ref does not exist
474
- `);m.push({name:x,oldHash:P,newHash:J,ok:d})}}else if(n.all){let b=await we(s,"refs/heads");for(let E of b){let x=E.name,P=u.get(x)??null;m.push({name:x,oldHash:P,newHash:E.hash,ok:d})}}else if(n.tags){let b=await we(s,"refs/tags");for(let E of b){let x=u.get(E.name)??null;x!==E.hash&&m.push({name:E.name,oldHash:x,newHash:E.hash,ok:d})}}else if(h&&h.length>0)for(let b of h){let E=Zn(b),x=await gh(s,E.src);if(!x)return _(`error: src refspec '${E.src}' does not match any
475
- `);let P=E.dst.startsWith("refs/")?E.dst:`refs/heads/${E.dst}`,C=u.get(P)??null;m.push({name:P,oldHash:C,newHash:x,ok:d||E.force})}else{let b=await Z(s);if(!b||b.type!=="symbolic")return I("You are not currently on a branch.");let E=b.target,x=await X(s);if(!x)return _(`error: src refspec does not match any
476
- `);let P=u.get(E)??null;m.push({name:E,oldHash:P,newHash:x,ok:d})}if(m.length===0)return{stdout:`Everything up-to-date
477
- `,stderr:"",exitCode:0};if(t?.hooks){let b=await t.hooks.emitPre("pre-push",{remote:i,url:f.url,refs:m.map(E=>({srcRef:E.newHash===J?null:E.name,srcHash:E.newHash===J?null:E.newHash,dstRef:E.name,dstHash:E.oldHash,force:!!E.ok,delete:E.newHash===J}))});if(b)return _(b.message??"")}let p=await c.push(m),g=[];g.push(`To ${f.url}
478
- `);let w=!1;for(let b of p.updates){let E=b.name.startsWith("refs/heads/")?b.name.slice(11):b.name;if(!b.ok)g.push(` ! [rejected] ${E} -> ${E} (${b.error??"failed"})
479
- `),w=!0;else if(!b.oldHash)g.push(` * [new branch] ${E} -> ${E}
480
- `);else if(b.newHash===J)g.push(` - [deleted] ${E}
481
- `);else{let x=z(b.oldHash),P=z(b.newHash);g.push(` ${x}..${P} ${E} -> ${E}
482
- `)}}if(n["set-upstream"]&&!w){let b=await Z(s);if(b?.type==="symbolic"){let E=b.target.startsWith("refs/heads/")?b.target.slice(11):b.target,x=await pe(s);x[`branch "${E}"`]={remote:i,merge:`refs/heads/${E}`},await Ye(s,x),g.push(`branch '${E}' set up to track '${i}/${E}'.
483
- `)}}let k={stdout:"",stderr:g.join(""),exitCode:w?1:0};return w||await t?.hooks?.emitPost("post-push",{remote:i,url:f.url,refs:m.map(b=>({srcRef:b.newHash===J?null:b.name,srcHash:b.newHash===J?null:b.newHash,dstRef:b.name,dstHash:b.oldHash,force:!!b.ok,delete:b.newHash===J}))}),k}})}async function gh(e,t){if(t.startsWith("refs/"))return N(e,t);let n=await N(e,`refs/heads/${t}`);if(n)return n;let r=await N(e,`refs/tags/${t}`);return r||(t==="HEAD"?X(e):null)}ne();xe();oe();ne();oe();en();Dn();Te();async function Ei(e,t){let n=await ge(e,t);if(n.type!=="commit")return null;let r=Wt(n.content),o=null;if(r.parents.length>0&&r.parents[0]){let f=await ge(e,r.parents[0]);f.type==="commit"&&(o=Wt(f.content).tree)}let s=await Ne(e,o,r.tree);if(s.length===0)return null;let i=mn(),a=!1,c=[...s].sort((f,d)=>Ce(f.path,d.path));for(let f of c){let d="",l="";if(f.oldHash)try{let m=await ge(e,f.oldHash);d=new TextDecoder().decode(m.content)}catch{}if(f.newHash)try{let m=await ge(e,f.newHash);l=new TextDecoder().decode(m.content)}catch{}let u=yt({path:f.path,oldContent:d,newContent:l,oldMode:f.oldMode,newMode:f.newMode});if(u)for(let m of u.split(`
484
- `)){if(!m||m.startsWith("index "))continue;let p=(m.startsWith("@@")?m.replace(/^@@ [^@]* @@/,"@@ @@"):m).replace(/[ \t\r]/g,"");p&&(i.update(p),i.update(`
485
- `),a=!0)}}return a?i.hex():null}Ge();me();Te();Vt();Je();async function wh(e){let t=await Z(e);return t?.type==="symbolic"?be(t.target):"detached HEAD"}function Tf(e){return e==="HEAD"?`HEAD is up to date.
473
+ ${ji}`,stderr:"",exitCode:0}}})}re();Je();dt();le();function Hf(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:H().alias("f").describe("Force push"),"set-upstream":H().alias("u").describe("Set upstream tracking reference"),all:H().describe("Push all branches"),delete:H().alias("d").describe("Delete remote refs"),tags:H().describe("Push all tags")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=n.remote||"origin",i;try{i=await wr(s,a,r.env)}catch(b){let E=b instanceof Error?b.message:"";if(E.startsWith("network"))return $(E);throw b}if(!i)return $(`'${a}' does not appear to be a git repository`);let{transport:c,config:f}=i,d=n.force,l=await c.advertiseRefs(),u=new Map;for(let b of l)u.set(b.name,b.hash);let m=[],h=n.refspec;if(n.delete){let b=h&&h.length>0?h:[];if(b.length===0)return $("--delete requires a ref argument");for(let E of b){let k=E.startsWith("refs/")?E:`refs/heads/${E}`,C=u.get(k)??null;if(!C)return N(`error: unable to delete '${E}': remote ref does not exist
474
+ `);m.push({name:k,oldHash:C,newHash:J,ok:d})}}else if(n.all){let b=await pe(s,"refs/heads");for(let E of b){let k=E.name,C=u.get(k)??null;m.push({name:k,oldHash:C,newHash:E.hash,ok:d})}}else if(n.tags){let b=await pe(s,"refs/tags");for(let E of b){let k=u.get(E.name)??null;k!==E.hash&&m.push({name:E.name,oldHash:k,newHash:E.hash,ok:d})}}else if(h&&h.length>0)for(let b of h){let E=er(b),k=await Ph(s,E.src);if(!k)return N(`error: src refspec '${E.src}' does not match any
475
+ `);let C=E.dst.startsWith("refs/")?E.dst:`refs/heads/${E.dst}`,O=u.get(C)??null;m.push({name:C,oldHash:O,newHash:k,ok:d||E.force})}else{let b=await Z(s);if(!b||b.type!=="symbolic")return $("You are not currently on a branch.");let E=b.target,k=await X(s);if(!k)return N(`error: src refspec does not match any
476
+ `);let C=u.get(E)??null;m.push({name:E,oldHash:C,newHash:k,ok:d})}if(m.length===0)return{stdout:`Everything up-to-date
477
+ `,stderr:"",exitCode:0};let p=await t?.hooks?.prePush?.({repo:s,remote:a,url:f.url,refs:m.map(b=>({srcRef:b.newHash===J?null:b.name,srcHash:b.newHash===J?null:b.newHash,dstRef:b.name,dstHash:b.oldHash,force:!!b.ok,delete:b.newHash===J}))});if(Q(p))return N(p.message??"");let g=await c.push(m),w=[];w.push(`To ${f.url}
478
+ `);let y=!1;for(let b of g.updates){let E=b.name.startsWith("refs/heads/")?b.name.slice(11):b.name;if(!b.ok)w.push(` ! [rejected] ${E} -> ${E} (${b.error??"failed"})
479
+ `),y=!0;else if(!b.oldHash)w.push(` * [new branch] ${E} -> ${E}
480
+ `);else if(b.newHash===J)w.push(` - [deleted] ${E}
481
+ `);else{let k=V(b.oldHash),C=V(b.newHash);w.push(` ${k}..${C} ${E} -> ${E}
482
+ `)}}if(n["set-upstream"]&&!y){let b=await Z(s);if(b?.type==="symbolic"){let E=b.target.startsWith("refs/heads/")?b.target.slice(11):b.target,k=await he(s);k[`branch "${E}"`]={remote:a,merge:`refs/heads/${E}`},await Ze(s,k),w.push(`branch '${E}' set up to track '${a}/${E}'.
483
+ `)}}let R={stdout:"",stderr:w.join(""),exitCode:y?1:0};return y||await t?.hooks?.postPush?.({repo:s,remote:a,url:f.url,refs:m.map(b=>({srcRef:b.newHash===J?null:b.name,srcHash:b.newHash===J?null:b.newHash,dstRef:b.name,dstHash:b.oldHash,force:!!b.ok,delete:b.newHash===J}))}),R}})}async function Ph(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"?X(e):null)}re();ke();ie();re();ie();sn();Ln();He();async function Oi(e,t){let n=await ge(e,t);if(n.type!=="commit")return null;let r=Vt(n.content),o=null;if(r.parents.length>0&&r.parents[0]){let f=await ge(e,r.parents[0]);f.type==="commit"&&(o=Vt(f.content).tree)}let s=await Ne(e,o,r.tree);if(s.length===0)return null;let a=Gn(),i=!1,c=[...s].sort((f,d)=>Re(f.path,d.path));for(let f of c){let d="",l="";if(f.oldHash)try{let m=await ge(e,f.oldHash);d=new TextDecoder().decode(m.content)}catch{}if(f.newHash)try{let m=await ge(e,f.newHash);l=new TextDecoder().decode(m.content)}catch{}let u=Rt({path:f.path,oldContent:d,newContent:l,oldMode:f.oldMode,newMode:f.newMode});if(u)for(let m of u.split(`
484
+ `)){if(!m||m.startsWith("index "))continue;let p=(m.startsWith("@@")?m.replace(/^@@ [^@]* @@/,"@@ @@"):m).replace(/[ \t\r]/g,"");p&&(a.update(p),a.update(`
485
+ `),i=!0)}}return i?a.hex():null}je();le();He();Jt();et();async function Oh(e){let t=await Z(e);return t?.type==="symbolic"?we(t.target):"detached HEAD"}function Sf(e){return e==="HEAD"?`HEAD is up to date.
486
486
  `:`Current branch ${e} is up to date.
487
- `}async function bh(e,t,n){if(!e.workTree)return null;let r=await fe(e,t),o=new Map(ve(n).map(a=>[a.path,a])),s=new Set(await Ze(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=Cs(i,{errorExitCode:1,operationName:"checkout",actionHint:"switch branches"});return _(`${a.stderr}error: could not detach HEAD
488
- `)}return null}async function yh(e,t,n,r){if(!e.workTree)return null;let o=await fe(e,t),s=new Set(n.entries.map(c=>c.path)),i=new Set(await Ze(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:`${Cs(a,{errorExitCode:128,operationName:"reset",actionHint:"reset"}).stderr}fatal: could not move back to ${r}
489
- `,exitCode:128}:null}async function Hf(e,t,n){if(!e.workTree)return null;let r=new Map(ve(t).map(i=>[i.path,i])),o=new Set(await Ze(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 Af(e,t){return`error: The following untracked working tree files would be overwritten by merge:
487
+ `}async function Ih(e,t,n){if(!e.workTree)return null;let r=await ce(e,t),o=new Map(Ae(n).map(i=>[i.path,i])),s=new Set(await Qe(e,e.workTree,"")),a=[];for(let[i]of r)o.has(i)||s.has(i)&&a.push({path:i,error:"WOULD_LOSE_UNTRACKED_OVERWRITTEN"});if(a.length>0){let i=$s(a,{errorExitCode:1,operationName:"checkout",actionHint:"switch branches"});return N(`${i.stderr}error: could not detach HEAD
488
+ `)}return null}async function $h(e,t,n,r){if(!e.workTree)return null;let o=await ce(e,t),s=new Set(n.entries.map(c=>c.path)),a=new Set(await Qe(e,e.workTree,"")),i=[];for(let[c]of o)!s.has(c)&&a.has(c)&&i.push({path:c,error:"WOULD_LOSE_UNTRACKED_OVERWRITTEN"});return i.length>0?{stdout:"",stderr:`${$s(i,{errorExitCode:128,operationName:"reset",actionHint:"reset"}).stderr}fatal: could not move back to ${r}
489
+ `,exitCode:128}:null}async function vf(e,t,n){if(!e.workTree)return null;let r=new Map(Ae(t).map(a=>[a.path,a])),o=new Set(await Qe(e,e.workTree,"")),s=[];for(let[a]of n)!r.has(a)&&o.has(a)&&s.push(a);return s.length>0?s:null}function Af(e,t){return`error: The following untracked working tree files would be overwritten by merge:
490
490
  ${e.map(r=>` ${r}`).join(`
491
491
  `)}
492
492
  Please move or remove them before you merge.
@@ -500,7 +500,7 @@ hint: edit the todo list first:
500
500
  hint:
501
501
  hint: git rebase --edit-todo
502
502
  hint: git rebase --continue
503
- `}async function ki(e,t,n,r,o,s){await te(e,t,"HEAD",n,r,`rebase (start): checkout ${s}`),o!=="detached HEAD"&&(await te(e,t,o,n,r,`rebase (finish): ${o} onto ${r}`),await te(e,t,"HEAD",r,r,`rebase (finish): returning to ${o}`))}async function io(e,t,n,r){let o=await M(e,t),s=await bh(e,o.tree,n);if(s)return s;let i=await sn(e,o.tree,n);return i.success&&(await re(e,{version:2,entries:i.newEntries}),await He(e,i.worktreeOps)),r!=="detached HEAD"?await Y(e,r,t):await Y(e,"HEAD",t),null}function vf(e,t){e.command("rebase",{description:"Reapply commits on top of another base tip",args:[B.string().name("upstream").describe("Upstream branch to rebase onto").optional()],options:{onto:Q.string().describe("Starting point at which to create new commits"),abort:H().describe("Abort the current rebase operation"),continue:H().describe("Continue the rebase after conflict resolution"),skip:H().describe("Skip the current patch and continue")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(n.abort)return xh(s,r.env);if(n.continue)return Ch(s,r.env);if(n.skip)return Ph(s,r.env);let i=n.upstream;if(!i)return I("no upstream configured and no upstream argument given");if(await At(s))return I(`It seems that there is already a rebase-merge directory, and
503
+ `}async function Ii(e,t,n,r,o,s){await ne(e,t,"HEAD",n,r,`rebase (start): checkout ${s}`),o!=="detached HEAD"&&(await ne(e,t,o,n,r,`rebase (finish): ${o} onto ${r}`),await ne(e,t,"HEAD",r,r,`rebase (finish): returning to ${o}`))}async function lo(e,t,n,r){let o=await M(e,t),s=await Ih(e,o.tree,n);if(s)return s;let a=await fn(e,o.tree,n);return a.success&&(await se(e,{version:2,entries:a.newEntries}),await Se(e,a.worktreeOps)),r!=="detached HEAD"?await Y(e,r,t):await Y(e,"HEAD",t),null}function Df(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:ee.string().describe("Starting point at which to create new commits"),abort:H().describe("Abort the current rebase operation"),continue:H().describe("Continue the rebase after conflict resolution"),skip:H().describe("Skip the current patch and continue")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o;if(n.abort)return Sh(s,r.env);if(n.continue)return vh(s,r.env);if(n.skip)return Ah(s,r.env);let a=n.upstream;if(!a)return $("no upstream configured and no upstream argument given");if(await Dt(s))return $(`It seems that there is already a rebase-merge directory, and
504
504
  I wonder if you are in the middle of another rebase. If that is the
505
505
  case, please try
506
506
  git rebase (--continue | --abort | --skip)
@@ -508,23 +508,23 @@ If that is not the case, please
508
508
  rm -fr ".git/rebase-merge"
509
509
  and run me again. I am stopping in case you still have something
510
510
  valuable there.
511
- `);let a=await Ke(s);if(S(a))return a;let c=await Z(s),f=c?.type==="symbolic"?c.target:"detached HEAD",d=c?.type==="symbolic"?be(c.target):"HEAD",l=await Ie(s,i,`invalid upstream '${i}'`);if(S(l))return l;let u=l.hash,m,h=n.onto;if(h){let v=await Ie(s,h,`Does not point to a valid commit: '${h}'`);if(S(v))return v;m=v.hash}else m=u;let p=await q(s),g=Gt(p).sort();if(g.length>0)return{stdout:g.map(v=>`${v}: needs merge
511
+ `);let i=await ze(s);if(v(i))return i;let c=await Z(s),f=c?.type==="symbolic"?c.target:"detached HEAD",d=c?.type==="symbolic"?we(c.target):"HEAD",l=await Ie(s,a,`invalid upstream '${a}'`);if(v(l))return l;let u=l.hash,m,h=n.onto;if(h){let _=await Ie(s,h,`Does not point to a valid commit: '${h}'`);if(v(_))return _;m=_.hash}else m=u;let p=await K(s),g=Nt(p).sort();if(g.length>0)return{stdout:g.map(_=>`${_}: needs merge
512
512
  `).join(""),stderr:`error: cannot rebase: You have unstaged changes.
513
513
  error: additionally, your index contains uncommitted changes.
514
514
  error: Please commit or stash them.
515
- `,exitCode:1};let w=await M(s,a),k=await fe(s,w.tree);if(s.workTree){let v=sr(p,k),F=(await Rt(s,p)).some(D=>D.status==="modified"||D.status==="deleted");if(v||F){let D=[];return F&&D.push("error: cannot rebase: You have unstaged changes."),v&&(F?D.push("error: additionally, your index contains uncommitted changes."):D.push("error: cannot rebase: Your index contains uncommitted changes.")),D.push("error: Please commit or stash them."),_(`${D.join(`
515
+ `,exitCode:1};let w=await M(s,i),y=await ce(s,w.tree);if(s.workTree){let _=ar(p,y),D=(await $t(s,p)).some(W=>W.status==="modified"||W.status==="deleted");if(_||D){let W=[];return D&&W.push("error: cannot rebase: You have unstaged changes."),_&&(D?W.push("error: additionally, your index contains uncommitted changes."):W.push("error: cannot rebase: Your index contains uncommitted changes.")),W.push("error: Please commit or stash them."),N(`${W.join(`
516
516
  `)}
517
- `)}}if(t?.hooks){let v=await t.hooks.emitPre("pre-rebase",{upstream:i,branch:c?.type==="symbolic"?be(c.target):null});if(v)return{stdout:"",stderr:v.message??"",exitCode:1}}let b=await Ka(s,u,a),E=b.right;if(E.length===0){if(m!==a){let v=await io(s,m,p,f);return v||(await ki(s,r.env,a,m,f,i),{stdout:"",stderr:`Successfully rebased and updated ${f}.
518
- `,exitCode:0})}return{stdout:Tf(d),stderr:"",exitCode:0}}let x=[],P=b.left,C=new Set;for(let v of P){let W=await Ei(s,v.hash);W&&C.add(W)}let R=[];if(C.size>0)for(let v of E){let W=await Ei(s,v.hash);W&&C.has(W)?x.push(`warning: skipped previously applied commit ${z(v.hash)}`):R.push(v)}else R.push(...E);let y="";if(x.length>0&&(y=`${x.join(`
517
+ `)}}let R=await t?.hooks?.preRebase?.({repo:s,upstream:a,branch:c?.type==="symbolic"?we(c.target):null});if(Q(R))return{stdout:"",stderr:R.message??"",exitCode:1};let b=await Za(s,u,i),E=b.right;if(E.length===0){if(m!==i){let _=await lo(s,m,p,f);return _||(await Ii(s,r.env,i,m,f,a),{stdout:"",stderr:`Successfully rebased and updated ${f}.
518
+ `,exitCode:0})}return{stdout:Sf(d),stderr:"",exitCode:0}}let k=[],C=b.left,O=new Set;for(let _ of C){let F=await Oi(s,_.hash);F&&O.add(F)}let x=[];if(O.size>0)for(let _ of E){let F=await Oi(s,_.hash);F&&O.has(F)?k.push(`warning: skipped previously applied commit ${V(_.hash)}`):x.push(_)}else x.push(...E);let P="";if(k.length>0&&(P=`${k.join(`
519
519
  `)}
520
520
  hint: use --reapply-cherry-picks to include skipped commits
521
521
  hint: Disable this message with "git config set advice.skippedCherryPicks false"
522
- `),R.length===0){if(m!==a){let v=await io(s,m,p,f);if(v)return v.stderr=y+v.stderr,v;await ki(s,r.env,a,m,f,i)}return{stdout:"",stderr:`${y}Successfully rebased and updated ${f}.
523
- `,exitCode:0}}let $=R.map(v=>({hash:v.hash,subject:ie(v.commit.message)})),A=m,L=0;for(let v of $){let W=await M(s,v.hash);if(W.parents.length>1||W.parents.length===0||W.parents[0]!==A)break;A=v.hash,L++}let G=$.splice(0,L);if($.length===0){if(A===a)return{stdout:Tf(d),stderr:y,exitCode:0};let v=await io(s,A,p,f);return v?(v.stderr=y+v.stderr,v):(await ki(s,r.env,a,A,f,i),{stdout:"",stderr:`${y}Successfully rebased and updated ${f}.
524
- `,exitCode:0})}let V=await io(s,A,p,"detached HEAD");if(V)return V.stderr=y+V.stderr,V;await de(s,"CHERRY_PICK_HEAD"),await de(s,"REVERT_HEAD"),await he(s,"MERGE_MSG"),await he(s,"MERGE_MODE"),await te(s,r.env,"HEAD",a,A,`rebase (start): checkout ${i}`);let j={headName:f,origHead:a,onto:m,todo:$,done:G,msgnum:L,end:L+$.length};await Wo(s,j),await Y(s,"ORIG_HEAD",a);let O=await xi(s,r.env);return y&&(O.stderr=y+O.stderr),O}})}async function xi(e,t){let n=[],r=[];for(;;){let o=await lt(e);if(!o||o.todo.length===0)break;let s=o.todo[0];if(!s)break;n.push(`Rebasing (${o.msgnum+1}/${o.end})\r`),await qa(e);let i=await Eh(e,s,t);if(i.conflict){if(i.rescheduleCurrent){let a=await lt(e);a&&(a.todo=[s,...a.todo],await Wo(e,a))}return i.stdout&&r.push(i.stdout),n.push(i.stderr),{stdout:r.join(""),stderr:n.join(""),exitCode:1}}i.stdout&&r.push(i.stdout),i.stderr&&n.push(i.stderr)}return kh(e,n,t)}async function Eh(e,t,n){let r=t.hash,o=await M(e,r),s=o.parents.length>0?o.parents[0]:null,i=s?await M(e,s):null,a=await X(e);if(!a)return{conflict:!0,stdout:"",stderr:`fatal: no HEAD commit during rebase
525
- `};if(s&&s===a){let G=await q(e);if(!i)return{conflict:!0,stdout:"",stderr:`fatal: missing parent commit during rebase
526
- `};let V=await We(e,i.tree),j=await We(e,o.tree),O=new Map(V.map(D=>[D.path,D.hash])),v=new Map;for(let D of j){let K=O.get(D.path);(!K||K!==D.hash)&&v.set(D.path,D.hash)}let W=await Hf(e,G,v);if(W)return await Y(e,"REBASE_HEAD",r),await Ss(e,r,o.author),{conflict:!0,stdout:"",stderr:Af(W,t),rescheduleCurrent:!0};let F=await sn(e,o.tree,G);return F.success&&(await re(e,{version:2,entries:F.newEntries}),await He(e,F.worktreeOps)),await gn(e,r),await te(e,n,"HEAD",a,r,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}let c=await M(e,a),f=i?i.tree:null,d=z(r),l=ie(o.message),u={a:"HEAD",b:l?`${d} (${l})`:d},m=await Mt(e,f,c.tree,o.tree,u),h=await q(e),[p,g,w]=await Promise.all([We(e,c.tree),f?We(e,f):Promise.resolve([]),We(e,o.tree)]),k=new Set;for(let G of g)k.add(G.path);for(let G of p)k.add(G.path);for(let G of w)k.add(G.path);let b=h.entries.filter(G=>!k.has(G.path)),E=[...m.entries,...b];E.sort((G,V)=>Ce(G.path,V.path)||G.stage-V.stage);let x={version:2,entries:E},P=E.filter(G=>G.stage===0),C=await Se(e,P),R=new Map(p.map(G=>[G.path,G])),y=new Map;for(let G of P){let V=R.get(G.path);(!V||V.hash!==G.hash)&&y.set(G.path,G.hash)}for(let G of m.conflicts){if(G.reason==="content"||G.reason==="add-add"){y.set(G.path,null);continue}if(G.reason==="delete-modify"){let V=m.entries.filter(v=>v.path===G.path&&v.stage>0),j=V.find(v=>v.stage===2),O=V.find(v=>v.stage===3);O&&!j&&y.set(G.path,O.hash)}}let $=await Hf(e,h,y);if($)return await Y(e,"REBASE_HEAD",r),await Ss(e,r,o.author),{conflict:!0,stdout:"",stderr:Af($,t),rescheduleCurrent:!0};if(await re(e,x),e.workTree){let G=await kn(e,c.tree,m.resultTree,h);G.success&&await He(e,G.worktreeOps)}if(m.conflicts.length>0){await Y(e,"REBASE_HEAD",r),await Ss(e,r,o.author),await $e(e,"MERGE_MSG",o.message),await $e(e,"rebase-merge/message",o.message);let G=m.messages.join(`
527
- `);return{conflict:!0,stdout:G?`${G}
522
+ `),x.length===0){if(m!==i){let _=await lo(s,m,p,f);if(_)return _.stderr=P+_.stderr,_;await Ii(s,r.env,i,m,f,a)}return{stdout:"",stderr:`${P}Successfully rebased and updated ${f}.
523
+ `,exitCode:0}}let I=x.map(_=>({hash:_.hash,subject:ae(_.commit.message)})),G=m,j=0;for(let _ of I){let F=await M(s,_.hash);if(F.parents.length>1||F.parents.length===0||F.parents[0]!==G)break;G=_.hash,j++}let z=I.splice(0,j);if(I.length===0){if(G===i)return{stdout:Sf(d),stderr:P,exitCode:0};let _=await lo(s,G,p,f);return _?(_.stderr=P+_.stderr,_):(await Ii(s,r.env,i,G,f,a),{stdout:"",stderr:`${P}Successfully rebased and updated ${f}.
524
+ `,exitCode:0})}let A=await lo(s,G,p,"detached HEAD");if(A)return A.stderr=P+A.stderr,A;await fe(s,"CHERRY_PICK_HEAD"),await fe(s,"REVERT_HEAD"),await me(s,"MERGE_MSG"),await me(s,"MERGE_MODE"),await ne(s,r.env,"HEAD",i,G,`rebase (start): checkout ${a}`);let S={headName:f,origHead:i,onto:m,todo:I,done:z,msgnum:j,end:j+I.length};await Xo(s,S),await Y(s,"ORIG_HEAD",i);let L=await $i(s,r.env);return P&&(L.stderr=P+L.stderr),L}})}async function $i(e,t){let n=[],r=[];for(;;){let o=await ht(e);if(!o||o.todo.length===0)break;let s=o.todo[0];if(!s)break;n.push(`Rebasing (${o.msgnum+1}/${o.end})\r`),await Xa(e);let a=await Th(e,s,t);if(a.conflict){if(a.rescheduleCurrent){let i=await ht(e);i&&(i.todo=[s,...i.todo],await Xo(e,i))}return a.stdout&&r.push(a.stdout),n.push(a.stderr),{stdout:r.join(""),stderr:n.join(""),exitCode:1}}a.stdout&&r.push(a.stdout),a.stderr&&n.push(a.stderr)}return Hh(e,n,t)}async function Th(e,t,n){let r=t.hash,o=await M(e,r),s=o.parents.length>0?o.parents[0]:null,a=s?await M(e,s):null,i=await X(e);if(!i)return{conflict:!0,stdout:"",stderr:`fatal: no HEAD commit during rebase
525
+ `};if(s&&s===i){let j=await K(e);if(!a)return{conflict:!0,stdout:"",stderr:`fatal: missing parent commit during rebase
526
+ `};let z=await qe(e,a.tree),A=await qe(e,o.tree),S=new Map(z.map(D=>[D.path,D.hash])),L=new Map;for(let D of A){let W=S.get(D.path);(!W||W!==D.hash)&&L.set(D.path,D.hash)}let _=await vf(e,j,L);if(_)return await Y(e,"REBASE_HEAD",r),await Ls(e,r,o.author),{conflict:!0,stdout:"",stderr:Af(_,t),rescheduleCurrent:!0};let F=await fn(e,o.tree,j);return F.success&&(await se(e,{version:2,entries:F.newEntries}),await Se(e,F.worktreeOps)),await En(e,r),await ne(e,n,"HEAD",i,r,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}let c=await M(e,i),f=a?a.tree:null,d=V(r),l=ae(o.message),u={a:"HEAD",b:l?`${d} (${l})`:d},m=await Lt(e,f,c.tree,o.tree,u),h=await K(e),[p,g,w]=await Promise.all([qe(e,c.tree),f?qe(e,f):Promise.resolve([]),qe(e,o.tree)]),y=new Set;for(let j of g)y.add(j.path);for(let j of p)y.add(j.path);for(let j of w)y.add(j.path);let R=h.entries.filter(j=>!y.has(j.path)),b=[...m.entries,...R];b.sort((j,z)=>Re(j.path,z.path)||j.stage-z.stage);let E={version:2,entries:b},k=b.filter(j=>j.stage===0),C=await De(e,k),O=new Map(p.map(j=>[j.path,j])),x=new Map;for(let j of k){let z=O.get(j.path);(!z||z.hash!==j.hash)&&x.set(j.path,j.hash)}for(let j of m.conflicts){if(j.reason==="content"||j.reason==="add-add"){x.set(j.path,null);continue}if(j.reason==="delete-modify"){let z=m.entries.filter(L=>L.path===j.path&&L.stage>0),A=z.find(L=>L.stage===2),S=z.find(L=>L.stage===3);S&&!A&&x.set(j.path,S.hash)}}let P=await vf(e,h,x);if(P)return await Y(e,"REBASE_HEAD",r),await Ls(e,r,o.author),{conflict:!0,stdout:"",stderr:Af(P,t),rescheduleCurrent:!0};if(await se(e,E),e.workTree){let j=await Pn(e,c.tree,m.resultTree,h);j.success&&await Se(e,j.worktreeOps)}if(m.conflicts.length>0){await Y(e,"REBASE_HEAD",r),await Ls(e,r,o.author),await Oe(e,"MERGE_MSG",o.message),await Oe(e,"rebase-merge/message",o.message);let j=m.messages.join(`
527
+ `);return{conflict:!0,stdout:j?`${j}
528
528
  `:"",stderr:`error: could not apply ${d}... ${t.subject}
529
529
  hint: Resolve all conflicts manually, mark them as resolved with
530
530
  hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
@@ -533,12 +533,12 @@ hint: To abort and get back to the state before "git rebase", run "git rebase --
533
533
  hint: Disable this message with "git config set advice.mergeConflict false"
534
534
  Could not apply ${d}... # ${t.subject}
535
535
  `}}if(C===c.tree)return{conflict:!1,stdout:"",stderr:`dropping ${r} ${t.subject} -- patch contents already upstream
536
- `};let A=await Ve(e,n);if(S(A))return{conflict:!0,stdout:"",stderr:A.stderr};let L=await ft(e,C,[a],o.author,A,o.message);return await te(e,n,"HEAD",a,L,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}async function kh(e,t,n){let r=await lt(e);if(!r)return I("no rebase in progress");let o=await X(e);if(!o)return I("no HEAD during rebase finish");r.headName!=="detached HEAD"&&(await Y(e,r.headName,o),await Fe(e,"HEAD",r.headName),await dt(e),await te(e,n,r.headName,r.origHead,o,`rebase (finish): ${r.headName} onto ${r.onto}`),await te(e,n,"HEAD",o,o,`rebase (finish): returning to ${r.headName}`));let i=`Successfully rebased and updated ${r.headName}.
537
- `;return await de(e,"REBASE_HEAD"),await qn(e),await qo(e),{stdout:"",stderr:t.join("")+i,exitCode:0}}async function xh(e,t){let n=await lt(e);if(!n)return I("no rebase in progress");let r=await X(e),o=n.origHead,s=await M(e,o),i=await q(e),a=await yh(e,s.tree,i,o);if(a)return a;let c=await sn(e,s.tree,i);c.success&&(await re(e,{version:2,entries:c.newEntries}),await He(e,c.worktreeOps)),n.headName!=="detached HEAD"?(await Y(e,n.headName,o),await Fe(e,"HEAD",n.headName),await dt(e)):await gn(e,o);let f=n.headName==="detached HEAD"?o:n.headName;return await te(e,t,"HEAD",r,o,`rebase (abort): returning to ${f}`),await de(e,"REBASE_HEAD"),await qn(e),await qo(e),{stdout:"",stderr:"",exitCode:0}}async function Ch(e,t){let n="";if(!await lt(e))return I("no rebase in progress");let o=await q(e);if(Pt(o))return _(`error: Committing is not possible because you have unmerged files.
536
+ `};let I=await Ye(e,n);if(v(I))return{conflict:!0,stdout:"",stderr:I.stderr};let G=await ut(e,C,[i],o.author,I,o.message);return await ne(e,n,"HEAD",i,G,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}async function Hh(e,t,n){let r=await ht(e);if(!r)return $("no rebase in progress");let o=await X(e);if(!o)return $("no HEAD during rebase finish");r.headName!=="detached HEAD"&&(await Y(e,r.headName,o),await Ue(e,"HEAD",r.headName),await mt(e),await ne(e,n,r.headName,r.origHead,o,`rebase (finish): ${r.headName} onto ${r.onto}`),await ne(e,n,"HEAD",o,o,`rebase (finish): returning to ${r.headName}`));let a=`Successfully rebased and updated ${r.headName}.
537
+ `;return await fe(e,"REBASE_HEAD"),await Vn(e),await Zo(e),{stdout:"",stderr:t.join("")+a,exitCode:0}}async function Sh(e,t){let n=await ht(e);if(!n)return $("no rebase in progress");let r=await X(e),o=n.origHead,s=await M(e,o),a=await K(e),i=await $h(e,s.tree,a,o);if(i)return i;let c=await fn(e,s.tree,a);c.success&&(await se(e,{version:2,entries:c.newEntries}),await Se(e,c.worktreeOps)),n.headName!=="detached HEAD"?(await Y(e,n.headName,o),await Ue(e,"HEAD",n.headName),await mt(e)):await En(e,o);let f=n.headName==="detached HEAD"?o:n.headName;return await ne(e,t,"HEAD",r,o,`rebase (abort): returning to ${f}`),await fe(e,"REBASE_HEAD"),await Vn(e),await Zo(e),{stdout:"",stderr:"",exitCode:0}}async function vh(e,t){let n="";if(!await ht(e))return $("no rebase in progress");let o=await K(e);if(It(o))return N(`error: Committing is not possible because you have unmerged files.
538
538
  hint: Fix them up in the work tree, and then use 'git add <file>'
539
539
  hint: as appropriate to mark resolution and make a commit.
540
540
  fatal: Exiting because of an unresolved conflict.
541
- `,128);let s=await N(e,"REBASE_HEAD");if(s){let a=await X(e);if(!a)return I("Cannot read HEAD");let c=await M(e,a),f=ve(o),d=await Se(e,f),l=d!==c.tree,u=await Ee(e,"rebase-merge/message")!==null;if(l&&!u)return _(`error: you have staged changes in your working tree
541
+ `,128);let s=await U(e,"REBASE_HEAD");if(s){let i=await X(e);if(!i)return $("Cannot read HEAD");let c=await M(e,i),f=Ae(o),d=await De(e,f),l=d!==c.tree,u=await Ee(e,"rebase-merge/message")!==null;if(l&&!u)return N(`error: you have staged changes in your working tree
542
542
  If these changes are meant to be squashed into the previous commit, run:
543
543
 
544
544
  git commit --amend
@@ -551,55 +551,55 @@ In both cases, once you're done, continue with:
551
551
 
552
552
  git rebase --continue
553
553
 
554
- `);if(l){let m=await M(e,s),h=await N(e,"CHERRY_PICK_HEAD"),p=h?await M(e,h):m,g;g=await Ee(e,"rebase-merge/message")??await Ee(e,"MERGE_MSG")??void 0,g&&(g=Xt(g)),g||(g=m.message);let w=await Ve(e,t);if(S(w))return w;let k=Ot(g),b=[a],E=await N(e,"MERGE_HEAD");E&&b.push(E);let x=await ft(e,d,b,p.author,w,k);E&&(await de(e,"MERGE_HEAD"),await he(e,"MERGE_MODE"));let P=ie(k);await te(e,t,"HEAD",a,x,`rebase (continue): ${P}`);let C=await wh(e),R=p.author.timestamp!==w.timestamp||p.author.timezone!==w.timezone,y=await Zt(e,c.tree,d,p.author,w,R);n=`${It(C,x,k)}
555
- ${y}`}await de(e,"REBASE_HEAD"),await de(e,"CHERRY_PICK_HEAD"),await de(e,"REVERT_HEAD"),await he(e,"MERGE_MSG"),await he(e,"rebase-merge/message")}let i=await xi(e,t);return n&&(i.stdout=n+i.stdout),i}async function Ph(e,t){if(!await lt(e))return I("no rebase in progress");let r=await X(e);if(!r)return{stdout:"",stderr:`error: could not determine HEAD revision
554
+ `);if(l){let m=await M(e,s),h=await U(e,"CHERRY_PICK_HEAD"),p=h?await M(e,h):m,g;g=await Ee(e,"rebase-merge/message")??await Ee(e,"MERGE_MSG")??void 0,g&&(g=en(g)),g||(g=m.message);let w=await Ye(e,t);if(v(w))return w;let y=St(g),R=[i],b=await U(e,"MERGE_HEAD");b&&R.push(b);let E=await ut(e,d,R,p.author,w,y);b&&(await fe(e,"MERGE_HEAD"),await me(e,"MERGE_MODE"));let k=ae(y);await ne(e,t,"HEAD",i,E,`rebase (continue): ${k}`);let C=await Oh(e),O=p.author.timestamp!==w.timestamp||p.author.timezone!==w.timezone,x=await tn(e,c.tree,d,p.author,w,O);n=`${Ht(C,E,y)}
555
+ ${x}`}await fe(e,"REBASE_HEAD"),await fe(e,"CHERRY_PICK_HEAD"),await fe(e,"REVERT_HEAD"),await me(e,"MERGE_MSG"),await me(e,"rebase-merge/message")}let a=await $i(e,t);return n&&(a.stdout=n+a.stdout),a}async function Ah(e,t){if(!await ht(e))return $("no rebase in progress");let r=await X(e);if(!r)return{stdout:"",stderr:`error: could not determine HEAD revision
556
556
  fatal: could not discard worktree changes
557
- `,exitCode:128};let o=await M(e,r),s=await q(e),i=await sn(e,o.tree,s);return i.success&&(await re(e,{version:2,entries:i.newEntries}),await He(e,i.worktreeOps)),await de(e,"REBASE_HEAD"),await de(e,"CHERRY_PICK_HEAD"),await de(e,"REVERT_HEAD"),await de(e,"MERGE_HEAD"),await he(e,"MERGE_MSG"),await he(e,"MERGE_MODE"),await he(e,"rebase-merge/message"),xi(e,t)}ne();ue();Ge();me();function Rh(e,t,n,r){return`${z(n)} ${e}@{${t}}: ${r}`}async function ao(e,t,n){let r=t==="HEAD"?"HEAD":`refs/heads/${t}`;if(!await N(e,r))return{stdout:"",stderr:`fatal: ambiguous argument '${t}': unknown revision or path not in the working tree.
557
+ `,exitCode:128};let o=await M(e,r),s=await K(e),a=await fn(e,o.tree,s);return a.success&&(await se(e,{version:2,entries:a.newEntries}),await Se(e,a.worktreeOps)),await fe(e,"REBASE_HEAD"),await fe(e,"CHERRY_PICK_HEAD"),await fe(e,"REVERT_HEAD"),await fe(e,"MERGE_HEAD"),await me(e,"MERGE_MSG"),await me(e,"MERGE_MODE"),await me(e,"rebase-merge/message"),$i(e,t)}re();de();je();le();function Dh(e,t,n,r){return`${V(n)} ${e}@{${t}}: ${r}`}async function uo(e,t,n){let r=t==="HEAD"?"HEAD":`refs/heads/${t}`;if(!await U(e,r))return{stdout:"",stderr:`fatal: ambiguous argument '${t}': unknown revision or path not in the working tree.
558
558
  Use '--' to separate paths from revisions, like this:
559
559
  'git <command> [<revision>...] -- [<file>...]'
560
- `,exitCode:128};let s=await ze(e,r),i=[],a=n!==void 0?n:s.length,c=0;for(let d=s.length-1;d>=0&&c<a;d--){let l=s[d];if(!l)continue;let u=s.length-1-d;l.newHash!==J&&(i.push(Rh(t,u,l.newHash,l.message)),c++)}return{stdout:i.length>0?`${i.join(`
560
+ `,exitCode:128};let s=await Ve(e,r),a=[],i=n!==void 0?n:s.length,c=0;for(let d=s.length-1;d>=0&&c<i;d--){let l=s[d];if(!l)continue;let u=s.length-1-d;l.newHash!==J&&(a.push(Dh(t,u,l.newHash,l.message)),c++)}return{stdout:a.length>0?`${a.join(`
561
561
  `)}
562
- `:"",stderr:"",exitCode:0}}function Sf(e,t){return e.command("reflog",{description:"Manage reflog information",args:[B.string().name("args").variadic().optional()],options:{maxCount:Q.number().alias("n").describe("Limit the number of entries to output")},handler:async(r,o)=>{let s=await U(o.fs,o.cwd,t);if(S(s))return s;let i=s,a=r.args;if(a.length===0)return ao(i,"HEAD",r.maxCount);let c=a[0];if(!c)return ao(i,"HEAD",r.maxCount);if(c==="show"){let f=a[1]??"HEAD";return ao(i,f,r.maxCount)}if(c==="exists"){let f=a[1];if(!f)return{stdout:"",stderr:`fatal: reflog exists requires a ref argument
563
- `,exitCode:128};let d=T(i.gitDir,"logs",f);return{stdout:"",stderr:"",exitCode:await i.fs.exists(d)?0:1}}return ao(i,c,r.maxCount)}})}ne();Xe();Ge();me();function $h(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 Df(e,t){let n=e.command("remote",{description:"Manage set of tracked repositories",options:{verbose:H().alias("v").describe("Show remote URLs")},handler:async(s,i)=>{let a=await U(i.fs,i.cwd,t);if(S(a))return a;let c=await pe(a),f=$h(c);if(f.length===0)return{stdout:"",stderr:"",exitCode:0};if(s.verbose){let d=[];for(let l of f){let m=c[`remote "${l}"`]?.url??"";d.push(`${l} ${m} (fetch)`),d.push(`${l} ${m} (push)`)}return{stdout:`${d.join(`
562
+ `:"",stderr:"",exitCode:0}}function Mf(e,t){return e.command("reflog",{description:"Manage reflog information",args:[q.string().name("args").variadic().optional()],options:{maxCount:ee.number().alias("n").describe("Limit the number of entries to output")},handler:async(r,o)=>{let s=await B(o.fs,o.cwd,t);if(v(s))return s;let a=s,i=r.args;if(i.length===0)return uo(a,"HEAD",r.maxCount);let c=i[0];if(!c)return uo(a,"HEAD",r.maxCount);if(c==="show"){let f=i[1]??"HEAD";return uo(a,f,r.maxCount)}if(c==="exists"){let f=i[1];if(!f)return{stdout:"",stderr:`fatal: reflog exists requires a ref argument
563
+ `,exitCode:128};let d=T(a.gitDir,"logs",f);return{stdout:"",stderr:"",exitCode:await a.fs.exists(d)?0:1}}return uo(a,c,r.maxCount)}})}re();Je();je();le();function Mh(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 jf(e,t){let n=e.command("remote",{description:"Manage set of tracked repositories",options:{verbose:H().alias("v").describe("Show remote URLs")},handler:async(s,a)=>{let i=await B(a.fs,a.cwd,t);if(v(i))return i;let c=await he(i),f=Mh(c);if(f.length===0)return{stdout:"",stderr:"",exitCode:0};if(s.verbose){let d=[];for(let l of f){let m=c[`remote "${l}"`]?.url??"";d.push(`${l} ${m} (fetch)`),d.push(`${l} ${m} (push)`)}return{stdout:`${d.join(`
564
564
  `)}
565
565
  `,stderr:"",exitCode:0}}return{stdout:`${f.join(`
566
566
  `)}
567
- `,stderr:"",exitCode:0}}});n.command("add",{description:"Add a remote named <name> for the repository at <url>",args:[B.string().name("name").describe("Remote name"),B.string().name("url").describe("Remote URL")],handler:async(s,i)=>{let a=await U(i.fs,i.cwd,t);if(S(a))return a;let c=await pe(a),f=`remote "${s.name}"`;return f in c?_(`error: remote ${s.name} already exists.
568
- `,3):(c[f]={url:s.url,fetch:`+refs/heads/*:refs/remotes/${s.name}/*`},await Ye(a,c),{stdout:"",stderr:"",exitCode:0})}});let r=async(s,i)=>{let a=await U(i.fs,i.cwd,t);if(S(a))return a;let c=await pe(a),f=`remote "${s.name}"`;return f in c?(delete c[f],Oh(c,s.name),await Ye(a,c),await Th(a,s.name),{stdout:"",stderr:"",exitCode:0}):_(`error: No such remote: '${s.name}'
569
- `,2)},o=[B.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:[B.string().name("old").describe("Current remote name"),B.string().name("new").describe("New remote name")],handler:async(s,i)=>{let a=await U(i.fs,i.cwd,t);if(S(a))return a;let c=await pe(a);return Ih(a,c,s.old,s.new)}}),n.command("set-url",{description:"Change the URL for an existing remote",args:[B.string().name("name").describe("Remote name"),B.string().name("url").describe("New remote URL")],handler:async(s,i)=>{let a=await U(i.fs,i.cwd,t);if(S(a))return a;let c=await pe(a),f=`remote "${s.name}"`;if(!(f in c))return _(`error: No such remote '${s.name}'
570
- `,2);let d=c[f];return d&&(d.url=s.url),await Ye(a,c),{stdout:"",stderr:"",exitCode:0}}}),n.command("get-url",{description:"Retrieve the URL for an existing remote",args:[B.string().name("name").describe("Remote name")],handler:async(s,i)=>{let a=await U(i.fs,i.cwd,t);if(S(a))return a;let c=await pe(a),f=`remote "${s.name}"`;return f in c?{stdout:`${c[f]?.url??""}
571
- `,stderr:"",exitCode:0}:_(`error: No such remote '${s.name}'
572
- `,2)}})}async function Ih(e,t,n,r){let o=`remote "${n}"`;if(!(o in t))return _(`error: No such remote: '${n}'
573
- `,2);let s=`remote "${r}"`;if(s in t)return I(`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 Ye(e,t);let a=`refs/remotes/${n}`,c=await we(e,a);for(let f of c){let d=f.name.replace(a,`refs/remotes/${r}`),l=await ze(e,f.name);await Y(e,d,f.hash),await de(e,f.name),l.length>0&&await bn(e,d,l)}return{stdout:"",stderr:"",exitCode:0}}function Oh(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 Th(e,t){let n=`refs/remotes/${t}`,r=await we(e,n);for(let o of r)await de(e,o.name)}ne();xe();oe();ue();Ge();me();nn();Te();Vt();Je();function jf(e,t){e.command("reset",{description:"Reset current HEAD to the specified state",args:[B.string().name("args").variadic().optional()],options:{soft:H().describe("Only move HEAD"),mixed:H().describe("Move HEAD and reset index (default)"),hard:H().describe("Move HEAD, reset index, and reset working tree")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=n.args;if([n.soft,n.mixed,n.hard].filter(Boolean).length>1)return I("--soft, --mixed, and --hard are mutually exclusive");let f=n.soft||n.mixed||n.hard,d=ct(i,r.cwd);if(o.passthrough.length>0){let m=a.length>0?a[0]:void 0;return Ci(i,o.passthrough,d,m,t)}if(!f&&a.length>0){let m=a[0],h=await Be(i,m);return a.length===1&&h?Mf(i,m,"mixed",r.env,t):h?Ci(i,a.slice(1),d,m,t):Ci(i,a,d,void 0,t)}let l=n.soft?"soft":n.hard?"hard":"mixed",u=a.length>0?a[0]:"HEAD";return Mf(i,u,l,r.env,t)}})}async function Ci(e,t,n,r,o){if(o?.hooks){let d=await o.hooks.emitPre("pre-reset",{mode:"paths",target:r??null});if(d)return{stdout:"",stderr:d.message??"",exitCode:1}}let s=null;if(r){let d=await Be(e,r);if(!d)return Lt(r);let l=await _e(e,d);s=(await M(e,l)).tree}else{let d=await X(e);d&&(s=(await M(e,d)).tree)}let i=await fe(e,s??null),a=await q(e);if(t.some(Un)){let d=t.map(u=>Le(u,n)),l=new Set;for(let[u]of i)l.add(u);for(let u of a.entries)l.add(u.path);for(let u of l){if(!ye(d,u))continue;let m=i.get(u);m?a=ht(a,{path:m.path,mode:parseInt(m.mode,8),hash:m.hash,stage:0,stat:Pe()}):a=nt(a,u)}}else for(let d of t){let l=i.get(d);if(l)a=ht(a,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:Pe()});else if(a.entries.some(m=>m.path===d))a=nt(a,d);else if(!(e.workTree&&await e.fs.exists(T(e.workTree,d))))return Lt(d)}await re(e,a);let f={stdout:await Gf(e,a),stderr:"",exitCode:0};return await o?.hooks?.emitPost("post-reset",{mode:"paths",targetHash:null}),f}async function Gf(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 Rt(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(`
574
- `)}
575
- `}async function Mf(e,t,n,r,o){if(o?.hooks){let u=await o.hooks.emitPre("pre-reset",{mode:n,target:t});if(u)return{stdout:"",stderr:u.message??"",exitCode:1}}let s=await Be(e,t);if(!s)return Lt(t);let i=await _e(e,s),a=await M(e,i);if(n==="soft"){let u=await N(e,"MERGE_HEAD"),m=await q(e);if(u||Pt(m))return I("Cannot do a soft reset in the middle of a merge.")}let c=await X(e),f=await Z(e);f?.type==="symbolic"?await Y(e,f.target,i):await Y(e,"HEAD",i);let d=`reset: moving to ${t}`;if(f?.type==="symbolic"&&c!==i?await te(e,r,f.target,c,i,d,!0):(f?.type==="symbolic"||c!==i)&&await te(e,r,"HEAD",c,i,d),await qn(e),n==="mixed"){let u=await We(e,a.tree),m=os(u.map(p=>({path:p.path,mode:parseInt(p.mode,8),hash:p.hash,stage:0,stat:Pe()})));await re(e,m);let h=await Gf(e,m);if(h)return await o?.hooks?.emitPost("post-reset",{mode:n,targetHash:i}),{stdout:h,stderr:"",exitCode:0}}if(n==="hard"){let u=qe(e);if(u)return u;let m=await q(e),h=await sn(e,a.tree,m);await re(e,{version:2,entries:h.newEntries}),await He(e,h.worktreeOps)}let l=n==="hard"?`HEAD is now at ${z(i)} ${ie(a.message)}
576
- `:"";return await o?.hooks?.emitPost("post-reset",{mode:n,targetHash:i}),{stdout:l,stderr:"",exitCode:0}}ne();xe();oe();me();Te();Je();function Lf(e,t){e.command("restore",{description:"Restore working tree files",args:[B.string().name("pathspec").variadic().optional()],options:{source:Q.string().alias("s").describe("Restore from tree-ish"),staged:H().alias("S").describe("Restore the index"),worktree:H().alias("W").describe("Restore the working tree (default)"),ours:H().describe("Checkout our version for unmerged files"),theirs:H().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=[...n.pathspec??[],...o.passthrough];if(a.length===0)return I("you must specify path(s) to restore");if(n.ours&&n.theirs)return I("--ours and --theirs are incompatible");let c=!!n.staged,f=n.worktree!==void 0?!!n.worktree:!c,d=ct(i,r.cwd);if(n.ours||n.theirs)return n.source?I("cannot specify both --source and --ours/--theirs"):c?I("cannot use --ours/--theirs with --staged"):Gs(i,a,d,n.theirs?3:2,{deleteOnMissing:!0});let l=null;if(n.source){let u=await Ie(i,n.source,`could not resolve '${n.source}'`);if(S(u))return u;l=u.commit.tree}else if(c){let u=await X(i);u&&(l=(await M(i,u)).tree)}return c&&f?vh(i,a,d,l):c?Hh(i,a,d,l):l?Ah(i,a,d,l):js(i,a,d)}})}async function Hh(e,t,n,r){let o=await fe(e,r),s=await q(e),i=t.map(f=>Le(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(!ye(i,f))continue;c=!0;let d=o.get(f);if(d)s=ht(s,{path:d.path,mode:parseInt(d.mode,8),hash:d.hash,stage:0,stat:Pe()});else{if(s.entries.some(u=>u.path===f&&u.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
577
- `,exitCode:1};s=nt(s,f)}}return c?(await re(e,s),{stdout:"",stderr:"",exitCode:0}):_(`error: pathspec '${t[0]}' did not match any file(s) known to git
578
- `)}async function Ah(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");let o=await fe(e,r),s=t.map(f=>Le(f,n)),i=[],a=await q(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(ye(s,f)){if(!o.has(f)&&a.entries.some(l=>l.path===f&&l.stage!==0))return{stdout:"",stderr:`error: path '${f}' is unmerged
579
- `,exitCode:1};i.push(f)}if(i.length===0)return _(`error: pathspec '${t[0]}' did not match any file(s) known to git
580
- `);for(let f of i){let d=o.get(f);if(d)await rt(e,{path:d.path,hash:d.hash,mode:d.mode});else{let l=`${e.workTree}/${f}`;await e.fs.exists(l)&&await e.fs.rm(l)}}return{stdout:"",stderr:"",exitCode:0}}async function vh(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");let o=await fe(e,r),s=await q(e),i=t.map(f=>Le(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)ye(i,f)&&a.push(f);if(a.length===0)return _(`error: pathspec '${t[0]}' did not match any file(s) known to git
581
- `);for(let f of a){let d=o.get(f);if(d)s=ht(s,{path:d.path,mode:parseInt(d.mode,8),hash:d.hash,stage:0,stat:Pe()}),await rt(e,{path:d.path,hash:d.hash,mode:d.mode});else{if(s.entries.some(m=>m.path===f&&m.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
582
- `,exitCode:1};s=nt(s,f);let u=`${e.workTree}/${f}`;await e.fs.exists(u)&&await e.fs.rm(u)}}return await re(e,s),{stdout:"",stderr:"",exitCode:0}}ne();ue();me();nn();function _f(e,t){e.command("rev-parse",{description:"Pick out and massage parameters",args:[B.string().name("args").describe("Refs or revision expressions to resolve").optional().variadic()],options:{verify:H().describe("Verify that exactly one parameter is provided and resolves to an object"),short:H().describe("Abbreviate object name (default 7 chars)"),"abbrev-ref":H().describe("Output abbreviated ref name instead of object hash"),"symbolic-full-name":H().describe("Output the full symbolic ref name"),"show-toplevel":H().describe("Show the absolute path of the top-level directory"),"git-dir":H().describe("Show the path to the .git directory"),"is-inside-work-tree":H().describe("Output whether cwd is inside the work tree"),"is-bare-repository":H().describe("Output whether the repository is bare"),"show-prefix":H().describe("Show path of cwd relative to top-level directory"),"show-cdup":H().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"],d=n["git-dir"],l=n["is-inside-work-tree"],u=n["is-bare-repository"],m=n["show-prefix"],h=n["show-cdup"],p=f||d||l||u||m||h,g=await U(r.fs,r.cwd,t);if(S(g))return g;let w=g,k=[];if(f){if(!w.workTree)return I("this operation must be run in a work tree");k.push(w.workTree)}if(d&&k.push(w.gitDir),l&&k.push(w.workTree?"true":"false"),u&&k.push(w.workTree?"false":"true"),m){if(!w.workTree)return I("this operation must be run in a work tree");let E=st(w.workTree,r.cwd);k.push(E===""?"":`${E}/`)}if(h){if(!w.workTree)return I("this operation must be run in a work tree");let E=st(r.cwd,w.workTree);k.push(E===""?"":`${E}/`)}if(p&&o.length===0)return{stdout:k.map(x=>`${x}
583
- `).join(""),stderr:"",exitCode:0};if(s&&o.length!==1)return I("Needed a single revision");for(let E of o){if(a){let P=await Sh(w,E);if(P===null)return Pi(E,s);k.push(P);continue}if(c){let P=await Dh(w,E);if(P===null)return Pi(E,s);k.push(P);continue}let x=await Be(w,E);if(!x)return Pi(E,s);k.push(i?z(x):x)}return{stdout:k.map(E=>`${E}
584
- `).join(""),stderr:"",exitCode:0}}})}function Pi(e,t){return t?I("Needed a single revision"):Lt(e)}async function Sh(e,t){if(t==="HEAD"||t==="@"){let r=await Z(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 Be(e,t)?t:null}async function Dh(e,t){if(t==="HEAD"||t==="@"){let r=await Z(e);return r?r.type==="symbolic"?r.target:"HEAD":null}if(!await Be(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 N(e,o))return o}return t}ne();xe();oe();Ge();me();Te();function Nf(e,t){e.command("revert",{description:"Revert some existing commits",args:[B.string().name("commit").describe("The commit to revert").optional()],options:{abort:H().describe("Abort the current revert operation"),continue:H().describe("Continue the revert after conflict resolution"),"no-commit":H().alias("n").describe("Apply changes without creating a commit"),"no-edit":H().describe("Do not edit the commit message"),mainline:Q.number().alias("m").describe("Select the parent number for reverting merges")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(n.abort){if(t?.hooks){let W=await t.hooks.emitPre("pre-revert",{mode:"abort",commit:null});if(W)return{stdout:"",stderr:W.message??"",exitCode:1}}let v=await Mh(s,r.env);return v.exitCode===0&&await t?.hooks?.emitPost("post-revert",{mode:"abort",commitHash:null,hadConflicts:!1}),v}if(n.continue){if(t?.hooks){let W=await t.hooks.emitPre("pre-revert",{mode:"continue",commit:null});if(W)return{stdout:"",stderr:W.message??"",exitCode:1}}let v=await jh(s,r.env);return v.exitCode===0&&await t?.hooks?.emitPost("post-revert",{mode:"continue",commitHash:null,hadConflicts:!1}),v}let i=n.commit;if(!i)return I("you must specify a commit to revert");if(t?.hooks){let v=await t.hooks.emitPre("pre-revert",{mode:"revert",commit:i});if(v)return{stdout:"",stderr:v.message??"",exitCode:1}}let a=await Ie(s,i);if(S(a))return a;let c=a.hash,f=a.commit,d=await Ke(s);if(S(d))return d;let l=await q(s),u=on(l,"Reverting",`fatal: revert failed
585
- `);if(u)return u;let m=await M(s,d);if(s.workTree){let v=await fe(s,m.tree);if(sr(l,v))return _(`error: your local changes would be overwritten by revert.
567
+ `,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,a)=>{let i=await B(a.fs,a.cwd,t);if(v(i))return i;let c=await he(i),f=`remote "${s.name}"`;return f in c?N(`error: remote ${s.name} already exists.
568
+ `,3):(c[f]={url:s.url,fetch:`+refs/heads/*:refs/remotes/${s.name}/*`},await Ze(i,c),{stdout:"",stderr:"",exitCode:0})}});let r=async(s,a)=>{let i=await B(a.fs,a.cwd,t);if(v(i))return i;let c=await he(i),f=`remote "${s.name}"`;return f in c?(delete c[f],Gh(c,s.name),await Ze(i,c),await Lh(i,s.name),{stdout:"",stderr:"",exitCode:0}):N(`error: No such remote: '${s.name}'
569
+ `,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,a)=>{let i=await B(a.fs,a.cwd,t);if(v(i))return i;let c=await he(i);return jh(i,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,a)=>{let i=await B(a.fs,a.cwd,t);if(v(i))return i;let c=await he(i),f=`remote "${s.name}"`;if(!(f in c))return N(`error: No such remote '${s.name}'
570
+ `,2);let d=c[f];return d&&(d.url=s.url),await Ze(i,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,a)=>{let i=await B(a.fs,a.cwd,t);if(v(i))return i;let c=await he(i),f=`remote "${s.name}"`;return f in c?{stdout:`${c[f]?.url??""}
571
+ `,stderr:"",exitCode:0}:N(`error: No such remote '${s.name}'
572
+ `,2)}})}async function jh(e,t,n,r){let o=`remote "${n}"`;if(!(o in t))return N(`error: No such remote: '${n}'
573
+ `,2);let s=`remote "${r}"`;if(s in t)return $(`remote ${r} already exists.`);let a={...t[o]};a.fetch&&(a.fetch=a.fetch.replace(`refs/remotes/${n}/`,`refs/remotes/${r}/`)),t[s]=a,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 i=`refs/remotes/${n}`,c=await pe(e,i);for(let f of c){let d=f.name.replace(i,`refs/remotes/${r}`),l=await Ve(e,f.name);await Y(e,d,f.hash),await fe(e,f.name),l.length>0&&await Rn(e,d,l)}return{stdout:"",stderr:"",exitCode:0}}function Gh(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 Lh(e,t){let n=`refs/remotes/${t}`,r=await pe(e,n);for(let o of r)await fe(e,o.name)}re();ke();ie();de();je();le();an();He();Jt();et();function Lf(e,t){e.command("reset",{description:"Reset current HEAD to the specified state",args:[q.string().name("args").variadic().optional()],options:{soft:H().describe("Only move HEAD"),mixed:H().describe("Move HEAD and reset index (default)"),hard:H().describe("Move HEAD, reset index, and reset working tree")},handler:async(n,r,o)=>{let s=await B(r.fs,r.cwd,t);if(v(s))return s;let a=s,i=n.args;if([n.soft,n.mixed,n.hard].filter(Boolean).length>1)return $("--soft, --mixed, and --hard are mutually exclusive");let f=n.soft||n.mixed||n.hard,d=lt(a,r.cwd);if(o.passthrough.length>0){let m=i.length>0?i[0]:void 0;return Ti(a,o.passthrough,d,m,t)}if(!f&&i.length>0){let m=i[0],h=await We(a,m);return i.length===1&&h?Gf(a,m,"mixed",r.env,t):h?Ti(a,i.slice(1),d,m,t):Ti(a,i,d,void 0,t)}let l=n.soft?"soft":n.hard?"hard":"mixed",u=i.length>0?i[0]:"HEAD";return Gf(a,u,l,r.env,t)}})}async function Ti(e,t,n,r,o){let s=await o?.hooks?.preReset?.({repo:e,mode:"paths",target:r??null});if(Q(s))return{stdout:"",stderr:s.message??"",exitCode:1};let a=null;if(r){let l=await We(e,r);if(!l)return Ut(r);let u=await _e(e,l);a=(await M(e,u)).tree}else{let l=await X(e);l&&(a=(await M(e,l)).tree)}let i=await ce(e,a??null),c=await K(e);if(t.some(qn)){let l=t.map(m=>Ge(m,n)),u=new Set;for(let[m]of i)u.add(m);for(let m of c.entries)u.add(m.path);for(let m of u){if(!be(l,m))continue;let h=i.get(m);h?c=wt(c,{path:h.path,mode:parseInt(h.mode,8),hash:h.hash,stage:0,stat:Ce()}):c=ot(c,m)}}else for(let l of t){let u=i.get(l);if(u)c=wt(c,{path:u.path,mode:parseInt(u.mode,8),hash:u.hash,stage:0,stat:Ce()});else if(c.entries.some(h=>h.path===l))c=ot(c,l);else if(!(e.workTree&&await e.fs.exists(T(e.workTree,l))))return Ut(l)}await se(e,c);let d={stdout:await _f(e,c),stderr:"",exitCode:0};return await o?.hooks?.postReset?.({repo:e,mode:"paths",targetHash:null}),d}async function _f(e,t){if(!e.workTree)return"";let n=new Set;for(let a of t.entries)a.stage>0&&n.add(a.path);let o=(await $t(e,t)).filter(a=>a.status==="modified"||a.status==="deleted");if(o.length===0&&n.size===0)return"";let s=["Unstaged changes after reset:"];for(let a of o){let i=a.status==="modified"?"M":"D";s.push(`${i} ${a.path}`)}for(let a of[...n].sort())s.push(`U ${a}`);return s.sort((a,i)=>{if(a==="Unstaged changes after reset:")return-1;if(i==="Unstaged changes after reset:")return 1;let c=a.slice(2),f=i.slice(2);return c<f?-1:c>f?1:0}),`${s.join(`
574
+ `)}
575
+ `}async function Gf(e,t,n,r,o){let s=await o?.hooks?.preReset?.({repo:e,mode:n,target:t});if(Q(s))return{stdout:"",stderr:s.message??"",exitCode:1};let a=await We(e,t);if(!a)return Ut(t);let i=await _e(e,a),c=await M(e,i);if(n==="soft"){let m=await U(e,"MERGE_HEAD"),h=await K(e);if(m||It(h))return $("Cannot do a soft reset in the middle of a merge.")}let f=await X(e),d=await Z(e);d?.type==="symbolic"?await Y(e,d.target,i):await Y(e,"HEAD",i);let l=`reset: moving to ${t}`;if(d?.type==="symbolic"&&f!==i?await ne(e,r,d.target,f,i,l,!0):(d?.type==="symbolic"||f!==i)&&await ne(e,r,"HEAD",f,i,l),await Vn(e),n==="mixed"){let m=await qe(e,c.tree),h=ms(m.map(g=>({path:g.path,mode:parseInt(g.mode,8),hash:g.hash,stage:0,stat:Ce()})));await se(e,h);let p=await _f(e,h);if(p)return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:i}),{stdout:p,stderr:"",exitCode:0}}if(n==="hard"){let m=Ke(e);if(m)return m;let h=await K(e),p=await fn(e,c.tree,h);await se(e,{version:2,entries:p.newEntries}),await Se(e,p.worktreeOps)}let u=n==="hard"?`HEAD is now at ${V(i)} ${ae(c.message)}
576
+ `:"";return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:i}),{stdout:u,stderr:"",exitCode:0}}re();ke();ie();le();He();et();function Nf(e,t){e.command("restore",{description:"Restore working tree files",args:[q.string().name("pathspec").variadic().optional()],options:{source:ee.string().alias("s").describe("Restore from tree-ish"),staged:H().alias("S").describe("Restore the index"),worktree:H().alias("W").describe("Restore the working tree (default)"),ours:H().describe("Checkout our version for unmerged files"),theirs:H().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await B(r.fs,r.cwd,t);if(v(s))return s;let a=s,i=[...n.pathspec??[],...o.passthrough];if(i.length===0)return $("you must specify path(s) to restore");if(n.ours&&n.theirs)return $("--ours and --theirs are incompatible");let c=!!n.staged,f=n.worktree!==void 0?!!n.worktree:!c,d=lt(a,r.cwd);if(n.ours||n.theirs)return n.source?$("cannot specify both --source and --ours/--theirs"):c?$("cannot use --ours/--theirs with --staged"):Us(a,i,d,n.theirs?3:2,{deleteOnMissing:!0});let l=null;if(n.source){let u=await Ie(a,n.source,`could not resolve '${n.source}'`);if(v(u))return u;l=u.commit.tree}else if(c){let u=await X(a);u&&(l=(await M(a,u)).tree)}return c&&f?Fh(a,i,d,l):c?_h(a,i,d,l):l?Nh(a,i,d,l):Fs(a,i,d)}})}async function _h(e,t,n,r){let o=await ce(e,r),s=await K(e),a=t.map(f=>Ge(f,n)),i=new Set;for(let[f]of o)i.add(f);for(let f of s.entries)i.add(f.path);let c=!1;for(let f of i){if(!be(a,f))continue;c=!0;let d=o.get(f);if(d)s=wt(s,{path:d.path,mode:parseInt(d.mode,8),hash:d.hash,stage:0,stat:Ce()});else{if(s.entries.some(u=>u.path===f&&u.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
577
+ `,exitCode:1};s=ot(s,f)}}return c?(await se(e,s),{stdout:"",stderr:"",exitCode:0}):N(`error: pathspec '${t[0]}' did not match any file(s) known to git
578
+ `)}async function Nh(e,t,n,r){if(!e.workTree)return $("this operation must be run in a work tree");let o=await ce(e,r),s=t.map(f=>Ge(f,n)),a=[],i=await K(e),c=new Set;for(let[f]of o)c.add(f);for(let f of i.entries)c.add(f.path);for(let f of c)if(be(s,f)){if(!o.has(f)&&i.entries.some(l=>l.path===f&&l.stage!==0))return{stdout:"",stderr:`error: path '${f}' is unmerged
579
+ `,exitCode:1};a.push(f)}if(a.length===0)return N(`error: pathspec '${t[0]}' did not match any file(s) known to git
580
+ `);for(let f of a){let d=o.get(f);if(d)await it(e,{path:d.path,hash:d.hash,mode:d.mode});else{let l=`${e.workTree}/${f}`;await e.fs.exists(l)&&await e.fs.rm(l)}}return{stdout:"",stderr:"",exitCode:0}}async function Fh(e,t,n,r){if(!e.workTree)return $("this operation must be run in a work tree");let o=await ce(e,r),s=await K(e),a=t.map(f=>Ge(f,n)),i=[],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)be(a,f)&&i.push(f);if(i.length===0)return N(`error: pathspec '${t[0]}' did not match any file(s) known to git
581
+ `);for(let f of i){let d=o.get(f);if(d)s=wt(s,{path:d.path,mode:parseInt(d.mode,8),hash:d.hash,stage:0,stat:Ce()}),await it(e,{path:d.path,hash:d.hash,mode:d.mode});else{if(s.entries.some(m=>m.path===f&&m.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
582
+ `,exitCode:1};s=ot(s,f);let u=`${e.workTree}/${f}`;await e.fs.exists(u)&&await e.fs.rm(u)}}return await se(e,s),{stdout:"",stderr:"",exitCode:0}}re();de();le();an();function Ff(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:H().describe("Verify that exactly one parameter is provided and resolves to an object"),short:H().describe("Abbreviate object name (default 7 chars)"),"abbrev-ref":H().describe("Output abbreviated ref name instead of object hash"),"symbolic-full-name":H().describe("Output the full symbolic ref name"),"show-toplevel":H().describe("Show the absolute path of the top-level directory"),"git-dir":H().describe("Show the path to the .git directory"),"is-inside-work-tree":H().describe("Output whether cwd is inside the work tree"),"is-bare-repository":H().describe("Output whether the repository is bare"),"show-prefix":H().describe("Show path of cwd relative to top-level directory"),"show-cdup":H().describe("Show relative path from cwd up to top-level directory")},handler:async(n,r)=>{let o=n.args.filter(b=>b!==""),s=n.verify,a=n.short,i=n["abbrev-ref"],c=n["symbolic-full-name"],f=n["show-toplevel"],d=n["git-dir"],l=n["is-inside-work-tree"],u=n["is-bare-repository"],m=n["show-prefix"],h=n["show-cdup"],p=f||d||l||u||m||h,g=await B(r.fs,r.cwd,t);if(v(g))return g;let w=g,y=[];if(f){if(!w.workTree)return $("this operation must be run in a work tree");y.push(w.workTree)}if(d&&y.push(w.gitDir),l&&y.push(w.workTree?"true":"false"),u&&y.push(w.workTree?"false":"true"),m){if(!w.workTree)return $("this operation must be run in a work tree");let b=at(w.workTree,r.cwd);y.push(b===""?"":`${b}/`)}if(h){if(!w.workTree)return $("this operation must be run in a work tree");let b=at(r.cwd,w.workTree);y.push(b===""?"":`${b}/`)}if(p&&o.length===0)return{stdout:y.map(E=>`${E}
583
+ `).join(""),stderr:"",exitCode:0};if(s&&o.length!==1)return $("Needed a single revision");for(let b of o){if(i){let k=await Uh(w,b);if(k===null)return Hi(b,s);y.push(k);continue}if(c){let k=await Bh(w,b);if(k===null)return Hi(b,s);y.push(k);continue}let E=await We(w,b);if(!E)return Hi(b,s);y.push(a?V(E):E)}return{stdout:y.map(b=>`${b}
584
+ `).join(""),stderr:"",exitCode:0}}})}function Hi(e,t){return t?$("Needed a single revision"):Ut(e)}async function Uh(e,t){if(t==="HEAD"||t==="@"){let r=await Z(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 Bh(e,t){if(t==="HEAD"||t==="@"){let r=await Z(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}re();ke();ie();je();le();He();function Uf(e,t){e.command("revert",{description:"Revert some existing commits",args:[q.string().name("commit").describe("The commit to revert").optional()],options:{abort:H().describe("Abort the current revert operation"),continue:H().describe("Continue the revert after conflict resolution"),"no-commit":H().alias("n").describe("Apply changes without creating a commit"),"no-edit":H().describe("Do not edit the commit message"),mainline:ee.number().alias("m").describe("Select the parent number for reverting merges")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o;if(n.abort){let _=await t?.hooks?.preRevert?.({repo:s,mode:"abort",commit:null});if(Q(_))return{stdout:"",stderr:_.message??"",exitCode:1};let F=await Wh(s,r.env);return F.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),F}if(n.continue){let _=await t?.hooks?.preRevert?.({repo:s,mode:"continue",commit:null});if(Q(_))return{stdout:"",stderr:_.message??"",exitCode:1};let F=await qh(s,r.env);return F.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"continue",commitHash:null,hadConflicts:!1}),F}let a=n.commit;if(!a)return $("you must specify a commit to revert");let i=await t?.hooks?.preRevert?.({repo:s,mode:"revert",commit:a});if(Q(i))return{stdout:"",stderr:i.message??"",exitCode:1};let c=await Ie(s,a);if(v(c))return c;let f=c.hash,d=c.commit,l=await ze(s);if(v(l))return l;let u=await K(s),m=dn(u,"Reverting",`fatal: revert failed
585
+ `);if(m)return m;let h=await M(s,l);if(s.workTree){let _=await ce(s,h.tree);if(ar(u,_))return N(`error: your local changes would be overwritten by revert.
586
586
  hint: commit your changes or stash them to proceed.
587
587
  fatal: revert failed
588
- `,128)}let h=n.mainline,p;if(f.parents.length>1){if(h===void 0)return _(`error: commit ${c} is a merge but no -m option was given.
588
+ `,128)}let p=n.mainline,g;if(d.parents.length>1){if(p===void 0)return N(`error: commit ${f} is a merge but no -m option was given.
589
589
  fatal: revert failed
590
- `,128);if(h<1||h>f.parents.length)return _(`error: commit ${c} does not have parent ${h}
590
+ `,128);if(p<1||p>d.parents.length)return N(`error: commit ${f} does not have parent ${p}
591
591
  fatal: revert failed
592
- `,128);let v=f.parents[h-1];p=(await M(s,v)).tree}else if(f.parents.length===0)p=await Se(s,[]);else{let v=f.parents[0];p=(await M(s,v)).tree}let g=z(c),w=ie(f.message),k=Gh(f,c,h),b={a:"HEAD",b:w?`parent of ${g} (${w})`:`parent of ${g}`},E=await Mt(s,f.tree,m.tree,p,b);if(E.conflicts.length===0&&E.resultTree===m.tree){let v=E.messages.length>0?`${E.messages.join(`
592
+ `,128);let _=d.parents[p-1];g=(await M(s,_)).tree}else if(d.parents.length===0)g=await De(s,[]);else{let _=d.parents[0];g=(await M(s,_)).tree}let w=V(f),y=ae(d.message),R=Kh(d,f,p),b={a:"HEAD",b:y?`parent of ${w} (${y})`:`parent of ${w}`},E=await Lt(s,d.tree,h.tree,g,b);if(E.conflicts.length===0&&E.resultTree===h.tree){let _=E.messages.length>0?`${E.messages.join(`
593
593
  `)}
594
- `:"",W=await et(s,{fromCommit:!0}),F=await N(s,"CHERRY_PICK_HEAD");return{stdout:`${v}${W}`,stderr:F?`The previous cherry-pick is now empty, possibly due to conflict resolution.
594
+ `:"",F=await nt(s,{fromCommit:!0}),D=await U(s,"CHERRY_PICK_HEAD");return{stdout:`${_}${F}`,stderr:D?`The previous cherry-pick is now empty, possibly due to conflict resolution.
595
595
  If you wish to commit it anyway, use:
596
596
 
597
597
  git commit --allow-empty
598
598
 
599
599
  Otherwise, please use 'git cherry-pick --skip'
600
- `:"",exitCode:1}}let x=await dn(s,E,m.tree,{labels:b,errorExitCode:128,operationName:"merge",callerCommand:"revert",skipStagedChangeCheck:!0});if(!x.ok)return x;if(E.conflicts.length>0){await Y(s,"REVERT_HEAD",c),await Y(s,"ORIG_HEAD",d),await $e(s,"MERGE_MSG",k);let v=E.messages.join(`
601
- `);return await t?.hooks?.emitPost("post-revert",{mode:"revert",commitHash:null,hadConflicts:!0}),{stdout:v?`${v}
602
- `:"",stderr:`error: could not revert ${g}... ${ie(f.message)}
600
+ `:"",exitCode:1}}let k=await hn(s,E,h.tree,{labels:b,errorExitCode:128,operationName:"merge",callerCommand:"revert",skipStagedChangeCheck:!0});if(!k.ok)return k;if(E.conflicts.length>0){await Y(s,"REVERT_HEAD",f),await Y(s,"ORIG_HEAD",l),await Oe(s,"MERGE_MSG",R);let _=E.messages.join(`
601
+ `);return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:null,hadConflicts:!0}),{stdout:_?`${_}
602
+ `:"",stderr:`error: could not revert ${w}... ${ae(d.message)}
603
603
  hint: After resolving the conflicts, mark them with
604
604
  hint: "git add/rm <pathspec>", then run
605
605
  hint: "git revert --continue".
@@ -607,106 +607,106 @@ hint: You can instead skip this commit with "git revert --skip".
607
607
  hint: To abort and get back to the state before "git revert",
608
608
  hint: run "git revert --abort".
609
609
  hint: Disable this message with "git config set advice.mergeConflict false"
610
- `,exitCode:1}}if(n["no-commit"])return await Y(s,"REVERT_HEAD",c),await $e(s,"MERGE_MSG",k),{stdout:"",stderr:"",exitCode:0};let P=x.mergedTreeHash,C=await Yt(s,r.env);if(S(C))return C;let R=await Ve(s,r.env);if(S(R))return R;let y=await ft(s,P,[d],C,R,k);await Ht(s),await _t(s);let $=await Z(s),A=ie(k),L=$?.type==="symbolic"?$.target:"HEAD";await te(s,r.env,L,d,y,`revert: ${A}`,$?.type==="symbolic");let G=$?.type==="symbolic"?be($.target):"detached HEAD",V=await Zt(s,m.tree,P,C,R,C.timestamp!==R.timestamp||C.timezone!==R.timezone),j=It(G,y,k),O=E.messages.length>0?`${E.messages.join(`
610
+ `,exitCode:1}}if(n["no-commit"])return await Y(s,"REVERT_HEAD",f),await Oe(s,"MERGE_MSG",R),{stdout:"",stderr:"",exitCode:0};let C=k.mergedTreeHash,O=await Qt(s,r.env);if(v(O))return O;let x=await Ye(s,r.env);if(v(x))return x;let P=await ut(s,C,[l],O,x,R);await At(s),await Bt(s);let I=await Z(s),G=ae(R),j=I?.type==="symbolic"?I.target:"HEAD";await ne(s,r.env,j,l,P,`revert: ${G}`,I?.type==="symbolic");let z=I?.type==="symbolic"?we(I.target):"detached HEAD",A=await tn(s,h.tree,C,O,x,O.timestamp!==x.timestamp||O.timezone!==x.timezone),S=Ht(z,P,R),L=E.messages.length>0?`${E.messages.join(`
611
611
  `)}
612
- `:"";return await t?.hooks?.emitPost("post-revert",{mode:"revert",commitHash:y,hadConflicts:!1}),{stdout:`${O}${j}
613
- ${V}`,stderr:"",exitCode:0}}})}async function Mh(e,t){return await N(e,"REVERT_HEAD")?xn(e,t,{operationRef:"REVERT_HEAD",noOpError:_(`error: no cherry-pick or revert in progress
612
+ `:"";return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:P,hadConflicts:!1}),{stdout:`${L}${S}
613
+ ${A}`,stderr:"",exitCode:0}}})}async function Wh(e,t){return await U(e,"REVERT_HEAD")?On(e,t,{operationRef:"REVERT_HEAD",noOpError:N(`error: no cherry-pick or revert in progress
614
614
  fatal: revert failed
615
- `,128),operationName:"revert",clearState:Ht,origHeadAsTargetRev:!0}):await N(e,"CHERRY_PICK_HEAD")?xn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:_(`error: no cherry-pick or revert in progress
615
+ `,128),operationName:"revert",clearState:At,origHeadAsTargetRev:!0}):await U(e,"CHERRY_PICK_HEAD")?On(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:N(`error: no cherry-pick or revert in progress
616
616
  fatal: revert failed
617
- `,128),operationName:"revert",clearState:_t,origHeadAsTargetRev:!0}):_(`error: no cherry-pick or revert in progress
617
+ `,128),operationName:"revert",clearState:Bt,origHeadAsTargetRev:!0}):N(`error: no cherry-pick or revert in progress
618
618
  fatal: revert failed
619
- `,128)}async function jh(e,t){if(!await N(e,"REVERT_HEAD"))return _(`error: no cherry-pick or revert in progress
619
+ `,128)}async function qh(e,t){if(!await U(e,"REVERT_HEAD"))return N(`error: no cherry-pick or revert in progress
620
620
  fatal: revert failed
621
- `,128);let r=await q(e),o=on(r,"Committing");if(o)return o;let s=await Ee(e,"MERGE_MSG");if(!s)return _(`Aborting commit due to empty commit message.
622
- `,1);let i=ve(r),a=await Se(e,i),c=await Ke(e);if(S(c))return c;let f=await M(e,c),d=await Yt(e,t);if(S(d))return d;let l=await Ve(e,t);if(S(l))return l;let u=await N(e,"CHERRY_PICK_HEAD");u&&(d=(await M(e,u)).author);let m=Ot(s),h=await ft(e,a,[c],d,l,m);await Ht(e),await _t(e);let p=await Z(e),g=ie(m),w=p?.type==="symbolic"?p.target:"HEAD";await te(e,t,w,c,h,`commit: ${g}`,p?.type==="symbolic");let k=p?.type==="symbolic"?be(p.target):"detached HEAD",b=await Zt(e,f.tree,a,d,l,d.timestamp!==l.timestamp||d.timezone!==l.timezone);return{stdout:`${It(k,h,s)}
623
- ${b}`,stderr:"",exitCode:0}}function Gh(e,t,n){let r=ie(e.message),o='Revert "',a=`${r.startsWith(o)&&r.endsWith('"')?`Reapply "${r.slice(o.length,-1)}"`:`Revert "${r}"`}
621
+ `,128);let r=await K(e),o=dn(r,"Committing");if(o)return o;let s=await Ee(e,"MERGE_MSG");if(!s)return N(`Aborting commit due to empty commit message.
622
+ `,1);let a=Ae(r),i=await De(e,a),c=await ze(e);if(v(c))return c;let f=await M(e,c),d=await Qt(e,t);if(v(d))return d;let l=await Ye(e,t);if(v(l))return l;let u=await U(e,"CHERRY_PICK_HEAD");u&&(d=(await M(e,u)).author);let m=St(s),h=await ut(e,i,[c],d,l,m);await At(e),await Bt(e);let p=await Z(e),g=ae(m),w=p?.type==="symbolic"?p.target:"HEAD";await ne(e,t,w,c,h,`commit: ${g}`,p?.type==="symbolic");let y=p?.type==="symbolic"?we(p.target):"detached HEAD",R=await tn(e,f.tree,i,d,l,d.timestamp!==l.timestamp||d.timezone!==l.timezone);return{stdout:`${Ht(y,h,s)}
623
+ ${R}`,stderr:"",exitCode:0}}function Kh(e,t,n){let r=ae(e.message),o='Revert "',i=`${r.startsWith(o)&&r.endsWith('"')?`Reapply "${r.slice(o.length,-1)}"`:`Revert "${r}"`}
624
624
 
625
- This reverts commit ${t}`;if(n!==void 0&&e.parents.length>1&&n>=1){let c=e.parents[n===1?1:0]??e.parents[0];a+=`, reversing
626
- changes made to ${c}`}return a+=`.
627
- `,a}ne();xe();oe();ue();me();Gn();Te();function Ff(e,t){e.command("rm",{description:"Remove files from the working tree and from the index",args:[B.string().name("paths").describe("Files to remove").optional().variadic()],options:{cached:H().describe("Only remove from the index"),recursive:H().alias("r").describe("Allow recursive removal when a directory name is given"),force:H().alias("f").describe("Override the up-to-date check"),dryRun:H().alias("n").describe("Don't actually remove any file(s)")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,i=qe(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,d=n.recursive,l=n.force;if(t?.hooks){let w=await t.hooks.emitPre("pre-rm",{paths:c,cached:f,recursive:d,force:l});if(w)return{stdout:"",stderr:w.message??"",exitCode:1}}let u=await q(s),m=[],h=ct(s,r.cwd);for(let w of c){if(Un(w)){let x=[Le(w,h)],P=u.entries.filter(C=>ye(x,C.path));if(P.length===0)return I(`pathspec '${w}' did not match any files`);for(let C of P)m.push(C.path);continue}let k=xt(r.cwd,w),b=st(a,k);if((b==="."||b==="")&&(b=""),b.startsWith(".."))return I(`'${w}' is outside repository at '${a}'`);if(await r.fs.exists(k)&&!(await ot(r.fs,k)).isSymbolicLink&&(await ot(r.fs,k)).isDirectory){if(!d)return I(`not removing '${b}' recursively without -r`);let x=b===""?"":`${b}/`,P=u.entries.filter(C=>x===""||C.path.startsWith(x));if(P.length===0)return I(`pathspec '${w}' did not match any files`);for(let C of P)m.push(C.path)}else{if(!u.entries.some(P=>P.path===b))return I(`pathspec '${w}' did not match any files`);m.push(b)}}if(!l){let w=await Lh(s,u,m,f);if(w)return w}if(n.dryRun){let w=m.map(b=>`rm '${b}'`);return{stdout:w.length>0?`${w.join(`
625
+ This reverts commit ${t}`;if(n!==void 0&&e.parents.length>1&&n>=1){let c=e.parents[n===1?1:0]??e.parents[0];i+=`, reversing
626
+ changes made to ${c}`}return i+=`.
627
+ `,i}re();ke();ie();de();le();Nn();He();function Bf(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:H().describe("Only remove from the index"),recursive:H().alias("r").describe("Allow recursive removal when a directory name is given"),force:H().alias("f").describe("Override the up-to-date check"),dryRun:H().alias("n").describe("Don't actually remove any file(s)")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,a=Ke(s);if(a)return a;let i=s.workTree,c=n.paths;if(c.length===0)return N("usage: git rm [--cached] [-f] [-r] <file>...");let f=n.cached,d=n.recursive,l=n.force,u=await t?.hooks?.preRm?.({repo:s,paths:c,cached:f,recursive:d,force:l});if(Q(u))return{stdout:"",stderr:u.message??"",exitCode:1};let m=await K(s),h=[],p=lt(s,r.cwd);for(let y of c){if(qn(y)){let k=[Ge(y,p)],C=m.entries.filter(O=>be(k,O.path));if(C.length===0)return $(`pathspec '${y}' did not match any files`);for(let O of C)h.push(O.path);continue}let R=Pt(r.cwd,y),b=at(i,R);if((b==="."||b==="")&&(b=""),b.startsWith(".."))return $(`'${y}' is outside repository at '${i}'`);if(await r.fs.exists(R)&&!(await ct(r.fs,R)).isSymbolicLink&&(await ct(r.fs,R)).isDirectory){if(!d)return $(`not removing '${b}' recursively without -r`);let k=b===""?"":`${b}/`,C=m.entries.filter(O=>k===""||O.path.startsWith(k));if(C.length===0)return $(`pathspec '${y}' did not match any files`);for(let O of C)h.push(O.path)}else{if(!m.entries.some(C=>C.path===b))return $(`pathspec '${y}' did not match any files`);h.push(b)}}if(!l){let y=await zh(s,m,h,f);if(y)return y}if(n.dryRun){let y=h.map(b=>`rm '${b}'`);return{stdout:y.length>0?`${y.join(`
628
628
  `)}
629
- `:"",stderr:"",exitCode:0}}let p=[];for(let w of m){if(u=nt(u,w),!f){let k=T(a,w);await ot(r.fs,k).then(()=>!0).catch(()=>!1)&&await r.fs.rm(k)}p.push(`rm '${w}'`)}await re(s,u);let g=p.length>0?`${p.join(`
629
+ `:"",stderr:"",exitCode:0}}let g=[];for(let y of h){if(m=ot(m,y),!f){let R=T(i,y);await ct(r.fs,R).then(()=>!0).catch(()=>!1)&&await r.fs.rm(R)}g.push(`rm '${y}'`)}await se(s,m);let w=g.length>0?`${g.join(`
630
630
  `)}
631
- `:"";return await t?.hooks?.emitPost("post-rm",{removedPaths:m,cached:f}),{stdout:g,stderr:"",exitCode:0}}})}async function Lh(e,t,n,r){let o=await X(e),s=new Map;if(o){let f=await M(e,o),d=await We(e,f.tree);for(let l of d)s.set(l.path,l.hash)}let i=[],a=[],c=[];for(let f of n){let d=t.entries.find(h=>h.path===f&&h.stage===0);if(!d)continue;let u=s.get(f)!==d.hash,m=!1;if(e.workTree){let h=T(e.workTree,f),p=!1;try{await ot(e.fs,h),p=!0}catch{p=!1}p&&(m=await yn(e.fs,h)!==d.hash)}u&&m?i.push(f):u&&!r?a.push(f):m&&!r&&c.push(f)}if(i.length>0){let f=i.map(l=>` ${l}`).join(`
632
- `),d=i.length===1?"the following file has":"the following files have";return _(`error: ${d} staged content different from both the
631
+ `:"";return await t?.hooks?.postRm?.({repo:s,removedPaths:h,cached:f}),{stdout:w,stderr:"",exitCode:0}}})}async function zh(e,t,n,r){let o=await X(e),s=new Map;if(o){let f=await M(e,o),d=await qe(e,f.tree);for(let l of d)s.set(l.path,l.hash)}let a=[],i=[],c=[];for(let f of n){let d=t.entries.find(h=>h.path===f&&h.stage===0);if(!d)continue;let u=s.get(f)!==d.hash,m=!1;if(e.workTree){let h=T(e.workTree,f),p=!1;try{await ct(e.fs,h),p=!0}catch{p=!1}p&&(m=await xn(e.fs,h)!==d.hash)}u&&m?a.push(f):u&&!r?i.push(f):m&&!r&&c.push(f)}if(a.length>0){let f=a.map(l=>` ${l}`).join(`
632
+ `),d=a.length===1?"the following file has":"the following files have";return N(`error: ${d} staged content different from both the
633
633
  file and the HEAD:
634
634
  ${f}
635
635
  (use -f to force removal)
636
- `)}if(a.length>0){let f=a.map(l=>` ${l}`).join(`
637
- `),d=a.length===1?"the following file has":"the following files have";return _(`error: ${d} changes staged in the index:
636
+ `)}if(i.length>0){let f=i.map(l=>` ${l}`).join(`
637
+ `),d=i.length===1?"the following file has":"the following files have";return N(`error: ${d} changes staged in the index:
638
638
  ${f}
639
639
  (use --cached to keep the file, or -f to force removal)
640
640
  `)}if(c.length>0){let f=c.map(l=>` ${l}`).join(`
641
- `),d=c.length===1?"the following file has":"the following files have";return _(`error: ${d} local modifications:
641
+ `),d=c.length===1?"the following file has":"the following files have";return N(`error: ${d} local modifications:
642
642
  ${f}
643
643
  (use --cached to keep the file, or -f to force removal)
644
- `)}return null}ne();oe();nn();gs();ue();Te();var Ri=new TextDecoder;function Uf(e,t){e.command("show",{description:"Show various types of objects",args:[B.string().name("object").variadic().optional()],handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o,a=n.object[0]??"HEAD",c=Ea(a);if(c)return _h(s,c.rev,c.path);if(a==="HEAD"){let l=await Ke(s);if(S(l))return l}let f=await $t(s,a,`bad object '${a}'`);if(S(f))return f;let d=await ge(s,f);switch(d.type){case"commit":{let l=await M(s,f);return{stdout:await Bf(s,f,l),stderr:"",exitCode:0}}case"tag":{let l=await ua(s,f);return{stdout:await Nh(s,l),stderr:"",exitCode:0}}case"tree":{let l=En(d.content);return{stdout:Wf(l),stderr:"",exitCode:0}}case"blob":return{stdout:Ri.decode(d.content),stderr:"",exitCode:0}}}})}async function _h(e,t,n){let r=await Ie(e,t);if(S(r))return r;let o=r.commit.tree,s=n.replace(/^\//,""),a=(await fe(e,o)).get(s);if(!a){let f=`path '${s}' does not exist in '${t}'`;if(e.workTree){let d=T(e.workTree,s);await e.fs.exists(d)&&(f=`path '${s}' exists on disk, but not in '${t}'`)}return I(f)}let c=await ge(e,a.hash);if(c.type==="blob")return{stdout:Ri.decode(c.content),stderr:"",exitCode:0};if(c.type==="tree"){let f=En(c.content);return{stdout:Wf(f),stderr:"",exitCode:0}}return{stdout:Ri.decode(c.content),stderr:"",exitCode:0}}async function Bf(e,t,n){let r=[];if(r.push(`commit ${t}`),n.parents.length>=2){let s=n.parents.map(i=>z(i)).join(" ");r.push(`Merge: ${s}`)}r.push(`Author: ${n.author.name} <${n.author.email}>`),r.push(`Date: ${St(n.author.timestamp,n.author.timezone)}`),r.push("");let o=n.message.replace(/\n$/,"");for(let s of o.split(`
645
- `))r.push(` ${s}`);if(n.parents.length<=1){let s=n.parents.length===1?(await M(e,n.parents[0])).tree:null,i=await Ne(e,s,n.tree),{remaining:a,renames:c}=await Qe(e,i),f=await Bh(e,a,c);f&&(r.push(""),r.push(f.replace(/\n$/,"")))}else{let s=await Wh(e,n);s?(r.push(""),r.push(s.replace(/\n$/,""))):r.push("")}return`${r.join(`
644
+ `)}return null}re();ie();an();ks();de();He();var Si=new TextDecoder;function Wf(e,t){e.command("show",{description:"Show various types of objects",args:[q.string().name("object").variadic().optional()],handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o,i=n.object[0]??"HEAD",c=Pa(i);if(c)return Vh(s,c.rev,c.path);if(i==="HEAD"){let l=await ze(s);if(v(l))return l}let f=await Tt(s,i,`bad object '${i}'`);if(v(f))return f;let d=await ge(s,f);switch(d.type){case"commit":{let l=await M(s,f);return{stdout:await qf(s,f,l),stderr:"",exitCode:0}}case"tag":{let l=await ba(s,f);return{stdout:await Yh(s,l),stderr:"",exitCode:0}}case"tree":{let l=Cn(d.content);return{stdout:Kf(l),stderr:"",exitCode:0}}case"blob":return{stdout:Si.decode(d.content),stderr:"",exitCode:0}}}})}async function Vh(e,t,n){let r=await Ie(e,t);if(v(r))return r;let o=r.commit.tree,s=n.replace(/^\//,""),i=(await ce(e,o)).get(s);if(!i){let f=`path '${s}' does not exist in '${t}'`;if(e.workTree){let d=T(e.workTree,s);await e.fs.exists(d)&&(f=`path '${s}' exists on disk, but not in '${t}'`)}return $(f)}let c=await ge(e,i.hash);if(c.type==="blob")return{stdout:Si.decode(c.content),stderr:"",exitCode:0};if(c.type==="tree"){let f=Cn(c.content);return{stdout:Kf(f),stderr:"",exitCode:0}}return{stdout:Si.decode(c.content),stderr:"",exitCode:0}}async function qf(e,t,n){let r=[];if(r.push(`commit ${t}`),n.parents.length>=2){let s=n.parents.map(a=>V(a)).join(" ");r.push(`Merge: ${s}`)}r.push(`Author: ${n.author.name} <${n.author.email}>`),r.push(`Date: ${jt(n.author.timestamp,n.author.timezone)}`),r.push("");let o=n.message.replace(/\n$/,"");for(let s of o.split(`
645
+ `))r.push(` ${s}`);if(n.parents.length<=1){let s=n.parents.length===1?(await M(e,n.parents[0])).tree:null,a=await Ne(e,s,n.tree),{remaining:i,renames:c}=await tt(e,a),f=await Jh(e,i,c);f&&(r.push(""),r.push(f.replace(/\n$/,"")))}else{let s=await Qh(e,n);s?(r.push(""),r.push(s.replace(/\n$/,""))):r.push("")}return`${r.join(`
646
646
  `)}
647
- `}async function Nh(e,t){let n=[];n.push(`tag ${t.name}`),n.push(`Tagger: ${t.tagger.name} <${t.tagger.email}>`),n.push(`Date: ${St(t.tagger.timestamp,t.tagger.timezone)}`),n.push("");let r=t.message.replace(/\n$/,"");for(let o of r.split(`
648
- `))n.push(` ${o}`);if(t.objectType==="commit"){let o=await M(e,t.object),s=await Bf(e,t.object,o);n.push(""),n.push(s.replace(/\n$/,""))}return`${n.join(`
647
+ `}async function Yh(e,t){let n=[];n.push(`tag ${t.name}`),n.push(`Tagger: ${t.tagger.name} <${t.tagger.email}>`),n.push(`Date: ${jt(t.tagger.timestamp,t.tagger.timezone)}`),n.push("");let r=t.message.replace(/\n$/,"");for(let o of r.split(`
648
+ `))n.push(` ${o}`);if(t.objectType==="commit"){let o=await M(e,t.object),s=await qf(e,t.object,o);n.push(""),n.push(s.replace(/\n$/,""))}return`${n.join(`
649
649
  `)}
650
- `}function Wf(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(`
650
+ `}function Kf(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(`
651
651
  `)}
652
- `:""}async function Fh(e,t){let n=t.oldHash?await se(e,t.oldHash):"",r=t.newHash?await se(e,t.newHash):"";return yt({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash})}async function Uh(e,t){let n=t.oldHash?await se(e,t.oldHash):"",r=t.newHash?await se(e,t.newHash):"";return yt({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 Bh(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 Uh(e,s.entry):o+=await Fh(e,s.entry);return o}async function Wh(e,t){if(t.parents.length<2)return"";let n=await Promise.all(t.parents.map(async a=>{let c=await M(e,a);return fe(e,c.tree)})),r=await fe(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(l=>(l.get(a)?.hash??null)!==f)&&s.push(a)}if(s.sort(),s.length===0)return"";let i="";for(let a of s)i+=await qh(e,a,n,r);return i}async function qh(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),d=await Promise.all(c.map(async u=>u?await se(e,u):"")),l=i?await se(e,i):"";return Qs({path:t,parentHashes:c,parentModes:f,parentContents:d,resultHash:i,resultMode:a,resultContent:l})}ne();xe();oe();me();ne();ln();xe();oe();en();ue();Ge();me();Te();Vt();Je();var Ft="refs/stash";function Ii(e,t){return Ce(e.replaceAll("/","\0"),t.replaceAll("/","\0"))}async function qf(e){let t=await ze(e,Ft),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 hr(e,t){let n=await ze(e,Ft);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 Kf(e,t,n,r){if(!e.workTree)throw new Error("Cannot stash in a bare repository");let o=e.workTree,s=await X(e);if(!s)return null;let i=await M(e,s),a=await q(e),c=ve(a),f=await Se(e,c),d=await Ne(e,i.tree,f),l=new Map(c.map(D=>[D.path,D])),u=await Ze(e,o,"",{skipIgnore:!0}),m=!1;for(let D of u){let K=l.get(D);if(!K)continue;let ae=T(o,D),ee=await e.fs.readFileBuffer(ae);if(await pt("blob",ee)!==K.hash){m=!0;break}}if(!m)for(let[D]of l){let K=T(o,D);if(!await e.fs.exists(K)){m=!0;break}}let h=[];if(r?.includeUntracked){let D=await Ze(e,o,"");for(let K of D)l.has(K)||h.push(K)}if(d.length===0&&!m&&h.length===0)return null;let p=await ns(e,t),g=await br(e,t),w=await Z(e),k=w?.type==="symbolic"?be(w.target):"(no branch)",b=z(s),E=ie(i.message),x=`index on ${k}: ${b} ${E}
653
- `,P=qt({type:"commit",tree:f,parents:[s],author:p,committer:g,message:x}),C=await Re(e,"commit",P),R=await fe(e,i.tree),y=[],$=new Set;for(let D of u){let K=l.get(D),ae=R.get(D);if(!K&&!ae)continue;let ee=T(o,D),le=await e.fs.readFileBuffer(ee),je=await Re(e,"blob",le),Jt=K?K.mode:parseInt(ae?.mode??"100644",8);y.push({path:D,mode:Jt,hash:je,stage:0,stat:Pe()}),$.add(D)}for(let[D,K]of l)$.has(D)||R.has(D)||y.push({path:D,mode:K.mode,hash:K.hash,stage:0,stat:Pe()});let A=await Se(e,y),L=null;if(r?.includeUntracked){let D=[];for(let le of h){let je=T(o,le),Jt=await e.fs.readFileBuffer(je),De=await Re(e,"blob",Jt);D.push({path:le,mode:33188,hash:De,stage:0,stat:Pe()})}let K=await Se(e,D),ae=`untracked files on ${k}: ${b} ${E}
654
- `,ee=qt({type:"commit",tree:K,parents:[],author:p,committer:g,message:ae});L=await Re(e,"commit",ee)}let G=n?`On ${k}: ${n}`:`WIP on ${k}: ${b} ${E}`,V=[s,C];L&&V.push(L);let j=qt({type:"commit",tree:A,parents:V,author:p,committer:g,message:G}),O=await Re(e,"commit",j),v=await hr(e,0)??J;await Ue(e,Ft,{oldHash:v,newHash:O,name:g.name,email:g.email,timestamp:g.timestamp,tz:g.timezone,message:G.trimEnd()}),await Y(e,Ft,O);let W=await sn(e,i.tree,a);await re(e,{version:2,entries:W.newEntries}),await He(e,W.worktreeOps),(await Z(e))?.type==="symbolic"&&await te(e,t,"HEAD",s,s,"reset: moving to HEAD");for(let D of["CHERRY_PICK_HEAD","MERGE_HEAD","ORIG_HEAD","REVERT_HEAD"])await de(e,D);for(let D of["MERGE_MSG","MERGE_MODE","SQUASH_MSG"]){let K=T(e.gitDir,D);await e.fs.exists(K)&&await e.fs.rm(K)}if(h.length>0)for(let D of h){if(R.has(D))continue;let K=T(o,D);await e.fs.exists(K)&&(await e.fs.rm(K),await Nn(e.fs,Ut(K),o))}return O}async function $i(e,t){let n=e.workTree,r=await M(e,t),o=await We(e,r.tree),s=[];for(let i of o){let a=T(n,i.path);await e.fs.exists(a)?s.push(i.path):await rt(e,i)}return s.length>0?(s.sort(Ii),{ok:!1,stdout:"",stderr:`${s.map(i=>`${i} already exists, no checkout`).join(`
652
+ `:""}async function Xh(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Rt({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash})}async function Zh(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Rt({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 Jh(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,a)=>{let i=s.type==="diff"?s.entry.path:s.entry.newPath,c=a.type==="diff"?a.entry.path:a.entry.newPath;return i<c?-1:i>c?1:0});let o="";for(let s of r)s.type==="rename"?o+=await Zh(e,s.entry):o+=await Xh(e,s.entry);return o}async function Qh(e,t){if(t.parents.length<2)return"";let n=await Promise.all(t.parents.map(async i=>{let c=await M(e,i);return ce(e,c.tree)})),r=await ce(e,t.tree),o=new Set;for(let i of n)for(let c of i.keys())o.add(c);for(let i of r.keys())o.add(i);let s=[];for(let i of o){let f=r.get(i)?.hash??null;n.every(l=>(l.get(i)?.hash??null)!==f)&&s.push(i)}if(s.sort(),s.length===0)return"";let a="";for(let i of s)a+=await ep(e,i,n,r);return a}async function ep(e,t,n,r){let o=r.get(t),s=n.map(u=>u.get(t)??null),a=o?.hash??null,i=o?.mode??null,c=s.map(u=>u?.hash??null),f=s.map(u=>u?.mode??null),d=await Promise.all(c.map(async u=>u?await oe(e,u):"")),l=a?await oe(e,a):"";return oo({path:t,parentHashes:c,parentModes:f,parentContents:d,resultHash:a,resultMode:i,resultContent:l})}re();ke();ie();le();re();pn();ke();ie();sn();de();je();le();He();Jt();et();var qt="refs/stash";function Ai(e,t){return Re(e.replaceAll("/","\0"),t.replaceAll("/","\0"))}async function zf(e){let t=await Ve(e,qt),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 yr(e,t){let n=await Ve(e,qt);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 Vf(e,t,n,r){if(!e.workTree)throw new Error("Cannot stash in a bare repository");let o=e.workTree,s=await X(e);if(!s)return null;let a=await M(e,s),i=await K(e),c=Ae(i),f=await De(e,c),d=await Ne(e,a.tree,f),l=new Map(c.map(D=>[D.path,D])),u=await Qe(e,o,"",{skipIgnore:!0}),m=!1;for(let D of u){let W=l.get(D);if(!W)continue;let te=T(o,D),$e=await e.fs.readFileBuffer(te);if(await bt("blob",$e)!==W.hash){m=!0;break}}if(!m)for(let[D]of l){let W=T(o,D);if(!await e.fs.exists(W)){m=!0;break}}let h=[];if(r?.includeUntracked){let D=await Qe(e,o,"");for(let W of D)l.has(W)||h.push(W)}if(d.length===0&&!m&&h.length===0)return null;let p=await ds(e,t),g=await Cr(e,t),w=await Z(e),y=w?.type==="symbolic"?we(w.target):"(no branch)",R=V(s),b=ae(a.message),E=`index on ${y}: ${R} ${b}
653
+ `,k=Yt({type:"commit",tree:f,parents:[s],author:p,committer:g,message:E}),C=await Pe(e,"commit",k),O=await ce(e,a.tree),x=[],P=new Set;for(let D of u){let W=l.get(D),te=O.get(D);if(!W&&!te)continue;let $e=T(o,D),Le=await e.fs.readFileBuffer($e),st=await Pe(e,"blob",Le),xe=W?W.mode:parseInt(te?.mode??"100644",8);x.push({path:D,mode:xe,hash:st,stage:0,stat:Ce()}),P.add(D)}for(let[D,W]of l)P.has(D)||O.has(D)||x.push({path:D,mode:W.mode,hash:W.hash,stage:0,stat:Ce()});let I=await De(e,x),G=null;if(r?.includeUntracked){let D=[];for(let Le of h){let st=T(o,Le),xe=await e.fs.readFileBuffer(st),Me=await Pe(e,"blob",xe);D.push({path:Le,mode:33188,hash:Me,stage:0,stat:Ce()})}let W=await De(e,D),te=`untracked files on ${y}: ${R} ${b}
654
+ `,$e=Yt({type:"commit",tree:W,parents:[],author:p,committer:g,message:te});G=await Pe(e,"commit",$e)}let j=n?`On ${y}: ${n}`:`WIP on ${y}: ${R} ${b}`,z=[s,C];G&&z.push(G);let A=Yt({type:"commit",tree:I,parents:z,author:p,committer:g,message:j}),S=await Pe(e,"commit",A),L=await yr(e,0)??J;await Be(e,qt,{oldHash:L,newHash:S,name:g.name,email:g.email,timestamp:g.timestamp,tz:g.timezone,message:j.trimEnd()}),await Y(e,qt,S);let _=await fn(e,a.tree,i);await se(e,{version:2,entries:_.newEntries}),await Se(e,_.worktreeOps),(await Z(e))?.type==="symbolic"&&await ne(e,t,"HEAD",s,s,"reset: moving to HEAD");for(let D of["CHERRY_PICK_HEAD","MERGE_HEAD","ORIG_HEAD","REVERT_HEAD"])await fe(e,D);for(let D of["MERGE_MSG","MERGE_MODE","SQUASH_MSG"]){let W=T(e.gitDir,D);await e.fs.exists(W)&&await e.fs.rm(W)}if(h.length>0)for(let D of h){if(O.has(D))continue;let W=T(o,D);await e.fs.exists(W)&&(await e.fs.rm(W),await Bn(e.fs,Kt(W),o))}return S}async function vi(e,t){let n=e.workTree,r=await M(e,t),o=await qe(e,r.tree),s=[];for(let a of o){let i=T(n,a.path);await e.fs.exists(i)?s.push(a.path):await it(e,a)}return s.length>0?(s.sort(Ai),{ok:!1,stdout:"",stderr:`${s.map(a=>`${a} already exists, no checkout`).join(`
655
655
  `)}
656
656
  error: could not restore untracked files from stash
657
- `,exitCode:1}):{ok:!0,hasConflicts:!1,messages:[]}}async function Oi(e,t=0){if(!e.workTree)return{ok:!1,stdout:"",stderr:`fatal: this operation must be run in a work tree
658
- `,exitCode:128};let n=await hr(e,t);if(!n)return{ok:!1,stdout:"",stderr:`error: stash@{${t}} is not a valid reference
657
+ `,exitCode:1}):{ok:!0,hasConflicts:!1,messages:[]}}async function Di(e,t=0){if(!e.workTree)return{ok:!1,stdout:"",stderr:`fatal: this operation must be run in a work tree
658
+ `,exitCode:128};let n=await yr(e,t);if(!n)return{ok:!1,stdout:"",stderr:`error: stash@{${t}} is not a valid reference
659
659
  `,exitCode:1};if(!await X(e))return{ok:!1,stdout:"",stderr:`error: your current branch does not have any commits yet
660
- `,exitCode:1};let o=await q(e),s=Gt(o).sort();if(s.length>0)return{ok:!1,stdout:`${s.map(R=>`${R}: needs merge`).join(`
660
+ `,exitCode:1};let o=await K(e),s=Nt(o).sort();if(s.length>0)return{ok:!1,stdout:`${s.map(O=>`${O}: needs merge`).join(`
661
661
  `)}
662
662
  `,stderr:`error: could not write index
663
- `,exitCode:1};let i=await M(e,n),a=i.parents[0];if(!a)return{ok:!1,stdout:"",stderr:`error: invalid stash commit (no parent)
664
- `,exitCode:1};let c=await M(e,a),f=i.parents[2],d=ve(o),l=await Se(e,d),u={a:"Updated upstream",b:"Stashed changes"};if(c.tree===i.tree){if(f){let C=await $i(e,f);if(!C.ok)return{...C,messages:["Already up to date."]}}return{ok:!0,hasConflicts:!1,messages:["Already up to date."]}}let m=await Mt(e,c.tree,l,i.tree,u),h=await fe(e,l),p=await fe(e,m.resultTree),g=[];for(let[C,R]of p){let y=h.get(C);(!y||y.hash!==R.hash)&&g.push({path:C,type:"checkout",hash:R.hash,mode:parseInt(R.mode,8)})}for(let[C]of h)p.has(C)||g.push({path:C,type:"delete"});let w=new Map(d.map(C=>[C.path,C])),k=[],b=[];for(let C of g){let R=w.get(C.path),y=T(e.workTree,C.path);if(R){if(!await e.fs.exists(y))continue;let $=await e.fs.readFileBuffer(y);await pt("blob",$)!==R.hash&&k.push(C.path)}else C.type==="checkout"&&await e.fs.exists(y)&&b.push(C.path)}if(k.length>0||b.length>0){k.sort(Ii),b.sort(Ii);let C="";if(k.length>0&&(C+=`error: Your local changes to the following files would be overwritten by merge:
665
- ${k.map(R=>` ${R}`).join(`
663
+ `,exitCode:1};let a=await M(e,n),i=a.parents[0];if(!i)return{ok:!1,stdout:"",stderr:`error: invalid stash commit (no parent)
664
+ `,exitCode:1};let c=await M(e,i),f=a.parents[2],d=Ae(o),l=await De(e,d),u={a:"Updated upstream",b:"Stashed changes"};if(c.tree===a.tree){if(f){let C=await vi(e,f);if(!C.ok)return{...C,messages:["Already up to date."]}}return{ok:!0,hasConflicts:!1,messages:["Already up to date."]}}let m=await Lt(e,c.tree,l,a.tree,u),h=await ce(e,l),p=await ce(e,m.resultTree),g=[];for(let[C,O]of p){let x=h.get(C);(!x||x.hash!==O.hash)&&g.push({path:C,type:"checkout",hash:O.hash,mode:parseInt(O.mode,8)})}for(let[C]of h)p.has(C)||g.push({path:C,type:"delete"});let w=new Map(d.map(C=>[C.path,C])),y=[],R=[];for(let C of g){let O=w.get(C.path),x=T(e.workTree,C.path);if(O){if(!await e.fs.exists(x))continue;let P=await e.fs.readFileBuffer(x);await bt("blob",P)!==O.hash&&y.push(C.path)}else C.type==="checkout"&&await e.fs.exists(x)&&R.push(C.path)}if(y.length>0||R.length>0){y.sort(Ai),R.sort(Ai);let C="";if(y.length>0&&(C+=`error: Your local changes to the following files would be overwritten by merge:
665
+ ${y.map(O=>` ${O}`).join(`
666
666
  `)}
667
667
  Please commit your changes or stash them before you merge.
668
- `),b.length>0&&(C+=`error: The following untracked working tree files would be overwritten by merge:
669
- ${b.map(R=>` ${R}`).join(`
668
+ `),R.length>0&&(C+=`error: The following untracked working tree files would be overwritten by merge:
669
+ ${R.map(O=>` ${O}`).join(`
670
670
  `)}
671
671
  Please move or remove them before you merge.
672
672
  `),C+=`Aborting
673
- `,f){let R=await $i(e,f);R.ok||(C+=R.stderr)}return{ok:!1,stdout:"",stderr:C,exitCode:1}}await He(e,g);let E=new Set(m.conflicts.map(C=>C.path)),x=new Set;for(let C of m.entries)C.stage>0&&x.add(C.path);let P=E.size>0;if(P){let C=[];for(let[R,y]of p){if(E.has(R)||x.has(R))continue;let $=w.get(R);C.push({path:R,mode:parseInt(y.mode,8),hash:y.hash,stage:0,stat:$?.stat??Pe()})}for(let R of m.entries)R.stage>0&&C.push(R);C.sort((R,y)=>Ce(R.path,y.path)||R.stage-y.stage),await re(e,{version:2,entries:C})}else{let C=[...o.entries],R=new Set(C.map(y=>y.path));for(let[y,$]of p)h.has(y)||R.has(y)||C.push({path:y,mode:parseInt($.mode,8),hash:$.hash,stage:0,stat:Pe()});C.sort((y,$)=>Ce(y.path,$.path)||y.stage-$.stage),await re(e,{version:2,entries:C})}if(f){let C=await $i(e,f);if(!C.ok)return{...C,messages:m.messages}}return{ok:!0,hasConflicts:P,messages:m.messages}}async function Ti(e,t=0){let n=await ze(e,Ft);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 de(e,Ft),await $r(e,Ft);else{await bn(e,Ft,n);let o=n[n.length-1];o&&await Y(e,Ft,o.newHash)}return null}async function zf(e){await de(e,Ft),await $r(e,Ft)}Te();function co(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 Kh(e,t){let n=t.oldHash?await se(e,t.oldHash):"",r=t.newHash?await se(e,t.newHash):"";return yt({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode})}async function An(e,t,n){return e?.hooks?e.hooks.emitPre("pre-stash",{action:t,ref:n}):null}async function vn(e,t,n){await e?.hooks?.emitPost("post-stash",{action:t,ok:n})}function Yf(e,t){let n=e.command("stash",{description:"Stash the changes in a dirty working directory away",options:{message:Q.string().alias("m").describe("Stash message"),"include-untracked":H().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 U(o.fs,o.cwd,t);if(S(s))return s;let i=await An(t,"push",null);if(i)return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Vf(s,o.env,r.message,r["include-untracked"]);return await vn(t,"push",a.exitCode===0),a}});n.command("push",{description:"Save your local modifications to a new stash entry",options:{message:Q.string().alias("m").describe("Stash message"),"include-untracked":H().alias("u").describe("Also stash untracked files")},handler:async(r,o)=>{let s=await U(o.fs,o.cwd,t);if(S(s))return s;let i=await An(t,"push",null);if(i)return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Vf(s,o.env,r.message,r["include-untracked"]);return await vn(t,"push",a.exitCode===0),a}}),n.command("pop",{description:"Remove a single stash entry and apply it on top of the current working tree",args:[B.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await U(o.fs,o.cwd,t);if(S(s))return s;let i=await An(t,"pop",r.stash??null);if(i)return{stdout:"",stderr:i.message??"",exitCode:1};let a=await zh(s,r.stash);return await vn(t,"pop",a.exitCode===0),a}}),n.command("apply",{description:"Apply a stash entry on top of the current working tree",args:[B.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await U(o.fs,o.cwd,t);if(S(s))return s;let i=await An(t,"apply",r.stash??null);if(i)return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Vh(s,r.stash);return await vn(t,"apply",a.exitCode===0),a}}),n.command("list",{description:"List the stash entries that you currently have",handler:async(r,o)=>{let s=await U(o.fs,o.cwd,t);if(S(s))return s;let i=await An(t,"list",null);if(i)return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Yh(s);return await vn(t,"list",a.exitCode===0),a}}),n.command("drop",{description:"Remove a single stash entry from the list of stash entries",args:[B.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await U(o.fs,o.cwd,t);if(S(s))return s;let i=await An(t,"drop",r.stash??null);if(i)return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Xh(s,r.stash);return await vn(t,"drop",a.exitCode===0),a}}),n.command("show",{description:"Show the changes recorded in a stash entry as a diff",args:[B.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await U(o.fs,o.cwd,t);if(S(s))return s;let i=await An(t,"show",r.stash??null);if(i)return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Zh(s,r.stash);return await vn(t,"show",a.exitCode===0),a}}),n.command("clear",{description:"Remove all the stash entries",handler:async(r,o)=>{let s=await U(o.fs,o.cwd,t);if(S(s))return s;let i=await An(t,"clear",null);if(i)return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Jh(s);return await vn(t,"clear",a.exitCode===0),a}})}async function Vf(e,t,n,r){if(!await X(e))return _(`You do not have the initial commit yet
674
- `);let s=await q(e),i=Gt(s).sort();if(i.length>0)return{stdout:`${i.map(d=>`${d}: needs merge`).join(`
673
+ `,f){let O=await vi(e,f);O.ok||(C+=O.stderr)}return{ok:!1,stdout:"",stderr:C,exitCode:1}}await Se(e,g);let b=new Set(m.conflicts.map(C=>C.path)),E=new Set;for(let C of m.entries)C.stage>0&&E.add(C.path);let k=b.size>0;if(k){let C=[];for(let[O,x]of p){if(b.has(O)||E.has(O))continue;let P=w.get(O);C.push({path:O,mode:parseInt(x.mode,8),hash:x.hash,stage:0,stat:P?.stat??Ce()})}for(let O of m.entries)O.stage>0&&C.push(O);C.sort((O,x)=>Re(O.path,x.path)||O.stage-x.stage),await se(e,{version:2,entries:C})}else{let C=[...o.entries],O=new Set(C.map(x=>x.path));for(let[x,P]of p)h.has(x)||O.has(x)||C.push({path:x,mode:parseInt(P.mode,8),hash:P.hash,stage:0,stat:Ce()});C.sort((x,P)=>Re(x.path,P.path)||x.stage-P.stage),await se(e,{version:2,entries:C})}if(f){let C=await vi(e,f);if(!C.ok)return{...C,messages:m.messages}}return{ok:!0,hasConflicts:k,messages:m.messages}}async function Mi(e,t=0){let n=await Ve(e,qt);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 fe(e,qt),await Dr(e,qt);else{await Rn(e,qt,n);let o=n[n.length-1];o&&await Y(e,qt,o.newHash)}return null}async function Yf(e){await fe(e,qt),await Dr(e,qt)}He();function mo(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 tp(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Rt({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode})}async function Mn(e,t,n,r){return e?.hooks?.preStash?.({repo:t,action:n,ref:r})??null}async function jn(e,t,n,r){await e?.hooks?.postStash?.({repo:t,action:n,ok:r})}function Zf(e,t){let n=e.command("stash",{description:"Stash the changes in a dirty working directory away",options:{message:ee.string().alias("m").describe("Stash message"),"include-untracked":H().alias("u").describe("Also stash untracked files")},transformArgs:r=>{if(r[0]!=="save")return r;let o=r.slice(1),s=[],a=[];for(let i of o)i.startsWith("-")?s.push(i):a.push(i);return a.length>0?[...s,"-m",a.join(" ")]:s},handler:async(r,o)=>{let s=await B(o.fs,o.cwd,t);if(v(s))return s;let a=await Mn(t,s,"push",null);if(Q(a))return{stdout:"",stderr:a.message??"",exitCode:1};let i=await Xf(s,o.env,r.message,r["include-untracked"]);return await jn(t,s,"push",i.exitCode===0),i}});n.command("push",{description:"Save your local modifications to a new stash entry",options:{message:ee.string().alias("m").describe("Stash message"),"include-untracked":H().alias("u").describe("Also stash untracked files")},handler:async(r,o)=>{let s=await B(o.fs,o.cwd,t);if(v(s))return s;let a=await Mn(t,s,"push",null);if(Q(a))return{stdout:"",stderr:a.message??"",exitCode:1};let i=await Xf(s,o.env,r.message,r["include-untracked"]);return await jn(t,s,"push",i.exitCode===0),i}}),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 B(o.fs,o.cwd,t);if(v(s))return s;let a=await Mn(t,s,"pop",r.stash??null);if(Q(a))return{stdout:"",stderr:a.message??"",exitCode:1};let i=await np(s,r.stash);return await jn(t,s,"pop",i.exitCode===0),i}}),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 B(o.fs,o.cwd,t);if(v(s))return s;let a=await Mn(t,s,"apply",r.stash??null);if(Q(a))return{stdout:"",stderr:a.message??"",exitCode:1};let i=await rp(s,r.stash);return await jn(t,s,"apply",i.exitCode===0),i}}),n.command("list",{description:"List the stash entries that you currently have",handler:async(r,o)=>{let s=await B(o.fs,o.cwd,t);if(v(s))return s;let a=await Mn(t,s,"list",null);if(Q(a))return{stdout:"",stderr:a.message??"",exitCode:1};let i=await sp(s);return await jn(t,s,"list",i.exitCode===0),i}}),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 B(o.fs,o.cwd,t);if(v(s))return s;let a=await Mn(t,s,"drop",r.stash??null);if(Q(a))return{stdout:"",stderr:a.message??"",exitCode:1};let i=await op(s,r.stash);return await jn(t,s,"drop",i.exitCode===0),i}}),n.command("show",{description:"Show the changes recorded in a stash entry as a diff",args:[q.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await B(o.fs,o.cwd,t);if(v(s))return s;let a=await Mn(t,s,"show",r.stash??null);if(Q(a))return{stdout:"",stderr:a.message??"",exitCode:1};let i=await ip(s,r.stash);return await jn(t,s,"show",i.exitCode===0),i}}),n.command("clear",{description:"Remove all the stash entries",handler:async(r,o)=>{let s=await B(o.fs,o.cwd,t);if(v(s))return s;let a=await Mn(t,s,"clear",null);if(Q(a))return{stdout:"",stderr:a.message??"",exitCode:1};let i=await ap(s);return await jn(t,s,"clear",i.exitCode===0),i}})}async function Xf(e,t,n,r){if(!await X(e))return N(`You do not have the initial commit yet
674
+ `);let s=await K(e),a=Nt(s).sort();if(a.length>0)return{stdout:`${a.map(d=>`${d}: needs merge`).join(`
675
675
  `)}
676
676
  `,stderr:`error: could not write index
677
- `,exitCode:1};let a;try{a=await Kf(e,t,n,{includeUntracked:r})}catch(d){return I(d.message)}return a?{stdout:`Saved working directory and index state ${(await M(e,a)).message.trim()}
677
+ `,exitCode:1};let i;try{i=await Vf(e,t,n,{includeUntracked:r})}catch(d){return $(d.message)}return i?{stdout:`Saved working directory and index state ${(await M(e,i)).message.trim()}
678
678
  `,stderr:"",exitCode:0}:{stdout:`No local changes to save
679
- `,stderr:"",exitCode:0}}async function zh(e,t){let n=co(t);if(n<0)return _(`error: '${t}' is not a valid stash reference`);let r=await hr(e,n);if(!r)return _(`error: stash@{${n}} is not a valid reference`);let o=await Oi(e,n);if(!o.ok){let f=o.messages?.length?`${o.messages.join(`
679
+ `,stderr:"",exitCode:0}}async function np(e,t){let n=mo(t);if(n<0)return N(`error: '${t}' is not a valid stash reference`);let r=await yr(e,n);if(!r)return N(`error: stash@{${n}} is not a valid reference`);let o=await Di(e,n);if(!o.ok){let f=o.messages?.length?`${o.messages.join(`
680
680
  `)}
681
681
  `:"";if(o.stdout)return{stdout:`${f}${o.stdout}The stash entry is kept in case you need it again.
682
- `,stderr:o.stderr,exitCode:o.exitCode};let d=await et(e);return{stdout:`${f}${d}The stash entry is kept in case you need it again.
682
+ `,stderr:o.stderr,exitCode:o.exitCode};let d=await nt(e);return{stdout:`${f}${d}The stash entry is kept in case you need it again.
683
683
  `,stderr:o.stderr,exitCode:o.exitCode}}if(o.hasConflicts){let f=o.messages.length>0?`${o.messages.join(`
684
684
  `)}
685
- `:"",d=await et(e);return{stdout:`${f}${d}The stash entry is kept in case you need it again.
686
- `,stderr:"",exitCode:1}}let s=await Ti(e,n);if(s)return _(s);let i=o.messages.length>0?`${o.messages.join(`
685
+ `:"",d=await nt(e);return{stdout:`${f}${d}The stash entry is kept in case you need it again.
686
+ `,stderr:"",exitCode:1}}let s=await Mi(e,n);if(s)return N(s);let a=o.messages.length>0?`${o.messages.join(`
687
687
  `)}
688
- `:"",a=t?`stash@{${n}}`:`refs/stash@{${n}}`,c=await et(e);return{stdout:`${i}${c}Dropped ${a} (${r})
689
- `,stderr:"",exitCode:0}}async function Vh(e,t){let n=co(t);if(n<0)return _(`error: '${t}' is not a valid stash reference`);let r=await Oi(e,n);if(!r.ok){let a=r.messages?.length?`${r.messages.join(`
688
+ `:"",i=t?`stash@{${n}}`:`refs/stash@{${n}}`,c=await nt(e);return{stdout:`${a}${c}Dropped ${i} (${r})
689
+ `,stderr:"",exitCode:0}}async function rp(e,t){let n=mo(t);if(n<0)return N(`error: '${t}' is not a valid stash reference`);let r=await Di(e,n);if(!r.ok){let i=r.messages?.length?`${r.messages.join(`
690
690
  `)}
691
- `:"",c=r.stdout;return c||(c=await et(e)),{stdout:`${a}${c}`,stderr:r.stderr,exitCode:r.exitCode}}let o=r.messages.length>0?`${r.messages.join(`
691
+ `:"",c=r.stdout;return c||(c=await nt(e)),{stdout:`${i}${c}`,stderr:r.stderr,exitCode:r.exitCode}}let o=r.messages.length>0?`${r.messages.join(`
692
692
  `)}
693
- `:"",s=await et(e),i=r.hasConflicts?1:0;return{stdout:`${o}${s}`,stderr:"",exitCode:i}}async function Yh(e){let t=await qf(e);return t.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${t.map(r=>`stash@{${r.index}}: ${r.message}`).join(`
693
+ `:"",s=await nt(e),a=r.hasConflicts?1:0;return{stdout:`${o}${s}`,stderr:"",exitCode:a}}async function sp(e){let t=await zf(e);return t.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${t.map(r=>`stash@{${r.index}}: ${r.message}`).join(`
694
694
  `)}
695
- `,stderr:"",exitCode:0}}async function Xh(e,t){let n=co(t);if(n<0)return _(`error: '${t}' is not a valid stash reference`);let r=await hr(e,n);if(!r)return _(`error: stash@{${n}} is not a valid reference`);let o=await Ti(e,n);return o?_(o):{stdout:`Dropped ${t?`stash@{${n}}`:`refs/stash@{${n}}`} (${r})
696
- `,stderr:"",exitCode:0}}async function Zh(e,t){let n=co(t);if(n<0)return _(`error: '${t}' is not a valid stash reference`);let r=await hr(e,n);if(!r)return _(`error: stash@{${n}} is not a valid reference`);let o=await M(e,r),s=o.parents[0];if(!s)return _("error: invalid stash commit (no parent)");let i=await M(e,s),a=await Ne(e,i.tree,o.tree),c="";for(let f of a)c+=await Kh(e,f);return{stdout:c,stderr:"",exitCode:0}}async function Jh(e){return await zf(e),{stdout:"",stderr:"",exitCode:0}}ne();xe();me();Je();function Xf(e,t){e.command("status",{description:"Show the working tree status",options:{short:H().alias("s").describe("Give the output in the short-format"),porcelain:H().describe("Give the output in a machine-parseable format"),branch:H().alias("b").describe("Show the branch in short-format output")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(!n.short&&!n.porcelain)return{stdout:await et(s),stderr:"",exitCode:0};let i=await Z(s),a=await X(s),c;i&&i.type==="symbolic"?c=be(i.target):c="HEAD detached";let f=await q(s),d=zo(f),l=await Ko(s,a,f,d),u=await Rt(s,f),m=[],h=[];for(let k of u)k.status==="untracked"?h.push(k.path):m.push({path:k.path,status:k.status});m.sort((k,b)=>Ce(k.path,b.path));let p=new Set(f.entries.map(k=>k.path)),g=Vo(h,p);return{stdout:np(c,l,m,d,g,n.branch),stderr:"",exitCode:0}}})}var Qh={"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 ep(e){switch(e){case"new file":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";default:return" "}}function tp(e){switch(e){case"modified":return"M";case"deleted":return"D";default:return" "}}function np(e,t,n,r,o,s){let i=[];s&&(e==="HEAD detached"?i.push("## HEAD (no branch)"):i.push(`## ${e}`));let a=new Map(r.map(u=>[u.path,u])),c=new Map(t.map(u=>[u.path,u])),f=new Map(n.map(u=>[u.path,u])),d=new Set;for(let u of r)d.add(u.path);for(let u of t)d.add(u.path);for(let u of n)d.add(u.path);let l=[...d].sort();for(let u of l){let m=a.get(u);if(m){let k=Qh[m.status]??"UU";i.push(`${k} ${Vr(u)}`);continue}let h=c.get(u),p=f.get(u),g=h?ep(h.status):" ",w=p?tp(p.status):" ";if(h?.status==="renamed"&&h.displayPath){let k=h.displayPath.indexOf(" -> "),b=h.displayPath.slice(0,k),E=h.displayPath.slice(k+4);i.push(`${g}${w} ${Vr(b)} -> ${Vr(E)}`)}else i.push(`${g}${w} ${Vr(u)}`)}for(let u of o)i.push(`?? ${Vr(u)}`);return i.length===0?"":`${i.join(`
695
+ `,stderr:"",exitCode:0}}async function op(e,t){let n=mo(t);if(n<0)return N(`error: '${t}' is not a valid stash reference`);let r=await yr(e,n);if(!r)return N(`error: stash@{${n}} is not a valid reference`);let o=await Mi(e,n);return o?N(o):{stdout:`Dropped ${t?`stash@{${n}}`:`refs/stash@{${n}}`} (${r})
696
+ `,stderr:"",exitCode:0}}async function ip(e,t){let n=mo(t);if(n<0)return N(`error: '${t}' is not a valid stash reference`);let r=await yr(e,n);if(!r)return N(`error: stash@{${n}} is not a valid reference`);let o=await M(e,r),s=o.parents[0];if(!s)return N("error: invalid stash commit (no parent)");let a=await M(e,s),i=await Ne(e,a.tree,o.tree),c="";for(let f of i)c+=await tp(e,f);return{stdout:c,stderr:"",exitCode:0}}async function ap(e){return await Yf(e),{stdout:"",stderr:"",exitCode:0}}re();ke();le();et();function Jf(e,t){e.command("status",{description:"Show the working tree status",options:{short:H().alias("s").describe("Give the output in the short-format"),porcelain:H().describe("Give the output in a machine-parseable format"),branch:H().alias("b").describe("Show the branch in short-format output")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o;if(!n.short&&!n.porcelain)return{stdout:await nt(s),stderr:"",exitCode:0};let a=await Z(s),i=await X(s),c;a&&a.type==="symbolic"?c=we(a.target):c="HEAD detached";let f=await K(s),d=Qo(f),l=await Jo(s,i,f,d),u=await $t(s,f),m=[],h=[];for(let y of u)y.status==="untracked"?h.push(y.path):m.push({path:y.path,status:y.status});m.sort((y,R)=>Re(y.path,R.path));let p=new Set(f.entries.map(y=>y.path)),g=ei(h,p);return{stdout:lp(c,l,m,d,g,n.branch),stderr:"",exitCode:0}}})}var cp={"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 fp(e){switch(e){case"new file":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";default:return" "}}function dp(e){switch(e){case"modified":return"M";case"deleted":return"D";default:return" "}}function lp(e,t,n,r,o,s){let a=[];s&&(e==="HEAD detached"?a.push("## HEAD (no branch)"):a.push(`## ${e}`));let i=new Map(r.map(u=>[u.path,u])),c=new Map(t.map(u=>[u.path,u])),f=new Map(n.map(u=>[u.path,u])),d=new Set;for(let u of r)d.add(u.path);for(let u of t)d.add(u.path);for(let u of n)d.add(u.path);let l=[...d].sort();for(let u of l){let m=i.get(u);if(m){let y=cp[m.status]??"UU";a.push(`${y} ${ns(u)}`);continue}let h=c.get(u),p=f.get(u),g=h?fp(h.status):" ",w=p?dp(p.status):" ";if(h?.status==="renamed"&&h.displayPath){let y=h.displayPath.indexOf(" -> "),R=h.displayPath.slice(0,y),b=h.displayPath.slice(y+4);a.push(`${g}${w} ${ns(R)} -> ${ns(b)}`)}else a.push(`${g}${w} ${ns(u)}`)}for(let u of o)a.push(`?? ${ns(u)}`);return a.length===0?"":`${a.join(`
697
697
  `)}
698
- `}function Vr(e){return!/[ \t"\\]/.test(e)&&!/[^\x20-\x7E]/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}"`}ne();Xe();xe();oe();Ge();me();Te();Vt();function rp(e,t){return e?.type==="symbolic"?e.target.replace(/^refs\/heads\//,""):t??J}function Jf(e,t){e.command("switch",{description:"Switch branches",args:[B.string().name("branch-or-start-point").describe("Branch to switch to, or start-point for -c/-C").optional()],options:{create:Q.string().alias("c").describe("Create and switch to a new branch"),forceCreate:Q.string().alias("C").describe("Create/reset and switch to a branch"),detach:H().alias("d").describe("Detach HEAD at named commit"),orphan:Q.string().describe("Create a new orphan branch"),guess:H().default(!0).describe("Guess branch from remote tracking")},handler:async(n,r,o)=>{let s=await U(r.fs,r.cwd,t);if(S(s))return s;let i=s,a=n["branch-or-start-point"];if(n.orphan)return n.create||n.forceCreate?I("--orphan and -c/-C are incompatible"):n.detach?I("--orphan and --detach are incompatible"):ap(i,n.orphan,r.env,t);if(n.detach){if(n.create||n.forceCreate)return I("--detach and -c/-C are incompatible");let d=a??"HEAD",l=await Ie(i,d,`invalid reference: ${d}`);return S(l)?l:ip(i,d,l.hash,r.env,t)}if(n.create||n.forceCreate){let d=n.create||n.forceCreate,l=a??(o.passthrough.length>0?o.passthrough[0]:void 0);return Zf(i,d,!!n.forceCreate,l,r.env,t)}if(!a)return I("missing branch or commit argument");if(a==="-")return sp(i,r.env,t);let c=`refs/heads/${a}`,f=await N(i,c);if(f)return Qf(i,a,c,f,r.env,t);if(n.guess!==!1){let d=await op(i,a);if(d)return Zf(i,a,!1,d.startPoint,r.env,t,d.trackingRef)}return I(`invalid reference: ${a}`)}})}async function Yr(e){return await Ee(e,"CHERRY_PICK_HEAD")?I(`cannot switch branch while cherry-picking
699
- Consider "git cherry-pick --quit" or "git worktree add".`):await Ee(e,"MERGE_HEAD")?I(`cannot switch branch while merging
700
- Consider "git merge --quit" or "git worktree add".`):await Ee(e,"REVERT_HEAD")?I(`cannot switch branch while reverting
701
- Consider "git revert --quit" or "git worktree add".`):await At(e)?I(`cannot switch branch while rebasing
702
- Consider "git rebase --quit" or "git worktree add".`):null}async function sp(e,t,n){let r=await Yr(e);if(r)return r;let o=await Ms(e);return o?Qf(e,o.name,o.refName,o.hash,t,n):I("no previous branch")}async function op(e,t){let n=await we(e,"refs/remotes"),r=[];for(let s of n){let i=s.name.replace(/^refs\/remotes\//,"").split("/"),a=i[0];i.length>=2&&a&&i.slice(1).join("/")===t&&r.push({remote:a,ref:s.name})}let o=r.length===1?r[0]:void 0;return o?{startPoint:o.ref,trackingRef:o.ref}:null}async function Zf(e,t,n,r,o,s,i){let a=`refs/heads/${t}`,c=await N(e,a);if(c&&!n)return I(`a branch named '${t}' already exists`);let f;if(r){let y=await Ie(e,r,`invalid reference: ${r}`);if(S(y))return y;f=y.hash}else{let y=await X(e);if(!y){let $=await Z(e),A=$?.type==="symbolic"?$.target.replace(/^refs\/heads\//,""):"";n&&c&&await de(e,a),await Fe(e,"HEAD",a),await dt(e);let L=await cn(e);return await te(e,o,"HEAD",null,J,`checkout: moving from ${A} to ${t}`),{stdout:"",stderr:`Switched to a new branch '${t}'
703
- ${L}`,exitCode:0}}f=y}let d=await Yr(e);if(d)return d;let l=await X(e),u=await q(e);if(r){let y=Pn(u);if(y)return y}let m=await M(e,f);if(l&&l!==f){let y=await M(e,l);if(y.tree!==m.tree){let $=await kn(e,y.tree,m.tree,u);if(!$.success)return $.errorOutput??_("error: checkout would overwrite local changes");u={version:2,entries:$.newEntries},await re(e,u),await He(e,$.worktreeOps)}}let h=await Z(e),p="";h?.type==="direct"&&l&&(p=await Ls(e,l,f));let g=rp(h,l);await Y(e,a,f),await Fe(e,"HEAD",a),await dt(e);let w=await cn(e),k=r??"HEAD";n&&c?c!==f&&await te(e,o,a,c,f,`branch: Reset to ${k}`):await te(e,o,a,null,f,`branch: Created from ${k}`),await te(e,o,"HEAD",l,f,`checkout: moving from ${g} to ${t}`);let b=i?.replace(/^refs\/remotes\//,"").split("/");if(b){let y=b[0]??"",$=`refs/heads/${b.slice(1).join("/")}`,A=await pe(e);A[`branch "${t}"`]={...A[`branch "${t}"`],remote:y,merge:$},await Ye(e,A)}await s?.hooks?.emitPost("post-checkout",{prevHead:l,newHead:f,isBranchCheckout:!0});let E=n&&c?`Switched to and reset branch '${t}'
698
+ `}function ns(e){return!/[ \t"\\]/.test(e)&&!/[^\x20-\x7E]/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}"`}re();Je();ke();ie();je();le();He();Jt();function up(e,t){return e?.type==="symbolic"?e.target.replace(/^refs\/heads\//,""):t??J}function ed(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:ee.string().alias("c").describe("Create and switch to a new branch"),forceCreate:ee.string().alias("C").describe("Create/reset and switch to a branch"),detach:H().alias("d").describe("Detach HEAD at named commit"),orphan:ee.string().describe("Create a new orphan branch"),guess:H().default(!0).describe("Guess branch from remote tracking")},handler:async(n,r,o)=>{let s=await B(r.fs,r.cwd,t);if(v(s))return s;let a=s,i=n["branch-or-start-point"];if(n.orphan)return n.create||n.forceCreate?$("--orphan and -c/-C are incompatible"):n.detach?$("--orphan and --detach are incompatible"):gp(a,n.orphan,r.env,t);if(n.detach){if(n.create||n.forceCreate)return $("--detach and -c/-C are incompatible");let d=i??"HEAD",l=await Ie(a,d,`invalid reference: ${d}`);return v(l)?l:pp(a,d,l.hash,r.env,t)}if(n.create||n.forceCreate){let d=n.create||n.forceCreate,l=i??(o.passthrough.length>0?o.passthrough[0]:void 0);return Qf(a,d,!!n.forceCreate,l,r.env,t)}if(!i)return $("missing branch or commit argument");if(i==="-")return mp(a,r.env,t);let c=`refs/heads/${i}`,f=await U(a,c);if(f)return td(a,i,c,f,r.env,t);if(n.guess!==!1){let d=await hp(a,i);if(d)return Qf(a,i,!1,d.startPoint,r.env,t,d.trackingRef)}return $(`invalid reference: ${i}`)}})}async function rs(e){return await Ee(e,"CHERRY_PICK_HEAD")?$(`cannot switch branch while cherry-picking
699
+ Consider "git cherry-pick --quit" or "git worktree add".`):await Ee(e,"MERGE_HEAD")?$(`cannot switch branch while merging
700
+ Consider "git merge --quit" or "git worktree add".`):await Ee(e,"REVERT_HEAD")?$(`cannot switch branch while reverting
701
+ Consider "git revert --quit" or "git worktree add".`):await Dt(e)?$(`cannot switch branch while rebasing
702
+ Consider "git rebase --quit" or "git worktree add".`):null}async function mp(e,t,n){let r=await rs(e);if(r)return r;let o=await Ns(e);return o?td(e,o.name,o.refName,o.hash,t,n):$("no previous branch")}async function hp(e,t){let n=await pe(e,"refs/remotes"),r=[];for(let s of n){let a=s.name.replace(/^refs\/remotes\//,"").split("/"),i=a[0];a.length>=2&&i&&a.slice(1).join("/")===t&&r.push({remote:i,ref:s.name})}let o=r.length===1?r[0]:void 0;return o?{startPoint:o.ref,trackingRef:o.ref}:null}async function Qf(e,t,n,r,o,s,a){let i=`refs/heads/${t}`,c=await U(e,i);if(c&&!n)return $(`a branch named '${t}' already exists`);let f;if(r){let x=await Ie(e,r,`invalid reference: ${r}`);if(v(x))return x;f=x.hash}else{let x=await X(e);if(!x){let P=await Z(e),I=P?.type==="symbolic"?P.target.replace(/^refs\/heads\//,""):"";n&&c&&await fe(e,i),await Ue(e,"HEAD",i),await mt(e);let G=await un(e);return await ne(e,o,"HEAD",null,J,`checkout: moving from ${I} to ${t}`),{stdout:"",stderr:`Switched to a new branch '${t}'
703
+ ${G}`,exitCode:0}}f=x}let d=await rs(e);if(d)return d;let l=await X(e),u=await K(e);if(r){let x=$n(u);if(x)return x}let m=await M(e,f);if(l&&l!==f){let x=await M(e,l);if(x.tree!==m.tree){let P=await Pn(e,x.tree,m.tree,u);if(!P.success)return P.errorOutput??N("error: checkout would overwrite local changes");u={version:2,entries:P.newEntries},await se(e,u),await Se(e,P.worktreeOps)}}let h=await Z(e),p="";h?.type==="direct"&&l&&(p=await Bs(e,l,f));let g=up(h,l);await Y(e,i,f),await Ue(e,"HEAD",i),await mt(e);let w=await un(e),y=r??"HEAD";n&&c?c!==f&&await ne(e,o,i,c,f,`branch: Reset to ${y}`):await ne(e,o,i,null,f,`branch: Created from ${y}`),await ne(e,o,"HEAD",l,f,`checkout: moving from ${g} to ${t}`);let R=a?.replace(/^refs\/remotes\//,"").split("/");if(R){let x=R[0]??"",P=`refs/heads/${R.slice(1).join("/")}`,I=await he(e);I[`branch "${t}"`]={...I[`branch "${t}"`],remote:x,merge:P},await Ze(e,I)}await s?.hooks?.postCheckout?.({repo:e,prevHead:l,newHead:f,isBranchCheckout:!0});let b=n&&c?`Switched to and reset branch '${t}'
704
704
  `:`Switched to a new branch '${t}'
705
- `,x=p+E+w;if(b){let y=b.slice(1).join("/");x+=`branch '${t}' set up to track '${b[0]}/${y}'.
706
- `}let P="";r&&(P=await zn(e,m.tree,u));let C=await pe(e),R=await an(e,C,t);return R&&(P+=Kn(R)),{stdout:P,stderr:x,exitCode:0}}async function Qf(e,t,n,r,o,s){let i=await Yr(e);return i||ar(e,t,n,r,o,s)}async function ip(e,t,n,r,o){let s=await Yr(e);return s||Rn(e,n,r,o)}async function ap(e,t,n,r){let o=await Yr(e);if(o)return o;let s=`refs/heads/${t}`;if(await N(e,s))return I(`a branch named '${t}' already exists`);let a=await q(e),c=Pn(a);if(c)return c;let f=await X(e),d=await Z(e),l="";if(d?.type==="direct"&&f&&(l=await Yo(e,f)),e.workTree){let m=f?(await M(e,f)).tree:null,h=await Se(e,[]),p=await kn(e,m,h,a);if(!p.success)return p.errorOutput??_("error: checkout would overwrite local changes");await He(e,p.worktreeOps),await re(e,{version:2,entries:p.newEntries})}else await re(e,qi());await Fe(e,"HEAD",s),await dt(e);let u=await cn(e);return await r?.hooks?.emitPost("post-checkout",{prevHead:f,newHead:J,isBranchCheckout:!0}),{stdout:"",stderr:`${l}Switched to a new branch '${t}'
707
- ${u}`,exitCode:0}}ne();oe();Pr();me();ws();function td(e,t){e.command("tag",{description:"Create, list, or delete tags",args:[B.string().name("name").describe("Tag name to create or delete").optional(),B.string().name("commit").describe("Commit to tag (defaults to HEAD)").optional()],options:{annotate:H().alias("a").describe("Make an annotated tag object"),message:Q.string().alias("m").describe("Tag message"),delete:H().alias("d").describe("Delete a tag"),force:H().alias("f").describe("Replace an existing tag"),list:Q.string().alias("l").describe("List tags matching pattern")},handler:async(n,r)=>{let o=await U(r.fs,r.cwd,t);if(S(o))return o;let s=o;if(n.delete){if(!n.name)return I("tag name required");let i=`refs/tags/${n.name}`,a=await N(s,i);return a?(await de(s,i),{stdout:`Deleted tag '${n.name}' (was ${z(a)})
708
- `,stderr:"",exitCode:0}):_(`error: tag '${n.name}' not found.
709
- `)}if(n.list!==void 0)return ed(s,n.list||void 0);if(n.name){let i=n.commit,a;if(i){let l=await $t(s,i,`Failed to resolve '${i}' as a valid ref.`);if(S(l))return l;a=l}else if(a=await X(s),!a)return I("Failed to resolve 'HEAD' as a valid ref.");let c=`refs/tags/${n.name}`;if(await N(s,c)&&!n.force)return I(`tag '${n.name}' already exists`);if(n.annotate||n.message){if(!n.message)return I("no tag message specified (use -m)");let l=await Ve(s,r.env);if(S(l))return l;let u=Ot(n.message),m=la({type:"tag",object:a,objectType:"commit",name:n.name,tagger:l,message:u}),h=await Re(s,"tag",m);await Y(s,c,h)}else await Y(s,c,a);return{stdout:"",stderr:"",exitCode:0}}return ed(s)}})}async function ed(e,t){let n=await we(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(`
710
- `)}
711
- `,stderr:"",exitCode:0}}var cp={init:e=>pf(e),clone:(e,t)=>Bc(e,t),fetch:(e,t)=>sf(e,t),pull:(e,t)=>If(e,t),push:(e,t)=>Of(e,t),add:(e,t)=>Ma(e,t),blame:(e,t)=>hc(e,t),commit:(e,t)=>Wc(e,t),status:(e,t)=>Xf(e,t),log:(e,t)=>xf(e,t),branch:(e,t)=>gc(e,t),tag:(e,t)=>td(e,t),checkout:(e,t)=>bc(e,t),diff:(e,t)=>ef(e,t),reset:(e,t)=>jf(e,t),merge:(e,t)=>Rf(e,t),"cherry-pick":(e,t)=>Ac(e,t),revert:(e,t)=>Nf(e,t),rebase:(e,t)=>vf(e,t),mv:(e,t)=>$f(e,t),rm:(e,t)=>Ff(e,t),remote:(e,t)=>Df(e,t),config:(e,t)=>Vc(e,t),show:(e,t)=>Uf(e,t),stash:(e,t)=>Yf(e,t),"rev-parse":(e,t)=>_f(e,t),"ls-files":(e,t)=>Pf(e,t),clean:(e,t)=>vc(e,t),switch:(e,t)=>Jf(e,t),restore:(e,t)=>Lf(e,t),reflog:(e,t)=>Sf(e,t),repack:(e,t)=>uf(e,t),gc:(e,t)=>mf(e,t),bisect:(e,t)=>ec(e,t)};function nd(e){let t=go("git",{description:"Git command"});for(let n of Object.values(cp))n(t,e);return t}var fo=class{listeners=new Map;onError=()=>{};on(t,n){let r=t,o=this.listeners.get(r);o||(o=[],this.listeners.set(r,o));let s=n;return o.push(s),()=>{let i=this.listeners.get(r);if(i){let a=i.indexOf(s);a!==-1&&i.splice(a,1)}}}async emitPre(t,n){let r=this.listeners.get(t);if(!r||r.length===0)return null;for(let o of r){let s=await o(n);if(s&&typeof s=="object"&&"abort"in s)return s}return null}async emitPost(t,n){let r=this.listeners.get(t);if(!(!r||r.length===0))for(let o of r)await o(n)}emit(t,n){let r=this.listeners.get(t);if(!(!r||r.length===0))for(let o of r)try{let s=o(n);s&&typeof s=="object"&&"then"in s&&s.catch(this.onError)}catch(s){this.onError(s)}}};var lo=class{name="git";hooks;middlewares=[];extensions;inner;constructor(t){this.hooks=new fo;let n=t?.network;if(this.extensions={hooks:this.hooks,credentialProvider:t?.credentials,identityOverride:t?.identity,fetchFn:typeof n=="object"?n.fetch:void 0,networkPolicy:n,resolveRemote:t?.resolveRemote},t?.disabled?.length){let r=new Set(t.disabled);this.use(async(o,s)=>o.command&&r.has(o.command)?{stdout:"",stderr:`git: '${o.command}' is not available in this environment
712
- `,exitCode:1}:s())}this.inner=nd(this.extensions).toCommand()}on(t,n){return this.hooks.on(t,n)}use(t){return this.middlewares.push(t),()=>{let n=this.middlewares.indexOf(t);n!==-1&&this.middlewares.splice(n,1)}}execute=async(t,n)=>{let r={command:t[0],rawArgs:t.slice(1),fs:n.fs,cwd:n.cwd,env:n.env,stdin:n.stdin,exec:n.exec,signal:n.signal};return this.runMiddleware(r,()=>this.inner.execute(t,n))};async runMiddleware(t,n){if(this.middlewares.length===0)return n();let r=0,o=async()=>{if(r>=this.middlewares.length)return n();let s=this.middlewares[r++];return s(t,o)};return o()}};function fp(e){return new lo(e)}wn();export{lo as Git,fp as createGit,jn as findGitDir};
705
+ `,E=p+b+w;if(R){let x=R.slice(1).join("/");E+=`branch '${t}' set up to track '${R[0]}/${x}'.
706
+ `}let k="";r&&(k=await Xn(e,m.tree,u));let C=await he(e),O=await ln(e,C,t);return O&&(k+=Yn(O)),{stdout:k,stderr:E,exitCode:0}}async function td(e,t,n,r,o,s){let a=await rs(e);return a||dr(e,t,n,r,o,s)}async function pp(e,t,n,r,o){let s=await rs(e);return s||Tn(e,n,r,o)}async function gp(e,t,n,r){let o=await rs(e);if(o)return o;let s=`refs/heads/${t}`;if(await U(e,s))return $(`a branch named '${t}' already exists`);let i=await K(e),c=$n(i);if(c)return c;let f=await X(e),d=await Z(e),l="";if(d?.type==="direct"&&f&&(l=await ti(e,f)),e.workTree){let m=f?(await M(e,f)).tree:null,h=await De(e,[]),p=await Pn(e,m,h,i);if(!p.success)return p.errorOutput??N("error: checkout would overwrite local changes");await Se(e,p.worktreeOps),await se(e,{version:2,entries:p.newEntries})}else await se(e,Ji());await Ue(e,"HEAD",s),await mt(e);let u=await un(e);return await r?.hooks?.postCheckout?.({repo:e,prevHead:f,newHead:J,isBranchCheckout:!0}),{stdout:"",stderr:`${l}Switched to a new branch '${t}'
707
+ ${u}`,exitCode:0}}re();ie();vr();le();Rs();function rd(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:H().alias("a").describe("Make an annotated tag object"),message:ee.string().alias("m").describe("Tag message"),delete:H().alias("d").describe("Delete a tag"),force:H().alias("f").describe("Replace an existing tag"),list:ee.string().alias("l").describe("List tags matching pattern")},handler:async(n,r)=>{let o=await B(r.fs,r.cwd,t);if(v(o))return o;let s=o;if(n.delete){if(!n.name)return $("tag name required");let a=`refs/tags/${n.name}`,i=await U(s,a);return i?(await fe(s,a),{stdout:`Deleted tag '${n.name}' (was ${V(i)})
708
+ `,stderr:"",exitCode:0}):N(`error: tag '${n.name}' not found.
709
+ `)}if(n.list!==void 0)return nd(s,n.list||void 0);if(n.name){let a=n.commit,i;if(a){let l=await Tt(s,a,`Failed to resolve '${a}' as a valid ref.`);if(v(l))return l;i=l}else if(i=await X(s),!i)return $("Failed to resolve 'HEAD' as a valid ref.");let c=`refs/tags/${n.name}`;if(await U(s,c)&&!n.force)return $(`tag '${n.name}' already exists`);if(n.annotate||n.message){if(!n.message)return $("no tag message specified (use -m)");let l=await Ye(s,r.env);if(v(l))return l;let u=St(n.message),m=ga({type:"tag",object:i,objectType:"commit",name:n.name,tagger:l,message:u}),h=await Pe(s,"tag",m);await Y(s,c,h)}else await Y(s,c,i);return{stdout:"",stderr:"",exitCode:0}}return nd(s)}})}async function nd(e,t){let n=await pe(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=>Fn(t,o,0)===0)),r.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${r.join(`
710
+ `)}
711
+ `,stderr:"",exitCode:0}}var wp={init:e=>wf(e),clone:(e,t)=>Yc(e,t),fetch:(e,t)=>lf(e,t),pull:(e,t)=>Tf(e,t),push:(e,t)=>Hf(e,t),add:(e,t)=>Na(e,t),blame:(e,t)=>yc(e,t),commit:(e,t)=>Xc(e,t),status:(e,t)=>Jf(e,t),log:(e,t)=>Cf(e,t),branch:(e,t)=>kc(e,t),tag:(e,t)=>rd(e,t),checkout:(e,t)=>xc(e,t),diff:(e,t)=>af(e,t),reset:(e,t)=>Lf(e,t),merge:(e,t)=>If(e,t),"cherry-pick":(e,t)=>jc(e,t),revert:(e,t)=>Uf(e,t),rebase:(e,t)=>Df(e,t),mv:(e,t)=>$f(e,t),rm:(e,t)=>Bf(e,t),remote:(e,t)=>jf(e,t),config:(e,t)=>ef(e,t),show:(e,t)=>Wf(e,t),stash:(e,t)=>Zf(e,t),"rev-parse":(e,t)=>Ff(e,t),"ls-files":(e,t)=>Of(e,t),clean:(e,t)=>Gc(e,t),switch:(e,t)=>ed(e,t),restore:(e,t)=>Nf(e,t),reflog:(e,t)=>Mf(e,t),repack:(e,t)=>hf(e,t),gc:(e,t)=>pf(e,t),bisect:(e,t)=>oc(e,t)};function sd(e){let t=yo("git",{description:"Git command"});for(let n of Object.values(wp))n(t,e);return t}var ho=class{name="git";blocked;hooks;inner;constructor(t){this.hooks=t?.hooks,this.blocked=t?.disabled?.length?new Set(t.disabled):null;let n=t?.network,r={hooks:t?.hooks,credentialProvider:t?.credentials,identityOverride:t?.identity,fetchFn:typeof n=="object"?n.fetch:void 0,networkPolicy:n,resolveRemote:t?.resolveRemote,...t?.objectStore?{objectStore:t.objectStore}:{},...t?.refStore?{refStore:t.refStore}:{}};this.inner=sd(r).toCommand()}execute=async(t,n)=>{let r=t[0]??"";if(this.blocked?.has(r))return{stdout:"",stderr:`git: '${r}' is not available in this environment
712
+ `,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(Q(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 bp(e){return new ho(e)}kn();export{ho as Git,Nu as composeGitHooks,bp as createGit,_n as findRepo,Q as isRejection};