just-git 1.2.5 → 1.2.7

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,16 +1,16 @@
1
- var id=Object.defineProperty;var Rs=(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 Ee=(e,t)=>()=>(e&&(t=e(e=0)),t);var ad=(e,t)=>{for(var n in t)id(e,n,{get:t[n],enumerable:!0})};function Os(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===""?".":Os(t)}function It(...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 Os(t||".")}function Zt(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 Mr(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 ft(e,t){let n=Os(e),r=Os(t);if(n.length>1&&n.endsWith("/")&&(n=n.slice(0,-1)),r.length>1&&r.endsWith("/")&&(r=r.slice(0,-1)),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,l=Math.min(o.length,s.length);for(;f<l&&o[f]===s[f];)f++;let d=o.length-f,u=s.slice(f),m=[];for(let h=0;h<d;h++)m.push("..");for(let h of u)m.push(h);return m.join("/")||"."}var le=Ee(()=>{"use strict"});function Bo(e){let t=1,n="";for(;t<e.length;){let r=e[t];if(r==="]"||r===" "||r===" "||r==='"')break;if(r==="."){t++;let o="";for(;t<e.length&&e[t]!=="]";)o+=e[t],t++;return`${n.toLowerCase()} "${o.toLowerCase()}"`}n+=r,t++}if(n=n.toLowerCase(),!n)return null;for(;t<e.length&&(e[t]===" "||e[t]===" ");)t++;if(t<e.length&&e[t]==='"'){t++;let r="";for(;t<e.length&&e[t]!=='"';)e[t]==="\\"&&t+1<e.length?(r+=e[t+1],t+=2):(r+=e[t],t++);return`${n} "${r}"`}return n}function Sa(e,t,n){let r="",o=!1,s=0,i=!1,a=n,c=e,f=0;e:for(;;){for(;f<c.length;){let d=c[f];if(d==="\r"){f++;continue}if(!o&&(d==="#"||d===";"))break e;if(!o&&(d===" "||d===" ")){i&&s++,f++;continue}if(d==='"'){l(),o=!o,f++;continue}if(d==="\\"){if(f+1>=c.length){if(a++,a<t.length){c=t[a],f=0;continue}break e}let u=c[f+1];switch(l(),u){case"\\":r+="\\";break;case'"':r+='"';break;case"n":r+=`
2
- `;break;case"t":r+=" ";break;case"b":r+="\b";break;default:r+="\\",r+=u;break}i=!0,f+=2;continue}l(),r+=d,i=!0,f++}break}return{value:r,linesConsumed:a-n+1};function l(){for(;s>0;)r+=" ",s--}}function ud(e){let t={},n=null,r=e.split(`
3
- `),o=0;for(;o<r.length;){let i=r[o].trim();if(!i||i.startsWith("#")||i.startsWith(";")){o++;continue}if(i.startsWith("[")){n=Bo(i),n!==null&&!(n in t)&&(t[n]={}),o++;continue}if(n!==null){let a=t[n];if(!a){o++;continue}let c=i.indexOf("=");if(c===-1)a[i.toLowerCase()]="true",o++;else{let f=i.slice(0,c).trim().toLowerCase(),l=i.slice(c+1),{value:d,linesConsumed:u}=Sa(l,r,o);a[f]=d,o+=u}continue}o++}return t}function Wo(e){let t={},n=null,r=e.split(`
4
- `),o=0;for(;o<r.length;){let i=r[o].trim();if(!i||i.startsWith("#")||i.startsWith(";")){o++;continue}if(i.startsWith("[")){n=Bo(i),n!==null&&!(n in t)&&(t[n]={}),o++;continue}if(n!==null){let a=t[n];if(!a){o++;continue}let c=i.indexOf("=");if(c===-1){let f=i.toLowerCase();f in a?a[f].push("true"):a[f]=["true"],o++}else{let f=i.slice(0,c).trim().toLowerCase(),l=i.slice(c+1),{value:d,linesConsumed:u}=Sa(l,r,o);f in a?a[f].push(d):a[f]=[d],o+=u}continue}o++}return t}function qo(e){let t=/[\n\t\b#;"]/.test(e)||e!==e.trim(),n="";for(let r=0;r<e.length;r++){let o=e[r];switch(o){case"\\":n+="\\\\";break;case'"':n+='\\"';break;case`
1
+ var od=Object.defineProperty;var Rs=(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 Ee=(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 Os(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===""?".":Os(t)}function It(...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 Os(t||".")}function Zt(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 Mr(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 ft(e,t){let n=Os(e),r=Os(t);if(n.length>1&&n.endsWith("/")&&(n=n.slice(0,-1)),r.length>1&&r.endsWith("/")&&(r=r.slice(0,-1)),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,l=Math.min(o.length,s.length);for(;f<l&&o[f]===s[f];)f++;let d=o.length-f,u=s.slice(f),m=[];for(let h=0;h<d;h++)m.push("..");for(let h of u)m.push(h);return m.join("/")||"."}var le=Ee(()=>{"use strict"});function Bo(e){let t=1,n="";for(;t<e.length;){let r=e[t];if(r==="]"||r===" "||r===" "||r==='"')break;if(r==="."){t++;let o="";for(;t<e.length&&e[t]!=="]";)o+=e[t],t++;return`${n.toLowerCase()} "${o.toLowerCase()}"`}n+=r,t++}if(n=n.toLowerCase(),!n)return null;for(;t<e.length&&(e[t]===" "||e[t]===" ");)t++;if(t<e.length&&e[t]==='"'){t++;let r="";for(;t<e.length&&e[t]!=='"';)e[t]==="\\"&&t+1<e.length?(r+=e[t+1],t+=2):(r+=e[t],t++);return`${n} "${r}"`}return n}function $a(e,t,n){let r="",o=!1,s=0,i=!1,a=n,c=e,f=0;e:for(;;){for(;f<c.length;){let d=c[f];if(d==="\r"){f++;continue}if(!o&&(d==="#"||d===";"))break e;if(!o&&(d===" "||d===" ")){i&&s++,f++;continue}if(d==='"'){l(),o=!o,f++;continue}if(d==="\\"){if(f+1>=c.length){if(a++,a<t.length){c=t[a],f=0;continue}break e}let u=c[f+1];switch(l(),u){case"\\":r+="\\";break;case'"':r+='"';break;case"n":r+=`
2
+ `;break;case"t":r+=" ";break;case"b":r+="\b";break;default:r+="\\",r+=u;break}i=!0,f+=2;continue}l(),r+=d,i=!0,f++}break}return{value:r,linesConsumed:a-n+1};function l(){for(;s>0;)r+=" ",s--}}function dd(e){let t={},n=null,r=e.split(`
3
+ `),o=0;for(;o<r.length;){let i=r[o].trim();if(!i||i.startsWith("#")||i.startsWith(";")){o++;continue}if(i.startsWith("[")){n=Bo(i),n!==null&&!(n in t)&&(t[n]={}),o++;continue}if(n!==null){let a=t[n];if(!a){o++;continue}let c=i.indexOf("=");if(c===-1)a[i.toLowerCase()]="true",o++;else{let f=i.slice(0,c).trim().toLowerCase(),l=i.slice(c+1),{value:d,linesConsumed:u}=$a(l,r,o);a[f]=d,o+=u}continue}o++}return t}function Wo(e){let t={},n=null,r=e.split(`
4
+ `),o=0;for(;o<r.length;){let i=r[o].trim();if(!i||i.startsWith("#")||i.startsWith(";")){o++;continue}if(i.startsWith("[")){n=Bo(i),n!==null&&!(n in t)&&(t[n]={}),o++;continue}if(n!==null){let a=t[n];if(!a){o++;continue}let c=i.indexOf("=");if(c===-1){let f=i.toLowerCase();f in a?a[f].push("true"):a[f]=["true"],o++}else{let f=i.slice(0,c).trim().toLowerCase(),l=i.slice(c+1),{value:d,linesConsumed:u}=$a(l,r,o);f in a?a[f].push(d):a[f]=[d],o+=u}continue}o++}return t}function qo(e){let t=/[\n\t\b#;"]/.test(e)||e!==e.trim(),n="";for(let r=0;r<e.length;r++){let o=e[r];switch(o){case"\\":n+="\\\\";break;case'"':n+='\\"';break;case`
5
5
  `:n+="\\n";break;case" ":n+="\\t";break;case"\b":n+="\\b";break;default:n+=o}}return t?`"${n}"`:n}function zo(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} = ${qo(s)}`)}return`${t.join(`
6
6
  `)}
7
- `}function Ko(e,t,n){let r=null,o=-1,s=-1,i=-1,a=-1,c=!1,f=0;for(;f<e.length;){let l=e[f].trim();if(!l||l.startsWith("#")||l.startsWith(";")){f++;continue}if(l.startsWith("[")){r=Bo(l),r===t&&(a=f,i=f,c=!1),f++;continue}let d=f;for(;d<e.length-1&&e[d].replace(/\r$/,"").endsWith("\\");)d++;if(r===t){let u=l.indexOf("=");(u===-1?l.toLowerCase():l.slice(0,u).trim().toLowerCase())===n?(o=f,s=d):c=!0,i=d}f=d+1}return{keyStart:o,keyEnd:s,insertAfter:i,sectionHeaderLine:a,sectionHasOtherKeys:c}}function md(e,t,n,r){let o=e.split(`
7
+ `}function Ko(e,t,n){let r=null,o=-1,s=-1,i=-1,a=-1,c=!1,f=0;for(;f<e.length;){let l=e[f].trim();if(!l||l.startsWith("#")||l.startsWith(";")){f++;continue}if(l.startsWith("[")){r=Bo(l),r===t&&(a=f,i=f,c=!1),f++;continue}let d=f;for(;d<e.length-1&&e[d].replace(/\r$/,"").endsWith("\\");)d++;if(r===t){let u=l.indexOf("=");(u===-1?l.toLowerCase():l.slice(0,u).trim().toLowerCase())===n?(o=f,s=d):c=!0,i=d}f=d+1}return{keyStart:o,keyEnd:s,insertAfter:i,sectionHeaderLine:a,sectionHasOtherKeys:c}}function ud(e,t,n,r){let o=e.split(`
8
8
  `),s=Ko(o,t,n),i=` ${n} = ${qo(r)}`;return s.keyStart!==-1?o.splice(s.keyStart,s.keyEnd-s.keyStart+1,i):s.insertAfter!==-1?o.splice(s.insertAfter+1,0,i):(o.some(c=>c.trim().length>0)&&o.length>0&&o[o.length-1].trim()!==""&&o.push(""),o.push(`[${t}]`,i)),o.join(`
9
- `)}function hd(e,t,n){let r=e.split(`
9
+ `)}function md(e,t,n){let r=e.split(`
10
10
  `),o=Ko(r,t,n);return o.keyStart===-1?{text:e,found:!1}:(r.splice(o.keyStart,o.keyEnd-o.keyStart+1),!o.sectionHasOtherKeys&&o.sectionHeaderLine!==-1&&r.splice(o.sectionHeaderLine,1),{text:r.join(`
11
- `),found:!0})}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 ud(n)}async function Is(e){let t=T(e.gitDir,"config");return await e.fs.exists(t)?e.fs.readFile(t):""}async function Ye(e,t){let n=T(e.gitDir,"config");await e.fs.writeFile(n,zo(t))}async function ke(e,t){let n=e.configOverrides,r=n?.locked?.[t];if(r!==void 0)return r;let o=await he(e),{section:s,key:i}=jr(t),a=o[s]?.[i];return a!==void 0?a:n?.defaults?.[t]}async function Vo(e,t,n){let r=await Is(e),{section:o,key:s}=jr(t),i=md(r,o,s,n),a=T(e.gitDir,"config");await e.fs.writeFile(a,i)}async function $a(e,t){let n=e.configOverrides,r=n?.locked?.[t];if(r!==void 0)return[r];let o=await Is(e);if(o){let i=Wo(o),{section:a,key:c}=jr(t),f=i[a]?.[c];if(f&&f.length>0)return f}let s=n?.defaults?.[t];return s!==void 0?[s]:[]}function pd(e,t,n,r){let o=e.split(`
11
+ `),found:!0})}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 dd(n)}async function Is(e){let t=T(e.gitDir,"config");return await e.fs.exists(t)?e.fs.readFile(t):""}async function Ye(e,t){let n=T(e.gitDir,"config");await e.fs.writeFile(n,zo(t))}async function ke(e,t){let n=e.configOverrides,r=n?.locked?.[t];if(r!==void 0)return r;let o=await he(e),{section:s,key:i}=jr(t),a=o[s]?.[i];return a!==void 0?a:n?.defaults?.[t]}async function Vo(e,t,n){let r=await Is(e),{section:o,key:s}=jr(t),i=ud(r,o,s,n),a=T(e.gitDir,"config");await e.fs.writeFile(a,i)}async function Sa(e,t){let n=e.configOverrides,r=n?.locked?.[t];if(r!==void 0)return[r];let o=await Is(e);if(o){let i=Wo(o),{section:a,key:c}=jr(t),f=i[a]?.[c];if(f&&f.length>0)return f}let s=n?.defaults?.[t];return s!==void 0?[s]:[]}function hd(e,t,n,r){let o=e.split(`
12
12
  `),s=Ko(o,t,n),i=` ${n} = ${qo(r)}`;return s.insertAfter!==-1?o.splice(s.insertAfter+1,0,i):(o.some(c=>c.trim().length>0)&&o.length>0&&o[o.length-1].trim()!==""&&o.push(""),o.push(`[${t}]`,i)),o.join(`
13
- `)}async function Ta(e,t,n){let r=await Is(e),{section:o,key:s}=jr(t),i=pd(r,o,s,n),a=T(e.gitDir,"config");await e.fs.writeFile(a,i)}async function va(e,t){let n=await Is(e),{section:r,key:o}=jr(t),s=hd(n,r,o);if(!s.found)return!1;let i=T(e.gitDir,"config");return await e.fs.writeFile(i,s.text),!0}function jr(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 Ne=Ee(()=>{"use strict";le()});function Ss(e,t){return Aa(e,t,"author")}function Gr(e,t){return Aa(e,t,"committer")}async function Aa(e,t,n){let r=gd[n],o=e.identityOverride;if(o?.locked)return{name:o.name,email:o.email,timestamp:Ha(t.get(r.date)),timezone:"+0000"};let s=t.get(r.name)??await ke(e,"user.name")??o?.name,i=t.get(r.email)??await ke(e,"user.email")??o?.email;if(!s||!i)throw new Error(`${n.charAt(0).toUpperCase()}${n.slice(1)} identity unknown
13
+ `)}async function Ta(e,t,n){let r=await Is(e),{section:o,key:s}=jr(t),i=hd(r,o,s,n),a=T(e.gitDir,"config");await e.fs.writeFile(a,i)}async function va(e,t){let n=await Is(e),{section:r,key:o}=jr(t),s=md(n,r,o);if(!s.found)return!1;let i=T(e.gitDir,"config");return await e.fs.writeFile(i,s.text),!0}function jr(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 Ne=Ee(()=>{"use strict";le()});function $s(e,t){return Ha(e,t,"author")}function Gr(e,t){return Ha(e,t,"committer")}async function Ha(e,t,n){let r=pd[n],o=e.identityOverride,{timestamp:s,timezone:i}=gd(t.get(r.date));if(o?.locked)return{name:o.name,email:o.email,timestamp:s,timezone:i};let a=t.get(r.name)??await ke(e,"user.name")??o?.name,c=t.get(r.email)??await ke(e,"user.email")??o?.email;if(!a||!c)throw new Error(`${n.charAt(0).toUpperCase()}${n.slice(1)} identity unknown
14
14
 
15
15
  *** Please tell me who you are.
16
16
 
@@ -18,94 +18,94 @@ Run
18
18
 
19
19
  git config user.email "you@example.com"
20
20
  git config user.name "Your Name"
21
- `);return{name:s,email:i,timestamp:Ha(t.get(r.date)),timezone:"+0000"}}async function Jt(e,t){try{let n=await Gr(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 Ha(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 gd,Cn=Ee(()=>{"use strict";Ne();gd={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 Pn(e){let t="";for(let n=0;n<20;n++)t+=Da[e[n]];return t}function $s(e,t){let n="";for(let r=0;r<20;r++)n+=Da[e[t+r]];return n}function St(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 te,Da,dt=Ee(()=>{"use strict";te="0000000000000000000000000000000000000000",Da=(()=>{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 Yo(e){return typeof e=="string"?wd.encode(e):e}function bd(){if(typeof globalThis.Bun<"u")return()=>{let e=new Bun.CryptoHasher("sha1"),t={update(n){return e.update(Yo(n)),t},hex:()=>Promise.resolve(e.digest("hex"))};return t};try{let e=Rs(["node","crypto"].join(":"));if(typeof e.createHash=="function")return()=>{let t=e.createHash("sha1"),n={update(r){return t.update(Yo(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(Yo(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 Pn(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 mr(e){return Ma().update(e).hex()}var wd,Ma,Vn,Yn=Ee(()=>{"use strict";dt();wd=new TextEncoder;Ma=bd(),Vn=Ma});async function K(e){let t=T(e.gitDir,"index");if(!await e.fs.exists(t))return{version:Xo,entries:[]};let n=await e.fs.readFileBuffer(t);return yd(n)}async function ae(e,t){let n=T(e.gitDir,"index"),r=await Ed(t);await e.fs.writeFile(n,r)}function yt(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(Zo),{...e,entries:n}}function at(e,t){return{...e,entries:e.entries.filter(n=>n.path!==t)}}function Ts(e,t,n=0){return e.entries.find(r=>r.path===t&&r.stage===n)}function $t(e){return e.entries.some(t=>t.stage>0)}function Bt(e){return[...new Set(e.entries.filter(t=>t.stage>0).map(t=>t.path))]}function je(e){return e.entries.filter(t=>t.stage===0)}function Ga(){return{version:Xo,entries:[]}}function vs(e){let t=[...e].sort(Zo);return{version:Xo,entries:t}}function Ie(){return{ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,uid:0,gid:0,size:0}}function yd(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=0,r=t.getUint32(n);if(n+=4,r!==ja)throw new Error(`Invalid index signature: 0x${r.toString(16)}`);let o=t.getUint32(n);n+=4;let s=t.getUint32(n);n+=4;let i=[];for(let a=0;a<s;a++){let c=n,f={ctimeSeconds:t.getUint32(n),ctimeNanoseconds:t.getUint32(n+4),mtimeSeconds:t.getUint32(n+8),mtimeNanoseconds:t.getUint32(n+12),dev:t.getUint32(n+16),ino:t.getUint32(n+20),uid:t.getUint32(n+28),gid:t.getUint32(n+32),size:t.getUint32(n+36)},l=t.getUint32(n+24);n+=40;let d=e.subarray(n,n+20),u=Pn(d);n+=20;let m=t.getUint16(n);n+=2;let h=m>>12&3,p=m&4095,g,w;if(p<4095)w=new TextDecoder().decode(e.subarray(n,n+p)),g=p;else{let b=n;for(;b<e.byteLength&&e[b]!==0;)b++;w=new TextDecoder().decode(e.subarray(n,b)),g=b-n}let y=62+g+1,x=Math.ceil(y/8)*8;n=c+x,i.push({path:w,mode:l,hash:u,stage:h,stat:f})}return{version:o,entries:i}}async function Ed(e){let t=new TextEncoder,n=[...e.entries].sort(Zo),r=[],o=12;for(let u of n){let m=t.encode(u.path);r.push(m);let h=62+m.byteLength+1;o+=Math.ceil(h/8)*8}o+=20;let s=new ArrayBuffer(o),i=new Uint8Array(s),a=new DataView(s),c=0;a.setUint32(c,ja),c+=4,a.setUint32(c,e.version),c+=4,a.setUint32(c,n.length),c+=4;for(let u=0;u<n.length;u++){let m=n[u],h=r[u],p=c;a.setUint32(c,m.stat.ctimeSeconds),a.setUint32(c+4,m.stat.ctimeNanoseconds),a.setUint32(c+8,m.stat.mtimeSeconds),a.setUint32(c+12,m.stat.mtimeNanoseconds),a.setUint32(c+16,m.stat.dev),a.setUint32(c+20,m.stat.ino),a.setUint32(c+24,m.mode),a.setUint32(c+28,m.stat.uid),a.setUint32(c+32,m.stat.gid),a.setUint32(c+36,m.stat.size),c+=40;let g=St(m.hash);i.set(g,c),c+=20;let w=Math.min(h.byteLength,4095),y=(m.stage&3)<<12|w;a.setUint16(c,y),c+=2,i.set(h,c),c+=h.byteLength,i[c]=0,c+=1;let x=62+h.byteLength+1,b=Math.ceil(x/8)*8;c=p+b}let f=i.subarray(0,c),l=await mr(f),d=St(l);return i.set(d,c),i}function Zo(e,t){return e.path<t.path?-1:e.path>t.path?1:e.stage-t.stage}var ja,Xo,Pe=Ee(()=>{"use strict";dt();le();Yn();ja=1145655875,Xo=2});var kd,Hs,La=Ee(()=>{"use strict";kd=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(!kd.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 Jo(e){let t=4294967295;for(let n=0;n<e.byteLength;n++)t=_a[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var _a,Na=Ee(()=>{"use strict";_a=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;_a[e]=t}});function Ya(e){let t=Va(e);return Ka(e.subarray(t,-4),{i:2})}function ni(e){let t=Va(e),n={i:2},r=Ka(e.subarray(t),n),o=za(n.p);return{result:r,bytesConsumed:t+o+4}}var qt,hr,Rd,Fa,Ua,xd,Ba,Wa,Cd,ti,Lr,_r,qa,Pd,Od,Qo,Wt,ei,za,Id,Qt,Ka,Va,Xa=Ee(()=>{"use strict";qt=Uint8Array,hr=Uint16Array,Rd=Int32Array,Fa=new qt([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Ua=new qt([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),xd=new qt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ba=(e,t)=>{let n=new hr(31);for(let o=0;o<31;++o)n[o]=t+=1<<e[o-1];let r=new Rd(n[30]);for(let o=1;o<30;++o)for(let s=n[o];s<n[o+1];++s)r[s]=s-n[o]<<5|o;return{b:n,r}},{b:Wa}=Ba(Fa,2);Wa[28]=258;({b:Cd}=Ba(Ua,0)),ti=new hr(32768);for(let e=0;e<32768;++e){let t=(e&43690)>>1|(e&21845)<<1;t=(t&52428)>>2|(t&13107)<<2,t=(t&61680)>>4|(t&3855)<<4,ti[e]=((t&65280)>>8|(t&255)<<8)>>1}Lr=(e,t,n)=>{let r=e.length,o=0,s=new hr(t);for(;o<r;++o)e[o]&&++s[e[o]-1];let i=new hr(t);for(o=1;o<t;++o)i[o]=i[o-1]+s[o-1]<<1;let a;if(n){a=new hr(1<<t);let c=15-t;for(o=0;o<r;++o)if(e[o]){let f=o<<4|e[o],l=t-e[o],d=i[e[o]-1]++<<l;for(let u=d|(1<<l)-1;d<=u;++d)a[ti[d]>>c]=f}}else for(a=new hr(r),o=0;o<r;++o)e[o]&&(a[o]=ti[i[e[o]-1]++]>>15-e[o]);return a},_r=new qt(288);for(let e=0;e<144;++e)_r[e]=8;for(let e=144;e<256;++e)_r[e]=9;for(let e=256;e<280;++e)_r[e]=7;for(let e=280;e<288;++e)_r[e]=8;qa=new qt(32);for(let e=0;e<32;++e)qa[e]=5;Pd=Lr(_r,9,1),Od=Lr(qa,5,1),Qo=e=>{let t=e[0];for(let n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Wt=(e,t,n)=>{let r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},ei=(e,t)=>{let n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},za=e=>(e+7)/8|0,Id=(e,t,n)=>((t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new qt(e.subarray(t,n))),Qt=(e,t)=>{let n=["unexpected EOF","invalid block type","invalid length/literal","invalid distance"];throw new Error(t||n[e]||"unknown inflate error")},Ka=(e,t,n,r)=>{let o=e.length,s=r?r.length:0;if(!o||t.f&&!t.l)return n||new qt(0);let i=!n,a=i||t.i!=2,c=t.i;i&&(n=new qt(o*3));let f=y=>{let x=n.length;if(y>x){let b=new qt(Math.max(x*2,y));b.set(n),n=b}},l=t.f||0,d=t.p||0,u=t.b||0,m=t.l,h=t.d,p=t.m,g=t.n,w=o*8;do{if(!m){l=Wt(e,d,1);let k=Wt(e,d+1,3);if(d+=3,k)if(k==1)m=Pd,h=Od,p=9,g=5;else if(k==2){let E=Wt(e,d,31)+257,R=Wt(e,d+10,15)+4,P=E+Wt(e,d+5,31)+1;d+=14;let C=new qt(P),v=new qt(19);for(let $=0;$<R;++$)v[xd[$]]=Wt(e,d+$*3,7);d+=R*3;let D=Qo(v),O=(1<<D)-1,H=Lr(v,D,1);for(let $=0;$<P;){let N=H[Wt(e,d,O)];d+=N&15;let B=N>>4;if(B<16)C[$++]=B;else{let z=0,_=0;for(B==16?(_=3+Wt(e,d,3),d+=2,z=C[$-1]):B==17?(_=3+Wt(e,d,7),d+=3):B==18&&(_=11+Wt(e,d,127),d+=7);_--;)C[$++]=z}}let G=C.subarray(0,E),A=C.subarray(E);p=Qo(G),g=Qo(A),m=Lr(G,p,1),h=Lr(A,g,1)}else Qt(1);else{let E=za(d)+4,R=e[E-4]|e[E-3]<<8,P=E+R;if(P>o){c&&Qt(0);break}a&&f(u+R),n.set(e.subarray(E,P),u),t.b=u+=R,t.p=d=P*8,t.f=l;continue}if(d>w){c&&Qt(0);break}}a&&f(u+131072);let y=(1<<p)-1,x=(1<<g)-1,b=d;for(;;b=d){let k=m[ei(e,d)&y],E=k>>4;if(d+=k&15,d>w){c&&Qt(0);break}if(k||Qt(2),E<256)n[u++]=E;else if(E==256){b=d,m=null;break}else{let R=E-254;if(E>264){let O=E-257,H=Fa[O];R=Wt(e,d,(1<<H)-1)+Wa[O],d+=H}let P=h[ei(e,d)&x],C=P>>4;P||Qt(3),d+=P&15;let v=Cd[C];if(C>3){let O=Ua[C];v+=ei(e,d)&(1<<O)-1,d+=O}if(d>w){c&&Qt(0);break}a&&f(u+131072);let D=u+R;if(u<v){let O=s-v,H=Math.min(v,D);for(O+u<0&&Qt(3);u<H;++u)n[u]=r[O+u]}for(;u<D;++u)n[u]=n[u-v]}}t.l=m,t.p=b,t.b=u,t.f=l,m&&(l=1,t.m=p,t.d=h,t.n=g)}while(!l);return u!=n.length&&i?Id(n,0,u):n.subarray(0,u)},Va=e=>(((e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31)&&Qt(0,"invalid zlib data"),e[1]&32&&Qt(0,"zlib dictionaries are not supported"),2)});async function Sd(){let e;if(!(typeof document<"u"))try{e=Rs(["node","zlib"].join(":"))}catch{try{e=await import(["node","zlib"].join(":"))}catch{}}if(e&&typeof e.deflateSync=="function"&&typeof e.inflateSync=="function"){let r=null;try{let o=e.inflateSync(e.deflateSync(Buffer.from("x")),{info:!0});o?.engine&&typeof o.engine.bytesWritten=="number"&&(r=s=>{let i=e.inflateSync(s,{info:!0});return{result:new Uint8Array(i.buffer),bytesConsumed:i.engine.bytesWritten}})}catch{}return{deflateSync:o=>new Uint8Array(e.deflateSync(o)),inflateSync:o=>new Uint8Array(e.inflateSync(o)),inflateWithConsumed:r??ni}}let n;return typeof globalThis.CompressionStream=="function"?n=async r=>{let o=new CompressionStream("deflate"),s=o.writable.getWriter();return s.write(r),s.close(),new Uint8Array(await new Response(o.readable).arrayBuffer())}:n=()=>{throw new Error("No deflate implementation available. Requires node:zlib or CompressionStream.")},{deflateSync:n,inflateSync:Ya,inflateWithConsumed:ni}}function ri(){return $d??=Sd()}async function Nr(e){return await(await ri()).deflateSync(e)}async function pr(e){return await(await ri()).inflateSync(e)}async function Za(e,t){let n=await ri(),{result:r,bytesConsumed:o}=n.inflateWithConsumed(e);if(r.byteLength!==t)throw new Error(`Inflate size mismatch: got ${r.byteLength}, expected ${t}`);return{result:r,bytesConsumed:o}}var $d,As=Ee(()=>{"use strict";Xa();$d=null});async function oc(e,t){let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=n.getUint32(0);if(r!==oi)throw new Error(`Invalid pack signature: 0x${r.toString(16)} (expected 0x${oi.toString(16)})`);let o=n.getUint32(4);if(o!==ec)throw new Error(`Unsupported pack version: ${o}`);let s=n.getUint32(8),i=[],a=12;for(let f=0;f<s;f++){let l=await Hd(e,a);i.push(l),a=l.nextOffset}return(await Ad(i,t)).map((f,l)=>({...f,offset:i[l].headerOffset,nextOffset:i[l].nextOffset}))}async function Hd(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===Fr){let d=e[t++];for(a=d&127;d&128;)a+=1,d=e[t++],a=(a<<7)+(d&127);a=n-a}else o===ii&&(c=$s(e,t),t+=20);let{result:f,bytesConsumed:l}=await Za(e.subarray(t),s);return{headerOffset:n,typeNum:o,inflated:f,baseOffset:a,baseHash:c,nextOffset:t+l}}async function Ad(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 i=r[s];if(i)return i;let a=e[s];if(a.typeNum!==Fr&&a.typeNum!==ii){let u=Td[a.typeNum];if(!u)throw new Error(`Unknown object type: ${a.typeNum}`);let m={type:u,content:a.inflated,hash:await si(u,a.inflated)};return r[s]=m,m}if(a.typeNum===Fr){let u=n.get(a.baseOffset);if(u===void 0)throw new Error(`OFS_DELTA base not found at offset ${a.baseOffset}`);let m=await o(u),h=Ur(m.content,a.inflated),p={type:m.type,content:h,hash:await si(m.type,h)};return r[s]=p,p}let c=await Dd(e,r,a.baseHash,o),f;if(c!==void 0)f=await o(c);else if(t){let u=await t(a.baseHash);u&&(f=u)}if(!f)throw new Error(`REF_DELTA base not found for hash ${a.baseHash}`);let l=Ur(f.content,a.inflated),d={type:f.type,content:l,hash:await si(f.type,l)};return r[s]=d,d}for(let s=0;s<e.length;s++)await o(s);return r}async function Dd(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!==Fr&&s.typeNum!==ii&&(await r(o)).hash===n)return o}}function Ur(e,t){let n=0,{value:r,newPos:o}=Qa(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}=Qa(t,n);n=i;let a=new Uint8Array(s),c=0;for(;n<t.byteLength;){let f=t[n++];if(f&128){let l=0,d=0;f&1&&(l=t[n++]),f&2&&(l|=t[n++]<<8),f&4&&(l|=t[n++]<<16),f&8&&(l|=t[n++]<<24),f&16&&(d=t[n++]),f&32&&(d|=t[n++]<<8),f&64&&(d|=t[n++]<<16),d===0&&(d=65536),a.set(e.subarray(l,l+d),c),c+=d}else if(f>0)a.set(t.subarray(n,n+f),c),c+=f,n+=f;else throw new Error("Unexpected delta opcode 0x00 (reserved)")}if(c!==s)throw new Error(`Delta produced ${c} bytes, expected ${s}`);return a}async function Ds(e){let t=[],n=new Map,r=new Uint8Array(12),o=new DataView(r.buffer);o.setUint32(0,oi),o.setUint32(4,ec),o.setUint32(8,e.length),t.push(r);let s=12,i=[];for(let a of e){let c=s;n.set(a.hash,s);let f=a.delta&&a.deltaBaseHash?n.get(a.deltaBaseHash):void 0;if(a.delta&&f!==void 0){let l=Ja(Fr,a.delta.byteLength),d=jd(s-f),u=await Nr(a.delta);t.push(l,d,u),s+=l.byteLength+d.byteLength+u.byteLength}else{let l=vd[a.type],d=Ja(l,a.content.byteLength),u=await Nr(a.content);t.push(d,u),s+=d.byteLength+u.byteLength}i.push({hash:a.hash,offset:c,nextOffset:s})}return{data:await Md(t),entries:i}}async function Md(e){let t=0;for(let i of e)t+=i.byteLength;t+=20;let n=new Uint8Array(t),r=0;for(let i of e)n.set(i,r),r+=i.byteLength;let o=Vn();o.update(n.subarray(0,r));let s=await o.hex();return n.set(St(s),r),n}function jd(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 Ja(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 Qa(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 si(e,t){let n=Gd.encode(`${e} ${t.byteLength}\0`),r=Vn();return r.update(n),r.update(t),r.hex()}var oi,ec,tc,nc,rc,sc,Fr,ii,Td,vd,Gd,Br=Ee(()=>{"use strict";dt();Yn();As();oi=1346454347,ec=2,tc=1,nc=2,rc=3,sc=4,Fr=6,ii=7,Td={[tc]:"commit",[nc]:"tree",[rc]:"blob",[sc]:"tag"},vd={commit:tc,tree:nc,blob:rc,tag:sc};Gd=new TextEncoder});async function cc(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,ic),c+=4,a.setUint32(c,ac),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(St(m.hash),c),c+=20;for(let m of n)a.setUint32(c,m.crc),c+=4;let l=0;for(let m of n)m.offset>=2147483648?a.setUint32(c,2147483648|l++):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 d=Vn();d.update(i.subarray(0,c));let u=await d.hex();return i.set(St(u),c),i}async function fc(e){let n=(await oc(e)).map(o=>({hash:o.hash,offset:o.offset,crc:Jo(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return cc(n,r)}async function lc(e,t){let n=t.map(o=>({hash:o.hash,offset:o.offset,crc:Jo(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return cc(n,r)}var ic,ac,zt,Ms=Ee(()=>{"use strict";dt();Yn();Na();Br();ic=4285812579,ac=2,zt=class{fanout;hashes;offsets;largeOffsets;count;constructor(t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(n.getUint32(0)!==ic)throw new Error("Invalid pack index: bad magic");if(n.getUint32(4)!==ac)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=St(t),r=n[0],o=r===0?0:this.fanout[r-1],s=this.fanout[r],i=o,a=s;for(;i<a;){let c=i+a>>>1,f=this.compareAt(c,n);if(f<0)i=c+1;else if(f>0)a=c;else return this.getOffset(c)}return null}has(t){return this.lookup(t)!==null}get objectCount(){return this.count}allHashes(){let t=[];for(let n=0;n<this.count;n++)t.push(this.hashAtSlot(n));return t}findByPrefix(t){if(t.length<2)return[];let n=parseInt(t.slice(0,2),16),r=n===0?0:this.fanout[n-1],o=this.fanout[n],s=St(t.padEnd(40,"0")),i=t.length,a=[];for(let c=r;c<o;c++){let f=c*20,l=!0;for(let d=0;d<i;d++){let u=d%2===0?this.hashes[f+(d>>1)]>>4&15:this.hashes[f+(d>>1)]&15,m=d%2===0?s[d>>1]>>4&15:s[d>>1]&15;if(u!==m){l=!1;break}}l&&a.push(this.hashAtSlot(c))}return a}hashAtSlot(t){let n="",r=t*20;for(let o=0;o<20;o++){let s=this.hashes[r+o];n+=(s>>4).toString(16)+(s&15).toString(16)}return n}compareAt(t,n){let r=t*20;for(let o=0;o<20;o++){let s=this.hashes[r+o],i=n[o];if(s<i)return-1;if(s>i)return 1}return 0}getOffset(t){let n=this.offsets[t];if(n&2147483648){let r=n&2147483647;return Number(this.largeOffsets.getBigUint64(r*8))}return n}}});var Ld,_d,Nd,Wr,dc=Ee(()=>{"use strict";dt();Ms();Br();As();Ld=6,_d=7,Nd={1:"commit",2:"tree",3:"blob",4:"tag"},Wr=class{constructor(t,n){this.data=t;this.index=n instanceof zt?n:new zt(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,i=o&15,a=4;for(;o&128;)o=n[r++],i|=(o&127)<<a,a+=7;if(s===Ld){let l=n[r++],d=l&127;for(;l&128;)d+=1,l=n[r++],d=(d<<7)+(l&127);let u=await pr(n.subarray(r)),m=await this.readAt(t-d);return{type:m.type,content:Ur(m.content,u)}}if(s===_d){let l=$s(n,r);r+=20;let d=await pr(n.subarray(r)),u=this.index.lookup(l);if(u===null)throw new Error(`REF_DELTA base ${l} not found in pack`);let m=await this.readAt(u);return{type:m.type,content:Ur(m.content,d)}}let c=Nd[s];if(!c)throw new Error(`Unknown pack object type: ${s}`);let f=await pr(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 ci(e,t){let n=Fd.encode(`${e} ${t.byteLength}\0`),r=new Uint8Array(n.byteLength+t.byteLength);return r.set(n),r.set(t,n.byteLength),r}function Bd(e,t){let n=t.indexOf(0);if(n===-1)throw new Error(`Corrupt object ${e}: no null byte in header`);let r=Ud.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 ai(e,t){return T(e,"objects",t.slice(0,2),t.slice(2))}var Fd,Ud,gr,fi=Ee(()=>{"use strict";dt();La();Ms();dc();As();le();Yn();Fd=new TextEncoder,Ud=new TextDecoder;gr=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=ci(t,n),o=await mr(r),s=ai(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 Nr(r)),o}async read(t){let n=this.cache.get(t);if(n)return n;let r=ai(this.gitDir,t);if(await this.fs.exists(r)){let o=await this.fs.readFileBuffer(r),s=await pr(o),i=Bd(t,s);return this.cache.set(t,i),i}await this.discover();for(let o of this.packs){if(!o.index.has(t))continue;let i=await(await this.ensureReader(o)).readObject(t);if(i)return this.cache.set(t,i),i}throw new Error(`object ${t} not found`)}async exists(t){if(await this.fs.exists(ai(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=Pn(o);await this.fs.mkdir(this.packDir,{recursive:!0});let i=`pack-${s}`,a=T(this.packDir,`${i}.pack`);await this.fs.writeFile(a,t);let c=await fc(t),f=T(this.packDir,`${i}.idx`);await this.fs.writeFile(f,c),this.loadedPackNames.add(i);let l=new zt(c);return this.packs.push({name:i,index:l,reader:new Wr(t,l)}),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 i=await this.fs.readdir(o);for(let a of i)a.startsWith(r)&&s.push(`${n}${a}`)}await this.discover();for(let i of this.packs)for(let a of i.index.findByPrefix(t))s.includes(a)||s.push(a);return s}async ensureReader(t){if(t.reader)return t.reader;let n=T(this.packDir,`${t.name}.pack`),r=await this.fs.readFileBuffer(n);return t.reader=new Wr(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 zt(s),reader:null})}}}});function qr(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 zr(e){return`${e.name} <${e.email}> ${e.timestamp} ${e.timezone}`}var li=Ee(()=>{"use strict"});function en(e){let t=qd.decode(e),n=t.indexOf(`
21
+ `);return{name:a,email:c,timestamp:s,timezone:i}}async function Jt(e,t){try{let n=await Gr(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 gd(e){let t={timestamp:Math.floor(Date.now()/1e3),timezone:"+0000"};if(!e)return t;let n=e.trim();if(!n)return t;if(n.startsWith("@")){let s=n.slice(1).trim(),i=parseInt(s,10);if(!Number.isNaN(i))return{timestamp:i,timezone:"+0000"}}if(/^\d+$/.test(n))return{timestamp:parseInt(n,10),timezone:"+0000"};let r=n.match(/^(\d+)\s+([+-]\d{4})$/);if(r)return{timestamp:parseInt(r[1],10),timezone:r[2]};let o=Date.parse(n);return Number.isNaN(o)?t:{timestamp:Math.floor(o/1e3),timezone:wd(n)}}function wd(e){if(/Z$/i.test(e))return"+0000";let t=e.match(/([+-])(\d{2}):(\d{2})$/);if(t)return`${t[1]}${t[2]}${t[3]}`;let n=e.match(/([+-]\d{4})$/);return n?n[1]:"+0000"}var pd,Pn=Ee(()=>{"use strict";Ne();pd={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 Cn(e){let t="";for(let n=0;n<20;n++)t+=Aa[e[n]];return t}function Ss(e,t){let n="";for(let r=0;r<20;r++)n+=Aa[e[t+r]];return n}function $t(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 te,Aa,dt=Ee(()=>{"use strict";te="0000000000000000000000000000000000000000",Aa=(()=>{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 Yo(e){return typeof e=="string"?bd.encode(e):e}function yd(){if(typeof globalThis.Bun<"u")return()=>{let e=new Bun.CryptoHasher("sha1"),t={update(n){return e.update(Yo(n)),t},hex:()=>Promise.resolve(e.digest("hex"))};return t};try{let e=Rs(["node","crypto"].join(":"));if(typeof e.createHash=="function")return()=>{let t=e.createHash("sha1"),n={update(r){return t.update(Yo(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(Yo(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 Cn(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 hr(e){return Da().update(e).hex()}var bd,Da,Vn,Yn=Ee(()=>{"use strict";dt();bd=new TextEncoder;Da=yd(),Vn=Da});async function K(e){let t=T(e.gitDir,"index");if(!await e.fs.exists(t))return{version:Xo,entries:[]};let n=await e.fs.readFileBuffer(t);return Ed(n)}async function ae(e,t){let n=T(e.gitDir,"index"),r=await kd(t);await e.fs.writeFile(n,r)}function Et(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(Zo),{...e,entries:n}}function at(e,t){return{...e,entries:e.entries.filter(n=>n.path!==t)}}function Ts(e,t,n=0){return e.entries.find(r=>r.path===t&&r.stage===n)}function St(e){return e.entries.some(t=>t.stage>0)}function Bt(e){return[...new Set(e.entries.filter(t=>t.stage>0).map(t=>t.path))]}function De(e){return e.entries.filter(t=>t.stage===0)}function ja(){return{version:Xo,entries:[]}}function vs(e){let t=[...e].sort(Zo);return{version:Xo,entries:t}}function Ie(){return{ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,uid:0,gid:0,size:0}}function Ed(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=0,r=t.getUint32(n);if(n+=4,r!==Ma)throw new Error(`Invalid index signature: 0x${r.toString(16)}`);let o=t.getUint32(n);n+=4;let s=t.getUint32(n);n+=4;let i=[];for(let a=0;a<s;a++){let c=n,f={ctimeSeconds:t.getUint32(n),ctimeNanoseconds:t.getUint32(n+4),mtimeSeconds:t.getUint32(n+8),mtimeNanoseconds:t.getUint32(n+12),dev:t.getUint32(n+16),ino:t.getUint32(n+20),uid:t.getUint32(n+28),gid:t.getUint32(n+32),size:t.getUint32(n+36)},l=t.getUint32(n+24);n+=40;let d=e.subarray(n,n+20),u=Cn(d);n+=20;let m=t.getUint16(n);n+=2;let h=m>>12&3,p=m&4095,g,w;if(p<4095)w=new TextDecoder().decode(e.subarray(n,n+p)),g=p;else{let b=n;for(;b<e.byteLength&&e[b]!==0;)b++;w=new TextDecoder().decode(e.subarray(n,b)),g=b-n}let y=62+g+1,x=Math.ceil(y/8)*8;n=c+x,i.push({path:w,mode:l,hash:u,stage:h,stat:f})}return{version:o,entries:i}}async function kd(e){let t=new TextEncoder,n=[...e.entries].sort(Zo),r=[],o=12;for(let u of n){let m=t.encode(u.path);r.push(m);let h=62+m.byteLength+1;o+=Math.ceil(h/8)*8}o+=20;let s=new ArrayBuffer(o),i=new Uint8Array(s),a=new DataView(s),c=0;a.setUint32(c,Ma),c+=4,a.setUint32(c,e.version),c+=4,a.setUint32(c,n.length),c+=4;for(let u=0;u<n.length;u++){let m=n[u],h=r[u],p=c;a.setUint32(c,m.stat.ctimeSeconds),a.setUint32(c+4,m.stat.ctimeNanoseconds),a.setUint32(c+8,m.stat.mtimeSeconds),a.setUint32(c+12,m.stat.mtimeNanoseconds),a.setUint32(c+16,m.stat.dev),a.setUint32(c+20,m.stat.ino),a.setUint32(c+24,m.mode),a.setUint32(c+28,m.stat.uid),a.setUint32(c+32,m.stat.gid),a.setUint32(c+36,m.stat.size),c+=40;let g=$t(m.hash);i.set(g,c),c+=20;let w=Math.min(h.byteLength,4095),y=(m.stage&3)<<12|w;a.setUint16(c,y),c+=2,i.set(h,c),c+=h.byteLength,i[c]=0,c+=1;let x=62+h.byteLength+1,b=Math.ceil(x/8)*8;c=p+b}let f=i.subarray(0,c),l=await hr(f),d=$t(l);return i.set(d,c),i}function Zo(e,t){return e.path<t.path?-1:e.path>t.path?1:e.stage-t.stage}var Ma,Xo,Ce=Ee(()=>{"use strict";dt();le();Yn();Ma=1145655875,Xo=2});var Rd,Hs,Ga=Ee(()=>{"use strict";Rd=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(!Rd.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 Jo(e){let t=4294967295;for(let n=0;n<e.byteLength;n++)t=La[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var La,_a=Ee(()=>{"use strict";La=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;La[e]=t}});function Va(e){let t=Ka(e);return za(e.subarray(t,-4),{i:2})}function ni(e){let t=Ka(e),n={i:2},r=za(e.subarray(t),n),o=qa(n.p);return{result:r,bytesConsumed:t+o+4}}var qt,pr,xd,Na,Fa,Pd,Ua,Ba,Cd,ti,Lr,_r,Wa,Od,Id,Qo,Wt,ei,qa,$d,Qt,za,Ka,Ya=Ee(()=>{"use strict";qt=Uint8Array,pr=Uint16Array,xd=Int32Array,Na=new qt([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Fa=new qt([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Pd=new qt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ua=(e,t)=>{let n=new pr(31);for(let o=0;o<31;++o)n[o]=t+=1<<e[o-1];let r=new xd(n[30]);for(let o=1;o<30;++o)for(let s=n[o];s<n[o+1];++s)r[s]=s-n[o]<<5|o;return{b:n,r}},{b:Ba}=Ua(Na,2);Ba[28]=258;({b:Cd}=Ua(Fa,0)),ti=new pr(32768);for(let e=0;e<32768;++e){let t=(e&43690)>>1|(e&21845)<<1;t=(t&52428)>>2|(t&13107)<<2,t=(t&61680)>>4|(t&3855)<<4,ti[e]=((t&65280)>>8|(t&255)<<8)>>1}Lr=(e,t,n)=>{let r=e.length,o=0,s=new pr(t);for(;o<r;++o)e[o]&&++s[e[o]-1];let i=new pr(t);for(o=1;o<t;++o)i[o]=i[o-1]+s[o-1]<<1;let a;if(n){a=new pr(1<<t);let c=15-t;for(o=0;o<r;++o)if(e[o]){let f=o<<4|e[o],l=t-e[o],d=i[e[o]-1]++<<l;for(let u=d|(1<<l)-1;d<=u;++d)a[ti[d]>>c]=f}}else for(a=new pr(r),o=0;o<r;++o)e[o]&&(a[o]=ti[i[e[o]-1]++]>>15-e[o]);return a},_r=new qt(288);for(let e=0;e<144;++e)_r[e]=8;for(let e=144;e<256;++e)_r[e]=9;for(let e=256;e<280;++e)_r[e]=7;for(let e=280;e<288;++e)_r[e]=8;Wa=new qt(32);for(let e=0;e<32;++e)Wa[e]=5;Od=Lr(_r,9,1),Id=Lr(Wa,5,1),Qo=e=>{let t=e[0];for(let n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},Wt=(e,t,n)=>{let r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},ei=(e,t)=>{let n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},qa=e=>(e+7)/8|0,$d=(e,t,n)=>((t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new qt(e.subarray(t,n))),Qt=(e,t)=>{let n=["unexpected EOF","invalid block type","invalid length/literal","invalid distance"];throw new Error(t||n[e]||"unknown inflate error")},za=(e,t,n,r)=>{let o=e.length,s=r?r.length:0;if(!o||t.f&&!t.l)return n||new qt(0);let i=!n,a=i||t.i!=2,c=t.i;i&&(n=new qt(o*3));let f=y=>{let x=n.length;if(y>x){let b=new qt(Math.max(x*2,y));b.set(n),n=b}},l=t.f||0,d=t.p||0,u=t.b||0,m=t.l,h=t.d,p=t.m,g=t.n,w=o*8;do{if(!m){l=Wt(e,d,1);let k=Wt(e,d+1,3);if(d+=3,k)if(k==1)m=Od,h=Id,p=9,g=5;else if(k==2){let E=Wt(e,d,31)+257,R=Wt(e,d+10,15)+4,C=E+Wt(e,d+5,31)+1;d+=14;let P=new qt(C),v=new qt(19);for(let S=0;S<R;++S)v[Pd[S]]=Wt(e,d+S*3,7);d+=R*3;let D=Qo(v),O=(1<<D)-1,H=Lr(v,D,1);for(let S=0;S<C;){let N=H[Wt(e,d,O)];d+=N&15;let B=N>>4;if(B<16)P[S++]=B;else{let z=0,_=0;for(B==16?(_=3+Wt(e,d,3),d+=2,z=P[S-1]):B==17?(_=3+Wt(e,d,7),d+=3):B==18&&(_=11+Wt(e,d,127),d+=7);_--;)P[S++]=z}}let G=P.subarray(0,E),A=P.subarray(E);p=Qo(G),g=Qo(A),m=Lr(G,p,1),h=Lr(A,g,1)}else Qt(1);else{let E=qa(d)+4,R=e[E-4]|e[E-3]<<8,C=E+R;if(C>o){c&&Qt(0);break}a&&f(u+R),n.set(e.subarray(E,C),u),t.b=u+=R,t.p=d=C*8,t.f=l;continue}if(d>w){c&&Qt(0);break}}a&&f(u+131072);let y=(1<<p)-1,x=(1<<g)-1,b=d;for(;;b=d){let k=m[ei(e,d)&y],E=k>>4;if(d+=k&15,d>w){c&&Qt(0);break}if(k||Qt(2),E<256)n[u++]=E;else if(E==256){b=d,m=null;break}else{let R=E-254;if(E>264){let O=E-257,H=Na[O];R=Wt(e,d,(1<<H)-1)+Ba[O],d+=H}let C=h[ei(e,d)&x],P=C>>4;C||Qt(3),d+=C&15;let v=Cd[P];if(P>3){let O=Fa[P];v+=ei(e,d)&(1<<O)-1,d+=O}if(d>w){c&&Qt(0);break}a&&f(u+131072);let D=u+R;if(u<v){let O=s-v,H=Math.min(v,D);for(O+u<0&&Qt(3);u<H;++u)n[u]=r[O+u]}for(;u<D;++u)n[u]=n[u-v]}}t.l=m,t.p=b,t.b=u,t.f=l,m&&(l=1,t.m=p,t.d=h,t.n=g)}while(!l);return u!=n.length&&i?$d(n,0,u):n.subarray(0,u)},Ka=e=>(((e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31)&&Qt(0,"invalid zlib data"),e[1]&32&&Qt(0,"zlib dictionaries are not supported"),2)});async function Sd(){let e;if(!(typeof document<"u"))try{e=Rs(["node","zlib"].join(":"))}catch{try{e=await import(["node","zlib"].join(":"))}catch{}}if(e&&typeof e.deflateSync=="function"&&typeof e.inflateSync=="function"){let r=null;try{let o=e.inflateSync(e.deflateSync(Buffer.from("x")),{info:!0});o?.engine&&typeof o.engine.bytesWritten=="number"&&(r=s=>{let i=e.inflateSync(s,{info:!0});return{result:new Uint8Array(i.buffer),bytesConsumed:i.engine.bytesWritten}})}catch{}return{deflateSync:o=>new Uint8Array(e.deflateSync(o)),inflateSync:o=>new Uint8Array(e.inflateSync(o)),inflateWithConsumed:r??ni}}let n;return typeof globalThis.CompressionStream=="function"?n=async r=>{let o=new CompressionStream("deflate"),s=o.writable.getWriter();return s.write(r),s.close(),new Uint8Array(await new Response(o.readable).arrayBuffer())}:n=()=>{throw new Error("No deflate implementation available. Requires node:zlib or CompressionStream.")},{deflateSync:n,inflateSync:Va,inflateWithConsumed:ni}}function ri(){return Td??=Sd()}async function Nr(e){return await(await ri()).deflateSync(e)}async function gr(e){return await(await ri()).inflateSync(e)}async function Xa(e,t){let n=await ri(),{result:r,bytesConsumed:o}=n.inflateWithConsumed(e);if(r.byteLength!==t)throw new Error(`Inflate size mismatch: got ${r.byteLength}, expected ${t}`);return{result:r,bytesConsumed:o}}var Td,As=Ee(()=>{"use strict";Ya();Td=null});async function sc(e,t){let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=n.getUint32(0);if(r!==oi)throw new Error(`Invalid pack signature: 0x${r.toString(16)} (expected 0x${oi.toString(16)})`);let o=n.getUint32(4);if(o!==Qa)throw new Error(`Unsupported pack version: ${o}`);let s=n.getUint32(8),i=[],a=12;for(let f=0;f<s;f++){let l=await Ad(e,a);i.push(l),a=l.nextOffset}return(await Dd(i,t)).map((f,l)=>({...f,offset:i[l].headerOffset,nextOffset:i[l].nextOffset}))}async function Ad(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===Fr){let d=e[t++];for(a=d&127;d&128;)a+=1,d=e[t++],a=(a<<7)+(d&127);a=n-a}else o===ii&&(c=Ss(e,t),t+=20);let{result:f,bytesConsumed:l}=await Xa(e.subarray(t),s);return{headerOffset:n,typeNum:o,inflated:f,baseOffset:a,baseHash:c,nextOffset:t+l}}async function Dd(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 i=r[s];if(i)return i;let a=e[s];if(a.typeNum!==Fr&&a.typeNum!==ii){let u=vd[a.typeNum];if(!u)throw new Error(`Unknown object type: ${a.typeNum}`);let m={type:u,content:a.inflated,hash:await si(u,a.inflated)};return r[s]=m,m}if(a.typeNum===Fr){let u=n.get(a.baseOffset);if(u===void 0)throw new Error(`OFS_DELTA base not found at offset ${a.baseOffset}`);let m=await o(u),h=Ur(m.content,a.inflated),p={type:m.type,content:h,hash:await si(m.type,h)};return r[s]=p,p}let c=await Md(e,r,a.baseHash,o),f;if(c!==void 0)f=await o(c);else if(t){let u=await t(a.baseHash);u&&(f=u)}if(!f)throw new Error(`REF_DELTA base not found for hash ${a.baseHash}`);let l=Ur(f.content,a.inflated),d={type:f.type,content:l,hash:await si(f.type,l)};return r[s]=d,d}for(let s=0;s<e.length;s++)await o(s);return r}async function Md(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!==Fr&&s.typeNum!==ii&&(await r(o)).hash===n)return o}}function Ur(e,t){let n=0,{value:r,newPos:o}=Ja(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}=Ja(t,n);n=i;let a=new Uint8Array(s),c=0;for(;n<t.byteLength;){let f=t[n++];if(f&128){let l=0,d=0;f&1&&(l=t[n++]),f&2&&(l|=t[n++]<<8),f&4&&(l|=t[n++]<<16),f&8&&(l|=t[n++]<<24),f&16&&(d=t[n++]),f&32&&(d|=t[n++]<<8),f&64&&(d|=t[n++]<<16),d===0&&(d=65536),a.set(e.subarray(l,l+d),c),c+=d}else if(f>0)a.set(t.subarray(n,n+f),c),c+=f,n+=f;else throw new Error("Unexpected delta opcode 0x00 (reserved)")}if(c!==s)throw new Error(`Delta produced ${c} bytes, expected ${s}`);return a}async function Ds(e){let t=[],n=new Map,r=new Uint8Array(12),o=new DataView(r.buffer);o.setUint32(0,oi),o.setUint32(4,Qa),o.setUint32(8,e.length),t.push(r);let s=12,i=[];for(let a of e){let c=s;n.set(a.hash,s);let f=a.delta&&a.deltaBaseHash?n.get(a.deltaBaseHash):void 0;if(a.delta&&f!==void 0){let l=Za(Fr,a.delta.byteLength),d=Gd(s-f),u=await Nr(a.delta);t.push(l,d,u),s+=l.byteLength+d.byteLength+u.byteLength}else{let l=Hd[a.type],d=Za(l,a.content.byteLength),u=await Nr(a.content);t.push(d,u),s+=d.byteLength+u.byteLength}i.push({hash:a.hash,offset:c,nextOffset:s})}return{data:await jd(t),entries:i}}async function jd(e){let t=0;for(let i of e)t+=i.byteLength;t+=20;let n=new Uint8Array(t),r=0;for(let i of e)n.set(i,r),r+=i.byteLength;let o=Vn();o.update(n.subarray(0,r));let s=await o.hex();return n.set($t(s),r),n}function Gd(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 Za(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 Ja(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 si(e,t){let n=Ld.encode(`${e} ${t.byteLength}\0`),r=Vn();return r.update(n),r.update(t),r.hex()}var oi,Qa,ec,tc,nc,rc,Fr,ii,vd,Hd,Ld,Br=Ee(()=>{"use strict";dt();Yn();As();oi=1346454347,Qa=2,ec=1,tc=2,nc=3,rc=4,Fr=6,ii=7,vd={[ec]:"commit",[tc]:"tree",[nc]:"blob",[rc]:"tag"},Hd={commit:ec,tree:tc,blob:nc,tag:rc};Ld=new TextEncoder});async function ac(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,oc),c+=4,a.setUint32(c,ic),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($t(m.hash),c),c+=20;for(let m of n)a.setUint32(c,m.crc),c+=4;let l=0;for(let m of n)m.offset>=2147483648?a.setUint32(c,2147483648|l++):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 d=Vn();d.update(i.subarray(0,c));let u=await d.hex();return i.set($t(u),c),i}async function cc(e){let n=(await sc(e)).map(o=>({hash:o.hash,offset:o.offset,crc:Jo(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return ac(n,r)}async function fc(e,t){let n=t.map(o=>({hash:o.hash,offset:o.offset,crc:Jo(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return ac(n,r)}var oc,ic,zt,Ms=Ee(()=>{"use strict";dt();Yn();_a();Br();oc=4285812579,ic=2,zt=class{fanout;hashes;offsets;largeOffsets;count;constructor(t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(n.getUint32(0)!==oc)throw new Error("Invalid pack index: bad magic");if(n.getUint32(4)!==ic)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=$t(t),r=n[0],o=r===0?0:this.fanout[r-1],s=this.fanout[r],i=o,a=s;for(;i<a;){let c=i+a>>>1,f=this.compareAt(c,n);if(f<0)i=c+1;else if(f>0)a=c;else return this.getOffset(c)}return null}has(t){return this.lookup(t)!==null}get objectCount(){return this.count}allHashes(){let t=[];for(let n=0;n<this.count;n++)t.push(this.hashAtSlot(n));return t}findByPrefix(t){if(t.length<2)return[];let n=parseInt(t.slice(0,2),16),r=n===0?0:this.fanout[n-1],o=this.fanout[n],s=$t(t.padEnd(40,"0")),i=t.length,a=[];for(let c=r;c<o;c++){let f=c*20,l=!0;for(let d=0;d<i;d++){let u=d%2===0?this.hashes[f+(d>>1)]>>4&15:this.hashes[f+(d>>1)]&15,m=d%2===0?s[d>>1]>>4&15:s[d>>1]&15;if(u!==m){l=!1;break}}l&&a.push(this.hashAtSlot(c))}return a}hashAtSlot(t){let n="",r=t*20;for(let o=0;o<20;o++){let s=this.hashes[r+o];n+=(s>>4).toString(16)+(s&15).toString(16)}return n}compareAt(t,n){let r=t*20;for(let o=0;o<20;o++){let s=this.hashes[r+o],i=n[o];if(s<i)return-1;if(s>i)return 1}return 0}getOffset(t){let n=this.offsets[t];if(n&2147483648){let r=n&2147483647;return Number(this.largeOffsets.getBigUint64(r*8))}return n}}});var _d,Nd,Fd,Wr,lc=Ee(()=>{"use strict";dt();Ms();Br();As();_d=6,Nd=7,Fd={1:"commit",2:"tree",3:"blob",4:"tag"},Wr=class{constructor(t,n){this.data=t;this.index=n instanceof zt?n:new zt(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,i=o&15,a=4;for(;o&128;)o=n[r++],i|=(o&127)<<a,a+=7;if(s===_d){let l=n[r++],d=l&127;for(;l&128;)d+=1,l=n[r++],d=(d<<7)+(l&127);let u=await gr(n.subarray(r)),m=await this.readAt(t-d);return{type:m.type,content:Ur(m.content,u)}}if(s===Nd){let l=Ss(n,r);r+=20;let d=await gr(n.subarray(r)),u=this.index.lookup(l);if(u===null)throw new Error(`REF_DELTA base ${l} not found in pack`);let m=await this.readAt(u);return{type:m.type,content:Ur(m.content,d)}}let c=Fd[s];if(!c)throw new Error(`Unknown pack object type: ${s}`);let f=await gr(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 ci(e,t){let n=Ud.encode(`${e} ${t.byteLength}\0`),r=new Uint8Array(n.byteLength+t.byteLength);return r.set(n),r.set(t,n.byteLength),r}function Wd(e,t){let n=t.indexOf(0);if(n===-1)throw new Error(`Corrupt object ${e}: no null byte in header`);let r=Bd.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 ai(e,t){return T(e,"objects",t.slice(0,2),t.slice(2))}var Ud,Bd,wr,fi=Ee(()=>{"use strict";dt();Ga();Ms();lc();As();le();Yn();Ud=new TextEncoder,Bd=new TextDecoder;wr=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=ci(t,n),o=await hr(r),s=ai(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 Nr(r)),o}async read(t){let n=this.cache.get(t);if(n)return n;let r=ai(this.gitDir,t);if(await this.fs.exists(r)){let o=await this.fs.readFileBuffer(r),s=await gr(o),i=Wd(t,s);return this.cache.set(t,i),i}await this.discover();for(let o of this.packs){if(!o.index.has(t))continue;let i=await(await this.ensureReader(o)).readObject(t);if(i)return this.cache.set(t,i),i}throw new Error(`object ${t} not found`)}async exists(t){if(await this.fs.exists(ai(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=Cn(o);await this.fs.mkdir(this.packDir,{recursive:!0});let i=`pack-${s}`,a=T(this.packDir,`${i}.pack`);await this.fs.writeFile(a,t);let c=await cc(t),f=T(this.packDir,`${i}.idx`);await this.fs.writeFile(f,c),this.loadedPackNames.add(i);let l=new zt(c);return this.packs.push({name:i,index:l,reader:new Wr(t,l)}),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 i=await this.fs.readdir(o);for(let a of i)a.startsWith(r)&&s.push(`${n}${a}`)}await this.discover();for(let i of this.packs)for(let a of i.index.findByPrefix(t))s.includes(a)||s.push(a);return s}async ensureReader(t){if(t.reader)return t.reader;let n=T(this.packDir,`${t.name}.pack`),r=await this.fs.readFileBuffer(n);return t.reader=new Wr(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 zt(s),reader:null})}}}});function qr(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 zr(e){return`${e.name} <${e.email}> ${e.timestamp} ${e.timezone}`}var li=Ee(()=>{"use strict"});function en(e){let t=zd.decode(e),n=t.indexOf(`
22
22
 
23
23
  `),r=n===-1?t:t.slice(0,n),o=n===-1?"":t.slice(n+2),s="",i=[],a,c;for(let f of r.split(`
24
- `)){let l=f.indexOf(" ");if(l===-1)continue;let d=f.slice(0,l),u=f.slice(l+1);switch(d){case"tree":s=u;break;case"parent":i.push(u);break;case"author":a=qr(u);break;case"committer":c=qr(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 tn(e){let t=[];t.push(`tree ${e.tree}`);for(let n of e.parents)t.push(`parent ${n}`);return t.push(`author ${zr(e.author)}`),t.push(`committer ${zr(e.committer)}`),t.push(""),t.push(e.message),Wd.encode(t.join(`
25
- `))}var Wd,qd,un=Ee(()=>{"use strict";li();Wd=new TextEncoder,qd=new TextDecoder});function mn(e){let t=Kd.decode(e),n=t.indexOf(`
24
+ `)){let l=f.indexOf(" ");if(l===-1)continue;let d=f.slice(0,l),u=f.slice(l+1);switch(d){case"tree":s=u;break;case"parent":i.push(u);break;case"author":a=qr(u);break;case"committer":c=qr(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 tn(e){let t=[];t.push(`tree ${e.tree}`);for(let n of e.parents)t.push(`parent ${n}`);return t.push(`author ${zr(e.author)}`),t.push(`committer ${zr(e.committer)}`),t.push(""),t.push(e.message),qd.encode(t.join(`
25
+ `))}var qd,zd,un=Ee(()=>{"use strict";li();qd=new TextEncoder,zd=new TextDecoder});function mn(e){let t=Vd.decode(e),n=t.indexOf(`
26
26
 
27
27
  `),r=n===-1?t:t.slice(0,n),o=n===-1?"":t.slice(n+2),s="",i="commit",a="",c;for(let f of r.split(`
28
- `)){let l=f.indexOf(" ");if(l===-1)continue;let d=f.slice(0,l),u=f.slice(l+1);switch(d){case"object":s=u;break;case"type":i=u;break;case"tag":a=u;break;case"tagger":c=qr(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 uc(e){let t=[];return t.push(`object ${e.object}`),t.push(`type ${e.objectType}`),t.push(`tag ${e.name}`),t.push(`tagger ${zr(e.tagger)}`),t.push(""),t.push(e.message),zd.encode(t.join(`
29
- `))}var zd,Kd,Kr=Ee(()=>{"use strict";li();zd=new TextEncoder,Kd=new TextDecoder});async function Et(e,t){return mr(ci(e,t))}async function $e(e,t,n){let r=await e.objectStore.write(t,n);return e.hooks?.onObjectWrite?.({repo:e,type:t,hash:r}),r}async function we(e,t){return e.objectStore.read(t)}async function Kt(e,t){return e.objectStore.exists(t)}async function js(e,t){return e.objectStore.ingestPack(t)}async function mc(e,t){return e.objectStore.findByPrefix(t)}function Se(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 On(e){let t=Math.min(e.byteLength,8e3);for(let n=0;n<t;n++)if(e[n]===0)return!0;return!1}async function oe(e,t){let n=await we(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return Vd.decode(n.content)}async function kt(e,t){let n=await we(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return n.content}async function j(e,t){let n=await we(e,t);if(n.type!=="commit")throw new Error(`Expected commit object for ${t}, got ${n.type}`);return en(n.content)}async function hc(e,t){let n=await we(e,t);if(n.type!=="tag")throw new Error(`Expected tag object for ${t}, got ${n.type}`);return mn(n.content)}async function _e(e,t){let n=t;for(let r=0;r<100;r++){let o=await we(e,n);if(o.type==="commit")return n;if(o.type==="tag"){n=mn(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 Vd,ie=Ee(()=>{"use strict";fi();un();Kr();Yn();Vd=new TextDecoder});function pc(e){return typeof e=="string"?{type:"direct",hash:e}:e}var Vr,di=Ee(()=>{"use strict";Vr={REGULAR:"100644",EXECUTABLE:"100755",SYMLINK:"120000",DIRECTORY:"040000",SUBMODULE:"160000"}});async function wc(e,t){return e.refStore.readRef(t)}async function F(e,t){let n=t;for(let r=0;r<gc;r++){let o=await wc(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 Q(e){return wc(e,"HEAD")}async function Z(e){return F(e,"HEAD")}async function X(e,t,n){let r=e.hooks?await F(e,t):null;await e.refStore.writeRef(t,{type:"direct",hash:n}),e.hooks?.onRefUpdate?.({repo:e,ref:t,oldHash:r,newHash:n})}async function ze(e,t,n){await e.refStore.writeRef(t,{type:"symbolic",target:n})}async function de(e,t){let n=e.hooks?await F(e,t):null;await e.refStore.deleteRef(t),await Xr(e,t),e.hooks&&n&&e.hooks.onRefDelete?.({repo:e,ref:t,oldHash:n})}async function ge(e,t="refs"){return e.refStore.listRefs(t)}function Re(e){return e.replace("refs/heads/","")}async function Sn(e,t){let n=await Q(e);n&&n.type==="symbolic"?await X(e,n.target,t):await X(e,"HEAD",t)}async function bc(e){if(e.refStore&&!(e.refStore instanceof In))return;let t=await ge(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 we(e,o.hash);if(s.type==="tag"){let i=mn(s.content).object;for(let a=0;a<100;a++){let c=await we(e,i);if(c.type!=="tag")break;i=mn(c.content).object}n.push(`^${i}`)}}catch{}await e.fs.writeFile(T(e.gitDir,"packed-refs"),`${n.join(`
28
+ `)){let l=f.indexOf(" ");if(l===-1)continue;let d=f.slice(0,l),u=f.slice(l+1);switch(d){case"object":s=u;break;case"type":i=u;break;case"tag":a=u;break;case"tagger":c=qr(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 dc(e){let t=[];return t.push(`object ${e.object}`),t.push(`type ${e.objectType}`),t.push(`tag ${e.name}`),t.push(`tagger ${zr(e.tagger)}`),t.push(""),t.push(e.message),Kd.encode(t.join(`
29
+ `))}var Kd,Vd,Kr=Ee(()=>{"use strict";li();Kd=new TextEncoder,Vd=new TextDecoder});async function ut(e,t){return hr(ci(e,t))}async function Se(e,t,n){let r=await e.objectStore.write(t,n);return e.hooks?.onObjectWrite?.({repo:e,type:t,hash:r}),r}async function we(e,t){return e.objectStore.read(t)}async function Kt(e,t){return e.objectStore.exists(t)}async function js(e,t){return e.objectStore.ingestPack(t)}async function uc(e,t){return e.objectStore.findByPrefix(t)}function $e(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 On(e){let t=Math.min(e.byteLength,8e3);for(let n=0;n<t;n++)if(e[n]===0)return!0;return!1}async function oe(e,t){let n=await we(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return Yd.decode(n.content)}async function kt(e,t){let n=await we(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return n.content}async function j(e,t){let n=await we(e,t);if(n.type!=="commit")throw new Error(`Expected commit object for ${t}, got ${n.type}`);return en(n.content)}async function mc(e,t){let n=await we(e,t);if(n.type!=="tag")throw new Error(`Expected tag object for ${t}, got ${n.type}`);return mn(n.content)}async function _e(e,t){let n=t;for(let r=0;r<100;r++){let o=await we(e,n);if(o.type==="commit")return n;if(o.type==="tag"){n=mn(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 Yd,ie=Ee(()=>{"use strict";fi();un();Kr();Yn();Yd=new TextDecoder});function hc(e){return typeof e=="string"?{type:"direct",hash:e}:e}var Vr,di=Ee(()=>{"use strict";Vr={REGULAR:"100644",EXECUTABLE:"100755",SYMLINK:"120000",DIRECTORY:"040000",SUBMODULE:"160000"}});async function gc(e,t){return e.refStore.readRef(t)}async function F(e,t){let n=t;for(let r=0;r<pc;r++){let o=await gc(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 Q(e){return gc(e,"HEAD")}async function Z(e){return F(e,"HEAD")}async function X(e,t,n){let r=e.hooks?await F(e,t):null;await e.refStore.writeRef(t,{type:"direct",hash:n}),e.hooks?.onRefUpdate?.({repo:e,ref:t,oldHash:r,newHash:n})}async function ze(e,t,n){await e.refStore.writeRef(t,{type:"symbolic",target:n})}async function de(e,t){let n=e.hooks?await F(e,t):null;await e.refStore.deleteRef(t),await Xr(e,t),e.hooks&&n&&e.hooks.onRefDelete?.({repo:e,ref:t,oldHash:n})}async function ge(e,t="refs"){return e.refStore.listRefs(t)}function Re(e){return e.replace("refs/heads/","")}async function $n(e,t){let n=await Q(e);n&&n.type==="symbolic"?await X(e,n.target,t):await X(e,"HEAD",t)}async function wc(e){if(e.refStore&&!(e.refStore instanceof In))return;let t=await ge(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 we(e,o.hash);if(s.type==="tag"){let i=mn(s.content).object;for(let a=0;a<100;a++){let c=await we(e,i);if(c.type!=="tag")break;i=mn(c.content).object}n.push(`^${i}`)}}catch{}await e.fs.writeFile(T(e.gitDir,"packed-refs"),`${n.join(`
30
30
  `)}
31
- `);for(let o of t){let s=T(e.gitDir,o.name);await e.fs.exists(s)&&await e.fs.rm(s)}await yc(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 yc(e,t){if(e.refStore&&!(e.refStore instanceof In)||!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 yc(e,T(t,s));(await e.fs.readdir(t)).length===0&&await e.fs.rm(t,{recursive:!0})}var ui,gc,In,ue=Ee(()=>{"use strict";ie();Kr();le();Fe();$n();di();ui="ref: ",gc=10,In=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(ui)?{type:"symbolic",target:s.slice(ui.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=pc(n),o=T(this.gitDir,t);await Yr(this.fs,o),r.type==="symbolic"?await this.fs.writeFile(o,`${ui}${r.target}
31
+ `);for(let o of t){let s=T(e.gitDir,o.name);await e.fs.exists(s)&&await e.fs.rm(s)}await bc(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 bc(e,t){if(e.refStore&&!(e.refStore instanceof In)||!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 bc(e,T(t,s));(await e.fs.readdir(t)).length===0&&await e.fs.rm(t,{recursive:!0})}var ui,pc,In,ue=Ee(()=>{"use strict";ie();Kr();le();Fe();Sn();di();ui="ref: ",pc=10,In=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(ui)?{type:"symbolic",target:s.slice(ui.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=hc(n),o=T(this.gitDir,t);await Yr(this.fs,o),r.type==="symbolic"?await this.fs.writeFile(o,`${ui}${r.target}
32
32
  `):await this.fs.writeFile(o,`${r.hash}
33
- `)}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(a=>a.name)),i=`${t}/`;for(let[a,c]of o)a.startsWith(i)&&!s.has(a)&&n.push({name:a,hash:c})}return n.sort((s,i)=>s.name<i.name?-1:s.name>i.name?1:0)}async compareAndSwapRef(t,n,r){let s=(this.casLocks.get(t)??Promise.resolve(!1)).then(()=>this.compareAndSwapUnsafe(t,n,r),()=>this.compareAndSwapUnsafe(t,n,r));this.casLocks.set(t,s);try{return await s}finally{this.casLocks.get(t)===s&&this.casLocks.delete(t)}}async compareAndSwapUnsafe(t,n,r){let o=await this.resolveRefInternal(t);if(n===null){if(await this.readRef(t)!==null)return!1}else if(o!==n)return!1;return r===null?await this.deleteRef(t):await this.writeRef(t,r),!0}async resolveRefInternal(t){let n=t;for(let r=0;r<gc;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(`
33
+ `)}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(a=>a.name)),i=`${t}/`;for(let[a,c]of o)a.startsWith(i)&&!s.has(a)&&n.push({name:a,hash:c})}return n.sort((s,i)=>s.name<i.name?-1:s.name>i.name?1:0)}async compareAndSwapRef(t,n,r){let s=(this.casLocks.get(t)??Promise.resolve(!1)).then(()=>this.compareAndSwapUnsafe(t,n,r),()=>this.compareAndSwapUnsafe(t,n,r));this.casLocks.set(t,s);try{return await s}finally{this.casLocks.get(t)===s&&this.casLocks.delete(t)}}async compareAndSwapUnsafe(t,n,r){let o=await this.resolveRefInternal(t);if(n===null){if(await this.readRef(t)!==null)return!1}else if(o!==n)return!1;return r===null?await this.deleteRef(t):await this.writeRef(t,r),!0}async resolveRefInternal(t){let n=t;for(let r=0;r<pc;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(`
34
34
  `)){if(!o||o.startsWith("#")||o.startsWith("^"))continue;let s=o.indexOf(" ");if(s===-1)continue;let i=o.slice(0,s),a=o.slice(s+1).trim();i.length===40&&a&&r.set(a,i)}return r}async removePackedRef(t){let n=T(this.gitDir,"packed-refs");if(!await this.fs.exists(n))return;let o=(await this.fs.readFile(n)).split(`
35
35
  `),s=[],i=!1;for(let c of o){if(i&&c.startsWith("^")){i=!1;continue}if(i=!1,!c||c.startsWith("#")){s.push(c);continue}let f=c.indexOf(" ");if(f!==-1&&c.slice(f+1).trim()===t){i=!0;continue}s.push(c)}s.some(c=>c&&!c.startsWith("#")&&!c.startsWith("^"))?await this.fs.writeFile(n,s.join(`
36
- `)):await this.fs.rm(n)}async walkRefs(t,n,r){let o=await this.fs.readdir(t);for(let s of o){let i=T(t,s),a=`${n}/${s}`,c=await this.fs.stat(i);if(c.isDirectory)await this.walkRefs(i,a,r);else if(c.isFile){let f=await this.resolveRefInternal(a);f&&r.push({name:a,hash:f})}}}}});async function Xn(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 gr(e,r),refStore:new In(e,r)};if(await Yd(e,n))return{fs:e,gitDir:n,workTree:null,objectStore:new gr(e,n),refStore:new In(e,n)};let o=Xd(n);if(o===n)return null;n=o}}async function Yd(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 Gs(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,objectStore:new gr(e,s),refStore:new In(e,s)};if(!c){await ze(f,"HEAD",`refs/heads/${o}`);let l={core:{repositoryformatversion:"0",filemode:"true",bare:r?"true":"false",...r?{}:{logallrefupdates:"true"}}};await e.writeFile(T(s,"config"),zo(l))}return{ctx:f,reinit:c}}async function Yr(e,t){let n=t.lastIndexOf("/");if(n>0){let r=t.slice(0,n);await e.mkdir(r,{recursive:!0})}}function Xd(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var $n=Ee(()=>{"use strict";Ne();fi();le();ue()});function Ls(e,t){return T(e.gitDir,"logs",t)}function Zd(e){let t=e.indexOf(" ");if(t<0)return null;let n=e.slice(0,t),r=e.slice(t+1),o=n.split(" ");if(o.length<5)return null;let s=o[0],i=o[1];if(!s||!i)return null;let a=n.indexOf("<"),c=n.indexOf(">",a);if(a<0||c<0)return null;let f=n.slice(s.length+1+i.length+1,a).trim(),l=n.slice(a+1,c),d=n.slice(c+2),u=d.indexOf(" ");if(u<0)return null;let m=parseInt(d.slice(0,u),10),h=d.slice(u+1);return{oldHash:s,newHash:i,name:f,email:l,timestamp:m,tz:h,message:r}}async function Je(e,t){let n=Ls(e,t);if(!await e.fs.exists(n))return[];let r=await e.fs.readFile(n);if(!r.trim())return[];let o=[];for(let s of r.split(`
37
- `)){if(!s)continue;let i=Zd(s);i&&o.push(i)}return o}function Ec(e){return`${e.oldHash} ${e.newHash} ${e.name} <${e.email}> ${e.timestamp} ${e.tz} ${e.message}`}async function Tn(e,t,n){let r=Ls(e,t);if(await Yr(e.fs,r),n.length===0){await e.fs.writeFile(r,"");return}let o=`${n.map(Ec).join(`
36
+ `)):await this.fs.rm(n)}async walkRefs(t,n,r){let o=await this.fs.readdir(t);for(let s of o){let i=T(t,s),a=`${n}/${s}`,c=await this.fs.stat(i);if(c.isDirectory)await this.walkRefs(i,a,r);else if(c.isFile){let f=await this.resolveRefInternal(a);f&&r.push({name:a,hash:f})}}}}});async function Xn(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 wr(e,r),refStore:new In(e,r)};if(await Xd(e,n))return{fs:e,gitDir:n,workTree:null,objectStore:new wr(e,n),refStore:new In(e,n)};let o=Zd(n);if(o===n)return null;n=o}}async function Xd(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 Gs(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,objectStore:new wr(e,s),refStore:new In(e,s)};if(!c){await ze(f,"HEAD",`refs/heads/${o}`);let l={core:{repositoryformatversion:"0",filemode:"true",bare:r?"true":"false",...r?{}:{logallrefupdates:"true"}}};await e.writeFile(T(s,"config"),zo(l))}return{ctx:f,reinit:c}}async function Yr(e,t){let n=t.lastIndexOf("/");if(n>0){let r=t.slice(0,n);await e.mkdir(r,{recursive:!0})}}function Zd(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var Sn=Ee(()=>{"use strict";Ne();fi();le();ue()});function Ls(e,t){return T(e.gitDir,"logs",t)}function Jd(e){let t=e.indexOf(" ");if(t<0)return null;let n=e.slice(0,t),r=e.slice(t+1),o=n.split(" ");if(o.length<5)return null;let s=o[0],i=o[1];if(!s||!i)return null;let a=n.indexOf("<"),c=n.indexOf(">",a);if(a<0||c<0)return null;let f=n.slice(s.length+1+i.length+1,a).trim(),l=n.slice(a+1,c),d=n.slice(c+2),u=d.indexOf(" ");if(u<0)return null;let m=parseInt(d.slice(0,u),10),h=d.slice(u+1);return{oldHash:s,newHash:i,name:f,email:l,timestamp:m,tz:h,message:r}}async function Je(e,t){let n=Ls(e,t);if(!await e.fs.exists(n))return[];let r=await e.fs.readFile(n);if(!r.trim())return[];let o=[];for(let s of r.split(`
37
+ `)){if(!s)continue;let i=Jd(s);i&&o.push(i)}return o}function yc(e){return`${e.oldHash} ${e.newHash} ${e.name} <${e.email}> ${e.timestamp} ${e.tz} ${e.message}`}async function Tn(e,t,n){let r=Ls(e,t);if(await Yr(e.fs,r),n.length===0){await e.fs.writeFile(r,"");return}let o=`${n.map(yc).join(`
38
38
  `)}
39
- `;await e.fs.writeFile(r,o)}async function Ke(e,t,n){let r=Ls(e,t);await Yr(e.fs,r);let o=`${Ec(n)}
40
- `;if(await e.fs.exists(r)){let s=await e.fs.readFile(r);await e.fs.writeFile(r,s+o)}else await e.fs.writeFile(r,o)}async function Xr(e,t){let n=Ls(e,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function re(e,t,n,r,o,s,i=!1){let a=await Jt(e,t),c={oldHash:r??te,newHash:o,...a,message:s};await Ke(e,n,c),i&&n!=="HEAD"&&await Ke(e,"HEAD",c)}var Fe=Ee(()=>{"use strict";dt();Cn();le();$n();dt()});function Jd(e){let t=[],n=e.length;for(;n>0;){let s=e.slice(0,n).match(/^(.+?)~(\d*)$/);if(s&&s[1]!==void 0&&s[2]!==void 0){let c=s[2]===""?1:parseInt(s[2],10);t.unshift({type:"tilde",n:c}),n=s[1].length;continue}let i=e.slice(0,n).match(/^(.+?)\^{([^}]*)}$/);if(i&&i[1]!==void 0&&i[2]!==void 0){t.unshift({type:"peel",target:i[2]}),n=i[1].length;continue}let a=e.slice(0,n).match(/^(.+?)\^(\d*)$/);if(a&&a[1]!==void 0&&a[2]!==void 0){let c=a[2]===""?1:parseInt(a[2],10);t.unshift({type:"caret",n:c}),n=a[1].length;continue}break}let r=e.slice(0,n),o=r.match(/^(.+?)@\{(\d+)\}$/);return o&&o[1]!==void 0&&o[2]!==void 0?{base:o[1],reflogIndex:parseInt(o[2],10),suffixes:t}:{base:r,suffixes:t}}async function Qd(e,t){let n=await mc(e,t);if(n.length===0)return null;if(n.length>1)throw new mi(t);return n[0]}async function eu(e,t){if(t==="HEAD"||t==="@")return F(e,"HEAD");if(kc.includes(t))return F(e,t);if(/^[0-9a-f]{40}$/.test(t))return await Kt(e,t)?t:null;if(/^[0-9a-f]{4,39}$/.test(t)){let s=await Qd(e,t);if(s)return s}if(t.startsWith("refs/")){let s=await F(e,t);if(s)return s}let n=await F(e,`refs/heads/${t}`);if(n)return n;let r=await F(e,`refs/tags/${t}`);if(r)return r;let o=await F(e,`refs/remotes/${t}`);return o||null}function tu(e){if(e==="HEAD"||e==="@")return"HEAD";for(let t of kc)if(e===t)return t;return e.startsWith("refs/")?e:`refs/heads/${e}`}async function nu(e,t,n){let r=tu(t),o=await Je(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 ru(e,t,n){if(n===""||n==="commit")try{return await _e(e,t)}catch{return null}if(n==="tree"){let o;try{o=await _e(e,t)}catch{return null}return(await j(e,o)).tree}return(await we(e,t)).type!==n?null:t}async function Be(e,t){let{base:n,reflogIndex:r,suffixes:o}=Jd(t),s;if(r!==void 0?s=await nu(e,n,r):s=await eu(e,n),!s)return null;o.some(a=>a.type==="tilde"||a.type==="caret")&&(s=await _e(e,s));for(let a of o)if(a.type==="peel"){if(!s)return null;s=await ru(e,s,a.target)}else if(a.type==="tilde")for(let c=0;c<a.n;c++){if(!s)return null;let f=await j(e,s);if(f.parents.length===0||(s=f.parents[0]??null,!s))return null}else{if(a.n===0)continue;if(!s)return null;let c=await j(e,s);if(a.n>c.parents.length||(s=c.parents[a.n-1]??null,!s))return null}return s}function _s(e){let t=e.indexOf(":");return t<0?null:{rev:e.slice(0,t)||"HEAD",path:e.slice(t+1)}}var kc,mi,hn=Ee(()=>{"use strict";ie();Fe();ue();kc=["HEAD","FETCH_HEAD","ORIG_HEAD","MERGE_HEAD","CHERRY_PICK_HEAD","REBASE_HEAD"];mi=class extends Error{constructor(n){super(`short object ID ${n} is ambiguous`);this.prefix=n}}});function lt(e,t){return e.lstat?e.lstat(t):e.stat(t)}function pn(e){return typeof e=="string"?e==="120000":e===40960}async function Zr(e,t){if((await lt(e,t)).isSymbolicLink&&e.readlink){let r=await e.readlink(t);return su.encode(r)}return e.readFileBuffer(t)}async function vn(e,t){let n=await Zr(e,t);return Et("blob",n)}var su,Zn=Ee(()=>{"use strict";ie();su=new TextEncoder});function Hn(e){let t=[],n=0;for(;n<e.byteLength;){let r=e.indexOf(32,n);if(r===-1)break;let o=Rc.decode(e.subarray(n,r)),s=e.indexOf(0,r+1);if(s===-1)break;let i=Rc.decode(e.subarray(r+1,s)),a=e.subarray(s+1,s+21),c=Pn(a),f=o.padStart(6,"0");t.push({mode:f,name:i,hash:c}),n=s+21}return{type:"tree",entries:t}}function xc(e){let t=[];for(let s of e.entries){let i=s.mode.replace(/^0+/,""),a=ou.encode(`${i} ${s.name}\0`),c=St(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 ou,Rc,Ns=Ee(()=>{"use strict";dt();ou=new TextEncoder,Rc=new TextDecoder});async function Ge(e,t){return Cc(e,t,"")}async function Cc(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:iu(i.mode),name:a,hash:i.hash});else{let f=a.slice(0,c),l=o.get(f);l||(l=[],o.set(f,l)),l.push(i)}}for(let[i,a]of o){let c=n?`${n}/${i}`:i,f=await Cc(e,a,c);r.push({mode:Vr.DIRECTORY,name:i,hash:f})}r.sort((i,a)=>{let c=i.mode===Vr.DIRECTORY?`${i.name}/`:i.name,f=a.mode===Vr.DIRECTORY?`${a.name}/`:a.name;return c<f?-1:c>f?1:0});let s=xc({type:"tree",entries:r});return $e(e,"tree",s)}async function Ve(e,t,n=""){let r=await we(e,t);if(r.type!=="tree")throw new Error(`Expected tree object, got ${r.type}`);let o=Hn(r.content),s=[];for(let i of o.entries){let a=n?`${n}/${i.name}`:i.name;if(i.mode===Vr.DIRECTORY){let c=await Ve(e,i.hash,a);s.push(...c)}else s.push({path:a,mode:i.mode,hash:i.hash})}return s}async function ce(e,t){if(!t)return new Map;let n=await Ve(e,t);return new Map(n.map(r=>[r.path,r]))}async function We(e,t,n){let r=await ce(e,t),o=await ce(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)=>Oe(i.path,a.path))}function iu(e){return e.toString(8).padStart(6,"0")}var ve=Ee(()=>{"use strict";se();ie();Ns();di()});function Pc(e){return/^[a-zA-Z0-9]$/.test(e)}function au(e){return/^[a-zA-Z]$/.test(e)}function cu(e){return e>="0"&&e<="9"}function hi(e){return e>="A"&&e<="Z"}function pi(e){return e>="a"&&e<="z"}function Oc(e){return/^\s$/.test(e)}function fu(e){return e===" "||e===" "}function wi(e){let t=e.charCodeAt(0);return t>=32&&t<=126}function lu(e){return wi(e)&&!Oc(e)}function du(e){return wi(e)&&!Pc(e)&&e!==" "}function uu(e){let t=e.charCodeAt(0);return t<32||t===127}function mu(e){return/^[0-9a-fA-F]$/.test(e)}function Jr(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e===t}function gi(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(!Jr(n[r],e[t],s))return 1;r++,t++;break}case"?":{if(i&&c==="/")return 1;r++,t++;break}case"*":{let f;if(t++,t<e.length&&e[t]==="*"){let l=t;for(;t<e.length&&e[t]==="*";)t++;if(!i)f=!0;else if((l-1<1||e[l-2]==="/")&&(t>=e.length||e[t]==="/"||e[t]==="\\"&&t+1<e.length&&e[t+1]==="/")){if(t<e.length&&e[t]==="/"&&gi(e,t+1,n,r,o)===0)return 0;f=!0}else f=!1}else f=!i;if(t>=e.length)return!f&&n.indexOf("/",r)!==-1?-2:0;if(!f&&e[t]==="/"){let l=n.indexOf("/",r);if(l===-1)return-1;r=l+1,t++;break}for(;!(r>=n.length);){if(!hu(e[t])){let d=s?e[t].toLowerCase():e[t];for(;r<n.length&&(f||n[r]!=="/")&&(s?n[r].toLowerCase():n[r])!==d;)r++;if(r>=n.length||!f&&n[r]==="/")return r<n.length&&!f&&n[r]==="/"?-2:f?-1:-2}let l=gi(e,t,n,r,o);if(l!==1){if(!f||l!==-2)return l}else if(!f&&n[r]==="/")return-2;r++}return-1}case"[":{if(i&&c==="/")return 1;if(t++,t>=e.length)return-1;let f=!1;(e[t]==="!"||e[t]==="^")&&(f=!0,t++);let l=!1,d="",u=!0;for(;t<e.length&&(u||e[t]!=="]");){u=!1;let m=e[t];if(m==="\\"){if(t++,t>=e.length)return-1;m=e[t],Jr(c,m,s)&&(l=!0)}else if(m==="-"&&d&&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=d,p=m;if(c>=h&&c<=p&&(l=!0),s){if(pi(c)){let g=c.toUpperCase();g>=h&&g<=p&&(l=!0)}else if(hi(c)){let g=c.toLowerCase();g>=h&&g<=p&&(l=!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="[",Jr(c,m,s)&&(l=!0);else{let g=e.slice(h,h+p);pu(g,c,s)&&(l=!0),m=""}}else Jr(c,m,s)&&(l=!0);d=m,t++}if(t>=e.length)return-1;if(t++,l===f)return 1;r++;break}default:{if(!Jr(c,a,s))return 1;r++,t++;break}}}return r>=n.length?0:1}function hu(e){return e==="*"||e==="?"||e==="["||e==="\\"}function pu(e,t,n){switch(e){case"alnum":return Pc(t);case"alpha":return au(t);case"blank":return fu(t);case"cntrl":return uu(t);case"digit":return cu(t);case"graph":return lu(t);case"lower":return pi(t)||n&&hi(t);case"print":return wi(t);case"punct":return du(t);case"space":return Oc(t);case"upper":return hi(t)||n&&pi(t);case"xdigit":return mu(t);default:return!1}}function Jn(e,t,n=0){return gi(e,0,t,0,n)===0?0:1}var Fs=Ee(()=>{"use strict"});function Tc(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 gu(e){return Tc(e)===e.length}function wu(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|=Us,o=o.slice(1)),o.length===0)return null;let s=o.length;o[s-1]==="/"&&(s--,o=o.slice(0,s),r|=$c);let i=!1;for(let c=0;c<s;c++)if(o[c]==="/"){i=!0;break}i||(r|=Ic);let a=Math.min(Tc(o),s);return o[0]==="*"&&gu(o.slice(1))&&(r|=Sc),{pattern:o,patternLen:s,nowildcardLen:a,flags:r,base:t}}function Qr(e,t,n){let r=[];for(let o of e.split(`
41
- `)){let s=wu(o,t);s&&r.push(s)}return{patterns:r,src:n}}function bu(e,t){let{pattern:n,patternLen:r,nowildcardLen:o,flags:s}=t;if(o===r)return e===n;if(s&Sc){let i=n.slice(1);return e.length>=i.length&&e.endsWith(i)}return Jn(n,e,2)===0}function yu(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 Jn(r,a,2)===0}function bi(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&$c&&!t)){if(s.flags&Ic){if(s.base&&!e.startsWith(`${s.base}/`))continue;if(bu(r,s))return s;continue}if(yu(e,s))return s}}return null}function nn(e,t,n){for(let r=e.dirPatterns.length-1;r>=0;r--){let o=e.dirPatterns[r],s=bi(t,n,o);if(s)return s.flags&Us?"not-ignored":"ignored"}if(e.excludeFile){let r=bi(t,n,e.excludeFile);if(r)return r.flags&Us?"not-ignored":"ignored"}if(e.globalExclude){let r=bi(t,n,e.globalExclude);if(r)return r.flags&Us?"not-ignored":"ignored"}return"undecided"}async function br(e){let t={dirPatterns:[],excludeFile:null,globalExclude:null},n=T(e.gitDir,"info","exclude");try{let r=await e.fs.readFile(n);t.excludeFile=Qr(r,"",n)}catch{}try{let r=await ke(e,"core.excludesFile");if(r)try{let o=await e.fs.readFile(r);t.globalExclude=Qr(o,"",r)}catch{}}catch{}return t}function Qn(e,t,n,r){let s=Qr(t,n===""?"":n,r);return{...e,dirPatterns:[...e.dirPatterns,s]}}var Ic,Sc,$c,Us,Ws=Ee(()=>{"use strict";Ne();le();Fs();Ic=1,Sc=4,$c=8,Us=16});async function Tt(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 lt(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 vn(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 et(e,e.workTree,"");for(let s of o)r.has(s)||n.push({path:s,status:"untracked"});return n.sort((s,i)=>Oe(s.path,i.path))}async function ct(e,t){if(!e.workTree)throw new Error("Cannot checkout in a bare repository");let n=await we(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&&pn(t.mode)&&e.fs.symlink){await lt(e.fs,r).then(()=>!0).catch(()=>!1)&&await e.fs.rm(r,{force:!0});let i=ku.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 vc(e,t){let n=await Ve(e,t);for(let r of n)await ct(e,r)}async function rn(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 lt(e.fs,r);if(o.isSymbolicLink&&e.fs.readlink){let f=await e.fs.readlink(r),l=Eu.encode(f),d=await $e(e,"blob",l),u={path:n,mode:40960,hash:d,stage:0,stat:{...Ie(),size:l.byteLength}};return{index:yt(t,u),hash:d}}let s=await e.fs.readFileBuffer(r),i=await $e(e,"blob",s),a=o.mode!=null?Ru(o.mode):33188,c={path:n,mode:a,hash:i,stage:0,stat:{...Ie(),size:s.byteLength}};return{index:yt(t,c),hash:i}}async function et(e,t,n,r){let o=r?.skipIgnore??!1,s=null;if(!o){s=r?._ignore??await br(e);let c=T(t,".gitignore");try{let f=await e.fs.readFile(c);s=Qn(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),l=n?`${n}/${c}`:c,d=await lt(e.fs,f);if(d.isSymbolicLink){if(s&&nn(s,l,!1)==="ignored")continue;i.push(l)}else if(d.isDirectory){if(s&&nn(s,l,!0)==="ignored")continue;let u=await et(e,f,l,{skipIgnore:o,_ignore:s??void 0});i.push(...u)}else if(d.isFile){if(s&&nn(s,l,!1)==="ignored")continue;i.push(l)}}return i}function Ru(e){return e>511?e:e&73?33261:33188}async function er(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 er(e,Zt(t),n))}var Eu,ku,tt=Ee(()=>{"use strict";se();Ws();Pe();ie();le();Zn();ve();Eu=new TextEncoder,ku=new TextDecoder});function yi(e){return e.existsOnDisk&&e.indexHash===null}async function xu(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 i=e.workTree?new Set(await et(e,e.workTree,"",{skipIgnore:!0})):new Set,a=null,c=async()=>(a===null&&(a=e.workTree?new Set(await et(e,e.workTree,"")):new Set),a),f=new Set;for(let h of r)for(let p of h.keys())f.add(p);let l=new Set;for(let h of n.entries)f.has(h.path)||l.add(h.path);for(let h of i)f.has(h)||l.add(h);let d=Array.from(f).sort().concat(Array.from(l).sort()),u=(h,p)=>r[h]?.get(p),m=[];for(let h of d){let p=null,g=null,w=null,y=null,x=null;if(r.length===1){let O=u(0,h);w=O?.hash??null,x=O?.mode??null}else if(r.length===2){let O=u(0,h),H=u(1,h);g=O?.hash??null,y=O?.mode??null,w=H?.hash??null,x=H?.mode??null}else if(r.length>=3){let O=u(0,h),H=u(1,h),G=u(2,h);p=O?.hash??null,g=H?.hash??null,y=H?.mode??null,w=G?.hash??null,x=G?.mode??null}let k=o.get(h)?.hash??null,E=s.has(h)?1:0,R=i.has(h),P,C=async()=>P!==void 0?P:R?(P=!(await c()).has(h),P):(P=!1,!1),v,D=async()=>{if(v!==void 0)return v;if(!R||!e.workTree)return v=null,null;let O=T(e.workTree,h);try{v=await vn(e.fs,O)}catch{v=null}return v};m.push({path:h,baseHash:p,headHash:g,remoteHash:w,indexHash:k,indexStage:E,existsOnDisk:R,isIgnoredOnDisk:C,getWorktreeHash:D,headMode:y,remoteMode:x})}return m}function qs(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 zs(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 Cu(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 Pu(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=Cu(s,i);for(let c of s.requirements){if(n.allowStagedChanges&&c==="INDEX_MUST_MATCH_HEAD")continue;let f=await Ou(c,i,a);if(f){r.push({path:o,error:f});break}}if(n.stopAtFirstError&&r.length>0)break}return r}async function Ou(e,t,n,r){switch(e){case"INDEX_MUST_NOT_EXIST":return t.indexHash!==null?"WOULD_OVERWRITE":yi(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 yi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_OVERWRITTEN":null;case"NO_UNTRACKED_REMOVED":return yi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_REMOVED":null}}function Iu(e,t,n,r){let o=[],s=[],i=new Set(e.keys()),a=new Map;for(let c of n.entries)i.has(c.path)||o.push(c),c.stage===0&&a.set(c.path,c);for(let[c,f]of e){let l=t.get(c);if(l)switch(f.action){case"KEEP":{let d=a.get(c);d&&(o.push(d),r.reset&&r.updateWorktree&&s.push({path:c,type:"checkout",hash:d.hash,mode:d.mode}));break}case"TAKE":{let d=f.takeFrom==="head"?l.headHash:l.remoteHash,u=f.takeFrom==="head"?l.headMode:l.remoteMode,m=u?Number.parseInt(u,8):33188;o.push({path:c,mode:m,hash:d,stage:0,stat:Ie()}),r.updateWorktree&&s.push({path:c,type:"checkout",hash:d,mode:m});break}case"DELETE":{r.updateWorktree&&l.existsOnDisk&&s.push({path:c,type:"delete"});break}case"SKIP":break}}return o.sort((c,f)=>Oe(c.path,f.path)||c.stage-f.stage),{newEntries:o,worktreeOps:s}}function Ks(e,t){let n=t.actionHint??t.operationName,r=[];for(let{error:s,msg:i,fix:a}of Su){let c=e.filter(f=>f.error===s).map(f=>f.path).sort();if(c.length>0){let f=c.map(l=>` ${l}`).join(`
39
+ `;await e.fs.writeFile(r,o)}async function Ke(e,t,n){let r=Ls(e,t);await Yr(e.fs,r);let o=`${yc(n)}
40
+ `;if(await e.fs.exists(r)){let s=await e.fs.readFile(r);await e.fs.writeFile(r,s+o)}else await e.fs.writeFile(r,o)}async function Xr(e,t){let n=Ls(e,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function re(e,t,n,r,o,s,i=!1){let a=await Jt(e,t),c={oldHash:r??te,newHash:o,...a,message:s};await Ke(e,n,c),i&&n!=="HEAD"&&await Ke(e,"HEAD",c)}var Fe=Ee(()=>{"use strict";dt();Pn();le();Sn();dt()});function Qd(e){let t=[],n=e.length;for(;n>0;){let s=e.slice(0,n).match(/^(.+?)~(\d*)$/);if(s&&s[1]!==void 0&&s[2]!==void 0){let c=s[2]===""?1:parseInt(s[2],10);t.unshift({type:"tilde",n:c}),n=s[1].length;continue}let i=e.slice(0,n).match(/^(.+?)\^{([^}]*)}$/);if(i&&i[1]!==void 0&&i[2]!==void 0){t.unshift({type:"peel",target:i[2]}),n=i[1].length;continue}let a=e.slice(0,n).match(/^(.+?)\^(\d*)$/);if(a&&a[1]!==void 0&&a[2]!==void 0){let c=a[2]===""?1:parseInt(a[2],10);t.unshift({type:"caret",n:c}),n=a[1].length;continue}break}let r=e.slice(0,n),o=r.match(/^(.+?)@\{(\d+)\}$/);return o&&o[1]!==void 0&&o[2]!==void 0?{base:o[1],reflogIndex:parseInt(o[2],10),suffixes:t}:{base:r,suffixes:t}}async function eu(e,t){let n=await uc(e,t);if(n.length===0)return null;if(n.length>1)throw new mi(t);return n[0]}async function tu(e,t){if(t==="HEAD"||t==="@")return F(e,"HEAD");if(Ec.includes(t))return F(e,t);if(/^[0-9a-f]{40}$/.test(t))return await Kt(e,t)?t:null;if(/^[0-9a-f]{4,39}$/.test(t)){let s=await eu(e,t);if(s)return s}if(t.startsWith("refs/")){let s=await F(e,t);if(s)return s}let n=await F(e,`refs/heads/${t}`);if(n)return n;let r=await F(e,`refs/tags/${t}`);if(r)return r;let o=await F(e,`refs/remotes/${t}`);return o||null}function nu(e){if(e==="HEAD"||e==="@")return"HEAD";for(let t of Ec)if(e===t)return t;return e.startsWith("refs/")?e:`refs/heads/${e}`}async function ru(e,t,n){let r=nu(t),o=await Je(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 su(e,t,n){if(n===""||n==="commit")try{return await _e(e,t)}catch{return null}if(n==="tree"){let o;try{o=await _e(e,t)}catch{return null}return(await j(e,o)).tree}return(await we(e,t)).type!==n?null:t}async function Be(e,t){let{base:n,reflogIndex:r,suffixes:o}=Qd(t),s;if(r!==void 0?s=await ru(e,n,r):s=await tu(e,n),!s)return null;o.some(a=>a.type==="tilde"||a.type==="caret")&&(s=await _e(e,s));for(let a of o)if(a.type==="peel"){if(!s)return null;s=await su(e,s,a.target)}else if(a.type==="tilde")for(let c=0;c<a.n;c++){if(!s)return null;let f=await j(e,s);if(f.parents.length===0||(s=f.parents[0]??null,!s))return null}else{if(a.n===0)continue;if(!s)return null;let c=await j(e,s);if(a.n>c.parents.length||(s=c.parents[a.n-1]??null,!s))return null}return s}function _s(e){let t=e.indexOf(":");return t<0?null:{rev:e.slice(0,t)||"HEAD",path:e.slice(t+1)}}var Ec,mi,hn=Ee(()=>{"use strict";ie();Fe();ue();Ec=["HEAD","FETCH_HEAD","ORIG_HEAD","MERGE_HEAD","CHERRY_PICK_HEAD","REBASE_HEAD"];mi=class extends Error{constructor(n){super(`short object ID ${n} is ambiguous`);this.prefix=n}}});function lt(e,t){return e.lstat?e.lstat(t):e.stat(t)}function pn(e){return typeof e=="string"?e==="120000":e===40960}async function Zr(e,t){if((await lt(e,t)).isSymbolicLink&&e.readlink){let r=await e.readlink(t);return ou.encode(r)}return e.readFileBuffer(t)}async function vn(e,t){let n=await Zr(e,t);return ut("blob",n)}var ou,Zn=Ee(()=>{"use strict";ie();ou=new TextEncoder});function Hn(e){let t=[],n=0;for(;n<e.byteLength;){let r=e.indexOf(32,n);if(r===-1)break;let o=kc.decode(e.subarray(n,r)),s=e.indexOf(0,r+1);if(s===-1)break;let i=kc.decode(e.subarray(r+1,s)),a=e.subarray(s+1,s+21),c=Cn(a),f=o.padStart(6,"0");t.push({mode:f,name:i,hash:c}),n=s+21}return{type:"tree",entries:t}}function Rc(e){let t=[];for(let s of e.entries){let i=s.mode.replace(/^0+/,""),a=iu.encode(`${i} ${s.name}\0`),c=$t(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 iu,kc,Ns=Ee(()=>{"use strict";dt();iu=new TextEncoder,kc=new TextDecoder});async function Ge(e,t){return xc(e,t,"")}async function xc(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:au(i.mode),name:a,hash:i.hash});else{let f=a.slice(0,c),l=o.get(f);l||(l=[],o.set(f,l)),l.push(i)}}for(let[i,a]of o){let c=n?`${n}/${i}`:i,f=await xc(e,a,c);r.push({mode:Vr.DIRECTORY,name:i,hash:f})}r.sort((i,a)=>{let c=i.mode===Vr.DIRECTORY?`${i.name}/`:i.name,f=a.mode===Vr.DIRECTORY?`${a.name}/`:a.name;return c<f?-1:c>f?1:0});let s=Rc({type:"tree",entries:r});return Se(e,"tree",s)}async function Ve(e,t,n=""){let r=await we(e,t);if(r.type!=="tree")throw new Error(`Expected tree object, got ${r.type}`);let o=Hn(r.content),s=[];for(let i of o.entries){let a=n?`${n}/${i.name}`:i.name;if(i.mode===Vr.DIRECTORY){let c=await Ve(e,i.hash,a);s.push(...c)}else s.push({path:a,mode:i.mode,hash:i.hash})}return s}async function ce(e,t){if(!t)return new Map;let n=await Ve(e,t);return new Map(n.map(r=>[r.path,r]))}async function We(e,t,n){let r=await ce(e,t),o=await ce(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)=>Oe(i.path,a.path))}function au(e){return e.toString(8).padStart(6,"0")}var ve=Ee(()=>{"use strict";se();ie();Ns();di()});function Pc(e){return/^[a-zA-Z0-9]$/.test(e)}function cu(e){return/^[a-zA-Z]$/.test(e)}function fu(e){return e>="0"&&e<="9"}function hi(e){return e>="A"&&e<="Z"}function pi(e){return e>="a"&&e<="z"}function Cc(e){return/^\s$/.test(e)}function lu(e){return e===" "||e===" "}function wi(e){let t=e.charCodeAt(0);return t>=32&&t<=126}function du(e){return wi(e)&&!Cc(e)}function uu(e){return wi(e)&&!Pc(e)&&e!==" "}function mu(e){let t=e.charCodeAt(0);return t<32||t===127}function hu(e){return/^[0-9a-fA-F]$/.test(e)}function Jr(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e===t}function gi(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(!Jr(n[r],e[t],s))return 1;r++,t++;break}case"?":{if(i&&c==="/")return 1;r++,t++;break}case"*":{let f;if(t++,t<e.length&&e[t]==="*"){let l=t;for(;t<e.length&&e[t]==="*";)t++;if(!i)f=!0;else if((l-1<1||e[l-2]==="/")&&(t>=e.length||e[t]==="/"||e[t]==="\\"&&t+1<e.length&&e[t+1]==="/")){if(t<e.length&&e[t]==="/"&&gi(e,t+1,n,r,o)===0)return 0;f=!0}else f=!1}else f=!i;if(t>=e.length)return!f&&n.indexOf("/",r)!==-1?-2:0;if(!f&&e[t]==="/"){let l=n.indexOf("/",r);if(l===-1)return-1;r=l+1,t++;break}for(;!(r>=n.length);){if(!pu(e[t])){let d=s?e[t].toLowerCase():e[t];for(;r<n.length&&(f||n[r]!=="/")&&(s?n[r].toLowerCase():n[r])!==d;)r++;if(r>=n.length||!f&&n[r]==="/")return r<n.length&&!f&&n[r]==="/"?-2:f?-1:-2}let l=gi(e,t,n,r,o);if(l!==1){if(!f||l!==-2)return l}else if(!f&&n[r]==="/")return-2;r++}return-1}case"[":{if(i&&c==="/")return 1;if(t++,t>=e.length)return-1;let f=!1;(e[t]==="!"||e[t]==="^")&&(f=!0,t++);let l=!1,d="",u=!0;for(;t<e.length&&(u||e[t]!=="]");){u=!1;let m=e[t];if(m==="\\"){if(t++,t>=e.length)return-1;m=e[t],Jr(c,m,s)&&(l=!0)}else if(m==="-"&&d&&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=d,p=m;if(c>=h&&c<=p&&(l=!0),s){if(pi(c)){let g=c.toUpperCase();g>=h&&g<=p&&(l=!0)}else if(hi(c)){let g=c.toLowerCase();g>=h&&g<=p&&(l=!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="[",Jr(c,m,s)&&(l=!0);else{let g=e.slice(h,h+p);gu(g,c,s)&&(l=!0),m=""}}else Jr(c,m,s)&&(l=!0);d=m,t++}if(t>=e.length)return-1;if(t++,l===f)return 1;r++;break}default:{if(!Jr(c,a,s))return 1;r++,t++;break}}}return r>=n.length?0:1}function pu(e){return e==="*"||e==="?"||e==="["||e==="\\"}function gu(e,t,n){switch(e){case"alnum":return Pc(t);case"alpha":return cu(t);case"blank":return lu(t);case"cntrl":return mu(t);case"digit":return fu(t);case"graph":return du(t);case"lower":return pi(t)||n&&hi(t);case"print":return wi(t);case"punct":return uu(t);case"space":return Cc(t);case"upper":return hi(t)||n&&pi(t);case"xdigit":return hu(t);default:return!1}}function Jn(e,t,n=0){return gi(e,0,t,0,n)===0?0:1}var Fs=Ee(()=>{"use strict"});function Sc(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 wu(e){return Sc(e)===e.length}function bu(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|=Us,o=o.slice(1)),o.length===0)return null;let s=o.length;o[s-1]==="/"&&(s--,o=o.slice(0,s),r|=$c);let i=!1;for(let c=0;c<s;c++)if(o[c]==="/"){i=!0;break}i||(r|=Oc);let a=Math.min(Sc(o),s);return o[0]==="*"&&wu(o.slice(1))&&(r|=Ic),{pattern:o,patternLen:s,nowildcardLen:a,flags:r,base:t}}function Qr(e,t,n){let r=[];for(let o of e.split(`
41
+ `)){let s=bu(o,t);s&&r.push(s)}return{patterns:r,src:n}}function yu(e,t){let{pattern:n,patternLen:r,nowildcardLen:o,flags:s}=t;if(o===r)return e===n;if(s&Ic){let i=n.slice(1);return e.length>=i.length&&e.endsWith(i)}return Jn(n,e,2)===0}function Eu(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 Jn(r,a,2)===0}function bi(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&$c&&!t)){if(s.flags&Oc){if(s.base&&!e.startsWith(`${s.base}/`))continue;if(yu(r,s))return s;continue}if(Eu(e,s))return s}}return null}function nn(e,t,n){for(let r=e.dirPatterns.length-1;r>=0;r--){let o=e.dirPatterns[r],s=bi(t,n,o);if(s)return s.flags&Us?"not-ignored":"ignored"}if(e.excludeFile){let r=bi(t,n,e.excludeFile);if(r)return r.flags&Us?"not-ignored":"ignored"}if(e.globalExclude){let r=bi(t,n,e.globalExclude);if(r)return r.flags&Us?"not-ignored":"ignored"}return"undecided"}async function yr(e){let t={dirPatterns:[],excludeFile:null,globalExclude:null},n=T(e.gitDir,"info","exclude");try{let r=await e.fs.readFile(n);t.excludeFile=Qr(r,"",n)}catch{}try{let r=await ke(e,"core.excludesFile");if(r)try{let o=await e.fs.readFile(r);t.globalExclude=Qr(o,"",r)}catch{}}catch{}return t}function Qn(e,t,n,r){let s=Qr(t,n===""?"":n,r);return{...e,dirPatterns:[...e.dirPatterns,s]}}var Oc,Ic,$c,Us,Ws=Ee(()=>{"use strict";Ne();le();Fs();Oc=1,Ic=4,$c=8,Us=16});async function Tt(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 lt(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 vn(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 et(e,e.workTree,"");for(let s of o)r.has(s)||n.push({path:s,status:"untracked"});return n.sort((s,i)=>Oe(s.path,i.path))}async function ct(e,t){if(!e.workTree)throw new Error("Cannot checkout in a bare repository");let n=await we(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&&pn(t.mode)&&e.fs.symlink){await lt(e.fs,r).then(()=>!0).catch(()=>!1)&&await e.fs.rm(r,{force:!0});let i=Ru.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 Tc(e,t){let n=await Ve(e,t);for(let r of n)await ct(e,r)}async function rn(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 lt(e.fs,r);if(o.isSymbolicLink&&e.fs.readlink){let f=await e.fs.readlink(r),l=ku.encode(f),d=await Se(e,"blob",l),u={path:n,mode:40960,hash:d,stage:0,stat:{...Ie(),size:l.byteLength}};return{index:Et(t,u),hash:d}}let s=await e.fs.readFileBuffer(r),i=await Se(e,"blob",s),a=o.mode!=null?xu(o.mode):33188,c={path:n,mode:a,hash:i,stage:0,stat:{...Ie(),size:s.byteLength}};return{index:Et(t,c),hash:i}}async function et(e,t,n,r){let o=r?.skipIgnore??!1,s=null;if(!o){s=r?._ignore??await yr(e);let c=T(t,".gitignore");try{let f=await e.fs.readFile(c);s=Qn(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),l=n?`${n}/${c}`:c,d=await lt(e.fs,f);if(d.isSymbolicLink){if(s&&nn(s,l,!1)==="ignored")continue;i.push(l)}else if(d.isDirectory){if(s&&nn(s,l,!0)==="ignored")continue;let u=await et(e,f,l,{skipIgnore:o,_ignore:s??void 0});i.push(...u)}else if(d.isFile){if(s&&nn(s,l,!1)==="ignored")continue;i.push(l)}}return i}function xu(e){return e>511?e:e&73?33261:33188}async function er(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 er(e,Zt(t),n))}var ku,Ru,tt=Ee(()=>{"use strict";se();Ws();Ce();ie();le();Zn();ve();ku=new TextEncoder,Ru=new TextDecoder});function yi(e){return e.existsOnDisk&&e.indexHash===null}async function Pu(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 i=e.workTree?new Set(await et(e,e.workTree,"",{skipIgnore:!0})):new Set,a=null,c=async()=>(a===null&&(a=e.workTree?new Set(await et(e,e.workTree,"")):new Set),a),f=new Set;for(let h of r)for(let p of h.keys())f.add(p);let l=new Set;for(let h of n.entries)f.has(h.path)||l.add(h.path);for(let h of i)f.has(h)||l.add(h);let d=Array.from(f).sort().concat(Array.from(l).sort()),u=(h,p)=>r[h]?.get(p),m=[];for(let h of d){let p=null,g=null,w=null,y=null,x=null;if(r.length===1){let O=u(0,h);w=O?.hash??null,x=O?.mode??null}else if(r.length===2){let O=u(0,h),H=u(1,h);g=O?.hash??null,y=O?.mode??null,w=H?.hash??null,x=H?.mode??null}else if(r.length>=3){let O=u(0,h),H=u(1,h),G=u(2,h);p=O?.hash??null,g=H?.hash??null,y=H?.mode??null,w=G?.hash??null,x=G?.mode??null}let k=o.get(h)?.hash??null,E=s.has(h)?1:0,R=i.has(h),C,P=async()=>C!==void 0?C:R?(C=!(await c()).has(h),C):(C=!1,!1),v,D=async()=>{if(v!==void 0)return v;if(!R||!e.workTree)return v=null,null;let O=T(e.workTree,h);try{v=await vn(e.fs,O)}catch{v=null}return v};m.push({path:h,baseHash:p,headHash:g,remoteHash:w,indexHash:k,indexStage:E,existsOnDisk:R,isIgnoredOnDisk:P,getWorktreeHash:D,headMode:y,remoteMode:x})}return m}function qs(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 zs(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 Cu(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 Ou(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=Cu(s,i);for(let c of s.requirements){if(n.allowStagedChanges&&c==="INDEX_MUST_MATCH_HEAD")continue;let f=await Iu(c,i,a);if(f){r.push({path:o,error:f});break}}if(n.stopAtFirstError&&r.length>0)break}return r}async function Iu(e,t,n,r){switch(e){case"INDEX_MUST_NOT_EXIST":return t.indexHash!==null?"WOULD_OVERWRITE":yi(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 yi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_OVERWRITTEN":null;case"NO_UNTRACKED_REMOVED":return yi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_REMOVED":null}}function $u(e,t,n,r){let o=[],s=[],i=new Set(e.keys()),a=new Map;for(let c of n.entries)i.has(c.path)||o.push(c),c.stage===0&&a.set(c.path,c);for(let[c,f]of e){let l=t.get(c);if(l)switch(f.action){case"KEEP":{let d=a.get(c);d&&(o.push(d),r.reset&&r.updateWorktree&&s.push({path:c,type:"checkout",hash:d.hash,mode:d.mode}));break}case"TAKE":{let d=f.takeFrom==="head"?l.headHash:l.remoteHash,u=f.takeFrom==="head"?l.headMode:l.remoteMode,m=u?Number.parseInt(u,8):33188;o.push({path:c,mode:m,hash:d,stage:0,stat:Ie()}),r.updateWorktree&&s.push({path:c,type:"checkout",hash:d,mode:m});break}case"DELETE":{r.updateWorktree&&l.existsOnDisk&&s.push({path:c,type:"delete"});break}case"SKIP":break}}return o.sort((c,f)=>Oe(c.path,f.path)||c.stage-f.stage),{newEntries:o,worktreeOps:s}}function Ks(e,t){let n=t.actionHint??t.operationName,r=[];for(let{error:s,msg:i,fix:a}of Su){let c=e.filter(f=>f.error===s).map(f=>f.path).sort();if(c.length>0){let f=c.map(l=>` ${l}`).join(`
42
42
  `);r.push(`${i(t.operationName)}
43
43
  ${f}
44
44
  ${a(n)}
45
45
  `)}}return{stdout:"",stderr:r.length>0?`${r.join("")}Aborting
46
- `:"",exitCode:t.errorExitCode}}async function tr(e,t,n,r){let o=await xu(e,t,n),s=new Map(o.map(l=>[l.path,l])),i=new Map;for(let l of o){let d=r.mergeFn(l,r);i.set(l.path,d)}let a=await Pu(i,s,r);if(a.length>0)return{success:!1,newEntries:[],worktreeOps:[],errors:a,errorOutput:Ks(a,r)};let{newEntries:c,worktreeOps:f}=Iu(i,s,n,r);return{success:!0,newEntries:c,worktreeOps:f,errors:[],errorOutput:null}}async function De(e,t){if(!e.workTree)return;let n=e.workTree,r=[];for(let o of t){let s=T(n,o.path);o.type==="delete"?await lt(e.fs,s).then(()=>!0).catch(()=>!1)&&(await e.fs.rm(s),r.push(s)):o.type==="checkout"&&o.hash&&await ct(e,{path:o.path,hash:o.hash,mode:o.mode})}for(let o of r)await er(e.fs,Zt(o),n)}async function An(e,t,n,r){return tr(e,[{label:"current",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:zs,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"checkout",actionHint:"switch branches"})}async function Hc(e,t,n,r){return tr(e,[{label:"HEAD",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:zs,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"merge"})}async function gn(e,t,n){return tr(e,[{label:"target",treeHash:t}],n,{mergeFn:qs,updateWorktree:!0,reset:!0,errorExitCode:128,operationName:"reset"})}async function Vs(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:je(n)},i=await tr(e,[{label:"ORIG_HEAD",treeHash:t}],s,{mergeFn:qs,updateWorktree:!0,reset:!1,errorExitCode:128,operationName:"merge",stopAtFirstError:!0,strippedConflictPaths:o});if(!i.success){let a=r??"HEAD",c=[];for(let f of i.errors)f.error==="NOT_UPTODATE_FILE"?c.push(`error: Entry '${f.path}' not uptodate. Cannot merge.
46
+ `:"",exitCode:t.errorExitCode}}async function tr(e,t,n,r){let o=await Pu(e,t,n),s=new Map(o.map(l=>[l.path,l])),i=new Map;for(let l of o){let d=r.mergeFn(l,r);i.set(l.path,d)}let a=await Ou(i,s,r);if(a.length>0)return{success:!1,newEntries:[],worktreeOps:[],errors:a,errorOutput:Ks(a,r)};let{newEntries:c,worktreeOps:f}=$u(i,s,n,r);return{success:!0,newEntries:c,worktreeOps:f,errors:[],errorOutput:null}}async function Me(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 lt(e.fs,s).then(()=>!0).catch(()=>!1)&&(await e.fs.rm(s),r.push(s)):o.type==="checkout"&&o.hash&&await ct(e,{path:o.path,hash:o.hash,mode:o.mode})}for(let o of r)await er(e.fs,Zt(o),n)}async function An(e,t,n,r){return tr(e,[{label:"current",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:zs,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"checkout",actionHint:"switch branches"})}async function vc(e,t,n,r){return tr(e,[{label:"HEAD",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:zs,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"merge"})}async function gn(e,t,n){return tr(e,[{label:"target",treeHash:t}],n,{mergeFn:qs,updateWorktree:!0,reset:!0,errorExitCode:128,operationName:"reset"})}async function Vs(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:De(n)},i=await tr(e,[{label:"ORIG_HEAD",treeHash:t}],s,{mergeFn:qs,updateWorktree:!0,reset:!1,errorExitCode:128,operationName:"merge",stopAtFirstError:!0,strippedConflictPaths:o});if(!i.success){let a=r??"HEAD",c=[];for(let f of i.errors)f.error==="NOT_UPTODATE_FILE"?c.push(`error: Entry '${f.path}' not uptodate. Cannot merge.
47
47
  `):f.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"&&c.push(`error: Untracked working tree file '${f.path}' would be overwritten by merge.
48
48
  `);return c.length>0&&(i.errorOutput=L(c.join("")+`fatal: Could not reset index file to revision '${a}'.
49
- `,128)),i}if(e.workTree&&o.size>0){let a=await ce(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 Su,sn=Ee(()=>{"use strict";se();Pe();le();Zn();ve();tt();Su=[{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}
50
- `,exitCode:128}}function L(e,t=1){return{stdout:"",stderr:e,exitCode:t}}async function W(e,t,n){let r=await Xn(e,t);return r?n?{...r,...n}:r:$u}function M(e){return typeof e=="object"&&e!==null&&"exitCode"in e}function Xe(e){return e.workTree?null:Tu}async function Ze(e){let t=await Z(e);return t||I("your current branch does not have any commits yet")}function wn(e,t,n=`fatal: Exiting because of an unresolved conflict.
51
- `){return $t(e)?L(`error: ${t} is not possible because you have unmerged files.
49
+ `,128)),i}if(e.workTree&&o.size>0){let a=await ce(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 Su,sn=Ee(()=>{"use strict";se();Ce();le();Zn();ve();tt();Su=[{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}
50
+ `,exitCode:128}}function L(e,t=1){return{stdout:"",stderr:e,exitCode:t}}async function W(e,t,n){let r=await Xn(e,t);return r?n?{...r,...n}:r:Tu}function M(e){return typeof e=="object"&&e!==null&&"exitCode"in e}function Xe(e){return e.workTree?null:vu}async function Ze(e){let t=await Z(e);return t||I("your current branch does not have any commits yet")}function wn(e,t,n=`fatal: Exiting because of an unresolved conflict.
51
+ `){return St(e)?L(`error: ${t} is not possible because you have unmerged files.
52
52
  hint: Fix them up in the work tree, and then use 'git add/rm <file>'
53
53
  hint: as appropriate to mark resolution and make a commit.
54
- `+n,128):null}async function vt(e,t,n){let r=await Be(e,t);return r||I(n??`bad revision '${t}'`)}async function He(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 j(e,o);return{hash:o,commit:s}}catch{return I(n??`bad revision '${t}'`)}}async function Qe(e,t){try{return await Gr(e,t)}catch(n){return I(n.message)}}async function on(e,t){try{return await Ss(e,t)}catch(n){return I(n.message)}}function yr(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 Oe(e,t){return e<t?-1:e>t?1:0}function ut(e,t){return e.workTree?ft(e.workTree,t):""}function Y(e){return e.slice(0,7)}function fe(e){let t=e.indexOf(`
54
+ `+n,128):null}async function vt(e,t,n){let r=await Be(e,t);return r||I(n??`bad revision '${t}'`)}async function He(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 j(e,o);return{hash:o,commit:s}}catch{return I(n??`bad revision '${t}'`)}}async function Qe(e,t){try{return await Gr(e,t)}catch(n){return I(n.message)}}async function on(e,t){try{return await $s(e,t)}catch(n){return I(n.message)}}function Er(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 Oe(e,t){return e<t?-1:e>t?1:0}function mt(e,t){return e.workTree?ft(e.workTree,t):""}function Y(e){return e.slice(0,7)}function fe(e){let t=e.indexOf(`
55
55
  `);return t===-1?e:e.slice(0,t)}function Vt(e){return I(`ambiguous argument '${e}': unknown revision or path not in the working tree.
56
56
  Use '--' to separate paths from revisions, like this:
57
- 'git <command> [<revision>...] -- [<file>...]'`)}function Ht(e,t,n,r=!1){return`[${e}${r?" (root-commit)":""} ${Y(t)}] ${fe(n)}`}async function Dn(e,t,n){if(!await F(e,n.operationRef))return n.noOpError;let o=await F(e,"ORIG_HEAD")??await Z(e);if(!o)return I(`There is no ${n.operationName} to abort (ORIG_HEAD missing).`);let s=await Z(e),i=await j(e,o),a=await K(e),c=await Vs(e,i.tree,a,n.origHeadAsTargetRev?o:void 0);if(!c.success)return c.errorOutput;if(await Sn(e,o),await ae(e,{version:2,entries:c.newEntries}),await De(e,c.worktreeOps),s&&((await Q(e))?.type==="symbolic"||s!==o)){let d=n.origHeadAsTargetRev?o:"HEAD";await re(e,t,"HEAD",s,o,`reset: moving to ${d}`)}return await n.clearState(e),{stdout:"",stderr:"",exitCode:0}}async function mt(e,t,n,r,o,s){let i=tn({type:"commit",tree:t,parents:n,author:r,committer:o,message:s}),a=await $e(e,"commit",i);return await Sn(e,a),a}function an(e){return e.split(`
57
+ 'git <command> [<revision>...] -- [<file>...]'`)}function Ht(e,t,n,r=!1){return`[${e}${r?" (root-commit)":""} ${Y(t)}] ${fe(n)}`}async function Dn(e,t,n){if(!await F(e,n.operationRef))return n.noOpError;let o=await F(e,"ORIG_HEAD")??await Z(e);if(!o)return I(`There is no ${n.operationName} to abort (ORIG_HEAD missing).`);let s=await Z(e),i=await j(e,o),a=await K(e),c=await Vs(e,i.tree,a,n.origHeadAsTargetRev?o:void 0);if(!c.success)return c.errorOutput;if(await $n(e,o),await ae(e,{version:2,entries:c.newEntries}),await Me(e,c.worktreeOps),s&&((await Q(e))?.type==="symbolic"||s!==o)){let d=n.origHeadAsTargetRev?o:"HEAD";await re(e,t,"HEAD",s,o,`reset: moving to ${d}`)}return await n.clearState(e),{stdout:"",stderr:"",exitCode:0}}async function ht(e,t,n,r,o,s){let i=tn({type:"commit",tree:t,parents:n,author:r,committer:o,message:s}),a=await Se(e,"commit",i);return await $n(e,a),a}function an(e){return e.split(`
58
58
  `).filter(t=>!t.startsWith("#")).map(t=>t.trimEnd()).join(`
59
59
  `).replace(/\n+$/,`
60
60
  `)}function At(e){return e.endsWith(`
61
61
  `)?e:`${e}
62
- `}var $u,Tu,se=Ee(()=>{"use strict";Cn();Pe();ie();un();le();Fe();ue();$n();hn();sn();$u=I("not a git repository (or any of the parent directories): .git"),Tu=I("this operation must be run in a work tree")});var Gc={};ad(Gc,{CommitHeap:()=>Mn,countAheadBehind:()=>xi,findOrphanedCommits:()=>Ci,walkCommits:()=>Dt});async function*Dt(e,t,n){if(n?.topoOrder){yield*ju(e,t,n);return}let r=await jc(e,n?.exclude),o=new Set(r),s=new Mn,i=n?.shallowBoundary,a=Array.isArray(t)?t:[t];for(let c of a)o.has(c)||s.push(await Er(e,c));for(;s.size>0;){let c=s.pop();if(o.has(c.hash)||(o.add(c.hash),yield c,i?.has(c.hash)))continue;let f=n?.firstParent?c.commit.parents.slice(0,1):c.commit.parents;for(let l of f)if(!o.has(l))try{s.push(await Er(e,l))}catch{}}}async function*ju(e,t,n){let r=await jc(e,n?.exclude),o=new Set(r),s=new Mn,i=n?.shallowBoundary,a=Array.isArray(t)?t:[t];for(let m of a)o.has(m)||s.push(await Er(e,m));let c=[],f=new Map;for(;s.size>0;){let m=s.pop();if(o.has(m.hash)||(o.add(m.hash),f.set(m.hash,c.length),c.push(m),i?.has(m.hash)))continue;let h=n?.firstParent?m.commit.parents.slice(0,1):m.commit.parents;for(let p of h)if(!o.has(p))try{s.push(await Er(e,p))}catch{}}let l=c.length;if(l===0)return;let d=new Int32Array(l);for(let m of c){let h=n?.firstParent?m.commit.parents.slice(0,1):m.commit.parents;for(let p of h){let g=f.get(p);g!==void 0&&(d[g]=(d[g]??0)+1)}}let u=[];for(let m=l-1;m>=0;m--)d[m]===0&&u.push(m);for(;u.length>0;){let m=u.pop();yield c[m];let h=n?.firstParent?c[m].commit.parents.slice(0,1):c[m].commit.parents;for(let p of h){let g=f.get(p);if(g!==void 0){let w=(d[g]??0)-1;d[g]=w,w===0&&u.push(g)}}}}async function xi(e,t,n){if(t===n)return{ahead:0,behind:0};let r=new Set;for await(let a of Dt(e,t))r.add(a.hash);let o=new Set;for await(let a of Dt(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 Ci(e,t,n){let r=n?.maxCount??25,o=await ge(e,"refs"),s=[];for(let l of o)try{s.push(await _e(e,l.hash))}catch{}n?.targetHash&&s.push(n.targetHash);let i=new Set;if(s.length>0)for await(let l of Dt(e,s))i.add(l.hash);if(i.has(t))return[];let a=[],c=new Set,f=new Mn;for(f.push(await Er(e,t));f.size>0&&a.length<r;){let l=f.pop();if(!c.has(l.hash)&&(c.add(l.hash),!i.has(l.hash))){a.push({hash:l.hash,subject:fe(l.commit.message)});for(let d of l.commit.parents)c.has(d)||f.push(await Er(e,d))}}return a}async function jc(e,t){if(!t||t.length===0)return new Set;let n=new Set;for await(let r of Dt(e,t))n.add(r.hash);return n}async function Er(e,t){return{hash:t,commit:await j(e,t)}}var Mn,rr=Ee(()=>{"use strict";se();ie();ue();Mn=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 Lo=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 ya(e){return new Lo({_kind:"arg",type:e,required:!0})}function Ea(){return ya("string")}function ka(){return ya("number")}var xs=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 _o=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 Ra(e){return new _o({_kind:"option",type:e})}function xa(){return Ra("string")}function Ca(){return Ra("number")}var J={string:xa,number:Ca};function S(){return new xs}var q={string:Ea,number:ka};function cd(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 No(e){return e.map(cd).join(`
63
- `)}function fd(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 Cs(e,t,n){let r=n??Math.min(Math.max(1,Math.floor(e.length/2)),3);return t.map(s=>({candidate:s,distance:fd(e,s)})).filter(s=>s.distance<=r&&s.distance>0).sort((s,i)=>s.distance-i.distance).slice(0,2).map(s=>s.candidate)}function Pa(e,t,n,r){let o=[],s=new Map,i=new Map;for(let[u,m]of Object.entries(e)){let h=Dr(u);s.set(h,{key:u,def:m}),m.short&&i.set(m.short,{key:u,def:m})}let a={},c=[],f=[],l=0;for(;l<n.length;){let u=n[l];if(u==="--"){for(l++;l<n.length;)f.push(n[l]),l++;break}if(u.startsWith("--")){let 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"){a[b.key]=b.def.counted?0:!1,l++;continue}}let x=[...s.keys()];o.push({type:"unknown_option",name:`--${h}`,suggestions:Cs(h,x).map(b=>`--${b}`)}),l++;continue}if(g.def._kind==="flag"){g.def.counted?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0,l++;continue}let w=p??n[++l];if(w===void 0){o.push({type:"missing_value",name:g.key}),l++;continue}let y=Ar(w,g.def.type,g.key,o);y!==void 0&&(a[g.key]=y),l++;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 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?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0;continue}let w=m.slice(h+1),y=w.length>0?w:n[++l];if(y===void 0){o.push({type:"missing_value",name:g.key});break}let x=Ar(y,g.def.type,g.key,o);x!==void 0&&(a[g.key]=x);break}l++;continue}c.push(u),l++}let d=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(d);p.length>0?a[h]=p.map(g=>Ar(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]=[],d=c.length}else{let p=c[d];p!==void 0?(a[h]=Ar(p,m.type,h,o),d++):m.required?o.push({type:"missing_required",name:h,kind:"arg"}):m.default!==void 0&&(a[h]=m.default)}}if(d<c.length)for(let u=d;u<c.length;u++)o.push({type:"unexpected_positional",value:c[u],maxPositionals:t.length});for(let[u,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=Ar(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 Ar(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 Dr(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function Fo(e){let t=[],n=e.children.size>0;e.description?t.push(`${e.fullPath} - ${e.description}`):t.push(e.fullPath),t.push("");let r=[e.fullPath];n&&r.push("<command>"),Object.keys(e.options).length>0&&r.push("[options]");let o=e.args;for(let i of o){let a=i.name??"arg",c=i.variadic?`${a}...`:a;r.push(i.required?`<${c}>`:`[${c}]`)}if(t.push("Usage:"),t.push(` ${r.join(" ")}`),t.push(""),n){t.push("Commands:");let i=[];for(let[c,f]of e.children)i.push([c,f.description||""]);let a=Math.max(...i.map(([c])=>c.length));for(let[c,f]of i)if(f){let l=" ".repeat(a-c.length+2);t.push(` ${c}${l}${f}`)}else t.push(` ${c}`);t.push("")}if(o.length>0){t.push("Arguments:");let i=[];for(let c of o){let f=c.name??"arg",l=c.variadic?`${f}...`:f,d=[];c.description&&d.push(c.description),c.required&&d.push("(required)"),c.default!==void 0&&d.push(`(default: ${JSON.stringify(c.default)})`),i.push([l,d.join(" ")])}let a=Math.max(...i.map(([c])=>c.length));for(let[c,f]of i)if(f){let l=" ".repeat(a-c.length+2);t.push(` ${c}${l}${f}`)}else t.push(` ${c}`);t.push("")}let s=ld(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(`
64
- `)}function ld(e,t){let n=Object.entries(e);if(n.length===0)return[];let r=[];for(let[i,a]of n){let c=Dr(i);if(a._kind==="flag"){let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c}`);let d=[];f.description&&d.push(f.description),f.counted&&d.push("(counted)"),f.default!==void 0&&d.push(`(default: ${f.default})`),r.push([l.join(" "),d.join(" ")])}else{let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c} <${f.type}>`);let d=[];f.description&&d.push(f.description),f.required&&d.push("(required)"),f.default!==void 0&&d.push(`(default: ${JSON.stringify(f.default)})`),f.env&&d.push(`[env: ${f.env}]`),r.push([l.join(" "),d.join(" ")])}}let o=Math.max(...r.map(([i])=>i.length)),s=[];t&&s.push(t);for(let[i,a]of r)if(a){let c=" ".repeat(o-i.length+2);s.push(` ${i}${c}${a}`)}else s.push(` ${i}`);return s}function Oa(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r._def;return t}function Ia(e){return e?e.map(t=>t._def):[]}var Ps=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,Oa(n.options),Ia(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=Dr(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(dd(t))return{stdout:Fo(this),stderr:"",exitCode:0};if(this.handler){let s=this.transformArgs?this.transformArgs([...t]):[...t],i=Pa(this.allOptions,this.args,s,r);if(!i.ok)return{stdout:"",stderr:No(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=Cs(o,[...this.children.keys()]);return{stdout:"",stderr:No([{type:"unknown_command",path:`${this.fullPath} ${o}`,suggestions:s}]),exitCode:1}}return{stdout:Fo(this),stderr:"",exitCode:0}}};function Uo(e,t){return new Ps(e,t.description,Oa(t.options),Ia(t.args),t.examples??[],t.handler,t.transformArgs)}function dd(e){return e.some(t=>t==="--help"||t==="-h")}se();Ws();Pe();le();Fs();var Xs=1,Ei=2,Ys=4,ki=8,es=16,Dc=new Set(["*","?","[","\\"]),Hu={glob:Xs,literal:Ei,icase:Ys,top:ki,exclude:es};function nr(e){for(let t=0;t<e.length;t++)if(Dc.has(e[t]))return!0;return!1}function Au(e){for(let t=0;t<e.length;t++)if(Dc.has(e[t]))return t;return e.length}function Ac(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 Ue(e,t){let n=0,r=e;if(r.startsWith(":(")){let c=r.indexOf(")");if(c!==-1){let f=r.slice(2,c);r=r.slice(c+1);for(let l of f.split(",")){let d=Hu[l.trim()];d!==void 0&&(n|=d)}}}else r.startsWith(":/")?(n|=ki,r=r.slice(2)):(r.startsWith(":!")||r.startsWith(":^"))&&(n|=es,r=r.slice(2));n&Ei&&n&Xs&&(n&=~Xs);let o;n&ki||t===""?o=Ac(r):o=Ac(`${t}/${r}`);let s=!!(n&Ei),i=s?!1:nr(o),a=s?o.length:Au(o);return{original:e,pattern:o,magic:n,hasWildcard:i,nowildcardLen:a}}function Zs(e,t){let{pattern:n,hasWildcard:r,magic:o,nowildcardLen:s}=e;if(n==="")return!0;if(!r){let a=!!(o&Ys),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&Ys){if(a.toLowerCase()!==c.toLowerCase())return!1}else if(a!==c)return!1}let i=0;return o&Xs&&(i|=2),o&Ys&&(i|=1),Jn(n,t,i)===0}function ye(e,t){let n=!1,r=!1;for(let o of e)o.magic&es?Zs(o,t)&&(r=!0):Zs(o,t)&&(n=!0);return n&&!r}tt();function Mc(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:S().alias("A").describe("Add changes from all tracked and untracked files"),force:S().alias("f").describe("Allow adding otherwise ignored files"),update:S().alias("u").describe("Update tracked files"),"dry-run":S().alias("n").describe("Don't actually add the file(s)")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Xe(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 K(s);return p=await Ri(s,p,a,"",c),n["dry-run"]||await ae(s,p),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}if(f.length===0)return{stdout:"",stderr:`Nothing specified, nothing added.
65
- Maybe you wanted to say 'git add .'?`,exitCode:0};let l=await K(s),d=[],u=[];for(let p of f)nr(p)?u.push(p):d.push(p);let m=[];for(let p of d){let g=It(r.cwd,p),w=ft(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 b=l.entries.some(E=>E.path===w||E.path.startsWith(`${w}/`)),k=await Mu(s,a,w,b);if(k){b&&((await r.fs.stat(g)).isDirectory?l=await Ri(s,l,g,w,c):l=(await rn(s,l,w)).index),m.push(k);continue}}if((await r.fs.stat(g)).isDirectory)l=await Ri(s,l,g,w,c);else{let b=l.entries.find(E=>E.path===w&&E.stage===0)?.hash,k=await rn(s,l,w);l=k.index,c.actions&&k.hash!==b&&c.actions.push(`add '${w}'
62
+ `}var Tu,vu,se=Ee(()=>{"use strict";Pn();Ce();ie();un();le();Fe();ue();Sn();hn();sn();Tu=I("not a git repository (or any of the parent directories): .git"),vu=I("this operation must be run in a work tree")});var jc={};id(jc,{CommitHeap:()=>Mn,countAheadBehind:()=>xi,findOrphanedCommits:()=>Pi,walkCommits:()=>Dt});async function*Dt(e,t,n){if(n?.topoOrder){yield*Gu(e,t,n);return}let r=await Mc(e,n?.exclude),o=new Set(r),s=new Mn,i=n?.shallowBoundary,a=Array.isArray(t)?t:[t];for(let c of a)o.has(c)||s.push(await kr(e,c));for(;s.size>0;){let c=s.pop();if(o.has(c.hash)||(o.add(c.hash),yield c,i?.has(c.hash)))continue;let f=n?.firstParent?c.commit.parents.slice(0,1):c.commit.parents;for(let l of f)if(!o.has(l))try{s.push(await kr(e,l))}catch{}}}async function*Gu(e,t,n){let r=await Mc(e,n?.exclude),o=new Set(r),s=new Mn,i=n?.shallowBoundary,a=Array.isArray(t)?t:[t];for(let m of a)o.has(m)||s.push(await kr(e,m));let c=[],f=new Map;for(;s.size>0;){let m=s.pop();if(o.has(m.hash)||(o.add(m.hash),f.set(m.hash,c.length),c.push(m),i?.has(m.hash)))continue;let h=n?.firstParent?m.commit.parents.slice(0,1):m.commit.parents;for(let p of h)if(!o.has(p))try{s.push(await kr(e,p))}catch{}}let l=c.length;if(l===0)return;let d=new Int32Array(l);for(let m of c){let h=n?.firstParent?m.commit.parents.slice(0,1):m.commit.parents;for(let p of h){let g=f.get(p);g!==void 0&&(d[g]=(d[g]??0)+1)}}let u=[];for(let m=l-1;m>=0;m--)d[m]===0&&u.push(m);for(;u.length>0;){let m=u.pop();yield c[m];let h=n?.firstParent?c[m].commit.parents.slice(0,1):c[m].commit.parents;for(let p of h){let g=f.get(p);if(g!==void 0){let w=(d[g]??0)-1;d[g]=w,w===0&&u.push(g)}}}}async function xi(e,t,n){if(t===n)return{ahead:0,behind:0};let r=new Set;for await(let a of Dt(e,t))r.add(a.hash);let o=new Set;for await(let a of Dt(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 Pi(e,t,n){let r=n?.maxCount??25,o=await ge(e,"refs"),s=[];for(let l of o)try{s.push(await _e(e,l.hash))}catch{}n?.targetHash&&s.push(n.targetHash);let i=new Set;if(s.length>0)for await(let l of Dt(e,s))i.add(l.hash);if(i.has(t))return[];let a=[],c=new Set,f=new Mn;for(f.push(await kr(e,t));f.size>0&&a.length<r;){let l=f.pop();if(!c.has(l.hash)&&(c.add(l.hash),!i.has(l.hash))){a.push({hash:l.hash,subject:fe(l.commit.message)});for(let d of l.commit.parents)c.has(d)||f.push(await kr(e,d))}}return a}async function Mc(e,t){if(!t||t.length===0)return new Set;let n=new Set;for await(let r of Dt(e,t))n.add(r.hash);return n}async function kr(e,t){return{hash:t,commit:await j(e,t)}}var Mn,rr=Ee(()=>{"use strict";se();ie();ue();Mn=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 Lo=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 ya(e){return new Lo({_kind:"arg",type:e,required:!0})}function Ea(){return ya("string")}function ka(){return ya("number")}var xs=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 _o=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 Ra(e){return new _o({_kind:"option",type:e})}function xa(){return Ra("string")}function Pa(){return Ra("number")}var J={string:xa,number:Pa};function $(){return new xs}var q={string:Ea,number:ka};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 No(e){return e.map(ad).join(`
63
+ `)}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 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 Ps(e,t,n){let r=n??Math.min(Math.max(1,Math.floor(e.length/2)),3);return t.map(s=>({candidate:s,distance:cd(e,s)})).filter(s=>s.distance<=r&&s.distance>0).sort((s,i)=>s.distance-i.distance).slice(0,2).map(s=>s.candidate)}function Ca(e,t,n,r){let o=[],s=new Map,i=new Map;for(let[u,m]of Object.entries(e)){let h=Dr(u);s.set(h,{key:u,def:m}),m.short&&i.set(m.short,{key:u,def:m})}let a={},c=[],f=[],l=0;for(;l<n.length;){let u=n[l];if(u==="--"){for(l++;l<n.length;)f.push(n[l]),l++;break}if(u.startsWith("--")){let 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"){a[b.key]=b.def.counted?0:!1,l++;continue}}let x=[...s.keys()];o.push({type:"unknown_option",name:`--${h}`,suggestions:Ps(h,x).map(b=>`--${b}`)}),l++;continue}if(g.def._kind==="flag"){g.def.counted?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0,l++;continue}let w=p??n[++l];if(w===void 0){o.push({type:"missing_value",name:g.key}),l++;continue}let y=Ar(w,g.def.type,g.key,o);y!==void 0&&(a[g.key]=y),l++;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 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?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0;continue}let w=m.slice(h+1),y=w.length>0?w:n[++l];if(y===void 0){o.push({type:"missing_value",name:g.key});break}let x=Ar(y,g.def.type,g.key,o);x!==void 0&&(a[g.key]=x);break}l++;continue}c.push(u),l++}let d=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(d);p.length>0?a[h]=p.map(g=>Ar(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]=[],d=c.length}else{let p=c[d];p!==void 0?(a[h]=Ar(p,m.type,h,o),d++):m.required?o.push({type:"missing_required",name:h,kind:"arg"}):m.default!==void 0&&(a[h]=m.default)}}if(d<c.length)for(let u=d;u<c.length;u++)o.push({type:"unexpected_positional",value:c[u],maxPositionals:t.length});for(let[u,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=Ar(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 Ar(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 Dr(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function Fo(e){let t=[],n=e.children.size>0;e.description?t.push(`${e.fullPath} - ${e.description}`):t.push(e.fullPath),t.push("");let r=[e.fullPath];n&&r.push("<command>"),Object.keys(e.options).length>0&&r.push("[options]");let o=e.args;for(let i of o){let a=i.name??"arg",c=i.variadic?`${a}...`:a;r.push(i.required?`<${c}>`:`[${c}]`)}if(t.push("Usage:"),t.push(` ${r.join(" ")}`),t.push(""),n){t.push("Commands:");let i=[];for(let[c,f]of e.children)i.push([c,f.description||""]);let a=Math.max(...i.map(([c])=>c.length));for(let[c,f]of i)if(f){let l=" ".repeat(a-c.length+2);t.push(` ${c}${l}${f}`)}else t.push(` ${c}`);t.push("")}if(o.length>0){t.push("Arguments:");let i=[];for(let c of o){let f=c.name??"arg",l=c.variadic?`${f}...`:f,d=[];c.description&&d.push(c.description),c.required&&d.push("(required)"),c.default!==void 0&&d.push(`(default: ${JSON.stringify(c.default)})`),i.push([l,d.join(" ")])}let a=Math.max(...i.map(([c])=>c.length));for(let[c,f]of i)if(f){let l=" ".repeat(a-c.length+2);t.push(` ${c}${l}${f}`)}else t.push(` ${c}`);t.push("")}let s=fd(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(`
64
+ `)}function fd(e,t){let n=Object.entries(e);if(n.length===0)return[];let r=[];for(let[i,a]of n){let c=Dr(i);if(a._kind==="flag"){let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c}`);let d=[];f.description&&d.push(f.description),f.counted&&d.push("(counted)"),f.default!==void 0&&d.push(`(default: ${f.default})`),r.push([l.join(" "),d.join(" ")])}else{let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c} <${f.type}>`);let d=[];f.description&&d.push(f.description),f.required&&d.push("(required)"),f.default!==void 0&&d.push(`(default: ${JSON.stringify(f.default)})`),f.env&&d.push(`[env: ${f.env}]`),r.push([l.join(" "),d.join(" ")])}}let o=Math.max(...r.map(([i])=>i.length)),s=[];t&&s.push(t);for(let[i,a]of r)if(a){let c=" ".repeat(o-i.length+2);s.push(` ${i}${c}${a}`)}else s.push(` ${i}`);return s}function Oa(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r._def;return t}function Ia(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,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,Oa(n.options),Ia(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=Dr(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(ld(t))return{stdout:Fo(this),stderr:"",exitCode:0};if(this.handler){let s=this.transformArgs?this.transformArgs([...t]):[...t],i=Ca(this.allOptions,this.args,s,r);if(!i.ok)return{stdout:"",stderr:No(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=Ps(o,[...this.children.keys()]);return{stdout:"",stderr:No([{type:"unknown_command",path:`${this.fullPath} ${o}`,suggestions:s}]),exitCode:1}}return{stdout:Fo(this),stderr:"",exitCode:0}}};function Uo(e,t){return new Cs(e,t.description,Oa(t.options),Ia(t.args),t.examples??[],t.handler,t.transformArgs)}function ld(e){return e.some(t=>t==="--help"||t==="-h")}se();Ws();Ce();le();Fs();var Xs=1,Ei=2,Ys=4,ki=8,es=16,Ac=new Set(["*","?","[","\\"]),Au={glob:Xs,literal:Ei,icase:Ys,top:ki,exclude:es};function nr(e){for(let t=0;t<e.length;t++)if(Ac.has(e[t]))return!0;return!1}function Du(e){for(let t=0;t<e.length;t++)if(Ac.has(e[t]))return t;return e.length}function Hc(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 Ue(e,t){let n=0,r=e;if(r.startsWith(":(")){let c=r.indexOf(")");if(c!==-1){let f=r.slice(2,c);r=r.slice(c+1);for(let l of f.split(",")){let d=Au[l.trim()];d!==void 0&&(n|=d)}}}else r.startsWith(":/")?(n|=ki,r=r.slice(2)):(r.startsWith(":!")||r.startsWith(":^"))&&(n|=es,r=r.slice(2));n&Ei&&n&Xs&&(n&=~Xs);let o;n&ki||t===""?o=Hc(r):o=Hc(`${t}/${r}`);let s=!!(n&Ei),i=s?!1:nr(o),a=s?o.length:Du(o);return{original:e,pattern:o,magic:n,hasWildcard:i,nowildcardLen:a}}function Zs(e,t){let{pattern:n,hasWildcard:r,magic:o,nowildcardLen:s}=e;if(n==="")return!0;if(!r){let a=!!(o&Ys),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&Ys){if(a.toLowerCase()!==c.toLowerCase())return!1}else if(a!==c)return!1}let i=0;return o&Xs&&(i|=2),o&Ys&&(i|=1),Jn(n,t,i)===0}function ye(e,t){let n=!1,r=!1;for(let o of e)o.magic&es?Zs(o,t)&&(r=!0):Zs(o,t)&&(n=!0);return n&&!r}tt();function Dc(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:$().alias("A").describe("Add changes from all tracked and untracked files"),force:$().alias("f").describe("Allow adding otherwise ignored files"),update:$().alias("u").describe("Update tracked files"),"dry-run":$().alias("n").describe("Don't actually add the file(s)")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Xe(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 K(s);return p=await Ri(s,p,a,"",c),n["dry-run"]||await ae(s,p),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}if(f.length===0)return{stdout:"",stderr:`Nothing specified, nothing added.
65
+ Maybe you wanted to say 'git add .'?`,exitCode:0};let l=await K(s),d=[],u=[];for(let p of f)nr(p)?u.push(p):d.push(p);let m=[];for(let p of d){let g=It(r.cwd,p),w=ft(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 b=l.entries.some(E=>E.path===w||E.path.startsWith(`${w}/`)),k=await ju(s,a,w,b);if(k){b&&((await r.fs.stat(g)).isDirectory?l=await Ri(s,l,g,w,c):l=(await rn(s,l,w)).index),m.push(k);continue}}if((await r.fs.stat(g)).isDirectory)l=await Ri(s,l,g,w,c);else{let b=l.entries.find(E=>E.path===w&&E.stage===0)?.hash,k=await rn(s,l,w);l=k.index,c.actions&&k.hash!==b&&c.actions.push(`add '${w}'
66
66
  `)}}else if(l.entries.some(b=>b.path===w||b.path.startsWith(`${w}/`))){if(c.actions)for(let b of l.entries)(b.path===w||b.path.startsWith(`${w}/`))&&c.actions.push(`remove '${b.path}'
67
67
  `);l={...l,entries:l.entries.filter(b=>b.path!==w&&!b.path.startsWith(`${w}/`))}}else return I(`pathspec '${p}' did not match any files`)}if(m.length>0)return n["dry-run"]||await ae(s,l),L(`The following paths are ignored by one of your .gitignore files:
68
68
  ${m.join(`
69
69
  `)}
70
70
  hint: Use -f if you really want to add them.
71
71
  hint: Disable this message with "git config set advice.addIgnoredFile false"
72
- `);if(u.length>0){let p=await Du(s,r.cwd,l,u,c);if(p.error)return p.error;l=p.index}return n["dry-run"]||await ae(s,l),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}})}async function Du(e,t,n,r,o){let s=e.workTree,i=ut(e,t),a=r.map(d=>Ue(d,i)),c=new Array(a.length).fill(!1),f=d=>{for(let u=0;u<a.length;u++)a[u].hasWildcard&&Zs(a[u],d)&&(c[u]=!0)},l=[];for(let d of n.entries){if(d.stage>0||!ye(a,d.path))continue;f(d.path);let u=T(s,d.path);if(await e.fs.exists(u)){let m=await rn(e,n,d.path);n=m.index,o?.actions&&m.hash!==d.hash&&o.actions.push(`add '${d.path}'
72
+ `);if(u.length>0){let p=await Mu(s,r.cwd,l,u,c);if(p.error)return p.error;l=p.index}return n["dry-run"]||await ae(s,l),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}})}async function Mu(e,t,n,r,o){let s=e.workTree,i=mt(e,t),a=r.map(d=>Ue(d,i)),c=new Array(a.length).fill(!1),f=d=>{for(let u=0;u<a.length;u++)a[u].hasWildcard&&Zs(a[u],d)&&(c[u]=!0)},l=[];for(let d of n.entries){if(d.stage>0||!ye(a,d.path))continue;f(d.path);let u=T(s,d.path);if(await e.fs.exists(u)){let m=await rn(e,n,d.path);n=m.index,o?.actions&&m.hash!==d.hash&&o.actions.push(`add '${d.path}'
73
73
  `)}else o?.actions&&o.actions.push(`remove '${d.path}'
74
74
  `),l.push(d.path)}for(let d of l)n=at(n,d);if(!o?.updateOnly){let d=new Set(n.entries.map(m=>m.path)),u=await et(e,s,"",{skipIgnore:o?.skipIgnore});for(let m of u){if(d.has(m)||!ye(a,m))continue;f(m),o?.actions&&o.actions.push(`add '${m}'
75
75
  `),n=(await rn(e,n,m)).index}}for(let d=0;d<a.length;d++){let u=a[d];if(!c[d]&&!(u.magic&es))return{index:n,error:I(`pathspec '${u.original}' did not match any files`)}}return{index:n}}async function Ri(e,t,n,r,o){let s=r===""?"":`${r}/`,i=e.workTree,a=[],c=new Set;for(let f of t.entries){if(!(s===""||f.path.startsWith(s))||c.has(f.path))continue;c.add(f.path);let l=T(i,f.path);if(await e.fs.exists(l)){let d=f.stage>0,u=await rn(e,t,f.path);t=u.index,o?.actions&&(d||u.hash!==f.hash)&&o.actions.push(`add '${f.path}'
76
76
  `)}else o?.actions&&o.actions.push(`remove '${f.path}'
77
77
  `),a.push(f.path)}for(let f of a)t=at(t,f);if(!o?.updateOnly){let f=new Set(t.entries.map(d=>d.path)),l=await et(e,n,r===""?"":r,{skipIgnore:o?.skipIgnore});for(let d of l){if(f.has(d))continue;o?.actions&&o.actions.push(`add '${d}'
78
- `),t=(await rn(e,t,d)).index}}return t}async function Mu(e,t,n,r){let o=await br(e);try{let i=await e.fs.readFile(T(t,".gitignore"));o=Qn(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(nn(o,a,!0)==="ignored")return a;try{let f=await e.fs.readFile(T(c,".gitignore"));o=Qn(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(nn(o,n,i)==="ignored")return n}return null}se();se();rr();ie();le();ue();async function Ce(e,t){let n=T(e.gitDir,t);return await e.fs.exists(n)?e.fs.readFile(n):null}async function Te(e,t,n){await e.fs.writeFile(T(e.gitDir,t),n)}async function pe(e,t){let n=T(e.gitDir,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function ts(e){await de(e,"MERGE_HEAD"),await de(e,"ORIG_HEAD"),await pe(e,"MERGE_MSG"),await pe(e,"MERGE_MODE"),await pe(e,"SQUASH_MSG")}async function Mt(e){await de(e,"CHERRY_PICK_HEAD"),await de(e,"ORIG_HEAD"),await pe(e,"MERGE_MSG")}async function jt(e){await de(e,"REVERT_HEAD"),await de(e,"ORIG_HEAD"),await pe(e,"MERGE_MSG")}async function sr(e){for(let t of["CHERRY_PICK_HEAD","REVERT_HEAD","MERGE_HEAD","ORIG_HEAD"])await de(e,t);await pe(e,"MERGE_MSG"),await pe(e,"MERGE_MODE"),await pe(e,"SQUASH_MSG")}var Pi="DETACH_POINT";async function Lc(e,t){await e.fs.writeFile(T(e.gitDir,Pi),t)}async function ht(e){let t=T(e.gitDir,Pi);await e.fs.exists(t)&&await e.fs.rm(t)}async function ns(e){let t=T(e.gitDir,Pi);return await e.fs.exists(t)?(await e.fs.readFile(t))?.trim()??null:null}le();ue();async function Rt(e){let t=await Ce(e,"BISECT_START");return t!=null&&t.trim().length>0}async function rs(e){let t=await Ce(e,"BISECT_TERMS");if(!t)return{termBad:"bad",termGood:"good"};let n=t.trim().split(`
79
- `);return{termBad:n[0]??"bad",termGood:n[1]??"good"}}async function Js(e){let t=(await Ce(e,"BISECT_START"))?.trim()??"",{termBad:n,termGood:r}=await rs(e),o=await F(e,`refs/bisect/${n}`),s=[],i=[],a=await ge(e,"refs/bisect");for(let l of a)l.name.startsWith(`refs/bisect/${r}-`)?s.push(l.hash):l.name.startsWith("refs/bisect/skip-")&&i.push(l.hash);let c=await Ce(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 xt(e,t){let n=await Ce(e,"BISECT_LOG")??"";await Te(e,"BISECT_LOG",n+t+`
80
- `)}async function Qs(e){let t=await ge(e,"refs/bisect");for(let r of t)await de(e,r.name);await pe(e,"BISECT_EXPECTED_REV"),await pe(e,"BISECT_ANCESTORS_OK"),await pe(e,"BISECT_LOG"),await pe(e,"BISECT_TERMS"),await pe(e,"BISECT_NAMES"),await pe(e,"BISECT_FIRST_PARENT"),await pe(e,"BISECT_HEAD"),await pe(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 _c(e,t,n,r,o){let s=[],i=new Map;for await(let g of Dt(e,t,{exclude:n})){let w=o?g.commit.parents.slice(0,1):g.commit.parents;s.push({hash:g.hash,subject:fe(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,y=[g.hash],x=0;for(;x<y.length;){let b=y[x++];if(w.has(b)||!c.has(b))continue;w.add(b);let k=i.get(b);if(k)for(let E of k)!w.has(E)&&c.has(E)&&y.push(E)}f.set(g.hash,w.size)}let l=s[0].hash,d=a;for(let g of s){if(r.has(g.hash))continue;let w=f.get(g.hash)??0,y=Math.abs(2*w-a);y<d&&(d=y,l=g.hash)}let u=!1;if(d===a){u=!0;for(let g of s){let w=f.get(g.hash)??0,y=Math.abs(2*w-a);y<d&&(d=y,l=g.hash)}}let m=s.find(g=>g.hash===l),h=Gu(a),p=Lu(a);return{hash:m.hash,subject:m.subject,remaining:h,steps:p,found:!1,onlySkippedLeft:u}}function Gu(e){return Math.floor((e-1)/2)}function Lu(e){return e<=1?0:Math.ceil(Math.log2(e))}function Nc(e){let t=e.badHash!=null,n=e.goodHashes.length;return!t&&n===0?`status: waiting for both ${e.termGood} and ${e.termBad} commits
78
+ `),t=(await rn(e,t,d)).index}}return t}async function ju(e,t,n,r){let o=await yr(e);try{let i=await e.fs.readFile(T(t,".gitignore"));o=Qn(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(nn(o,a,!0)==="ignored")return a;try{let f=await e.fs.readFile(T(c,".gitignore"));o=Qn(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(nn(o,n,i)==="ignored")return n}return null}se();se();rr();ie();le();ue();async function Pe(e,t){let n=T(e.gitDir,t);return await e.fs.exists(n)?e.fs.readFile(n):null}async function Te(e,t,n){await e.fs.writeFile(T(e.gitDir,t),n)}async function pe(e,t){let n=T(e.gitDir,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function ts(e){await de(e,"MERGE_HEAD"),await de(e,"ORIG_HEAD"),await pe(e,"MERGE_MSG"),await pe(e,"MERGE_MODE"),await pe(e,"SQUASH_MSG")}async function Mt(e){await de(e,"CHERRY_PICK_HEAD"),await de(e,"ORIG_HEAD"),await pe(e,"MERGE_MSG")}async function jt(e){await de(e,"REVERT_HEAD"),await de(e,"ORIG_HEAD"),await pe(e,"MERGE_MSG")}async function sr(e){for(let t of["CHERRY_PICK_HEAD","REVERT_HEAD","MERGE_HEAD","ORIG_HEAD"])await de(e,t);await pe(e,"MERGE_MSG"),await pe(e,"MERGE_MODE"),await pe(e,"SQUASH_MSG")}var Ci="DETACH_POINT";async function Gc(e,t){await e.fs.writeFile(T(e.gitDir,Ci),t)}async function pt(e){let t=T(e.gitDir,Ci);await e.fs.exists(t)&&await e.fs.rm(t)}async function ns(e){let t=T(e.gitDir,Ci);return await e.fs.exists(t)?(await e.fs.readFile(t))?.trim()??null:null}le();ue();async function Rt(e){let t=await Pe(e,"BISECT_START");return t!=null&&t.trim().length>0}async function rs(e){let t=await Pe(e,"BISECT_TERMS");if(!t)return{termBad:"bad",termGood:"good"};let n=t.trim().split(`
79
+ `);return{termBad:n[0]??"bad",termGood:n[1]??"good"}}async function Js(e){let t=(await Pe(e,"BISECT_START"))?.trim()??"",{termBad:n,termGood:r}=await rs(e),o=await F(e,`refs/bisect/${n}`),s=[],i=[],a=await ge(e,"refs/bisect");for(let l of a)l.name.startsWith(`refs/bisect/${r}-`)?s.push(l.hash):l.name.startsWith("refs/bisect/skip-")&&i.push(l.hash);let c=await Pe(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 xt(e,t){let n=await Pe(e,"BISECT_LOG")??"";await Te(e,"BISECT_LOG",n+t+`
80
+ `)}async function Qs(e){let t=await ge(e,"refs/bisect");for(let r of t)await de(e,r.name);await pe(e,"BISECT_EXPECTED_REV"),await pe(e,"BISECT_ANCESTORS_OK"),await pe(e,"BISECT_LOG"),await pe(e,"BISECT_TERMS"),await pe(e,"BISECT_NAMES"),await pe(e,"BISECT_FIRST_PARENT"),await pe(e,"BISECT_HEAD"),await pe(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 Lc(e,t,n,r,o){let s=[],i=new Map;for await(let g of Dt(e,t,{exclude:n})){let w=o?g.commit.parents.slice(0,1):g.commit.parents;s.push({hash:g.hash,subject:fe(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,y=[g.hash],x=0;for(;x<y.length;){let b=y[x++];if(w.has(b)||!c.has(b))continue;w.add(b);let k=i.get(b);if(k)for(let E of k)!w.has(E)&&c.has(E)&&y.push(E)}f.set(g.hash,w.size)}let l=s[0].hash,d=a;for(let g of s){if(r.has(g.hash))continue;let w=f.get(g.hash)??0,y=Math.abs(2*w-a);y<d&&(d=y,l=g.hash)}let u=!1;if(d===a){u=!0;for(let g of s){let w=f.get(g.hash)??0,y=Math.abs(2*w-a);y<d&&(d=y,l=g.hash)}}let m=s.find(g=>g.hash===l),h=Lu(a),p=_u(a);return{hash:m.hash,subject:m.subject,remaining:h,steps:p,found:!1,onlySkippedLeft:u}}function Lu(e){return Math.floor((e-1)/2)}function _u(e){return e<=1?0:Math.ceil(Math.log2(e))}function _c(e){let t=e.badHash!=null,n=e.goodHashes.length;return!t&&n===0?`status: waiting for both ${e.termGood} and ${e.termBad} commits
81
81
  `:t?n===0?`status: waiting for ${e.termGood} commit(s), ${e.termBad} commit known
82
82
  `:"":`status: waiting for ${e.termBad} commit, ${n} ${e.termGood} commit(s) known
83
- `}function Fc(e){return`Bisecting: ${e.remaining} revision${e.remaining===1?"":"s"} left to test after this (roughly ${e.steps} step${e.steps===1?"":"s"})
83
+ `}function Nc(e){return`Bisecting: ${e.remaining} revision${e.remaining===1?"":"s"} left to test after this (roughly ${e.steps} step${e.steps===1?"":"s"})
84
84
  [${e.hash}] ${e.subject}
85
- `}async function Uc(e,t){let n=await j(e,t),r=fe(n.message),s=new Date(n.author.timestamp*1e3).toUTCString().replace("GMT","+0000"),i=`${t} is the first bad commit
85
+ `}async function Fc(e,t){let n=await j(e,t),r=fe(n.message),s=new Date(n.author.timestamp*1e3).toUTCString().replace("GMT","+0000"),i=`${t} is the first bad commit
86
86
  `;return i+=`commit ${t}
87
87
  `,i+=`Author: ${n.author.name} <${n.author.email}>
88
88
  `,i+=`Date: ${s}
89
89
  `,i+=`
90
90
  `,i+=` ${r}
91
91
  `,i+=`
92
- `,i}se();rr();Ne();Pe();ie();le();Fe();ue();se();rr();Ne();Pe();ie();le();ie();un();le();function kr(e){return T(e.gitDir,"rebase-merge")}async function Gt(e){return e.fs.exists(kr(e))}async function pt(e){let t=kr(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=Bc(await e.fs.readFile(a)),f=await e.fs.exists(T(t,"done"))?await e.fs.readFile(T(t,"done")):"",l=Bc(f);return{headName:n.trim(),origHead:r.trim(),onto:o.trim(),todo:c,done:l,msgnum:s,end:i}}async function Oi(e,t){let n=kr(e);await e.fs.mkdir(n,{recursive:!0}),await e.fs.writeFile(T(n,"head-name"),`${t.headName}
92
+ `,i}se();rr();Ne();Ce();ie();le();Fe();ue();se();rr();Ne();Ce();ie();le();ie();un();le();function Rr(e){return T(e.gitDir,"rebase-merge")}async function Gt(e){return e.fs.exists(Rr(e))}async function gt(e){let t=Rr(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=Uc(await e.fs.readFile(a)),f=await e.fs.exists(T(t,"done"))?await e.fs.readFile(T(t,"done")):"",l=Uc(f);return{headName:n.trim(),origHead:r.trim(),onto:o.trim(),todo:c,done:l,msgnum:s,end:i}}async function Oi(e,t){let n=Rr(e);await e.fs.mkdir(n,{recursive:!0}),await e.fs.writeFile(T(n,"head-name"),`${t.headName}
93
93
  `),await e.fs.writeFile(T(n,"orig-head"),`${t.origHead}
94
94
  `),await e.fs.writeFile(T(n,"onto"),`${t.onto}
95
95
  `),await e.fs.writeFile(T(n,"msgnum"),`${String(t.msgnum)}
96
96
  `),await e.fs.writeFile(T(n,"end"),`${String(t.end)}
97
- `),await e.fs.writeFile(T(n,"git-rebase-todo"),to(t.todo)),await e.fs.writeFile(T(n,"done"),to(t.done)),await e.fs.writeFile(T(n,"interactive"),"")}async function zc(e){let t=kr(e),n=await pt(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)}
98
- `),await e.fs.writeFile(T(t,"git-rebase-todo"),to(n.todo)),await e.fs.writeFile(T(t,"done"),to(n.done))}async function Ii(e){let t=kr(e);await e.fs.exists(t)&&await e.fs.rm(t,{recursive:!0})}async function no(e,t,n){let r=kr(e),o=`@${n.timestamp} ${n.timezone}`;await e.fs.writeFile(T(r,"author-script"),`GIT_AUTHOR_NAME='${n.name}'
97
+ `),await e.fs.writeFile(T(n,"git-rebase-todo"),to(t.todo)),await e.fs.writeFile(T(n,"done"),to(t.done)),await e.fs.writeFile(T(n,"interactive"),"")}async function qc(e){let t=Rr(e),n=await gt(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)}
98
+ `),await e.fs.writeFile(T(t,"git-rebase-todo"),to(n.todo)),await e.fs.writeFile(T(t,"done"),to(n.done))}async function Ii(e){let t=Rr(e);await e.fs.exists(t)&&await e.fs.rm(t,{recursive:!0})}async function no(e,t,n){let r=Rr(e),o=`@${n.timestamp} ${n.timezone}`;await e.fs.writeFile(T(r,"author-script"),`GIT_AUTHOR_NAME='${n.name}'
99
99
  GIT_AUTHOR_EMAIL='${n.email}'
100
100
  GIT_AUTHOR_DATE='${o}'
101
101
  `),await e.fs.writeFile(T(r,"stopped-sha"),`${t}
102
- `)}function Bc(e){let t=[];for(let n of e.split(`
102
+ `)}function Uc(e){let t=[];for(let n of e.split(`
103
103
  `)){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 to(e){return e.length===0?"":`${e.map(t=>`pick ${t.hash} # ${t.subject}`).join(`
104
104
  `)}
105
- `}async function Kc(e,t,n){let r=new Map,[o,s]=await Promise.all([Wc(e,t,r),Wc(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 qc(e,r,n,i),left:await qc(e,r,t,a)}}async function Wc(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 eo(e,i,n);for(let c of a.commit.parents)r.has(c)||o.push(c)}return r}async function qc(e,t,n,r){if(r.size===0)return[];let o=new Map;for(let f of r)o.set(f,0);for(let f of r){let l=await eo(e,f,t);for(let d of l.commit.parents)r.has(d)&&o.set(d,(o.get(d)??0)+1)}let s=[];for(let f of r)o.get(f)===0&&s.push(await eo(e,f,t));s.sort((f,l)=>f.commit.committer.timestamp-l.commit.committer.timestamp);let i=s.map(f=>f.hash),a=[],c=new Set;for(;i.length>0;){let f=i.pop();if(!f||c.has(f))continue;c.add(f);let l=await eo(e,f,t);l.commit.parents.length<=1&&a.push(l);for(let d of l.commit.parents)if(r.has(d)&&!c.has(d)){let u=(o.get(d)??0)-1;o.set(d,u),u<=0&&i.push(d)}}return a.reverse(),a}async function eo(e,t,n){let r=n.get(t);if(r)return r;let o=await we(e,t);if(o.type!=="commit")throw new Error(`Expected commit object, got ${o.type}`);let s={hash:t,commit:en(o.content)};return n.set(t,s),s}ue();ie();function Rr(e){let t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function _u(e,t){if(e.length===0)return;if(e.length===1)return e.shift();let n=Rr(t),r=0;for(let o=0;o<e.length;o++){let s=e[o];if(s&&Rr(s.path)===n){r=o;break}}return e.splice(r,1)[0]}var Nu=50;async function nt(e,t,n=Nu){let r=new Map,o=[],s=[],i=[];for(let l of t)if(l.status==="deleted"&&l.oldHash){let d=r.get(l.oldHash)??[];d.push(l),r.set(l.oldHash,d),o.push(l)}else l.status==="added"&&l.newHash?s.push(l):i.push(l);let a=[],c=[];for(let l of s){let d=l.newHash;if(!d){c.push(l);continue}let u=r.get(d);if(u&&u.length>0){let m=_u(u,l.path);m&&a.push({oldPath:m.path,newPath:l.path,oldHash:m.oldHash??d,newHash:d,similarity:100,oldMode:m.oldMode,newMode:l.newMode})}else c.push(l)}let f=[...r.values()].flat();if(f.length>0&&c.length>0){let l=await Fu(e,f,c,n);if(l.length>0){let d=new Set(l.map(m=>m.oldPath)),u=new Set(l.map(m=>m.newPath));f=f.filter(m=>!d.has(m.path)),c=c.filter(m=>!u.has(m.path)),a.push(...l)}}if(f.length>0&&c.length>0){let l=await Wu(e,f,c,n);if(l.length>0){let d=new Set(l.map(m=>m.oldPath)),u=new Set(l.map(m=>m.newPath));f=f.filter(m=>!d.has(m.path)),c=c.filter(m=>!u.has(m.path)),a.push(...l)}}return{remaining:[...i,...f,...c],renames:a}}async function Fu(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=Rr(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=Rr(c.path);s.has(f)?s.set(f,-1):s.set(f,a)}let i=[];for(let[a,c]of o){if(c===-1)continue;let f=s.get(a);if(f===void 0||f===-1)continue;let l=t[c],d=n[f];if(!l?.oldHash||!d?.newHash||l.oldHash===d.newHash)continue;let u=await kt(e,l.oldHash),m=await kt(e,d.newHash),h=Bu(u,m);h<r||i.push({oldPath:l.path,newPath:d.path,oldHash:l.oldHash,newHash:d.newHash,similarity:h,oldMode:l.oldMode,newMode:d.newMode})}return i}var Vc=107927;function ro(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))%Vc;t.set(f,(t.get(f)??0)+n),n=0,r=0,o=0}if(n>0){let i=(r+Math.imul(o,97))%Vc;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 Uu(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 Bu(e,t){return e.length===0&&t.length===0?100:e.length===0||t.length===0?0:Yc(e.length,ro(e),t.length,ro(t))}function Yc(e,t,n,r){let o=Math.max(e,n),s=Math.min(e,n);if(s<o-s)return 0;let{srcCopied:i}=Uu(t,r);return Math.floor(i*100/o)}async function Wu(e,t,n,r){let o=[];for(let l of t)if(l.oldHash){let d=await kt(e,l.oldHash);o.push({size:d.length,chunks:ro(d)})}else o.push(null);let s=[];for(let l of n)if(l.newHash){let d=await kt(e,l.newHash);s.push({size:d.length,chunks:ro(d)})}else s.push(null);let i=[];for(let l=0;l<t.length;l++){let d=t[l],u=o[l];if(!(!d||!u))for(let m=0;m<n.length;m++){let h=n[m],p=s[m];if(!h||!p)continue;let g=Yc(u.size,u.chunks,p.size,p.chunks);if(g>=r){let w=Rr(d.path)===Rr(h.path)?1:0;i.push({similarity:g,nameScore:w,delIdx:l,addIdx:m})}}}i.sort((l,d)=>d.similarity-l.similarity||d.nameScore-l.nameScore);let a=new Set,c=new Set,f=[];for(let{similarity:l,delIdx:d,addIdx:u}of i){if(a.has(d)||c.has(u))continue;a.add(d),c.add(u);let m=t[d],h=n[u];!m||!h||f.push({oldPath:m.path,newPath:h.path,oldHash:m.oldHash??"",newHash:h.newHash??"",similarity:l,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 l=Math.max(0,n-o-a),d=Math.max(0,r-o-a),u=e.slice(0,o),m=e.slice(n-a),h=e.slice(o,o+l),p=t.slice(o,o+d);return o+a>0?`${u}{${h} => ${p}}${m}`:`${e} => ${t}`}ve();tt();async function rt(e,t){let n=await Q(e),r=await Z(e),o,s=!1;n&&n.type==="symbolic"?o=Re(n.target):(s=!0,o="HEAD detached");let i=t?.index??await K(e),a=$i(i),c=t?.compareHash!==void 0?t.compareHash:r,f=t?.compareHash!==void 0?!t.compareHash:!r,l=await Si(e,c,i,a),d=await Tt(e,i),u=[],m=[];for(let g of d)g.status==="untracked"?m.push(g.path):u.push({path:g.path,status:g.status});u.sort((g,w)=>Oe(g.path,w.path));let h=new Set(i.entries.map(g=>g.path)),p=Ti(m,h);return qu(e,r,s,o,i,l,u,a,p,{fromCommit:t?.fromCommit,noWarn:t?.noWarn,isInitial:f})}function Xc(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 ${Y(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 ${Y(r.hash)} # ${r.subject}`);e.push(' (use "git rebase --edit-todo" to view and edit)')}else e.push("No commands remaining.")}async function qu(e,t,n,r,o,s,i,a,c,f){let l=[],d=!1,u=await F(e,"CHERRY_PICK_HEAD"),m=await F(e,"REVERT_HEAD"),h=await F(e,"MERGE_HEAD"),p=!u&&!h,w=await Gt(e)?await pt(e):null;if(n&&w){let P=Y(w.onto);l.push(`interactive rebase in progress; onto ${P}`)}else if(n){let P=await ns(e);if(P){let C=t===P?"at":"from";l.push(`HEAD detached ${C} ${Y(P)}`)}else l.push("Not currently on any branch.")}else l.push(`On branch ${r}`);if(!n&&!w){let P=await he(e),C=await bn(e,P,r);if(C){let v=or(C,{abbreviated:f?.fromCommit});for(let D of v.trimEnd().split(`
106
- `))l.push(D);d=!0}}if(d&&(w||u||m||h)&&l.push(""),w&&h)Xc(l,w),l.push(""),a.length>0?(l.push("You have unmerged paths."),l.push(' (fix conflicts and run "git commit")'),l.push(' (use "git merge --abort" to abort the merge)')):(l.push("All conflicts fixed but you are still merging."),l.push(' (use "git commit" to conclude merge)')),d=!0;else if(w){let P=$t(o),C=await e.fs.exists(T(e.gitDir,"MERGE_MSG"));Xc(l,w);let D=w.headName==="detached HEAD"?null:Re(w.headName),O=Y(w.onto),H=D?` branch '${D}' on '${O}'`:"";if(P)l.push(`You are currently rebasing${H}.`),l.push(' (fix conflicts and then run "git rebase --continue")'),l.push(' (use "git rebase --skip" to skip this patch)'),l.push(' (use "git rebase --abort" to check out the original branch)');else if(C)l.push(`You are currently rebasing${H}.`),l.push(' (all conflicts fixed: run "git rebase --continue")');else{let G=H?`You are currently editing a commit while rebasing${H}.`:"You are currently editing a commit during a rebase.";l.push(G),l.push(' (use "git commit --amend" to amend the current commit)'),l.push(' (use "git rebase --continue" once you are satisfied with your changes)')}d=!0}else u?(l.push(`You are currently cherry-picking commit ${Y(u)}.`),a.length>0?l.push(' (fix conflicts and run "git cherry-pick --continue")'):l.push(' (all conflicts fixed: run "git cherry-pick --continue")'),l.push(' (use "git cherry-pick --skip" to skip this patch)'),l.push(' (use "git cherry-pick --abort" to cancel the cherry-pick operation)'),d=!0):m?(l.push(`You are currently reverting commit ${Y(m)}.`),a.length>0?l.push(' (fix conflicts and run "git revert --continue")'):l.push(' (all conflicts fixed: run "git revert --continue")'),l.push(' (use "git revert --skip" to skip this patch)'),l.push(' (use "git revert --abort" to cancel the revert operation)'),d=!0):h&&(a.length>0?(l.push("You have unmerged paths."),l.push(' (fix conflicts and run "git commit")'),l.push(' (use "git merge --abort" to abort the merge)')):(l.push("All conflicts fixed but you are still merging."),l.push(' (use "git commit" to conclude merge)')),d=!0);if(await Rt(e)){let C=(await Ce(e,"BISECT_START"))?.trim()??"";l.push(`You are currently bisecting, started from branch '${C}'.`),l.push(' (use "git bisect reset" to get back to the original branch)'),d=!0}let y=f?.isInitial??!t;y&&(l.push(""),l.push(f?.fromCommit?"Initial commit":"No commits yet"),d=!0);let x=null;p&&(x=t?' (use "git restore --staged <file>..." to unstage)':' (use "git rm --cached <file>..." to unstage)');let k=i.some(P=>P.status==="deleted")?' (use "git add/rm <file>..." to update what will be committed)':' (use "git add <file>..." to update what will be committed)',E=!1;if(s.length>0){d&&l.push(""),l.push("Changes to be committed:"),x&&l.push(x);for(let P of s)l.push(` ${Zc(P.status,P.path,P.displayPath)}`);l.push(""),E=!0}if(a.length>0){!E&&d&&l.push(""),l.push("Unmerged paths:"),p&&(t?l.push(' (use "git restore --staged <file>..." to unstage)'):l.push(' (use "git rm --cached <file>..." to unstage)')),a.some(C=>C.status==="deleted by us"||C.status==="deleted by them"||C.status==="both deleted")?l.push(' (use "git add/rm <file>..." as appropriate to mark resolution)'):l.push(' (use "git add <file>..." to mark resolution)');for(let C of a)l.push(` ${zu(C.status,C.path)}`);l.push(""),E=!0}if(i.length>0){!E&&d&&l.push(""),l.push("Changes not staged for commit:"),l.push(k),l.push(' (use "git restore <file>..." to discard changes in working directory)');for(let P of i)l.push(` ${Zc(P.status,P.path)}`);l.push(""),E=!0}if(c.length>0){!E&&d&&l.push(""),l.push("Untracked files:"),l.push(' (use "git add <file>..." to include in what will be committed)');for(let P of c)l.push(` ${P}`);l.push(""),E=!0}let R=s.length>0||!!h&&a.length===0;return!E&&d&&(f?.noWarn||R)&&l.push(""),!R&&!f?.noWarn&&(!E&&d&&i.length===0&&a.length===0&&c.length===0&&l.push(""),i.length>0||a.length>0?l.push('no changes added to commit (use "git add" and/or "git commit -a")'):c.length>0?l.push('nothing added to commit but untracked files present (use "git add" to track)'):y?l.push('nothing to commit (create/copy files and use "git add" to track)'):l.push("nothing to commit, working tree clean")),`${l.join(`
105
+ `}async function zc(e,t,n){let r=new Map,[o,s]=await Promise.all([Bc(e,t,r),Bc(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 Wc(e,r,n,i),left:await Wc(e,r,t,a)}}async function Bc(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 eo(e,i,n);for(let c of a.commit.parents)r.has(c)||o.push(c)}return r}async function Wc(e,t,n,r){if(r.size===0)return[];let o=new Map;for(let f of r)o.set(f,0);for(let f of r){let l=await eo(e,f,t);for(let d of l.commit.parents)r.has(d)&&o.set(d,(o.get(d)??0)+1)}let s=[];for(let f of r)o.get(f)===0&&s.push(await eo(e,f,t));s.sort((f,l)=>f.commit.committer.timestamp-l.commit.committer.timestamp);let i=s.map(f=>f.hash),a=[],c=new Set;for(;i.length>0;){let f=i.pop();if(!f||c.has(f))continue;c.add(f);let l=await eo(e,f,t);l.commit.parents.length<=1&&a.push(l);for(let d of l.commit.parents)if(r.has(d)&&!c.has(d)){let u=(o.get(d)??0)-1;o.set(d,u),u<=0&&i.push(d)}}return a.reverse(),a}async function eo(e,t,n){let r=n.get(t);if(r)return r;let o=await we(e,t);if(o.type!=="commit")throw new Error(`Expected commit object, got ${o.type}`);let s={hash:t,commit:en(o.content)};return n.set(t,s),s}ue();ie();function xr(e){let t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function Nu(e,t){if(e.length===0)return;if(e.length===1)return e.shift();let n=xr(t),r=0;for(let o=0;o<e.length;o++){let s=e[o];if(s&&xr(s.path)===n){r=o;break}}return e.splice(r,1)[0]}var Fu=50;async function nt(e,t,n=Fu){let r=new Map,o=[],s=[],i=[];for(let l of t)if(l.status==="deleted"&&l.oldHash){let d=r.get(l.oldHash)??[];d.push(l),r.set(l.oldHash,d),o.push(l)}else l.status==="added"&&l.newHash?s.push(l):i.push(l);let a=[],c=[];for(let l of s){let d=l.newHash;if(!d){c.push(l);continue}let u=r.get(d);if(u&&u.length>0){let m=Nu(u,l.path);m&&a.push({oldPath:m.path,newPath:l.path,oldHash:m.oldHash??d,newHash:d,similarity:100,oldMode:m.oldMode,newMode:l.newMode})}else c.push(l)}let f=[...r.values()].flat();if(f.length>0&&c.length>0){let l=await Uu(e,f,c,n);if(l.length>0){let d=new Set(l.map(m=>m.oldPath)),u=new Set(l.map(m=>m.newPath));f=f.filter(m=>!d.has(m.path)),c=c.filter(m=>!u.has(m.path)),a.push(...l)}}if(f.length>0&&c.length>0){let l=await qu(e,f,c,n);if(l.length>0){let d=new Set(l.map(m=>m.oldPath)),u=new Set(l.map(m=>m.newPath));f=f.filter(m=>!d.has(m.path)),c=c.filter(m=>!u.has(m.path)),a.push(...l)}}return{remaining:[...i,...f,...c],renames:a}}async function Uu(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=xr(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=xr(c.path);s.has(f)?s.set(f,-1):s.set(f,a)}let i=[];for(let[a,c]of o){if(c===-1)continue;let f=s.get(a);if(f===void 0||f===-1)continue;let l=t[c],d=n[f];if(!l?.oldHash||!d?.newHash||l.oldHash===d.newHash)continue;let u=await kt(e,l.oldHash),m=await kt(e,d.newHash),h=Wu(u,m);h<r||i.push({oldPath:l.path,newPath:d.path,oldHash:l.oldHash,newHash:d.newHash,similarity:h,oldMode:l.oldMode,newMode:d.newMode})}return i}var Kc=107927;function ro(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))%Kc;t.set(f,(t.get(f)??0)+n),n=0,r=0,o=0}if(n>0){let i=(r+Math.imul(o,97))%Kc;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 Bu(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 Wu(e,t){return e.length===0&&t.length===0?100:e.length===0||t.length===0?0:Vc(e.length,ro(e),t.length,ro(t))}function Vc(e,t,n,r){let o=Math.max(e,n),s=Math.min(e,n);if(s<o-s)return 0;let{srcCopied:i}=Bu(t,r);return Math.floor(i*100/o)}async function qu(e,t,n,r){let o=[];for(let l of t)if(l.oldHash){let d=await kt(e,l.oldHash);o.push({size:d.length,chunks:ro(d)})}else o.push(null);let s=[];for(let l of n)if(l.newHash){let d=await kt(e,l.newHash);s.push({size:d.length,chunks:ro(d)})}else s.push(null);let i=[];for(let l=0;l<t.length;l++){let d=t[l],u=o[l];if(!(!d||!u))for(let m=0;m<n.length;m++){let h=n[m],p=s[m];if(!h||!p)continue;let g=Vc(u.size,u.chunks,p.size,p.chunks);if(g>=r){let w=xr(d.path)===xr(h.path)?1:0;i.push({similarity:g,nameScore:w,delIdx:l,addIdx:m})}}}i.sort((l,d)=>d.similarity-l.similarity||d.nameScore-l.nameScore);let a=new Set,c=new Set,f=[];for(let{similarity:l,delIdx:d,addIdx:u}of i){if(a.has(d)||c.has(u))continue;a.add(d),c.add(u);let m=t[d],h=n[u];!m||!h||f.push({oldPath:m.path,newPath:h.path,oldHash:m.oldHash??"",newHash:h.newHash??"",similarity:l,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 l=Math.max(0,n-o-a),d=Math.max(0,r-o-a),u=e.slice(0,o),m=e.slice(n-a),h=e.slice(o,o+l),p=t.slice(o,o+d);return o+a>0?`${u}{${h} => ${p}}${m}`:`${e} => ${t}`}ve();tt();async function rt(e,t){let n=await Q(e),r=await Z(e),o,s=!1;n&&n.type==="symbolic"?o=Re(n.target):(s=!0,o="HEAD detached");let i=t?.index??await K(e),a=Si(i),c=t?.compareHash!==void 0?t.compareHash:r,f=t?.compareHash!==void 0?!t.compareHash:!r,l=await $i(e,c,i,a),d=await Tt(e,i),u=[],m=[];for(let g of d)g.status==="untracked"?m.push(g.path):u.push({path:g.path,status:g.status});u.sort((g,w)=>Oe(g.path,w.path));let h=new Set(i.entries.map(g=>g.path)),p=Ti(m,h);return zu(e,r,s,o,i,l,u,a,p,{fromCommit:t?.fromCommit,noWarn:t?.noWarn,isInitial:f})}function Yc(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 ${Y(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 ${Y(r.hash)} # ${r.subject}`);e.push(' (use "git rebase --edit-todo" to view and edit)')}else e.push("No commands remaining.")}async function zu(e,t,n,r,o,s,i,a,c,f){let l=[],d=!1,u=await F(e,"CHERRY_PICK_HEAD"),m=await F(e,"REVERT_HEAD"),h=await F(e,"MERGE_HEAD"),p=!u&&!h,w=await Gt(e)?await gt(e):null;if(n&&w){let C=Y(w.onto);l.push(`interactive rebase in progress; onto ${C}`)}else if(n){let C=await ns(e);if(C){let P=t===C?"at":"from";l.push(`HEAD detached ${P} ${Y(C)}`)}else l.push("Not currently on any branch.")}else l.push(`On branch ${r}`);if(!n&&!w){let C=await he(e),P=await bn(e,C,r);if(P){let v=or(P,{abbreviated:f?.fromCommit});for(let D of v.trimEnd().split(`
106
+ `))l.push(D);d=!0}}if(d&&(w||u||m||h)&&l.push(""),w&&h)Yc(l,w),l.push(""),a.length>0?(l.push("You have unmerged paths."),l.push(' (fix conflicts and run "git commit")'),l.push(' (use "git merge --abort" to abort the merge)')):(l.push("All conflicts fixed but you are still merging."),l.push(' (use "git commit" to conclude merge)')),d=!0;else if(w){let C=St(o),P=await e.fs.exists(T(e.gitDir,"MERGE_MSG"));Yc(l,w);let D=w.headName==="detached HEAD"?null:Re(w.headName),O=Y(w.onto),H=D?` branch '${D}' on '${O}'`:"";if(C)l.push(`You are currently rebasing${H}.`),l.push(' (fix conflicts and then run "git rebase --continue")'),l.push(' (use "git rebase --skip" to skip this patch)'),l.push(' (use "git rebase --abort" to check out the original branch)');else if(P)l.push(`You are currently rebasing${H}.`),l.push(' (all conflicts fixed: run "git rebase --continue")');else{let G=H?`You are currently editing a commit while rebasing${H}.`:"You are currently editing a commit during a rebase.";l.push(G),l.push(' (use "git commit --amend" to amend the current commit)'),l.push(' (use "git rebase --continue" once you are satisfied with your changes)')}d=!0}else u?(l.push(`You are currently cherry-picking commit ${Y(u)}.`),a.length>0?l.push(' (fix conflicts and run "git cherry-pick --continue")'):l.push(' (all conflicts fixed: run "git cherry-pick --continue")'),l.push(' (use "git cherry-pick --skip" to skip this patch)'),l.push(' (use "git cherry-pick --abort" to cancel the cherry-pick operation)'),d=!0):m?(l.push(`You are currently reverting commit ${Y(m)}.`),a.length>0?l.push(' (fix conflicts and run "git revert --continue")'):l.push(' (all conflicts fixed: run "git revert --continue")'),l.push(' (use "git revert --skip" to skip this patch)'),l.push(' (use "git revert --abort" to cancel the revert operation)'),d=!0):h&&(a.length>0?(l.push("You have unmerged paths."),l.push(' (fix conflicts and run "git commit")'),l.push(' (use "git merge --abort" to abort the merge)')):(l.push("All conflicts fixed but you are still merging."),l.push(' (use "git commit" to conclude merge)')),d=!0);if(await Rt(e)){let P=(await Pe(e,"BISECT_START"))?.trim()??"";l.push(`You are currently bisecting, started from branch '${P}'.`),l.push(' (use "git bisect reset" to get back to the original branch)'),d=!0}let y=f?.isInitial??!t;y&&(l.push(""),l.push(f?.fromCommit?"Initial commit":"No commits yet"),d=!0);let x=null;p&&(x=t?' (use "git restore --staged <file>..." to unstage)':' (use "git rm --cached <file>..." to unstage)');let k=i.some(C=>C.status==="deleted")?' (use "git add/rm <file>..." to update what will be committed)':' (use "git add <file>..." to update what will be committed)',E=!1;if(s.length>0){d&&l.push(""),l.push("Changes to be committed:"),x&&l.push(x);for(let C of s)l.push(` ${Xc(C.status,C.path,C.displayPath)}`);l.push(""),E=!0}if(a.length>0){!E&&d&&l.push(""),l.push("Unmerged paths:"),p&&(t?l.push(' (use "git restore --staged <file>..." to unstage)'):l.push(' (use "git rm --cached <file>..." to unstage)')),a.some(P=>P.status==="deleted by us"||P.status==="deleted by them"||P.status==="both deleted")?l.push(' (use "git add/rm <file>..." as appropriate to mark resolution)'):l.push(' (use "git add <file>..." to mark resolution)');for(let P of a)l.push(` ${Ku(P.status,P.path)}`);l.push(""),E=!0}if(i.length>0){!E&&d&&l.push(""),l.push("Changes not staged for commit:"),l.push(k),l.push(' (use "git restore <file>..." to discard changes in working directory)');for(let C of i)l.push(` ${Xc(C.status,C.path)}`);l.push(""),E=!0}if(c.length>0){!E&&d&&l.push(""),l.push("Untracked files:"),l.push(' (use "git add <file>..." to include in what will be committed)');for(let C of c)l.push(` ${C}`);l.push(""),E=!0}let R=s.length>0||!!h&&a.length===0;return!E&&d&&(f?.noWarn||R)&&l.push(""),!R&&!f?.noWarn&&(!E&&d&&i.length===0&&a.length===0&&c.length===0&&l.push(""),i.length>0||a.length>0?l.push('no changes added to commit (use "git add" and/or "git commit -a")'):c.length>0?l.push('nothing added to commit but untracked files present (use "git add" to track)'):y?l.push('nothing to commit (create/copy files and use "git add" to track)'):l.push("nothing to commit, working tree clean")),`${l.join(`
107
107
  `)}
108
- `}async function Si(e,t,n,r){let o=new Set(r?.map(m=>m.path)),s=null;t&&(s=(await j(e,t)).tree);let i=await ce(e,s),a=new Map(je(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:l}=await nt(e,c),d={added:"new file",deleted:"deleted",modified:"modified"},u=[];for(let m of f){let h=d[m.status];h&&u.push({path:m.path,status:h})}for(let m of l)u.push({path:m.newPath,status:"renamed",displayPath:`${m.oldPath} -> ${m.newPath}`});return u.sort((m,h)=>Oe(m.path,h.path))}function $i(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)=>Oe(r.path,o.path))}function Ti(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 Zc(e,t,n){return`${e}:`.padEnd(12)+(n??t)}function zu(e,t){return`${e}:`.padEnd(17)+t}async function bn(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 F(e,i);if(!c)return{upstream:a,ahead:0,behind:0,gone:!0};let f=await F(e,`refs/heads/${n}`);if(!f)return null;if(f===c)return{upstream:a,ahead:0,behind:0,gone:!1};let{ahead:l,behind:d}=await xi(e,f,c);return{upstream:a,ahead:l,behind:d,gone:!1}}function Jc(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 or(e,t){if(e.gone)return`Your branch is based on '${e.upstream}', but the upstream is gone.
108
+ `}async function $i(e,t,n,r){let o=new Set(r?.map(m=>m.path)),s=null;t&&(s=(await j(e,t)).tree);let i=await ce(e,s),a=new Map(De(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:l}=await nt(e,c),d={added:"new file",deleted:"deleted",modified:"modified"},u=[];for(let m of f){let h=d[m.status];h&&u.push({path:m.path,status:h})}for(let m of l)u.push({path:m.newPath,status:"renamed",displayPath:`${m.oldPath} -> ${m.newPath}`});return u.sort((m,h)=>Oe(m.path,h.path))}function Si(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)=>Oe(r.path,o.path))}function Ti(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 Xc(e,t,n){return`${e}:`.padEnd(12)+(n??t)}function Ku(e,t){return`${e}:`.padEnd(17)+t}async function bn(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 F(e,i);if(!c)return{upstream:a,ahead:0,behind:0,gone:!0};let f=await F(e,`refs/heads/${n}`);if(!f)return null;if(f===c)return{upstream:a,ahead:0,behind:0,gone:!1};let{ahead:l,behind:d}=await xi(e,f,c);return{upstream:a,ahead:l,behind:d,gone:!1}}function Zc(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 or(e,t){if(e.gone)return`Your branch is based on '${e.upstream}', but the upstream is gone.
109
109
  (use "git branch --unset-upstream" to fixup)
110
110
  `;if(e.ahead===0&&e.behind===0)return`Your branch is up to date with '${e.upstream}'.
111
111
  `;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}.
@@ -117,17 +117,17 @@ and have ${e.ahead} and ${e.behind} different commits each, respectively.
117
117
  `;return t?.abbreviated?n:n+` (use "git pull" if you want to integrate the remote branch with yours)
118
118
  `}ve();sn();tt();async function so(e){let t=await Je(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 F(e,i);if(a)return{name:s,refName:i,hash:a}}}return null}async function yn(e){let t="";return await F(e,"CHERRY_PICK_HEAD")&&(t=`warning: cancelling a cherry picking in progress
119
119
  `),await F(e,"REVERT_HEAD")&&(t+=`warning: cancelling a revert in progress
120
- `),await sr(e),t}function Ku(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(`
120
+ `),await sr(e),t}function Vu(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(`
121
121
  `)}
122
- `:""}function jn(e){return e.entries.some(t=>t.stage>0)?{stdout:Ku(e),stderr:`error: you need to resolve your current index first
123
- `,exitCode:1}:null}async function oo(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");if(r)return Vu(e,t,n,r);let o=await K(e),s=t.map(a=>Ue(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))?L(`error: path '${t[0]}' is unmerged
122
+ `:""}function jn(e){return e.entries.some(t=>t.stage>0)?{stdout:Vu(e),stderr:`error: you need to resolve your current index first
123
+ `,exitCode:1}:null}async function oo(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");if(r)return Yu(e,t,n,r);let o=await K(e),s=t.map(a=>Ue(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))?L(`error: path '${t[0]}' is unmerged
124
124
  `):L(`error: pathspec '${t[0]}' did not match any file(s) known to git
125
- `);for(let a of i)await ct(e,{path:a.path,hash:a.hash,mode:a.mode});return{stdout:"",stderr:"",exitCode:0}}async function Vu(e,t,n,r){let o=await ce(e,r),s=await K(e),i=t.map(c=>Ue(c,n)),a=[];for(let[c]of o)ye(i,c)&&a.push(c);if(a.length===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
126
- `);for(let c of a){let f=o.get(c);f&&(await ct(e,{path:f.path,hash:f.hash,mode:f.mode}),s=yt(s,{path:f.path,hash:f.hash,mode:parseInt(f.mode,8),stage:0,stat:Ie()}))}return await ae(e,s),{stdout:"",stderr:"",exitCode:0}}async function io(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 K(e),a=t.map(f=>Ue(f,n)),c=new Set;for(let f of i.entries)ye(a,f.path)&&c.add(f.path);if(c.size===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
125
+ `);for(let a of i)await ct(e,{path:a.path,hash:a.hash,mode:a.mode});return{stdout:"",stderr:"",exitCode:0}}async function Yu(e,t,n,r){let o=await ce(e,r),s=await K(e),i=t.map(c=>Ue(c,n)),a=[];for(let[c]of o)ye(i,c)&&a.push(c);if(a.length===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
126
+ `);for(let c of a){let f=o.get(c);f&&(await ct(e,{path:f.path,hash:f.hash,mode:f.mode}),s=Et(s,{path:f.path,hash:f.hash,mode:parseInt(f.mode,8),stage:0,stat:Ie()}))}return await ae(e,s),{stdout:"",stderr:"",exitCode:0}}async function io(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 K(e),a=t.map(f=>Ue(f,n)),c=new Set;for(let f of i.entries)ye(a,f.path)&&c.add(f.path);if(c.size===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
127
127
  `);for(let f of c){let l=i.entries.find(m=>m.path===f&&m.stage===r),d=!l&&i.entries.find(m=>m.path===f&&m.stage===0),u=l||d;if(u)await ct(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 L(`error: path '${f}' does not have ${r===2?"our":"their"} version
128
- `)}return{stdout:"",stderr:"",exitCode:0}}async function ir(e,t,n){if(!e.workTree)return"";let r=await Ve(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 d=await e.fs.readFileBuffer(f);i.set(c,await Et("blob",d))}}else i.set(c,null)}let a=[];for(let[c,f]of o){let l=s.get(c);if(l===void 0){a.push(`D ${c}`);continue}let d=i.get(c);d===null?a.push(`D ${c}`):(l!==f||d!==void 0&&d!==f)&&a.push(`M ${c}`)}for(let[c]of s)o.has(c)||i.get(c)!=null&&a.push(`A ${c}`);return a.length===0?"":(a.sort((c,f)=>{let l=c.slice(2),d=f.slice(2);return l<d?-1:l>d?1:0}),`${a.join(`
128
+ `)}return{stdout:"",stderr:"",exitCode:0}}async function ir(e,t,n){if(!e.workTree)return"";let r=await Ve(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 d=await e.fs.readFileBuffer(f);i.set(c,await ut("blob",d))}}else i.set(c,null)}let a=[];for(let[c,f]of o){let l=s.get(c);if(l===void 0){a.push(`D ${c}`);continue}let d=i.get(c);d===null?a.push(`D ${c}`):(l!==f||d!==void 0&&d!==f)&&a.push(`M ${c}`)}for(let[c]of s)o.has(c)||i.get(c)!=null&&a.push(`A ${c}`);return a.length===0?"":(a.sort((c,f)=>{let l=c.slice(2),d=f.slice(2);return l<d?-1:l>d?1:0}),`${a.join(`
129
129
  `)}
130
- `)}var Qc=5;function Yu(e){let t=e.length,n=t===1?"commit":"commits",r=t===1?"it":"them",o=t>Qc?Qc-1:t,i=e.slice(0,o).map(c=>` ${Y(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
130
+ `)}var Jc=5;function Xu(e){let t=e.length,n=t===1?"commit":"commits",r=t===1?"it":"them",o=t>Jc?Jc-1:t,i=e.slice(0,o).map(c=>` ${Y(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
131
131
  any of your branches:
132
132
 
133
133
  ${i.join(`
@@ -139,9 +139,9 @@ to do so with:
139
139
  git branch <new-branch-name> ${Y(e[0].hash)}
140
140
 
141
141
  `}async function vi(e,t){let n=await j(e,t);return`Previous HEAD position was ${Y(t)} ${fe(n.message)}
142
- `}async function ao(e,t,n){let r=await Ci(e,t,{targetHash:n});return r.length>0?Yu(r):t!==n?vi(e,t):""}async function ar(e,t,n,r,o,s){let i=await Q(e);if(i?.type==="symbolic"&&i.target===n)return{stdout:"",stderr:`Already on '${t}'
143
- `,exitCode:0};let a=await K(e),c=jn(a);if(c)return c;let f=await Z(e),d=(await j(e,r)).tree,u=null;if(f&&(u=(await j(e,f)).tree),u!==d){let x=await An(e,u,d,a);if(!x.success)return x.errorOutput??L("error: checkout would overwrite local changes");a={version:2,entries:x.newEntries},await ae(e,a),await De(e,x.worktreeOps)}let m="";i?.type==="direct"&&f&&(m=await ao(e,f,r));let h=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):f??te;await ze(e,"HEAD",n),await ht(e);let p=await yn(e);await re(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 ir(e,d,a),w=await he(e),y=await bn(e,w,t);return y&&(g+=or(y)),{stdout:g,stderr:`${m}Switched to branch '${t}'
144
- ${p}`,exitCode:0}}async function Gn(e,t,n,r,o){let s=await K(e),i=jn(s);if(i)return i;let a=await Z(e),c=await j(e,t),f=c.tree,l=null;if(a&&(l=(await j(e,a)).tree),l!==f){let x=await An(e,l,f,s);if(!x.success)return x.errorOutput??L("error: checkout would overwrite local changes");s={version:2,entries:x.newEntries},await ae(e,s),await De(e,x.worktreeOps)}let d=await Q(e),u=d?.type==="direct"&&a===t;if(await X(e,"HEAD",t),!u){await Lc(e,t);let x=d?.type==="symbolic"?d.target.replace(/^refs\/heads\//,""):a??te;await re(e,n,"HEAD",a,t,`checkout: moving from ${x} to ${t}`)}let m=await yn(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:a,newHead:t,isBranchCheckout:!1});let h=Y(t),p=fe(c.message),g=d?.type==="direct",w="";return g&&a&&a!==t&&(w+=await ao(e,a,t)),g||!o?.detachAdviceTarget?w+=`HEAD is now at ${h} ${p}
142
+ `}async function ao(e,t,n){let r=await Pi(e,t,{targetHash:n});return r.length>0?Xu(r):t!==n?vi(e,t):""}async function ar(e,t,n,r,o,s){let i=await Q(e);if(i?.type==="symbolic"&&i.target===n)return{stdout:"",stderr:`Already on '${t}'
143
+ `,exitCode:0};let a=await K(e),c=jn(a);if(c)return c;let f=await Z(e),d=(await j(e,r)).tree,u=null;if(f&&(u=(await j(e,f)).tree),u!==d){let x=await An(e,u,d,a);if(!x.success)return x.errorOutput??L("error: checkout would overwrite local changes");a={version:2,entries:x.newEntries},await ae(e,a),await Me(e,x.worktreeOps)}let m="";i?.type==="direct"&&f&&(m=await ao(e,f,r));let h=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):f??te;await ze(e,"HEAD",n),await pt(e);let p=await yn(e);await re(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 ir(e,d,a),w=await he(e),y=await bn(e,w,t);return y&&(g+=or(y)),{stdout:g,stderr:`${m}Switched to branch '${t}'
144
+ ${p}`,exitCode:0}}async function Gn(e,t,n,r,o){let s=await K(e),i=jn(s);if(i)return i;let a=await Z(e),c=await j(e,t),f=c.tree,l=null;if(a&&(l=(await j(e,a)).tree),l!==f){let x=await An(e,l,f,s);if(!x.success)return x.errorOutput??L("error: checkout would overwrite local changes");s={version:2,entries:x.newEntries},await ae(e,s),await Me(e,x.worktreeOps)}let d=await Q(e),u=d?.type==="direct"&&a===t;if(await X(e,"HEAD",t),!u){await Gc(e,t);let x=d?.type==="symbolic"?d.target.replace(/^refs\/heads\//,""):a??te;await re(e,n,"HEAD",a,t,`checkout: moving from ${x} to ${t}`)}let m=await yn(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:a,newHead:t,isBranchCheckout:!1});let h=Y(t),p=fe(c.message),g=d?.type==="direct",w="";return g&&a&&a!==t&&(w+=await ao(e,a,t)),g||!o?.detachAdviceTarget?w+=`HEAD is now at ${h} ${p}
145
145
  `:w=`Note: switching to '${o.detachAdviceTarget}'.
146
146
 
147
147
  You are in 'detached HEAD' state. You can look around, make experimental
@@ -160,65 +160,65 @@ Or undo this operation with:
160
160
  Turn off this advice by setting config variable advice.detachedHead to false
161
161
 
162
162
  HEAD is now at ${h} ${p}
163
- `,w+=m,{stdout:await ir(e,f,s),stderr:w,exitCode:0}}async function Xu(e,t){if(t.startsWith("refs/remotes/")){if(!await F(e,t))return null;let s=t.slice(13).split("/");if(s.length<2)return null;let i=s[0],a=s.slice(1).join("/");return{remote:i,branch:a,ref:t}}let n=`refs/remotes/${t}`;if(await F(e,n)){let o=t.split("/");if(o.length<2)return null;let s=o[0],i=o.slice(1).join("/");return{remote:s,branch:i,ref:n}}return null}async function co(e,t,n){let r=await Xu(e,n);if(!r||await ke(e,"branch.autoSetupMerge")==="false")return"";let s=await he(e),i=`branch "${t}"`;return s[i]||(s[i]={}),s[i].remote=r.remote,s[i].merge=`refs/heads/${r.branch}`,await Ye(e,s),`branch '${t}' set up to track '${r.remote}/${r.branch}'.
164
- `}async function fo(e,t){let n=await ge(e,"refs/remotes"),r=[];for(let o of n){let s=o.name.replace(/^refs\/remotes\//,"").split("/"),i=s[0];s.length>=2&&i&&s.slice(1).join("/")===t&&r.push({remote:i,ref:o.name})}if(r.length===1){let o=r[0];return{remote:o.remote,startPoint:o.ref,trackingRef:o.ref}}if(r.length>1){let o=await ke(e,"checkout.defaultRemote");if(o){let s=r.filter(i=>i.remote===o);if(s.length===1){let i=s[0];return{remote:i.remote,startPoint:i.ref,trackingRef:i.ref}}}}return null}ie();le();ue();hn();var ef=new Set(["help","start","skip","next","reset","visualize","view","replay","log","run","terms"]),os={stdout:`You need to start by "git bisect start"
165
- `,stderr:"",exitCode:1};async function Hi(e){let t=await Ce(e,"BISECT_HEAD");if(t?.trim())return t.trim();let n=await Z(e);return n||I("no current commit")}function tf(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]
166
- `,exitCode:1};let i=r.rest??[],a=await W(o.fs,o.cwd,t);return M(a)?a:em(a,o.env,t,s,i)}});Zu(n,t),Ju(n,t),tm(n,t),nm(n,t),sm(n,t),om(n,t),am(n,t),fm(n,t),lm(n,t)}function Zu(e,t){e.command("start",{description:"Start bisecting",args:[q.string().name("revs").describe("Bad and good revisions").optional().variadic()],options:{"term-new":J.string().describe("Alternate term for new/bad"),"term-bad":J.string().describe("Alternate term for new/bad"),"term-old":J.string().describe("Alternate term for old/good"),"term-good":J.string().describe("Alternate term for old/good"),"no-checkout":S().describe("Do not checkout the bisection commit"),"first-parent":S().describe("Follow only first parent on merges")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Xe(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 ef.has(a)?I(`'${a}' is not a valid term`):ef.has(c)?I(`'${c}' is not a valid term`):a===c?I("'bad' and 'good' terms must be different"):nf(s,r.env,t,n.revs??[],a,c,n["no-checkout"]??!1,n["first-parent"]??!1)}})}async function nf(e,t,n,r,o,s,i,a){await Rt(e)&&await Qs(e);let c=await Q(e),f;if(c?.type==="symbolic"?f=c.target.replace(/^refs\/heads\//,""):f=await Z(e)??"HEAD",await Te(e,"BISECT_START",f+`
163
+ `,w+=m,{stdout:await ir(e,f,s),stderr:w,exitCode:0}}async function Zu(e,t){if(t.startsWith("refs/remotes/")){if(!await F(e,t))return null;let s=t.slice(13).split("/");if(s.length<2)return null;let i=s[0],a=s.slice(1).join("/");return{remote:i,branch:a,ref:t}}let n=`refs/remotes/${t}`;if(await F(e,n)){let o=t.split("/");if(o.length<2)return null;let s=o[0],i=o.slice(1).join("/");return{remote:s,branch:i,ref:n}}return null}async function co(e,t,n){let r=await Zu(e,n);if(!r||await ke(e,"branch.autoSetupMerge")==="false")return"";let s=await he(e),i=`branch "${t}"`;return s[i]||(s[i]={}),s[i].remote=r.remote,s[i].merge=`refs/heads/${r.branch}`,await Ye(e,s),`branch '${t}' set up to track '${r.remote}/${r.branch}'.
164
+ `}async function fo(e,t){let n=await ge(e,"refs/remotes"),r=[];for(let o of n){let s=o.name.replace(/^refs\/remotes\//,"").split("/"),i=s[0];s.length>=2&&i&&s.slice(1).join("/")===t&&r.push({remote:i,ref:o.name})}if(r.length===1){let o=r[0];return{remote:o.remote,startPoint:o.ref,trackingRef:o.ref}}if(r.length>1){let o=await ke(e,"checkout.defaultRemote");if(o){let s=r.filter(i=>i.remote===o);if(s.length===1){let i=s[0];return{remote:i.remote,startPoint:i.ref,trackingRef:i.ref}}}}return null}ie();le();ue();hn();var Qc=new Set(["help","start","skip","next","reset","visualize","view","replay","log","run","terms"]),os={stdout:`You need to start by "git bisect start"
165
+ `,stderr:"",exitCode:1};async function Hi(e){let t=await Pe(e,"BISECT_HEAD");if(t?.trim())return t.trim();let n=await Z(e);return n||I("no current commit")}function ef(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]
166
+ `,exitCode:1};let i=r.rest??[],a=await W(o.fs,o.cwd,t);return M(a)?a:tm(a,o.env,t,s,i)}});Ju(n,t),Qu(n,t),nm(n,t),rm(n,t),om(n,t),im(n,t),cm(n,t),lm(n,t),dm(n,t)}function Ju(e,t){e.command("start",{description:"Start bisecting",args:[q.string().name("revs").describe("Bad and good revisions").optional().variadic()],options:{"term-new":J.string().describe("Alternate term for new/bad"),"term-bad":J.string().describe("Alternate term for new/bad"),"term-old":J.string().describe("Alternate term for old/good"),"term-good":J.string().describe("Alternate term for old/good"),"no-checkout":$().describe("Do not checkout the bisection commit"),"first-parent":$().describe("Follow only first parent on merges")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Xe(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 Qc.has(a)?I(`'${a}' is not a valid term`):Qc.has(c)?I(`'${c}' is not a valid term`):a===c?I("'bad' and 'good' terms must be different"):tf(s,r.env,t,n.revs??[],a,c,n["no-checkout"]??!1,n["first-parent"]??!1)}})}async function tf(e,t,n,r,o,s,i,a){await Rt(e)&&await Qs(e);let c=await Q(e),f;if(c?.type==="symbolic"?f=c.target.replace(/^refs\/heads\//,""):f=await Z(e)??"HEAD",await Te(e,"BISECT_START",f+`
167
167
  `),await Te(e,"BISECT_TERMS",`${o}
168
168
  ${s}
169
169
  `),await Te(e,"BISECT_NAMES",`
170
- `),a&&await Te(e,"BISECT_FIRST_PARENT",""),i){let u=await Z(e);u&&await Te(e,"BISECT_HEAD",u)}if(r.length>0){let u=r[0],m=await vt(e,u);if(M(m))return m;await X(e,`refs/bisect/${o}`,m);let h=await j(e,m);await xt(e,`# ${o}: [${m}] ${fe(h.message)}`);for(let p=1;p<r.length;p++){let g=r[p],w=await vt(e,g);if(M(w))return w;await X(e,`refs/bisect/${s}-${w}`,w);let y=await j(e,w);await xt(e,`# ${s}: [${w}] ${fe(y.message)}`)}}let l=r.map(u=>`'${u}'`),d=l.length>0?` ${l.join(" ")}`:"";return await xt(e,`git bisect start${d}`),is(e,t,n)}function Ju(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 W(o.fs,o.cwd,t);return M(s)?s:Qu(s,o.env,t,n,r.rev)}})}async function Qu(e,t,n,r,o){if(!await Rt(e))return os;let s=await rs(e),i=r==="bad"||r==="new"?s.termBad:s.termGood;return ss(e,t,n,i,s,o)}async function em(e,t,n,r,o){if(!await Rt(e))return os;let s=await rs(e);return r!==s.termBad&&r!==s.termGood?{stdout:"",stderr:`error: unknown command: 'git bisect ${r}'
171
- `,exitCode:1}:ss(e,t,n,r,s,o[0])}async function ss(e,t,n,r,o,s){let i;if(s){let f=await vt(e,s);if(M(f))return f;i=f}else{let f=await Hi(e);if(M(f))return f;i=f}let a=await j(e,i),c=fe(a.message);return r===o.termBad?await X(e,`refs/bisect/${o.termBad}`,i):await X(e,`refs/bisect/${o.termGood}-${i}`,i),await xt(e,`# ${r}: [${i}] ${c}`),await xt(e,`git bisect ${r} ${i}`),is(e,t,n)}function tm(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 W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Rt(s))return os;let i=n.revs??[];if(i.length===0){let a=await Hi(s);if(M(a))return a;i.push(a)}for(let a of i){let c;if(a.length===40&&/^[0-9a-f]+$/.test(a))c=a;else{let l=await vt(s,a);if(M(l))return l;c=l}await X(s,`refs/bisect/skip-${c}`,c);let f=await j(s,c);await xt(s,`# skip: [${c}] ${fe(f.message)}`),await xt(s,`git bisect skip ${c}`)}return is(s,r.env,t)}})}function nm(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 W(r.fs,r.cwd,t);if(M(o))return o;let s=o;return await Rt(s)?rm(s,r.env,t,n.commit):{stdout:`We are not bisecting.
172
- `,stderr:"",exitCode:0}}})}async function rm(e,t,n,r){let o=(await Ce(e,"BISECT_START"))?.trim()??"";if(await Qs(e),r){let s=await vt(e,r);return M(s)?s:Gn(e,s,t,n)}if(o){let s=`refs/heads/${o}`,i=await F(e,s);if(i)return ar(e,o,s,i,t,n);let a=await Be(e,o);if(a)return Gn(e,a,t,n)}return{stdout:"",stderr:"",exitCode:0}}function sm(e,t){e.command("log",{description:"Show the bisect log",handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;return await Rt(s)?{stdout:await Ce(s,"BISECT_LOG")??"",stderr:"",exitCode:0}:{stdout:"",stderr:`error: We are not bisecting.
173
- `,exitCode:1}}})}function om(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 W(r.fs,r.cwd,t);if(M(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 im(s,r.env,t,a)}})}async function im(e,t,n,r){await Rt(e)&&await Qs(e);let o={termBad:"bad",termGood:"good"},s="";for(let i of r.split(`
174
- `)){let a=i.trim();if(!a||a.startsWith("#"))continue;let c=a.match(/^git[\s-]bisect\s+(\S+)(.*)$/);if(!c)continue;let f=c[1],l=c[2].trim(),d;if(f==="start"){let u=l?l.split(/\s+/).map(m=>m.replace(/^'|'$/g,"")):[];d=await nf(e,t,n,u,"bad","good",!1,!1)}else if(f==="bad"||f==="new")d=await ss(e,t,n,"bad",o,l||void 0);else if(f==="good"||f==="old")d=await ss(e,t,n,"good",o,l||void 0);else if(f==="skip"){for(let u of l?l.split(/\s+/):[]){await X(e,`refs/bisect/skip-${u}`,u);let m=await j(e,u);await xt(e,`# skip: [${u}] ${fe(m.message)}`),await xt(e,`git bisect skip ${u}`)}d=await is(e,t,n)}else continue;if(d.exitCode!==0)return d;s+=d.stdout}return{stdout:s,stderr:"",exitCode:0}}function am(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 W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Rt(s))return os;if(!r.exec)return I("bisect run requires shell execution support");let i=n.cmd.join(" ");return cm(s,r.env,t,i,r.exec,r.cwd)}})}async function cm(e,t,n,r,o,s){let i="";for(;;){i+=`running '${r}'
170
+ `),a&&await Te(e,"BISECT_FIRST_PARENT",""),i){let u=await Z(e);u&&await Te(e,"BISECT_HEAD",u)}if(r.length>0){let u=r[0],m=await vt(e,u);if(M(m))return m;await X(e,`refs/bisect/${o}`,m);let h=await j(e,m);await xt(e,`# ${o}: [${m}] ${fe(h.message)}`);for(let p=1;p<r.length;p++){let g=r[p],w=await vt(e,g);if(M(w))return w;await X(e,`refs/bisect/${s}-${w}`,w);let y=await j(e,w);await xt(e,`# ${s}: [${w}] ${fe(y.message)}`)}}let l=r.map(u=>`'${u}'`),d=l.length>0?` ${l.join(" ")}`:"";return await xt(e,`git bisect start${d}`),is(e,t,n)}function Qu(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 W(o.fs,o.cwd,t);return M(s)?s:em(s,o.env,t,n,r.rev)}})}async function em(e,t,n,r,o){if(!await Rt(e))return os;let s=await rs(e),i=r==="bad"||r==="new"?s.termBad:s.termGood;return ss(e,t,n,i,s,o)}async function tm(e,t,n,r,o){if(!await Rt(e))return os;let s=await rs(e);return r!==s.termBad&&r!==s.termGood?{stdout:"",stderr:`error: unknown command: 'git bisect ${r}'
171
+ `,exitCode:1}:ss(e,t,n,r,s,o[0])}async function ss(e,t,n,r,o,s){let i;if(s){let f=await vt(e,s);if(M(f))return f;i=f}else{let f=await Hi(e);if(M(f))return f;i=f}let a=await j(e,i),c=fe(a.message);return r===o.termBad?await X(e,`refs/bisect/${o.termBad}`,i):await X(e,`refs/bisect/${o.termGood}-${i}`,i),await xt(e,`# ${r}: [${i}] ${c}`),await xt(e,`git bisect ${r} ${i}`),is(e,t,n)}function nm(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 W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Rt(s))return os;let i=n.revs??[];if(i.length===0){let a=await Hi(s);if(M(a))return a;i.push(a)}for(let a of i){let c;if(a.length===40&&/^[0-9a-f]+$/.test(a))c=a;else{let l=await vt(s,a);if(M(l))return l;c=l}await X(s,`refs/bisect/skip-${c}`,c);let f=await j(s,c);await xt(s,`# skip: [${c}] ${fe(f.message)}`),await xt(s,`git bisect skip ${c}`)}return is(s,r.env,t)}})}function rm(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 W(r.fs,r.cwd,t);if(M(o))return o;let s=o;return await Rt(s)?sm(s,r.env,t,n.commit):{stdout:`We are not bisecting.
172
+ `,stderr:"",exitCode:0}}})}async function sm(e,t,n,r){let o=(await Pe(e,"BISECT_START"))?.trim()??"";if(await Qs(e),r){let s=await vt(e,r);return M(s)?s:Gn(e,s,t,n)}if(o){let s=`refs/heads/${o}`,i=await F(e,s);if(i)return ar(e,o,s,i,t,n);let a=await Be(e,o);if(a)return Gn(e,a,t,n)}return{stdout:"",stderr:"",exitCode:0}}function om(e,t){e.command("log",{description:"Show the bisect log",handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;return await Rt(s)?{stdout:await Pe(s,"BISECT_LOG")??"",stderr:"",exitCode:0}:{stdout:"",stderr:`error: We are not bisecting.
173
+ `,exitCode:1}}})}function im(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 W(r.fs,r.cwd,t);if(M(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 am(s,r.env,t,a)}})}async function am(e,t,n,r){await Rt(e)&&await Qs(e);let o={termBad:"bad",termGood:"good"},s="";for(let i of r.split(`
174
+ `)){let a=i.trim();if(!a||a.startsWith("#"))continue;let c=a.match(/^git[\s-]bisect\s+(\S+)(.*)$/);if(!c)continue;let f=c[1],l=c[2].trim(),d;if(f==="start"){let u=l?l.split(/\s+/).map(m=>m.replace(/^'|'$/g,"")):[];d=await tf(e,t,n,u,"bad","good",!1,!1)}else if(f==="bad"||f==="new")d=await ss(e,t,n,"bad",o,l||void 0);else if(f==="good"||f==="old")d=await ss(e,t,n,"good",o,l||void 0);else if(f==="skip"){for(let u of l?l.split(/\s+/):[]){await X(e,`refs/bisect/skip-${u}`,u);let m=await j(e,u);await xt(e,`# skip: [${u}] ${fe(m.message)}`),await xt(e,`git bisect skip ${u}`)}d=await is(e,t,n)}else continue;if(d.exitCode!==0)return d;s+=d.stdout}return{stdout:s,stderr:"",exitCode:0}}function cm(e,t){e.command("run",{description:"Bisect by running a command",args:[q.string().name("cmd").describe("Command and arguments to run").variadic()],handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Rt(s))return os;if(!r.exec)return I("bisect run requires shell execution support");let i=n.cmd.join(" ");return fm(s,r.env,t,i,r.exec,r.cwd)}})}async function fm(e,t,n,r,o,s){let i="";for(;;){i+=`running '${r}'
175
175
  `;let c=(await o(r,{cwd:s})).exitCode;if(c===125){let u=await Hi(e);if(M(u))return u;await X(e,`refs/bisect/skip-${u}`,u);let m=await j(e,u);await xt(e,`# skip: [${u}] ${fe(m.message)}`),await xt(e,`git bisect skip ${u}`);let h=await is(e,t,n);if(i+=h.stdout,h.stdout.includes("is the first bad commit"))return i+=`bisect found first bad commit
176
176
  `,{stdout:i,stderr:"",exitCode:0};if(h.exitCode!==0)return{stdout:i,stderr:h.stderr,exitCode:h.exitCode};continue}let f=await Js(e),l=c===0?f.termGood:f.termBad,d=await ss(e,t,n,l,f,void 0);if(i+=d.stdout,d.stdout.includes("is the first bad commit"))return i+=`bisect found first bad commit
177
- `,{stdout:i,stderr:"",exitCode:0};if(d.exitCode!==0)return{stdout:i,stderr:d.stderr,exitCode:d.exitCode}}}function fm(e,t){e.command("terms",{description:"Show the terms used for old and new commits",options:{"term-good":S().describe("Show the term for the old state"),"term-bad":S().describe("Show the term for the new state")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Rt(s))return{stdout:"",stderr:`error: no terms defined
177
+ `,{stdout:i,stderr:"",exitCode:0};if(d.exitCode!==0)return{stdout:i,stderr:d.stderr,exitCode:d.exitCode}}}function lm(e,t){e.command("terms",{description:"Show the terms used for old and new commits",options:{"term-good":$().describe("Show the term for the old state"),"term-bad":$().describe("Show the term for the new state")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Rt(s))return{stdout:"",stderr:`error: no terms defined
178
178
  `,exitCode:1};let{termBad:i,termGood:a}=await rs(s);return n["term-good"]?{stdout:`${a}
179
179
  `,stderr:"",exitCode:0}:n["term-bad"]?{stdout:`${i}
180
180
  `,stderr:"",exitCode:0}:{stdout:`Your current terms are ${a} for the old state
181
181
  and ${i} for the new state.
182
- `,stderr:"",exitCode:0}}})}function lm(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 W(o.fs,o.cwd,t);if(M(s))return s;let i=s;if(!await Rt(i))return os;let a=await Js(i);if(!a.badHash||a.goodHashes.length===0)return{stdout:"",stderr:`error: need both bad and good commits to visualize
183
- `,exitCode:1};let{walkCommits:c}=await Promise.resolve().then(()=>(rr(),Gc)),f="";for await(let l of c(i,a.badHash,{exclude:a.goodHashes}))f+=`${Y(l.hash)} ${fe(l.commit.message)}
184
- `;return{stdout:f,stderr:"",exitCode:0}}})}async function is(e,t,n){let r=await Js(e);return!r.badHash||r.goodHashes.length===0?{stdout:Nc(r),stderr:"",exitCode:0}:(await Te(e,"BISECT_ANCESTORS_OK",""),dm(e,t,n,r))}async function dm(e,t,n,r){let o=await _c(e,r.badHash,r.goodHashes,new Set(r.skipHashes),r.firstParent);if(!o)return{stdout:"",stderr:`error: no testable commits found
185
- `,exitCode:1};if(o.found){let s=await Uc(e,o.hash);return await xt(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.
182
+ `,stderr:"",exitCode:0}}})}function dm(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 W(o.fs,o.cwd,t);if(M(s))return s;let i=s;if(!await Rt(i))return os;let a=await Js(i);if(!a.badHash||a.goodHashes.length===0)return{stdout:"",stderr:`error: need both bad and good commits to visualize
183
+ `,exitCode:1};let{walkCommits:c}=await Promise.resolve().then(()=>(rr(),jc)),f="";for await(let l of c(i,a.badHash,{exclude:a.goodHashes}))f+=`${Y(l.hash)} ${fe(l.commit.message)}
184
+ `;return{stdout:f,stderr:"",exitCode:0}}})}async function is(e,t,n){let r=await Js(e);return!r.badHash||r.goodHashes.length===0?{stdout:_c(r),stderr:"",exitCode:0}:(await Te(e,"BISECT_ANCESTORS_OK",""),um(e,t,n,r))}async function um(e,t,n,r){let o=await Lc(e,r.badHash,r.goodHashes,new Set(r.skipHashes),r.firstParent);if(!o)return{stdout:"",stderr:`error: no testable commits found
185
+ `,exitCode:1};if(o.found){let s=await Fc(e,o.hash);return await xt(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.
186
186
  The first bad commit could be any of:
187
187
  `;for(let i of r.skipHashes)s+=i+`
188
188
  `;return r.badHash&&(s+=r.badHash+`
189
189
  `),s+=`We cannot bisect more!
190
190
  `,{stdout:s,stderr:"",exitCode:2}}if(r.noCheckout)await Te(e,"BISECT_HEAD",o.hash);else{let s=await Gn(e,o.hash,t,n);if(s.exitCode!==0)return s}return await Te(e,"BISECT_EXPECTED_REV",o.hash+`
191
- `),{stdout:Fc(o),stderr:"",exitCode:0}}se();ie();function Lt(e){if(e.length===0)return[];let t=e.split(`
192
- `);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]===`
193
- `&&(t.push(e.slice(n,r+1)),n=r+1);return n<e.length&&t.push(e.slice(n)),t}var um=4,rf=1024,lo=100,ho=0,uo=1,xr=2;function Di(e){let t=1;for(;t*t<e;)t++;return t}function mm(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 hm(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 sf(e,t,n,r){t-n>lo&&(n=t-lo),r-t>lo&&(r=t+lo);let o=0,s=1;for(let c=1;t-c>=n;c++){let f=e[t-c];if(f===ho)o++;else if(f===xr)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===ho)i++;else if(f===xr)a++;else break}return i===0?!1:(i+=o,a+=s,a*um<a+i)}function pm(e,t,n,r,o,s,i,a,c,f){let l=new Uint8Array(t),d=new Uint8Array(r),u=Math.min(Di(t),rf);for(let g=s;g<=i;g++){let w=o[e[g]].len2;w===0?l[g]=ho:w>=u?l[g]=xr:l[g]=uo}let m=Math.min(Di(r),rf);for(let g=s;g<=a;g++){let w=o[n[g]].len1;w===0?d[g]=ho:w>=m?d[g]=xr:d[g]=uo}let h=[];for(let g=s;g<=i;g++)l[g]===uo||l[g]===xr&&!sf(l,g,s,i)?h.push(g):c[g]=1;let p=[];for(let g=s;g<=a;g++)d[g]===uo||d[g]===xr&&!sf(d,g,s,a)?p.push(g):f[g]=1;return{refIndex1:h,nreff1:h.length,refIndex2:p,nreff2:p.length}}var Ln=20,of=4,gm=256,wm=256,mo=2147483647;function gt(e,t){return e[t]??0}function bm(e,t,n,r,o,s,i,a,c,f){let l=t-s,d=n-o,u=t-o,m=n-s,h=u-m&1,p=u,g=u,w=m,y=m;i[u]=t,a[m]=n;for(let x=1;;x++){let b=!1;p>l?i[--p-1]=-1:++p,g<d?i[++g+1]=-1:--g;for(let k=g;k>=p;k-=2){let E;gt(i,k-1)>=gt(i,k+1)?E=gt(i,k-1)+1:E=gt(i,k+1);let R=E,P=E-k;for(;E<n&&P<s&&e[E]===r[P];)E++,P++;if(E-R>Ln&&(b=!0),i[k]=E,h&&w<=k&&k<=y&&gt(a,k)<=E)return{i1:E,i2:P,minLo:!0,minHi:!0}}w>l?a[--w-1]=mo:++w,y<d?a[++y+1]=mo:--y;for(let k=y;k>=w;k-=2){let E;gt(a,k-1)<gt(a,k+1)?E=gt(a,k-1):E=gt(a,k+1)-1;let R=E,P=E-k;for(;E>t&&P>o&&e[E-1]===r[P-1];)E--,P--;if(R-E>Ln&&(b=!0),a[k]=E,!h&&p<=k&&k<=g&&E<=gt(i,k))return{i1:E,i2:P,minLo:!0,minHi:!0}}if(!c){if(b&&x>gm){let k=0,E=null;for(let R=g;R>=p;R-=2){let P=R>u?R-u:u-R,C=gt(i,R),v=C-R,D=C-t+(v-o)-P;if(D>of*x&&D>k&&t+Ln<=C&&C<n&&o+Ln<=v&&v<s){let O=!0;for(let H=1;H<=Ln;H++)if(e[C-H]!==r[v-H]){O=!1;break}O&&(k=D,E={i1:C,i2:v,minLo:!0,minHi:!1})}}if(E)return E;k=0,E=null;for(let R=y;R>=w;R-=2){let P=R>m?R-m:m-R,C=gt(a,R),v=C-R,D=n-C+(s-v)-P;if(D>of*x&&D>k&&t<C&&C<=n-Ln&&o<v&&v<=s-Ln){let O=!0;for(let H=0;H<Ln;H++)if(e[C+H]!==r[v+H]){O=!1;break}O&&(k=D,E={i1:C,i2:v,minLo:!1,minHi:!0})}}if(E)return E}if(x>=f){let k=-1,E=-1;for(let C=g;C>=p;C-=2){let v=Math.min(gt(i,C),n),D=v-C;s<D&&(v=s+C,D=s),k<v+D&&(k=v+D,E=v)}let R=mo,P=mo;for(let C=y;C>=w;C-=2){let v=Math.max(t,gt(a,C)),D=v-C;D<o&&(v=o+C,D=o),v+D<R&&(R=v+D,P=v)}return n+s-R<k-(t+o)?{i1:E,i2:k-E,minLo:!0,minHi:!1}:{i1:P,i2:R-P,minLo:!1,minHi:!0}}}}}function Mi(e,t,n,r,o,s,i,a,c,f,l,d,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=bm(e,t,n,r,o,s,l,d,u,m);Mi(e,t,h.i1,r,o,h.i2,i,a,c,f,l,d,h.minLo,m),Mi(e,h.i1,n,r,h.i2,s,i,a,c,f,l,d,h.minHi,m)}}function ym(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 af=200,cf=20,ff=100,Em=1,km=21,Rm=-30,xm=6,Cm=-4,Pm=10,Om=24,Im=17,Sm=23,$m=17,Tm=60;function Ai(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>=af)return af}return-1}function lf(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=Ai(e[n]));for(let o=n-1;o>=0&&(r.preIndent=Ai(e[o]),r.preIndent===-1);o--)if(r.preBlank+=1,r.preBlank===cf){r.preIndent=0;break}for(let o=n+1;o<t&&(r.postIndent=Ai(e[o]),r.postIndent===-1);o++)if(r.postBlank+=1,r.postBlank===cf){r.postIndent=0;break}return r}function df(e,t){e.preIndent===-1&&e.preBlank===0&&(t.penalty+=Em),e.endOfFile&&(t.penalty+=km);let n=e.indent===-1?1+e.postBlank:0,r=e.preBlank+n;t.penalty+=Rm*r,t.penalty+=xm*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?Pm:Cm:o===e.preIndent||(e.postIndent!==-1&&e.postIndent>o?t.penalty+=s?Im:Om:t.penalty+=s?$m:Sm))}function vm(e,t){let n=(e.effectiveIndent>t.effectiveIndent?1:0)-(e.effectiveIndent<t.effectiveIndent?1:0);return Tm*n+(e.penalty-t.penalty)}function uf(e,t,n,r,o,s){let i=0,a=0;for(;e[a];)a++;let c=0,f=0;for(;o[f];)f++;let l=(d,u)=>t[d]===t[u];for(;;){if(a!==i){let d,u,m;do{for(d=a-i,u=-1;i>0&&l(i-1,a-1);){for(e[--i]=1,e[--a]=0;e[i-1];)i--;if(c===0)break;for(f=c-1,c=f;o[c-1];c--);}for(m=a,f>c&&(u=a);!(a>=r||!l(i,a));){for(e[i++]=0,e[a++]=1;e[a];)a++;if(f>=s)break;for(c=f+1,f=c;o[f];f++);f>c&&(u=a)}}while(d!==a-i);if(a!==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-d-1>g&&(g=a-d-1),a-ff>g&&(g=a-ff);g<=a;g++){let w={effectiveIndent:0,penalty:0},y=lf(n,r,g);df(y,w);let x=lf(n,r,g-d);df(x,w),(h===-1||vm(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 ji(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}=mm(e,t),{dstart:f,dend1:l,dend2:d}=hm(i,n,a,r);if(f>l)for(let u=f;u<r-(n-1-l);u++)s[u]=1;else if(f>d)for(let u=f;u<n-(r-1-d);u++)o[u]=1;else{let{refIndex1:u,nreff1:m,refIndex2:h,nreff2:p}=pm(i,n,a,r,c,f,l,d,o,s);if(m>0&&p>0){let g=new Array(m);for(let E=0;E<m;E++)g[E]=i[u[E]];let w=new Array(p);for(let E=0;E<p;E++)w[E]=a[h[E]];let y={},x={},b=m+p+3,k=Math.max(wm,Di(b));Mi(g,0,m,w,0,p,o,s,u,h,y,x,!1,k)}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;uf(o,i,e,n,s,r),uf(s,a,t,r,o,n)}}else n===0?s.fill(1):o.fill(1);return{changedOld:o,changedNew:s}}function st(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}=ji(e,t);return ym(e,t,o,s)}var Hm=3;function Am(e,t=Hm){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),l=Math.min(e.length-1,c+t);f<=i+1||(o.push({start:s,end:i}),s=f),i=l}return o.push({start:s,end:i}),o.map(a=>Dm(e,a.start,a.end))}function Dm(e,t,n){let r=0,o=0,s=0,i=0,a=[],c=!1,f=!1;for(let l=t;l<=n;l++){let d=e[l];if(d)switch(d.type){case"keep":c||(r=d.oldLineNo,c=!0),f||(s=d.newLineNo,f=!0),o++,i++,a.push({type:"context",content:d.line});break;case"delete":c||(r=d.oldLineNo,c=!0),o++,a.push({type:"delete",content:d.line});break;case"insert":f||(s=d.newLineNo,f=!0),i++,a.push({type:"insert",content:d.line});break}}if(c||(r=s>0?s:1),f||(s=r>0?r:1),o===0)for(let l=t;l<=n;l++){let d=e[l];if(d&&d.type==="insert"){r=d.newLineNo>1?d.newLineNo-1:0;break}}if(i===0)for(let l=t;l<=n;l++){let d=e[l];if(d&&d.type==="delete"){s=d.oldLineNo>1?d.oldLineNo-1:0;break}}return{oldStart:r,oldCount:o,newStart:s,newCount:i,lines:a}}function po(e){return e?e.length<40?e:Y(e):"0000000"}function mf(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 Mm(e,t,n){let{path:r,oldContent:o,newContent:s,oldMode:i,oldHash:a,newHash:c}=e,f=e.renameTo!==void 0,l=e.renameTo??r,d=e.isNew??o==="",u=e.isDeleted??s==="";if(o===s&&!f)return"";let m=[];if(mf(m,e,l,d,u,f),o!==s){if(a||c){let h=po(a),p=po(c);d||u||f?m.push(`index ${h}..${p}`):m.push(`index ${h}..${p} ${i||"100644"}`)}t&&n?m.push(`Binary files a/${r} and b/${l} differ`):d?m.push(`Binary files /dev/null and b/${l} differ`):u?m.push(`Binary files a/${r} and /dev/null differ`):m.push(`Binary files a/${r} and b/${l} differ`)}return`${m.join(`
191
+ `),{stdout:Nc(o),stderr:"",exitCode:0}}se();ie();function Lt(e){if(e.length===0)return[];let t=e.split(`
192
+ `);return t[t.length-1]===""&&t.pop(),t}function bt(e){if(e.length===0)return[];let t=[],n=0;for(let r=0;r<e.length;r++)e[r]===`
193
+ `&&(t.push(e.slice(n,r+1)),n=r+1);return n<e.length&&t.push(e.slice(n)),t}var mm=4,nf=1024,lo=100,ho=0,uo=1,Pr=2;function Di(e){let t=1;for(;t*t<e;)t++;return t}function hm(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 pm(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 rf(e,t,n,r){t-n>lo&&(n=t-lo),r-t>lo&&(r=t+lo);let o=0,s=1;for(let c=1;t-c>=n;c++){let f=e[t-c];if(f===ho)o++;else if(f===Pr)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===ho)i++;else if(f===Pr)a++;else break}return i===0?!1:(i+=o,a+=s,a*mm<a+i)}function gm(e,t,n,r,o,s,i,a,c,f){let l=new Uint8Array(t),d=new Uint8Array(r),u=Math.min(Di(t),nf);for(let g=s;g<=i;g++){let w=o[e[g]].len2;w===0?l[g]=ho:w>=u?l[g]=Pr:l[g]=uo}let m=Math.min(Di(r),nf);for(let g=s;g<=a;g++){let w=o[n[g]].len1;w===0?d[g]=ho:w>=m?d[g]=Pr:d[g]=uo}let h=[];for(let g=s;g<=i;g++)l[g]===uo||l[g]===Pr&&!rf(l,g,s,i)?h.push(g):c[g]=1;let p=[];for(let g=s;g<=a;g++)d[g]===uo||d[g]===Pr&&!rf(d,g,s,a)?p.push(g):f[g]=1;return{refIndex1:h,nreff1:h.length,refIndex2:p,nreff2:p.length}}var Ln=20,sf=4,wm=256,bm=256,mo=2147483647;function wt(e,t){return e[t]??0}function ym(e,t,n,r,o,s,i,a,c,f){let l=t-s,d=n-o,u=t-o,m=n-s,h=u-m&1,p=u,g=u,w=m,y=m;i[u]=t,a[m]=n;for(let x=1;;x++){let b=!1;p>l?i[--p-1]=-1:++p,g<d?i[++g+1]=-1:--g;for(let k=g;k>=p;k-=2){let E;wt(i,k-1)>=wt(i,k+1)?E=wt(i,k-1)+1:E=wt(i,k+1);let R=E,C=E-k;for(;E<n&&C<s&&e[E]===r[C];)E++,C++;if(E-R>Ln&&(b=!0),i[k]=E,h&&w<=k&&k<=y&&wt(a,k)<=E)return{i1:E,i2:C,minLo:!0,minHi:!0}}w>l?a[--w-1]=mo:++w,y<d?a[++y+1]=mo:--y;for(let k=y;k>=w;k-=2){let E;wt(a,k-1)<wt(a,k+1)?E=wt(a,k-1):E=wt(a,k+1)-1;let R=E,C=E-k;for(;E>t&&C>o&&e[E-1]===r[C-1];)E--,C--;if(R-E>Ln&&(b=!0),a[k]=E,!h&&p<=k&&k<=g&&E<=wt(i,k))return{i1:E,i2:C,minLo:!0,minHi:!0}}if(!c){if(b&&x>wm){let k=0,E=null;for(let R=g;R>=p;R-=2){let C=R>u?R-u:u-R,P=wt(i,R),v=P-R,D=P-t+(v-o)-C;if(D>sf*x&&D>k&&t+Ln<=P&&P<n&&o+Ln<=v&&v<s){let O=!0;for(let H=1;H<=Ln;H++)if(e[P-H]!==r[v-H]){O=!1;break}O&&(k=D,E={i1:P,i2:v,minLo:!0,minHi:!1})}}if(E)return E;k=0,E=null;for(let R=y;R>=w;R-=2){let C=R>m?R-m:m-R,P=wt(a,R),v=P-R,D=n-P+(s-v)-C;if(D>sf*x&&D>k&&t<P&&P<=n-Ln&&o<v&&v<=s-Ln){let O=!0;for(let H=0;H<Ln;H++)if(e[P+H]!==r[v+H]){O=!1;break}O&&(k=D,E={i1:P,i2:v,minLo:!1,minHi:!0})}}if(E)return E}if(x>=f){let k=-1,E=-1;for(let P=g;P>=p;P-=2){let v=Math.min(wt(i,P),n),D=v-P;s<D&&(v=s+P,D=s),k<v+D&&(k=v+D,E=v)}let R=mo,C=mo;for(let P=y;P>=w;P-=2){let v=Math.max(t,wt(a,P)),D=v-P;D<o&&(v=o+P,D=o),v+D<R&&(R=v+D,C=v)}return n+s-R<k-(t+o)?{i1:E,i2:k-E,minLo:!0,minHi:!1}:{i1:C,i2:R-C,minLo:!1,minHi:!0}}}}}function Mi(e,t,n,r,o,s,i,a,c,f,l,d,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=ym(e,t,n,r,o,s,l,d,u,m);Mi(e,t,h.i1,r,o,h.i2,i,a,c,f,l,d,h.minLo,m),Mi(e,h.i1,n,r,h.i2,s,i,a,c,f,l,d,h.minHi,m)}}function Em(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 of=200,af=20,cf=100,km=1,Rm=21,xm=-30,Pm=6,Cm=-4,Om=10,Im=24,$m=17,Sm=23,Tm=17,vm=60;function Ai(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>=of)return of}return-1}function ff(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=Ai(e[n]));for(let o=n-1;o>=0&&(r.preIndent=Ai(e[o]),r.preIndent===-1);o--)if(r.preBlank+=1,r.preBlank===af){r.preIndent=0;break}for(let o=n+1;o<t&&(r.postIndent=Ai(e[o]),r.postIndent===-1);o++)if(r.postBlank+=1,r.postBlank===af){r.postIndent=0;break}return r}function lf(e,t){e.preIndent===-1&&e.preBlank===0&&(t.penalty+=km),e.endOfFile&&(t.penalty+=Rm);let n=e.indent===-1?1+e.postBlank:0,r=e.preBlank+n;t.penalty+=xm*r,t.penalty+=Pm*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?Om:Cm:o===e.preIndent||(e.postIndent!==-1&&e.postIndent>o?t.penalty+=s?$m:Im:t.penalty+=s?Tm:Sm))}function Hm(e,t){let n=(e.effectiveIndent>t.effectiveIndent?1:0)-(e.effectiveIndent<t.effectiveIndent?1:0);return vm*n+(e.penalty-t.penalty)}function df(e,t,n,r,o,s){let i=0,a=0;for(;e[a];)a++;let c=0,f=0;for(;o[f];)f++;let l=(d,u)=>t[d]===t[u];for(;;){if(a!==i){let d,u,m;do{for(d=a-i,u=-1;i>0&&l(i-1,a-1);){for(e[--i]=1,e[--a]=0;e[i-1];)i--;if(c===0)break;for(f=c-1,c=f;o[c-1];c--);}for(m=a,f>c&&(u=a);!(a>=r||!l(i,a));){for(e[i++]=0,e[a++]=1;e[a];)a++;if(f>=s)break;for(c=f+1,f=c;o[f];f++);f>c&&(u=a)}}while(d!==a-i);if(a!==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-d-1>g&&(g=a-d-1),a-cf>g&&(g=a-cf);g<=a;g++){let w={effectiveIndent:0,penalty:0},y=ff(n,r,g);lf(y,w);let x=ff(n,r,g-d);lf(x,w),(h===-1||Hm(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 ji(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}=hm(e,t),{dstart:f,dend1:l,dend2:d}=pm(i,n,a,r);if(f>l)for(let u=f;u<r-(n-1-l);u++)s[u]=1;else if(f>d)for(let u=f;u<n-(r-1-d);u++)o[u]=1;else{let{refIndex1:u,nreff1:m,refIndex2:h,nreff2:p}=gm(i,n,a,r,c,f,l,d,o,s);if(m>0&&p>0){let g=new Array(m);for(let E=0;E<m;E++)g[E]=i[u[E]];let w=new Array(p);for(let E=0;E<p;E++)w[E]=a[h[E]];let y={},x={},b=m+p+3,k=Math.max(bm,Di(b));Mi(g,0,m,w,0,p,o,s,u,h,y,x,!1,k)}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;df(o,i,e,n,s,r),df(s,a,t,r,o,n)}}else n===0?s.fill(1):o.fill(1);return{changedOld:o,changedNew:s}}function st(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}=ji(e,t);return Em(e,t,o,s)}var Am=3;function Dm(e,t=Am){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),l=Math.min(e.length-1,c+t);f<=i+1||(o.push({start:s,end:i}),s=f),i=l}return o.push({start:s,end:i}),o.map(a=>Mm(e,a.start,a.end))}function Mm(e,t,n){let r=0,o=0,s=0,i=0,a=[],c=!1,f=!1;for(let l=t;l<=n;l++){let d=e[l];if(d)switch(d.type){case"keep":c||(r=d.oldLineNo,c=!0),f||(s=d.newLineNo,f=!0),o++,i++,a.push({type:"context",content:d.line});break;case"delete":c||(r=d.oldLineNo,c=!0),o++,a.push({type:"delete",content:d.line});break;case"insert":f||(s=d.newLineNo,f=!0),i++,a.push({type:"insert",content:d.line});break}}if(c||(r=s>0?s:1),f||(s=r>0?r:1),o===0)for(let l=t;l<=n;l++){let d=e[l];if(d&&d.type==="insert"){r=d.newLineNo>1?d.newLineNo-1:0;break}}if(i===0)for(let l=t;l<=n;l++){let d=e[l];if(d&&d.type==="delete"){s=d.oldLineNo>1?d.oldLineNo-1:0;break}}return{oldStart:r,oldCount:o,newStart:s,newCount:i,lines:a}}function po(e){return e?e.length<40?e:Y(e):"0000000"}function uf(e,t,n,r,o,s){let{path:i,oldMode:a,newMode:c}=t;e.push(`diff --git a/${i} b/${n}`),s?(e.push(`similarity index ${t.similarity??100}%`),e.push(`rename from ${i}`),e.push(`rename to ${n}`)):r?e.push(`new file mode ${c||"100644"}`):o?e.push(`deleted file mode ${a||"100644"}`):a&&c&&a!==c&&(e.push(`old mode ${a}`),e.push(`new mode ${c}`))}function jm(e,t,n){let{path:r,oldContent:o,newContent:s,oldMode:i,oldHash:a,newHash:c}=e,f=e.renameTo!==void 0,l=e.renameTo??r,d=e.isNew??o==="",u=e.isDeleted??s==="";if(o===s&&!f)return"";let m=[];if(uf(m,e,l,d,u,f),o!==s){if(a||c){let h=po(a),p=po(c);d||u||f?m.push(`index ${h}..${p}`):m.push(`index ${h}..${p} ${i||"100644"}`)}t&&n?m.push(`Binary files a/${r} and b/${l} differ`):d?m.push(`Binary files /dev/null and b/${l} differ`):u?m.push(`Binary files a/${r} and /dev/null differ`):m.push(`Binary files a/${r} and b/${l} differ`)}return`${m.join(`
194
194
  `)}
195
- `}function Ct(e){let{path:t,oldContent:n,newContent:r,oldMode:o,newMode:s,oldHash:i,newHash:a}=e,c=e.renameTo!==void 0,f=e.renameTo??t,l=Se(n),d=Se(r);if(l||d)return Mm(e,l,d);let u=Lt(n),m=Lt(r),h=n.length>0&&n.endsWith(`
195
+ `}function Pt(e){let{path:t,oldContent:n,newContent:r,oldMode:o,newMode:s,oldHash:i,newHash:a}=e,c=e.renameTo!==void 0,f=e.renameTo??t,l=$e(n),d=$e(r);if(l||d)return jm(e,l,d);let u=Lt(n),m=Lt(r),h=n.length>0&&n.endsWith(`
196
196
  `),p=r.length>0&&r.endsWith(`
197
- `),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 x=st(w,y);if(!h||!p)for(let D of x)D.line.includes(g)&&(D.line=D.line.replace(g,""));let b=Am(x);if(b.length===0&&!c)return"";let k=e.isNew??n==="",E=e.isDeleted??r==="",R=[];if(mf(R,e,f,k,E,c),b.length===0)return`${R.join(`
197
+ `),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 x=st(w,y);if(!h||!p)for(let D of x)D.line.includes(g)&&(D.line=D.line.replace(g,""));let b=Dm(x);if(b.length===0&&!c)return"";let k=e.isNew??n==="",E=e.isDeleted??r==="",R=[];if(uf(R,e,f,k,E,c),b.length===0)return`${R.join(`
198
198
  `)}
199
- `;if(i||a){let D=po(i),O=po(a);k||E?R.push(`index ${D}..${O}`):c?R.push(`index ${D}..${O} ${o||"100644"}`):o&&s&&o!==s?R.push(`index ${D}..${O}`):R.push(`index ${D}..${O} ${o||"100644"}`)}let P=D=>D.includes(" ")?" ":"";k?(R.push("--- /dev/null"),R.push(`+++ b/${f}${P(f)}`)):E?(R.push(`--- a/${t}${P(t)}`),R.push("+++ /dev/null")):(R.push(`--- a/${t}${P(t)}`),R.push(`+++ b/${f}${P(f)}`));let C=u.length,v=m.length;for(let D of b){let O=D.oldCount===1?`${D.oldStart}`:`${D.oldStart},${D.oldCount}`,H=D.newCount===1?`${D.newStart}`:`${D.newStart},${D.newCount}`,G="";for(let N=D.oldStart-2;N>=0;N--){let B=u[N];if(B&&/^[a-zA-Z$_]/.test(B)){G=` ${B.trimEnd().slice(0,79)}`;break}}R.push(`@@ -${O} +${H} @@${G}`);let A=D.oldStart,$=D.newStart;for(let N of D.lines)switch(N.type){case"context":R.push(` ${N.content}`),(!h&&A===C||!p&&$===v)&&R.push("\"),A++,$++;break;case"delete":R.push(`-${N.content}`),!h&&A===C&&R.push("\"),A++;break;case"insert":R.push(`+${N.content}`),!p&&$===v&&R.push("\"),$++;break}}return`${R.join(`
199
+ `;if(i||a){let D=po(i),O=po(a);k||E?R.push(`index ${D}..${O}`):c?R.push(`index ${D}..${O} ${o||"100644"}`):o&&s&&o!==s?R.push(`index ${D}..${O}`):R.push(`index ${D}..${O} ${o||"100644"}`)}let C=D=>D.includes(" ")?" ":"";k?(R.push("--- /dev/null"),R.push(`+++ b/${f}${C(f)}`)):E?(R.push(`--- a/${t}${C(t)}`),R.push("+++ /dev/null")):(R.push(`--- a/${t}${C(t)}`),R.push(`+++ b/${f}${C(f)}`));let P=u.length,v=m.length;for(let D of b){let O=D.oldCount===1?`${D.oldStart}`:`${D.oldStart},${D.oldCount}`,H=D.newCount===1?`${D.newStart}`:`${D.newStart},${D.newCount}`,G="";for(let N=D.oldStart-2;N>=0;N--){let B=u[N];if(B&&/^[a-zA-Z$_]/.test(B)){G=` ${B.trimEnd().slice(0,79)}`;break}}R.push(`@@ -${O} +${H} @@${G}`);let A=D.oldStart,S=D.newStart;for(let N of D.lines)switch(N.type){case"context":R.push(` ${N.content}`),(!h&&A===P||!p&&S===v)&&R.push("\"),A++,S++;break;case"delete":R.push(`-${N.content}`),!h&&A===P&&R.push("\"),A++;break;case"insert":R.push(`+${N.content}`),!p&&S===v&&R.push("\"),S++;break}}return`${R.join(`
200
200
  `)}
201
- `}ie();ve();async function _n(e,t,n){return(await ce(e,t)).get(n)?.hash??null}async function hf(e,t,n,r){let o=await We(e,t,n);if(!o.find(c=>c.status==="added"&&c.path===r))return null;let{renames:i}=await nt(e,o);return i.find(c=>c.newPath===r)?.oldPath??null}async function jm(e,t,n,r,o,s){let i=await _n(e,(await j(e,t)).tree,n);if(!i){let p=new Map,g=await j(e,t);for(let w of r)p.set(w.finalIdx,Nn(t,n,w.currentLine,s+w.finalIdx,o[w.finalIdx],g,!1,void 0));return p}let a=await oe(e,i),c=Lt(a),f=new Array(o.length),l=[...r],d=t,u=n,m=c;for(;l.length>0;){let p=await j(e,d);if(p.parents.length===0){for(let C of l)f[C.finalIdx]=Nn(d,u,C.currentLine,s+C.finalIdx,o[C.finalIdx],p,!0,void 0);break}let g=await _n(e,p.tree,u),w=null,y=[];for(let C of p.parents){let v=await j(e,C),D=u,O=await _n(e,v.tree,D);if(!O){let H=await hf(e,v.tree,p.tree,u);H&&(D=H,O=await _n(e,v.tree,D))}if(O&&(y.push({hash:C,path:D,blobHash:O}),O===g)){w={hash:C,path:D};break}}if(w){d=w.hash,u=w.path;continue}if(y.length===0){for(let C of l)f[C.finalIdx]=Nn(d,u,C.currentLine,s+C.finalIdx,o[C.finalIdx],p,!1,void 0);break}let x=y[0],b=await oe(e,x.blobHash),k=Lt(b),E=st(k,m),R=new Map;for(let C of E)C.type==="keep"&&R.set(C.newLineNo,C.oldLineNo);let P=[];for(let C of l){let v=R.get(C.currentLine);v!==void 0?P.push({finalIdx:C.finalIdx,currentLine:v}):f[C.finalIdx]=Nn(d,u,C.currentLine,s+C.finalIdx,o[C.finalIdx],p,!1,{hash:x.hash,path:x.path})}l=P,d=x.hash,u=x.path,m=k}let h=new Map;for(let p of r)f[p.finalIdx]&&h.set(p.finalIdx,f[p.finalIdx]);return h}async function pf(e,t,n,r){let o=await j(e,t),s=await _n(e,o.tree,n);if(!s)throw new Error(`no such path '${n}' in ${t.slice(0,7)}`);let i=await oe(e,s),a=Lt(i),c=r?.startLine??1,f=r?.endLine??a.length,l=a.slice(c-1,f),d=new Array(l.length),u=l.map((g,w)=>({finalIdx:w,currentLine:c+w})),m=t,h=n,p=a;for(;u.length>0;){let g=await j(e,m);if(g.parents.length===0){for(let R of u)d[R.finalIdx]=Nn(m,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!0,void 0);break}let w=await _n(e,g.tree,h),y=[],x=null;for(let R of g.parents){let P=await j(e,R),C=h,v=await _n(e,P.tree,C);if(!v){let D=await hf(e,P.tree,g.tree,h);D&&(C=D,v=await _n(e,P.tree,C))}if(v){let D={hash:R,path:C,blobHash:v};if(y.push(D),v===w){x=D;break}}}if(x){m=x.hash,h=x.path;continue}if(y.length===0){for(let R of u)d[R.finalIdx]=Nn(m,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!1,void 0);break}if(y.length===1){let R=y[0],P=await oe(e,R.blobHash),C=Lt(P),v=st(C,p),D=new Map;for(let H of v)H.type==="keep"&&D.set(H.newLineNo,H.oldLineNo);let O=[];for(let H of u){let G=D.get(H.currentLine);G!==void 0?O.push({finalIdx:H.finalIdx,currentLine:G}):d[H.finalIdx]=Nn(m,h,H.currentLine,c+H.finalIdx,l[H.finalIdx],g,!1,{hash:R.hash,path:R.path})}u=O,m=R.hash,h=R.path,p=C;continue}let b=[];for(let R of y){let P=await oe(e,R.blobHash),C=Lt(P),v=st(C,p),D=new Map;for(let O of v)O.type==="keep"&&D.set(O.newLineNo,O.oldLineNo);b.push({info:R,newToOld:D})}let k=new Map;for(let R of u){let P=!1;for(let C=0;C<b.length;C++){let v=b[C],D=v.newToOld.get(R.currentLine);if(D!==void 0){let O=k.get(C);O||(O={info:v.info,lines:[]},k.set(C,O)),O.lines.push({finalIdx:R.finalIdx,currentLine:D}),P=!0;break}}P||(d[R.finalIdx]=Nn(m,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!1,{hash:y[0].hash,path:y[0].path}))}let E=k.get(0);for(let[R,P]of k){if(R===0)continue;let C=await jm(e,P.info.hash,P.info.path,P.lines,l,c);for(let[v,D]of C)d[v]=D}if(E&&E.lines.length>0){u=E.lines,m=E.info.hash,h=E.info.path;let R=await oe(e,E.info.blobHash);p=Lt(R)}else break}return d}function Nn(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(`
202
- `)[0],boundary:i,previous:a}}se();ie();ve();ie();le();function Gm(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 Lm(e,t){let n=Gm(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 _m(e,t,n,r,o){if(e.length===0)return"";let s=Math.max(...e.map(d=>d.finalLine)),i=String(s).length,a=e.some(d=>d.origPath!==t),c=0;if(!o)for(let d of e){let u=r?`<${d.author.email}>`:d.author.name;u.length>c&&(c=u.length)}let f=0;if(a)for(let d of e)d.origPath.length>f&&(f=d.origPath.length);let l=[];for(let d of e){let u;n?u=d.boundary?`^${d.hash.slice(0,39)}`:d.hash:u=d.boundary?`^${d.hash.slice(0,7)}`:d.hash.slice(0,8);let m=a?` ${d.origPath.padEnd(f)}`:"";if(o)l.push(`${u}${m} ${String(d.finalLine).padStart(i)}) ${d.content}`);else{let h=r?`<${d.author.email}>`:d.author.name,p=Lm(d.author.timestamp,d.author.timezone);l.push(`${u}${m} (${h.padEnd(c)} ${p} ${String(d.finalLine).padStart(i)}) ${d.content}`)}}return`${l.join(`
201
+ `}ie();ve();async function _n(e,t,n){return(await ce(e,t)).get(n)?.hash??null}async function mf(e,t,n,r){let o=await We(e,t,n);if(!o.find(c=>c.status==="added"&&c.path===r))return null;let{renames:i}=await nt(e,o);return i.find(c=>c.newPath===r)?.oldPath??null}async function Gm(e,t,n,r,o,s){let i=await _n(e,(await j(e,t)).tree,n);if(!i){let p=new Map,g=await j(e,t);for(let w of r)p.set(w.finalIdx,Nn(t,n,w.currentLine,s+w.finalIdx,o[w.finalIdx],g,!1,void 0));return p}let a=await oe(e,i),c=Lt(a),f=new Array(o.length),l=[...r],d=t,u=n,m=c;for(;l.length>0;){let p=await j(e,d);if(p.parents.length===0){for(let P of l)f[P.finalIdx]=Nn(d,u,P.currentLine,s+P.finalIdx,o[P.finalIdx],p,!0,void 0);break}let g=await _n(e,p.tree,u),w=null,y=[];for(let P of p.parents){let v=await j(e,P),D=u,O=await _n(e,v.tree,D);if(!O){let H=await mf(e,v.tree,p.tree,u);H&&(D=H,O=await _n(e,v.tree,D))}if(O&&(y.push({hash:P,path:D,blobHash:O}),O===g)){w={hash:P,path:D};break}}if(w){d=w.hash,u=w.path;continue}if(y.length===0){for(let P of l)f[P.finalIdx]=Nn(d,u,P.currentLine,s+P.finalIdx,o[P.finalIdx],p,!1,void 0);break}let x=y[0],b=await oe(e,x.blobHash),k=Lt(b),E=st(k,m),R=new Map;for(let P of E)P.type==="keep"&&R.set(P.newLineNo,P.oldLineNo);let C=[];for(let P of l){let v=R.get(P.currentLine);v!==void 0?C.push({finalIdx:P.finalIdx,currentLine:v}):f[P.finalIdx]=Nn(d,u,P.currentLine,s+P.finalIdx,o[P.finalIdx],p,!1,{hash:x.hash,path:x.path})}l=C,d=x.hash,u=x.path,m=k}let h=new Map;for(let p of r)f[p.finalIdx]&&h.set(p.finalIdx,f[p.finalIdx]);return h}async function hf(e,t,n,r){let o=await j(e,t),s=await _n(e,o.tree,n);if(!s)throw new Error(`no such path '${n}' in ${t.slice(0,7)}`);let i=await oe(e,s),a=Lt(i),c=r?.startLine??1,f=r?.endLine??a.length,l=a.slice(c-1,f),d=new Array(l.length),u=l.map((g,w)=>({finalIdx:w,currentLine:c+w})),m=t,h=n,p=a;for(;u.length>0;){let g=await j(e,m);if(g.parents.length===0){for(let R of u)d[R.finalIdx]=Nn(m,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!0,void 0);break}let w=await _n(e,g.tree,h),y=[],x=null;for(let R of g.parents){let C=await j(e,R),P=h,v=await _n(e,C.tree,P);if(!v){let D=await mf(e,C.tree,g.tree,h);D&&(P=D,v=await _n(e,C.tree,P))}if(v){let D={hash:R,path:P,blobHash:v};if(y.push(D),v===w){x=D;break}}}if(x){m=x.hash,h=x.path;continue}if(y.length===0){for(let R of u)d[R.finalIdx]=Nn(m,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!1,void 0);break}if(y.length===1){let R=y[0],C=await oe(e,R.blobHash),P=Lt(C),v=st(P,p),D=new Map;for(let H of v)H.type==="keep"&&D.set(H.newLineNo,H.oldLineNo);let O=[];for(let H of u){let G=D.get(H.currentLine);G!==void 0?O.push({finalIdx:H.finalIdx,currentLine:G}):d[H.finalIdx]=Nn(m,h,H.currentLine,c+H.finalIdx,l[H.finalIdx],g,!1,{hash:R.hash,path:R.path})}u=O,m=R.hash,h=R.path,p=P;continue}let b=[];for(let R of y){let C=await oe(e,R.blobHash),P=Lt(C),v=st(P,p),D=new Map;for(let O of v)O.type==="keep"&&D.set(O.newLineNo,O.oldLineNo);b.push({info:R,newToOld:D})}let k=new Map;for(let R of u){let C=!1;for(let P=0;P<b.length;P++){let v=b[P],D=v.newToOld.get(R.currentLine);if(D!==void 0){let O=k.get(P);O||(O={info:v.info,lines:[]},k.set(P,O)),O.lines.push({finalIdx:R.finalIdx,currentLine:D}),C=!0;break}}C||(d[R.finalIdx]=Nn(m,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!1,{hash:y[0].hash,path:y[0].path}))}let E=k.get(0);for(let[R,C]of k){if(R===0)continue;let P=await Gm(e,C.info.hash,C.info.path,C.lines,l,c);for(let[v,D]of P)d[v]=D}if(E&&E.lines.length>0){u=E.lines,m=E.info.hash,h=E.info.path;let R=await oe(e,E.info.blobHash);p=Lt(R)}else break}return d}function Nn(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(`
202
+ `)[0],boundary:i,previous:a}}se();ie();ve();ie();le();function Lm(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 _m(e,t){let n=Lm(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 Nm(e,t,n,r,o){if(e.length===0)return"";let s=Math.max(...e.map(d=>d.finalLine)),i=String(s).length,a=e.some(d=>d.origPath!==t),c=0;if(!o)for(let d of e){let u=r?`<${d.author.email}>`:d.author.name;u.length>c&&(c=u.length)}let f=0;if(a)for(let d of e)d.origPath.length>f&&(f=d.origPath.length);let l=[];for(let d of e){let u;n?u=d.boundary?`^${d.hash.slice(0,39)}`:d.hash:u=d.boundary?`^${d.hash.slice(0,7)}`:d.hash.slice(0,8);let m=a?` ${d.origPath.padEnd(f)}`:"";if(o)l.push(`${u}${m} ${String(d.finalLine).padStart(i)}) ${d.content}`);else{let h=r?`<${d.author.email}>`:d.author.name,p=_m(d.author.timestamp,d.author.timezone);l.push(`${u}${m} (${h.padEnd(c)} ${p} ${String(d.finalLine).padStart(i)}) ${d.content}`)}}return`${l.join(`
203
203
  `)}
204
- `}function Nm(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(`
204
+ `}function Fm(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(`
205
205
  `)}
206
- `}function Fm(e,t,n){if(e.startsWith("/"))return ft(n,e);let r=ft(n,t);return r===""||r==="."?e:`${r}/${e}`}function gf(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:J.string().alias("L").describe("Annotate only the given line range (<start>,<end>)"),long:S().alias("l").describe("Show long revision"),showEmail:S().alias("e").describe("Show author email instead of name"),suppress:S().alias("s").describe("Suppress author name and date"),porcelain:S().alias("p").describe("Show in machine-readable format"),linePorcelain:S().describe("Show porcelain format with full headers for each line")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s;if(!i.workTree)return I("this operation must be run in a work tree");let a=await Ze(i);if(M(a))return a;let c=n.args??[],f=o.passthrough??[],l=null,d=null;if(f.length>0?(d=f[f.length-1],c.length>0&&(l=c[0])):c.length===2?(l=c[0],d=c[1]):c.length===1&&(d=c[0]),!d)return I("no file specified");let u=Fm(d,r.cwd,i.workTree),m;if(l){let E=await vt(i,l);if(M(E))return E;m=await _e(i,E)}else m=a;let h=await j(i,m),p=await ce(i,h.tree);if(!p.has(u))return I(`no such path ${u} in ${l??"HEAD"}`);let g=p.get(u).hash,w=await oe(i,g);if(Se(w))return I(`cannot blame binary file '${u}'`);let y,x;if(n.lineRange){let E=n.lineRange,R=E.match(/^(\d+),(\d+)$/);if(R)y=parseInt(R[1],10),x=parseInt(R[2],10);else return I(`invalid -L range: '${E}'`)}let b;try{b=await pf(i,m,u,{startLine:y,endLine:x})}catch(E){let R=E instanceof Error?E.message:String(E);return I(R)}let k;return n.porcelain||n.linePorcelain?k=Nm(b,!!n.linePorcelain):k=_m(b,u,!!n.long,!!n.showEmail,!!n.suppress),{stdout:k,stderr:"",exitCode:0}}})}se();Ne();Cn();se();var Um=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Bm=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function _t(e,t){let n=Wm(t),r=new Date((e+n*60)*1e3),o=Um[r.getUTCDay()],s=Bm[r.getUTCMonth()],i=r.getUTCDate(),a=r.getUTCHours().toString().padStart(2,"0"),c=r.getUTCMinutes().toString().padStart(2,"0"),f=r.getUTCSeconds().toString().padStart(2,"0"),l=r.getUTCFullYear();return`${o} ${s} ${i} ${a}:${c}:${f} ${l} ${t}`}function Gi(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 Wm(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();ve();var go=new TextDecoder;function wf(e){if(e.length===0)return 0;let t=0;for(let n=0;n<e.length;n++)e[n]===`
206
+ `}function Um(e,t,n){if(e.startsWith("/"))return ft(n,e);let r=ft(n,t);return r===""||r==="."?e:`${r}/${e}`}function pf(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:J.string().alias("L").describe("Annotate only the given line range (<start>,<end>)"),long:$().alias("l").describe("Show long revision"),showEmail:$().alias("e").describe("Show author email instead of name"),suppress:$().alias("s").describe("Suppress author name and date"),porcelain:$().alias("p").describe("Show in machine-readable format"),linePorcelain:$().describe("Show porcelain format with full headers for each line")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s;if(!i.workTree)return I("this operation must be run in a work tree");let a=await Ze(i);if(M(a))return a;let c=n.args??[],f=o.passthrough??[],l=null,d=null;if(f.length>0?(d=f[f.length-1],c.length>0&&(l=c[0])):c.length===2?(l=c[0],d=c[1]):c.length===1&&(d=c[0]),!d)return I("no file specified");let u=Um(d,r.cwd,i.workTree),m;if(l){let E=await vt(i,l);if(M(E))return E;m=await _e(i,E)}else m=a;let h=await j(i,m),p=await ce(i,h.tree);if(!p.has(u))return I(`no such path ${u} in ${l??"HEAD"}`);let g=p.get(u).hash,w=await oe(i,g);if($e(w))return I(`cannot blame binary file '${u}'`);let y,x;if(n.lineRange){let E=n.lineRange,R=E.match(/^(\d+),(\d+)$/);if(R)y=parseInt(R[1],10),x=parseInt(R[2],10);else return I(`invalid -L range: '${E}'`)}let b;try{b=await hf(i,m,u,{startLine:y,endLine:x})}catch(E){let R=E instanceof Error?E.message:String(E);return I(R)}let k;return n.porcelain||n.linePorcelain?k=Fm(b,!!n.linePorcelain):k=Nm(b,u,!!n.long,!!n.showEmail,!!n.suppress),{stdout:k,stderr:"",exitCode:0}}})}se();Ne();Pn();se();var Bm=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Wm=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function _t(e,t){let n=qm(t),r=new Date((e+n*60)*1e3),o=Bm[r.getUTCDay()],s=Wm[r.getUTCMonth()],i=r.getUTCDate(),a=r.getUTCHours().toString().padStart(2,"0"),c=r.getUTCMinutes().toString().padStart(2,"0"),f=r.getUTCSeconds().toString().padStart(2,"0"),l=r.getUTCFullYear();return`${o} ${s} ${i} ${a}:${c}:${f} ${l} ${t}`}function Gi(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 qm(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();ve();var go=new TextDecoder;function gf(e){if(e.length===0)return 0;let t=0;for(let n=0;n<e.length;n++)e[n]===`
207
207
  `&&t++;return e[e.length-1]!==`
208
- `&&t++,t}function Fn(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 Un(e,t,n){let r=[],o=[],s=[];for(let a of t)if(a.status==="added"&&a.newHash&&a.newMode){let c=await kt(e,a.newHash);On(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:wf(go.decode(c)),deletions:0}),o.push({path:a.path,mode:a.newMode})}else if(a.status==="deleted"&&a.oldHash&&a.oldMode){let c=await kt(e,a.oldHash);On(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:wf(go.decode(c))}),s.push({path:a.path,mode:a.oldMode})}else if(a.status==="modified"&&a.oldHash&&a.newHash){let c=await kt(e,a.oldHash),f=await kt(e,a.newHash);if(On(c)||On(f))r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:f.byteLength});else{let l=wt(go.decode(c)),d=wt(go.decode(f)),u=st(l,d),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,l=0;if(a.similarity<100&&a.oldHash&&a.newHash){let d=await oe(e,a.oldHash),u=await oe(e,a.newHash);if(!Se(d)&&!Se(u)){let m=wt(d),h=wt(u),p=st(m,h);for(let g of p)g.type==="insert"?f++:g.type==="delete"&&l++}}r.push({path:c,sortKey:a.newPath,insertions:f,deletions:l})}let i=[];for(let{path:a,mode:c}of o)i.push({sortKey:a,text:` create mode ${c} ${a}`});for(let{path:a,mode:c}of s)i.push({sortKey:a,text:` delete mode ${c} ${a}`});for(let a of n){let c=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 fn(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: ${_t(r.timestamp,r.timezone)}`),i)return a.join(`
208
+ `&&t++,t}function Fn(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 Un(e,t,n){let r=[],o=[],s=[];for(let a of t)if(a.status==="added"&&a.newHash&&a.newMode){let c=await kt(e,a.newHash);On(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:gf(go.decode(c)),deletions:0}),o.push({path:a.path,mode:a.newMode})}else if(a.status==="deleted"&&a.oldHash&&a.oldMode){let c=await kt(e,a.oldHash);On(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:gf(go.decode(c))}),s.push({path:a.path,mode:a.oldMode})}else if(a.status==="modified"&&a.oldHash&&a.newHash){let c=await kt(e,a.oldHash),f=await kt(e,a.newHash);if(On(c)||On(f))r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:f.byteLength});else{let l=bt(go.decode(c)),d=bt(go.decode(f)),u=st(l,d),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,l=0;if(a.similarity<100&&a.oldHash&&a.newHash){let d=await oe(e,a.oldHash),u=await oe(e,a.newHash);if(!$e(d)&&!$e(u)){let m=bt(d),h=bt(u),p=st(m,h);for(let g of p)g.type==="insert"?f++:g.type==="delete"&&l++}}r.push({path:c,sortKey:a.newPath,insertions:f,deletions:l})}let i=[];for(let{path:a,mode:c}of o)i.push({sortKey:a,text:` create mode ${c} ${a}`});for(let{path:a,mode:c}of s)i.push({sortKey:a,text:` delete mode ${c} ${a}`});for(let a of n){let c=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 fn(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: ${_t(r.timestamp,r.timezone)}`),i)return a.join(`
209
209
  `)+(a.length>0?`
210
210
  `:"");let c=await We(e,t,n),{remaining:f,renames:l}=await nt(e,c),{fileStats:d,modeLines:u}=await Un(e,f,l),m=0,h=0;for(let g of d)m+=g.insertions,h+=g.deletions;let p=Fn(d.length,m,h);p&&a.push(p);for(let g of u)a.push(g);return a.join(`
211
211
  `)+(a.length>0?`
212
- `:"")}var qm=80;function zm(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 cr(e,t=qm){if(e.length===0)return"";let n=e.filter(p=>!p.isUnmerged),r=n.length>0?Math.max(...n.map(p=>p.insertions+p.deletions)):0,o=e.some(p=>p.isBinary),s=r>0?String(r).length:1;o&&s<3&&(s=3);let i=Math.max(...e.map(p=>p.path.length)),a=r,c=i;if(c+s+6+a>t){let p=Math.floor(t*3/8)-s-6;a>p&&(a=Math.max(p,6));let g=t-s-6-a;c>g?c=g:a=t-s-6-c}for(let p of e)p.path=zm(p.path,c);let f=c,l=[],d=0,u=0,m=0;for(let p of e){let g=p.path.padEnd(f);if(p.isUnmerged){l.push(` ${g} | Unmerged`);continue}if(m++,d+=p.insertions,u+=p.deletions,p.isBinary){let P=`${"Bin".padStart(s)} ${p.oldSize??0} -> ${p.newSize??0} bytes`;l.push(` ${g} | ${P}`);continue}let w=p.insertions+p.deletions,y=String(w).padStart(s),x,b;if(r<=a)x=p.insertions,b=p.deletions;else{let R=v=>v===0?0:1+Math.floor(v*(a-1)/r),P=R(w),C=P<2&&p.insertions>0&&p.deletions>0?2:P;p.insertions<p.deletions?(x=R(p.insertions),b=C-x):(b=R(p.deletions),x=C-b)}let k="+".repeat(x)+"-".repeat(b),E=k?` ${k}`:"";l.push(` ${g} | ${y}${E}`)}let h=Fn(m,d,u);return h?l.push(h):e.some(p=>p.isUnmerged)&&l.push(" 0 files changed"),`${l.join(`
212
+ `:"")}var zm=80;function Km(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 cr(e,t=zm){if(e.length===0)return"";let n=e.filter(p=>!p.isUnmerged),r=n.length>0?Math.max(...n.map(p=>p.insertions+p.deletions)):0,o=e.some(p=>p.isBinary),s=r>0?String(r).length:1;o&&s<3&&(s=3);let i=Math.max(...e.map(p=>p.path.length)),a=r,c=i;if(c+s+6+a>t){let p=Math.floor(t*3/8)-s-6;a>p&&(a=Math.max(p,6));let g=t-s-6-a;c>g?c=g:a=t-s-6-c}for(let p of e)p.path=Km(p.path,c);let f=c,l=[],d=0,u=0,m=0;for(let p of e){let g=p.path.padEnd(f);if(p.isUnmerged){l.push(` ${g} | Unmerged`);continue}if(m++,d+=p.insertions,u+=p.deletions,p.isBinary){let C=`${"Bin".padStart(s)} ${p.oldSize??0} -> ${p.newSize??0} bytes`;l.push(` ${g} | ${C}`);continue}let w=p.insertions+p.deletions,y=String(w).padStart(s),x,b;if(r<=a)x=p.insertions,b=p.deletions;else{let R=v=>v===0?0:1+Math.floor(v*(a-1)/r),C=R(w),P=C<2&&p.insertions>0&&p.deletions>0?2:C;p.insertions<p.deletions?(x=R(p.insertions),b=P-x):(b=R(p.deletions),x=P-b)}let k="+".repeat(x)+"-".repeat(b),E=k?` ${k}`:"";l.push(` ${g} | ${y}${E}`)}let h=Fn(m,d,u);return h?l.push(h):e.some(p=>p.isUnmerged)&&l.push(" 0 files changed"),`${l.join(`
213
213
  `)}
214
214
  `}async function Bn(e,t,n){let r=await We(e,t,n),{remaining:o,renames:s}=await nt(e,r);if(o.length===0&&s.length===0)return"";let{fileStats:i,modeLines:a}=await Un(e,o,s);i.sort((f,l)=>f.sortKey<l.sortKey?-1:f.sortKey>l.sortKey?1:0);let c=cr(i);for(let f of a)c+=`${f}
215
- `;return c}Ne();Pe();ie();ue();sn();async function Km(e,t){let n=new Set,r=[t],o=0;for(;o<r.length;){let s=r[o++];if(n.has(s))continue;n.add(s);let i;try{i=await j(e,s)}catch{continue}for(let a of i.parents)n.has(a)||r.push(a)}return n}async function En(e,t,n){if(t===n)return!0;let r=new Set,o=[n],s=0;for(;s<o.length;){let i=o[s++];if(i===t)return!0;if(r.has(i))continue;r.add(i);let a;try{a=await j(e,i)}catch{continue}for(let c of a.parents)r.has(c)||o.push(c)}return!1}async function Nt(e,t,n){if(t===n)return[t];let r=await Km(e,t),o=[],s=new Set,i=[n],a=0;for(;a<i.length;){let f=i[a++];if(s.has(f))continue;if(s.add(f),r.has(f)){o.push(f);continue}let l;try{l=await j(e,f)}catch{continue}for(let d of l.parents)s.has(d)||i.push(d)}if(o.length<=1)return o;let c=[];for(let f of o){let l=!1;for(let d of o)if(d!==f&&await En(e,f,d)){l=!0;break}l||c.push(f)}return c.length<=1?c:Vm(e,t,n,c)}async function Vm(e,t,n,r){let o=new Set(r),s=new Set,i=[],a=new Map,c=new Map,f=0,l=[{hash:t,mask:1,seq:f++},{hash:n,mask:2,seq:f++}];async function d(u){let m=c.get(u);if(m!==void 0)return m;let h=(await j(e,u)).committer.timestamp;return c.set(u,h),h}for(;l.length>0;){let u=0,m=await d(l[0].hash);for(let y=1;y<l.length;y++){let x=l[y],b=await d(x.hash),k=l[u];(b>m||b===m&&x.seq<k.seq)&&(u=y,m=b)}let h=l.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 j(e,h.hash);for(let y of w.parents)l.push({hash:y,mask:g,seq:f++})}for(let u of r)s.has(u)||i.push(u);return i}async function fr(e,t,n){let r=await ke(e,"init.defaultBranch")??"main";return n===r?`Merge branch '${t}'
215
+ `;return c}Ne();Ce();ie();ue();sn();async function Vm(e,t){let n=new Set,r=[t],o=0;for(;o<r.length;){let s=r[o++];if(n.has(s))continue;n.add(s);let i;try{i=await j(e,s)}catch{continue}for(let a of i.parents)n.has(a)||r.push(a)}return n}async function En(e,t,n){if(t===n)return!0;let r=new Set,o=[n],s=0;for(;s<o.length;){let i=o[s++];if(i===t)return!0;if(r.has(i))continue;r.add(i);let a;try{a=await j(e,i)}catch{continue}for(let c of a.parents)r.has(c)||o.push(c)}return!1}async function Nt(e,t,n){if(t===n)return[t];let r=await Vm(e,t),o=[],s=new Set,i=[n],a=0;for(;a<i.length;){let f=i[a++];if(s.has(f))continue;if(s.add(f),r.has(f)){o.push(f);continue}let l;try{l=await j(e,f)}catch{continue}for(let d of l.parents)s.has(d)||i.push(d)}if(o.length<=1)return o;let c=[];for(let f of o){let l=!1;for(let d of o)if(d!==f&&await En(e,f,d)){l=!0;break}l||c.push(f)}return c.length<=1?c:Ym(e,t,n,c)}async function Ym(e,t,n,r){let o=new Set(r),s=new Set,i=[],a=new Map,c=new Map,f=0,l=[{hash:t,mask:1,seq:f++},{hash:n,mask:2,seq:f++}];async function d(u){let m=c.get(u);if(m!==void 0)return m;let h=(await j(e,u)).committer.timestamp;return c.set(u,h),h}for(;l.length>0;){let u=0,m=await d(l[0].hash);for(let y=1;y<l.length;y++){let x=l[y],b=await d(x.hash),k=l[u];(b>m||b===m&&x.seq<k.seq)&&(u=y,m=b)}let h=l.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 j(e,h.hash);for(let y of w.parents)l.push({hash:y,mask:g,seq:f++})}for(let u of r)s.has(u)||i.push(u);return i}async function fr(e,t,n){let r=await ke(e,"init.defaultBranch")??"main";return n===r?`Merge branch '${t}'
216
216
  `:`Merge branch '${t}' into ${n}
217
217
  `}async function wo(e,t,n){let r=await j(e,t),o=await j(e,n),s=Y(t),i=Y(n),a=`Updating ${s}..${i}
218
- `;if(e.workTree){let f=await K(e),l=await Hc(e,r.tree,o.tree,f);if(!l.success){let d=l.errorOutput;return{stdout:a+d.stdout,stderr:d.stderr,exitCode:d.exitCode}}await ae(e,{version:2,entries:l.newEntries}),await De(e,l.worktreeOps)}await Sn(e,n);let c=await Bn(e,r.tree,o.tree);return{stdout:`${a}Fast-forward
219
- ${c}`,stderr:"",exitCode:0}}ie();Fe();ue();function bf(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:S().alias("d").describe("Delete a branch"),forceDelete:S().alias("D").describe("Force delete a branch"),move:S().alias("m").describe("Rename a branch"),forceMove:S().alias("M").describe("Force rename a branch"),remotes:S().alias("r").describe("List remote-tracking branches"),all:S().alias("a").describe("List all branches"),setUpstreamTo:J.string().alias("u").describe("Set upstream tracking branch"),verbose:S().alias("v").count().describe("Show hash and subject")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await Q(s),a=i?.type==="symbolic"?Re(i.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(!a)return I("not on any branch");w=a,y=n.name}else return I("branch name required");let x=`refs/heads/${w}`,b=`refs/heads/${y}`,k=await F(s,x);if(!k)return I(`no branch named '${w}'`);if(await Gt(s)&&(await pt(s))?.headName===x)return I(`branch ${x} is being rebased at ${s.workTree}`);let E=await F(s,b);if(E&&!c)return I(`a branch named '${y}' already exists`);E&&await de(s,b);let R=await Je(s,x);await X(s,b,k),await de(s,x),w===a&&await ze(s,"HEAD",b),R.length>0&&await Tn(s,b,R);let P=`Branch: renamed ${x} to ${b}`;if(await re(s,r.env,b,k,k,P),w===a){let D=await Jt(s,r.env);await Ke(s,"HEAD",{oldHash:k,newHash:te,...D,message:P}),await Ke(s,"HEAD",{oldHash:te,newHash:k,...D,message:P})}let C=await he(s),v=`branch "${w}"`;return C[v]&&(C[`branch "${y}"`]=C[v],delete C[v],await Ye(s,C)),{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 Gt(s)&&(await pt(s))?.headName===`refs/heads/${n.name}`&&(w=!0),w)return L(`error: cannot delete branch '${n.name}' used by worktree at '${s.workTree}'
218
+ `;if(e.workTree){let f=await K(e),l=await vc(e,r.tree,o.tree,f);if(!l.success){let d=l.errorOutput;return{stdout:a+d.stdout,stderr:d.stderr,exitCode:d.exitCode}}await ae(e,{version:2,entries:l.newEntries}),await Me(e,l.worktreeOps)}await $n(e,n);let c=await Bn(e,r.tree,o.tree);return{stdout:`${a}Fast-forward
219
+ ${c}`,stderr:"",exitCode:0}}ie();Fe();ue();function wf(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:$().alias("d").describe("Delete a branch"),forceDelete:$().alias("D").describe("Force delete a branch"),move:$().alias("m").describe("Rename a branch"),forceMove:$().alias("M").describe("Force rename a branch"),remotes:$().alias("r").describe("List remote-tracking branches"),all:$().alias("a").describe("List all branches"),setUpstreamTo:J.string().alias("u").describe("Set upstream tracking branch"),verbose:$().alias("v").count().describe("Show hash and subject")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await Q(s),a=i?.type==="symbolic"?Re(i.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(!a)return I("not on any branch");w=a,y=n.name}else return I("branch name required");let x=`refs/heads/${w}`,b=`refs/heads/${y}`,k=await F(s,x);if(!k)return I(`no branch named '${w}'`);if(await Gt(s)&&(await gt(s))?.headName===x)return I(`branch ${x} is being rebased at ${s.workTree}`);let E=await F(s,b);if(E&&!c)return I(`a branch named '${y}' already exists`);E&&await de(s,b);let R=await Je(s,x);await X(s,b,k),await de(s,x),w===a&&await ze(s,"HEAD",b),R.length>0&&await Tn(s,b,R);let C=`Branch: renamed ${x} to ${b}`;if(await re(s,r.env,b,k,k,C),w===a){let D=await Jt(s,r.env);await Ke(s,"HEAD",{oldHash:k,newHash:te,...D,message:C}),await Ke(s,"HEAD",{oldHash:te,newHash:k,...D,message:C})}let P=await he(s),v=`branch "${w}"`;return P[v]&&(P[`branch "${y}"`]=P[v],delete P[v],await Ye(s,P)),{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 Gt(s)&&(await gt(s))?.headName===`refs/heads/${n.name}`&&(w=!0),w)return L(`error: cannot delete branch '${n.name}' used by worktree at '${s.workTree}'
220
220
  `);let y=`refs/heads/${n.name}`,x=await F(s,y);if(!x)return L(`error: branch '${n.name}' not found
221
- `);let b="";if(!f){let k=await Z(s),R=(await he(s))[`branch "${n.name}"`],P=R?.remote,C=R?.merge,v=null,D=null;if(P&&C&&(v=C.replace(/^refs\/heads\//,`refs/remotes/${P}/`),D=await F(s,v)),D&&v){if(!(x===D||await En(s,x,D))){let A=k!=null&&(x===k||await En(s,x,k))?`warning: not deleting branch '${n.name}' that is not yet merged to
221
+ `);let b="";if(!f){let k=await Z(s),R=(await he(s))[`branch "${n.name}"`],C=R?.remote,P=R?.merge,v=null,D=null;if(C&&P&&(v=P.replace(/^refs\/heads\//,`refs/remotes/${C}/`),D=await F(s,v)),D&&v){if(!(x===D||await En(s,x,D))){let A=k!=null&&(x===k||await En(s,x,k))?`warning: not deleting branch '${n.name}' that is not yet merged to
222
222
  '${v}', even though it is merged to HEAD
223
223
  `:"";return L(`${A}error: the branch '${n.name}' is not fully merged
224
224
  hint: If you are sure you want to delete it, run 'git branch -D ${n.name}'
@@ -229,24 +229,24 @@ hint: Disable this message with "git config set advice.forceDeleteBranch false"
229
229
  hint: If you are sure you want to delete it, run 'git branch -D ${n.name}'
230
230
  hint: Disable this message with "git config set advice.forceDeleteBranch false"
231
231
  `)}return await de(s,y),{stdout:`Deleted branch ${n.name} (was ${Y(x)}).
232
- `,stderr:b,exitCode:0}}if(n.setUpstreamTo){let w=n.setUpstreamTo,y=n.name||a;if(!y)return I("could not set upstream of HEAD when it does not point to any branch.");if(!await F(s,`refs/heads/${y}`))return I(`branch '${y}' does not exist`);let b=w.indexOf("/");if(b<0)return I(`the requested upstream branch '${w}' does not exist`);let k=w.slice(0,b),E=w.slice(b+1);if(!await F(s,`refs/remotes/${w}`))return I(`the requested upstream branch '${w}' does not exist`);let P=await he(s),C=`branch "${y}"`;return P[C]||(P[C]={}),P[C].remote=k,P[C].merge=`refs/heads/${E}`,await Ye(s,P),{stdout:"",stderr:`branch '${y}' set up to track '${w}'.
233
- `,exitCode:0}}if(n.name&&!n.remotes&&!n.all){let w=n.newName,y;if(w){let R=await He(s,w,`not a valid object name: '${w}'`);if(M(R))return R;y=R.hash}else if(y=await Z(s),!y)return I("Not a valid object name: 'HEAD'.");let x=`refs/heads/${n.name}`;if(await F(s,x))return I(`a branch named '${n.name}' already exists`);await X(s,x,y);let k=w??"HEAD";await re(s,r.env,x,null,y,`branch: Created from ${k}`);let E="";return w&&(E=await co(s,n.name,w)),{stdout:"",stderr:E,exitCode:0}}let l=n.verbose||0,d=!n.remotes||n.all,u=n.remotes||n.all,m=[];if(d&&!a){let w=await Z(s);if(w){let y=await Gt(s),x;if(y){let b=await pt(s);if(b?.headName){let k=Re(b.headName);if(k==="detached HEAD"){let E=await ns(s);x=`(no branch, rebasing detached HEAD ${E?Y(E):"(null)"})`}else x=`(no branch, rebasing ${k})`}else x="(no branch)"}else{let b=await ns(s);b?x=`(HEAD detached ${w===b?"at":"from"} ${Y(b)})`:x="(no branch)"}m.push({displayName:x,hash:w,isCurrent:!0,branchName:null})}}if(d){let w=await ge(s,"refs/heads");for(let y of w){let x=Re(y.name);m.push({displayName:x,hash:y.hash,isCurrent:x===a,branchName:x})}}if(u){let w=await ge(s,"refs/remotes");for(let y of w){let x=y.name.replace("refs/remotes/","");m.push({displayName:n.all?`remotes/${x}`:x,hash:y.hash,isCurrent:!1,branchName:null})}}if(m.length===0)return{stdout:"",stderr:"",exitCode:0};if(l===0)return{stdout:`${m.map(y=>y.isCurrent?`* ${y.displayName}`:` ${y.displayName}`).join(`
232
+ `,stderr:b,exitCode:0}}if(n.setUpstreamTo){let w=n.setUpstreamTo,y=n.name||a;if(!y)return I("could not set upstream of HEAD when it does not point to any branch.");if(!await F(s,`refs/heads/${y}`))return I(`branch '${y}' does not exist`);let b=w.indexOf("/");if(b<0)return I(`the requested upstream branch '${w}' does not exist`);let k=w.slice(0,b),E=w.slice(b+1);if(!await F(s,`refs/remotes/${w}`))return I(`the requested upstream branch '${w}' does not exist`);let C=await he(s),P=`branch "${y}"`;return C[P]||(C[P]={}),C[P].remote=k,C[P].merge=`refs/heads/${E}`,await Ye(s,C),{stdout:"",stderr:`branch '${y}' set up to track '${w}'.
233
+ `,exitCode:0}}if(n.name&&!n.remotes&&!n.all){let w=n.newName,y;if(w){let R=await He(s,w,`not a valid object name: '${w}'`);if(M(R))return R;y=R.hash}else if(y=await Z(s),!y)return I("Not a valid object name: 'HEAD'.");let x=`refs/heads/${n.name}`;if(await F(s,x))return I(`a branch named '${n.name}' already exists`);await X(s,x,y);let k=w??"HEAD";await re(s,r.env,x,null,y,`branch: Created from ${k}`);let E="";return w&&(E=await co(s,n.name,w)),{stdout:"",stderr:E,exitCode:0}}let l=n.verbose||0,d=!n.remotes||n.all,u=n.remotes||n.all,m=[];if(d&&!a){let w=await Z(s);if(w){let y=await Gt(s),x;if(y){let b=await gt(s);if(b?.headName){let k=Re(b.headName);if(k==="detached HEAD"){let E=await ns(s);x=`(no branch, rebasing detached HEAD ${E?Y(E):"(null)"})`}else x=`(no branch, rebasing ${k})`}else x="(no branch)"}else{let b=await ns(s);b?x=`(HEAD detached ${w===b?"at":"from"} ${Y(b)})`:x="(no branch)"}m.push({displayName:x,hash:w,isCurrent:!0,branchName:null})}}if(d){let w=await ge(s,"refs/heads");for(let y of w){let x=Re(y.name);m.push({displayName:x,hash:y.hash,isCurrent:x===a,branchName:x})}}if(u){let w=await ge(s,"refs/remotes");for(let y of w){let x=y.name.replace("refs/remotes/","");m.push({displayName:n.all?`remotes/${x}`:x,hash:y.hash,isCurrent:!1,branchName:null})}}if(m.length===0)return{stdout:"",stderr:"",exitCode:0};if(l===0)return{stdout:`${m.map(y=>y.isCurrent?`* ${y.displayName}`:` ${y.displayName}`).join(`
234
234
  `)}
235
- `,stderr:"",exitCode:0};let h=l>=1?await he(s):null,p=Math.max(...m.map(w=>w.displayName.length)),g=[];for(let w of m){let y=w.isCurrent?"* ":" ",x=w.displayName.padEnd(p),b=Y(w.hash),k="";try{let R=await j(s,w.hash);k=fe(R.message)}catch{}let E="";if(h&&w.branchName){let R=await bn(s,h,w.branchName);if(R){let P=Jc(R,l>=2);P&&(E=` ${P}`)}}g.push(`${y}${x} ${b}${E} ${k}`)}return{stdout:`${g.join(`
235
+ `,stderr:"",exitCode:0};let h=l>=1?await he(s):null,p=Math.max(...m.map(w=>w.displayName.length)),g=[];for(let w of m){let y=w.isCurrent?"* ":" ",x=w.displayName.padEnd(p),b=Y(w.hash),k="";try{let R=await j(s,w.hash);k=fe(R.message)}catch{}let E="";if(h&&w.branchName){let R=await bn(s,h,w.branchName);if(R){let C=Zc(R,l>=2);C&&(E=` ${C}`)}}g.push(`${y}${x} ${b}${E} ${k}`)}return{stdout:`${g.join(`
236
236
  `)}
237
- `,stderr:"",exitCode:0}}})}function ee(e){return e!=null&&typeof e=="object"&&"reject"in e&&e.reject===!0}var Ym=["preCommit","preMergeCommit","preCheckout","prePush","preFetch","preClone","prePull","preRebase","preReset","preClean","preRm","preCherryPick","preRevert","preStash","beforeCommand"],Xm=["commitMsg","mergeMsg"],Zm=["postCommit","postMerge","postCheckout","postPush","postFetch","postClone","postPull","postReset","postClean","postRm","postCherryPick","postRevert","postStash","afterCommand"],Jm=["onRefUpdate","onRefDelete","onObjectWrite"];function Qm(...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 Ym){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o){let a=await i(s);if(ee(a))return a}})}for(let r of Xm){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o){let a=await i(s);if(ee(a))return a}})}for(let r of Zm){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o)try{await i(s)}catch{}})}for(let r of Jm){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=s=>{for(let i of o)try{i(s)}catch{}})}return n}se();Ne();Pe();ie();Fe();ue();hn();tt();function Ef(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:S().alias("b").describe("Create and switch to a new branch"),forceBranch:S().alias("B").describe("Create/reset and switch to a new branch"),detach:S().alias("d").describe("Detach HEAD at named commit"),orphan:S().describe("Create a new orphan branch"),ours:S().describe("Checkout our version for unmerged files"),theirs:S().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(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 u=ut(i,r.cwd),m=o.passthrough,h=null;if(a){if(n.ours||n.theirs)return I("cannot specify both a revision and --ours/--theirs");let p=await He(i,a,`invalid reference: ${a}`);if(M(p))return p;h=p.commit.tree}return n.ours||n.theirs?io(i,m,u,n.theirs?3:2):oo(i,m,u,h)}if(n.orphan)return n.branch?I("--orphan and -b are incompatible"):n.ours||n.theirs?I("--orphan and --ours/--theirs are incompatible"):a?th(i,a,r.env,t):I("you must specify a branch to checkout");if(n.detach){let u=a??"HEAD",m=await He(i,u,`invalid reference: ${u}`);return M(m)?m:yf(i,u,m.hash,r.env,t)}if(!a)return I("you must specify a branch to checkout");if(n.branch||n.forceBranch)return nh(i,a,r.env,t,!!n.forceBranch);if(a==="-")return eh(i,r.env,t);let c=`refs/heads/${a}`,f=await F(i,c);if(f)return kf(i,a,c,f,r.env,t);let l=await fo(i,a);if(l)return rh(i,a,l.trackingRef,r.env,t);let d=await Be(i,a);if(d){let u=await _e(i,d);return yf(i,a,u,r.env,t)}if(i.workTree){let u=await K(i),m=Ts(u,a);if(m)return await ct(i,{path:m.path,hash:m.hash,mode:m.mode}),{stdout:"",stderr:"",exitCode:0}}return L(`error: pathspec '${a}' did not match any file(s) known to git
238
- `)}})}async function eh(e,t,n){let r=await so(e);return r?kf(e,r.name,r.refName,r.hash,t,n):I("no previous branch")}async function th(e,t,n,r){let o=`refs/heads/${t}`;if(await F(e,o))return I(`a branch named '${t}' already exists`);let i=await K(e),a=jn(i);if(a)return a;let c=await Z(e),f=null;c&&(f=(await j(e,c)).tree),await ze(e,"HEAD",o),await ht(e);let l=await yn(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:c,newHead:te,isBranchCheckout:!0});let d="";return f&&(d=await ir(e,f,i)),{stdout:d,stderr:`Switched to a new branch '${t}'
239
- ${l}`,exitCode:0}}async function nh(e,t,n,r,o=!1){let s=await r?.hooks?.preCheckout?.({repo:e,target:t,mode:"create-branch"});if(ee(s))return L(s.message??"");let i=await Q(e),a=await Z(e),c=`refs/heads/${t}`,f=await F(e,c);if(f&&!o)return I(`a branch named '${t}' already exists`);if(o){let g=await K(e),w=jn(g);if(w)return w}a&&await X(e,c,a),await ze(e,"HEAD",c),await ht(e);let l=await yn(e),d=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):a??te;a&&(f?f!==a&&await re(e,n,c,f,a,"branch: Reset to HEAD"):await re(e,n,c,null,a,"branch: Created from HEAD")),await re(e,n,"HEAD",a,a??te,`checkout: moving from ${d} to ${t}`),await r?.hooks?.postCheckout?.({repo:e,prevHead:a,newHead:a??te,isBranchCheckout:!0});let u="";if(o&&a){let g=await K(e),w=await j(e,a);u=await ir(e,w.tree,g)}let m=await he(e),h=await bn(e,m,t);h&&(u+=or(h));let p=f?`Switched to and reset branch '${t}'
237
+ `,stderr:"",exitCode:0}}})}function ee(e){return e!=null&&typeof e=="object"&&"reject"in e&&e.reject===!0}var Xm=["preCommit","preMergeCommit","preCheckout","prePush","preFetch","preClone","prePull","preRebase","preReset","preClean","preRm","preCherryPick","preRevert","preStash","beforeCommand"],Zm=["commitMsg","mergeMsg"],Jm=["postCommit","postMerge","postCheckout","postPush","postFetch","postClone","postPull","postReset","postClean","postRm","postCherryPick","postRevert","postStash","afterCommand"],Qm=["onRefUpdate","onRefDelete","onObjectWrite"];function eh(...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 Xm){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o){let a=await i(s);if(ee(a))return a}})}for(let r of Zm){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o){let a=await i(s);if(ee(a))return a}})}for(let r of Jm){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=async s=>{for(let i of o)try{await i(s)}catch{}})}for(let r of Qm){let o=t.filter(s=>s[r]).map(s=>s[r]);o.length>0&&(n[r]=s=>{for(let i of o)try{i(s)}catch{}})}return n}se();Ne();Ce();ie();Fe();ue();hn();tt();function yf(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:$().alias("b").describe("Create and switch to a new branch"),forceBranch:$().alias("B").describe("Create/reset and switch to a new branch"),detach:$().alias("d").describe("Detach HEAD at named commit"),orphan:$().describe("Create a new orphan branch"),ours:$().describe("Checkout our version for unmerged files"),theirs:$().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(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 u=mt(i,r.cwd),m=o.passthrough,h=null;if(a){if(n.ours||n.theirs)return I("cannot specify both a revision and --ours/--theirs");let p=await He(i,a,`invalid reference: ${a}`);if(M(p))return p;h=p.commit.tree}return n.ours||n.theirs?io(i,m,u,n.theirs?3:2):oo(i,m,u,h)}if(n.orphan)return n.branch?I("--orphan and -b are incompatible"):n.ours||n.theirs?I("--orphan and --ours/--theirs are incompatible"):a?nh(i,a,r.env,t):I("you must specify a branch to checkout");if(n.detach){let u=a??"HEAD",m=await He(i,u,`invalid reference: ${u}`);return M(m)?m:bf(i,u,m.hash,r.env,t)}if(!a)return I("you must specify a branch to checkout");if(n.branch||n.forceBranch)return rh(i,a,r.env,t,!!n.forceBranch);if(a==="-")return th(i,r.env,t);let c=`refs/heads/${a}`,f=await F(i,c);if(f)return Ef(i,a,c,f,r.env,t);let l=await fo(i,a);if(l)return sh(i,a,l.trackingRef,r.env,t);let d=await Be(i,a);if(d){let u=await _e(i,d);return bf(i,a,u,r.env,t)}if(i.workTree){let u=await K(i),m=Ts(u,a);if(m)return await ct(i,{path:m.path,hash:m.hash,mode:m.mode}),{stdout:"",stderr:"",exitCode:0}}return L(`error: pathspec '${a}' did not match any file(s) known to git
238
+ `)}})}async function th(e,t,n){let r=await so(e);return r?Ef(e,r.name,r.refName,r.hash,t,n):I("no previous branch")}async function nh(e,t,n,r){let o=`refs/heads/${t}`;if(await F(e,o))return I(`a branch named '${t}' already exists`);let i=await K(e),a=jn(i);if(a)return a;let c=await Z(e),f=null;c&&(f=(await j(e,c)).tree),await ze(e,"HEAD",o),await pt(e);let l=await yn(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:c,newHead:te,isBranchCheckout:!0});let d="";return f&&(d=await ir(e,f,i)),{stdout:d,stderr:`Switched to a new branch '${t}'
239
+ ${l}`,exitCode:0}}async function rh(e,t,n,r,o=!1){let s=await r?.hooks?.preCheckout?.({repo:e,target:t,mode:"create-branch"});if(ee(s))return L(s.message??"");let i=await Q(e),a=await Z(e),c=`refs/heads/${t}`,f=await F(e,c);if(f&&!o)return I(`a branch named '${t}' already exists`);if(o){let g=await K(e),w=jn(g);if(w)return w}a&&await X(e,c,a),await ze(e,"HEAD",c),await pt(e);let l=await yn(e),d=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):a??te;a&&(f?f!==a&&await re(e,n,c,f,a,"branch: Reset to HEAD"):await re(e,n,c,null,a,"branch: Created from HEAD")),await re(e,n,"HEAD",a,a??te,`checkout: moving from ${d} to ${t}`),await r?.hooks?.postCheckout?.({repo:e,prevHead:a,newHead:a??te,isBranchCheckout:!0});let u="";if(o&&a){let g=await K(e),w=await j(e,a);u=await ir(e,w.tree,g)}let m=await he(e),h=await bn(e,m,t);h&&(u+=or(h));let p=f?`Switched to and reset branch '${t}'
240
240
  `:`Switched to a new branch '${t}'
241
- `;return{stdout:u,stderr:`${p}${l}`,exitCode:0}}async function kf(e,t,n,r,o,s){let i=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"switch"});return ee(i)?L(i.message??""):ar(e,t,n,r,o,s)}async function rh(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"create-branch"});if(ee(s))return L(s.message??"");let i=await F(e,n);if(!i)return I(`invalid reference: ${n}`);let a=`refs/heads/${t}`;await X(e,a,i);let c=n.replace(/^refs\/remotes\//,"").split("/"),f=c[0]??"",l=`refs/heads/${c.slice(1).join("/")}`,d=await he(e);d[`branch "${t}"`]={...d[`branch "${t}"`],remote:f,merge:l},await Ye(e,d),await re(e,r,a,null,i,`branch: Created from ${n}`);let u=await ar(e,t,a,i,r,o),m=c.slice(1).join("/");return u.stderr=`branch '${t}' set up to track '${f}/${m}'.
242
- ${u.stderr}`,u}async function yf(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"detach"});return ee(s)?L(s.message??""):Gn(e,n,r,o,{detachAdviceTarget:t})}se();Ne();Pe();se();function Li(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}=ji(e,t);return sh(o,n,s,r)}function sh(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 oh(e,t,n){let r=[];for(let c of Li(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 Li(t,n))r.push({ab:"b",oStart:c.buffer1[0],oLength:c.buffer1[1],abStart:c.buffer2[0],abLength:c.buffer2[1]});r.sort((c,f)=>c.oStart-f.oStart);let o=[],s=0;function i(c){c>s&&(o.push({stable:!0,buffer:"o",bufferStart:s,bufferLength:c-s,content:t.slice(s,c)}),s=c)}let a=0;for(;a<r.length;){let c=r[a++],f=c.oStart,l=c.oStart+c.oLength,d=[c];for(i(f);a<r.length;){let u=r[a];if(u.oStart>l)break;l=Math.max(l,u.oStart+u.oLength),d.push(u),a++}if(d.length===1){if(c.abLength>0){let u=c.ab==="a"?e:n;o.push({stable:!0,buffer:c.ab,bufferStart:c.abStart,bufferLength:c.abLength,content:u.slice(c.abStart,c.abStart+c.abLength)})}}else{let u={a:{abMin:e.length,abMax:-1,oMin:t.length,oMax:-1},b:{abMin:n.length,abMax:-1,oMin:t.length,oMax:-1}};for(let w of d){let y=w.oStart,x=y+w.oLength,b=w.abStart,k=b+w.abLength,E=u[w.ab];E.abMin=Math.min(b,E.abMin),E.abMax=Math.max(k,E.abMax),E.oMin=Math.min(y,E.oMin),E.oMax=Math.max(x,E.oMax)}let m=u.a.abMin+(f-u.a.oMin),h=u.a.abMax+(l-u.a.oMax),p=u.b.abMin+(f-u.b.oMin),g=u.b.abMax+(l-u.b.oMax);o.push({stable:!1,a:e.slice(m,h),o:t.slice(f,l),b:n.slice(p,g)})}s=l}return i(t.length),o}function ih(e,t,n,r){let o=r?.excludeFalseConflicts??!0,s=oh(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&&xf(f.a,f.b)?a.push(...f.a):(c(),i.push({type:"conflict",a:f.a,o:f.o,b:f.b}));return c(),r?.conflictStyle==="diff3"?Rf(i):Rf(ah(i))}function as(e,t,n,r){let o=r?.markerSize??7,s=r?.conflictStyle??"merge",i=`${"<".repeat(o)}${r?.a?` ${r.a}`:""}`,a=`${"|".repeat(o)}${r?.o?` ${r.o}`:""}`,c="=".repeat(o),f=`${">".repeat(o)}${r?.b?` ${r.b}`:""}`,l=ih(e,t,n,{conflictStyle:s}),d=!1,u=[];for(let m of l)m.type==="ok"?u.push(...m.lines):(d=!0,s==="diff3"?u.push(i,...m.a,a,...m.o,c,...m.b,f):u.push(i,...m.a,c,...m.b,f));return{conflict:d,result:u}}function ah(e){let t=[];for(let n of e)n.type==="ok"?t.push(n):t.push(...ch(n));return t}function ch(e){let{a:t,b:n}=e;if(t.length===0||n.length===0)return[e];if(xf(t,n))return[e];let r=Li(t,n);if(r.length===0)return[{type:"ok",lines:t}];let o=[],s=0;for(let a of r){let c=a.buffer1[0];c-s>0&&o.push({type:"ok",lines:t.slice(s,c)});let l=c+a.buffer1[1],d=a.buffer2[0]+a.buffer2[1];o.push({type:"conflict",a:t.slice(c,l),o:[],b:n.slice(a.buffer2[0],d)}),s=l}return t.length-s>0&&o.push({type:"ok",lines:t.slice(s)}),o.length===1&&o[0].type==="conflict"?[e]:o}function Rf(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 lr(e,t,n,r){let o=as(Pt(e),Pt(t),Pt(n),{a:r.a,o:r.o,b:r.b,markerSize:r.markerSize,conflictStyle:r.conflictStyle}),i=(o.result[o.result.length-1]??"").endsWith("\0"),a=o.result.map(_i);return(a[a.length-1]??"").startsWith(">>>>>>>")||!i?`${a.join(`
241
+ `;return{stdout:u,stderr:`${p}${l}`,exitCode:0}}async function Ef(e,t,n,r,o,s){let i=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"switch"});return ee(i)?L(i.message??""):ar(e,t,n,r,o,s)}async function sh(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"create-branch"});if(ee(s))return L(s.message??"");let i=await F(e,n);if(!i)return I(`invalid reference: ${n}`);let a=`refs/heads/${t}`;await X(e,a,i);let c=n.replace(/^refs\/remotes\//,"").split("/"),f=c[0]??"",l=`refs/heads/${c.slice(1).join("/")}`,d=await he(e);d[`branch "${t}"`]={...d[`branch "${t}"`],remote:f,merge:l},await Ye(e,d),await re(e,r,a,null,i,`branch: Created from ${n}`);let u=await ar(e,t,a,i,r,o),m=c.slice(1).join("/");return u.stderr=`branch '${t}' set up to track '${f}/${m}'.
242
+ ${u.stderr}`,u}async function bf(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"detach"});return ee(s)?L(s.message??""):Gn(e,n,r,o,{detachAdviceTarget:t})}se();Ne();Ce();se();function Li(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}=ji(e,t);return oh(o,n,s,r)}function oh(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 ih(e,t,n){let r=[];for(let c of Li(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 Li(t,n))r.push({ab:"b",oStart:c.buffer1[0],oLength:c.buffer1[1],abStart:c.buffer2[0],abLength:c.buffer2[1]});r.sort((c,f)=>c.oStart-f.oStart);let o=[],s=0;function i(c){c>s&&(o.push({stable:!0,buffer:"o",bufferStart:s,bufferLength:c-s,content:t.slice(s,c)}),s=c)}let a=0;for(;a<r.length;){let c=r[a++],f=c.oStart,l=c.oStart+c.oLength,d=[c];for(i(f);a<r.length;){let u=r[a];if(u.oStart>l)break;l=Math.max(l,u.oStart+u.oLength),d.push(u),a++}if(d.length===1){if(c.abLength>0){let u=c.ab==="a"?e:n;o.push({stable:!0,buffer:c.ab,bufferStart:c.abStart,bufferLength:c.abLength,content:u.slice(c.abStart,c.abStart+c.abLength)})}}else{let u={a:{abMin:e.length,abMax:-1,oMin:t.length,oMax:-1},b:{abMin:n.length,abMax:-1,oMin:t.length,oMax:-1}};for(let w of d){let y=w.oStart,x=y+w.oLength,b=w.abStart,k=b+w.abLength,E=u[w.ab];E.abMin=Math.min(b,E.abMin),E.abMax=Math.max(k,E.abMax),E.oMin=Math.min(y,E.oMin),E.oMax=Math.max(x,E.oMax)}let m=u.a.abMin+(f-u.a.oMin),h=u.a.abMax+(l-u.a.oMax),p=u.b.abMin+(f-u.b.oMin),g=u.b.abMax+(l-u.b.oMax);o.push({stable:!1,a:e.slice(m,h),o:t.slice(f,l),b:n.slice(p,g)})}s=l}return i(t.length),o}function ah(e,t,n,r){let o=r?.excludeFalseConflicts??!0,s=ih(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&&Rf(f.a,f.b)?a.push(...f.a):(c(),i.push({type:"conflict",a:f.a,o:f.o,b:f.b}));return c(),r?.conflictStyle==="diff3"?kf(i):kf(ch(i))}function as(e,t,n,r){let o=r?.markerSize??7,s=r?.conflictStyle??"merge",i=`${"<".repeat(o)}${r?.a?` ${r.a}`:""}`,a=`${"|".repeat(o)}${r?.o?` ${r.o}`:""}`,c="=".repeat(o),f=`${">".repeat(o)}${r?.b?` ${r.b}`:""}`,l=ah(e,t,n,{conflictStyle:s}),d=!1,u=[];for(let m of l)m.type==="ok"?u.push(...m.lines):(d=!0,s==="diff3"?u.push(i,...m.a,a,...m.o,c,...m.b,f):u.push(i,...m.a,c,...m.b,f));return{conflict:d,result:u}}function ch(e){let t=[];for(let n of e)n.type==="ok"?t.push(n):t.push(...fh(n));return t}function fh(e){let{a:t,b:n}=e;if(t.length===0||n.length===0)return[e];if(Rf(t,n))return[e];let r=Li(t,n);if(r.length===0)return[{type:"ok",lines:t}];let o=[],s=0;for(let a of r){let c=a.buffer1[0];c-s>0&&o.push({type:"ok",lines:t.slice(s,c)});let l=c+a.buffer1[1],d=a.buffer2[0]+a.buffer2[1];o.push({type:"conflict",a:t.slice(c,l),o:[],b:n.slice(a.buffer2[0],d)}),s=l}return t.length-s>0&&o.push({type:"ok",lines:t.slice(s)}),o.length===1&&o[0].type==="conflict"?[e]:o}function kf(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 lr(e,t,n,r){let o=as(Ct(e),Ct(t),Ct(n),{a:r.a,o:r.o,b:r.b,markerSize:r.markerSize,conflictStyle:r.conflictStyle}),i=(o.result[o.result.length-1]??"").endsWith("\0"),a=o.result.map(_i);return(a[a.length-1]??"").startsWith(">>>>>>>")||!i?`${a.join(`
243
243
  `)}
244
244
  `:a.join(`
245
- `)}function Pt(e){if(e==="")return[];let t=e.split(`
246
- `);if(t[t.length-1]==="")t.pop();else{let n=t[t.length-1]??"";t[t.length-1]=`${n}\0`}return t}function _i(e){return e.endsWith("\0")?e.slice(0,-1):e}function xf(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}Pe();ie();un();le();Zn();ve();tt();sn();var Cr=new TextDecoder,Wn=new TextEncoder,Cf={name:"virtual",email:"virtual@merge",timestamp:0,timezone:"+0000"};async function Ft(e,t,n,r,o){let{paths:s,baseMap:i,oursMap:a,theirsMap:c}=await lh(e,t,n,r),f=await uh(e,s,i,a,c,o);return mh(e,s,o,f)}async function fs(e,t,n,r){let o=await Nt(e,t,n),s=await j(e,t),i=await j(e,n);if(o.length===0)return{...await Ft(e,null,s.tree,i.tree,r),baseTree:null};if(o.length===1){let f=await j(e,o[0]);return{...await Ft(e,f.tree,s.tree,i.tree,r),baseTree:f.tree}}let a=await Af(e,t,n,o,1);return{...await Ft(e,a,s.tree,i.tree,r),baseTree:a}}async function lh(e,t,n,r){let o=await ce(e,t),s=await ce(e,n),i=await ce(e,r),a=new Set;for(let f of o.keys())a.add(f);for(let f of s.keys())a.add(f);for(let f of i.keys())a.add(f);let c=new Map;for(let f of a){let l=o.get(f)??null,d=s.get(f)??null,u=i.get(f)??null,m=l?{hash:l.hash,mode:l.mode}:null,h=d?{hash:d.hash,mode:d.mode}:null,p=u?{hash:u.hash,mode:u.mode}:null,g=(l?1:0)|(d?2:0)|(u?4:0),w=l?.hash??null,y=d?.hash??null,x=u?.hash??null,b=0;w!==null&&w===y&&(b|=3),w!==null&&w===x&&(b|=5),y!==null&&y===x&&(b|=6);let k={path:f,stages:[m,h,p],pathnames:[f,f,f],filemask:g,matchMask:b,merged:{result:null,clean:!1},pathConflict:!1};if(dh(k)){c.set(f,k);continue}c.set(f,k)}return{paths:c,baseMap:o,oursMap:s,theirsMap:i}}function dh(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 uh(e,t,n,r,o,s){let i={entries:[],conflicts:[],msgBuf:[],worktreeBlobs:new Map},a=[],c=[];for(let[A,$]of n)r.has(A)||a.push({path:A,status:"deleted",oldHash:$.hash,oldMode:$.mode}),o.has(A)||c.push({path:A,status:"deleted",oldHash:$.hash,oldMode:$.mode});for(let[A,$]of r)n.has(A)||a.push({path:A,status:"added",newHash:$.hash,newMode:$.mode});for(let[A,$]of o)n.has(A)||c.push({path:A,status:"added",newHash:$.hash,newMode:$.mode});let f=await nt(e,a),l=await nt(e,c);if(f.renames.length===0&&l.renames.length===0)return i;let d=new Map,u=new Map;for(let A of f.renames)d.set(A.oldPath,A);for(let A of l.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,$,N=0){i.msgBuf.push({sortKey:A,subOrder:N,text:$})}for(let A of[...n.keys()].sort()){let $=d.get(A),N=u.get(A);if(!$&&!N)continue;let B=n.get(A);if(h.add(A),$&&N)if(h.add($.newPath),h.add(N.newPath),$.newPath===N.newPath){let z=r.get($.newPath),_=o.get(N.newPath);if(z.hash===_.hash)i.entries.push(bt($.newPath,z));else{let U=Ni(t,$.newPath);U.stages=[{hash:B.hash,mode:B.mode},{hash:z.hash,mode:z.mode},{hash:_.hash,mode:_.mode}],U.pathnames=[A,$.newPath,N.newPath],U.filemask=7,U.merged={result:null,clean:!1}}}else{let z=r.get($.newPath),_=o.get(N.newPath),U=await Hf(e,B,z,_,s);U.conflict&&w(A,`Auto-merging ${A}`,-1),i.conflicts.push({path:A,reason:"rename-rename",oursPath:$.newPath,theirsPath:N.newPath}),w(A,`CONFLICT (rename/rename): ${A} renamed to ${$.newPath} in ${p} and to ${N.newPath} in ${g}.`),i.entries.push(bt(A,B,1)),i.entries.push(ot($.newPath,z.mode,U.hash,2)),i.entries.push(ot(N.newPath,_.mode,U.hash,3)),i.worktreeBlobs.set($.newPath,{hash:U.hash,mode:z.mode}),i.worktreeBlobs.set(N.newPath,{hash:U.hash,mode:_.mode})}else if($){h.add($.newPath);let z=o.get(A),_=r.get($.newPath),U=m.has($.newPath);if(z)if(U)await Tf(e,i,$.newPath,A,B,_,z,r,o,!1,s);else if(z.hash===B.hash&&_.hash===B.hash)i.entries.push(bt($.newPath,_));else if(z.hash===B.hash)i.entries.push(bt($.newPath,_));else if(_.hash===B.hash)i.entries.push(ot($.newPath,_.mode,z.hash));else{let V=Ni(t,$.newPath);V.stages=[{hash:B.hash,mode:B.mode},{hash:_.hash,mode:_.mode},{hash:z.hash,mode:z.mode}],V.pathnames=[A,$.newPath,A],V.filemask=7,V.merged={result:null,clean:!1}}else{let V=o.get($.newPath);if(i.conflicts.push({path:$.newPath,reason:"rename-delete",deletedBy:"theirs",oldPath:A}),w($.newPath,`CONFLICT (rename/delete): ${A} renamed to ${$.newPath} in ${p}, but deleted in ${g}.`),V){i.conflicts.push({path:$.newPath,reason:"add-add"}),w($.newPath,`Auto-merging ${$.newPath}`,0),w($.newPath,`CONFLICT (add/add): Merge conflict in ${$.newPath}`,1),i.entries.push(bt($.newPath,_,2)),i.entries.push(bt($.newPath,V,3));let be=await bo(e,_.hash,V.hash,_.mode,s);i.worktreeBlobs.set($.newPath,{hash:be,mode:_.mode})}else i.entries.push(ot($.newPath,B.mode,B.hash,1)),i.entries.push(bt($.newPath,_,2)),i.worktreeBlobs.set($.newPath,{hash:_.hash,mode:_.mode}),_.hash!==B.hash&&w($.newPath,`CONFLICT (modify/delete): ${$.newPath} deleted in ${g} and modified in ${p}. Version ${p} of ${$.newPath} left in tree.`,1)}}else if(N){h.add(N.newPath);let z=r.get(A),_=o.get(N.newPath),U=m.has(N.newPath);if(z)if(U)await Tf(e,i,N.newPath,A,B,z,_,r,o,!0,s);else if(z.hash===B.hash&&_.hash===B.hash)i.entries.push(bt(N.newPath,_));else if(z.hash===B.hash)i.entries.push(bt(N.newPath,_));else if(_.hash===B.hash)i.entries.push(ot(N.newPath,_.mode,z.hash));else{let V=Ni(t,N.newPath);V.stages=[{hash:B.hash,mode:B.mode},{hash:z.hash,mode:z.mode},{hash:_.hash,mode:_.mode}],V.pathnames=[A,A,N.newPath],V.filemask=7,V.merged={result:null,clean:!1}}else{let V=r.get(N.newPath);if(i.conflicts.push({path:N.newPath,reason:"rename-delete",deletedBy:"ours",oldPath:A}),w(N.newPath,`CONFLICT (rename/delete): ${A} renamed to ${N.newPath} in ${g}, but deleted in ${p}.`),V){i.conflicts.push({path:N.newPath,reason:"add-add"}),w(N.newPath,`Auto-merging ${N.newPath}`,0),w(N.newPath,`CONFLICT (add/add): Merge conflict in ${N.newPath}`,1),i.entries.push(bt(N.newPath,V,2)),i.entries.push(bt(N.newPath,_,3));let be=await bo(e,V.hash,_.hash,V.mode,s);i.worktreeBlobs.set(N.newPath,{hash:be,mode:V.mode})}else i.entries.push(ot(N.newPath,B.mode,B.hash,1)),i.entries.push(bt(N.newPath,_,3)),i.worktreeBlobs.set(N.newPath,{hash:_.hash,mode:_.mode}),_.hash!==B.hash&&w(N.newPath,`CONFLICT (modify/delete): ${N.newPath} deleted in ${p} and modified in ${g}. Version ${g} of ${N.newPath} left in tree.`,1)}}}let y=new Set(f.renames.map(A=>A.newPath)),x=new Set(l.renames.map(A=>A.newPath)),b=Pf(n,r),k=Pf(n,o),E=Of(b,o,n),R=Of(k,r,n),P=If(f.renames,E),C=If(l.renames,R),v=Sf(P),D=Sf(C);for(let A of[...v.keys()])D.has(A)&&(v.delete(A),D.delete(A));let O=new Set(v.keys()),H=new Set(D.keys());if(D.size>0)for(let A of a){if(A.status!=="added"||y.has(A.path))continue;let $=$f(A.path,D,O);if(!$)continue;if(t.has($)||n.has($)||r.has($)||o.has($)){if(r.has($)){w($,`CONFLICT (implicit dir rename): Existing file/dir at ${$} in the way of implicit directory rename(s) putting the following path(s) there: ${A.path}.`,1);continue}let z=r.get(A.path),_=o.get($)??n.get($);i.entries.push(ot($,z.mode,z.hash,2)),_&&i.entries.push(ot($,_.mode,_.hash,3)),i.worktreeBlobs.set($,{hash:z.hash,mode:z.mode}),i.conflicts.push({path:$,reason:"add-add"}),w($,`CONFLICT (file location): ${A.path} added in ${p} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${$}.`,1);let U=t.get(A.path);U&&(U.merged={result:null,clean:!0}),h.add(A.path);continue}let N=r.get(A.path);i.entries.push(ot($,N.mode,N.hash,2)),i.worktreeBlobs.set($,{hash:N.hash,mode:N.mode}),i.conflicts.push({path:$,reason:"directory-rename"}),w($,`CONFLICT (file location): ${A.path} added in ${p} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${$}.`,1);let B=t.get(A.path);B&&(B.merged={result:null,clean:!0}),h.add(A.path)}if(v.size>0)for(let A of c){if(A.status!=="added"||x.has(A.path))continue;let $=$f(A.path,v,H);if(!$)continue;if(t.has($)||n.has($)||r.has($)||o.has($)){if(o.has($)){w($,`CONFLICT (implicit dir rename): Existing file/dir at ${$} in the way of implicit directory rename(s) putting the following path(s) there: ${A.path}.`,1);continue}let z=o.get(A.path),_=r.get($)??n.get($);_&&i.entries.push(ot($,_.mode,_.hash,2)),i.entries.push(ot($,z.mode,z.hash,3)),i.worktreeBlobs.set($,{hash:z.hash,mode:z.mode}),i.conflicts.push({path:$,reason:"add-add"}),w($,`CONFLICT (file location): ${A.path} added in ${g} inside a directory that was renamed in ${p}, suggesting it should perhaps be moved to ${$}.`,1);let U=t.get(A.path);U&&(U.merged={result:null,clean:!0}),h.add(A.path);continue}let N=o.get(A.path);i.entries.push(ot($,N.mode,N.hash,3)),i.worktreeBlobs.set($,{hash:N.hash,mode:N.mode}),i.conflicts.push({path:$,reason:"directory-rename"}),w($,`CONFLICT (file location): ${A.path} added in ${g} inside a directory that was renamed in ${p}, suggesting it should perhaps be moved to ${$}.`,1);let B=t.get(A.path);B&&(B.merged={result:null,clean:!0}),h.add(A.path)}let G=new Set(i.entries.map(A=>A.path));for(let A of G){let $=t.get(A);$&&($.merged={result:null,clean:!0})}for(let A of h){if(G.has(A))continue;let $=t.get(A);if(!$||$.merged.clean)continue;$.filemask===7&&!$.pathConflict||($.merged={result:null,clean:!0})}return i}function Pf(e,t){let n=new Set;for(let s of e.keys()){let i=Ot(s);for(;i;)n.add(i),i=Ot(i)}let r=new Set;for(let s of t.keys()){let i=Ot(s);for(;i;)r.add(i),i=Ot(i)}let o=new Set;for(let s of n)r.has(s)||o.add(s);return o}function Of(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=Ot(o)??"";e.has(s)&&r.add(s)}for(let o of[...r]){let s=Ot(o);for(;s;)e.has(s)&&!r.has(s)&&r.add(s),s=Ot(s)}return r}function If(e,t){let n=new Map;for(let r of e){let o=Ot(r.oldPath),s=Ot(r.newPath),i=!0;for(;;){if(!i){let a=o.length+(o?1:0),c=s.length+(s?1:0),f=r.oldPath.slice(a,r.oldPath.indexOf("/",a)),l=r.newPath.slice(c,r.newPath.indexOf("/",c));if(f!==l)break}if(t.has(o)){let a=n.get(o);a||(a=new Map,n.set(o,a)),a.set(s,(a.get(s)??0)+1)}if(i=!1,!o||!s)break;o=Ot(o),s=Ot(s)}}return n}function Sf(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 $f(e,t,n){let r=Ot(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=Ot(r)}let o=t.get("");return o!==void 0&&!n.has(o)?`${o}/${e}`:null}function Ot(e){let t=e.lastIndexOf("/");return t===-1?"":e.slice(0,t)}async function Tf(e,t,n,r,o,s,i,a,c,f=!1,l){let d=f?a.get(n):c.get(n),u=f?i:s;if(d.hash===u.hash){t.entries.push(ot(n,d.mode,d.hash)),t.msgBuf.push({sortKey:r,subOrder:0,text:`Auto-merging ${r}`});return}let h=await Hf(e,o,s,i,l,f?{oursPath:r,theirsPath:n}:{oursPath:n,theirsPath:r},8);if(d.hash===h.hash)t.entries.push(ot(n,d.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(bt(n,d,2)),t.entries.push(ot(n,i.mode,h.hash,3));let p=await bo(e,d.hash,h.hash,d.mode,l);t.worktreeBlobs.set(n,{hash:p,mode:d.mode})}else{t.entries.push(ot(n,s.mode,h.hash,2)),t.entries.push(bt(n,d,3));let p=await bo(e,h.hash,d.hash,s.mode,l);t.worktreeBlobs.set(n,{hash:p,mode:s.mode})}}async function Hf(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(pn(t.mode)||pn(n.mode)||pn(r.mode))return{hash:n.hash,conflict:!0};let a=await oe(e,t.hash),c=await oe(e,n.hash),f=await oe(e,r.hash);if(Se(c)||Se(f)||Se(a))return{hash:n.hash,conflict:!0};let l=Pt(a),d=Pt(c),u=Pt(f),m=o?.conflictStyle,h=as(d,l,u,{conflictStyle:m});if(!h.conflict)return{hash:await Ui(e,h.result),conflict:!1};let p=o?.a??"HEAD",g=o?.b??"theirs",w=s?.oursPath?`${p}:${s.oursPath}`:p,y=s?.theirsPath?`${g}:${s.theirsPath}`:g,x=lr(c,a,f,{a:w,b:y,markerSize:i??7,conflictStyle:m});return{hash:await $e(e,"blob",Wn.encode(x)),conflict:!0}}async function bo(e,t,n,r,o){let s=await oe(e,t),i=await oe(e,n),a=lr(s,"",i,{a:o?.a??"HEAD",b:o?.b??"theirs",conflictStyle:o?.conflictStyle});return $e(e,"blob",Wn.encode(a))}function bt(e,t,n=0){return ot(e,t.mode,t.hash,n)}function ot(e,t,n,r=0){return{path:e,mode:parseInt(t,8),hash:n,stage:r,stat:Ie()}}async function mh(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(Me(m,h.merged.result.hash,h.merged.result.mode));continue}await hh(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),l=[],d=new Set;for(let m of o)m.stage===0&&(l.push(m),d.add(m.path));for(let[m,h]of a)d.has(m)||l.push(Me(m,h.hash,h.mode));l.sort((m,h)=>Oe(m.path,h.path));let u=await Ge(e,l);return{entries:o,conflicts:s,messages:f,resultTree:u}}async function hh(e,t,n,r,o,s,i){let a=t.path,[c,f,l]=t.stages,d=c?.hash??null,u=f?.hash??null,m=l?.hash??null;if(u===null&&m!==null&&d!==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(Me(a,d,c.mode,1)),r.push(Me(a,m,l.mode,3)),i.set(a,{hash:m,mode:l.mode});return}if(m===null&&u!==null&&d!==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(Me(a,d,c.mode,1)),r.push(Me(a,u,f.mode,2)),i.set(a,{hash:u,mode:f.mode});return}if(d===null&&u!==null&&m!==null){if(u===m){r.push(Me(a,u,f.mode));return}s(a,`Auto-merging ${a}`,0);let h=await oe(e,u),p=await oe(e,m);if(Se(h)||Se(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(Me(a,u,f.mode,2)),r.push(Me(a,m,l.mode,3)),i.set(a,{hash:u,mode:f.mode});return}let g=Pt(""),w=Pt(h),y=Pt(p),x=as(w,g,y,{conflictStyle:n?.conflictStyle});if(!x.conflict){let E=await Ui(e,x.result);r.push(Me(a,E,f.mode));return}o.push({path:a,reason:"add-add"}),s(a,`CONFLICT (add/add): Merge conflict in ${a}`,1),r.push(Me(a,u,f.mode,2)),r.push(Me(a,m,l.mode,3));let b=lr(h,"",p,{a:n?.a??"HEAD",b:n?.b??"theirs",conflictStyle:n?.conflictStyle}),k=await $e(e,"blob",Wn.encode(b));i.set(a,{hash:k,mode:f.mode});return}if(d!==null&&u!==null&&m!==null){if(u===d){r.push(Me(a,m,l.mode));return}if(m===d){r.push(Me(a,u,f.mode));return}if(u===m){r.push(Me(a,u,f.mode));return}if(s(a,`Auto-merging ${a}`,0),pn(c.mode)||pn(f.mode)||pn(l.mode)){o.push({path:a,reason:"content"}),s(a,`CONFLICT (content): Merge conflict in ${a}`,1),r.push(Me(a,d,c.mode,1)),r.push(Me(a,u,f.mode,2)),r.push(Me(a,m,l.mode,3)),i.set(a,{hash:u,mode:f.mode});return}let h=await oe(e,d),p=await oe(e,u),g=await oe(e,m);if(Se(p)||Se(g)||Se(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(Me(a,d,c.mode,1)),r.push(Me(a,u,f.mode,2)),r.push(Me(a,m,l.mode,3)),i.set(a,{hash:u,mode:f.mode});return}let w=Pt(h),y=Pt(p),x=Pt(g),b=as(y,w,x,{conflictStyle:n?.conflictStyle});if(b.conflict){let k=t.pathnames[1],E=t.pathnames[2],R=k!==a||E!==a,P={path:a,reason:"content"};R&&(k!==a&&(P.oursOrigPath=k),E!==a&&(P.theirsOrigPath=E)),o.push(P),s(a,`CONFLICT (content): Merge conflict in ${a}`,1),r.push(Me(a,d,c.mode,1)),r.push(Me(a,u,f.mode,2)),r.push(Me(a,m,l.mode,3));let C=R?`${n?.a??"HEAD"}:${k}`:n?.a??"HEAD",v=R?`${n?.b??"theirs"}:${E}`:n?.b??"theirs",D=lr(p,h,g,{a:C,b:v,conflictStyle:n?.conflictStyle}),O=await $e(e,"blob",Wn.encode(D));i.set(a,{hash:O,mode:f.mode})}else{let k=await Ui(e,b.result);r.push(Me(a,k,f.mode))}return}}var ph=200;async function Af(e,t,n,r,o){let s=await Promise.all(r.map(async l=>({hash:l,timestamp:(await j(e,l)).committer.timestamp})));s.sort((l,d)=>l.timestamp-d.timestamp);let i=s.map(l=>l.hash),a=i[0],c=a,f=(await j(e,a)).tree;for(let l=1;l<i.length;l++){let d=i[l],u=(await j(e,d)).tree,m=null;if(o>=ph)m=f;else{let g=await Nt(e,c,d);g.length===0?m=null:g.length===1?m=(await j(e,g[0])).tree:m=await Af(e,c,d,g,o+1)}let h=await Ft(e,m,f,u);f=await gh(e,h,o);let p=tn({type:"commit",tree:f,parents:[c,d],author:Cf,committer:Cf,message:"merged common ancestors"});c=await $e(e,"commit",p)}return f}async function gh(e,t,n){let r=t.entries.filter(a=>a.stage===0),o=new Map;for(let a of t.entries)a.stage>0&&o.set(`${a.path}\0${a.stage}`,a);let s=(a,c)=>o.get(`${a}\0${c}`),i={a:"Temporary merge branch 1",b:"Temporary merge branch 2",markerSize:7+n*2};for(let a of t.conflicts){if(a.reason==="delete-modify"||a.reason==="rename-delete"){let l=s(a.path,1);if(l){r.push({...l,stage:0});continue}}if(a.reason==="rename-rename"){let l=a.oursPath??a.path,d=a.theirsPath??a.path,u=s(a.path,1),m=s(l,2),h=s(d,3);if(m&&h){let p=Cr.decode((await we(e,m.hash)).content),g=Cr.decode((await we(e,h.hash)).content),w=u?Cr.decode((await we(e,u.hash)).content):"",y=8+n*2,x=i.a??"Temporary merge branch 1",b=i.b??"Temporary merge branch 2",k=lr(p,w,g,{a:`${x}:${l}`,o:i.o,b:`${b}:${d}`,markerSize:y}),E=await $e(e,"blob",Wn.encode(k));r.push({path:l,mode:m.mode,hash:E,stage:0,stat:Ie()}),r.push({path:d,mode:h.mode,hash:E,stage:0,stat:Ie()});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 l=Cr.decode((await we(e,c.hash)).content),d=Cr.decode((await we(e,f.hash)).content),u=a.reason==="content"?s(a.path,1):null,m=u?Cr.decode((await we(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,y=h?`${g}:${a.theirsOrigPath??a.path}`:g,x=lr(l,m,d,{a:w,o:i.o,b:y,markerSize:i.markerSize}),b=await $e(e,"blob",Wn.encode(x));r.push({path:a.path,mode:c.mode,hash:b,stage:0,stat:Ie()})}else c?r.push({...c,stage:0}):f&&r.push({...f,stage:0})}return r.sort((a,c)=>Oe(a.path,c.path)),Ge(e,r)}async function Ui(e,t){let n=t.map(_i);if(n.length===0)return $e(e,"blob",Wn.encode(""));let s=(t[t.length-1]??"").endsWith("\0")?n.join(`
245
+ `)}function Ct(e){if(e==="")return[];let t=e.split(`
246
+ `);if(t[t.length-1]==="")t.pop();else{let n=t[t.length-1]??"";t[t.length-1]=`${n}\0`}return t}function _i(e){return e.endsWith("\0")?e.slice(0,-1):e}function Rf(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}Ce();ie();un();le();Zn();ve();tt();sn();var Cr=new TextDecoder,Wn=new TextEncoder,xf={name:"virtual",email:"virtual@merge",timestamp:0,timezone:"+0000"};async function Ft(e,t,n,r,o){let{paths:s,baseMap:i,oursMap:a,theirsMap:c}=await dh(e,t,n,r),f=await mh(e,s,i,a,c,o);return hh(e,s,o,f)}async function fs(e,t,n,r){let o=await Nt(e,t,n),s=await j(e,t),i=await j(e,n);if(o.length===0)return{...await Ft(e,null,s.tree,i.tree,r),baseTree:null};if(o.length===1){let f=await j(e,o[0]);return{...await Ft(e,f.tree,s.tree,i.tree,r),baseTree:f.tree}}let a=await Hf(e,t,n,o,1);return{...await Ft(e,a,s.tree,i.tree,r),baseTree:a}}async function dh(e,t,n,r){let o=await ce(e,t),s=await ce(e,n),i=await ce(e,r),a=new Set;for(let f of o.keys())a.add(f);for(let f of s.keys())a.add(f);for(let f of i.keys())a.add(f);let c=new Map;for(let f of a){let l=o.get(f)??null,d=s.get(f)??null,u=i.get(f)??null,m=l?{hash:l.hash,mode:l.mode}:null,h=d?{hash:d.hash,mode:d.mode}:null,p=u?{hash:u.hash,mode:u.mode}:null,g=(l?1:0)|(d?2:0)|(u?4:0),w=l?.hash??null,y=d?.hash??null,x=u?.hash??null,b=0;w!==null&&w===y&&(b|=3),w!==null&&w===x&&(b|=5),y!==null&&y===x&&(b|=6);let k={path:f,stages:[m,h,p],pathnames:[f,f,f],filemask:g,matchMask:b,merged:{result:null,clean:!1},pathConflict:!1};if(uh(k)){c.set(f,k);continue}c.set(f,k)}return{paths:c,baseMap:o,oursMap:s,theirsMap:i}}function uh(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 mh(e,t,n,r,o,s){let i={entries:[],conflicts:[],msgBuf:[],worktreeBlobs:new Map},a=[],c=[];for(let[A,S]of n)r.has(A)||a.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)||a.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 nt(e,a),l=await nt(e,c);if(f.renames.length===0&&l.renames.length===0)return i;let d=new Map,u=new Map;for(let A of f.renames)d.set(A.oldPath,A);for(let A of l.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,N=0){i.msgBuf.push({sortKey:A,subOrder:N,text:S})}for(let A of[...n.keys()].sort()){let S=d.get(A),N=u.get(A);if(!S&&!N)continue;let B=n.get(A);if(h.add(A),S&&N)if(h.add(S.newPath),h.add(N.newPath),S.newPath===N.newPath){let z=r.get(S.newPath),_=o.get(N.newPath);if(z.hash===_.hash)i.entries.push(yt(S.newPath,z));else{let U=Ni(t,S.newPath);U.stages=[{hash:B.hash,mode:B.mode},{hash:z.hash,mode:z.mode},{hash:_.hash,mode:_.mode}],U.pathnames=[A,S.newPath,N.newPath],U.filemask=7,U.merged={result:null,clean:!1}}}else{let z=r.get(S.newPath),_=o.get(N.newPath),U=await vf(e,B,z,_,s);U.conflict&&w(A,`Auto-merging ${A}`,-1),i.conflicts.push({path:A,reason:"rename-rename",oursPath:S.newPath,theirsPath:N.newPath}),w(A,`CONFLICT (rename/rename): ${A} renamed to ${S.newPath} in ${p} and to ${N.newPath} in ${g}.`),i.entries.push(yt(A,B,1)),i.entries.push(ot(S.newPath,z.mode,U.hash,2)),i.entries.push(ot(N.newPath,_.mode,U.hash,3)),i.worktreeBlobs.set(S.newPath,{hash:U.hash,mode:z.mode}),i.worktreeBlobs.set(N.newPath,{hash:U.hash,mode:_.mode})}else if(S){h.add(S.newPath);let z=o.get(A),_=r.get(S.newPath),U=m.has(S.newPath);if(z)if(U)await Sf(e,i,S.newPath,A,B,_,z,r,o,!1,s);else if(z.hash===B.hash&&_.hash===B.hash)i.entries.push(yt(S.newPath,_));else if(z.hash===B.hash)i.entries.push(yt(S.newPath,_));else if(_.hash===B.hash)i.entries.push(ot(S.newPath,_.mode,z.hash));else{let V=Ni(t,S.newPath);V.stages=[{hash:B.hash,mode:B.mode},{hash:_.hash,mode:_.mode},{hash:z.hash,mode:z.mode}],V.pathnames=[A,S.newPath,A],V.filemask=7,V.merged={result:null,clean:!1}}else{let V=o.get(S.newPath);if(i.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}.`),V){i.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),i.entries.push(yt(S.newPath,_,2)),i.entries.push(yt(S.newPath,V,3));let be=await bo(e,_.hash,V.hash,_.mode,s);i.worktreeBlobs.set(S.newPath,{hash:be,mode:_.mode})}else i.entries.push(ot(S.newPath,B.mode,B.hash,1)),i.entries.push(yt(S.newPath,_,2)),i.worktreeBlobs.set(S.newPath,{hash:_.hash,mode:_.mode}),_.hash!==B.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(N){h.add(N.newPath);let z=r.get(A),_=o.get(N.newPath),U=m.has(N.newPath);if(z)if(U)await Sf(e,i,N.newPath,A,B,z,_,r,o,!0,s);else if(z.hash===B.hash&&_.hash===B.hash)i.entries.push(yt(N.newPath,_));else if(z.hash===B.hash)i.entries.push(yt(N.newPath,_));else if(_.hash===B.hash)i.entries.push(ot(N.newPath,_.mode,z.hash));else{let V=Ni(t,N.newPath);V.stages=[{hash:B.hash,mode:B.mode},{hash:z.hash,mode:z.mode},{hash:_.hash,mode:_.mode}],V.pathnames=[A,A,N.newPath],V.filemask=7,V.merged={result:null,clean:!1}}else{let V=r.get(N.newPath);if(i.conflicts.push({path:N.newPath,reason:"rename-delete",deletedBy:"ours",oldPath:A}),w(N.newPath,`CONFLICT (rename/delete): ${A} renamed to ${N.newPath} in ${g}, but deleted in ${p}.`),V){i.conflicts.push({path:N.newPath,reason:"add-add"}),w(N.newPath,`Auto-merging ${N.newPath}`,0),w(N.newPath,`CONFLICT (add/add): Merge conflict in ${N.newPath}`,1),i.entries.push(yt(N.newPath,V,2)),i.entries.push(yt(N.newPath,_,3));let be=await bo(e,V.hash,_.hash,V.mode,s);i.worktreeBlobs.set(N.newPath,{hash:be,mode:V.mode})}else i.entries.push(ot(N.newPath,B.mode,B.hash,1)),i.entries.push(yt(N.newPath,_,3)),i.worktreeBlobs.set(N.newPath,{hash:_.hash,mode:_.mode}),_.hash!==B.hash&&w(N.newPath,`CONFLICT (modify/delete): ${N.newPath} deleted in ${p} and modified in ${g}. Version ${g} of ${N.newPath} left in tree.`,1)}}}let y=new Set(f.renames.map(A=>A.newPath)),x=new Set(l.renames.map(A=>A.newPath)),b=Pf(n,r),k=Pf(n,o),E=Cf(b,o,n),R=Cf(k,r,n),C=Of(f.renames,E),P=Of(l.renames,R),v=If(C),D=If(P);for(let A of[...v.keys()])D.has(A)&&(v.delete(A),D.delete(A));let O=new Set(v.keys()),H=new Set(D.keys());if(D.size>0)for(let A of a){if(A.status!=="added"||y.has(A.path))continue;let S=$f(A.path,D,O);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 z=r.get(A.path),_=o.get(S)??n.get(S);i.entries.push(ot(S,z.mode,z.hash,2)),_&&i.entries.push(ot(S,_.mode,_.hash,3)),i.worktreeBlobs.set(S,{hash:z.hash,mode:z.mode}),i.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 U=t.get(A.path);U&&(U.merged={result:null,clean:!0}),h.add(A.path);continue}let N=r.get(A.path);i.entries.push(ot(S,N.mode,N.hash,2)),i.worktreeBlobs.set(S,{hash:N.hash,mode:N.mode}),i.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 B=t.get(A.path);B&&(B.merged={result:null,clean:!0}),h.add(A.path)}if(v.size>0)for(let A of c){if(A.status!=="added"||x.has(A.path))continue;let S=$f(A.path,v,H);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 z=o.get(A.path),_=r.get(S)??n.get(S);_&&i.entries.push(ot(S,_.mode,_.hash,2)),i.entries.push(ot(S,z.mode,z.hash,3)),i.worktreeBlobs.set(S,{hash:z.hash,mode:z.mode}),i.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 U=t.get(A.path);U&&(U.merged={result:null,clean:!0}),h.add(A.path);continue}let N=o.get(A.path);i.entries.push(ot(S,N.mode,N.hash,3)),i.worktreeBlobs.set(S,{hash:N.hash,mode:N.mode}),i.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 B=t.get(A.path);B&&(B.merged={result:null,clean:!0}),h.add(A.path)}let G=new Set(i.entries.map(A=>A.path));for(let A of G){let S=t.get(A);S&&(S.merged={result:null,clean:!0})}for(let A of h){if(G.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 i}function Pf(e,t){let n=new Set;for(let s of e.keys()){let i=Ot(s);for(;i;)n.add(i),i=Ot(i)}let r=new Set;for(let s of t.keys()){let i=Ot(s);for(;i;)r.add(i),i=Ot(i)}let o=new Set;for(let s of n)r.has(s)||o.add(s);return o}function Cf(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=Ot(o)??"";e.has(s)&&r.add(s)}for(let o of[...r]){let s=Ot(o);for(;s;)e.has(s)&&!r.has(s)&&r.add(s),s=Ot(s)}return r}function Of(e,t){let n=new Map;for(let r of e){let o=Ot(r.oldPath),s=Ot(r.newPath),i=!0;for(;;){if(!i){let a=o.length+(o?1:0),c=s.length+(s?1:0),f=r.oldPath.slice(a,r.oldPath.indexOf("/",a)),l=r.newPath.slice(c,r.newPath.indexOf("/",c));if(f!==l)break}if(t.has(o)){let a=n.get(o);a||(a=new Map,n.set(o,a)),a.set(s,(a.get(s)??0)+1)}if(i=!1,!o||!s)break;o=Ot(o),s=Ot(s)}}return n}function If(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 $f(e,t,n){let r=Ot(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=Ot(r)}let o=t.get("");return o!==void 0&&!n.has(o)?`${o}/${e}`:null}function Ot(e){let t=e.lastIndexOf("/");return t===-1?"":e.slice(0,t)}async function Sf(e,t,n,r,o,s,i,a,c,f=!1,l){let d=f?a.get(n):c.get(n),u=f?i:s;if(d.hash===u.hash){t.entries.push(ot(n,d.mode,d.hash)),t.msgBuf.push({sortKey:r,subOrder:0,text:`Auto-merging ${r}`});return}let h=await vf(e,o,s,i,l,f?{oursPath:r,theirsPath:n}:{oursPath:n,theirsPath:r},8);if(d.hash===h.hash)t.entries.push(ot(n,d.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(yt(n,d,2)),t.entries.push(ot(n,i.mode,h.hash,3));let p=await bo(e,d.hash,h.hash,d.mode,l);t.worktreeBlobs.set(n,{hash:p,mode:d.mode})}else{t.entries.push(ot(n,s.mode,h.hash,2)),t.entries.push(yt(n,d,3));let p=await bo(e,h.hash,d.hash,s.mode,l);t.worktreeBlobs.set(n,{hash:p,mode:s.mode})}}async function vf(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(pn(t.mode)||pn(n.mode)||pn(r.mode))return{hash:n.hash,conflict:!0};let a=await oe(e,t.hash),c=await oe(e,n.hash),f=await oe(e,r.hash);if($e(c)||$e(f)||$e(a))return{hash:n.hash,conflict:!0};let l=Ct(a),d=Ct(c),u=Ct(f),m=o?.conflictStyle,h=as(d,l,u,{conflictStyle:m});if(!h.conflict)return{hash:await Ui(e,h.result),conflict:!1};let p=o?.a??"HEAD",g=o?.b??"theirs",w=s?.oursPath?`${p}:${s.oursPath}`:p,y=s?.theirsPath?`${g}:${s.theirsPath}`:g,x=lr(c,a,f,{a:w,b:y,markerSize:i??7,conflictStyle:m});return{hash:await Se(e,"blob",Wn.encode(x)),conflict:!0}}async function bo(e,t,n,r,o){let s=await oe(e,t),i=await oe(e,n),a=lr(s,"",i,{a:o?.a??"HEAD",b:o?.b??"theirs",conflictStyle:o?.conflictStyle});return Se(e,"blob",Wn.encode(a))}function yt(e,t,n=0){return ot(e,t.mode,t.hash,n)}function ot(e,t,n,r=0){return{path:e,mode:parseInt(t,8),hash:n,stage:r,stat:Ie()}}async function hh(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(je(m,h.merged.result.hash,h.merged.result.mode));continue}await ph(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),l=[],d=new Set;for(let m of o)m.stage===0&&(l.push(m),d.add(m.path));for(let[m,h]of a)d.has(m)||l.push(je(m,h.hash,h.mode));l.sort((m,h)=>Oe(m.path,h.path));let u=await Ge(e,l);return{entries:o,conflicts:s,messages:f,resultTree:u}}async function ph(e,t,n,r,o,s,i){let a=t.path,[c,f,l]=t.stages,d=c?.hash??null,u=f?.hash??null,m=l?.hash??null;if(u===null&&m!==null&&d!==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(je(a,d,c.mode,1)),r.push(je(a,m,l.mode,3)),i.set(a,{hash:m,mode:l.mode});return}if(m===null&&u!==null&&d!==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(je(a,d,c.mode,1)),r.push(je(a,u,f.mode,2)),i.set(a,{hash:u,mode:f.mode});return}if(d===null&&u!==null&&m!==null){if(u===m){r.push(je(a,u,f.mode));return}s(a,`Auto-merging ${a}`,0);let h=await oe(e,u),p=await oe(e,m);if($e(h)||$e(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(je(a,u,f.mode,2)),r.push(je(a,m,l.mode,3)),i.set(a,{hash:u,mode:f.mode});return}let g=Ct(""),w=Ct(h),y=Ct(p),x=as(w,g,y,{conflictStyle:n?.conflictStyle});if(!x.conflict){let E=await Ui(e,x.result);r.push(je(a,E,f.mode));return}o.push({path:a,reason:"add-add"}),s(a,`CONFLICT (add/add): Merge conflict in ${a}`,1),r.push(je(a,u,f.mode,2)),r.push(je(a,m,l.mode,3));let b=lr(h,"",p,{a:n?.a??"HEAD",b:n?.b??"theirs",conflictStyle:n?.conflictStyle}),k=await Se(e,"blob",Wn.encode(b));i.set(a,{hash:k,mode:f.mode});return}if(d!==null&&u!==null&&m!==null){if(u===d){r.push(je(a,m,l.mode));return}if(m===d){r.push(je(a,u,f.mode));return}if(u===m){r.push(je(a,u,f.mode));return}if(s(a,`Auto-merging ${a}`,0),pn(c.mode)||pn(f.mode)||pn(l.mode)){o.push({path:a,reason:"content"}),s(a,`CONFLICT (content): Merge conflict in ${a}`,1),r.push(je(a,d,c.mode,1)),r.push(je(a,u,f.mode,2)),r.push(je(a,m,l.mode,3)),i.set(a,{hash:u,mode:f.mode});return}let h=await oe(e,d),p=await oe(e,u),g=await oe(e,m);if($e(p)||$e(g)||$e(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(je(a,d,c.mode,1)),r.push(je(a,u,f.mode,2)),r.push(je(a,m,l.mode,3)),i.set(a,{hash:u,mode:f.mode});return}let w=Ct(h),y=Ct(p),x=Ct(g),b=as(y,w,x,{conflictStyle:n?.conflictStyle});if(b.conflict){let k=t.pathnames[1],E=t.pathnames[2],R=k!==a||E!==a,C={path:a,reason:"content"};R&&(k!==a&&(C.oursOrigPath=k),E!==a&&(C.theirsOrigPath=E)),o.push(C),s(a,`CONFLICT (content): Merge conflict in ${a}`,1),r.push(je(a,d,c.mode,1)),r.push(je(a,u,f.mode,2)),r.push(je(a,m,l.mode,3));let P=R?`${n?.a??"HEAD"}:${k}`:n?.a??"HEAD",v=R?`${n?.b??"theirs"}:${E}`:n?.b??"theirs",D=lr(p,h,g,{a:P,b:v,conflictStyle:n?.conflictStyle}),O=await Se(e,"blob",Wn.encode(D));i.set(a,{hash:O,mode:f.mode})}else{let k=await Ui(e,b.result);r.push(je(a,k,f.mode))}return}}var gh=200;async function Hf(e,t,n,r,o){let s=await Promise.all(r.map(async l=>({hash:l,timestamp:(await j(e,l)).committer.timestamp})));s.sort((l,d)=>l.timestamp-d.timestamp);let i=s.map(l=>l.hash),a=i[0],c=a,f=(await j(e,a)).tree;for(let l=1;l<i.length;l++){let d=i[l],u=(await j(e,d)).tree,m=null;if(o>=gh)m=f;else{let g=await Nt(e,c,d);g.length===0?m=null:g.length===1?m=(await j(e,g[0])).tree:m=await Hf(e,c,d,g,o+1)}let h=await Ft(e,m,f,u);f=await wh(e,h,o);let p=tn({type:"commit",tree:f,parents:[c,d],author:xf,committer:xf,message:"merged common ancestors"});c=await Se(e,"commit",p)}return f}async function wh(e,t,n){let r=t.entries.filter(a=>a.stage===0),o=new Map;for(let a of t.entries)a.stage>0&&o.set(`${a.path}\0${a.stage}`,a);let s=(a,c)=>o.get(`${a}\0${c}`),i={a:"Temporary merge branch 1",b:"Temporary merge branch 2",markerSize:7+n*2};for(let a of t.conflicts){if(a.reason==="delete-modify"||a.reason==="rename-delete"){let l=s(a.path,1);if(l){r.push({...l,stage:0});continue}}if(a.reason==="rename-rename"){let l=a.oursPath??a.path,d=a.theirsPath??a.path,u=s(a.path,1),m=s(l,2),h=s(d,3);if(m&&h){let p=Cr.decode((await we(e,m.hash)).content),g=Cr.decode((await we(e,h.hash)).content),w=u?Cr.decode((await we(e,u.hash)).content):"",y=8+n*2,x=i.a??"Temporary merge branch 1",b=i.b??"Temporary merge branch 2",k=lr(p,w,g,{a:`${x}:${l}`,o:i.o,b:`${b}:${d}`,markerSize:y}),E=await Se(e,"blob",Wn.encode(k));r.push({path:l,mode:m.mode,hash:E,stage:0,stat:Ie()}),r.push({path:d,mode:h.mode,hash:E,stage:0,stat:Ie()});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 l=Cr.decode((await we(e,c.hash)).content),d=Cr.decode((await we(e,f.hash)).content),u=a.reason==="content"?s(a.path,1):null,m=u?Cr.decode((await we(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,y=h?`${g}:${a.theirsOrigPath??a.path}`:g,x=lr(l,m,d,{a:w,o:i.o,b:y,markerSize:i.markerSize}),b=await Se(e,"blob",Wn.encode(x));r.push({path:a.path,mode:c.mode,hash:b,stage:0,stat:Ie()})}else c?r.push({...c,stage:0}):f&&r.push({...f,stage:0})}return r.sort((a,c)=>Oe(a.path,c.path)),Ge(e,r)}async function Ui(e,t){let n=t.map(_i);if(n.length===0)return Se(e,"blob",Wn.encode(""));let s=(t[t.length-1]??"").endsWith("\0")?n.join(`
247
247
  `):`${n.join(`
248
248
  `)}
249
- `;return $e(e,"blob",Wn.encode(s))}function Me(e,t,n,r=0){let o=typeof n=="string"?parseInt(n,8):n;return{path:e,mode:o,hash:t,stage:r,stat:Ie()}}function Ni(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 cs(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}
249
+ `;return Se(e,"blob",Wn.encode(s))}function je(e,t,n,r=0){let o=typeof n=="string"?parseInt(n,8):n;return{path:e,mode:o,hash:t,stage:r,stat:Ie()}}function Ni(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 cs(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}
250
250
  ${e.join(" ")}
251
251
  Merge with strategy ort failed.
252
252
  `;let c=e.map(l=>` ${l}`).join(`
@@ -261,7 +261,7 @@ ${i}
261
261
  ${a}
262
262
  Aborting
263
263
  fatal: ${n} failed
264
- `}function vf(e,t,n,r){let o=[];if(e.length>0){let i=e.map(a=>` ${a}`).join(`
264
+ `}function Tf(e,t,n,r){let o=[];if(e.length>0){let i=e.map(a=>` ${a}`).join(`
265
265
  `);o.push(`error: Your local changes to the following files would be overwritten by ${n}:
266
266
  ${i}
267
267
  Please commit your changes or stash them before you ${n}.
@@ -271,13 +271,13 @@ ${i}
271
271
  Please move or remove them before you ${n}.
272
272
  `)}let s=r==="merge"?"Merge with strategy ort failed.":`fatal: ${r} failed`;return`${o.join("")}Aborting
273
273
  ${s}
274
- `}async function kn(e,t,n,r){let o=await K(e),s=await ce(e,n);if(!r.skipStagedChangeCheck&&e.workTree){let h=new Map(je(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 Fi(e,o,s);let w=r.operationName??"merge",y=r.callerCommand??"merge";return{ok:!1,stdout:"",stderr:cs(g,w,y,"local","staged"),exitCode:r.errorExitCode??2,failureKind:"staged"}}}if(e.workTree&&r.preflightOnewayCheck){let h=await tr(e,[{label:"target",treeHash:t.resultTree}],o,{mergeFn:qs,updateWorktree:!1,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge"});if(!h.success){await Fi(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(),x;return w.length>0&&y.length>0?x=vf(w,y,p,g):y.length>0?x=cs(y,p,g,"untracked","worktree"):x=cs(w,p,g,"local","worktree"),{ok:!1,stdout:"",stderr:x,exitCode:r.errorExitCode??2,failureKind:"worktree"}}}if(e.workTree){let h=await tr(e,[{label:"current",treeHash:n},{label:"target",treeHash:t.resultTree}],o,{mergeFn:zs,updateWorktree:!0,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge",allowStagedChanges:!!r.preflightOnewayCheck});if(!h.success){await Fi(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=h.errors.filter(k=>k.error==="WOULD_OVERWRITE"||k.error==="NOT_UPTODATE_FILE").map(k=>k.path).sort(),y=h.errors.filter(k=>k.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||k.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(k=>k.path).sort(),x=[];w.length>0&&x.push(cs(w,p,g,"local","worktree")),y.length>0&&x.push(cs(y,p,g,"untracked","worktree"));let b;return x.length>1?b=vf(w,y,p,g):b=x[0]??"",{ok:!1,stdout:"",stderr:b,exitCode:r.errorExitCode??2,failureKind:"worktree"}}await De(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)),l=[...a,...f];l.sort((h,p)=>Oe(h.path,p.path)||h.stage-p.stage);let d={version:2,entries:l};await ae(e,d);let u=l.filter(h=>h.stage===0),m=await Ge(e,u);return{ok:!0,finalIndex:d,mergedTreeHash:m}}async function Fi(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 ct(e,{path:r.path,hash:r.hash,mode:r.mode})}}ie();Fe();ue();ve();sn();function Df(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:S().describe("Abort the current cherry-pick operation"),continue:S().describe("Continue the cherry-pick after conflict resolution"),skip:S().describe("Skip the current cherry-pick and continue with the rest"),"record-origin":S().alias("x").describe('Append "(cherry picked from commit ...)" to the commit message'),mainline:J.number().alias("m").describe("Select parent number for merge commit (1-based)"),noCommit:S().alias("n").describe("Apply changes without creating a commit")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort){let B=await t?.hooks?.preCherryPick?.({repo:s,mode:"abort",commit:null});if(ee(B))return{stdout:"",stderr:B.message??"",exitCode:1};let z=await bh(s,r.env);return z.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),z}if(n.continue){let B=await t?.hooks?.preCherryPick?.({repo:s,mode:"continue",commit:null});if(ee(B))return{stdout:"",stderr:B.message??"",exitCode:1};let z=await yh(s,r.env);return z.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"continue",commitHash:null,hadConflicts:!1}),z}if(n.skip)return wh(s,r.env);let i=n.commit;if(!i)return I("you must specify a commit to cherry-pick");let a=await t?.hooks?.preCherryPick?.({repo:s,mode:"pick",commit:i});if(ee(a))return{stdout:"",stderr:a.message??"",exitCode:1};let c=await He(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Ze(s);if(M(d))return d;let u=await K(s);if(n.noCommit){let B=u.entries.filter(z=>z.stage>0);if(B.length>0){let U=B.slice(0,10).map(be=>`${be.path}: unmerged (${be.hash})`).join(`
274
+ `}async function kn(e,t,n,r){let o=await K(e),s=await ce(e,n);if(!r.skipStagedChangeCheck&&e.workTree){let h=new Map(De(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 Fi(e,o,s);let w=r.operationName??"merge",y=r.callerCommand??"merge";return{ok:!1,stdout:"",stderr:cs(g,w,y,"local","staged"),exitCode:r.errorExitCode??2,failureKind:"staged"}}}if(e.workTree&&r.preflightOnewayCheck){let h=await tr(e,[{label:"target",treeHash:t.resultTree}],o,{mergeFn:qs,updateWorktree:!1,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge"});if(!h.success){await Fi(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(),x;return w.length>0&&y.length>0?x=Tf(w,y,p,g):y.length>0?x=cs(y,p,g,"untracked","worktree"):x=cs(w,p,g,"local","worktree"),{ok:!1,stdout:"",stderr:x,exitCode:r.errorExitCode??2,failureKind:"worktree"}}}if(e.workTree){let h=await tr(e,[{label:"current",treeHash:n},{label:"target",treeHash:t.resultTree}],o,{mergeFn:zs,updateWorktree:!0,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge",allowStagedChanges:!!r.preflightOnewayCheck});if(!h.success){await Fi(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=h.errors.filter(k=>k.error==="WOULD_OVERWRITE"||k.error==="NOT_UPTODATE_FILE").map(k=>k.path).sort(),y=h.errors.filter(k=>k.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||k.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(k=>k.path).sort(),x=[];w.length>0&&x.push(cs(w,p,g,"local","worktree")),y.length>0&&x.push(cs(y,p,g,"untracked","worktree"));let b;return x.length>1?b=Tf(w,y,p,g):b=x[0]??"",{ok:!1,stdout:"",stderr:b,exitCode:r.errorExitCode??2,failureKind:"worktree"}}await Me(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)),l=[...a,...f];l.sort((h,p)=>Oe(h.path,p.path)||h.stage-p.stage);let d={version:2,entries:l};await ae(e,d);let u=l.filter(h=>h.stage===0),m=await Ge(e,u);return{ok:!0,finalIndex:d,mergedTreeHash:m}}async function Fi(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 ct(e,{path:r.path,hash:r.hash,mode:r.mode})}}ie();Fe();ue();ve();sn();function Af(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:$().describe("Abort the current cherry-pick operation"),continue:$().describe("Continue the cherry-pick after conflict resolution"),skip:$().describe("Skip the current cherry-pick and continue with the rest"),"record-origin":$().alias("x").describe('Append "(cherry picked from commit ...)" to the commit message'),mainline:J.number().alias("m").describe("Select parent number for merge commit (1-based)"),noCommit:$().alias("n").describe("Apply changes without creating a commit")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort){let B=await t?.hooks?.preCherryPick?.({repo:s,mode:"abort",commit:null});if(ee(B))return{stdout:"",stderr:B.message??"",exitCode:1};let z=await yh(s,r.env);return z.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),z}if(n.continue){let B=await t?.hooks?.preCherryPick?.({repo:s,mode:"continue",commit:null});if(ee(B))return{stdout:"",stderr:B.message??"",exitCode:1};let z=await Eh(s,r.env);return z.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"continue",commitHash:null,hadConflicts:!1}),z}if(n.skip)return bh(s,r.env);let i=n.commit;if(!i)return I("you must specify a commit to cherry-pick");let a=await t?.hooks?.preCherryPick?.({repo:s,mode:"pick",commit:i});if(ee(a))return{stdout:"",stderr:a.message??"",exitCode:1};let c=await He(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Ze(s);if(M(d))return d;let u=await K(s);if(n.noCommit){let B=u.entries.filter(z=>z.stage>0);if(B.length>0){let U=B.slice(0,10).map(be=>`${be.path}: unmerged (${be.hash})`).join(`
275
275
  `),V=B.length>10?`
276
276
  ...`:"";return L(`${U}${V}
277
277
  error: your index file is unmerged.
278
278
  fatal: cherry-pick failed
279
279
  `,128)}}else{let B=wn(u,"Cherry-picking",`fatal: cherry-pick failed
280
- `);if(B)return B}let m=await j(s,d),p=!!n["record-origin"]?Eh(l.message,f):l.message;if(s.workTree&&!n.noCommit){let B=await ce(s,m.tree);if(yr(u,B))return L(`error: your local changes would be overwritten by cherry-pick.
280
+ `);if(B)return B}let m=await j(s,d),p=!!n["record-origin"]?kh(l.message,f):l.message;if(s.workTree&&!n.noCommit){let B=await ce(s,m.tree);if(Er(u,B))return L(`error: your local changes would be overwritten by cherry-pick.
281
281
  hint: commit your changes or stash them to proceed.
282
282
  fatal: cherry-pick failed
283
283
  `,128)}if(l.parents.length>1){if(!n.mainline)return L(`error: commit ${f} is a merge but no -m option was given.
@@ -309,59 +309,59 @@ hint: You can instead skip this commit with "git cherry-pick --skip".
309
309
  hint: To abort and get back to the state before "git cherry-pick",
310
310
  hint: run "git cherry-pick --abort".
311
311
  hint: Disable this message with "git config set advice.mergeConflict false"
312
- `,exitCode:1})}let R=E.mergedTreeHash;if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};let P=await Qe(s,r.env);if(M(P))return P;let C=await mt(s,R,[d],l.author,P,p);await Mt(s),await jt(s);let v=await Q(s),D=p.split(`
313
- `)[0]??"",O=v?.type==="symbolic"?v.target:"HEAD";await re(s,r.env,O,d,C,`cherry-pick: ${D}`,v?.type==="symbolic");let H=v?.type==="symbolic"?Re(v.target):"detached HEAD",G=m.tree,A=await fn(s,G,R,l.author,P,!0),$=Ht(H,C,p),N=k.messages.length>0?`${k.messages.join(`
312
+ `,exitCode:1})}let R=E.mergedTreeHash;if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};let C=await Qe(s,r.env);if(M(C))return C;let P=await ht(s,R,[d],l.author,C,p);await Mt(s),await jt(s);let v=await Q(s),D=p.split(`
313
+ `)[0]??"",O=v?.type==="symbolic"?v.target:"HEAD";await re(s,r.env,O,d,P,`cherry-pick: ${D}`,v?.type==="symbolic");let H=v?.type==="symbolic"?Re(v.target):"detached HEAD",G=m.tree,A=await fn(s,G,R,l.author,C,!0),S=Ht(H,P,p),N=k.messages.length>0?`${k.messages.join(`
314
314
  `)}
315
- `:"";return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:C,hadConflicts:!1}),{stdout:`${N}${$}
316
- ${A}`,stderr:"",exitCode:0}}})}async function wh(e,t){if(!await F(e,"CHERRY_PICK_HEAD"))return L(`error: no cherry-pick in progress
315
+ `:"";return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:P,hadConflicts:!1}),{stdout:`${N}${S}
316
+ ${A}`,stderr:"",exitCode:0}}})}async function bh(e,t){if(!await F(e,"CHERRY_PICK_HEAD"))return L(`error: no cherry-pick in progress
317
317
  fatal: cherry-pick failed
318
318
  `,128);let r=await Z(e);if(!r)return I("unable to resolve HEAD");let o=await j(e,r),s=await K(e),i=await Vs(e,o.tree,s,r);if(!i.success){let a=i.errorOutput;return{...a,stderr:a.stderr+`error: failed to skip the commit
319
319
  fatal: cherry-pick failed
320
- `}}return await ae(e,{version:2,entries:i.newEntries}),await De(e,i.worktreeOps),await re(e,t,"HEAD",r,r,`reset: moving to ${r}`),await Mt(e),{stdout:"",stderr:"",exitCode:0}}async function bh(e,t){return await F(e,"CHERRY_PICK_HEAD")?Dn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
320
+ `}}return await ae(e,{version:2,entries:i.newEntries}),await Me(e,i.worktreeOps),await re(e,t,"HEAD",r,r,`reset: moving to ${r}`),await Mt(e),{stdout:"",stderr:"",exitCode:0}}async function yh(e,t){return await F(e,"CHERRY_PICK_HEAD")?Dn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
321
321
  fatal: cherry-pick failed
322
322
  `,128),operationName:"cherry-pick",clearState:Mt,origHeadAsTargetRev:!0}):await F(e,"REVERT_HEAD")?Dn(e,t,{operationRef:"REVERT_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
323
323
  fatal: cherry-pick failed
324
324
  `,128),operationName:"cherry-pick",clearState:jt,origHeadAsTargetRev:!0}):L(`error: no cherry-pick or revert in progress
325
325
  fatal: cherry-pick failed
326
- `,128)}async function yh(e,t){let n=await F(e,"CHERRY_PICK_HEAD");if(!n)return L(`error: no cherry-pick or revert in progress
326
+ `,128)}async function Eh(e,t){let n=await F(e,"CHERRY_PICK_HEAD");if(!n)return L(`error: no cherry-pick or revert in progress
327
327
  fatal: cherry-pick failed
328
- `,128);let r=await K(e),o=wn(r,"Committing");if(o)return o;let s=await j(e,n),i=await Ce(e,"MERGE_MSG");if(!i)return L(`Aborting commit due to empty commit message.
329
- `,1);let a=await Ce(e,"SQUASH_MSG");a&&(i=a+i),i=an(i);let c=je(r),f=await Ge(e,c),l=await Ze(e);if(M(l))return l;let u=(await j(e,l)).tree,m=await Qe(e,t);if(M(m))return m;let h=At(i),p=await mt(e,f,[l],s.author,m,h);await Mt(e),await jt(e),await pe(e,"SQUASH_MSG");let g=await Q(e),w=fe(h),y=g?.type==="symbolic"?g.target:"HEAD";await re(e,t,y,l,p,`commit (cherry-pick): ${w}`,g?.type==="symbolic");let x=g?.type==="symbolic"?Re(g.target):"detached HEAD",b=await fn(e,u,f,s.author,m,!0);return{stdout:`${Ht(x,p,i)}
330
- ${b}`,stderr:"",exitCode:0}}function Eh(e,t){let n=`(cherry picked from commit ${t})`,r=e.replace(/\n+$/,""),o=r.lastIndexOf(`
328
+ `,128);let r=await K(e),o=wn(r,"Committing");if(o)return o;let s=await j(e,n),i=await Pe(e,"MERGE_MSG");if(!i)return L(`Aborting commit due to empty commit message.
329
+ `,1);let a=await Pe(e,"SQUASH_MSG");a&&(i=a+i),i=an(i);let c=De(r),f=await Ge(e,c),l=await Ze(e);if(M(l))return l;let u=(await j(e,l)).tree,m=await Qe(e,t);if(M(m))return m;let h=At(i),p=await ht(e,f,[l],s.author,m,h);await Mt(e),await jt(e),await pe(e,"SQUASH_MSG");let g=await Q(e),w=fe(h),y=g?.type==="symbolic"?g.target:"HEAD";await re(e,t,y,l,p,`commit (cherry-pick): ${w}`,g?.type==="symbolic");let x=g?.type==="symbolic"?Re(g.target):"detached HEAD",b=await fn(e,u,f,s.author,m,!0);return{stdout:`${Ht(x,p,i)}
330
+ ${b}`,stderr:"",exitCode:0}}function kh(e,t){let n=`(cherry picked from commit ${t})`,r=e.replace(/\n+$/,""),o=r.lastIndexOf(`
331
331
  `),s=o===-1?r:r.slice(o+1);return/^\(cherry picked from commit [0-9a-f]+\)$/.test(s)?`${r}
332
332
  ${n}
333
333
  `:`${r}
334
334
 
335
335
  ${n}
336
- `}se();Ne();Ws();Pe();le();function Mf(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:S().alias("f").describe("Required to actually remove files"),"dry-run":S().alias("n").describe("Don't actually remove anything, just show what would be done"),directories:S().alias("d").describe("Also remove untracked directories"),removeIgnored:S().alias("x").describe("Remove ignored files as well"),onlyIgnored:S().alias("X").describe("Remove only ignored files"),exclude:J.string().alias("e").describe("Additional exclude pattern")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Xe(s);if(i)return i;let a=s.workTree,c=n["dry-run"],f=n.force,l=n.directories,d=n.removeIgnored,u=n.onlyIgnored,m=await t?.hooks?.preClean?.({repo:s,dryRun:c,force:f,removeDirs:l,removeIgnored:d,onlyIgnored:u});if(ee(m))return{stdout:"",stderr:m.message??"",exitCode:1};if(!f&&!c&&await ke(s,"clean.requireForce")!=="false")return I("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(P=>P.path)),g=ut(s,r.cwd),w=n.pathspec,y=w.length>0?w.map(P=>Ue(P,g)):null,x=n.exclude?[n.exclude]:[],b=await jf(s,a,"",{trackedPaths:p,removeDirs:l,removeIgnored:d,onlyIgnored:u,extraExcludes:x}),k;y?k=b.filter(P=>ye(y,P.path)):k=b,k.sort((P,C)=>P.path<C.path?-1:P.path>C.path?1:0);let E=[];if(c)for(let P of k){let C=P.isDir?`Would remove ${P.path}/`:`Would remove ${P.path}`;E.push(C)}else for(let P of k){let C=T(a,P.path);P.isDir?(await r.fs.rm(C,{recursive:!0}),E.push(`Removing ${P.path}/`)):(await r.fs.rm(C),E.push(`Removing ${P.path}`))}let R=E.length>0?`${E.join(`
336
+ `}se();Ne();Ws();Ce();le();function Df(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:$().alias("f").describe("Required to actually remove files"),"dry-run":$().alias("n").describe("Don't actually remove anything, just show what would be done"),directories:$().alias("d").describe("Also remove untracked directories"),removeIgnored:$().alias("x").describe("Remove ignored files as well"),onlyIgnored:$().alias("X").describe("Remove only ignored files"),exclude:J.string().alias("e").describe("Additional exclude pattern")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Xe(s);if(i)return i;let a=s.workTree,c=n["dry-run"],f=n.force,l=n.directories,d=n.removeIgnored,u=n.onlyIgnored,m=await t?.hooks?.preClean?.({repo:s,dryRun:c,force:f,removeDirs:l,removeIgnored:d,onlyIgnored:u});if(ee(m))return{stdout:"",stderr:m.message??"",exitCode:1};if(!f&&!c&&await ke(s,"clean.requireForce")!=="false")return I("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(C=>C.path)),g=mt(s,r.cwd),w=n.pathspec,y=w.length>0?w.map(C=>Ue(C,g)):null,x=n.exclude?[n.exclude]:[],b=await Mf(s,a,"",{trackedPaths:p,removeDirs:l,removeIgnored:d,onlyIgnored:u,extraExcludes:x}),k;y?k=b.filter(C=>ye(y,C.path)):k=b,k.sort((C,P)=>C.path<P.path?-1:C.path>P.path?1:0);let E=[];if(c)for(let C of k){let P=C.isDir?`Would remove ${C.path}/`:`Would remove ${C.path}`;E.push(P)}else for(let C of k){let P=T(a,C.path);C.isDir?(await r.fs.rm(P,{recursive:!0}),E.push(`Removing ${C.path}/`)):(await r.fs.rm(P),E.push(`Removing ${C.path}`))}let R=E.length>0?`${E.join(`
337
337
  `)}
338
- `:"";return await t?.hooks?.postClean?.({repo:s,removed:k.map(P=>P.path),dryRun:c}),{stdout:R,stderr:"",exitCode:0}}})}async function jf(e,t,n,r){let o=[],s=!r.removeIgnored,i=null;if(s||r.onlyIgnored){i=r._ignore??await br(e);let c=T(t,".gitignore");try{let f=await e.fs.readFile(c);i=Qn(i,f,n,c)}catch{}if(!r._ignore&&r.extraExcludes.length>0){let f=r.extraExcludes.join(`
339
- `),l=Qr(f,"","<cli>");i={...i,dirPatterns:[l,...i.dirPatterns]}}}let a=await e.fs.readdir(t);for(let c of a){if(n===""&&c===".git")continue;let f=T(t,c),l=n?`${n}/${c}`:c,d=await e.fs.stat(f);if(d.isDirectory){let u=i&&nn(i,l,!0)==="ignored",m=kh(r.trackedPaths,l),h=()=>jf(e,f,l,{...r,_ignore:i??void 0});if(r.onlyIgnored){if(u&&!m){r.removeDirs&&o.push({path:l,isDir:!0});continue}let p=await h();!m&&r.removeDirs?p.length>0&&o.push({path:l,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:l,isDir:!0});else{let p=await h(),g=await e.fs.readdir(f);(p.length>0||g.length===0)&&o.push({path:l,isDir:!0})}}}else if(d.isFile){if(r.trackedPaths.has(l))continue;let u=i&&nn(i,l,!1)==="ignored";r.onlyIgnored?u&&o.push({path:l,isDir:!1}):u&&s||o.push({path:l,isDir:!1})}}return o}function kh(e,t){let n=`${t}/`;for(let r of e)if(r.startsWith(n))return!0;return!1}se();Ne();Cn();Pe();ie();le();Fe();ue();$n();ie();le();var ls=2147483647;async function Pr(e){let t=T(e.gitDir,"shallow");try{let n=await e.fs.readFile(t),r=new Set;for(let o of n.split(`
340
- `)){let s=o.trim();s.length===40&&r.add(s)}return r}catch{return new Set}}async function Rh(e,t){let n=T(e.gitDir,"shallow");if(t.size===0){try{await e.fs.rm(n,{force:!0})}catch{}return}let r=[...t].sort();await e.fs.writeFile(n,r.join(`
338
+ `:"";return await t?.hooks?.postClean?.({repo:s,removed:k.map(C=>C.path),dryRun:c}),{stdout:R,stderr:"",exitCode:0}}})}async function Mf(e,t,n,r){let o=[],s=!r.removeIgnored,i=null;if(s||r.onlyIgnored){i=r._ignore??await yr(e);let c=T(t,".gitignore");try{let f=await e.fs.readFile(c);i=Qn(i,f,n,c)}catch{}if(!r._ignore&&r.extraExcludes.length>0){let f=r.extraExcludes.join(`
339
+ `),l=Qr(f,"","<cli>");i={...i,dirPatterns:[l,...i.dirPatterns]}}}let a=await e.fs.readdir(t);for(let c of a){if(n===""&&c===".git")continue;let f=T(t,c),l=n?`${n}/${c}`:c,d=await e.fs.stat(f);if(d.isDirectory){let u=i&&nn(i,l,!0)==="ignored",m=Rh(r.trackedPaths,l),h=()=>Mf(e,f,l,{...r,_ignore:i??void 0});if(r.onlyIgnored){if(u&&!m){r.removeDirs&&o.push({path:l,isDir:!0});continue}let p=await h();!m&&r.removeDirs?p.length>0&&o.push({path:l,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:l,isDir:!0});else{let p=await h(),g=await e.fs.readdir(f);(p.length>0||g.length===0)&&o.push({path:l,isDir:!0})}}}else if(d.isFile){if(r.trackedPaths.has(l))continue;let u=i&&nn(i,l,!1)==="ignored";r.onlyIgnored?u&&o.push({path:l,isDir:!1}):u&&s||o.push({path:l,isDir:!1})}}return o}function Rh(e,t){let n=`${t}/`;for(let r of e)if(r.startsWith(n))return!0;return!1}se();Ne();Pn();Ce();ie();le();Fe();ue();Sn();ie();le();var ls=2147483647;async function Or(e){let t=T(e.gitDir,"shallow");try{let n=await e.fs.readFile(t),r=new Set;for(let o of n.split(`
340
+ `)){let s=o.trim();s.length===40&&r.add(s)}return r}catch{return new Set}}async function xh(e,t){let n=T(e.gitDir,"shallow");if(t.size===0){try{await e.fs.rm(n,{force:!0})}catch{}return}let r=[...t].sort();await e.fs.writeFile(n,r.join(`
341
341
  `)+`
342
- `)}async function yo(e){return(await Pr(e)).size>0}async function Or(e,t,n){let r=n??await Pr(e);for(let o of t.shallow)r.add(o);for(let o of t.unshallow)r.delete(o);await Rh(e,r)}async function Gf(e,t,n,r){if(n>=ls)return{shallow:[],unshallow:[...r]};let o=new Map,s=[];for(let f of t)!o.has(f)&&await Kt(e,f)&&(o.set(f,1),s.push({hash:f,level:1}));let i=new Set,a=0;for(;a<s.length;){let{hash:f,level:l}=s[a++];if(l>=n){i.add(f);continue}let d;try{d=await j(e,f)}catch{continue}for(let u of d.parents)!o.has(u)&&await Kt(e,u)&&(o.set(u,l+1),s.push({hash:u,level:l+1}))}let c=[];for(let f of r){let l=o.get(f);l!==void 0&&l<n&&c.push(f)}return{shallow:[...i],unshallow:c}}Ne();$n();dt();ie();var ko=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]),xh=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]),Eo=64,Ch=4,Bi=4096,Lf=65536,Ph=127;function Oh(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=Sh(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])^ko[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<=Eo)continue;let h=[],p=m.length/Eo;for(let g=0;g<Eo;g++)h.push(m[Math.floor(g*p)]);c.set(u,h),s[u]=Eo}let f=new Uint32Array(r+1),l=[],d=0;for(let u=0;u<r;u++){f[u]=d;let m=c.get(u);if(m){for(let h of m)l.push(h);d+=m.length}}return f[r]=d,{src:e,hashMask:o,buckets:f,entries:l}}function Ih(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=Nf(i,a,r),a=Nf(i,a,o),c(18),a++;let f=0,l=0,d=Math.min(16,o);for(let p=0;p<d;p++)i[a++]=t[p],f=(f<<8|t[p])^ko[f>>>23],l++;f=f>>>0;let u=d,m=0,h=0;for(;u<o;){if(h<Bi){f^=xh[t[u-16]],f=((f<<8|t[u])^ko[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 x=e.entries[y];if(x.val!==f)continue;let b=x.ptr,k=s.byteLength-b,E=o-u;if(k>E&&(k=E),k<=h)break;let R=0;for(;R<k&&s[b+R]===t[u+R];)R++;if(R>h&&(h=R,m=b,h>=Bi))break}}if(h<Ch)c(2),l===0&&a++,i[a++]=t[u++],l++,l===Ph&&(i[a-l-1]=l,l=0),h=0;else{if(l>0){for(;m>0&&s[m-1]===t[u-1];)if(h++,m--,u--,a--,!(--l>0)){a--,l=-1;break}l>0&&(i[a-l-1]=l),l=0}let p=h>Lf?h-Lf: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<Bi){f=0;for(let y=-16;y<0;y++)f=(f<<8|t[u+y])^ko[f>>>23];f=f>>>0}}if(n&&a>n)return null}return l>0&&(i[a-l-1]=l),n&&a>n?null:i.subarray(0,a)}var _f={blob:0,tree:1,commit:2,tag:3};function Ro(e,t){let n=t?.window??10,r=t?.depth??50,o=e.slice().sort((f,l)=>{let d=_f[f.type]??99,u=_f[l.type]??99;return d!==u?d-u:l.content.byteLength-f.content.byteLength}),s=new Map,i=[],a=[],c=[];for(let f=0;f<o.length;f++){let l=o[f],d={hash:l.hash,type:l.type,content:l.content,depth:0},u=null,m=null,h=Math.max(0,f-n);for(let p=f-1;p>=h;p--){let g=o[p];if(g.type!==l.type||(s.get(g.hash)?.depth??0)>=r||l.content.byteLength<g.content.byteLength>>>5)continue;let x=a[p-h]??null;if(!x)continue;let b=u?u.byteLength:l.content.byteLength/2|0;if(b<16)continue;let k=Ih(x,l.content,b);k&&(!u||k.byteLength<u.byteLength)&&(u=k,m=g.hash)}if(u&&m){d.delta=u,d.deltaBase=m;let p=s.get(m);d.depth=(p?.depth??0)+1}s.set(l.hash,d),i.push(d),a.length>=n&&(a.shift(),c.shift()),a.push(Oh(l.content)),c.push(l.hash)}return i}function Sh(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 Nf(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}Br();ue();ie();un();Kr();Ns();async function $h(e,t,n,r,o){let s=o??r,i=new Set;for(let l of n)await ds(e,l,i,s);let a=[...t];if(o&&r)for(let l of o)try{let d=await j(e,l);for(let u of d.parents)i.has(u)||a.push(u)}catch{}let c=[],f=new Set;for(let l of a)await us(e,l,i,f,c,r);return{count:c.length,objects:Th(c)}}async function Ir(e,t,n,r,o){let{count:s,objects:i}=await $h(e,t,n,r,o);return{count:s,objects:vh(e,i)}}async function*Th(e){for(let t of e)yield t}async function*vh(e,t){for await(let n of t){let r=await we(e,n.hash);yield{hash:n.hash,type:n.type,content:r.content}}}async function Sr(e){let t=[];for await(let n of e.objects)t.push(n);return t}async function ds(e,t,n,r){if(n.has(t)||(n.add(t),!await Kt(e,t)))return;let o=await we(e,t);switch(o.type){case"commit":{let s=en(o.content);if(await ds(e,s.tree,n,r),!r?.has(t))for(let i of s.parents)await ds(e,i,n,r);break}case"tree":{let s=Hn(o.content);for(let i of s.entries)await ds(e,i.hash,n,r);break}case"tag":{let s=mn(o.content);await ds(e,s.object,n,r);break}case"blob":break}}async function us(e,t,n,r,o,s){if(r.has(t)||n.has(t))return;r.add(t);let i=await we(e,t);switch(o.push({hash:t,type:i.type}),i.type){case"commit":{let a=en(i.content);if(await us(e,a.tree,n,r,o,s),!s?.has(t))for(let c of a.parents)await us(e,c,n,r,o,s);break}case"tree":{let a=Hn(i.content);for(let c of a.entries)await us(e,c.hash,n,r,o,s);break}case"tag":{let a=mn(i.content);await us(e,a.object,n,r,o,s);break}case"blob":break}}var Hh=new TextEncoder,xo=new TextDecoder,Ff=65520,Ah=new Uint8Array([48,48,48,48]);function Rn(e){let t=typeof e=="string"?Hh.encode(e):e,n=4+t.byteLength;if(n>Ff)throw new Error(`pkt-line too long: ${n} bytes (max ${Ff})`);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 Wi(){return Ah.slice()}function Co(...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 $r(e){let t=[],n=0;for(;n<e.byteLength;){if(n+4>e.byteLength)throw new Error("Truncated pkt-line header");let r=xo.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 Po(e){if(e.type==="flush")return"";let t=xo.decode(e.data);return t.endsWith(`
343
- `)?t.slice(0,-1):t}var Dh=1,Mh=2,jh=3;function qi(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 Dh:t.push(f),o+=f.byteLength;break;case Mh:n.push(xo.decode(f));break;case jh:r.push(xo.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}}dt();function zi(e){return e?e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:{Authorization:`Basic ${btoa(`${e.username}:${e.password}`)}`}:{}}async function Ki(e,t,n,r=globalThis.fetch){let o=e.replace(/\/+$/,""),s=await r(`${o}/info/refs?service=${t}`,{headers:{...zi(n),"User-Agent":"just-git/1.0"}});if(!s.ok)throw new Error(`HTTP ${s.status} discovering refs at ${o}`);let i=s.headers.get("content-type")??"",a=`application/x-${t}-advertisement`,c=new Uint8Array(await s.arrayBuffer());if(!i.startsWith(a)){let l=new TextDecoder().decode(c.subarray(0,5));if(!/^[0-9a-f]{4}#/.test(l))throw new Error(`Server does not support smart HTTP (Content-Type: ${i})`)}let f=$r(c);return Gh(f,t)}function Gh(e,t){let n=0,r=e[n];r?.type==="data"&&Po(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),l;if(f!==-1){l=new TextDecoder().decode(c.subarray(0,f)),s=new TextDecoder().decode(c.subarray(f+1)).replace(/\n$/,"").split(" ").filter(Boolean);for(let p of s)if(p.startsWith("symref=")){let g=p.slice(7),w=g.indexOf(":");w!==-1&&i.set(g.slice(0,w),g.slice(w+1))}}else l=new TextDecoder().decode(c).replace(/\n$/,"");let d=l.indexOf(" ");if(d===-1)continue;let u=l.slice(0,d),m=l.slice(d+1);if(!(u===te&&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 Lh=["multi_ack_detailed","no-done","side-band-64k","ofs-delta","include-tag","shallow"];async function Uf(e,t,n,r,o,s=globalThis.fetch,i){if(t.length===0)throw new Error("fetchPack requires at least one want");let a=Wf(r,Lh),c=[];c.push(Rn(`want ${t[0]} ${a.join(" ")}
342
+ `)}async function yo(e){return(await Or(e)).size>0}async function Ir(e,t,n){let r=n??await Or(e);for(let o of t.shallow)r.add(o);for(let o of t.unshallow)r.delete(o);await xh(e,r)}async function jf(e,t,n,r){if(n>=ls)return{shallow:[],unshallow:[...r]};let o=new Map,s=[];for(let f of t)!o.has(f)&&await Kt(e,f)&&(o.set(f,1),s.push({hash:f,level:1}));let i=new Set,a=0;for(;a<s.length;){let{hash:f,level:l}=s[a++];if(l>=n){i.add(f);continue}let d;try{d=await j(e,f)}catch{continue}for(let u of d.parents)!o.has(u)&&await Kt(e,u)&&(o.set(u,l+1),s.push({hash:u,level:l+1}))}let c=[];for(let f of r){let l=o.get(f);l!==void 0&&l<n&&c.push(f)}return{shallow:[...i],unshallow:c}}Ne();Sn();dt();ie();var ko=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]),Ph=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]),Eo=64,Ch=4,Bi=4096,Gf=65536,Oh=127;function Ih(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=Sh(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])^ko[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<=Eo)continue;let h=[],p=m.length/Eo;for(let g=0;g<Eo;g++)h.push(m[Math.floor(g*p)]);c.set(u,h),s[u]=Eo}let f=new Uint32Array(r+1),l=[],d=0;for(let u=0;u<r;u++){f[u]=d;let m=c.get(u);if(m){for(let h of m)l.push(h);d+=m.length}}return f[r]=d,{src:e,hashMask:o,buckets:f,entries:l}}function $h(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=_f(i,a,r),a=_f(i,a,o),c(18),a++;let f=0,l=0,d=Math.min(16,o);for(let p=0;p<d;p++)i[a++]=t[p],f=(f<<8|t[p])^ko[f>>>23],l++;f=f>>>0;let u=d,m=0,h=0;for(;u<o;){if(h<Bi){f^=Ph[t[u-16]],f=((f<<8|t[u])^ko[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 x=e.entries[y];if(x.val!==f)continue;let b=x.ptr,k=s.byteLength-b,E=o-u;if(k>E&&(k=E),k<=h)break;let R=0;for(;R<k&&s[b+R]===t[u+R];)R++;if(R>h&&(h=R,m=b,h>=Bi))break}}if(h<Ch)c(2),l===0&&a++,i[a++]=t[u++],l++,l===Oh&&(i[a-l-1]=l,l=0),h=0;else{if(l>0){for(;m>0&&s[m-1]===t[u-1];)if(h++,m--,u--,a--,!(--l>0)){a--,l=-1;break}l>0&&(i[a-l-1]=l),l=0}let p=h>Gf?h-Gf: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<Bi){f=0;for(let y=-16;y<0;y++)f=(f<<8|t[u+y])^ko[f>>>23];f=f>>>0}}if(n&&a>n)return null}return l>0&&(i[a-l-1]=l),n&&a>n?null:i.subarray(0,a)}var Lf={blob:0,tree:1,commit:2,tag:3};function Ro(e,t){let n=t?.window??10,r=t?.depth??50,o=e.slice().sort((f,l)=>{let d=Lf[f.type]??99,u=Lf[l.type]??99;return d!==u?d-u:l.content.byteLength-f.content.byteLength}),s=new Map,i=[],a=[],c=[];for(let f=0;f<o.length;f++){let l=o[f],d={hash:l.hash,type:l.type,content:l.content,depth:0},u=null,m=null,h=Math.max(0,f-n);for(let p=f-1;p>=h;p--){let g=o[p];if(g.type!==l.type||(s.get(g.hash)?.depth??0)>=r||l.content.byteLength<g.content.byteLength>>>5)continue;let x=a[p-h]??null;if(!x)continue;let b=u?u.byteLength:l.content.byteLength/2|0;if(b<16)continue;let k=$h(x,l.content,b);k&&(!u||k.byteLength<u.byteLength)&&(u=k,m=g.hash)}if(u&&m){d.delta=u,d.deltaBase=m;let p=s.get(m);d.depth=(p?.depth??0)+1}s.set(l.hash,d),i.push(d),a.length>=n&&(a.shift(),c.shift()),a.push(Ih(l.content)),c.push(l.hash)}return i}function Sh(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 _f(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}Br();ue();ie();un();Kr();Ns();async function Th(e,t,n,r,o){let s=o??r,i=new Set;for(let l of n)await ds(e,l,i,s);let a=[...t];if(o&&r)for(let l of o)try{let d=await j(e,l);for(let u of d.parents)i.has(u)||a.push(u)}catch{}let c=[],f=new Set;for(let l of a)await us(e,l,i,f,c,r);return{count:c.length,objects:vh(c)}}async function $r(e,t,n,r,o){let{count:s,objects:i}=await Th(e,t,n,r,o);return{count:s,objects:Hh(e,i)}}async function*vh(e){for(let t of e)yield t}async function*Hh(e,t){for await(let n of t){let r=await we(e,n.hash);yield{hash:n.hash,type:n.type,content:r.content}}}async function Sr(e){let t=[];for await(let n of e.objects)t.push(n);return t}async function ds(e,t,n,r){if(n.has(t)||(n.add(t),!await Kt(e,t)))return;let o=await we(e,t);switch(o.type){case"commit":{let s=en(o.content);if(await ds(e,s.tree,n,r),!r?.has(t))for(let i of s.parents)await ds(e,i,n,r);break}case"tree":{let s=Hn(o.content);for(let i of s.entries)await ds(e,i.hash,n,r);break}case"tag":{let s=mn(o.content);await ds(e,s.object,n,r);break}case"blob":break}}async function us(e,t,n,r,o,s){if(r.has(t)||n.has(t))return;r.add(t);let i=await we(e,t);switch(o.push({hash:t,type:i.type}),i.type){case"commit":{let a=en(i.content);if(await us(e,a.tree,n,r,o,s),!s?.has(t))for(let c of a.parents)await us(e,c,n,r,o,s);break}case"tree":{let a=Hn(i.content);for(let c of a.entries)await us(e,c.hash,n,r,o,s);break}case"tag":{let a=mn(i.content);await us(e,a.object,n,r,o,s);break}case"blob":break}}var Ah=new TextEncoder,xo=new TextDecoder,Nf=65520,Dh=new Uint8Array([48,48,48,48]);function Rn(e){let t=typeof e=="string"?Ah.encode(e):e,n=4+t.byteLength;if(n>Nf)throw new Error(`pkt-line too long: ${n} bytes (max ${Nf})`);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 Wi(){return Dh.slice()}function Po(...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 Tr(e){let t=[],n=0;for(;n<e.byteLength;){if(n+4>e.byteLength)throw new Error("Truncated pkt-line header");let r=xo.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 Co(e){if(e.type==="flush")return"";let t=xo.decode(e.data);return t.endsWith(`
343
+ `)?t.slice(0,-1):t}var Mh=1,jh=2,Gh=3;function qi(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 Mh:t.push(f),o+=f.byteLength;break;case jh:n.push(xo.decode(f));break;case Gh:r.push(xo.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}}dt();function zi(e){return e?e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:{Authorization:`Basic ${btoa(`${e.username}:${e.password}`)}`}:{}}async function Ki(e,t,n,r=globalThis.fetch){let o=e.replace(/\/+$/,""),s=await r(`${o}/info/refs?service=${t}`,{headers:{...zi(n),"User-Agent":"just-git/1.0"}});if(!s.ok)throw new Error(`HTTP ${s.status} discovering refs at ${o}`);let i=s.headers.get("content-type")??"",a=`application/x-${t}-advertisement`,c=new Uint8Array(await s.arrayBuffer());if(!i.startsWith(a)){let l=new TextDecoder().decode(c.subarray(0,5));if(!/^[0-9a-f]{4}#/.test(l))throw new Error(`Server does not support smart HTTP (Content-Type: ${i})`)}let f=Tr(c);return Lh(f,t)}function Lh(e,t){let n=0,r=e[n];r?.type==="data"&&Co(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),l;if(f!==-1){l=new TextDecoder().decode(c.subarray(0,f)),s=new TextDecoder().decode(c.subarray(f+1)).replace(/\n$/,"").split(" ").filter(Boolean);for(let p of s)if(p.startsWith("symref=")){let g=p.slice(7),w=g.indexOf(":");w!==-1&&i.set(g.slice(0,w),g.slice(w+1))}}else l=new TextDecoder().decode(c).replace(/\n$/,"");let d=l.indexOf(" ");if(d===-1)continue;let u=l.slice(0,d),m=l.slice(d+1);if(!(u===te&&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 _h=["multi_ack_detailed","no-done","side-band-64k","ofs-delta","include-tag","shallow"];async function Ff(e,t,n,r,o,s=globalThis.fetch,i){if(t.length===0)throw new Error("fetchPack requires at least one want");let a=Bf(r,_h),c=[];c.push(Rn(`want ${t[0]} ${a.join(" ")}
344
344
  `));for(let m=1;m<t.length;m++)c.push(Rn(`want ${t[m]}
345
345
  `));if(i?.existingShallows)for(let m of i.existingShallows)c.push(Rn(`shallow ${m}
346
346
  `));i?.depth!==void 0&&c.push(Rn(`deepen ${i.depth}
347
347
  `)),c.push(Wi());for(let m of n)c.push(Rn(`have ${m}
348
348
  `));c.push(Rn(`done
349
- `));let f=Co(...c),l=e.replace(/\/+$/,""),d=await s(`${l}/git-upload-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-upload-pack-request",...zi(o),"User-Agent":"just-git/1.0"},body:f});if(!d.ok)throw new Error(`HTTP ${d.status} fetching pack from ${l}`);let u=new Uint8Array(await d.arrayBuffer());return _h(u,a.includes("side-band-64k"))}function _h(e,t){let n=$r(e),r=[],o=[],s=[],i=0;for(let d=0;d<n.length;d++){let u=n[d];if(!u||u.type==="flush"){i=d+1;continue}if(u.type!=="data")continue;let m=Po(u);if(m.startsWith("shallow "))o.push(m.slice(8)),i=d+1;else if(m.startsWith("unshallow "))s.push(m.slice(10)),i=d+1;else if(m.startsWith("ACK ")||m==="NAK")r.push(m),i=d+1;else{i=d;break}}let a=n.slice(i);if(t){let{packData:d,progress:u,errors:m}=qi(a);if(m.length>0)throw new Error(`Remote error: ${m.join("")}`);return{packData:d,acks:r,progress:u,shallowLines:o,unshallowLines:s}}let c=0;for(let d of a)d.type==="data"&&(c+=d.data.byteLength);let f=new Uint8Array(c),l=0;for(let d of a)d.type==="data"&&(f.set(d.data,l),l+=d.data.byteLength);return{packData:f,acks:r,progress:[],shallowLines:o,unshallowLines:s}}var Nh=["report-status","side-band-64k","ofs-delta","delete-refs"];async function Bf(e,t,n,r,o,s=globalThis.fetch){if(t.length===0)throw new Error("pushPack requires at least one command");let i=Wf(r,Nh),a=[],[c,...f]=t;if(!c)throw new Error("pushPack requires at least one command");a.push(Rn(`${c.oldHash} ${c.newHash} ${c.refName}\0${i.join(" ")}
349
+ `));let f=Po(...c),l=e.replace(/\/+$/,""),d=await s(`${l}/git-upload-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-upload-pack-request",...zi(o),"User-Agent":"just-git/1.0"},body:f});if(!d.ok)throw new Error(`HTTP ${d.status} fetching pack from ${l}`);let u=new Uint8Array(await d.arrayBuffer());return Nh(u,a.includes("side-band-64k"))}function Nh(e,t){let n=Tr(e),r=[],o=[],s=[],i=0;for(let d=0;d<n.length;d++){let u=n[d];if(!u||u.type==="flush"){i=d+1;continue}if(u.type!=="data")continue;let m=Co(u);if(m.startsWith("shallow "))o.push(m.slice(8)),i=d+1;else if(m.startsWith("unshallow "))s.push(m.slice(10)),i=d+1;else if(m.startsWith("ACK ")||m==="NAK")r.push(m),i=d+1;else{i=d;break}}let a=n.slice(i);if(t){let{packData:d,progress:u,errors:m}=qi(a);if(m.length>0)throw new Error(`Remote error: ${m.join("")}`);return{packData:d,acks:r,progress:u,shallowLines:o,unshallowLines:s}}let c=0;for(let d of a)d.type==="data"&&(c+=d.data.byteLength);let f=new Uint8Array(c),l=0;for(let d of a)d.type==="data"&&(f.set(d.data,l),l+=d.data.byteLength);return{packData:f,acks:r,progress:[],shallowLines:o,unshallowLines:s}}var Fh=["report-status","side-band-64k","ofs-delta","delete-refs"];async function Uf(e,t,n,r,o,s=globalThis.fetch){if(t.length===0)throw new Error("pushPack requires at least one command");let i=Bf(r,Fh),a=[],[c,...f]=t;if(!c)throw new Error("pushPack requires at least one command");a.push(Rn(`${c.oldHash} ${c.newHash} ${c.refName}\0${i.join(" ")}
350
350
  `));for(let h of f)a.push(Rn(`${h.oldHash} ${h.newHash} ${h.refName}
351
- `));a.push(Wi());let l;if(n&&n.byteLength>0){let h=Co(...a);l=new Uint8Array(h.byteLength+n.byteLength),l.set(h,0),l.set(n,h.byteLength)}else l=Co(...a);let d=e.replace(/\/+$/,""),u=await s(`${d}/git-receive-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-receive-pack-request",...zi(o),"User-Agent":"just-git/1.0"},body:l});if(!u.ok)throw new Error(`HTTP ${u.status} pushing to ${d}`);let m=new Uint8Array(await u.arrayBuffer());return i.includes("report-status")?Fh(m,i.includes("side-band-64k")):{unpackOk:!0,refResults:[],progress:[]}}function Fh(e,t){let n,r=[];if(t){let a=$r(e),{packData:c,progress:f,errors:l}=qi(a);if(l.length>0)throw new Error(`Remote error: ${l.join("")}`);r=f,n=$r(c)}else n=$r(e);let o=!1,s,i=[];for(let a of n){if(a.type==="flush")break;let c=Po(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),l=f.indexOf(" ");l!==-1?i.push({name:f.slice(0,l),ok:!1,error:f.slice(l+1)}):i.push({name:f,ok:!1})}}return{unpackOk:o,unpackError:s,refResults:i,progress:r}}function Wf(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 ms=class{constructor(t,n){this.local=t;this.remote=n}headTarget;async advertiseRefs(){let t=await ge(this.remote),n=[];for(let s of t)n.push({name:s.name,hash:s.hash});let r=await F(this.remote,"HEAD");r&&n.push({name:"HEAD",hash:r});let o=await Q(this.remote);return o?.type==="symbolic"&&(this.headTarget=o.target),n}async fetch(t,n,r){let o=await this.advertiseRefs();if(t.length===0)return{remoteRefs:o,objectCount:0};let s,i,a;if(r?.depth!==void 0){let l=r.existingShallows??new Set,d=await Gf(this.remote,t,r.depth,l);i=d,s=new Set(d.shallow),l.size>0&&(a=l)}let c=await Vi(this.remote,t,n,s,a);if(!c)return{remoteRefs:o,objectCount:0,shallowUpdates:i};let f=await js(this.local,c);return{remoteRefs:o,objectCount:f,shallowUpdates:i}}async push(t){let n=[],r=[];for(let s of t)s.newHash!==te&&n.push(s.newHash),s.oldHash&&r.push(s.oldHash);if(n.length>0){let s=await Vi(this.local,n,r);s&&await js(this.remote,s)}let o=[];for(let s of t)try{let i=s.newHash===te,a=s.oldHash??null;if(!i&&!s.ok&&s.oldHash&&!await En(this.remote,s.oldHash,s.newHash)){o.push({...s,ok:!1,error:`non-fast-forward update rejected for ${s.name}`});continue}let c=i?null:{type:"direct",hash:s.newHash};if(!await this.remote.refStore.compareAndSwapRef(s.name,a,c)){o.push({...s,ok:!1,error:`failed to lock ref '${s.name}'`});continue}this.remote.hooks&&(i&&s.oldHash?this.remote.hooks.onRefDelete?.({repo:this.remote,ref:s.name,oldHash:s.oldHash}):i||this.remote.hooks.onRefUpdate?.({repo:this.remote,ref:s.name,oldHash:s.oldHash,newHash:s.newHash})),o.push({...s,ok:!0})}catch(i){o.push({...s,ok:!1,error:i instanceof Error?i.message:String(i)})}return{updates:o}}},hs=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 Ki(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 Ki(this.url,"git-receive-pack",this.auth,this.fetchFn);this.cachedPushCaps=t.capabilities}return this.cachedPushCaps}async fetch(t,n,r){let{caps:o,refs:s}=await this.ensureFetchDiscovery();if(t.length===0)return{remoteRefs:s,objectCount:0};let i=await Uf(this.url,t,n,o,this.auth,this.fetchFn,r);if(i.packData.byteLength===0)return{remoteRefs:s,objectCount:0};let a=await js(this.local,i.packData),c=i.shallowLines.length>0||i.unshallowLines.length>0?{shallow:i.shallowLines,unshallow:i.unshallowLines}:void 0;return{remoteRefs:s,objectCount:a,shallowUpdates:c}}async push(t){for(let l of t)if(l.oldHash&&l.oldHash!==te&&l.newHash!==te&&!l.ok&&!await En(this.local,l.oldHash,l.newHash))return{updates:t.map(u=>u===l?{...u,ok:!1,error:"non-fast-forward"}:{...u,ok:!1,error:"atomic push failed"})};let n=await this.ensurePushDiscovery(),r=t.map(l=>({oldHash:l.oldHash??te,newHash:l.newHash,refName:l.name})),o=[],s=[],i=!1;for(let l of t)l.newHash!==te&&(o.push(l.newHash),i=!0),l.oldHash&&l.oldHash!==te&&s.push(l.oldHash);let a=null;i&&(a=await Vi(this.local,o,s)??null);let c=await Bf(this.url,r,a,n,this.auth,this.fetchFn);return{updates:t.map(l=>{let d=c.refResults.find(h=>h.name===l.name),u=d?.ok??c.unpackOk,m=d?.error??(!u&&c.unpackError?`unpack failed: ${c.unpackError}`:void 0);return{...l,ok:u,error:m}})}}};async function Vi(e,t,n,r,o){let s=await Ir(e,t,n,r,o);if(s.count===0)return;let i=await Sr(s),c=Ro(i).map(l=>({hash:l.hash,type:l.type,content:l.content,delta:l.delta,deltaBaseHash:l.deltaBase})),{data:f}=await Ds(c);return f}async function Uh(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 qf(e){return e.startsWith("ssh://")||e.startsWith("git@")||e.startsWith("git+ssh://")}function zf(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 Bh(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 Kf(e,t,n){if(e.credentialProvider){let r=await e.credentialProvider(t);if(r)return r}return Bh(n)}async function Vf(e,t,n,r){if(Yi(t)){let o=zf(t,e.networkPolicy);if(o)throw new Error(o);let s=await Kf(e,t,n);return new hs(e,t,s,e.fetchFn)}if(!r&&e.resolveRemote&&(r=await e.resolveRemote(t)??void 0),!r)throw qf(t)?new Error(`SSH transport is not supported. Use an HTTPS URL instead of '${t}'.`):new Error(`'${t}' does not appear to be a git repository`);return new ms(e,r)}async function Tr(e,t,n){let r=await Uh(e,t);if(!r)return null;if(Yi(r.url)){let s=zf(r.url,e.networkPolicy);if(s)throw new Error(s);let i=n?await Kf(e,r.url,n):void 0;return{transport:new hs(e,r.url,i,e.fetchFn),config:r}}let o=(e.resolveRemote?await e.resolveRemote(r.url):null)??await Xn(e.fs,r.url);if(!o){if(qf(r.url))throw new Error(`SSH transport is not supported. Use an HTTPS URL instead of '${r.url}'.`);return null}return{transport:new ms(e,o),config:r}}ve();tt();function Yf(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:S().describe("Create a bare clone"),branch:J.string().alias("b").describe("Checkout this branch instead of HEAD"),depth:J.number().describe("Create a shallow clone with history truncated to N commits")},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:It(r.cwd,o),a=n.branch,c=n.directory;if(!c){let O=s?o.split("/").pop()??o:Mr(i);O.endsWith(".git")&&(O=O.slice(0,-4)),c=O}let f=It(r.cwd,c),l=await t?.hooks?.preClone?.({repository:o,targetPath:f,bare:n.bare,branch:a??null});if(ee(l))return L(l.message??"");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 Xn(r.fs,i)),!d))return I(`repository '${o}' does not exist`);await r.fs.mkdir(f,{recursive:!0});let{ctx:u}=await Gs(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:i,fetch:"+refs/heads/*:refs/remotes/origin/*"},await Ye(m,h);let p;try{p=await Vf(m,i,r.env,d??void 0)}catch(O){let H=O instanceof Error?O.message:"";return H.startsWith("network")?I(H):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:a??null}),{stdout:"",stderr:`Cloning into '${c}'...
351
+ `));a.push(Wi());let l;if(n&&n.byteLength>0){let h=Po(...a);l=new Uint8Array(h.byteLength+n.byteLength),l.set(h,0),l.set(n,h.byteLength)}else l=Po(...a);let d=e.replace(/\/+$/,""),u=await s(`${d}/git-receive-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-receive-pack-request",...zi(o),"User-Agent":"just-git/1.0"},body:l});if(!u.ok)throw new Error(`HTTP ${u.status} pushing to ${d}`);let m=new Uint8Array(await u.arrayBuffer());return i.includes("report-status")?Uh(m,i.includes("side-band-64k")):{unpackOk:!0,refResults:[],progress:[]}}function Uh(e,t){let n,r=[];if(t){let a=Tr(e),{packData:c,progress:f,errors:l}=qi(a);if(l.length>0)throw new Error(`Remote error: ${l.join("")}`);r=f,n=Tr(c)}else n=Tr(e);let o=!1,s,i=[];for(let a of n){if(a.type==="flush")break;let c=Co(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),l=f.indexOf(" ");l!==-1?i.push({name:f.slice(0,l),ok:!1,error:f.slice(l+1)}):i.push({name:f,ok:!1})}}return{unpackOk:o,unpackError:s,refResults:i,progress:r}}function Bf(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 ms=class{constructor(t,n){this.local=t;this.remote=n}headTarget;async advertiseRefs(){let t=await ge(this.remote),n=[];for(let s of t)n.push({name:s.name,hash:s.hash});let r=await F(this.remote,"HEAD");r&&n.push({name:"HEAD",hash:r});let o=await Q(this.remote);return o?.type==="symbolic"&&(this.headTarget=o.target),n}async fetch(t,n,r){let o=await this.advertiseRefs();if(t.length===0)return{remoteRefs:o,objectCount:0};let s,i,a;if(r?.depth!==void 0){let l=r.existingShallows??new Set,d=await jf(this.remote,t,r.depth,l);i=d,s=new Set(d.shallow),l.size>0&&(a=l)}let c=await Vi(this.remote,t,n,s,a);if(!c)return{remoteRefs:o,objectCount:0,shallowUpdates:i};let f=await js(this.local,c);return{remoteRefs:o,objectCount:f,shallowUpdates:i}}async push(t){let n=[],r=[];for(let s of t)s.newHash!==te&&n.push(s.newHash),s.oldHash&&r.push(s.oldHash);if(n.length>0){let s=await Vi(this.local,n,r);s&&await js(this.remote,s)}let o=[];for(let s of t)try{let i=s.newHash===te,a=s.oldHash??null;if(!i&&!s.ok&&s.oldHash&&!await En(this.remote,s.oldHash,s.newHash)){o.push({...s,ok:!1,error:`non-fast-forward update rejected for ${s.name}`});continue}let c=i?null:{type:"direct",hash:s.newHash};if(!await this.remote.refStore.compareAndSwapRef(s.name,a,c)){o.push({...s,ok:!1,error:`failed to lock ref '${s.name}'`});continue}this.remote.hooks&&(i&&s.oldHash?this.remote.hooks.onRefDelete?.({repo:this.remote,ref:s.name,oldHash:s.oldHash}):i||this.remote.hooks.onRefUpdate?.({repo:this.remote,ref:s.name,oldHash:s.oldHash,newHash:s.newHash})),o.push({...s,ok:!0})}catch(i){o.push({...s,ok:!1,error:i instanceof Error?i.message:String(i)})}return{updates:o}}},hs=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 Ki(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 Ki(this.url,"git-receive-pack",this.auth,this.fetchFn);this.cachedPushCaps=t.capabilities}return this.cachedPushCaps}async fetch(t,n,r){let{caps:o,refs:s}=await this.ensureFetchDiscovery();if(t.length===0)return{remoteRefs:s,objectCount:0};let i=await Ff(this.url,t,n,o,this.auth,this.fetchFn,r);if(i.packData.byteLength===0)return{remoteRefs:s,objectCount:0};let a=await js(this.local,i.packData),c=i.shallowLines.length>0||i.unshallowLines.length>0?{shallow:i.shallowLines,unshallow:i.unshallowLines}:void 0;return{remoteRefs:s,objectCount:a,shallowUpdates:c}}async push(t){for(let l of t)if(l.oldHash&&l.oldHash!==te&&l.newHash!==te&&!l.ok&&!await En(this.local,l.oldHash,l.newHash))return{updates:t.map(u=>u===l?{...u,ok:!1,error:"non-fast-forward"}:{...u,ok:!1,error:"atomic push failed"})};let n=await this.ensurePushDiscovery(),r=t.map(l=>({oldHash:l.oldHash??te,newHash:l.newHash,refName:l.name})),o=[],s=[],i=!1;for(let l of t)l.newHash!==te&&(o.push(l.newHash),i=!0),l.oldHash&&l.oldHash!==te&&s.push(l.oldHash);let a=null;i&&(a=await Vi(this.local,o,s)??null);let c=await Uf(this.url,r,a,n,this.auth,this.fetchFn);return{updates:t.map(l=>{let d=c.refResults.find(h=>h.name===l.name),u=d?.ok??c.unpackOk,m=d?.error??(!u&&c.unpackError?`unpack failed: ${c.unpackError}`:void 0);return{...l,ok:u,error:m}})}}};async function Vi(e,t,n,r,o){let s=await $r(e,t,n,r,o);if(s.count===0)return;let i=await Sr(s),c=Ro(i).map(l=>({hash:l.hash,type:l.type,content:l.content,delta:l.delta,deltaBaseHash:l.deltaBase})),{data:f}=await Ds(c);return f}async function Bh(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 Wf(e){return e.startsWith("ssh://")||e.startsWith("git@")||e.startsWith("git+ssh://")}function qf(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 Wh(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 zf(e,t,n){if(e.credentialProvider){let r=await e.credentialProvider(t);if(r)return r}return Wh(n)}async function Kf(e,t,n,r){if(Yi(t)){let o=qf(t,e.networkPolicy);if(o)throw new Error(o);let s=await zf(e,t,n);return new hs(e,t,s,e.fetchFn)}if(!r&&e.resolveRemote&&(r=await e.resolveRemote(t)??void 0),!r)throw Wf(t)?new Error(`SSH transport is not supported. Use an HTTPS URL instead of '${t}'.`):new Error(`'${t}' does not appear to be a git repository`);return new ms(e,r)}async function vr(e,t,n){let r=await Bh(e,t);if(!r)return null;if(Yi(r.url)){let s=qf(r.url,e.networkPolicy);if(s)throw new Error(s);let i=n?await zf(e,r.url,n):void 0;return{transport:new hs(e,r.url,i,e.fetchFn),config:r}}let o=(e.resolveRemote?await e.resolveRemote(r.url):null)??await Xn(e.fs,r.url);if(!o){if(Wf(r.url))throw new Error(`SSH transport is not supported. Use an HTTPS URL instead of '${r.url}'.`);return null}return{transport:new ms(e,o),config:r}}ve();tt();function Vf(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:$().describe("Create a bare clone"),branch:J.string().alias("b").describe("Checkout this branch instead of HEAD"),depth:J.number().describe("Create a shallow clone with history truncated to N commits")},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:It(r.cwd,o),a=n.branch,c=n.directory;if(!c){let O=s?o.split("/").pop()??o:Mr(i);O.endsWith(".git")&&(O=O.slice(0,-4)),c=O}let f=It(r.cwd,c),l=await t?.hooks?.preClone?.({repository:o,targetPath:f,bare:n.bare,branch:a??null});if(ee(l))return L(l.message??"");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 Xn(r.fs,i)),!d))return I(`repository '${o}' does not exist`);await r.fs.mkdir(f,{recursive:!0});let{ctx:u}=await Gs(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:i,fetch:"+refs/heads/*:refs/remotes/origin/*"},await Ye(m,h);let p;try{p=await Kf(m,i,r.env,d??void 0)}catch(O){let H=O instanceof Error?O.message:"";return H.startsWith("network")?I(H):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:a??null}),{stdout:"",stderr:`Cloning into '${c}'...
352
352
  warning: You appear to have cloned an empty repository.
353
- `,exitCode:0};let w=[],y=new Set;for(let O of g)O.name!=="HEAD"&&(y.has(O.hash)||(y.add(O.hash),w.push(O.hash)));let x=n.depth,b=x!==void 0&&x>0?{depth:x}:void 0;if(w.length>0){let O=await p.fetch(w,[],b);O.shallowUpdates&&await Or(m,O.shallowUpdates)}let k=g.find(O=>O.name==="HEAD"),E=null,R=null,P=await Jt(m,r.env),C=`clone: from ${i}`,v=p.headTarget;v?.startsWith("refs/heads/")&&g.some(O=>O.name===v)&&(E=v.slice(11),R=g.find(O=>O.name===v)?.hash??null);for(let O of g)if(O.name!=="HEAD"){if(O.name.startsWith("refs/heads/")){let H=O.name.slice(11),G=`refs/remotes/origin/${H}`;await X(m,G,O.hash),await Ke(m,G,{oldHash:te,newHash:O.hash,name:P.name,email:P.email,timestamp:P.timestamp,tz:P.tz,message:C}),!E&&k&&O.hash===k.hash&&(E=H,R=O.hash)}O.name.startsWith("refs/tags/")&&await X(m,O.name,O.hash)}if(a){let O=g.find(H=>H.name===`refs/heads/${a}`);if(!O)return I(`Remote branch '${a}' not found in upstream origin`);E=a,R=O.hash}if(!E){let O=g.find(H=>H.name.startsWith("refs/heads/"));O&&(E=O.name.slice(11),R=O.hash)}if(n.bare)return E&&await ze(m,"HEAD",`refs/heads/${E}`),await t?.hooks?.postClone?.({repo:m,repository:o,targetPath:f,bare:n.bare,branch:E}),{stdout:"",stderr:`Cloning into bare repository '${c}'...
354
- `,exitCode:0};if(E&&await ze(m,"refs/remotes/origin/HEAD",`refs/remotes/origin/${E}`),E&&R){await X(m,`refs/heads/${E}`,R),await ze(m,"HEAD",`refs/heads/${E}`);let O={oldHash:te,newHash:R,name:P.name,email:P.email,timestamp:P.timestamp,tz:P.tz,message:C};await Ke(m,`refs/heads/${E}`,O),await Ke(m,"HEAD",O);let H=await he(m);H[`branch "${E}"`]={remote:"origin",merge:`refs/heads/${E}`},await Ye(m,H);let G=await j(m,R);await vc(m,G.tree);let A=await Ve(m,G.tree),$=vs(A.map(N=>({path:N.path,mode:parseInt(N.mode,8),hash:N.hash,stage:0,stat:Ie()})));await ae(m,$)}let D={stdout:"",stderr:`Cloning into '${c}'...
355
- `,exitCode:0};return await t?.hooks?.postClone?.({repo:m,repository:o,targetPath:f,bare:n.bare,branch:E}),D}})}se();Pe();ie();un();le();Fe();ue();ve();tt();function Wh(e){let t=[],n=[],r=0;for(;r<e.length;){let o=e[r];if(o==="--"){for(;r<e.length;r++)n.push(e[r]);break}if(o==="-m"||o==="--message"){r+1<e.length?(t.push(e[r+1]),r+=2):(n.push(o),r++);continue}if(o.startsWith("--message=")){t.push(o.slice(10)),r++;continue}if(o.startsWith("-")&&!o.startsWith("--")&&o.length>1){let s=o.slice(1),i=s.indexOf("m");if(i!==-1){let a=s.slice(0,i),c=s.slice(i+1);if(a.length>0&&n.push(`-${a}`),c.length>0)t.push(c);else if(r+1<e.length){t.push(e[r+1]),r+=2;continue}r++;continue}}n.push(o),r++}return t.length>0&&n.push("-m",t.join(`
353
+ `,exitCode:0};let w=[],y=new Set;for(let O of g)O.name!=="HEAD"&&(y.has(O.hash)||(y.add(O.hash),w.push(O.hash)));let x=n.depth,b=x!==void 0&&x>0?{depth:x}:void 0;if(w.length>0){let O=await p.fetch(w,[],b);O.shallowUpdates&&await Ir(m,O.shallowUpdates)}let k=g.find(O=>O.name==="HEAD"),E=null,R=null,C=await Jt(m,r.env),P=`clone: from ${i}`,v=p.headTarget;v?.startsWith("refs/heads/")&&g.some(O=>O.name===v)&&(E=v.slice(11),R=g.find(O=>O.name===v)?.hash??null);for(let O of g)if(O.name!=="HEAD"){if(O.name.startsWith("refs/heads/")){let H=O.name.slice(11),G=`refs/remotes/origin/${H}`;await X(m,G,O.hash),await Ke(m,G,{oldHash:te,newHash:O.hash,name:C.name,email:C.email,timestamp:C.timestamp,tz:C.tz,message:P}),!E&&k&&O.hash===k.hash&&(E=H,R=O.hash)}O.name.startsWith("refs/tags/")&&await X(m,O.name,O.hash)}if(a){let O=g.find(H=>H.name===`refs/heads/${a}`);if(!O)return I(`Remote branch '${a}' not found in upstream origin`);E=a,R=O.hash}if(!E){let O=g.find(H=>H.name.startsWith("refs/heads/"));O&&(E=O.name.slice(11),R=O.hash)}if(n.bare)return E&&await ze(m,"HEAD",`refs/heads/${E}`),await t?.hooks?.postClone?.({repo:m,repository:o,targetPath:f,bare:n.bare,branch:E}),{stdout:"",stderr:`Cloning into bare repository '${c}'...
354
+ `,exitCode:0};if(E&&await ze(m,"refs/remotes/origin/HEAD",`refs/remotes/origin/${E}`),E&&R){await X(m,`refs/heads/${E}`,R),await ze(m,"HEAD",`refs/heads/${E}`);let O={oldHash:te,newHash:R,name:C.name,email:C.email,timestamp:C.timestamp,tz:C.tz,message:P};await Ke(m,`refs/heads/${E}`,O),await Ke(m,"HEAD",O);let H=await he(m);H[`branch "${E}"`]={remote:"origin",merge:`refs/heads/${E}`},await Ye(m,H);let G=await j(m,R);await Tc(m,G.tree);let A=await Ve(m,G.tree),S=vs(A.map(N=>({path:N.path,mode:parseInt(N.mode,8),hash:N.hash,stage:0,stat:Ie()})));await ae(m,S)}let D={stdout:"",stderr:`Cloning into '${c}'...
355
+ `,exitCode:0};return await t?.hooks?.postClone?.({repo:m,repository:o,targetPath:f,bare:n.bare,branch:E}),D}})}se();Ce();ie();un();le();Fe();ue();ve();tt();function qh(e){let t=[],n=[],r=0;for(;r<e.length;){let o=e[r];if(o==="--"){for(;r<e.length;r++)n.push(e[r]);break}if(o==="-m"||o==="--message"){r+1<e.length?(t.push(e[r+1]),r+=2):(n.push(o),r++);continue}if(o.startsWith("--message=")){t.push(o.slice(10)),r++;continue}if(o.startsWith("-")&&!o.startsWith("--")&&o.length>1){let s=o.slice(1),i=s.indexOf("m");if(i!==-1){let a=s.slice(0,i),c=s.slice(i+1);if(a.length>0&&n.push(`-${a}`),c.length>0)t.push(c);else if(r+1<e.length){t.push(e[r+1]),r+=2;continue}r++;continue}}n.push(o),r++}return t.length>0&&n.push("-m",t.join(`
356
356
 
357
- `)),n}function Xf(e,t){e.command("commit",{description:"Record changes to the repository",transformArgs:Wh,options:{message:J.string().alias("m").describe("Commit message"),file:J.string().alias("F").describe("Read commit message from file ('-' for stdin)"),allowEmpty:S().describe("Allow creating an empty commit"),amend:S().describe("Amend the previous commit"),noEdit:S().describe("Use the previous commit message without editing"),all:S().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 W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await K(s);if(n.all){let me=Xe(s);if(me)return me;let xe=await Tt(s,i);for(let qe of xe)qe.status==="modified"?i=(await rn(s,i,qe.path)).index:qe.status==="deleted"&&(i=at(i,qe.path));let Ut=new Set(je(i).map(qe=>qe.path)),xn=new Set(i.entries.filter(qe=>qe.stage>0&&!Ut.has(qe.path)).map(qe=>qe.path));for(let qe of xn){let ur=T(s.workTree,qe);await r.fs.exists(ur)?i=(await rn(s,i,qe)).index:i=at(i,qe)}}let a=await F(s,"MERGE_HEAD"),c=await F(s,"CHERRY_PICK_HEAD"),f=await F(s,"REVERT_HEAD"),d=await Gt(s)?await F(s,"REBASE_HEAD"):null,u=n.amend,m=await Z(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($t(i)){let me=new Set,xe=[];for(let Ut of i.entries)Ut.stage>0&&!me.has(Ut.path)&&(me.add(Ut.path),xe.push(`U ${Ut.path}`));return xe.sort(),{stdout:xe.length>0?`${xe.join(`
357
+ `)),n}function Yf(e,t){e.command("commit",{description:"Record changes to the repository",transformArgs:qh,options:{message:J.string().alias("m").describe("Commit message"),file:J.string().alias("F").describe("Read commit message from file ('-' for stdin)"),allowEmpty:$().describe("Allow creating an empty commit"),amend:$().describe("Amend the previous commit"),noEdit:$().describe("Use the previous commit message without editing"),all:$().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 W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await K(s);if(n.all){let me=Xe(s);if(me)return me;let xe=await Tt(s,i);for(let qe of xe)qe.status==="modified"?i=(await rn(s,i,qe.path)).index:qe.status==="deleted"&&(i=at(i,qe.path));let Ut=new Set(De(i).map(qe=>qe.path)),xn=new Set(i.entries.filter(qe=>qe.stage>0&&!Ut.has(qe.path)).map(qe=>qe.path));for(let qe of xn){let mr=T(s.workTree,qe);await r.fs.exists(mr)?i=(await rn(s,i,qe)).index:i=at(i,qe)}}let a=await F(s,"MERGE_HEAD"),c=await F(s,"CHERRY_PICK_HEAD"),f=await F(s,"REVERT_HEAD"),d=await Gt(s)?await F(s,"REBASE_HEAD"):null,u=n.amend,m=await Z(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(St(i)){let me=new Set,xe=[];for(let Ut of i.entries)Ut.stage>0&&!me.has(Ut.path)&&(me.add(Ut.path),xe.push(`U ${Ut.path}`));return xe.sort(),{stdout:xe.length>0?`${xe.join(`
358
358
  `)}
359
359
  `:"",stderr:`error: Committing is not possible because you have unmerged files.
360
360
  hint: Fix them up in the work tree, and then use 'git add/rm <file>'
361
361
  hint: as appropriate to mark resolution and make a commit.
362
362
  fatal: Exiting because of an unresolved conflict.
363
363
  `,exitCode:128}}let h=u&&m?await j(s,m):null,p=n.message;if(!p&&n.file!==void 0){if(n.file==="-")p=r.stdin;else{let me=n.file.startsWith("/")?n.file:T(r.cwd,n.file);if(!await r.fs.exists(me))return I(`could not read log file '${n.file}': No such file or directory`);let xe=await r.fs.readFile(me);p=typeof xe=="string"?xe:new TextDecoder().decode(xe)}if(p=an(p),!p)return{stdout:`Aborting commit due to empty commit message.
364
- `,stderr:"",exitCode:1}}if(!p&&u&&h&&(p=h.message),!p&&(a||c||f||d)){let me=await Ce(s,"SQUASH_MSG");if(me)p=an(me);else{let xe=await Ce(s,"MERGE_MSG");xe!==null&&(p=an(xe))}}if(!p)return L("error: must provide a commit message with -m or -F");let g=je(i),w=await Ge(s,g),y=await t?.hooks?.preCommit?.({repo:s,index:i,treeHash:w});if(ee(y))return L(y.message??"");let x=n.allowEmpty,b=null;if(u&&h){let me=h.parents[0];me?b=(await j(s,me)).tree:b=await Et("tree",new Uint8Array(0))}else m&&(b=(await j(s,m)).tree);let k=u&&h&&h.parents.length>1;if(!x&&!a&&!k){if(!m&&!u&&g.length===0)return{stdout:await rt(s,{fromCommit:!0,index:i}),stderr:"",exitCode:1};if(b!==null&&b===w){if(u){let me=h?.parents[0]??null;return{stdout:`${await rt(s,{fromCommit:!0,compareHash:me,noWarn:!0,index:i})}No changes
364
+ `,stderr:"",exitCode:1}}if(!p&&u&&h&&(p=h.message),!p&&(a||c||f||d)){let me=await Pe(s,"SQUASH_MSG");if(me)p=an(me);else{let xe=await Pe(s,"MERGE_MSG");xe!==null&&(p=an(xe))}}if(!p)return L("error: must provide a commit message with -m or -F");let g=De(i),w=await Ge(s,g),y=await t?.hooks?.preCommit?.({repo:s,index:i,treeHash:w});if(ee(y))return L(y.message??"");let x=n.allowEmpty,b=null;if(u&&h){let me=h.parents[0];me?b=(await j(s,me)).tree:b=await ut("tree",new Uint8Array(0))}else m&&(b=(await j(s,m)).tree);let k=u&&h&&h.parents.length>1;if(!x&&!a&&!k){if(!m&&!u&&g.length===0)return{stdout:await rt(s,{fromCommit:!0,index:i}),stderr:"",exitCode:1};if(b!==null&&b===w){if(u){let me=h?.parents[0]??null;return{stdout:`${await rt(s,{fromCommit:!0,compareHash:me,noWarn:!0,index:i})}No changes
365
365
  `,stderr:`You asked to amend the most recent commit, but doing so would make
366
366
  it empty. You can repeat your command with --allow-empty, or you can
367
367
  remove the commit entirely with "git reset HEAD^".
@@ -371,53 +371,55 @@ If you wish to commit it anyway, use:
371
371
  git commit --allow-empty
372
372
 
373
373
  Otherwise, please use 'git cherry-pick --skip'
374
- `,exitCode:1}:{stdout:await rt(s,{fromCommit:!0,index:i}),stderr:"",exitCode:1}}}let E=await on(s,r.env);if(M(E))return E;let R=await Qe(s,r.env);if(M(R))return R;u&&h&&(E.name=h.author.name,E.email=h.author.email,E.timestamp=h.author.timestamp,E.timezone=h.author.timezone),c&&(E=(await j(s,c)).author);let P=At(p),C={repo:s,message:P},v=await t?.hooks?.commitMsg?.(C);if(ee(v))return L(v.message??"");P=C.message;let D;u&&h?D=[...h.parents]:(D=m?[m]:[],a&&D.push(a));let O=tn({type:"commit",tree:w,parents:D,author:E,committer:R,message:P}),H=await $e(s,"commit",O);await ae(s,i);let G=await Q(s);G&&G.type==="symbolic"?await X(s,G.target,H):await X(s,"HEAD",H);let A=fe(P),$;u?$="commit (amend)":a?$="commit (merge)":c?$="commit (cherry-pick)":m?$="commit":$="commit (initial)";let N=`${$}: ${A}`,B=G?.type==="symbolic"?G.target:"HEAD";await re(s,r.env,B,m,H,N,G?.type==="symbolic"),a&&await ts(s),c&&await Mt(s),f&&await jt(s),d&&await pe(s,"MERGE_MSG"),await pe(s,"SQUASH_MSG"),await t?.hooks?.postCommit?.({repo:s,hash:H,message:P,branch:G?.type==="symbolic"?Re(G.target):null,parents:D,author:E});let z=G?.type==="symbolic"?G.target:null,_=z?Re(z):"detached HEAD",U;if(u&&h){let me=h.parents[0];U=me?(await j(s,me)).tree:null}else U=m?(await j(s,m)).tree:null;let V=E.timestamp!==R.timestamp||E.timezone!==R.timezone,be=D.length>1,Le=await fn(s,U,w,E,R,V,be);return{stdout:`${Ht(_,H,p,D.length===0&&!u)}
375
- ${Le}`,stderr:"",exitCode:0}}})}se();Ne();le();function qn(e){let t=e.split(".");return t.length===2||t.length===3}function qh(e){let t=[];for(let[n,r]of Object.entries(e)){let o=n.match(/^(\S+)\s+"(.+)"$/);for(let[s,i]of Object.entries(r)){let a=o?`${o[1]}.${o[2]}.${s}`:`${n}.${s}`;for(let c of i)t.push(`${a}=${c}`)}}return t}function tl(e,t){e.command("config",{description:"Get and set repository options",args:[q.string().name("positionals").variadic().optional()],options:{list:S().alias("l").describe("List all config entries"),unset:S().describe("Remove a config key"),"get-all":S().describe("Get all values for a multi-valued key"),add:S().describe("Add a new line without altering existing values")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.positionals,a=i[0];if(n.list)return el(s);if(n["get-all"]){let f=a;return f?qn(f)?Jf(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(n.add){let f=a,l=i[1];return!f||l===void 0?L("error: missing key and/or value",2):qn(f)?(await Ta(s,f,l),{stdout:"",stderr:"",exitCode:0}):L(`error: invalid key: ${f}`,2)}if(n.unset){let f=a;return f?qn(f)?Qf(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(a==="list")return el(s);if(a==="get"){let f=i[1];return f?qn(f)?Zf(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(a==="get-all"){let f=i[1];return f?qn(f)?Jf(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(a==="set"){let f=i[1],l=i[2];return!f||l===void 0?L("error: missing key and/or value",2):qn(f)?(await Vo(s,f,l),{stdout:"",stderr:"",exitCode:0}):L(`error: invalid key: ${f}`,2)}if(a==="unset"){let f=i[1];return f?qn(f)?Qf(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(!a)return L("usage: git config [get|set|unset|list] [<key>] [<value>]",2);if(!qn(a))return L(`error: invalid key: ${a}`,2);let c=i[1];return c!==void 0?(await Vo(s,a,c),{stdout:"",stderr:"",exitCode:0}):Zf(s,a)}})}async function Zf(e,t){let n=await ke(e,t);return n===void 0?L(""):{stdout:`${n}
376
- `,stderr:"",exitCode:0}}async function Jf(e,t){let n=await $a(e,t);return n.length===0?L(""):{stdout:`${n.join(`
374
+ `,exitCode:1}:{stdout:await rt(s,{fromCommit:!0,index:i}),stderr:"",exitCode:1}}}let E=await on(s,r.env);if(M(E))return E;let R=await Qe(s,r.env);if(M(R))return R;u&&h&&(E.name=h.author.name,E.email=h.author.email,E.timestamp=h.author.timestamp,E.timezone=h.author.timezone),c&&(E=(await j(s,c)).author);let C=At(p),P={repo:s,message:C},v=await t?.hooks?.commitMsg?.(P);if(ee(v))return L(v.message??"");C=P.message;let D;u&&h?D=[...h.parents]:(D=m?[m]:[],a&&D.push(a));let O=tn({type:"commit",tree:w,parents:D,author:E,committer:R,message:C}),H=await Se(s,"commit",O);await ae(s,i);let G=await Q(s);G&&G.type==="symbolic"?await X(s,G.target,H):await X(s,"HEAD",H);let A=fe(C),S;u?S="commit (amend)":a?S="commit (merge)":c?S="commit (cherry-pick)":m?S="commit":S="commit (initial)";let N=`${S}: ${A}`,B=G?.type==="symbolic"?G.target:"HEAD";await re(s,r.env,B,m,H,N,G?.type==="symbolic"),a&&await ts(s),c&&await Mt(s),f&&await jt(s),d&&await pe(s,"MERGE_MSG"),await pe(s,"SQUASH_MSG"),await t?.hooks?.postCommit?.({repo:s,hash:H,message:C,branch:G?.type==="symbolic"?Re(G.target):null,parents:D,author:E});let z=G?.type==="symbolic"?G.target:null,_=z?Re(z):"detached HEAD",U;if(u&&h){let me=h.parents[0];U=me?(await j(s,me)).tree:null}else U=m?(await j(s,m)).tree:null;let V=E.timestamp!==R.timestamp||E.timezone!==R.timezone,be=D.length>1,Le=await fn(s,U,w,E,R,V,be);return{stdout:`${Ht(_,H,p,D.length===0&&!u)}
375
+ ${Le}`,stderr:"",exitCode:0}}})}se();Ne();le();function qn(e){let t=e.split(".");return t.length===2||t.length===3}function zh(e){let t=[];for(let[n,r]of Object.entries(e)){let o=n.match(/^(\S+)\s+"(.+)"$/);for(let[s,i]of Object.entries(r)){let a=o?`${o[1]}.${o[2]}.${s}`:`${n}.${s}`;for(let c of i)t.push(`${a}=${c}`)}}return t}function el(e,t){e.command("config",{description:"Get and set repository options",args:[q.string().name("positionals").variadic().optional()],options:{list:$().alias("l").describe("List all config entries"),unset:$().describe("Remove a config key"),"get-all":$().describe("Get all values for a multi-valued key"),add:$().describe("Add a new line without altering existing values")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.positionals,a=i[0];if(n.list)return Qf(s);if(n["get-all"]){let f=a;return f?qn(f)?Zf(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(n.add){let f=a,l=i[1];return!f||l===void 0?L("error: missing key and/or value",2):qn(f)?(await Ta(s,f,l),{stdout:"",stderr:"",exitCode:0}):L(`error: invalid key: ${f}`,2)}if(n.unset){let f=a;return f?qn(f)?Jf(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(a==="list")return Qf(s);if(a==="get"){let f=i[1];return f?qn(f)?Xf(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(a==="get-all"){let f=i[1];return f?qn(f)?Zf(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(a==="set"){let f=i[1],l=i[2];return!f||l===void 0?L("error: missing key and/or value",2):qn(f)?(await Vo(s,f,l),{stdout:"",stderr:"",exitCode:0}):L(`error: invalid key: ${f}`,2)}if(a==="unset"){let f=i[1];return f?qn(f)?Jf(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(!a)return L("usage: git config [get|set|unset|list] [<key>] [<value>]",2);if(!qn(a))return L(`error: invalid key: ${a}`,2);let c=i[1];return c!==void 0?(await Vo(s,a,c),{stdout:"",stderr:"",exitCode:0}):Xf(s,a)}})}async function Xf(e,t){let n=await ke(e,t);return n===void 0?L(""):{stdout:`${n}
376
+ `,stderr:"",exitCode:0}}async function Zf(e,t){let n=await Sa(e,t);return n.length===0?L(""):{stdout:`${n.join(`
377
377
  `)}
378
- `,stderr:"",exitCode:0}}async function Qf(e,t){return await va(e,t)?{stdout:"",stderr:"",exitCode:0}:L("",5)}async function el(e){let t=T(e.gitDir,"config"),n="";await e.fs.exists(t)&&(n=await e.fs.readFile(t));let r=Wo(n),o=qh(r);return{stdout:o.length>0?`${o.join(`
378
+ `,stderr:"",exitCode:0}}async function Jf(e,t){return await va(e,t)?{stdout:"",stderr:"",exitCode:0}:L("",5)}async function Qf(e){let t=T(e.gitDir,"config"),n="";await e.fs.exists(t)&&(n=await e.fs.readFile(t));let r=Wo(n),o=zh(r);return{stdout:o.length>0?`${o.join(`
379
379
  `)}
380
380
  `:"",stderr:"",exitCode:0}}se();function Oo(e){let{path:t,parentHashes:n,parentModes:r,resultHash:o,resultMode:s}=e,i=[];i.push(`diff --cc ${t}`);let a=n.map(y=>y?Y(y):"0000000"),c=o?Y(o):"0000000";i.push(`index ${a.join(",")}..${c}`);let f=e.resultContent.length>0,l=n.every(y=>y===null),d=!f&&n.some(y=>y!==null);if(l&&s)i.push(`new file mode ${s}`);else if(d){let y=r.map(x=>x||"000000").join(",");i.push(`deleted file mode ${y}`)}else{let y=r.map(k=>k||"000000"),x=s||"000000";y.some(k=>k!==x)&&i.push(`mode ${y.join(",")}..${x}`)}let u=n.some(y=>y!==null);if(i.push(u?`--- a/${t}`:"--- /dev/null"),i.push(f?`+++ b/${t}`:"+++ /dev/null"),d||l)return`${i.join(`
381
381
  `)}
382
- `;let m=e.parentContents.map(y=>y.length>0?Lt(y):[]),h=e.resultContent.length>0?Lt(e.resultContent):[],p=m.map(y=>st(y,h)),g=zh(m,h,p),w=Vh(g,m.length,h);if(w.length===0)return"";for(let y of w)i.push(y);return`${i.join(`
382
+ `;let m=e.parentContents.map(y=>y.length>0?Lt(y):[]),h=e.resultContent.length>0?Lt(e.resultContent):[],p=m.map(y=>st(y,h)),g=Kh(m,h,p),w=Yh(g,m.length,h);if(w.length===0)return"";for(let y of w)i.push(y);return`${i.join(`
383
383
  `)}
384
- `}function zh(e,t,n){let r=e.length,o=n.map(i=>{let a=[],c=new Map,f=0;for(let l of i)if(l.type==="keep")a[l.newLineNo-1]="keep",f=l.newLineNo;else if(l.type==="insert")a[l.newLineNo-1]="insert",f=l.newLineNo;else if(l.type==="delete"){let d=c.get(f)??[];d.push({text:l.line,parentLineNo:l.oldLineNo}),c.set(f,d)}return{resultStatus:a,deletions:c}}),s=[];for(let i=0;i<=t.length;i++){let a=[];for(let f=0;f<r;f++){let l=o[f];a.push(l?.deletions.get(i)??[])}let c=Kh(a,r);for(let f of c)s.push(f);if(i<t.length){let f=[],l=Array(r).fill(0);for(let d=0;d<r;d++){let m=o[d]?.resultStatus[i];if(f.push(m==="insert"?"+":" "),m==="keep"){let h=n[d];if(h){for(let p of h)if(p.type==="keep"&&p.newLineNo===i+1){l[d]=p.oldLineNo;break}}}}s.push({columns:f,text:t[i]??"",resultLineNo:i+1,parentLineNos:l})}}return s}function Kh(e,t){if(!e.some(o=>o.length>0))return[];if(t===2){let o=e[0]??[],s=e[1]??[];if(o.length===0)return s.map(l=>({columns:[" ","-"],text:l.text,resultLineNo:0,parentLineNos:[0,l.parentLineNo]}));if(s.length===0)return o.map(l=>({columns:["-"," "],text:l.text,resultLineNo:0,parentLineNos:[l.parentLineNo,0]}));let i=o.map(l=>l.text),a=s.map(l=>l.text),c=st(i,a),f=[];for(let l of c)if(l.type==="keep"){let d=o.find(m=>m.text===l.line&&m.parentLineNo===l.oldLineNo),u=s.find(m=>m.text===l.line&&m.parentLineNo===l.newLineNo);f.push({columns:["-","-"],text:l.line,resultLineNo:0,parentLineNos:[d?.parentLineNo??0,u?.parentLineNo??0]})}else if(l.type==="delete"){let d=o.find(u=>u.parentLineNo===l.oldLineNo);f.push({columns:["-"," "],text:l.line,resultLineNo:0,parentLineNos:[d?.parentLineNo??0,0]})}else if(l.type==="insert"){let d=s.find(u=>u.parentLineNo===l.newLineNo);f.push({columns:[" ","-"],text:l.line,resultLineNo:0,parentLineNos:[0,d?.parentLineNo??0]})}return f}let r=[];for(let o=0;o<t;o++){let s=e[o]??[];for(let i of s){let a=Array(t).fill(" ");a[o]="-";let c=Array(t).fill(0);c[o]=i.parentLineNo,r.push({columns:a,text:i.text,resultLineNo:0,parentLineNos:c})}}return r}function Vh(e,t,n){let o=[];for(let l=0;l<e.length;l++)e[l]?.columns.some(u=>u!==" ")&&o.push(l);if(o.length===0)return[];let s=[],i=o[0]??0,a=Math.max(0,i-3),c=Math.min(e.length-1,i+3);for(let l=1;l<o.length;l++){let d=o[l]??0,u=Math.max(0,d-3),m=Math.min(e.length-1,d+3);u<=c+1||(s.push({start:a,end:c}),a=u),c=m}s.push({start:a,end:c});let f=[];for(let l of s){let d=e.slice(l.start,l.end+1),u=[];for(let b=0;b<t;b++){let k=d.filter(E=>(E.parentLineNos[b]??0)>0||E.columns[b]==="-");if(k.length===0)u.push({start:1,count:0});else{let R=k.find(P=>(P.parentLineNos[b]??0)>0)?.parentLineNos[b]??1;u.push({start:R,count:k.length})}}let m=d.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 k=n[b];if(k&&/^[a-zA-Z$_]/.test(k)){w=` ${k.trimEnd().slice(0,79)}`;break}}let y=u.map(b=>`-${b.start},${b.count}`),x=`${"@".repeat(t+1)} ${y.join(" ")} +${p},${g} ${"@".repeat(t+1)}${w}`;f.push(x);for(let b of d)f.push(`${b.columns.join("")}${b.text}`)}return f}se();Pe();ie();le();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}Zn();ue();ve();tt();var Xi=new TextDecoder;function ol(e){return"exitCode"in e}function vr(e){return e.toString(8).padStart(6,"0")}function il(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 al(e,t){e.command("diff",{description:"Show changes between commits, commit and working tree, etc.",args:[q.string().name("commits").variadic().optional()],options:{cached:S().describe("Show staged changes (index vs HEAD)"),staged:S().describe("Synonym for --cached"),stat:S().describe("Show diffstat summary"),nameOnly:S().describe("Show only names of changed files"),nameStatus:S().describe("Show names and status of changed files"),shortstat:S().describe("Show only the shortstat summary line"),numstat:S().describe("Machine-readable insertions/deletions per file")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.cached||n.staged,c=n.commits,f=ut(i,r.cwd),l=o.passthrough.length>0?o.passthrough.map(p=>Ue(p,f)):null,d=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(a)return I("too many arguments");m.type==="three-dot"?u=await Jh(i,m.left,m.right,l):u=await sl(i,m.left,m.right,l)}else if(c.length===2)u=await sl(i,c[0],c[1],l);else{if(c.length>2)return I("too many arguments");a?u=await Zh(i,c.length===1?c[0]:null,l):c.length===1?u=await Qh(i,c[0],l):u=await Yh(i,l)}if(ol(u))return u;let h=await ep(i,u.items,d);return u.stderr&&(h.stderr=u.stderr),h}})}async function Yh(e,t){let n=Xe(e);if(n)return n;let r=await K(e),o=new Set,s=new Map,i=new Map,a=new Map;for(let l of r.entries)l.stage===0?s.set(l.path,l):(o.add(l.path),l.stage===2?i.set(l.path,l):l.stage===3&&a.set(l.path,l));let c=await Tt(e,r);c.sort((l,d)=>Oe(l.path,d.path));let f=[];for(let l of c){if(l.status==="untracked"||t&&!ye(t,l.path)||o.has(l.path))continue;let d=s.get(l.path);if(!d)continue;let u=vr(d.mode),m;if(l.status==="modified"&&e.workTree){let h=T(e.workTree,l.path),p=await e.fs.readFileBuffer(h);m=await Et("blob",p)}f.push({path:l.path,status:l.status==="deleted"?"D":"M",oldHash:d.hash,newHash:m,oldMode:u,newMode:u,newFromWorkTree:l.status==="modified"})}for(let l of o){if(t&&!ye(t,l))continue;let d=i.get(l),u=a.get(l);await Xh(f,e,l,d,u)}return f.sort((l,d)=>{let u=Oe(l.path,d.path);return u!==0?u:l.status==="U"&&d.status!=="U"?-1:l.status!=="U"&&d.status==="U"?1:0}),{items:f}}async function Xh(e,t,n,r,o){let s=t.workTree;if(s&&r&&o){let i=vr(r.mode),a=vr(o.mode),{exists:c,hash:f}=await nl(t.fs,s,n);e.push({path:n,status:"U",newHash:f,newMode:i,newFromWorkTree:c,combinedParentHashes:[r.hash,o.hash],combinedParentModes:[i,a]}),rl(e,n,r.hash,i,c,f);return}if(e.push({path:n,status:"U"}),s&&r){let i=vr(r.mode),{exists:a,hash:c}=await nl(t.fs,s,n);rl(e,n,r.hash,i,a,c)}}async function nl(e,t,n){let r=T(t,n);if(!await e.exists(r))return{exists:!1};let o=await Zr(e,r);return{exists:!0,hash:await Et("blob",o)}}function rl(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 Zh(e,t,n){let r=null;if(t){let u=await He(e,t);if(M(u))return u;r=u.commit.tree}else{let u=await Z(e);u&&(r=(await j(e,u)).tree)}let o=await ce(e,r),s=await K(e),i=new Set;for(let u of s.entries)u.stage>0&&i.add(u.path);let a=new Map(je(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:vr(m.mode)}):c.push({path:u,status:"added",newHash:m.hash,newMode:vr(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:l}=await nt(e,c),d=il(f,l);for(let u of i)d.push({path:u,status:"U"});return d.sort((u,m)=>Oe(u.path,m.path)),n?{items:d.filter(u=>ye(n,u.path))}:{items:d}}async function sl(e,t,n,r){let o=await He(e,t);if(M(o))return o;let s=await He(e,n);if(M(s))return s;let i=await We(e,o.commit.tree,s.commit.tree);return cl(e,i,r)}async function Jh(e,t,n,r){let o=await He(e,t);if(M(o))return o;let s=await He(e,n);if(M(s))return s;let i=await Nt(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]}
385
- `);let c=i[0],f=await j(e,c),l=await We(e,f.tree,s.commit.tree),d=await cl(e,l,r);return ol(d)||a&&(d.stderr=a),d}async function cl(e,t,n){let{remaining:r,renames:o}=await nt(e,t),s=il(r,o);return s.sort((i,a)=>Oe(i.path,a.path)),n?{items:s.filter(i=>ye(n,i.path))}:{items:s}}async function Qh(e,t,n){let r=Xe(e);if(r)return r;let o=await He(e,t);if(M(o))return o;let s=e.workTree,i=await ce(e,o.commit.tree),a=[];for(let[c,f]of i){if(n&&!ye(n,c))continue;let l=T(s,c);if(!await e.fs.exists(l)){a.push({path:c,status:"D",oldHash:f.hash,oldMode:f.mode});continue}let d=await e.fs.readFileBuffer(l),u=await Et("blob",d);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)=>Oe(c.path,f.path)),{items:a}}async function ep(e,t,n){let r;switch(n){case"stat":r=await ip(e,t);break;case"shortstat":r=await ap(e,t);break;case"numstat":r=await op(e,t);break;case"name-only":r=rp(t);break;case"name-status":r=sp(t);break;default:r=await tp(e,t);break}return{stdout:r,stderr:"",exitCode:0}}async function tp(e,t){let n="",r=new Set,o=await np(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 oe(e,f):"")),a=await Zi(e,s);if(i.some(f=>Se(f))||Se(a)){let f=s.combinedParentHashes.map(l=>l?Y(l):"0000000");n+=`diff --cc ${s.path}
384
+ `}function Kh(e,t,n){let r=e.length,o=n.map(i=>{let a=[],c=new Map,f=0;for(let l of i)if(l.type==="keep")a[l.newLineNo-1]="keep",f=l.newLineNo;else if(l.type==="insert")a[l.newLineNo-1]="insert",f=l.newLineNo;else if(l.type==="delete"){let d=c.get(f)??[];d.push({text:l.line,parentLineNo:l.oldLineNo}),c.set(f,d)}return{resultStatus:a,deletions:c}}),s=[];for(let i=0;i<=t.length;i++){let a=[];for(let f=0;f<r;f++){let l=o[f];a.push(l?.deletions.get(i)??[])}let c=Vh(a,r);for(let f of c)s.push(f);if(i<t.length){let f=[],l=Array(r).fill(0);for(let d=0;d<r;d++){let m=o[d]?.resultStatus[i];if(f.push(m==="insert"?"+":" "),m==="keep"){let h=n[d];if(h){for(let p of h)if(p.type==="keep"&&p.newLineNo===i+1){l[d]=p.oldLineNo;break}}}}s.push({columns:f,text:t[i]??"",resultLineNo:i+1,parentLineNos:l})}}return s}function Vh(e,t){if(!e.some(o=>o.length>0))return[];if(t===2){let o=e[0]??[],s=e[1]??[];if(o.length===0)return s.map(l=>({columns:[" ","-"],text:l.text,resultLineNo:0,parentLineNos:[0,l.parentLineNo]}));if(s.length===0)return o.map(l=>({columns:["-"," "],text:l.text,resultLineNo:0,parentLineNos:[l.parentLineNo,0]}));let i=o.map(l=>l.text),a=s.map(l=>l.text),c=st(i,a),f=[];for(let l of c)if(l.type==="keep"){let d=o.find(m=>m.text===l.line&&m.parentLineNo===l.oldLineNo),u=s.find(m=>m.text===l.line&&m.parentLineNo===l.newLineNo);f.push({columns:["-","-"],text:l.line,resultLineNo:0,parentLineNos:[d?.parentLineNo??0,u?.parentLineNo??0]})}else if(l.type==="delete"){let d=o.find(u=>u.parentLineNo===l.oldLineNo);f.push({columns:["-"," "],text:l.line,resultLineNo:0,parentLineNos:[d?.parentLineNo??0,0]})}else if(l.type==="insert"){let d=s.find(u=>u.parentLineNo===l.newLineNo);f.push({columns:[" ","-"],text:l.line,resultLineNo:0,parentLineNos:[0,d?.parentLineNo??0]})}return f}let r=[];for(let o=0;o<t;o++){let s=e[o]??[];for(let i of s){let a=Array(t).fill(" ");a[o]="-";let c=Array(t).fill(0);c[o]=i.parentLineNo,r.push({columns:a,text:i.text,resultLineNo:0,parentLineNos:c})}}return r}function Yh(e,t,n){let o=[];for(let l=0;l<e.length;l++)e[l]?.columns.some(u=>u!==" ")&&o.push(l);if(o.length===0)return[];let s=[],i=o[0]??0,a=Math.max(0,i-3),c=Math.min(e.length-1,i+3);for(let l=1;l<o.length;l++){let d=o[l]??0,u=Math.max(0,d-3),m=Math.min(e.length-1,d+3);u<=c+1||(s.push({start:a,end:c}),a=u),c=m}s.push({start:a,end:c});let f=[];for(let l of s){let d=e.slice(l.start,l.end+1),u=[];for(let b=0;b<t;b++){let k=d.filter(E=>(E.parentLineNos[b]??0)>0||E.columns[b]==="-");if(k.length===0)u.push({start:1,count:0});else{let R=k.find(C=>(C.parentLineNos[b]??0)>0)?.parentLineNos[b]??1;u.push({start:R,count:k.length})}}let m=d.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 k=n[b];if(k&&/^[a-zA-Z$_]/.test(k)){w=` ${k.trimEnd().slice(0,79)}`;break}}let y=u.map(b=>`-${b.start},${b.count}`),x=`${"@".repeat(t+1)} ${y.join(" ")} +${p},${g} ${"@".repeat(t+1)}${w}`;f.push(x);for(let b of d)f.push(`${b.columns.join("")}${b.text}`)}return f}se();Ce();ie();le();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}Zn();ue();ve();tt();var Xi=new TextDecoder;function sl(e){return"exitCode"in e}function dr(e){return e.toString(8).padStart(6,"0")}function ol(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 il(e,t){e.command("diff",{description:"Show changes between commits, commit and working tree, etc.",args:[q.string().name("commits").variadic().optional()],options:{cached:$().describe("Show staged changes (index vs HEAD)"),staged:$().describe("Synonym for --cached"),stat:$().describe("Show diffstat summary"),nameOnly:$().describe("Show only names of changed files"),nameStatus:$().describe("Show names and status of changed files"),shortstat:$().describe("Show only the shortstat summary line"),numstat:$().describe("Machine-readable insertions/deletions per file")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.cached||n.staged,c=n.commits,f=mt(i,r.cwd),l=o.passthrough.length>0?o.passthrough.map(p=>Ue(p,f)):null,d=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(a)return I("too many arguments");m.type==="three-dot"?u=await Qh(i,m.left,m.right,l):u=await rl(i,m.left,m.right,l)}else if(c.length===2)u=await rl(i,c[0],c[1],l);else{if(c.length>2)return I("too many arguments");a?u=await Jh(i,c.length===1?c[0]:null,l):c.length===1?u=await ep(i,c[0],l):u=await Xh(i,l)}if(sl(u))return u;let h=await tp(i,u.items,d);return u.stderr&&(h.stderr=u.stderr),h}})}async function Xh(e,t){let n=Xe(e);if(n)return n;let r=await K(e),o=new Set,s=new Map,i=new Map,a=new Map;for(let l of r.entries)l.stage===0?s.set(l.path,l):(o.add(l.path),l.stage===2?i.set(l.path,l):l.stage===3&&a.set(l.path,l));let c=await Tt(e,r);c.sort((l,d)=>Oe(l.path,d.path));let f=[];for(let l of c){if(l.status==="untracked"||t&&!ye(t,l.path)||o.has(l.path))continue;let d=s.get(l.path);if(!d)continue;let u=dr(d.mode),m;if(l.status==="modified"&&e.workTree){let h=T(e.workTree,l.path),p=await e.fs.readFileBuffer(h);m=await ut("blob",p)}f.push({path:l.path,status:l.status==="deleted"?"D":"M",oldHash:d.hash,newHash:m,oldMode:u,newMode:u,newFromWorkTree:l.status==="modified"})}for(let l of o){if(t&&!ye(t,l))continue;let d=i.get(l),u=a.get(l);await Zh(f,e,l,d,u)}return f.sort((l,d)=>{let u=Oe(l.path,d.path);return u!==0?u:l.status==="U"&&d.status!=="U"?-1:l.status!=="U"&&d.status==="U"?1:0}),{items:f}}async function Zh(e,t,n,r,o){let s=t.workTree;if(s&&r&&o){let i=dr(r.mode),a=dr(o.mode),{exists:c,hash:f}=await tl(t.fs,s,n);e.push({path:n,status:"U",newHash:f,newMode:i,newFromWorkTree:c,combinedParentHashes:[r.hash,o.hash],combinedParentModes:[i,a]}),nl(e,n,r.hash,i,c,f);return}if(e.push({path:n,status:"U"}),s&&r){let i=dr(r.mode),{exists:a,hash:c}=await tl(t.fs,s,n);nl(e,n,r.hash,i,a,c)}}async function tl(e,t,n){let r=T(t,n);if(!await e.exists(r))return{exists:!1};let o=await Zr(e,r);return{exists:!0,hash:await ut("blob",o)}}function nl(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 Jh(e,t,n){let r=null;if(t){let u=await He(e,t);if(M(u))return u;r=u.commit.tree}else{let u=await Z(e);u&&(r=(await j(e,u)).tree)}let o=await ce(e,r),s=await K(e),i=new Set;for(let u of s.entries)u.stage>0&&i.add(u.path);let a=new Map(De(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:dr(m.mode)}):c.push({path:u,status:"added",newHash:m.hash,newMode:dr(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:l}=await nt(e,c),d=ol(f,l);for(let u of i)d.push({path:u,status:"U"});return d.sort((u,m)=>Oe(u.path,m.path)),n?{items:d.filter(u=>ye(n,u.path))}:{items:d}}async function rl(e,t,n,r){let o=await He(e,t);if(M(o))return o;let s=await He(e,n);if(M(s))return s;let i=await We(e,o.commit.tree,s.commit.tree);return al(e,i,r)}async function Qh(e,t,n,r){let o=await He(e,t);if(M(o))return o;let s=await He(e,n);if(M(s))return s;let i=await Nt(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]}
385
+ `);let c=i[0],f=await j(e,c),l=await We(e,f.tree,s.commit.tree),d=await al(e,l,r);return sl(d)||a&&(d.stderr=a),d}async function al(e,t,n){let{remaining:r,renames:o}=await nt(e,t),s=ol(r,o);return s.sort((i,a)=>Oe(i.path,a.path)),n?{items:s.filter(i=>ye(n,i.path))}:{items:s}}async function ep(e,t,n){let r=Xe(e);if(r)return r;let o=await He(e,t);if(M(o))return o;let s=e.workTree,i=await ce(e,o.commit.tree),a=await K(e),c=new Map(De(a).map(l=>[l.path,l])),f=[];for(let[l,d]of i){if(n&&!ye(n,l))continue;let u=T(s,l);if(!await e.fs.exists(u)){f.push({path:l,status:"D",oldHash:d.hash,oldMode:d.mode});continue}let m=await e.fs.readFileBuffer(u),h=await ut("blob",m);h!==d.hash&&f.push({path:l,status:"M",oldHash:d.hash,newHash:h,oldMode:d.mode,newMode:d.mode,newFromWorkTree:!0})}for(let[l,d]of c){if(i.has(l)||n&&!ye(n,l))continue;let u=T(s,l);if(!await e.fs.exists(u))continue;let m=await e.fs.readFileBuffer(u),h=await ut("blob",m);f.push({path:l,status:"A",newHash:h,newMode:dr(d.mode),newFromWorkTree:!0})}return f.sort((l,d)=>Oe(l.path,d.path)),{items:f}}async function tp(e,t,n){let r;switch(n){case"stat":r=await ap(e,t);break;case"shortstat":r=await cp(e,t);break;case"numstat":r=await ip(e,t);break;case"name-only":r=sp(t);break;case"name-status":r=op(t);break;default:r=await np(e,t);break}return{stdout:r,stderr:"",exitCode:0}}async function np(e,t){let n="",r=new Set,o=await rp(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 oe(e,f):"")),a=await Zi(e,s);if(i.some(f=>$e(f))||$e(a)){let f=s.combinedParentHashes.map(l=>l?Y(l):"0000000");n+=`diff --cc ${s.path}
386
386
  index ${f.join(",")}..0000000
387
387
  Binary files differ
388
388
  `,r.add(s.path)}else{let f=Oo({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}
389
389
  `}}else n+=`* Unmerged path ${s.path}
390
- `;for(let s of t){if(s.status==="U"||r.has(s.path))continue;let i=s.oldHash?await oe(e,s.oldHash):"",a=await Zi(e,s);s.status==="R"&&s.oldPath?n+=Ct({path:s.oldPath,oldContent:i,newContent:a,oldMode:s.oldMode,newMode:s.newMode,oldHash:So(s.oldHash,o),newHash:So(s.newHash,o),renameTo:s.path,similarity:s.similarity}):n+=Ct({path:s.path,oldContent:i,newContent:a,oldMode:s.oldMode,newMode:s.newMode,oldHash:So(s.oldHash,o),newHash:So(s.newHash,o),isNew:s.status==="A",isDeleted:s.status==="D"})}return n}async function np(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),l=await e.fs.exists(f)?await e.fs.readdir(f):[];return r.set(a,l),l},s=async(a,c)=>{let f=a.slice(0,2),l=a.slice(2,c),d=await o(f),u=0;for(let m of d)if(m.startsWith(l)&&(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 So(e,t){if(e)return e.length!==40?e:t.get(e)??Y(e)}function rp(e){let t="";for(let n of e)t+=`${n.path}
391
- `;return t}function sp(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}
390
+ `;for(let s of t){if(s.status==="U"||r.has(s.path))continue;let i=s.oldHash?await oe(e,s.oldHash):"",a=await Zi(e,s);s.status==="R"&&s.oldPath?n+=Pt({path:s.oldPath,oldContent:i,newContent:a,oldMode:s.oldMode,newMode:s.newMode,oldHash:$o(s.oldHash,o),newHash:$o(s.newHash,o),renameTo:s.path,similarity:s.similarity}):n+=Pt({path:s.path,oldContent:i,newContent:a,oldMode:s.oldMode,newMode:s.newMode,oldHash:$o(s.oldHash,o),newHash:$o(s.newHash,o),isNew:s.status==="A",isDeleted:s.status==="D"})}return n}async function rp(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),l=await e.fs.exists(f)?await e.fs.readdir(f):[];return r.set(a,l),l},s=async(a,c)=>{let f=a.slice(0,2),l=a.slice(2,c),d=await o(f),u=0;for(let m of d)if(m.startsWith(l)&&(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 $o(e,t){if(e)return e.length!==40?e:t.get(e)??Y(e)}function sp(e){let t="";for(let n of e)t+=`${n.path}
391
+ `;return t}function op(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}
392
392
  `}else t+=`${n.status} ${n.path}
393
- `;return t}async function op(e,t){let n="";for(let r of t){if(r.status==="U"){n+=`0 0 ${r.path}
394
- `;continue}let o=r.oldHash?await oe(e,r.oldHash):"",s=await Zi(e,r),i=Se(o)||Se(s),a,c;if(i)a="-",c="-";else{let{ins:f,del:l}=fl(o,s);a=String(f),c=String(l)}if(r.status==="R"&&r.oldPath){let f=cn(r.oldPath,r.path);n+=`${a} ${c} ${f}
393
+ `;return t}async function ip(e,t){let n="";for(let r of t){if(r.status==="U"){n+=`0 0 ${r.path}
394
+ `;continue}let o=r.oldHash?await oe(e,r.oldHash):"",s=await Zi(e,r),i=$e(o)||$e(s),a,c;if(i)a="-",c="-";else{let{ins:f,del:l}=cl(o,s);a=String(f),c=String(l)}if(r.status==="R"&&r.oldPath){let f=cn(r.oldPath,r.path);n+=`${a} ${c} ${f}
395
395
  `}else n+=`${a} ${c} ${r.path}
396
- `}return n}async function ip(e,t){let n=await ll(e,t);return cr(n)}async function ap(e,t){let n=await ll(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=Fn(s,r,o);return i?`${i}
396
+ `}return n}async function ap(e,t){let n=await fl(e,t);return cr(n)}async function cp(e,t){let n=await fl(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=Fn(s,r,o);return i?`${i}
397
397
  `:n.some(a=>a.isUnmerged)?` 0 files changed
398
- `:""}async function Zi(e,t){if(!t.newHash)return"";if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path),r=await Zr(e.fs,n);return Xi.decode(r)}return oe(e,t.newHash)}async function cp(e,t){if(!t.newHash)return new Uint8Array(0);if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path);return Zr(e.fs,n)}return kt(e,t.newHash)}function fl(e,t){let n=wt(e),r=wt(t),o=st(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 ll(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 kt(e,r.oldHash):new Uint8Array(0),i=await cp(e,r);if(On(s)||On(i))n.push({path:o,sortKey:r.path,insertions:0,deletions:0,isBinary:!0,oldSize:s.byteLength,newSize:i.byteLength});else{let a=Xi.decode(s),c=Xi.decode(i),{ins:f,del:l}=fl(a,c);n.push({path:o,sortKey:r.path,insertions:f,deletions:l})}}return n}se();Ne();Cn();le();Fe();ue();function dr(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 fp(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 $o(e,t){if(!fp(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 ul(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:S().describe("Fetch from all remotes"),prune:S().alias("p").describe("Remove stale remote-tracking refs"),tags:S().describe("Also fetch tags"),depth:J.number().describe("Limit fetching to the specified number of commits"),unshallow:S().describe("Convert a shallow repository to a complete one")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.depth!==void 0&&n.unshallow)return I("--depth and --unshallow cannot be used together");if(n.unshallow&&!await yo(s))return I("--unshallow on a complete repository does not make sense");let i=n.depth;if(n.unshallow&&(i=ls),n.all){if(n.remote)return I("fetch --all does not take a remote argument");let c=await he(s),f=[];for(let u of Object.keys(c)){let m=u.match(/^remote "(.+)"$/);m?.[1]&&f.push(m[1])}if(f.length===0)return{stdout:"",stderr:"",exitCode:0};let l=[],d=0;for(let u of f){let m=await dl(s,u,void 0,n.prune,n.tags,r.env,t,i);m.stderr&&l.push(m.stderr),m.exitCode!==0&&(d=m.exitCode)}return{stdout:"",stderr:l.join(""),exitCode:d}}let a=n.remote||"origin";return dl(s,a,n.refspec,n.prune,n.tags,r.env,t,i)}})}async function dl(e,t,n,r,o,s,i,a){let c;try{c=await Tr(e,t,s)}catch(H){let G=H instanceof Error?H.message:"";if(G.startsWith("network"))return I(G);throw H}if(!c)return I(`'${t}' does not appear to be a git repository`);let{transport:f,config:l}=c,d;n&&n.length>0?d=n.map(dr):d=[dr(l.fetchRefspec)];let u=await i?.hooks?.preFetch?.({repo:e,remote:t,url:l.url,refspecs:d.map(H=>`${H.src}:${H.dst}`),prune:r,tags:o});if(ee(u))return{stdout:"",stderr:u.message??"",exitCode:1};let m=await f.advertiseRefs();if(m.length===0)return{stdout:"",stderr:"",exitCode:0};let p=(await ge(e)).map(H=>H.hash),g=await F(e,"HEAD");g&&p.push(g);let w=[],y=new Set,x=[];for(let H of m)if(H.name!=="HEAD")for(let G of d){let A=$o(G,H.name);if(A!==null){x.push({remote:H,localRef:A,force:G.force}),y.has(H.hash)||(y.add(H.hash),w.push(H.hash));break}}if(o)for(let H of m)H.name.startsWith("refs/tags/")&&(x.push({remote:H,localRef:H.name,force:!1}),y.has(H.hash)||(y.add(H.hash),w.push(H.hash)));let b=new Set(p),k=w.filter(H=>!b.has(H)),E,R=a!==void 0?await Pr(e):void 0;a!==void 0&&(E={depth:a,existingShallows:R});let P=k.length>0?k:E?w:[];if(P.length>0){let H=await f.fetch(P,p,E);H.shallowUpdates&&await Or(e,H.shallowUpdates,R)}let C=await Jt(e,s),v=[];v.push(`From ${l.url}
399
- `);for(let H of x){let G=await F(e,H.localRef);await X(e,H.localRef,H.remote.hash),await Ke(e,H.localRef,{oldHash:G??te,newHash:H.remote.hash,name:C.name,email:C.email,timestamp:C.timestamp,tz:C.tz,message:G?"fetch":"fetch: storing head"});let A=To(H.remote.name),$=To(H.localRef);if(G){if(G!==H.remote.hash){let N=Y(G),B=Y(H.remote.hash);v.push(` ${N}..${B} ${A} -> ${$}
400
- `)}}else{let B=H.remote.name.startsWith("refs/tags/")?" * [new tag]":" * [new branch]";v.push(`${B} ${A} -> ${$}
401
- `)}}if(!o)for(let H of m){if(!H.name.startsWith("refs/tags/")||y.has(H.hash))continue;let G=await F(e,H.name),A=H.peeledHash??H.hash;!G&&b.has(A)&&(await X(e,H.name,H.hash),await Ke(e,H.name,{oldHash:te,newHash:H.hash,name:C.name,email:C.email,timestamp:C.timestamp,tz:C.tz,message:"fetch: storing head"}),v.push(` * [new tag] ${To(H.name)} -> ${To(H.name)}
402
- `))}if(r){let H=`refs/remotes/${t}`,G=await ge(e,H),A=new Set(m.filter($=>$.name.startsWith("refs/heads/")).map($=>$.name.slice(11)));for(let $ of G){let N=$.name.slice(H.length+1);A.has(N)||(await de(e,$.name),v.push(` - [deleted] (none) -> ${t}/${N}
403
- `))}}let D=m.find(H=>H.name==="HEAD");if(D){let H=T(e.gitDir,"FETCH_HEAD"),G=m.find($=>$.name.startsWith("refs/heads/")&&$.hash===D.hash),A=G?`branch '${G.name.slice(11)}' of`:"of";await e.fs.writeFile(H,`${D.hash} ${A} ${l.url}
404
- `)}let O={stdout:"",stderr:v.join(""),exitCode:0};return await i?.hooks?.postFetch?.({repo:e,remote:t,url:l.url,refsUpdated:x.length}),O}function To(e){return e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/tags/")?e.slice(10):e.startsWith("refs/remotes/")?e.slice(13):e}se();Pe();ie();le();Fe();ue();se();Pe();ie();le();Fe();ue();async function ml(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await ge(e,"refs");for(let a of r)t.add(a.hash);let o=T(e.gitDir,"logs");await e.fs.exists(o)&&await hl(e,o,o,t);let s=await K(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 F(e,a);c&&t.add(c)}let i=[];for(let a of t)await Kt(e,a)&&i.push(a);return i}async function hl(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 hl(e,i,n,r);else if(a.isFile){let c=i.slice(n.length+1),f=await Je(e,c);for(let l of f)l.newHash!==te&&r.add(l.newHash)}}}Ms();Br();le();async function lp(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 zt(a);for(let f of c.allHashes())n.add(f)}}catch{}return n.size===0?Sr(await Ir(e,t,[])):(await Sr(await Ir(e,t,[]))).filter(s=>!n.has(s.hash))}async function Ji(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 Sr(await Ir(t,r,[])):await lp(t,r);if(a.length===0)return null;let c=a.length,f=Ro(a,{window:s,depth:i}),l=f.filter(E=>E.delta).length,d=f.map(E=>({hash:E.hash,type:E.type,content:E.content,delta:E.delta,deltaBaseHash:E.deltaBase})),{data:u,entries:m}=await Ds(d),h=await lc(u,m),p=u.subarray(u.byteLength-20),g="";for(let E=0;E<20;E++){let R=p[E];g+=(R>>4).toString(16)+(R&15).toString(16)}let w=T(t.gitDir,"objects","pack");await n.mkdir(w,{recursive:!0});let y=`pack-${g}`,x=T(w,`${y}.pack`),b=T(w,`${y}.idx`);await n.writeFile(x,u),await n.writeFile(b,h);let k=new Set(f.map(E=>E.hash));if(t.objectStore.invalidatePacks?.(),o){let E=await n.readdir(w);for(let C of E){if(!C.endsWith(".idx"))continue;let v=C.slice(0,-4);if(v===y)continue;let D=T(w,`${v}.idx`),O=!0;try{let H=await n.readFileBuffer(D),G=new zt(H);for(let A of G.allHashes())if(!k.has(A)){O=!1;break}}catch{O=!1}if(O){try{await n.rm(T(w,`${v}.pack`))}catch{}try{await n.rm(D)}catch{}}}let R=T(t.gitDir,"objects"),P;try{P=await n.readdir(R)}catch{P=[]}for(let C of P){if(C==="pack"||C==="info"||C.length!==2)continue;let v=T(R,C),D;try{D=await n.readdir(v)}catch{continue}for(let O of D){let H=`${C}${O}`;k.has(H)&&await n.rm(T(v,O))}try{(await n.readdir(v)).length===0&&await n.rm(v,{recursive:!0})}catch{}}}return{totalCount:c,deltaCount:l,packHash:g}}function Qi(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(`
405
- `)}function pl(e,t){e.command("repack",{description:"Pack unpacked objects in a repository",options:{all:S().alias("a").describe("Pack all objects, including already-packed"),delete:S().alias("d").describe("After packing, remove redundant packs and loose objects")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await ml(s),a=await Ji({gitCtx:s,fs:r.fs,tips:i,cleanup:n.delete,all:n.all});return a?{stdout:"",stderr:`${Qi(a.totalCount,a.deltaCount)}
398
+ `:""}async function Zi(e,t){if(!t.newHash)return"";if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path),r=await Zr(e.fs,n);return Xi.decode(r)}return oe(e,t.newHash)}async function fp(e,t){if(!t.newHash)return new Uint8Array(0);if(t.newFromWorkTree&&e.workTree){let n=T(e.workTree,t.path);return Zr(e.fs,n)}return kt(e,t.newHash)}function cl(e,t){let n=bt(e),r=bt(t),o=st(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 fl(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 kt(e,r.oldHash):new Uint8Array(0),i=await fp(e,r);if(On(s)||On(i))n.push({path:o,sortKey:r.path,insertions:0,deletions:0,isBinary:!0,oldSize:s.byteLength,newSize:i.byteLength});else{let a=Xi.decode(s),c=Xi.decode(i),{ins:f,del:l}=cl(a,c);n.push({path:o,sortKey:r.path,insertions:f,deletions:l})}}return n}se();Ne();Pn();le();Fe();ue();function ur(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 lp(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 So(e,t){if(!lp(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 dl(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:$().describe("Fetch from all remotes"),prune:$().alias("p").describe("Remove stale remote-tracking refs"),tags:$().describe("Also fetch tags"),depth:J.number().describe("Limit fetching to the specified number of commits"),unshallow:$().describe("Convert a shallow repository to a complete one")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.depth!==void 0&&n.unshallow)return I("--depth and --unshallow cannot be used together");if(n.unshallow&&!await yo(s))return I("--unshallow on a complete repository does not make sense");let i=n.depth;if(n.unshallow&&(i=ls),n.all){if(n.remote)return I("fetch --all does not take a remote argument");let c=await he(s),f=[];for(let u of Object.keys(c)){let m=u.match(/^remote "(.+)"$/);m?.[1]&&f.push(m[1])}if(f.length===0)return{stdout:"",stderr:"",exitCode:0};let l=[],d=0;for(let u of f){let m=await ll(s,u,void 0,n.prune,n.tags,r.env,t,i);m.stderr&&l.push(m.stderr),m.exitCode!==0&&(d=m.exitCode)}return{stdout:"",stderr:l.join(""),exitCode:d}}let a=n.remote||"origin";return ll(s,a,n.refspec,n.prune,n.tags,r.env,t,i)}})}async function ll(e,t,n,r,o,s,i,a){let c;try{c=await vr(e,t,s)}catch(H){let G=H instanceof Error?H.message:"";if(G.startsWith("network"))return I(G);throw H}if(!c)return I(`'${t}' does not appear to be a git repository`);let{transport:f,config:l}=c,d;n&&n.length>0?d=n.map(ur):d=[ur(l.fetchRefspec)];let u=await i?.hooks?.preFetch?.({repo:e,remote:t,url:l.url,refspecs:d.map(H=>`${H.src}:${H.dst}`),prune:r,tags:o});if(ee(u))return{stdout:"",stderr:u.message??"",exitCode:1};let m=await f.advertiseRefs();if(m.length===0)return{stdout:"",stderr:"",exitCode:0};let p=(await ge(e)).map(H=>H.hash),g=await F(e,"HEAD");g&&p.push(g);let w=[],y=new Set,x=[];for(let H of m)if(H.name!=="HEAD")for(let G of d){let A=So(G,H.name);if(A!==null){x.push({remote:H,localRef:A,force:G.force}),y.has(H.hash)||(y.add(H.hash),w.push(H.hash));break}}if(o)for(let H of m)H.name.startsWith("refs/tags/")&&(x.push({remote:H,localRef:H.name,force:!1}),y.has(H.hash)||(y.add(H.hash),w.push(H.hash)));let b=new Set(p),k=w.filter(H=>!b.has(H)),E,R=a!==void 0?await Or(e):void 0;a!==void 0&&(E={depth:a,existingShallows:R});let C=k.length>0?k:E?w:[];if(C.length>0){let H=await f.fetch(C,p,E);H.shallowUpdates&&await Ir(e,H.shallowUpdates,R)}let P=await Jt(e,s),v=[];v.push(`From ${l.url}
399
+ `);for(let H of x){let G=await F(e,H.localRef);await X(e,H.localRef,H.remote.hash),await Ke(e,H.localRef,{oldHash:G??te,newHash:H.remote.hash,name:P.name,email:P.email,timestamp:P.timestamp,tz:P.tz,message:G?"fetch":"fetch: storing head"});let A=To(H.remote.name),S=To(H.localRef);if(G){if(G!==H.remote.hash){let N=Y(G),B=Y(H.remote.hash);v.push(` ${N}..${B} ${A} -> ${S}
400
+ `)}}else{let B=H.remote.name.startsWith("refs/tags/")?" * [new tag]":" * [new branch]";v.push(`${B} ${A} -> ${S}
401
+ `)}}if(!o)for(let H of m){if(!H.name.startsWith("refs/tags/")||y.has(H.hash))continue;let G=await F(e,H.name),A=H.peeledHash??H.hash;!G&&b.has(A)&&(await X(e,H.name,H.hash),await Ke(e,H.name,{oldHash:te,newHash:H.hash,name:P.name,email:P.email,timestamp:P.timestamp,tz:P.tz,message:"fetch: storing head"}),v.push(` * [new tag] ${To(H.name)} -> ${To(H.name)}
402
+ `))}if(r){let H=`refs/remotes/${t}`,G=await ge(e,H),A=new Set(m.filter(S=>S.name.startsWith("refs/heads/")).map(S=>S.name.slice(11)));for(let S of G){let N=S.name.slice(H.length+1);A.has(N)||(await de(e,S.name),v.push(` - [deleted] (none) -> ${t}/${N}
403
+ `))}}let D=m.find(H=>H.name==="HEAD");if(D){let H=T(e.gitDir,"FETCH_HEAD"),G=m.find(S=>S.name.startsWith("refs/heads/")&&S.hash===D.hash),A=G?`branch '${G.name.slice(11)}' of`:"of";await e.fs.writeFile(H,`${D.hash} ${A} ${l.url}
404
+ `)}let O={stdout:"",stderr:v.join(""),exitCode:0};return await i?.hooks?.postFetch?.({repo:e,remote:t,url:l.url,refsUpdated:x.length}),O}function To(e){return e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/tags/")?e.slice(10):e.startsWith("refs/remotes/")?e.slice(13):e}se();Ce();ie();le();Fe();ue();se();Ce();ie();le();Fe();ue();async function ul(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await ge(e,"refs");for(let a of r)t.add(a.hash);let o=T(e.gitDir,"logs");await e.fs.exists(o)&&await ml(e,o,o,t);let s=await K(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 F(e,a);c&&t.add(c)}let i=[];for(let a of t)await Kt(e,a)&&i.push(a);return i}async function ml(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 ml(e,i,n,r);else if(a.isFile){let c=i.slice(n.length+1),f=await Je(e,c);for(let l of f)l.newHash!==te&&r.add(l.newHash)}}}Ms();Br();le();async function dp(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 zt(a);for(let f of c.allHashes())n.add(f)}}catch{}return n.size===0?Sr(await $r(e,t,[])):(await Sr(await $r(e,t,[]))).filter(s=>!n.has(s.hash))}async function Ji(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 Sr(await $r(t,r,[])):await dp(t,r);if(a.length===0)return null;let c=a.length,f=Ro(a,{window:s,depth:i}),l=f.filter(E=>E.delta).length,d=f.map(E=>({hash:E.hash,type:E.type,content:E.content,delta:E.delta,deltaBaseHash:E.deltaBase})),{data:u,entries:m}=await Ds(d),h=await fc(u,m),p=u.subarray(u.byteLength-20),g="";for(let E=0;E<20;E++){let R=p[E];g+=(R>>4).toString(16)+(R&15).toString(16)}let w=T(t.gitDir,"objects","pack");await n.mkdir(w,{recursive:!0});let y=`pack-${g}`,x=T(w,`${y}.pack`),b=T(w,`${y}.idx`);await n.writeFile(x,u),await n.writeFile(b,h);let k=new Set(f.map(E=>E.hash));if(t.objectStore.invalidatePacks?.(),o){let E=await n.readdir(w);for(let P of E){if(!P.endsWith(".idx"))continue;let v=P.slice(0,-4);if(v===y)continue;let D=T(w,`${v}.idx`),O=!0;try{let H=await n.readFileBuffer(D),G=new zt(H);for(let A of G.allHashes())if(!k.has(A)){O=!1;break}}catch{O=!1}if(O){try{await n.rm(T(w,`${v}.pack`))}catch{}try{await n.rm(D)}catch{}}}let R=T(t.gitDir,"objects"),C;try{C=await n.readdir(R)}catch{C=[]}for(let P of C){if(P==="pack"||P==="info"||P.length!==2)continue;let v=T(R,P),D;try{D=await n.readdir(v)}catch{continue}for(let O of D){let H=`${P}${O}`;k.has(H)&&await n.rm(T(v,O))}try{(await n.readdir(v)).length===0&&await n.rm(v,{recursive:!0})}catch{}}}return{totalCount:c,deltaCount:l,packHash:g}}function Qi(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(`
405
+ `)}function hl(e,t){e.command("repack",{description:"Pack unpacked objects in a repository",options:{all:$().alias("a").describe("Pack all objects, including already-packed"),delete:$().alias("d").describe("After packing, remove redundant packs and loose objects")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await ul(s),a=await Ji({gitCtx:s,fs:r.fs,tips:i,cleanup:n.delete,all:n.all});return a?{stdout:"",stderr:`${Qi(a.totalCount,a.deltaCount)}
406
406
  `,exitCode:0}:{stdout:`Nothing new to pack.
407
- `,stderr:"",exitCode:0}}})}function gl(e,t){e.command("gc",{description:"Cleanup unnecessary files and optimize the local repository",options:{aggressive:S().describe("More aggressively optimize the repository")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;await bc(s),await ht(s);let i=await up(s);if(i.length>0){let a=n.aggressive?250:10,c=n.aggressive?250:50,f=await Ji({gitCtx:s,fs:r.fs,tips:i,window:a,depth:c,cleanup:!0,all:!0});if(await mp(s.gitDir,r.fs),f)return{stdout:"",stderr:`${Qi(f.totalCount,f.deltaCount,!0)}
408
- `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}})}var dp=2160*60*60;async function up(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await ge(e,"refs");for(let f of r)t.add(f.hash);let s=Math.floor(Date.now()/1e3)-dp,i=T(e.gitDir,"logs");await e.fs.exists(i)&&await wl(e,i,i,s,t);let a=await K(e);for(let f of a.entries)t.add(f.hash);for(let f of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let l=await F(e,f);l&&t.add(l)}let c=[];for(let f of t)await Kt(e,f)&&c.push(f);return c}async function wl(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 wl(e,a,n,r,o);try{(await e.fs.readdir(a)).length===0&&await e.fs.rm(a,{recursive:!0})}catch{}}else if(c.isFile){let f=a.slice(n.length+1),l=await Je(e,f);if(f==="refs/stash"){for(let u of l)u.newHash!==te&&o.add(u.newHash);continue}let d=l.filter(u=>u.timestamp>=r);await Tn(e,f,d);for(let u of d)u.newHash!==te&&o.add(u.newHash)}}}async function mp(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{}}le();$n();function bl(e){e.command("init",{description:"Initialize a new repository",args:[q.string().name("directory").describe("The directory to initialize").optional()],options:{bare:S().describe("Create a bare repository"),initialBranch:J.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?It(n.cwd,t.directory):n.cwd;t.directory&&await n.fs.mkdir(o,{recursive:!0});let{ctx:s,reinit:i}=await Gs(n.fs,o,{bare:t.bare,...r?{initialBranch:r}:{}}),a="";i&&r&&(a=`warning: re-init: ignored --initial-branch=${r}
407
+ `,stderr:"",exitCode:0}}})}function pl(e,t){e.command("gc",{description:"Cleanup unnecessary files and optimize the local repository",options:{aggressive:$().describe("More aggressively optimize the repository")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;await wc(s),await pt(s);let i=await mp(s);if(i.length>0){let a=n.aggressive?250:10,c=n.aggressive?250:50,f=await Ji({gitCtx:s,fs:r.fs,tips:i,window:a,depth:c,cleanup:!0,all:!0});if(await hp(s.gitDir,r.fs),f)return{stdout:"",stderr:`${Qi(f.totalCount,f.deltaCount,!0)}
408
+ `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}})}var up=2160*60*60;async function mp(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await ge(e,"refs");for(let f of r)t.add(f.hash);let s=Math.floor(Date.now()/1e3)-up,i=T(e.gitDir,"logs");await e.fs.exists(i)&&await gl(e,i,i,s,t);let a=await K(e);for(let f of a.entries)t.add(f.hash);for(let f of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let l=await F(e,f);l&&t.add(l)}let c=[];for(let f of t)await Kt(e,f)&&c.push(f);return c}async function gl(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 gl(e,a,n,r,o);try{(await e.fs.readdir(a)).length===0&&await e.fs.rm(a,{recursive:!0})}catch{}}else if(c.isFile){let f=a.slice(n.length+1),l=await Je(e,f);if(f==="refs/stash"){for(let u of l)u.newHash!==te&&o.add(u.newHash);continue}let d=l.filter(u=>u.timestamp>=r);await Tn(e,f,d);for(let u of d)u.newHash!==te&&o.add(u.newHash)}}}async function hp(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{}}le();Sn();function wl(e){e.command("init",{description:"Initialize a new repository",args:[q.string().name("directory").describe("The directory to initialize").optional()],options:{bare:$().describe("Create a bare repository"),initialBranch:J.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?It(n.cwd,t.directory):n.cwd;t.directory&&await n.fs.mkdir(o,{recursive:!0});let{ctx:s,reinit:i}=await Gs(n.fs,o,{bare:t.bare,...r?{initialBranch:r}:{}}),a="";i&&r&&(a=`warning: re-init: ignored --initial-branch=${r}
409
409
  `);let c=t.bare?"bare ":"";return{stdout:`${i?"Reinitialized existing":"Initialized empty"} ${c}Git repository in ${s.gitDir}/
410
- `,stderr:a,exitCode:0}}})}se();rr();var vo=class{hash=null;parents=[];nParents=0;state=0;prevState=0;commitIdx=0;prevCommitIdx=0;mergeLayout=0;edgesAdded=0;prevEdgesAdded=0;w=0;expRow=0;cols=[];nCols=0;newCols=[];nNewCols=0;map=[];oldMap=[];mapSize=0;get width(){return this.w}update(t,n){this.hash=t,this.parents=n,this.nParents=n.length,this.prevCommitIdx=this.commitIdx,this.updateColumns(),this.expRow=0,this.state!==0?this.state=1:this.needsPreCommit()?this.state=2:this.state=3}nextLine(){let t,n=!1;switch(this.state){case 0:t=this.outPadding();break;case 1:t=this.outSkip();break;case 2:t=this.outPreCommit();break;case 3:t=this.outCommit(),n=!0;break;case 4:t=this.outPostMerge();break;case 5:t=this.outCollapsing();break}return{prefix:yl(t,this.w),isCommitLine:n}}isFinished(){return this.state===0}paddingPrefix(){if(this.state!==3)return this.nextLine().prefix;let t="";for(let n=0;n<this.nCols;n++)t+="| ";return this.prevState=0,yl(t,this.w)}updateColumns(){let t=this.newCols,n=this.nNewCols;this.newCols=this.cols,this.nNewCols=0,this.cols=t,this.nCols=n;let r=this.nCols+this.nParents;this.map.length<2*r&&(this.map=new Array(2*r),this.oldMap=new Array(2*r)),this.mapSize=2*r,this.map.fill(-1,0,this.mapSize),this.w=0,this.prevEdgesAdded=this.edgesAdded,this.edgesAdded=0;let o=!1;for(let s=0;s<=this.nCols;s++){let i;if(s===this.nCols){if(o)break;i=this.hash}else i=this.cols[s];if(i===this.hash){o=!0,this.commitIdx=s,this.mergeLayout=-1;for(let a of this.parents)this.insertNewCol(a,s);this.nParents===0&&(this.w+=2)}else this.insertNewCol(i,-1)}for(;this.mapSize>1&&this.map[this.mapSize-1]<0;)this.mapSize--}findNewCol(t){for(let n=0;n<this.nNewCols;n++)if(this.newCols[n]===t)return n;return-1}insertNewCol(t,n){let r=this.findNewCol(t);r<0&&(r=this.nNewCols++,this.newCols[r]=t);let o;if(this.nParents>1&&n>-1&&this.mergeLayout===-1){let s=n-r,i=s>1?2*s-3:1;this.mergeLayout=s>0?0:1,this.edgesAdded=this.nParents+this.mergeLayout-2,o=this.w+(this.mergeLayout-1)*i,this.w+=2*this.mergeLayout}else this.edgesAdded>0&&this.w>=2&&r===this.map[this.w-2]?(o=this.w-2,this.edgesAdded=-1):(o=this.w,this.w+=2);this.map[o]=r}setState(t){this.prevState=this.state,this.state=t}numDashedParents(){return this.nParents+this.mergeLayout-3}numExpansionRows(){return this.numDashedParents()*2}needsPreCommit(){return this.nParents>=3&&this.commitIdx<this.nCols-1&&this.expRow<this.numExpansionRows()}isMappingCorrect(){for(let t=0;t<this.mapSize;t++){let n=this.map[t];if(!(n<0)&&n!==t>>1)return!1}return!0}outPadding(){let t="";for(let n=0;n<this.nNewCols;n++)t+="| ";return t}outSkip(){return this.needsPreCommit()?this.setState(2):this.setState(3),"..."}outPreCommit(){let t="",n=!1;for(let r=0;r<this.nCols;r++)this.cols[r]===this.hash?(n=!0,t+="|",t+=" ".repeat(this.expRow)):n&&this.expRow===0?this.prevState===4&&this.prevCommitIdx<r?t+="\\":t+="|":n?t+="\\":t+="|",t+=" ";return this.expRow++,this.needsPreCommit()||this.setState(3),t}outCommit(){let t="",n=!1;for(let r=0;r<=this.nCols;r++){let o;if(r===this.nCols){if(n)break;o=this.hash}else o=this.cols[r];o===this.hash?(n=!0,t+="*",this.nParents>2&&(t+=this.drawOctopus())):n&&this.edgesAdded>1?t+="\\":n&&this.edgesAdded===1?this.prevState===4&&this.prevEdgesAdded>0&&this.prevCommitIdx<r?t+="\\":t+="|":this.prevState===5&&this.oldMap[2*r+1]===r&&this.map[2*r]<r?t+="/":t+="|",t+=" "}return this.nParents>1?this.setState(4):this.isMappingCorrect()?this.setState(0):this.setState(5),t}drawOctopus(){let t=this.numDashedParents(),n="";for(let r=0;r<t;r++)n+="-",n+=r===t-1?".":"-";return n}outPostMerge(){let t=["/","|","\\"],n="",r=!1,o=-1;for(let s=0;s<=this.nCols;s++){let i;if(s===this.nCols){if(r)break;i=this.hash}else i=this.cols[s];if(i===this.hash){r=!0;let a=this.mergeLayout;for(let c=0;c<this.nParents;c++)n+=t[a],a===2?(this.edgesAdded>0||c<this.nParents-1)&&(n+=" "):a++;this.edgesAdded===0&&(n+=" ")}else r?(this.edgesAdded>0?n+="\\":n+="|",n+=" "):(n+="|",(this.mergeLayout!==0||s!==this.commitIdx-1)&&(o>=0?n+="_":n+=" "));i===this.parents[0]&&(o=s)}return this.isMappingCorrect()?this.setState(0):this.setState(5),n}outCollapsing(){let t=this.map;this.map=this.oldMap,this.oldMap=t,this.map.fill(-1,0,this.mapSize);let n=-1,r=-1;for(let i=0;i<this.mapSize;i++){let a=this.oldMap[i];if(!(a<0)){if(a*2===i)this.map[i]=a;else if(this.map[i-1]<0){if(this.map[i-1]=a,n===-1){n=i,r=a;for(let c=a*2+3;c<i-2;c+=2)this.map[c]=a}}else if(this.map[i-1]!==a){if(this.map[i-2]=a,n===-1){r=a,n=i-1;for(let c=a*2+3;c<i-2;c+=2)this.map[c]=a}}}}for(let i=0;i<this.mapSize;i++)this.oldMap[i]=this.map[i];this.mapSize>0&&this.map[this.mapSize-1]<0&&this.mapSize--;let o="",s=!1;for(let i=0;i<this.mapSize;i++){let a=this.map[i];a<0?o+=" ":a*2===i?o+="|":a===r&&i!==n-1?(i!==a*2+3&&(this.map[i]=-1),s=!0,o+="_"):(s&&i<n&&(this.map[i]=-1),o+="/")}return this.isMappingCorrect()&&this.setState(0),o}};function yl(e,t){return e.length>=t?e:e+" ".repeat(t-e.length)}se();function ps(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+=Ep(c.timestamp,c.timezone),s+=3;continue;case"i":o+=kp(c.timestamp,c.timezone),s+=3;continue;case"d":o+=_t(c.timestamp,c.timezone),s+=3;continue;case"D":o+=Rp(c.timestamp,c.timezone),s+=3;continue}}switch(i){case"H":o+=n,s+=2;continue;case"h":o+=Y(n),s+=2;continue;case"T":o+=r.tree,s+=2;continue;case"t":o+=Y(r.tree),s+=2;continue;case"P":o+=r.parents.join(" "),s+=2;continue;case"p":o+=r.parents.map(Y).join(" "),s+=2;continue;case"s":o+=ea(r.message),s+=2;continue;case"b":o+=hp(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+=`
411
- `,s+=2;continue;case"%":o+="%",s+=2;continue;default:o+=`%${i}`,s+=2;continue}}o+=e[s],s++}return o}var ea=fe;function hp(e){let t=e.indexOf(`
410
+ `,stderr:a,exitCode:0}}})}se();rr();var vo=class{hash=null;parents=[];nParents=0;state=0;prevState=0;commitIdx=0;prevCommitIdx=0;mergeLayout=0;edgesAdded=0;prevEdgesAdded=0;w=0;expRow=0;cols=[];nCols=0;newCols=[];nNewCols=0;map=[];oldMap=[];mapSize=0;get width(){return this.w}update(t,n){this.hash=t,this.parents=n,this.nParents=n.length,this.prevCommitIdx=this.commitIdx,this.updateColumns(),this.expRow=0,this.state!==0?this.state=1:this.needsPreCommit()?this.state=2:this.state=3}nextLine(){let t,n=!1;switch(this.state){case 0:t=this.outPadding();break;case 1:t=this.outSkip();break;case 2:t=this.outPreCommit();break;case 3:t=this.outCommit(),n=!0;break;case 4:t=this.outPostMerge();break;case 5:t=this.outCollapsing();break}return{prefix:bl(t,this.w),isCommitLine:n}}isFinished(){return this.state===0}paddingPrefix(){if(this.state!==3)return this.nextLine().prefix;let t="";for(let n=0;n<this.nCols;n++)t+="| ";return this.prevState=0,bl(t,this.w)}updateColumns(){let t=this.newCols,n=this.nNewCols;this.newCols=this.cols,this.nNewCols=0,this.cols=t,this.nCols=n;let r=this.nCols+this.nParents;this.map.length<2*r&&(this.map=new Array(2*r),this.oldMap=new Array(2*r)),this.mapSize=2*r,this.map.fill(-1,0,this.mapSize),this.w=0,this.prevEdgesAdded=this.edgesAdded,this.edgesAdded=0;let o=!1;for(let s=0;s<=this.nCols;s++){let i;if(s===this.nCols){if(o)break;i=this.hash}else i=this.cols[s];if(i===this.hash){o=!0,this.commitIdx=s,this.mergeLayout=-1;for(let a of this.parents)this.insertNewCol(a,s);this.nParents===0&&(this.w+=2)}else this.insertNewCol(i,-1)}for(;this.mapSize>1&&this.map[this.mapSize-1]<0;)this.mapSize--}findNewCol(t){for(let n=0;n<this.nNewCols;n++)if(this.newCols[n]===t)return n;return-1}insertNewCol(t,n){let r=this.findNewCol(t);r<0&&(r=this.nNewCols++,this.newCols[r]=t);let o;if(this.nParents>1&&n>-1&&this.mergeLayout===-1){let s=n-r,i=s>1?2*s-3:1;this.mergeLayout=s>0?0:1,this.edgesAdded=this.nParents+this.mergeLayout-2,o=this.w+(this.mergeLayout-1)*i,this.w+=2*this.mergeLayout}else this.edgesAdded>0&&this.w>=2&&r===this.map[this.w-2]?(o=this.w-2,this.edgesAdded=-1):(o=this.w,this.w+=2);this.map[o]=r}setState(t){this.prevState=this.state,this.state=t}numDashedParents(){return this.nParents+this.mergeLayout-3}numExpansionRows(){return this.numDashedParents()*2}needsPreCommit(){return this.nParents>=3&&this.commitIdx<this.nCols-1&&this.expRow<this.numExpansionRows()}isMappingCorrect(){for(let t=0;t<this.mapSize;t++){let n=this.map[t];if(!(n<0)&&n!==t>>1)return!1}return!0}outPadding(){let t="";for(let n=0;n<this.nNewCols;n++)t+="| ";return t}outSkip(){return this.needsPreCommit()?this.setState(2):this.setState(3),"..."}outPreCommit(){let t="",n=!1;for(let r=0;r<this.nCols;r++)this.cols[r]===this.hash?(n=!0,t+="|",t+=" ".repeat(this.expRow)):n&&this.expRow===0?this.prevState===4&&this.prevCommitIdx<r?t+="\\":t+="|":n?t+="\\":t+="|",t+=" ";return this.expRow++,this.needsPreCommit()||this.setState(3),t}outCommit(){let t="",n=!1;for(let r=0;r<=this.nCols;r++){let o;if(r===this.nCols){if(n)break;o=this.hash}else o=this.cols[r];o===this.hash?(n=!0,t+="*",this.nParents>2&&(t+=this.drawOctopus())):n&&this.edgesAdded>1?t+="\\":n&&this.edgesAdded===1?this.prevState===4&&this.prevEdgesAdded>0&&this.prevCommitIdx<r?t+="\\":t+="|":this.prevState===5&&this.oldMap[2*r+1]===r&&this.map[2*r]<r?t+="/":t+="|",t+=" "}return this.nParents>1?this.setState(4):this.isMappingCorrect()?this.setState(0):this.setState(5),t}drawOctopus(){let t=this.numDashedParents(),n="";for(let r=0;r<t;r++)n+="-",n+=r===t-1?".":"-";return n}outPostMerge(){let t=["/","|","\\"],n="",r=!1,o=-1;for(let s=0;s<=this.nCols;s++){let i;if(s===this.nCols){if(r)break;i=this.hash}else i=this.cols[s];if(i===this.hash){r=!0;let a=this.mergeLayout;for(let c=0;c<this.nParents;c++)n+=t[a],a===2?(this.edgesAdded>0||c<this.nParents-1)&&(n+=" "):a++;this.edgesAdded===0&&(n+=" ")}else r?(this.edgesAdded>0?n+="\\":n+="|",n+=" "):(n+="|",(this.mergeLayout!==0||s!==this.commitIdx-1)&&(o>=0?n+="_":n+=" "));i===this.parents[0]&&(o=s)}return this.isMappingCorrect()?this.setState(0):this.setState(5),n}outCollapsing(){let t=this.map;this.map=this.oldMap,this.oldMap=t,this.map.fill(-1,0,this.mapSize);let n=-1,r=-1;for(let i=0;i<this.mapSize;i++){let a=this.oldMap[i];if(!(a<0)){if(a*2===i)this.map[i]=a;else if(this.map[i-1]<0){if(this.map[i-1]=a,n===-1){n=i,r=a;for(let c=a*2+3;c<i-2;c+=2)this.map[c]=a}}else if(this.map[i-1]!==a){if(this.map[i-2]=a,n===-1){r=a,n=i-1;for(let c=a*2+3;c<i-2;c+=2)this.map[c]=a}}}}for(let i=0;i<this.mapSize;i++)this.oldMap[i]=this.map[i];this.mapSize>0&&this.map[this.mapSize-1]<0&&this.mapSize--;let o="",s=!1;for(let i=0;i<this.mapSize;i++){let a=this.map[i];a<0?o+=" ":a*2===i?o+="|":a===r&&i!==n-1?(i!==a*2+3&&(this.map[i]=-1),s=!0,o+="_"):(s&&i<n&&(this.map[i]=-1),o+="/")}return this.isMappingCorrect()&&this.setState(0),o}};function bl(e,t){return e.length>=t?e:e+" ".repeat(t-e.length)}se();function ps(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+=Rp(c.timestamp,c.timezone),s+=3;continue;case"i":o+=xp(c.timestamp,c.timezone),s+=3;continue;case"d":o+=_t(c.timestamp,c.timezone),s+=3;continue;case"D":o+=Cp(c.timestamp,c.timezone),s+=3;continue;case"r":o+=Pp(c.timestamp),s+=3;continue}}switch(i){case"H":o+=n,s+=2;continue;case"h":o+=Y(n),s+=2;continue;case"T":o+=r.tree,s+=2;continue;case"t":o+=Y(r.tree),s+=2;continue;case"P":o+=r.parents.join(" "),s+=2;continue;case"p":o+=r.parents.map(Y).join(" "),s+=2;continue;case"s":o+=ea(r.message),s+=2;continue;case"b":o+=pp(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+=`
411
+ `,s+=2;continue;case"%":o+="%",s+=2;continue;default:o+=`%${i}`,s+=2;continue}}o+=e[s],s++}return o}var ea=fe;function pp(e){let t=e.indexOf(`
412
412
 
413
- `);return t===-1?"":e.slice(t+2).replace(/\n$/,"")}function Ho(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 gs(e,t,n,r=!1){let{hash:o,commit:s}=t,i=t.decorations?t.decorations(o):"";switch(e){case"oneline":{let a=r?Y(o):o,c=ea(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(Y).join(" ")}`),a.push(`Author: ${s.author.name} <${s.author.email}>`),a.push(""),a.push(` ${ea(s.message)}`),a.join(`
413
+ `);return t===-1?"":e.slice(t+2).replace(/\n$/,"")}function Ho(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","raw"].includes(e)?{formatStr:null,preset:e}:{formatStr:e,preset:null}}function gs(e,t,n,r=!1){let{hash:o,commit:s}=t,i=t.decorations?t.decorations(o):"";switch(e){case"oneline":{let a=r?Y(o):o,c=ea(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(Y).join(" ")}`),a.push(`Author: ${s.author.name} <${s.author.email}>`),a.push(""),a.push(` ${ea(s.message)}`),a.join(`
414
414
  `)}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(Y).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(`
415
415
  `))a.push(` ${f}`);return a.join(`
416
416
  `)}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(Y).join(" ")}`),a.push(`Author: ${s.author.name} <${s.author.email}>`),a.push(`AuthorDate: ${_t(s.author.timestamp,s.author.timezone)}`),a.push(`Commit: ${s.committer.name} <${s.committer.email}>`),a.push(`CommitDate: ${_t(s.committer.timestamp,s.committer.timezone)}`),a.push("");let c=s.message.replace(/\n$/,"");for(let f of c.split(`
417
417
  `))a.push(` ${f}`);return a.join(`
418
- `)}default:return pp(t,n)}}function pp(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(Y).join(" ")}`),s.push(`Author: ${r.author.name} <${r.author.email}>`),s.push(`Date: ${_t(r.author.timestamp,r.author.timezone)}`),s.push("");let i=r.message.replace(/\n$/,"");for(let a of i.split(`
418
+ `)}case"raw":return gp(t,n);default:return wp(t,n)}}function gp(e,t){let{hash:n,commit:r}=e,o=[];t||o.push(""),o.push(`commit ${n}`),o.push(`tree ${r.tree}`);for(let i of r.parents)o.push(`parent ${i}`);o.push(`author ${r.author.name} <${r.author.email}> ${r.author.timestamp} ${r.author.timezone}`),o.push(`committer ${r.committer.name} <${r.committer.email}> ${r.committer.timestamp} ${r.committer.timezone}`),o.push("");let s=r.message.replace(/\n$/,"");for(let i of s.split(`
419
+ `))o.push(` ${i}`);return o.join(`
420
+ `)}function wp(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(Y).join(" ")}`),s.push(`Author: ${r.author.name} <${r.author.email}>`),s.push(`Date: ${_t(r.author.timestamp,r.author.timezone)}`),s.push("");let i=r.message.replace(/\n$/,"");for(let a of i.split(`
419
421
  `))s.push(` ${a}`);return s.join(`
420
- `)}var gp=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],wp=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function bp(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 ta(e,t){let n=bp(t);return new Date((e+n*60)*1e3)}function yp(e){return`${e.slice(0,3)}:${e.slice(3)}`}function Ep(e,t){let n=ta(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}${yp(t)}`}function kp(e,t){let n=ta(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 Rp(e,t){let n=ta(e,t),r=gp[n.getUTCDay()]?.slice(0,3),o=wp[n.getUTCMonth()],s=n.getUTCDate(),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0"),f=n.getUTCFullYear();return`${r}, ${s} ${o} ${f} ${i}:${a}:${c} ${t}`}ie();ue();hn();ve();function Rl(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:J.number().alias("n").describe("Limit the number of commits to output"),oneline:S().describe("Condense each commit to a single line"),all:S().describe("Walk all refs, not just HEAD"),author:J.string().describe("Filter by author (regex or substring)"),grep:J.string().describe("Filter by commit message (regex or substring)"),since:J.string().describe("Show commits after date"),after:J.string().describe("Synonym for --since"),until:J.string().describe("Show commits before date"),before:J.string().describe("Synonym for --until"),decorate:S().describe("Show ref names next to commit hashes"),reverse:S().describe("Output commits in reverse order"),format:J.string().describe("Pretty-print format string"),pretty:J.string().describe("Pretty-print format or preset name"),patch:S().alias("p").describe("Show diff in patch format"),stat:S().describe("Show diffstat summary"),nameStatus:S().describe("Show names and status of changed files"),nameOnly:S().describe("Show only names of changed files"),shortstat:S().describe("Show only the shortstat summary line"),numstat:S().describe("Machine-readable insertions/deletions per file"),graph:S().describe("Draw text-based graph of the commit history"),firstParent:S().describe("Follow only the first parent of merge commits")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s,a,c,f=n.revisions,l=f&&f.length===1?Io(f[0]):null;if(l){let U=async me=>{let xe=await Be(i,me);if(!xe)return Vt(me);try{return await _e(i,xe)}catch{return Vt(me)}},V=await U(l.left);if(typeof V=="object"&&"exitCode"in V)return V;let be=await U(l.right);if(typeof be=="object"&&"exitCode"in be)return be;let Le=V,it=be;if(l.type==="two-dot")a=[it],c=[Le];else{a=[Le,it];let me=await Nt(i,Le,it);c=me.length>0?me:void 0}if(n.all){let me=await ge(i);for(let Ut of me)try{let xn=await _e(i,Ut.hash);a.includes(xn)||a.push(xn)}catch{}let xe=await Z(i);xe&&!a.includes(xe)&&a.push(xe)}}else if(n.all){let U=await ge(i),V=new Set;for(let Le of U)try{V.add(await _e(i,Le.hash))}catch{}let be=await Z(i);be&&V.add(be),a=[...V]}else if(f&&f.length>0){let U=[];for(let V of f){let be=await Be(i,V);if(!be)return Vt(V);try{U.push(await _e(i,be))}catch{return Vt(V)}}a=U}else{let U=await Ze(i);if(M(U))return U;a=[U]}if(a.length===0)return I("your current branch does not have any commits yet");let d=o.passthrough.length>0?o.passthrough.map(U=>Ue(U,"")):null,u=n.author?El(n.author):null,m=n.grep?El(n.grep):null,h=n.since??n.after,p=n.until??n.before,g=h?Gi(h):null,w=p?Gi(p):null,y=n.format??n.pretty,x=null,b=null,k=!1;if(n.oneline)b="oneline",k=!0;else if(y!==void 0){let U=Ho(y);x=U.formatStr,b=U.preset}let E=n.patch?"patch":n.stat?"stat":n.nameStatus?"name-status":n.nameOnly?"name-only":n.shortstat?"shortstat":n.numstat?"numstat":null,R=n.graph;if(R&&n.reverse)return I("options '--graph' and '--reverse' cannot be used together");let C=n.decorate||x!=null&&(x.includes("%d")||x.includes("%D"))?await Pp(i):null,v=C?U=>kl(C,U):void 0,D=C?U=>{let V=kl(C,U);return V.startsWith("(")&&V.endsWith(")")?V.slice(1,-1):V}:void 0,O=n.maxCount,H=n.reverse,G=n.firstParent,A=d?Cp(i,a,d,c?await xp(i,c):void 0,G):Dt(i,a,{exclude:c,topoOrder:R,firstParent:G}),$=[];for await(let U of A){if(O!==void 0&&$.length>=O)break;let{commit:V}=U;if(!(w!==null&&V.committer.timestamp>w)&&!(g!==null&&V.committer.timestamp<=g)){if(u){let be=`${V.author.name} <${V.author.email}>`;if(!u(be))continue}m&&!m(V.message)||$.push(U)}}let N=H?$.reverse():$;if(R)return Op(N,i,x,b,k,E,v,D);if(x!==null){let U=[];for(let V of N){let be={hash:V.hash,commit:V.commit,decorations:v,decorationsRaw:D},Le=ps(x,be),it=await na(i,V.commit,E);it&&(Le+=`
422
+ `)}var bp=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],yp=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Ep(e){let t=e.startsWith("-")?-1:1,n=e.replace(/^[+-]/,""),r=parseInt(n.slice(0,2),10)||0,o=parseInt(n.slice(2,4),10)||0;return t*(r*60+o)}function ta(e,t){let n=Ep(t);return new Date((e+n*60)*1e3)}function kp(e){return`${e.slice(0,3)}:${e.slice(3)}`}function Rp(e,t){let n=ta(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}${kp(t)}`}function xp(e,t){let n=ta(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 Pp(e){let n=Math.floor(Date.now()/1e3)-e;if(n<0&&(n=0),n<90)return n===1?"1 second ago":`${n} seconds ago`;if(n=Math.round(n/60),n<90)return n===1?"1 minute ago":`${n} minutes ago`;if(n=Math.round(n/60),n<36)return n===1?"1 hour ago":`${n} hours ago`;if(n=Math.round(n/24),n<14)return n===1?"1 day ago":`${n} days ago`;if(n<70){let s=Math.round(n/7);return s===1?"1 week ago":`${s} weeks ago`}if(n<365){let s=Math.round(n/30);return s===1?"1 month ago":`${s} months ago`}let r=Math.floor(n/365),o=Math.round((n-r*365)/30);if(o>0){let s=r===1?"1 year":`${r} years`,i=o===1?"1 month":`${o} months`;return`${s}, ${i} ago`}return r===1?"1 year ago":`${r} years ago`}function Cp(e,t){let n=ta(e,t),r=bp[n.getUTCDay()]?.slice(0,3),o=yp[n.getUTCMonth()],s=n.getUTCDate(),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0"),f=n.getUTCFullYear();return`${r}, ${s} ${o} ${f} ${i}:${a}:${c} ${t}`}ie();ue();hn();ve();function kl(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:J.number().alias("n").describe("Limit the number of commits to output"),oneline:$().describe("Condense each commit to a single line"),all:$().describe("Walk all refs, not just HEAD"),author:J.string().describe("Filter by author (regex or substring)"),grep:J.string().describe("Filter by commit message (regex or substring)"),since:J.string().describe("Show commits after date"),after:J.string().describe("Synonym for --since"),until:J.string().describe("Show commits before date"),before:J.string().describe("Synonym for --until"),decorate:$().describe("Show ref names next to commit hashes"),reverse:$().describe("Output commits in reverse order"),format:J.string().describe("Pretty-print format string"),pretty:J.string().describe("Pretty-print format or preset name"),patch:$().alias("p").describe("Show diff in patch format"),stat:$().describe("Show diffstat summary"),nameStatus:$().describe("Show names and status of changed files"),nameOnly:$().describe("Show only names of changed files"),shortstat:$().describe("Show only the shortstat summary line"),numstat:$().describe("Machine-readable insertions/deletions per file"),graph:$().describe("Draw text-based graph of the commit history"),firstParent:$().describe("Follow only the first parent of merge commits")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s,a,c,f=n.revisions,l=f&&f.length===1?Io(f[0]):null;if(l){let U=async me=>{let xe=await Be(i,me);if(!xe)return Vt(me);try{return await _e(i,xe)}catch{return Vt(me)}},V=await U(l.left);if(typeof V=="object"&&"exitCode"in V)return V;let be=await U(l.right);if(typeof be=="object"&&"exitCode"in be)return be;let Le=V,it=be;if(l.type==="two-dot")a=[it],c=[Le];else{a=[Le,it];let me=await Nt(i,Le,it);c=me.length>0?me:void 0}if(n.all){let me=await ge(i);for(let Ut of me)try{let xn=await _e(i,Ut.hash);a.includes(xn)||a.push(xn)}catch{}let xe=await Z(i);xe&&!a.includes(xe)&&a.push(xe)}}else if(n.all){let U=await ge(i),V=new Set;for(let Le of U)try{V.add(await _e(i,Le.hash))}catch{}let be=await Z(i);be&&V.add(be),a=[...V]}else if(f&&f.length>0){let U=[];for(let V of f){let be=await Be(i,V);if(!be)return Vt(V);try{U.push(await _e(i,be))}catch{return Vt(V)}}a=U}else{let U=await Ze(i);if(M(U))return U;a=[U]}if(a.length===0)return I("your current branch does not have any commits yet");let d=o.passthrough.length>0?o.passthrough.map(U=>Ue(U,"")):null,u=n.author?yl(n.author):null,m=n.grep?yl(n.grep):null,h=n.since??n.after,p=n.until??n.before,g=h?Gi(h):null,w=p?Gi(p):null,y=n.format??n.pretty,x=null,b=null,k=!1;if(n.oneline)b="oneline",k=!0;else if(y!==void 0){let U=Ho(y);x=U.formatStr,b=U.preset}let E=n.patch?"patch":n.stat?"stat":n.nameStatus?"name-status":n.nameOnly?"name-only":n.shortstat?"shortstat":n.numstat?"numstat":null,R=n.graph;if(R&&n.reverse)return I("options '--graph' and '--reverse' cannot be used together");let P=n.decorate||x!=null&&(x.includes("%d")||x.includes("%D"))?await $p(i):null,v=P?U=>El(P,U):void 0,D=P?U=>{let V=El(P,U);return V.startsWith("(")&&V.endsWith(")")?V.slice(1,-1):V}:void 0,O=n.maxCount,H=n.reverse,G=n.firstParent,A=d?Ip(i,a,d,c?await Op(i,c):void 0,G):Dt(i,a,{exclude:c,topoOrder:R,firstParent:G}),S=[];for await(let U of A){if(O!==void 0&&S.length>=O)break;let{commit:V}=U;if(!(w!==null&&V.committer.timestamp>w)&&!(g!==null&&V.committer.timestamp<=g)){if(u){let be=`${V.author.name} <${V.author.email}>`;if(!u(be))continue}m&&!m(V.message)||S.push(U)}}let N=H?S.reverse():S;if(R)return Sp(N,i,x,b,k,E,v,D);if(x!==null){let U=[];for(let V of N){let be={hash:V.hash,commit:V.commit,decorations:v,decorationsRaw:D},Le=ps(x,be),it=await na(i,V.commit,E);it&&(Le+=`
421
423
 
422
424
  ${it.replace(/\n$/,"")}`),U.push(Le)}return{stdout:U.length>0?`${U.join(`
423
425
  `)}
@@ -426,17 +428,17 @@ ${it.replace(/\n$/,"")}`),U.push(Le)}return{stdout:U.length>0?`${U.join(`
426
428
 
427
429
  `}${it.replace(/\n$/,"")}`),_.push(Le)}return{stdout:_.length>0?`${_.join(`
428
430
  `)}
429
- `:"",stderr:"",exitCode:0}}})}async function xp(e,t){let n=new Set;for await(let r of Dt(e,t))n.add(r.hash);return n}function El(e){try{let t=new RegExp(e);return n=>t.test(n)}catch{return t=>t.includes(e)}}async function*Cp(e,t,n,r,o){let s=new Set(r),i=new Mn,a=async c=>{if(!s.has(c))try{let f=await j(e,c);i.push({hash:c,commit:f})}catch{}};for(let c of t)await a(c);for(;i.size>0;){let c=i.pop();if(s.has(c.hash))continue;s.add(c.hash);let{commit:f}=c,l=o?f.parents.slice(0,1):f.parents;if(l.length===0){(await We(e,null,f.tree)).some(m=>ye(n,m.path))&&(yield c);continue}if(l.length===1){let u=l[0];if(u){try{let m=await j(e,u);(await We(e,m.tree,f.tree)).some(p=>ye(n,p.path))&&(yield c)}catch{yield c}await a(u)}continue}let d=[];for(let u of l)try{let m=await j(e,u);(await We(e,m.tree,f.tree)).some(p=>ye(n,p.path))||d.push(u)}catch{}if(d.length>0&&d[0])await a(d[0]);else{yield c;for(let u of l)await a(u)}}}async function Pp(e){let t=await Q(e),n=t?.type==="symbolic"?Re(t.target):null,r=await Z(e),o=new Map,s=(f,l,d)=>{let u=o.get(f);u||(u=[],o.set(f,u)),u.push({label:l,fullRef:d})},i=await ge(e,"refs/heads");for(let f of i)s(f.hash,Re(f.name),f.name);let a=await ge(e,"refs/remotes");for(let f of a)s(f.hash,f.name.replace("refs/remotes/",""),f.name);let c=await ge(e,"refs/tags");for(let f of c){let l=f.hash;try{l=await _e(e,f.hash)}catch{}s(l,`tag: ${f.name.replace("refs/tags/","")}`,f.name)}return{headTarget:n,headHash:r,byHash:o}}function kl(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 Op(e,t,n,r,o,s,i,a){let c=new vo,f=r??"medium",l=f==="oneline",d=[];for(let u=0;u<e.length;u++){let m=e[u],h={hash:m.hash,commit:m.commit,decorations:i,decorationsRaw:a},p;n!==null?p=ps(n,h):p=gs(f,h,!0,o),c.update(m.hash,m.commit.parents),u>0&&!l&&n===null&&d.push(c.paddingPrefix());let g=p.split(`
431
+ `:"",stderr:"",exitCode:0}}})}async function Op(e,t){let n=new Set;for await(let r of Dt(e,t))n.add(r.hash);return n}function yl(e){try{let t=new RegExp(e);return n=>t.test(n)}catch{return t=>t.includes(e)}}async function*Ip(e,t,n,r,o){let s=new Set(r),i=new Mn,a=async c=>{if(!s.has(c))try{let f=await j(e,c);i.push({hash:c,commit:f})}catch{}};for(let c of t)await a(c);for(;i.size>0;){let c=i.pop();if(s.has(c.hash))continue;s.add(c.hash);let{commit:f}=c,l=o?f.parents.slice(0,1):f.parents;if(l.length===0){(await We(e,null,f.tree)).some(m=>ye(n,m.path))&&(yield c);continue}if(l.length===1){let u=l[0];if(u){try{let m=await j(e,u);(await We(e,m.tree,f.tree)).some(p=>ye(n,p.path))&&(yield c)}catch{yield c}await a(u)}continue}let d=[];for(let u of l)try{let m=await j(e,u);(await We(e,m.tree,f.tree)).some(p=>ye(n,p.path))||d.push(u)}catch{}if(d.length>0&&d[0])await a(d[0]);else{yield c;for(let u of l)await a(u)}}}async function $p(e){let t=await Q(e),n=t?.type==="symbolic"?Re(t.target):null,r=await Z(e),o=new Map,s=(f,l,d)=>{let u=o.get(f);u||(u=[],o.set(f,u)),u.push({label:l,fullRef:d})},i=await ge(e,"refs/heads");for(let f of i)s(f.hash,Re(f.name),f.name);let a=await ge(e,"refs/remotes");for(let f of a)s(f.hash,f.name.replace("refs/remotes/",""),f.name);let c=await ge(e,"refs/tags");for(let f of c){let l=f.hash;try{l=await _e(e,f.hash)}catch{}s(l,`tag: ${f.name.replace("refs/tags/","")}`,f.name)}return{headTarget:n,headHash:r,byHash:o}}function El(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 Sp(e,t,n,r,o,s,i,a){let c=new vo,f=r??"medium",l=f==="oneline",d=[];for(let u=0;u<e.length;u++){let m=e[u],h={hash:m.hash,commit:m.commit,decorations:i,decorationsRaw:a},p;n!==null?p=ps(n,h):p=gs(f,h,!0,o),c.update(m.hash,m.commit.parents),u>0&&!l&&n===null&&d.push(c.paddingPrefix());let g=p.split(`
430
432
  `),w=0;for(;;){let{prefix:b,isCommitLine:k}=c.nextLine();if(k){d.push(b+(g[w++]??""));break}d.push(b)}for(;w<g.length;){let{prefix:b}=c.nextLine();d.push(b+g[w++])}for(;!c.isFinished();){let{prefix:b}=c.nextLine();d.push(b)}let y=80-c.width,x=await na(t,m.commit,s,y);if(x){let b=x.replace(/\n$/,"").split(`
431
433
  `);if(l||n!==null)for(let k of b)d.push(c.paddingPrefix()+k);else{d.push(c.paddingPrefix());for(let k of b)d.push(c.paddingPrefix()+k)}}}return{stdout:d.length>0?`${d.join(`
432
434
  `)}
433
- `:"",stderr:"",exitCode:0}}async function na(e,t,n,r){if(!n||t.parents.length>=2)return"";let o=t.parents.length===1?(await j(e,t.parents[0])).tree:null,s=await We(e,o,t.tree),{remaining:i,renames:a}=await nt(e,s);switch(n){case"name-only":return Ip(i,a);case"name-status":return Sp(i,a);case"stat":return $p(e,i,a,r);case"shortstat":return Tp(e,i,a);case"numstat":return vp(e,i,a);case"patch":return Hp(e,i,a)}}function Ip(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}
434
- `).join("")}function Sp(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}
435
- `).join("")}async function $p(e,t,n,r){let{fileStats:o}=await Un(e,t,n);return o.sort((s,i)=>s.sortKey<i.sortKey?-1:s.sortKey>i.sortKey?1:0),cr(o,r)}async function Tp(e,t,n){let{fileStats:r}=await Un(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=Fn(r.length,o,s);return i?`${i}
436
- `:""}async function vp(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 oe(e,s.oldHash):"",a=s.newHash?await oe(e,s.newHash):"";if(Se(i)||Se(a))o+=`- - ${s.display}
437
- `;else{let c=wt(i),f=wt(a),l=st(c,f),d=0,u=0;for(let m of l)m.type==="insert"?d++:m.type==="delete"&&u++;o+=`${d} ${u} ${s.display}
438
- `}}return o}async function Hp(e,t,n){let r=[];for(let s of t)r.push({type:"diff",entry:s});for(let s of n)r.push({type:"rename",entry:s});r.sort((s,i)=>{let a=s.type==="diff"?s.entry.path:s.entry.newPath,c=i.type==="diff"?i.entry.path:i.entry.newPath;return a<c?-1:a>c?1:0});let o="";for(let s of r)if(s.type==="rename"){let i=s.entry,a=i.oldHash?await oe(e,i.oldHash):"",c=i.newHash?await oe(e,i.newHash):"";o+=Ct({path:i.oldPath,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,renameTo:i.newPath,similarity:i.similarity})}else{let i=s.entry,a=i.oldHash?await oe(e,i.oldHash):"",c=i.newHash?await oe(e,i.newHash):"";o+=Ct({path:i.path,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,isNew:i.status==="added",isDeleted:i.status==="deleted"})}return o}se();Pe();le();Zn();tt();function Cl(e,t){e.command("ls-files",{description:"Show information about files in the index and the working tree",options:{cached:S().alias("c").describe("Show cached files (default)"),modified:S().alias("m").describe("Show modified files"),deleted:S().alias("d").describe("Show deleted files"),others:S().alias("o").describe("Show other (untracked) files"),unmerged:S().alias("u").describe("Show unmerged files"),stage:S().alias("s").describe("Show staged contents' mode, hash, and stage number"),"exclude-standard":S().describe("Add standard git exclusions (.gitignore, info/exclude, core.excludesFile)"),"nul-terminate":S().alias("z").describe("Use \\0 as line terminator instead of \\n"),"show-tags":S().alias("t").describe("Show status tags")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=Xe(i);if(a)return a;let c=i.workTree,f=n.cached,l=n.modified,d=n.deleted,u=n.others,m=n.unmerged,h=n.stage,p=n["exclude-standard"],g=n["nul-terminate"],w=n["show-tags"];f||l||d||u||m||(f=!0);let x=await K(i),b=g?"\0":`
439
- `,k=o.passthrough.length>0?o.passthrough.map(P=>{let C=r.cwd!==c?Ap(c,r.cwd):"";return Ue(P,C)}):null,E=[];if(f)for(let P of x.entries){if(k&&!ye(k,P.path))continue;let C=w?P.stage>0?"M":"H":null;E.push(xl(P,h,C))}if(m&&!f)for(let P of x.entries)P.stage!==0&&(k&&!ye(k,P.path)||E.push(xl(P,!0,w?"M":null)));if(l||d){let P=await Dp(i,c,x);for(let{path:C,status:v}of P){if(v==="modified"&&!l||v==="deleted"&&!d||k&&!ye(k,C))continue;let D=w?v==="deleted"?"R":"C":null;E.push(D?`${D} ${C}`:C)}}if(u){let P=await Mp(i,c,x,p);for(let C of P)k&&!ye(k,C)||E.push(w?`? ${C}`:C)}return{stdout:E.length>0?E.join(b)+b:"",stderr:"",exitCode:0}}})}function xl(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 Ap(e,t){return t===e?"":t.startsWith(`${e}/`)?t.slice(e.length+1):""}async function Dp(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 lt(e.fs,s);if(!a.isFile&&!a.isSymbolicLink)continue;await vn(e.fs,s)!==o.hash&&r.push({path:o.path,status:"modified"})}return r}async function Mp(e,t,n,r){let o=new Set(n.entries.map(i=>i.path));return(await et(e,t,"",{skipIgnore:!r})).filter(i=>!o.has(i))}se();rr();Ne();Pe();ie();Fe();ue();hn();ve();function Pl(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:S().describe("Abort the current in-progress merge"),continue:S().describe("Continue the merge after conflict resolution"),noFf:S().describe("Create a merge commit even when fast-forward is possible"),ffOnly:S().describe("Refuse to merge unless fast-forward is possible"),squash:S().describe("Apply merge result to worktree/index without creating a merge commit"),edit:S().describe("Edit the merge message (no-op, accepted for compatibility)"),message:J.string().alias("m").describe("Merge commit message")},transformArgs:n=>n.filter(r=>r!=="--ff"),handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort)return Np(s,r.env);if(n.continue)return _p(s,r.env,t);let i=n.branch;if(!i)return I("you must specify a branch to merge");let a=await Ze(s);if(M(a))return a;let c=await K(s),f=wn(c,"Merging");if(f)return f;if(await F(s,"MERGE_HEAD"))return I(`You have not concluded your merge (MERGE_HEAD exists).
435
+ `:"",stderr:"",exitCode:0}}async function na(e,t,n,r){if(!n||t.parents.length>=2)return"";let o=t.parents.length===1?(await j(e,t.parents[0])).tree:null,s=await We(e,o,t.tree),{remaining:i,renames:a}=await nt(e,s);switch(n){case"name-only":return Tp(i,a);case"name-status":return vp(i,a);case"stat":return Hp(e,i,a,r);case"shortstat":return Ap(e,i,a);case"numstat":return Dp(e,i,a);case"patch":return Mp(e,i,a)}}function Tp(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}
436
+ `).join("")}function vp(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}
437
+ `).join("")}async function Hp(e,t,n,r){let{fileStats:o}=await Un(e,t,n);return o.sort((s,i)=>s.sortKey<i.sortKey?-1:s.sortKey>i.sortKey?1:0),cr(o,r)}async function Ap(e,t,n){let{fileStats:r}=await Un(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=Fn(r.length,o,s);return i?`${i}
438
+ `:""}async function Dp(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 oe(e,s.oldHash):"",a=s.newHash?await oe(e,s.newHash):"";if($e(i)||$e(a))o+=`- - ${s.display}
439
+ `;else{let c=bt(i),f=bt(a),l=st(c,f),d=0,u=0;for(let m of l)m.type==="insert"?d++:m.type==="delete"&&u++;o+=`${d} ${u} ${s.display}
440
+ `}}return o}async function Mp(e,t,n){let r=[];for(let s of t)r.push({type:"diff",entry:s});for(let s of n)r.push({type:"rename",entry:s});r.sort((s,i)=>{let a=s.type==="diff"?s.entry.path:s.entry.newPath,c=i.type==="diff"?i.entry.path:i.entry.newPath;return a<c?-1:a>c?1:0});let o="";for(let s of r)if(s.type==="rename"){let i=s.entry,a=i.oldHash?await oe(e,i.oldHash):"",c=i.newHash?await oe(e,i.newHash):"";o+=Pt({path:i.oldPath,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,renameTo:i.newPath,similarity:i.similarity})}else{let i=s.entry,a=i.oldHash?await oe(e,i.oldHash):"",c=i.newHash?await oe(e,i.newHash):"";o+=Pt({path:i.path,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:i.oldHash,newHash:i.newHash,isNew:i.status==="added",isDeleted:i.status==="deleted"})}return o}se();Ce();le();Zn();tt();function xl(e,t){e.command("ls-files",{description:"Show information about files in the index and the working tree",options:{cached:$().alias("c").describe("Show cached files (default)"),modified:$().alias("m").describe("Show modified files"),deleted:$().alias("d").describe("Show deleted files"),others:$().alias("o").describe("Show other (untracked) files"),unmerged:$().alias("u").describe("Show unmerged files"),stage:$().alias("s").describe("Show staged contents' mode, hash, and stage number"),"exclude-standard":$().describe("Add standard git exclusions (.gitignore, info/exclude, core.excludesFile)"),"nul-terminate":$().alias("z").describe("Use \\0 as line terminator instead of \\n"),"show-tags":$().alias("t").describe("Show status tags")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=Xe(i);if(a)return a;let c=i.workTree,f=n.cached,l=n.modified,d=n.deleted,u=n.others,m=n.unmerged,h=n.stage,p=n["exclude-standard"],g=n["nul-terminate"],w=n["show-tags"];f||l||d||u||m||(f=!0);let x=await K(i),b=g?"\0":`
441
+ `,k=o.passthrough.length>0?o.passthrough.map(C=>{let P=r.cwd!==c?jp(c,r.cwd):"";return Ue(C,P)}):null,E=[];if(f)for(let C of x.entries){if(k&&!ye(k,C.path))continue;let P=w?C.stage>0?"M":"H":null;E.push(Rl(C,h,P))}if(m&&!f)for(let C of x.entries)C.stage!==0&&(k&&!ye(k,C.path)||E.push(Rl(C,!0,w?"M":null)));if(l||d){let C=await Gp(i,c,x);for(let{path:P,status:v}of C){if(v==="modified"&&!l||v==="deleted"&&!d||k&&!ye(k,P))continue;let D=w?v==="deleted"?"R":"C":null;E.push(D?`${D} ${P}`:P)}}if(u){let C=await Lp(i,c,x,p);for(let P of C)k&&!ye(k,P)||E.push(w?`? ${P}`:P)}return{stdout:E.length>0?E.join(b)+b:"",stderr:"",exitCode:0}}})}function Rl(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 jp(e,t){return t===e?"":t.startsWith(`${e}/`)?t.slice(e.length+1):""}async function Gp(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 lt(e.fs,s);if(!a.isFile&&!a.isSymbolicLink)continue;await vn(e.fs,s)!==o.hash&&r.push({path:o.path,status:"modified"})}return r}async function Lp(e,t,n,r){let o=new Set(n.entries.map(i=>i.path));return(await et(e,t,"",{skipIgnore:!r})).filter(i=>!o.has(i))}se();rr();Ne();Ce();ie();Fe();ue();hn();ve();function Pl(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:$().describe("Abort the current in-progress merge"),continue:$().describe("Continue the merge after conflict resolution"),noFf:$().describe("Create a merge commit even when fast-forward is possible"),ffOnly:$().describe("Refuse to merge unless fast-forward is possible"),squash:$().describe("Apply merge result to worktree/index without creating a merge commit"),edit:$().describe("Edit the merge message (no-op, accepted for compatibility)"),message:J.string().alias("m").describe("Merge commit message")},transformArgs:n=>n.filter(r=>r!=="--ff"),handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort)return Bp(s,r.env);if(n.continue)return Up(s,r.env,t);let i=n.branch;if(!i)return I("you must specify a branch to merge");let a=await Ze(s);if(M(a))return a;let c=await K(s),f=wn(c,"Merging");if(f)return f;if(await F(s,"MERGE_HEAD"))return I(`You have not concluded your merge (MERGE_HEAD exists).
440
442
  Please, commit your changes before you merge.`);if(await F(s,"CHERRY_PICK_HEAD"))return I(`You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
441
443
  Please, commit your changes before you merge.`);let u=await Be(s,i);if(!u)return L(`merge: ${i} - not something we can merge
442
444
  `);let m=await _e(s,u),h=await Nt(s,a,m),p=h[0]??null;if(h.length===0)return I("refusing to merge unrelated histories");if(p===m)return await pe(s,"MERGE_MSG"),{stdout:`Already up to date.${n.squash?" (nothing to squash)":""}
@@ -452,42 +454,42 @@ hint: Disable this message with "git config set advice.diverging false"
452
454
  fatal: Not possible to fast-forward, aborting.
453
455
  `,128);if(await F(s,"REVERT_HEAD")&&await jt(s),y&&!n.squash){let k=await Q(s),E=await wo(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 pe(s,"MERGE_MSG");let R=k?.type==="symbolic"?k.target:"HEAD";await re(s,r.env,R,a,m,`merge ${i}: Fast-forward${n.message?" (no commit created; -m option ignored)":""}`,k?.type==="symbolic"),await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:m,strategy:"fast-forward",commitHash:null})}return E}let x=n.message,b=x?x.endsWith(`
454
456
  `)?x:`${x}
455
- `:void 0;return n.squash?Lp(s,a,m,i,r.env,t,b):jp(s,a,m,i,r.env,g,t,b)}})}async function jp(e,t,n,r,o,s=!1,i,a){let c=await j(e,t),f=await Q(e),l=f?.type==="symbolic"?Re(f.target):"HEAD",d=await ke(e,"merge.conflictstyle")??"merge",u={a:"HEAD",b:r,conflictStyle:d},m=await fs(e,t,n,u),h=await kn(e,m,c.tree,{labels:u,errorExitCode:2,operationName:"merge"});if(!h.ok)return await pe(e,"MERGE_MSG"),h.failureKind==="staged"&&f?.type==="symbolic"&&await re(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`),h;if(m.conflicts.length>0){await X(e,"MERGE_HEAD",n),await X(e,"ORIG_HEAD",t);let v=a??await fr(e,r,l),D={repo:e,message:v,treeHash:h.mergedTreeHash,headHash:t,theirsHash:n},O=await i?.hooks?.mergeMsg?.(D);if(ee(O))return{stdout:"",stderr:O.message??"",exitCode:1};v=D.message;let H=Bt({version:2,entries:m.entries}).sort();return v+=`
457
+ `:void 0;return n.squash?Fp(s,a,m,i,r.env,t,b):_p(s,a,m,i,r.env,g,t,b)}})}async function _p(e,t,n,r,o,s=!1,i,a){let c=await j(e,t),f=await Q(e),l=f?.type==="symbolic"?Re(f.target):"HEAD",d=await ke(e,"merge.conflictstyle")??"merge",u={a:"HEAD",b:r,conflictStyle:d},m=await fs(e,t,n,u),h=await kn(e,m,c.tree,{labels:u,errorExitCode:2,operationName:"merge"});if(!h.ok)return await pe(e,"MERGE_MSG"),h.failureKind==="staged"&&f?.type==="symbolic"&&await re(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`),h;if(m.conflicts.length>0){await X(e,"MERGE_HEAD",n),await X(e,"ORIG_HEAD",t);let v=a??await fr(e,r,l),D={repo:e,message:v,treeHash:h.mergedTreeHash,headHash:t,theirsHash:n},O=await i?.hooks?.mergeMsg?.(D);if(ee(O))return{stdout:"",stderr:O.message??"",exitCode:1};v=D.message;let H=Bt({version:2,entries:m.entries}).sort();return v+=`
456
458
  # Conflicts:
457
459
  ${H.map(A=>`# ${A}`).join(`
458
460
  `)}
459
461
  `,await Te(e,"MERGE_MSG",v),await Te(e,"MERGE_MODE",s?"no-ff":""),{stdout:`${[...m.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
460
462
  `)}
461
- `,stderr:"",exitCode:1}}await pe(e,"MERGE_MSG");let p=h.mergedTreeHash,g=await on(e,o);if(M(g))return g;let w=await Qe(e,o);if(M(w))return w;let y=a??await fr(e,r,l),x={repo:e,message:y,treeHash:p,headHash:t,theirsHash:n},b=await i?.hooks?.mergeMsg?.(x);if(ee(b))return{stdout:"",stderr:b.message??"",exitCode:1};y=x.message;let k=await i?.hooks?.preMergeCommit?.({repo:e,mergeMessage:y,treeHash:p,headHash:t,theirsHash:n});if(ee(k))return{stdout:"",stderr:k.message??"",exitCode:1};let E=await mt(e,p,[t,n],g,w,y),R=f?.type==="symbolic"?f.target:"HEAD";await re(e,o,R,t,E,`merge ${r}: Merge made by the 'ort' strategy.`,f?.type==="symbolic"),await i?.hooks?.postMerge?.({repo:e,headHash:t,theirsHash:n,strategy:"three-way",commitHash:E});let P=await Bn(e,c.tree,p);return{stdout:`${m.messages.length>0?`${m.messages.join(`
463
+ `,stderr:"",exitCode:1}}await pe(e,"MERGE_MSG");let p=h.mergedTreeHash,g=await on(e,o);if(M(g))return g;let w=await Qe(e,o);if(M(w))return w;let y=a??await fr(e,r,l),x={repo:e,message:y,treeHash:p,headHash:t,theirsHash:n},b=await i?.hooks?.mergeMsg?.(x);if(ee(b))return{stdout:"",stderr:b.message??"",exitCode:1};y=x.message;let k=await i?.hooks?.preMergeCommit?.({repo:e,mergeMessage:y,treeHash:p,headHash:t,theirsHash:n});if(ee(k))return{stdout:"",stderr:k.message??"",exitCode:1};let E=await ht(e,p,[t,n],g,w,y),R=f?.type==="symbolic"?f.target:"HEAD";await re(e,o,R,t,E,`merge ${r}: Merge made by the 'ort' strategy.`,f?.type==="symbolic"),await i?.hooks?.postMerge?.({repo:e,headHash:t,theirsHash:n,strategy:"three-way",commitHash:E});let C=await Bn(e,c.tree,p);return{stdout:`${m.messages.length>0?`${m.messages.join(`
462
464
  `)}
463
465
  `:""}Merge made by the 'ort' strategy.
464
- ${P}`,stderr:"",exitCode:0}}async function Gp(e,t,n){let r=[];for await(let o of Dt(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: ${_t(s.timestamp,s.timezone)}`),r.push("");for(let i of o.commit.message.replace(/\n+$/,"").split(`
466
+ ${C}`,stderr:"",exitCode:0}}async function Np(e,t,n){let r=[];for await(let o of Dt(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: ${_t(s.timestamp,s.timezone)}`),r.push("");for(let i of o.commit.message.replace(/\n+$/,"").split(`
465
467
  `))r.push(` ${i}`);r.push("")}return r.join(`
466
- `)}async function Lp(e,t,n,r,o,s,i){let a=await j(e,t),c=await Q(e),f=await ke(e,"merge.conflictstyle")??"merge",l={a:"HEAD",b:r,conflictStyle:f},d=await Nt(e,t,n),u=d.length>0&&d[0]===t,m=u?`Updating ${Y(t)}..${Y(n)}
468
+ `)}async function Fp(e,t,n,r,o,s,i){let a=await j(e,t),c=await Q(e),f=await ke(e,"merge.conflictstyle")??"merge",l={a:"HEAD",b:r,conflictStyle:f},d=await Nt(e,t,n),u=d.length>0&&d[0]===t,m=u?`Updating ${Y(t)}..${Y(n)}
467
469
  `:"",h=await fs(e,t,n,l),p=await kn(e,h,a.tree,{labels:l,errorExitCode:u?1:2,operationName:"merge",skipStagedChangeCheck:u});if(!p.ok){await pe(e,"MERGE_MSG"),!u&&p.failureKind==="staged"&&c?.type==="symbolic"&&await re(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`);let k=p;return m&&(k.stdout=m+k.stdout),k}let g;if(i?g=`Squashed commit of the following:
468
470
 
469
471
  ${i}`:g=`Squashed commit of the following:
470
472
 
471
- ${await Gp(e,t,n)}`,await Te(e,"SQUASH_MSG",g),h.conflicts.length>0){let E=`
473
+ ${await Np(e,t,n)}`,await Te(e,"SQUASH_MSG",g),h.conflicts.length>0){let E=`
472
474
  # Conflicts:
473
- ${Bt({version:2,entries:h.entries}).sort().map(C=>`# ${C}`).join(`
475
+ ${Bt({version:2,entries:h.entries}).sort().map(P=>`# ${P}`).join(`
474
476
  `)}
475
- `,R=await Ce(e,"MERGE_MSG");return await Te(e,"MERGE_MSG",(R??"")+E),{stdout:`${[...h.messages,"Squash commit -- not updating HEAD","Automatic merge failed; fix conflicts and then commit the result."].join(`
477
+ `,R=await Pe(e,"MERGE_MSG");return await Te(e,"MERGE_MSG",(R??"")+E),{stdout:`${[...h.messages,"Squash commit -- not updating HEAD","Automatic merge failed; fix conflicts and then commit the result."].join(`
476
478
  `)}
477
479
  `,stderr:"",exitCode:1}}let w=p.mergedTreeHash,y=await Bn(e,a.tree,w),x=h.messages.length>0?`${h.messages.join(`
478
480
  `)}
479
481
  `:"";return{stdout:`${u?`${m}Fast-forward
480
482
  `:""}${x}Squash commit -- not updating HEAD
481
483
  ${u?y:""}`,stderr:u?"":`Automatic merge went well; stopped before committing as requested
482
- `,exitCode:0}}async function _p(e,t,n){let r=await F(e,"MERGE_HEAD");if(!r)return I("There is no merge in progress (MERGE_HEAD missing).");let o=await K(e),s=wn(o,"Committing");if(s)return s;let i=await Ze(e);if(M(i))return i;let a=await j(e,i),c=await Ce(e,"MERGE_MSG");if(c)c=an(c);else{let P=await Q(e),C=P?.type==="symbolic"?Re(P.target):"HEAD";c=await fr(e,"unknown",C)}let f=je(o),l=await Ge(e,f),d=await on(e,t);if(M(d))return d;let u=await Qe(e,t);if(M(u))return u;let m=At(c),h={repo:e,message:m,treeHash:l,headHash:i,theirsHash:r},p=await n?.hooks?.mergeMsg?.(h);if(ee(p))return{stdout:"",stderr:p.message??"",exitCode:1};m=h.message;let g=await n?.hooks?.preMergeCommit?.({repo:e,mergeMessage:m,treeHash:l,headHash:i,theirsHash:r});if(ee(g))return{stdout:"",stderr:g.message??"",exitCode:1};let w=await mt(e,l,[i,r],d,u,m);await ts(e);let y=await Q(e),x=fe(m),b=y?.type==="symbolic"?y.target:"HEAD";await re(e,t,b,i,w,`commit (merge): ${x}`,y?.type==="symbolic"),await n?.hooks?.postMerge?.({repo:e,headHash:i,theirsHash:r,strategy:"three-way",commitHash:w});let k=await Bn(e,a.tree,l),E=y?.type==="symbolic"?Re(y.target):"detached HEAD";return{stdout:`${Ht(E,w,c)}
483
- ${k}`,stderr:"",exitCode:0}}async function Np(e,t){return Dn(e,t,{operationRef:"MERGE_HEAD",noOpError:I("There is no merge to abort (MERGE_HEAD missing)."),operationName:"merge",clearState:ts})}se();Pe();le();tt();function Ol(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:S().alias("f").describe("Force renaming even if target exists"),"dry-run":S().alias("n").describe("Do nothing; only show what would happen"),skip:S().alias("k").describe("Skip move/rename actions that would lead to errors")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Xe(s);if(i)return i;let a=s.workTree,c=n.sources;if(c.length<2)return L(`usage: git mv [<options>] <source>... <destination>
484
- `);let f=c[c.length-1],l=c.slice(0,-1),d=It(r.cwd,f),u=ft(a,d);if(u.startsWith(".."))return I(`'${f}' is outside repository at '${a}'`);let m=await K(s),h=await r.fs.exists(d),p=h&&(await r.fs.stat(d)).isDirectory;if(l.length>1&&!p)return I(h?`destination '${f}' is not a directory`:`destination directory '${f}' does not exist`);let g=[];for(let w of l){let y=It(r.cwd,w),x=ft(a,y);if(x.startsWith("..")){if(n.skip)continue;return I(`'${w}' is outside repository at '${a}'`)}if(!await r.fs.exists(y)){if(n.skip)continue;return I(`bad source, source=${x}, destination=${u}`)}let E=(await r.fs.stat(y)).isDirectory;if(!(E?m.entries.some(O=>O.path===x||O.path.startsWith(`${x}/`)):m.entries.some(O=>O.path===x&&O.stage===0))){let O=!E&&m.entries.some(H=>H.path===x&&H.stage>0);if(n.skip)continue;return I(O?`conflicted, source=${x}, destination=${u}`:`not under version control, source=${x}, destination=${u}`)}let P,C;if(p){let O=Mr(x);P=u===""||u==="."?O:`${u}/${O}`,C=T(d,O)}else P=u,C=d;if(await r.fs.exists(C)&&!n.force)if((await r.fs.stat(C)).isDirectory){let H=Mr(x);P=`${P}/${H}`,C=T(C,H)}else{if(n.skip)continue;return I(`destination exists, source=${x}, destination=${P}`)}if(x===P){if(n.skip)continue;return I(`can not move directory into itself, source=${x}, destination=${P}`)}let D=Zt(C);if(!await r.fs.exists(D)){if(n.skip)continue;return I(`renaming '${x}' failed: No such file or directory`)}if(E){let O=`${x}/`,H=m.entries.filter(G=>G.path.startsWith(O)&&G.stage===0);for(let G of H){let A=G.path.slice(x.length),$=P+A,N=C+A;g.push({srcRel:G.path,dstRel:$,srcAbs:T(a,G.path),dstAbs:N})}}else g.push({srcRel:x,dstRel:P,srcAbs:y,dstAbs:C})}if(g.length===0)return{stdout:"",stderr:"",exitCode:0};if(n["dry-run"])return{stdout:"",stderr:"",exitCode:0};for(let w of g){let y=Zt(w.dstAbs);await r.fs.exists(y)||await r.fs.mkdir(y,{recursive:!0});let x=await r.fs.readFileBuffer(w.srcAbs);await r.fs.writeFile(w.dstAbs,x),await r.fs.rm(w.srcAbs);let b=Ts(m,w.srcRel,0);if(b){m=at(m,w.srcRel);let k={...b,path:w.dstRel};m=yt(m,k)}}for(let w of g)await er(r.fs,Zt(w.srcAbs),a);return await ae(s,m),{stdout:"",stderr:"",exitCode:0}}})}se();Ne();Cn();Pe();ie();le();dt();Fe();ue();se();Ne();Pe();ie();se();ie();un();Yn();ve();async function ra(e,t){let n=await we(e,t);if(n.type!=="commit")return null;let r=en(n.content),o=null;if(r.parents.length>0&&r.parents[0]){let f=await we(e,r.parents[0]);f.type==="commit"&&(o=en(f.content).tree)}let s=await We(e,o,r.tree);if(s.length===0)return null;let i=Vn(),a=!1,c=[...s].sort((f,l)=>Oe(f.path,l.path));for(let f of c){let l="",d="";if(f.oldHash)try{let m=await we(e,f.oldHash);l=new TextDecoder().decode(m.content)}catch{}if(f.newHash)try{let m=await we(e,f.newHash);d=new TextDecoder().decode(m.content)}catch{}let u=Ct({path:f.path,oldContent:l,newContent:d,oldMode:f.oldMode,newMode:f.newMode});if(u)for(let m of u.split(`
484
+ `,exitCode:0}}async function Up(e,t,n){let r=await F(e,"MERGE_HEAD");if(!r)return I("There is no merge in progress (MERGE_HEAD missing).");let o=await K(e),s=wn(o,"Committing");if(s)return s;let i=await Ze(e);if(M(i))return i;let a=await j(e,i),c=await Pe(e,"MERGE_MSG");if(c)c=an(c);else{let C=await Q(e),P=C?.type==="symbolic"?Re(C.target):"HEAD";c=await fr(e,"unknown",P)}let f=De(o),l=await Ge(e,f),d=await on(e,t);if(M(d))return d;let u=await Qe(e,t);if(M(u))return u;let m=At(c),h={repo:e,message:m,treeHash:l,headHash:i,theirsHash:r},p=await n?.hooks?.mergeMsg?.(h);if(ee(p))return{stdout:"",stderr:p.message??"",exitCode:1};m=h.message;let g=await n?.hooks?.preMergeCommit?.({repo:e,mergeMessage:m,treeHash:l,headHash:i,theirsHash:r});if(ee(g))return{stdout:"",stderr:g.message??"",exitCode:1};let w=await ht(e,l,[i,r],d,u,m);await ts(e);let y=await Q(e),x=fe(m),b=y?.type==="symbolic"?y.target:"HEAD";await re(e,t,b,i,w,`commit (merge): ${x}`,y?.type==="symbolic"),await n?.hooks?.postMerge?.({repo:e,headHash:i,theirsHash:r,strategy:"three-way",commitHash:w});let k=await Bn(e,a.tree,l),E=y?.type==="symbolic"?Re(y.target):"detached HEAD";return{stdout:`${Ht(E,w,c)}
485
+ ${k}`,stderr:"",exitCode:0}}async function Bp(e,t){return Dn(e,t,{operationRef:"MERGE_HEAD",noOpError:I("There is no merge to abort (MERGE_HEAD missing)."),operationName:"merge",clearState:ts})}se();Ce();le();tt();function Cl(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:$().alias("f").describe("Force renaming even if target exists"),"dry-run":$().alias("n").describe("Do nothing; only show what would happen"),skip:$().alias("k").describe("Skip move/rename actions that would lead to errors")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Xe(s);if(i)return i;let a=s.workTree,c=n.sources;if(c.length<2)return L(`usage: git mv [<options>] <source>... <destination>
486
+ `);let f=c[c.length-1],l=c.slice(0,-1),d=It(r.cwd,f),u=ft(a,d);if(u.startsWith(".."))return I(`'${f}' is outside repository at '${a}'`);let m=await K(s),h=await r.fs.exists(d),p=h&&(await r.fs.stat(d)).isDirectory;if(l.length>1&&!p)return I(h?`destination '${f}' is not a directory`:`destination directory '${f}' does not exist`);let g=[];for(let w of l){let y=It(r.cwd,w),x=ft(a,y);if(x.startsWith("..")){if(n.skip)continue;return I(`'${w}' is outside repository at '${a}'`)}if(!await r.fs.exists(y)){if(n.skip)continue;return I(`bad source, source=${x}, destination=${u}`)}let E=(await r.fs.stat(y)).isDirectory;if(!(E?m.entries.some(O=>O.path===x||O.path.startsWith(`${x}/`)):m.entries.some(O=>O.path===x&&O.stage===0))){let O=!E&&m.entries.some(H=>H.path===x&&H.stage>0);if(n.skip)continue;return I(O?`conflicted, source=${x}, destination=${u}`:`not under version control, source=${x}, destination=${u}`)}let C,P;if(p){let O=Mr(x);C=u===""||u==="."?O:`${u}/${O}`,P=T(d,O)}else C=u,P=d;if(await r.fs.exists(P)&&!n.force)if((await r.fs.stat(P)).isDirectory){let H=Mr(x);C=`${C}/${H}`,P=T(P,H)}else{if(n.skip)continue;return I(`destination exists, source=${x}, destination=${C}`)}if(x===C){if(n.skip)continue;return I(`can not move directory into itself, source=${x}, destination=${C}`)}let D=Zt(P);if(!await r.fs.exists(D)){if(n.skip)continue;return I(`renaming '${x}' failed: No such file or directory`)}if(E){let O=`${x}/`,H=m.entries.filter(G=>G.path.startsWith(O)&&G.stage===0);for(let G of H){let A=G.path.slice(x.length),S=C+A,N=P+A;g.push({srcRel:G.path,dstRel:S,srcAbs:T(a,G.path),dstAbs:N})}}else g.push({srcRel:x,dstRel:C,srcAbs:y,dstAbs:P})}if(g.length===0)return{stdout:"",stderr:"",exitCode:0};if(n["dry-run"])return{stdout:"",stderr:"",exitCode:0};for(let w of g){let y=Zt(w.dstAbs);await r.fs.exists(y)||await r.fs.mkdir(y,{recursive:!0});let x=await r.fs.readFileBuffer(w.srcAbs);await r.fs.writeFile(w.dstAbs,x),await r.fs.rm(w.srcAbs);let b=Ts(m,w.srcRel,0);if(b){m=at(m,w.srcRel);let k={...b,path:w.dstRel};m=Et(m,k)}}for(let w of g)await er(r.fs,Zt(w.srcAbs),a);return await ae(s,m),{stdout:"",stderr:"",exitCode:0}}})}se();Ne();Pn();Ce();ie();le();dt();Fe();ue();se();Ne();Ce();ie();se();ie();un();Yn();ve();async function ra(e,t){let n=await we(e,t);if(n.type!=="commit")return null;let r=en(n.content),o=null;if(r.parents.length>0&&r.parents[0]){let f=await we(e,r.parents[0]);f.type==="commit"&&(o=en(f.content).tree)}let s=await We(e,o,r.tree);if(s.length===0)return null;let i=Vn(),a=!1,c=[...s].sort((f,l)=>Oe(f.path,l.path));for(let f of c){let l="",d="";if(f.oldHash)try{let m=await we(e,f.oldHash);l=new TextDecoder().decode(m.content)}catch{}if(f.newHash)try{let m=await we(e,f.newHash);d=new TextDecoder().decode(m.content)}catch{}let u=Pt({path:f.path,oldContent:l,newContent:d,oldMode:f.oldMode,newMode:f.newMode});if(u)for(let m of u.split(`
485
487
  `)){if(!m||m.startsWith("index "))continue;let p=(m.startsWith("@@")?m.replace(/^@@ [^@]* @@/,"@@ @@"):m).replace(/[ \t\r]/g,"");p&&(i.update(p),i.update(`
486
- `),a=!0)}}return a?i.hex():null}Fe();ue();ve();sn();tt();async function Fp(e){let t=await Q(e);return t?.type==="symbolic"?Re(t.target):"detached HEAD"}function Il(e){return e==="HEAD"?`HEAD is up to date.
488
+ `),a=!0)}}return a?i.hex():null}Fe();ue();ve();sn();tt();async function Wp(e){let t=await Q(e);return t?.type==="symbolic"?Re(t.target):"detached HEAD"}function Ol(e){return e==="HEAD"?`HEAD is up to date.
487
489
  `:`Current branch ${e} is up to date.
488
- `}async function Up(e,t,n){if(!e.workTree)return null;let r=await ce(e,t),o=new Map(je(n).map(a=>[a.path,a])),s=new Set(await et(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=Ks(i,{errorExitCode:1,operationName:"checkout",actionHint:"switch branches"});return L(`${a.stderr}error: could not detach HEAD
489
- `)}return null}async function Bp(e,t,n,r){if(!e.workTree)return null;let o=await ce(e,t),s=new Set(n.entries.map(c=>c.path)),i=new Set(await et(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:`${Ks(a,{errorExitCode:128,operationName:"reset",actionHint:"reset"}).stderr}fatal: could not move back to ${r}
490
- `,exitCode:128}:null}async function Sl(e,t,n){if(!e.workTree)return null;let r=new Map(je(t).map(i=>[i.path,i])),o=new Set(await et(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 $l(e,t){return`error: The following untracked working tree files would be overwritten by merge:
490
+ `}async function qp(e,t,n){if(!e.workTree)return null;let r=await ce(e,t),o=new Map(De(n).map(a=>[a.path,a])),s=new Set(await et(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=Ks(i,{errorExitCode:1,operationName:"checkout",actionHint:"switch branches"});return L(`${a.stderr}error: could not detach HEAD
491
+ `)}return null}async function zp(e,t,n,r){if(!e.workTree)return null;let o=await ce(e,t),s=new Set(n.entries.map(c=>c.path)),i=new Set(await et(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:`${Ks(a,{errorExitCode:128,operationName:"reset",actionHint:"reset"}).stderr}fatal: could not move back to ${r}
492
+ `,exitCode:128}:null}async function Il(e,t,n){if(!e.workTree)return null;let r=new Map(De(t).map(i=>[i.path,i])),o=new Set(await et(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 $l(e,t){return`error: The following untracked working tree files would be overwritten by merge:
491
493
  ${e.map(r=>` ${r}`).join(`
492
494
  `)}
493
495
  Please move or remove them before you merge.
@@ -501,20 +503,20 @@ hint: edit the todo list first:
501
503
  hint:
502
504
  hint: git rebase --edit-todo
503
505
  hint: git rebase --continue
504
- `}async function sa(e,t,n,r,o,s){await re(e,t,"HEAD",n,r,`rebase (start): checkout ${s}`),o!=="detached HEAD"&&(await re(e,t,o,n,r,`rebase (finish): ${o} onto ${r}`),await re(e,t,"HEAD",r,r,`rebase (finish): returning to ${o}`))}async function Ao(e,t,n,r){let o=await j(e,t),s=await Up(e,o.tree,n);if(s)return s;let i=await gn(e,o.tree,n);return i.success&&(await ae(e,{version:2,entries:i.newEntries}),await De(e,i.worktreeOps)),r!=="detached HEAD"?await X(e,r,t):await X(e,"HEAD",t),null}async function oa(e,t,n,r,o,s,i,a){let c=r.startsWith("refs/heads/")?Re(r):"HEAD",f=await K(e),l=Bt(f).sort();if(l.length>0)return{stdout:l.map(O=>`${O}: needs merge
506
+ `}async function sa(e,t,n,r,o,s){await re(e,t,"HEAD",n,r,`rebase (start): checkout ${s}`),o!=="detached HEAD"&&(await re(e,t,o,n,r,`rebase (finish): ${o} onto ${r}`),await re(e,t,"HEAD",r,r,`rebase (finish): returning to ${o}`))}async function Ao(e,t,n,r){let o=await j(e,t),s=await qp(e,o.tree,n);if(s)return s;let i=await gn(e,o.tree,n);return i.success&&(await ae(e,{version:2,entries:i.newEntries}),await Me(e,i.worktreeOps)),r!=="detached HEAD"?await X(e,r,t):await X(e,"HEAD",t),null}async function oa(e,t,n,r,o,s,i,a){let c=r.startsWith("refs/heads/")?Re(r):"HEAD",f=await K(e),l=Bt(f).sort();if(l.length>0)return{stdout:l.map(O=>`${O}: needs merge
505
507
  `).join(""),stderr:`error: cannot rebase: You have unstaged changes.
506
508
  error: additionally, your index contains uncommitted changes.
507
509
  error: Please commit or stash them.
508
- `,exitCode:1};let d=await j(e,n),u=await ce(e,d.tree);if(e.workTree){let O=yr(f,u),G=(await Tt(e,f)).some(A=>A.status==="modified"||A.status==="deleted");if(O||G){let A=[];return G&&A.push("error: cannot rebase: You have unstaged changes."),O&&(G?A.push("error: additionally, your index contains uncommitted changes."):A.push("error: cannot rebase: Your index contains uncommitted changes.")),A.push("error: Please commit or stash them."),L(`${A.join(`
510
+ `,exitCode:1};let d=await j(e,n),u=await ce(e,d.tree);if(e.workTree){let O=Er(f,u),G=(await Tt(e,f)).some(A=>A.status==="modified"||A.status==="deleted");if(O||G){let A=[];return G&&A.push("error: cannot rebase: You have unstaged changes."),O&&(G?A.push("error: additionally, your index contains uncommitted changes."):A.push("error: cannot rebase: Your index contains uncommitted changes.")),A.push("error: Please commit or stash them."),L(`${A.join(`
509
511
  `)}
510
- `)}}let m=await a?.hooks?.preRebase?.({repo:e,upstream:i,branch:r!=="detached HEAD"?c:null});if(ee(m))return{stdout:"",stderr:m.message??"",exitCode:1};let h=await Kc(e,o,n),p=h.right;if(p.length===0){if(s!==n){let O=await Ao(e,s,f,r);return O||(await sa(e,t,n,s,r,i),{stdout:"",stderr:`Successfully rebased and updated ${r}.
511
- `,exitCode:0})}return{stdout:Il(c),stderr:"",exitCode:0}}let g=[],w=h.left,y=new Set;for(let O of w){let H=await ra(e,O.hash);H&&y.add(H)}let x=[];if(y.size>0)for(let O of p){let H=await ra(e,O.hash);H&&y.has(H)?g.push(`warning: skipped previously applied commit ${Y(O.hash)}`):x.push(O)}else x.push(...p);let b="";if(g.length>0&&(b=`${g.join(`
512
+ `)}}let m=await a?.hooks?.preRebase?.({repo:e,upstream:i,branch:r!=="detached HEAD"?c:null});if(ee(m))return{stdout:"",stderr:m.message??"",exitCode:1};let h=await zc(e,o,n),p=h.right;if(p.length===0){if(s!==n){let O=await Ao(e,s,f,r);return O||(await sa(e,t,n,s,r,i),{stdout:"",stderr:`Successfully rebased and updated ${r}.
513
+ `,exitCode:0})}return{stdout:Ol(c),stderr:"",exitCode:0}}let g=[],w=h.left,y=new Set;for(let O of w){let H=await ra(e,O.hash);H&&y.add(H)}let x=[];if(y.size>0)for(let O of p){let H=await ra(e,O.hash);H&&y.has(H)?g.push(`warning: skipped previously applied commit ${Y(O.hash)}`):x.push(O)}else x.push(...p);let b="";if(g.length>0&&(b=`${g.join(`
512
514
  `)}
513
515
  hint: use --reapply-cherry-picks to include skipped commits
514
516
  hint: Disable this message with "git config set advice.skippedCherryPicks false"
515
517
  `),x.length===0){if(s!==n){let O=await Ao(e,s,f,r);if(O)return O.stderr=b+O.stderr,O;await sa(e,t,n,s,r,i)}return{stdout:"",stderr:`${b}Successfully rebased and updated ${r}.
516
- `,exitCode:0}}let k=x.map(O=>({hash:O.hash,subject:fe(O.commit.message)})),E=s,R=0;for(let O of k){let H=await j(e,O.hash);if(H.parents.length>1||H.parents.length===0||H.parents[0]!==E)break;E=O.hash,R++}let P=k.splice(0,R);if(k.length===0){if(E===n)return{stdout:Il(c),stderr:b,exitCode:0};let O=await Ao(e,E,f,r);return O?(O.stderr=b+O.stderr,O):(await sa(e,t,n,E,r,i),{stdout:"",stderr:`${b}Successfully rebased and updated ${r}.
517
- `,exitCode:0})}let C=await Ao(e,E,f,"detached HEAD");if(C)return C.stderr=b+C.stderr,C;await de(e,"CHERRY_PICK_HEAD"),await de(e,"REVERT_HEAD"),await pe(e,"MERGE_MSG"),await pe(e,"MERGE_MODE"),await re(e,t,"HEAD",n,E,`rebase (start): checkout ${i}`);let v={headName:r,origHead:n,onto:s,todo:k,done:P,msgnum:R,end:R+k.length};await Oi(e,v),await X(e,"ORIG_HEAD",n);let D=await ia(e,t);return b&&(D.stderr=b+D.stderr),D}function Tl(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:J.string().describe("Starting point at which to create new commits"),abort:S().describe("Abort the current rebase operation"),continue:S().describe("Continue the rebase after conflict resolution"),skip:S().describe("Skip the current patch and continue")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort)return zp(s,r.env);if(n.continue)return Kp(s,r.env);if(n.skip)return Vp(s,r.env);let i=n.upstream;if(!i)return I("no upstream configured and no upstream argument given");if(await Gt(s))return I(`It seems that there is already a rebase-merge directory, and
518
+ `,exitCode:0}}let k=x.map(O=>({hash:O.hash,subject:fe(O.commit.message)})),E=s,R=0;for(let O of k){let H=await j(e,O.hash);if(H.parents.length>1||H.parents.length===0||H.parents[0]!==E)break;E=O.hash,R++}let C=k.splice(0,R);if(k.length===0){if(E===n)return{stdout:Ol(c),stderr:b,exitCode:0};let O=await Ao(e,E,f,r);return O?(O.stderr=b+O.stderr,O):(await sa(e,t,n,E,r,i),{stdout:"",stderr:`${b}Successfully rebased and updated ${r}.
519
+ `,exitCode:0})}let P=await Ao(e,E,f,"detached HEAD");if(P)return P.stderr=b+P.stderr,P;await de(e,"CHERRY_PICK_HEAD"),await de(e,"REVERT_HEAD"),await pe(e,"MERGE_MSG"),await pe(e,"MERGE_MODE"),await re(e,t,"HEAD",n,E,`rebase (start): checkout ${i}`);let v={headName:r,origHead:n,onto:s,todo:k,done:C,msgnum:R,end:R+k.length};await Oi(e,v),await X(e,"ORIG_HEAD",n);let D=await ia(e,t);return b&&(D.stderr=b+D.stderr),D}function Sl(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:J.string().describe("Starting point at which to create new commits"),abort:$().describe("Abort the current rebase operation"),continue:$().describe("Continue the rebase after conflict resolution"),skip:$().describe("Skip the current patch and continue")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort)return Yp(s,r.env);if(n.continue)return Xp(s,r.env);if(n.skip)return Zp(s,r.env);let i=n.upstream;if(!i)return I("no upstream configured and no upstream argument given");if(await Gt(s))return I(`It seems that there is already a rebase-merge directory, and
518
520
  I wonder if you are in the middle of another rebase. If that is the
519
521
  case, please try
520
522
  git rebase (--continue | --abort | --skip)
@@ -522,9 +524,9 @@ If that is not the case, please
522
524
  rm -fr ".git/rebase-merge"
523
525
  and run me again. I am stopping in case you still have something
524
526
  valuable there.
525
- `);let a=await Ze(s);if(M(a))return a;let c=await Q(s),f=c?.type==="symbolic"?c.target:"detached HEAD",l=await He(s,i,`invalid upstream '${i}'`);if(M(l))return l;let d=l.hash,u,m=n.onto;if(m){let h=await He(s,m,`Does not point to a valid commit: '${m}'`);if(M(h))return h;u=h.hash}else u=d;return oa(s,r.env,a,f,d,u,i,t)}})}async function ia(e,t){let n=[],r=[];for(;;){let o=await pt(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 zc(e);let i=await Wp(e,s,t);if(i.conflict){if(i.rescheduleCurrent){let a=await pt(e);a&&(a.todo=[s,...a.todo],await Oi(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 qp(e,n,t)}async function Wp(e,t,n){let r=t.hash,o=await j(e,r),s=o.parents.length>0?o.parents[0]:null,i=s?await j(e,s):null,a=await Z(e);if(!a)return{conflict:!0,stdout:"",stderr:`fatal: no HEAD commit during rebase
527
+ `);let a=await Ze(s);if(M(a))return a;let c=await Q(s),f=c?.type==="symbolic"?c.target:"detached HEAD",l=await He(s,i,`invalid upstream '${i}'`);if(M(l))return l;let d=l.hash,u,m=n.onto;if(m){let h=await He(s,m,`Does not point to a valid commit: '${m}'`);if(M(h))return h;u=h.hash}else u=d;return oa(s,r.env,a,f,d,u,i,t)}})}async function ia(e,t){let n=[],r=[];for(;;){let o=await gt(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 qc(e);let i=await Kp(e,s,t);if(i.conflict){if(i.rescheduleCurrent){let a=await gt(e);a&&(a.todo=[s,...a.todo],await Oi(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 Vp(e,n,t)}async function Kp(e,t,n){let r=t.hash,o=await j(e,r),s=o.parents.length>0?o.parents[0]:null,i=s?await j(e,s):null,a=await Z(e);if(!a)return{conflict:!0,stdout:"",stderr:`fatal: no HEAD commit during rebase
526
528
  `};if(s&&s===a){let G=await K(e);if(!i)return{conflict:!0,stdout:"",stderr:`fatal: missing parent commit during rebase
527
- `};let A=await Ve(e,i.tree),$=await Ve(e,o.tree),N=new Map(A.map(U=>[U.path,U.hash])),B=new Map;for(let U of $){let V=N.get(U.path);(!V||V!==U.hash)&&B.set(U.path,U.hash)}let z=await Sl(e,G,B);if(z)return await X(e,"REBASE_HEAD",r),await no(e,r,o.author),{conflict:!0,stdout:"",stderr:$l(z,t),rescheduleCurrent:!0};let _=await gn(e,o.tree,G);return _.success&&(await ae(e,{version:2,entries:_.newEntries}),await De(e,_.worktreeOps)),await Sn(e,r),await re(e,n,"HEAD",a,r,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}let c=await j(e,a),f=i?i.tree:null,l=Y(r),d=fe(o.message),u=await ke(e,"merge.conflictstyle")??"merge",m={a:"HEAD",b:d?`${l} (${d})`:l,conflictStyle:u},h=await Ft(e,f,c.tree,o.tree,m),p=await K(e),[g,w,y]=await Promise.all([Ve(e,c.tree),f?Ve(e,f):Promise.resolve([]),Ve(e,o.tree)]),x=new Set;for(let G of w)x.add(G.path);for(let G of g)x.add(G.path);for(let G of y)x.add(G.path);let b=p.entries.filter(G=>!x.has(G.path)),k=[...h.entries,...b];k.sort((G,A)=>Oe(G.path,A.path)||G.stage-A.stage);let E={version:2,entries:k},R=k.filter(G=>G.stage===0),P=await Ge(e,R),C=new Map(g.map(G=>[G.path,G])),v=new Map;for(let G of R){let A=C.get(G.path);(!A||A.hash!==G.hash)&&v.set(G.path,G.hash)}for(let G of h.conflicts){if(G.reason==="content"||G.reason==="add-add"){v.set(G.path,null);continue}if(G.reason==="delete-modify"){let A=h.entries.filter(B=>B.path===G.path&&B.stage>0),$=A.find(B=>B.stage===2),N=A.find(B=>B.stage===3);N&&!$&&v.set(G.path,N.hash)}}let D=await Sl(e,p,v);if(D)return await X(e,"REBASE_HEAD",r),await no(e,r,o.author),{conflict:!0,stdout:"",stderr:$l(D,t),rescheduleCurrent:!0};if(await ae(e,E),e.workTree){let G=await An(e,c.tree,h.resultTree,p);G.success&&await De(e,G.worktreeOps)}if(h.conflicts.length>0){await X(e,"REBASE_HEAD",r),await no(e,r,o.author),await Te(e,"MERGE_MSG",o.message),await Te(e,"rebase-merge/message",o.message);let G=h.messages.join(`
529
+ `};let A=await Ve(e,i.tree),S=await Ve(e,o.tree),N=new Map(A.map(U=>[U.path,U.hash])),B=new Map;for(let U of S){let V=N.get(U.path);(!V||V!==U.hash)&&B.set(U.path,U.hash)}let z=await Il(e,G,B);if(z)return await X(e,"REBASE_HEAD",r),await no(e,r,o.author),{conflict:!0,stdout:"",stderr:$l(z,t),rescheduleCurrent:!0};let _=await gn(e,o.tree,G);return _.success&&(await ae(e,{version:2,entries:_.newEntries}),await Me(e,_.worktreeOps)),await $n(e,r),await re(e,n,"HEAD",a,r,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}let c=await j(e,a),f=i?i.tree:null,l=Y(r),d=fe(o.message),u=await ke(e,"merge.conflictstyle")??"merge",m={a:"HEAD",b:d?`${l} (${d})`:l,conflictStyle:u},h=await Ft(e,f,c.tree,o.tree,m),p=await K(e),[g,w,y]=await Promise.all([Ve(e,c.tree),f?Ve(e,f):Promise.resolve([]),Ve(e,o.tree)]),x=new Set;for(let G of w)x.add(G.path);for(let G of g)x.add(G.path);for(let G of y)x.add(G.path);let b=p.entries.filter(G=>!x.has(G.path)),k=[...h.entries,...b];k.sort((G,A)=>Oe(G.path,A.path)||G.stage-A.stage);let E={version:2,entries:k},R=k.filter(G=>G.stage===0),C=await Ge(e,R),P=new Map(g.map(G=>[G.path,G])),v=new Map;for(let G of R){let A=P.get(G.path);(!A||A.hash!==G.hash)&&v.set(G.path,G.hash)}for(let G of h.conflicts){if(G.reason==="content"||G.reason==="add-add"){v.set(G.path,null);continue}if(G.reason==="delete-modify"){let A=h.entries.filter(B=>B.path===G.path&&B.stage>0),S=A.find(B=>B.stage===2),N=A.find(B=>B.stage===3);N&&!S&&v.set(G.path,N.hash)}}let D=await Il(e,p,v);if(D)return await X(e,"REBASE_HEAD",r),await no(e,r,o.author),{conflict:!0,stdout:"",stderr:$l(D,t),rescheduleCurrent:!0};if(await ae(e,E),e.workTree){let G=await An(e,c.tree,h.resultTree,p);G.success&&await Me(e,G.worktreeOps)}if(h.conflicts.length>0){await X(e,"REBASE_HEAD",r),await no(e,r,o.author),await Te(e,"MERGE_MSG",o.message),await Te(e,"rebase-merge/message",o.message);let G=h.messages.join(`
528
530
  `);return{conflict:!0,stdout:G?`${G}
529
531
  `:"",stderr:`error: could not apply ${l}... ${t.subject}
530
532
  hint: Resolve all conflicts manually, mark them as resolved with
@@ -533,13 +535,13 @@ hint: You can instead skip this commit: run "git rebase --skip".
533
535
  hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
534
536
  hint: Disable this message with "git config set advice.mergeConflict false"
535
537
  Could not apply ${l}... # ${t.subject}
536
- `}}if(P===c.tree)return{conflict:!1,stdout:"",stderr:`dropping ${r} ${t.subject} -- patch contents already upstream
537
- `};let O=await Qe(e,n);if(M(O))return{conflict:!0,stdout:"",stderr:O.stderr};let H=await mt(e,P,[a],o.author,O,o.message);return await re(e,n,"HEAD",a,H,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}async function qp(e,t,n){let r=await pt(e);if(!r)return I("no rebase in progress");let o=await Z(e);if(!o)return I("no HEAD during rebase finish");r.headName!=="detached HEAD"&&(await X(e,r.headName,o),await ze(e,"HEAD",r.headName),await ht(e),await re(e,n,r.headName,r.origHead,o,`rebase (finish): ${r.headName} onto ${r.onto}`),await re(e,n,"HEAD",o,o,`rebase (finish): returning to ${r.headName}`));let i=`Successfully rebased and updated ${r.headName}.
538
- `;return await de(e,"REBASE_HEAD"),await sr(e),await Ii(e),{stdout:"",stderr:t.join("")+i,exitCode:0}}async function zp(e,t){let n=await pt(e);if(!n)return I("no rebase in progress");let r=await Z(e),o=n.origHead,s=await j(e,o),i=await K(e),a=await Bp(e,s.tree,i,o);if(a)return a;let c=await gn(e,s.tree,i);c.success&&(await ae(e,{version:2,entries:c.newEntries}),await De(e,c.worktreeOps)),n.headName!=="detached HEAD"?(await X(e,n.headName,o),await ze(e,"HEAD",n.headName),await ht(e)):await Sn(e,o);let f=n.headName==="detached HEAD"?o:n.headName;return await re(e,t,"HEAD",r,o,`rebase (abort): returning to ${f}`),await de(e,"REBASE_HEAD"),await sr(e),await Ii(e),{stdout:"",stderr:"",exitCode:0}}async function Kp(e,t){let n="";if(!await pt(e))return I("no rebase in progress");let o=await K(e);if($t(o))return L(`error: Committing is not possible because you have unmerged files.
538
+ `}}if(C===c.tree)return{conflict:!1,stdout:"",stderr:`dropping ${r} ${t.subject} -- patch contents already upstream
539
+ `};let O=await Qe(e,n);if(M(O))return{conflict:!0,stdout:"",stderr:O.stderr};let H=await ht(e,C,[a],o.author,O,o.message);return await re(e,n,"HEAD",a,H,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}async function Vp(e,t,n){let r=await gt(e);if(!r)return I("no rebase in progress");let o=await Z(e);if(!o)return I("no HEAD during rebase finish");r.headName!=="detached HEAD"&&(await X(e,r.headName,o),await ze(e,"HEAD",r.headName),await pt(e),await re(e,n,r.headName,r.origHead,o,`rebase (finish): ${r.headName} onto ${r.onto}`),await re(e,n,"HEAD",o,o,`rebase (finish): returning to ${r.headName}`));let i=`Successfully rebased and updated ${r.headName}.
540
+ `;return await de(e,"REBASE_HEAD"),await sr(e),await Ii(e),{stdout:"",stderr:t.join("")+i,exitCode:0}}async function Yp(e,t){let n=await gt(e);if(!n)return I("no rebase in progress");let r=await Z(e),o=n.origHead,s=await j(e,o),i=await K(e),a=await zp(e,s.tree,i,o);if(a)return a;let c=await gn(e,s.tree,i);c.success&&(await ae(e,{version:2,entries:c.newEntries}),await Me(e,c.worktreeOps)),n.headName!=="detached HEAD"?(await X(e,n.headName,o),await ze(e,"HEAD",n.headName),await pt(e)):await $n(e,o);let f=n.headName==="detached HEAD"?o:n.headName;return await re(e,t,"HEAD",r,o,`rebase (abort): returning to ${f}`),await de(e,"REBASE_HEAD"),await sr(e),await Ii(e),{stdout:"",stderr:"",exitCode:0}}async function Xp(e,t){let n="";if(!await gt(e))return I("no rebase in progress");let o=await K(e);if(St(o))return L(`error: Committing is not possible because you have unmerged files.
539
541
  hint: Fix them up in the work tree, and then use 'git add <file>'
540
542
  hint: as appropriate to mark resolution and make a commit.
541
543
  fatal: Exiting because of an unresolved conflict.
542
- `,128);let s=await F(e,"REBASE_HEAD");if(s){let a=await Z(e);if(!a)return I("Cannot read HEAD");let c=await j(e,a),f=je(o),l=await Ge(e,f),d=l!==c.tree,u=await Ce(e,"rebase-merge/message")!==null;if(d&&!u)return L(`error: you have staged changes in your working tree
544
+ `,128);let s=await F(e,"REBASE_HEAD");if(s){let a=await Z(e);if(!a)return I("Cannot read HEAD");let c=await j(e,a),f=De(o),l=await Ge(e,f),d=l!==c.tree,u=await Pe(e,"rebase-merge/message")!==null;if(d&&!u)return L(`error: you have staged changes in your working tree
543
545
  If these changes are meant to be squashed into the previous commit, run:
544
546
 
545
547
  git commit --amend
@@ -552,33 +554,33 @@ In both cases, once you're done, continue with:
552
554
 
553
555
  git rebase --continue
554
556
 
555
- `);if(d){let m=await j(e,s),h=await F(e,"CHERRY_PICK_HEAD"),p=h?await j(e,h):m,g;g=await Ce(e,"rebase-merge/message")??await Ce(e,"MERGE_MSG")??void 0,g&&(g=an(g)),g||(g=m.message);let w=await Qe(e,t);if(M(w))return w;let y=At(g),x=[a],b=await F(e,"MERGE_HEAD");b&&x.push(b);let k=await mt(e,l,x,p.author,w,y);b&&(await de(e,"MERGE_HEAD"),await pe(e,"MERGE_MODE"));let E=fe(y);await re(e,t,"HEAD",a,k,`rebase (continue): ${E}`);let R=await Fp(e),P=p.author.timestamp!==w.timestamp||p.author.timezone!==w.timezone,C=await fn(e,c.tree,l,p.author,w,P);n=`${Ht(R,k,y)}
556
- ${C}`}await de(e,"REBASE_HEAD"),await de(e,"CHERRY_PICK_HEAD"),await de(e,"REVERT_HEAD"),await pe(e,"MERGE_MSG"),await pe(e,"rebase-merge/message")}let i=await ia(e,t);return n&&(i.stdout=n+i.stdout),i}async function Vp(e,t){if(!await pt(e))return I("no rebase in progress");let r=await Z(e);if(!r)return{stdout:"",stderr:`error: could not determine HEAD revision
557
+ `);if(d){let m=await j(e,s),h=await F(e,"CHERRY_PICK_HEAD"),p=h?await j(e,h):m,g;g=await Pe(e,"rebase-merge/message")??await Pe(e,"MERGE_MSG")??void 0,g&&(g=an(g)),g||(g=m.message);let w=await Qe(e,t);if(M(w))return w;let y=At(g),x=[a],b=await F(e,"MERGE_HEAD");b&&x.push(b);let k=await ht(e,l,x,p.author,w,y);b&&(await de(e,"MERGE_HEAD"),await pe(e,"MERGE_MODE"));let E=fe(y);await re(e,t,"HEAD",a,k,`rebase (continue): ${E}`);let R=await Wp(e),C=p.author.timestamp!==w.timestamp||p.author.timezone!==w.timezone,P=await fn(e,c.tree,l,p.author,w,C);n=`${Ht(R,k,y)}
558
+ ${P}`}await de(e,"REBASE_HEAD"),await de(e,"CHERRY_PICK_HEAD"),await de(e,"REVERT_HEAD"),await pe(e,"MERGE_MSG"),await pe(e,"rebase-merge/message")}let i=await ia(e,t);return n&&(i.stdout=n+i.stdout),i}async function Zp(e,t){if(!await gt(e))return I("no rebase in progress");let r=await Z(e);if(!r)return{stdout:"",stderr:`error: could not determine HEAD revision
557
559
  fatal: could not discard worktree changes
558
- `,exitCode:128};let o=await j(e,r),s=await K(e),i=await gn(e,o.tree,s);return i.success&&(await ae(e,{version:2,entries:i.newEntries}),await De(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 pe(e,"MERGE_MSG"),await pe(e,"MERGE_MODE"),await pe(e,"rebase-merge/message"),ia(e,t)}function vl(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:S().alias("r").describe("Rebase instead of merge"),noRebase:S().describe("Merge instead of rebase"),ffOnly:S().describe("Only fast-forward"),noFf:S().describe("Create a merge commit even for fast-forwards"),depth:J.number().describe("Limit fetching to the specified number of commits"),unshallow:S().describe("Convert a shallow repository to a complete one")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.depth!==void 0&&n.unshallow)return I("--depth and --unshallow cannot be used together");if(n.unshallow&&!await yo(s))return I("--unshallow on a complete repository does not make sense");let i=n.depth;n.unshallow&&(i=ls);let a=await Ze(s);if(M(a))return a;let c=await K(s);if($t(c))return L(`error: Pulling is not possible because you have unmerged files.
559
- `,128);let f=n.remote,l=n.branch;if(!f){let ne=await Q(s);if(ne?.type==="symbolic"){let Ae=ne.target.startsWith("refs/heads/")?ne.target.slice(11):ne.target,Xt=(await he(s))[`branch "${Ae}"`];Xt&&(f=Xt.remote||"origin",!l&&Xt.merge&&(l=Xt.merge.startsWith("refs/heads/")?Xt.merge.slice(11):Xt.merge))}}f=f||"origin";let d=!1;if(n.rebase)d=!0;else if(!n.noRebase){let ne=await Q(s);if(ne?.type==="symbolic"){let Ae=ne.target.startsWith("refs/heads/")?ne.target.slice(11):ne.target,dn=await ke(s,`branch.${Ae}.rebase`);(dn==="true"||dn!=="false"&&await ke(s,"pull.rebase")==="true")&&(d=!0)}else await ke(s,"pull.rebase")==="true"&&(d=!0)}let u;try{u=await Tr(s,f,r.env)}catch(ne){let Ae=ne instanceof Error?ne.message:"";if(Ae.startsWith("network"))return I(Ae);throw ne}if(!u)return I(`'${f}' does not appear to be a git repository`);let{transport:m,config:h}=u,p=l??null,g=await t?.hooks?.prePull?.({repo:s,remote:f,branch:p});if(ee(g))return{stdout:"",stderr:g.message??"",exitCode:1};let w=dr(h.fetchRefspec),y=await m.advertiseRefs();if(y.length===0)return I("Couldn't find remote ref HEAD");let b=(await ge(s)).map(ne=>ne.hash),k=await F(s,"HEAD");k&&b.push(k);let E=[],R=new Set,P=[];for(let ne of y){if(ne.name==="HEAD")continue;let Ae=$o(w,ne.name);Ae!==null&&(P.push({remote:ne,localRef:Ae}),R.has(ne.hash)||(R.add(ne.hash),E.push(ne.hash)))}let C=new Set(b),v=E.filter(ne=>!C.has(ne)),D,O=i!==void 0?await Pr(s):void 0;i!==void 0&&(D={depth:i,existingShallows:O});let H=v.length>0?v:D?E:[];if(H.length>0){let ne=await m.fetch(H,b,D);ne.shallowUpdates&&await Or(s,ne.shallowUpdates,O)}let G=await Jt(s,r.env);for(let ne of P){let Ae=await F(s,ne.localRef);await X(s,ne.localRef,ne.remote.hash),await Ke(s,ne.localRef,{oldHash:Ae??te,newHash:ne.remote.hash,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:Ae?"pull":"pull: storing head"})}let A=null;if(l){let ne=y.find(Ae=>Ae.name===`refs/heads/${l}`);if(ne)A=ne.hash;else return I(`Couldn't find remote ref refs/heads/${l}`)}else{let ne=y.find(Ae=>Ae.name==="HEAD");ne&&(A=ne.hash)}if(A&&await r.fs.writeFile(T(s.gitDir,"FETCH_HEAD"),`${A} ${h.url}
560
- `),!A)return I("Could not determine remote HEAD");let $=A;if(a===$)return await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
561
- `,stderr:"",exitCode:0};if(d){let ne=await Q(s),Ae=ne?.type==="symbolic"?ne.target:"detached HEAD",dn=l?`${f}/${l}`:f,Xt=await oa(s,r.env,a,Ae,$,$,dn,t);return Xt.exitCode===0&&await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"rebase",commitHash:null}),Xt}let N=await Nt(s,a,$),B=N[0]??null;if(N.length===0)return I("refusing to merge unrelated histories");if(B===$)return await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
562
- `,stderr:"",exitCode:0};let z=!!n.noFf,_=!!n.ffOnly;if(!n.noFf&&!n.ffOnly){let ne=await ke(s,"pull.ff");ne==="false"?z=!0:ne==="only"&&(_=!0)}let U=B===a;if(_&&!U)return I("Not possible to fast-forward, aborting.");if(U&&!z){let ne=await wo(s,a,$),Ae=await Q(s),dn=Ae?.type==="symbolic"?Ae.target:"HEAD";return await Ke(s,dn,{oldHash:a,newHash:$,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:"pull: Fast-forward"}),Ae?.type==="symbolic"&&await Ke(s,"HEAD",{oldHash:a,newHash:$,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:"pull: Fast-forward"}),ne.exitCode===0&&(await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:$,strategy:"fast-forward",commitHash:null}),await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"fast-forward",commitHash:null})),ne}let V=await Q(s),be=V?.type==="symbolic"?Re(V.target):"HEAD",Le=l||f||"FETCH_HEAD",it=await ke(s,"merge.conflictstyle")??"merge",me={a:"HEAD",b:Le,conflictStyle:it},xe=await fs(s,a,$,me),Ut=await j(s,a),xn=await kn(s,xe,Ut.tree,{labels:me,errorExitCode:2,operationName:"merge"});if(!xn.ok)return xn;if(xe.conflicts.length>0){await X(s,"MERGE_HEAD",$),await X(s,"ORIG_HEAD",a);let ne=await fr(s,Le,be),Ae=Bt({version:2,entries:xe.entries}).sort();return ne+=`
560
+ `,exitCode:128};let o=await j(e,r),s=await K(e),i=await gn(e,o.tree,s);return i.success&&(await ae(e,{version:2,entries:i.newEntries}),await Me(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 pe(e,"MERGE_MSG"),await pe(e,"MERGE_MODE"),await pe(e,"rebase-merge/message"),ia(e,t)}function Tl(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:$().alias("r").describe("Rebase instead of merge"),noRebase:$().describe("Merge instead of rebase"),ffOnly:$().describe("Only fast-forward"),noFf:$().describe("Create a merge commit even for fast-forwards"),depth:J.number().describe("Limit fetching to the specified number of commits"),unshallow:$().describe("Convert a shallow repository to a complete one")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.depth!==void 0&&n.unshallow)return I("--depth and --unshallow cannot be used together");if(n.unshallow&&!await yo(s))return I("--unshallow on a complete repository does not make sense");let i=n.depth;n.unshallow&&(i=ls);let a=await Ze(s);if(M(a))return a;let c=await K(s);if(St(c))return L(`error: Pulling is not possible because you have unmerged files.
561
+ `,128);let f=n.remote,l=n.branch;if(!f){let ne=await Q(s);if(ne?.type==="symbolic"){let Ae=ne.target.startsWith("refs/heads/")?ne.target.slice(11):ne.target,Xt=(await he(s))[`branch "${Ae}"`];Xt&&(f=Xt.remote||"origin",!l&&Xt.merge&&(l=Xt.merge.startsWith("refs/heads/")?Xt.merge.slice(11):Xt.merge))}}f=f||"origin";let d=!1;if(n.rebase)d=!0;else if(!n.noRebase){let ne=await Q(s);if(ne?.type==="symbolic"){let Ae=ne.target.startsWith("refs/heads/")?ne.target.slice(11):ne.target,dn=await ke(s,`branch.${Ae}.rebase`);(dn==="true"||dn!=="false"&&await ke(s,"pull.rebase")==="true")&&(d=!0)}else await ke(s,"pull.rebase")==="true"&&(d=!0)}let u;try{u=await vr(s,f,r.env)}catch(ne){let Ae=ne instanceof Error?ne.message:"";if(Ae.startsWith("network"))return I(Ae);throw ne}if(!u)return I(`'${f}' does not appear to be a git repository`);let{transport:m,config:h}=u,p=l??null,g=await t?.hooks?.prePull?.({repo:s,remote:f,branch:p});if(ee(g))return{stdout:"",stderr:g.message??"",exitCode:1};let w=ur(h.fetchRefspec),y=await m.advertiseRefs();if(y.length===0)return I("Couldn't find remote ref HEAD");let b=(await ge(s)).map(ne=>ne.hash),k=await F(s,"HEAD");k&&b.push(k);let E=[],R=new Set,C=[];for(let ne of y){if(ne.name==="HEAD")continue;let Ae=So(w,ne.name);Ae!==null&&(C.push({remote:ne,localRef:Ae}),R.has(ne.hash)||(R.add(ne.hash),E.push(ne.hash)))}let P=new Set(b),v=E.filter(ne=>!P.has(ne)),D,O=i!==void 0?await Or(s):void 0;i!==void 0&&(D={depth:i,existingShallows:O});let H=v.length>0?v:D?E:[];if(H.length>0){let ne=await m.fetch(H,b,D);ne.shallowUpdates&&await Ir(s,ne.shallowUpdates,O)}let G=await Jt(s,r.env);for(let ne of C){let Ae=await F(s,ne.localRef);await X(s,ne.localRef,ne.remote.hash),await Ke(s,ne.localRef,{oldHash:Ae??te,newHash:ne.remote.hash,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:Ae?"pull":"pull: storing head"})}let A=null;if(l){let ne=y.find(Ae=>Ae.name===`refs/heads/${l}`);if(ne)A=ne.hash;else return I(`Couldn't find remote ref refs/heads/${l}`)}else{let ne=y.find(Ae=>Ae.name==="HEAD");ne&&(A=ne.hash)}if(A&&await r.fs.writeFile(T(s.gitDir,"FETCH_HEAD"),`${A} ${h.url}
562
+ `),!A)return I("Could not determine remote HEAD");let S=A;if(a===S)return await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
563
+ `,stderr:"",exitCode:0};if(d){let ne=await Q(s),Ae=ne?.type==="symbolic"?ne.target:"detached HEAD",dn=l?`${f}/${l}`:f,Xt=await oa(s,r.env,a,Ae,S,S,dn,t);return Xt.exitCode===0&&await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"rebase",commitHash:null}),Xt}let N=await Nt(s,a,S),B=N[0]??null;if(N.length===0)return I("refusing to merge unrelated histories");if(B===S)return await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
564
+ `,stderr:"",exitCode:0};let z=!!n.noFf,_=!!n.ffOnly;if(!n.noFf&&!n.ffOnly){let ne=await ke(s,"pull.ff");ne==="false"?z=!0:ne==="only"&&(_=!0)}let U=B===a;if(_&&!U)return I("Not possible to fast-forward, aborting.");if(U&&!z){let ne=await wo(s,a,S),Ae=await Q(s),dn=Ae?.type==="symbolic"?Ae.target:"HEAD";return await Ke(s,dn,{oldHash:a,newHash:S,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:"pull: Fast-forward"}),Ae?.type==="symbolic"&&await Ke(s,"HEAD",{oldHash:a,newHash:S,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:"pull: Fast-forward"}),ne.exitCode===0&&(await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:S,strategy:"fast-forward",commitHash:null}),await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"fast-forward",commitHash:null})),ne}let V=await Q(s),be=V?.type==="symbolic"?Re(V.target):"HEAD",Le=l||f||"FETCH_HEAD",it=await ke(s,"merge.conflictstyle")??"merge",me={a:"HEAD",b:Le,conflictStyle:it},xe=await fs(s,a,S,me),Ut=await j(s,a),xn=await kn(s,xe,Ut.tree,{labels:me,errorExitCode:2,operationName:"merge"});if(!xn.ok)return xn;if(xe.conflicts.length>0){await X(s,"MERGE_HEAD",S),await X(s,"ORIG_HEAD",a);let ne=await fr(s,Le,be),Ae=Bt({version:2,entries:xe.entries}).sort();return ne+=`
563
565
  # Conflicts:
564
566
  ${Ae.map(dn=>`# ${dn}`).join(`
565
567
  `)}
566
568
  `,await Te(s,"MERGE_MSG",ne),{stdout:`${[...xe.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
567
569
  `)}
568
- `,stderr:"",exitCode:1}}let qe=xn.mergedTreeHash,ur=await on(s,r.env);if(M(ur))return ur;let ys=await Qe(s,r.env);if(M(ys))return ys;let Es=await fr(s,Le,be),pa={repo:s,message:Es,treeHash:qe,headHash:a,theirsHash:$},ga=await t?.hooks?.mergeMsg?.(pa);if(ee(ga))return{stdout:"",stderr:ga.message??"",exitCode:1};Es=pa.message;let wa=await t?.hooks?.preMergeCommit?.({repo:s,mergeMessage:Es,treeHash:qe,headHash:a,theirsHash:$});if(ee(wa))return{stdout:"",stderr:wa.message??"",exitCode:1};let ks=await mt(s,qe,[a,$],ur,ys,Es);await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:$,strategy:"three-way",commitHash:ks}),await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"three-way",commitHash:ks});let sd=V?.type==="symbolic"?V.target:"HEAD",ba="pull: Merge made by the 'ort' strategy.";await Ke(s,sd,{oldHash:a,newHash:ks,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:ba}),V?.type==="symbolic"&&await Ke(s,"HEAD",{oldHash:a,newHash:ks,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:ba});let od=await Bn(s,Ut.tree,qe);return{stdout:`${xe.messages.length>0?`${xe.messages.join(`
570
+ `,stderr:"",exitCode:1}}let qe=xn.mergedTreeHash,mr=await on(s,r.env);if(M(mr))return mr;let ys=await Qe(s,r.env);if(M(ys))return ys;let Es=await fr(s,Le,be),pa={repo:s,message:Es,treeHash:qe,headHash:a,theirsHash:S},ga=await t?.hooks?.mergeMsg?.(pa);if(ee(ga))return{stdout:"",stderr:ga.message??"",exitCode:1};Es=pa.message;let wa=await t?.hooks?.preMergeCommit?.({repo:s,mergeMessage:Es,treeHash:qe,headHash:a,theirsHash:S});if(ee(wa))return{stdout:"",stderr:wa.message??"",exitCode:1};let ks=await ht(s,qe,[a,S],mr,ys,Es);await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:S,strategy:"three-way",commitHash:ks}),await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"three-way",commitHash:ks});let rd=V?.type==="symbolic"?V.target:"HEAD",ba="pull: Merge made by the 'ort' strategy.";await Ke(s,rd,{oldHash:a,newHash:ks,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:ba}),V?.type==="symbolic"&&await Ke(s,"HEAD",{oldHash:a,newHash:ks,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:ba});let sd=await Bn(s,Ut.tree,qe);return{stdout:`${xe.messages.length>0?`${xe.messages.join(`
569
571
  `)}
570
572
  `:""}Merge made by the 'ort' strategy.
571
- ${od}`,stderr:"",exitCode:0}}})}se();Ne();dt();ue();function Hl(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:S().alias("f").describe("Force push"),"set-upstream":S().alias("u").describe("Set upstream tracking reference"),all:S().describe("Push all branches"),delete:S().alias("d").describe("Delete remote refs"),tags:S().describe("Push all tags")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.remote||"origin",a;try{a=await Tr(s,i,r.env)}catch(b){let k=b instanceof Error?b.message:"";if(k.startsWith("network"))return I(k);throw b}if(!a)return I(`'${i}' does not appear to be a git repository`);let{transport:c,config:f}=a,l=n.force,d=await c.advertiseRefs(),u=new Map;for(let b of d)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 k of b){let E=k.startsWith("refs/")?k:`refs/heads/${k}`,R=u.get(E)??null;if(!R)return L(`error: unable to delete '${k}': remote ref does not exist
572
- `);m.push({name:E,oldHash:R,newHash:te,ok:l})}}else if(n.all){let b=await ge(s,"refs/heads");for(let k of b){let E=k.name,R=u.get(E)??null;m.push({name:E,oldHash:R,newHash:k.hash,ok:l})}}else if(n.tags){let b=await ge(s,"refs/tags");for(let k of b){let E=u.get(k.name)??null;E!==k.hash&&m.push({name:k.name,oldHash:E,newHash:k.hash,ok:l})}}else if(h&&h.length>0)for(let b of h){let k=dr(b),E=await Xp(s,k.src);if(!E)return L(`error: src refspec '${k.src}' does not match any
573
- `);let R=k.dst.startsWith("refs/")?k.dst:`refs/heads/${k.dst}`,P=u.get(R)??null;m.push({name:R,oldHash:P,newHash:E,ok:l||k.force})}else{let b=await Q(s);if(!b||b.type!=="symbolic")return I("You are not currently on a branch.");let k=b.target,E=k.startsWith("refs/heads/")?k.slice(11):k,R=await Z(s);if(!R)return L(`error: src refspec does not match any
574
- `);let P=(await ke(s,"push.default"))?.toLowerCase()??"simple",C=await Yp(s,P,k,E,R,i,u,l);if("exitCode"in C)return C;m.push(C)}if(m.length===0)return{stdout:`Everything up-to-date
573
+ ${sd}`,stderr:"",exitCode:0}}})}se();Ne();dt();ue();function vl(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:$().alias("f").describe("Force push"),"set-upstream":$().alias("u").describe("Set upstream tracking reference"),all:$().describe("Push all branches"),delete:$().alias("d").describe("Delete remote refs"),tags:$().describe("Push all tags")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.remote||"origin",a;try{a=await vr(s,i,r.env)}catch(b){let k=b instanceof Error?b.message:"";if(k.startsWith("network"))return I(k);throw b}if(!a)return I(`'${i}' does not appear to be a git repository`);let{transport:c,config:f}=a,l=n.force,d=await c.advertiseRefs(),u=new Map;for(let b of d)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 k of b){let E=k.startsWith("refs/")?k:`refs/heads/${k}`,R=u.get(E)??null;if(!R)return L(`error: unable to delete '${k}': remote ref does not exist
574
+ `);m.push({name:E,oldHash:R,newHash:te,ok:l})}}else if(n.all){let b=await ge(s,"refs/heads");for(let k of b){let E=k.name,R=u.get(E)??null;m.push({name:E,oldHash:R,newHash:k.hash,ok:l})}}else if(n.tags){let b=await ge(s,"refs/tags");for(let k of b){let E=u.get(k.name)??null;E!==k.hash&&m.push({name:k.name,oldHash:E,newHash:k.hash,ok:l})}}else if(h&&h.length>0)for(let b of h){let k=ur(b),E=await Qp(s,k.src);if(!E)return L(`error: src refspec '${k.src}' does not match any
575
+ `);let R=k.dst.startsWith("refs/")?k.dst:`refs/heads/${k.dst}`,C=u.get(R)??null;m.push({name:R,oldHash:C,newHash:E,ok:l||k.force})}else{let b=await Q(s);if(!b||b.type!=="symbolic")return I("You are not currently on a branch.");let k=b.target,E=k.startsWith("refs/heads/")?k.slice(11):k,R=await Z(s);if(!R)return L(`error: src refspec does not match any
576
+ `);let C=(await ke(s,"push.default"))?.toLowerCase()??"simple",P=await Jp(s,C,k,E,R,i,u,l);if("exitCode"in P)return P;m.push(P)}if(m.length===0)return{stdout:`Everything up-to-date
575
577
  `,stderr:"",exitCode:0};let p=await t?.hooks?.prePush?.({repo:s,remote:i,url:f.url,refs:m.map(b=>({srcRef:b.newHash===te?null:b.name,srcHash:b.newHash===te?null:b.newHash,dstRef:b.name,dstHash:b.oldHash,force:!!b.ok,delete:b.newHash===te}))});if(ee(p))return L(p.message??"");let g=await c.push(m),w=[];w.push(`To ${f.url}
576
578
  `);let y=!1;for(let b of g.updates){let k=b.name.startsWith("refs/heads/")?b.name.slice(11):b.name;if(!b.ok)w.push(` ! [rejected] ${k} -> ${k} (${b.error??"failed"})
577
579
  `),y=!0;else if(!b.oldHash)w.push(` * [new branch] ${k} -> ${k}
578
580
  `);else if(b.newHash===te)w.push(` - [deleted] ${k}
579
581
  `);else{let E=Y(b.oldHash),R=Y(b.newHash);w.push(` ${E}..${R} ${k} -> ${k}
580
582
  `)}}if(n["set-upstream"]&&!y){let b=await Q(s);if(b?.type==="symbolic"){let k=b.target.startsWith("refs/heads/")?b.target.slice(11):b.target,E=await he(s);E[`branch "${k}"`]={remote:i,merge:`refs/heads/${k}`},await Ye(s,E),w.push(`branch '${k}' set up to track '${i}/${k}'.
581
- `)}}let x={stdout:"",stderr:w.join(""),exitCode:y?1:0};return y||await t?.hooks?.postPush?.({repo:s,remote:i,url:f.url,refs:m.map(b=>({srcRef:b.newHash===te?null:b.name,srcHash:b.newHash===te?null:b.newHash,dstRef:b.name,dstHash:b.oldHash,force:!!b.ok,delete:b.newHash===te}))}),x}})}async function Yp(e,t,n,r,o,s,i,a){if(t==="nothing")return I(`You didn't specify any refspecs to push, and push.default is "nothing".`);if(t==="current")return{name:n,oldHash:i.get(n)??null,newHash:o,ok:a};if(t==="upstream"){let d=(await he(e))[`branch "${r}"`];if(!d?.remote||!d?.merge)return I(`The current branch ${r} has no upstream branch.
583
+ `)}}let x={stdout:"",stderr:w.join(""),exitCode:y?1:0};return y||await t?.hooks?.postPush?.({repo:s,remote:i,url:f.url,refs:m.map(b=>({srcRef:b.newHash===te?null:b.name,srcHash:b.newHash===te?null:b.newHash,dstRef:b.name,dstHash:b.oldHash,force:!!b.ok,delete:b.newHash===te}))}),x}})}async function Jp(e,t,n,r,o,s,i,a){if(t==="nothing")return I(`You didn't specify any refspecs to push, and push.default is "nothing".`);if(t==="current")return{name:n,oldHash:i.get(n)??null,newHash:o,ok:a};if(t==="upstream"){let d=(await he(e))[`branch "${r}"`];if(!d?.remote||!d?.merge)return I(`The current branch ${r} has no upstream branch.
582
584
  To push the current branch and set the remote as upstream, use
583
585
 
584
586
  git push --set-upstream ${s} ${r}
@@ -591,42 +593,42 @@ on the remote, use
591
593
  To push to the branch of the same name on the remote, use
592
594
 
593
595
  git push ${s} HEAD
594
- `):{name:d,oldHash:i.get(d)??null,newHash:o,ok:a}}return{name:n,oldHash:i.get(n)??null,newHash:o,ok:a}}async function Xp(e,t){if(t.startsWith("refs/"))return F(e,t);let n=await F(e,`refs/heads/${t}`);if(n)return n;let r=await F(e,`refs/tags/${t}`);return r||(t==="HEAD"?Z(e):null)}se();le();Fe();ue();function Zp(e,t,n,r){return`${Y(n)} ${e}@{${t}}: ${r}`}async function Do(e,t,n){let r=t==="HEAD"?"HEAD":`refs/heads/${t}`;if(!await F(e,r))return{stdout:"",stderr:`fatal: ambiguous argument '${t}': unknown revision or path not in the working tree.
596
+ `):{name:d,oldHash:i.get(d)??null,newHash:o,ok:a}}return{name:n,oldHash:i.get(n)??null,newHash:o,ok:a}}async function Qp(e,t){if(t.startsWith("refs/"))return F(e,t);let n=await F(e,`refs/heads/${t}`);if(n)return n;let r=await F(e,`refs/tags/${t}`);return r||(t==="HEAD"?Z(e):null)}se();le();Fe();ue();function eg(e,t,n,r){return`${Y(n)} ${e}@{${t}}: ${r}`}async function Do(e,t,n){let r=t==="HEAD"?"HEAD":`refs/heads/${t}`;if(!await F(e,r))return{stdout:"",stderr:`fatal: ambiguous argument '${t}': unknown revision or path not in the working tree.
595
597
  Use '--' to separate paths from revisions, like this:
596
598
  'git <command> [<revision>...] -- [<file>...]'
597
- `,exitCode:128};let s=await Je(e,r),i=[],a=n!==void 0?n:s.length,c=0;for(let l=s.length-1;l>=0&&c<a;l--){let d=s[l];if(!d)continue;let u=s.length-1-l;d.newHash!==te&&(i.push(Zp(t,u,d.newHash,d.message)),c++)}return{stdout:i.length>0?`${i.join(`
599
+ `,exitCode:128};let s=await Je(e,r),i=[],a=n!==void 0?n:s.length,c=0;for(let l=s.length-1;l>=0&&c<a;l--){let d=s[l];if(!d)continue;let u=s.length-1-l;d.newHash!==te&&(i.push(eg(t,u,d.newHash,d.message)),c++)}return{stdout:i.length>0?`${i.join(`
598
600
  `)}
599
- `:"",stderr:"",exitCode:0}}function Al(e,t){return e.command("reflog",{description:"Manage reflog information",args:[q.string().name("args").variadic().optional()],options:{maxCount:J.number().alias("n").describe("Limit the number of entries to output")},handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=s,a=r.args;if(a.length===0)return Do(i,"HEAD",r.maxCount);let c=a[0];if(!c)return Do(i,"HEAD",r.maxCount);if(c==="show"){let f=a[1]??"HEAD";return Do(i,f,r.maxCount)}if(c==="exists"){let f=a[1];if(!f)return{stdout:"",stderr:`fatal: reflog exists requires a ref argument
600
- `,exitCode:128};let l=T(i.gitDir,"logs",f);return{stdout:"",stderr:"",exitCode:await i.fs.exists(l)?0:1}}return Do(i,c,r.maxCount)}})}se();Ne();Fe();ue();function Jp(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 Dl(e,t){let n=e.command("remote",{description:"Manage set of tracked repositories",options:{verbose:S().alias("v").describe("Show remote URLs")},handler:async(s,i)=>{let a=await W(i.fs,i.cwd,t);if(M(a))return a;let c=await he(a),f=Jp(c);if(f.length===0)return{stdout:"",stderr:"",exitCode:0};if(s.verbose){let l=[];for(let d of f){let m=c[`remote "${d}"`]?.url??"";l.push(`${d} ${m} (fetch)`),l.push(`${d} ${m} (push)`)}return{stdout:`${l.join(`
601
+ `:"",stderr:"",exitCode:0}}function Hl(e,t){return e.command("reflog",{description:"Manage reflog information",args:[q.string().name("args").variadic().optional()],options:{maxCount:J.number().alias("n").describe("Limit the number of entries to output")},handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=s,a=r.args;if(a.length===0)return Do(i,"HEAD",r.maxCount);let c=a[0];if(!c)return Do(i,"HEAD",r.maxCount);if(c==="show"){let f=a[1]??"HEAD";return Do(i,f,r.maxCount)}if(c==="exists"){let f=a[1];if(!f)return{stdout:"",stderr:`fatal: reflog exists requires a ref argument
602
+ `,exitCode:128};let l=T(i.gitDir,"logs",f);return{stdout:"",stderr:"",exitCode:await i.fs.exists(l)?0:1}}return Do(i,c,r.maxCount)}})}se();Ne();Fe();ue();function tg(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 Al(e,t){let n=e.command("remote",{description:"Manage set of tracked repositories",options:{verbose:$().alias("v").describe("Show remote URLs")},handler:async(s,i)=>{let a=await W(i.fs,i.cwd,t);if(M(a))return a;let c=await he(a),f=tg(c);if(f.length===0)return{stdout:"",stderr:"",exitCode:0};if(s.verbose){let l=[];for(let d of f){let m=c[`remote "${d}"`]?.url??"";l.push(`${d} ${m} (fetch)`),l.push(`${d} ${m} (push)`)}return{stdout:`${l.join(`
601
603
  `)}
602
604
  `,stderr:"",exitCode:0}}return{stdout:`${f.join(`
603
605
  `)}
604
606
  `,stderr:"",exitCode:0}}});n.command("add",{description:"Add a remote named <name> for the repository at <url>",args:[q.string().name("name").describe("Remote name"),q.string().name("url").describe("Remote URL")],handler:async(s,i)=>{let a=await W(i.fs,i.cwd,t);if(M(a))return a;let c=await he(a),f=`remote "${s.name}"`;return f in c?L(`error: remote ${s.name} already exists.
605
- `,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 W(i.fs,i.cwd,t);if(M(a))return a;let c=await he(a),f=`remote "${s.name}"`;return f in c?(delete c[f],eg(c,s.name),await Ye(a,c),await tg(a,s.name),{stdout:"",stderr:"",exitCode:0}):L(`error: No such remote: '${s.name}'
606
- `,2)},o=[q.string().name("name").describe("Remote name")];n.command("remove",{description:"Remove the remote named <name>",args:o,handler:r}),n.command("rm",{description:"Remove the remote named <name>",args:o,handler:r}),n.command("rename",{description:"Rename the remote named <old> to <new>",args:[q.string().name("old").describe("Current remote name"),q.string().name("new").describe("New remote name")],handler:async(s,i)=>{let a=await W(i.fs,i.cwd,t);if(M(a))return a;let c=await he(a);return Qp(a,c,s.old,s.new)}}),n.command("set-url",{description:"Change the URL for an existing remote",args:[q.string().name("name").describe("Remote name"),q.string().name("url").describe("New remote URL")],handler:async(s,i)=>{let a=await W(i.fs,i.cwd,t);if(M(a))return a;let c=await he(a),f=`remote "${s.name}"`;if(!(f in c))return L(`error: No such remote '${s.name}'
607
+ `,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 W(i.fs,i.cwd,t);if(M(a))return a;let c=await he(a),f=`remote "${s.name}"`;return f in c?(delete c[f],rg(c,s.name),await Ye(a,c),await sg(a,s.name),{stdout:"",stderr:"",exitCode:0}):L(`error: No such remote: '${s.name}'
608
+ `,2)},o=[q.string().name("name").describe("Remote name")];n.command("remove",{description:"Remove the remote named <name>",args:o,handler:r}),n.command("rm",{description:"Remove the remote named <name>",args:o,handler:r}),n.command("rename",{description:"Rename the remote named <old> to <new>",args:[q.string().name("old").describe("Current remote name"),q.string().name("new").describe("New remote name")],handler:async(s,i)=>{let a=await W(i.fs,i.cwd,t);if(M(a))return a;let c=await he(a);return ng(a,c,s.old,s.new)}}),n.command("set-url",{description:"Change the URL for an existing remote",args:[q.string().name("name").describe("Remote name"),q.string().name("url").describe("New remote URL")],handler:async(s,i)=>{let a=await W(i.fs,i.cwd,t);if(M(a))return a;let c=await he(a),f=`remote "${s.name}"`;if(!(f in c))return L(`error: No such remote '${s.name}'
607
609
  `,2);let l=c[f];return l&&(l.url=s.url),await Ye(a,c),{stdout:"",stderr:"",exitCode:0}}}),n.command("get-url",{description:"Retrieve the URL for an existing remote",args:[q.string().name("name").describe("Remote name")],handler:async(s,i)=>{let a=await W(i.fs,i.cwd,t);if(M(a))return a;let c=await he(a),f=`remote "${s.name}"`;return f in c?{stdout:`${c[f]?.url??""}
608
610
  `,stderr:"",exitCode:0}:L(`error: No such remote '${s.name}'
609
- `,2)}})}async function Qp(e,t,n,r){let o=`remote "${n}"`;if(!(o in t))return L(`error: No such remote: '${n}'
610
- `,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 ge(e,a);for(let f of c){let l=f.name.replace(a,`refs/remotes/${r}`),d=await Je(e,f.name);await X(e,l,f.hash),await de(e,f.name),d.length>0&&await Tn(e,l,d)}return{stdout:"",stderr:"",exitCode:0}}function eg(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 tg(e,t){let n=`refs/remotes/${t}`,r=await ge(e,n);for(let o of r)await de(e,o.name)}se();Pe();ie();le();Fe();ue();hn();ve();sn();tt();function jl(e,t){e.command("reset",{description:"Reset current HEAD to the specified state",args:[q.string().name("args").variadic().optional()],options:{soft:S().describe("Only move HEAD"),mixed:S().describe("Move HEAD and reset index (default)"),hard:S().describe("Move HEAD, reset index, and reset working tree")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.args;if([n.soft,n.mixed,n.hard].filter(Boolean).length>1)return I("--soft, --mixed, and --hard are mutually exclusive");let f=n.soft||n.mixed||n.hard,l=ut(i,r.cwd);if(o.passthrough.length>0){let m=a.length>0?a[0]:void 0;return aa(i,o.passthrough,l,m,t)}if(!f&&a.length>0){let m=a[0],h=await Be(i,m);return a.length===1&&h?Ml(i,m,"mixed",r.env,t):h?aa(i,a.slice(1),l,m,t):aa(i,a,l,void 0,t)}let d=n.soft?"soft":n.hard?"hard":"mixed",u=a.length>0?a[0]:"HEAD";return Ml(i,u,d,r.env,t)}})}async function aa(e,t,n,r,o){let s=await o?.hooks?.preReset?.({repo:e,mode:"paths",target:r??null});if(ee(s))return{stdout:"",stderr:s.message??"",exitCode:1};let i=null;if(r){let d=await Be(e,r);if(!d)return Vt(r);let u=await _e(e,d);i=(await j(e,u)).tree}else{let d=await Z(e);d&&(i=(await j(e,d)).tree)}let a=await ce(e,i??null),c=await K(e);if(t.some(nr)){let d=t.map(m=>Ue(m,n)),u=new Set;for(let[m]of a)u.add(m);for(let m of c.entries)u.add(m.path);for(let m of u){if(!ye(d,m))continue;let h=a.get(m);h?c=yt(c,{path:h.path,mode:parseInt(h.mode,8),hash:h.hash,stage:0,stat:Ie()}):c=at(c,m)}}else for(let d of t){let u=a.get(d);if(u)c=yt(c,{path:u.path,mode:parseInt(u.mode,8),hash:u.hash,stage:0,stat:Ie()});else if(c.entries.some(h=>h.path===d))c=at(c,d);else if(!(e.workTree&&await e.fs.exists(T(e.workTree,d))))return Vt(d)}await ae(e,c);let l={stdout:await Gl(e,c),stderr:"",exitCode:0};return await o?.hooks?.postReset?.({repo:e,mode:"paths",targetHash:null}),l}async function Gl(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 Tt(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(`
611
+ `,2)}})}async function ng(e,t,n,r){let o=`remote "${n}"`;if(!(o in t))return L(`error: No such remote: '${n}'
612
+ `,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 ge(e,a);for(let f of c){let l=f.name.replace(a,`refs/remotes/${r}`),d=await Je(e,f.name);await X(e,l,f.hash),await de(e,f.name),d.length>0&&await Tn(e,l,d)}return{stdout:"",stderr:"",exitCode:0}}function rg(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 sg(e,t){let n=`refs/remotes/${t}`,r=await ge(e,n);for(let o of r)await de(e,o.name)}se();Ce();ie();le();Fe();ue();hn();ve();sn();tt();function Ml(e,t){e.command("reset",{description:"Reset current HEAD to the specified state",args:[q.string().name("args").variadic().optional()],options:{soft:$().describe("Only move HEAD"),mixed:$().describe("Move HEAD and reset index (default)"),hard:$().describe("Move HEAD, reset index, and reset working tree")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.args;if([n.soft,n.mixed,n.hard].filter(Boolean).length>1)return I("--soft, --mixed, and --hard are mutually exclusive");let f=n.soft||n.mixed||n.hard,l=mt(i,r.cwd);if(o.passthrough.length>0){let m=a.length>0?a[0]:void 0;return aa(i,o.passthrough,l,m,t)}if(!f&&a.length>0){let m=a[0],h=await Be(i,m);return a.length===1&&h?Dl(i,m,"mixed",r.env,t):h?aa(i,a.slice(1),l,m,t):aa(i,a,l,void 0,t)}let d=n.soft?"soft":n.hard?"hard":"mixed",u=a.length>0?a[0]:"HEAD";return Dl(i,u,d,r.env,t)}})}async function aa(e,t,n,r,o){let s=await o?.hooks?.preReset?.({repo:e,mode:"paths",target:r??null});if(ee(s))return{stdout:"",stderr:s.message??"",exitCode:1};let i=null;if(r){let d=await Be(e,r);if(!d)return Vt(r);let u=await _e(e,d);i=(await j(e,u)).tree}else{let d=await Z(e);d&&(i=(await j(e,d)).tree)}let a=await ce(e,i??null),c=await K(e);if(t.some(nr)){let d=t.map(m=>Ue(m,n)),u=new Set;for(let[m]of a)u.add(m);for(let m of c.entries)u.add(m.path);for(let m of u){if(!ye(d,m))continue;let h=a.get(m);h?c=Et(c,{path:h.path,mode:parseInt(h.mode,8),hash:h.hash,stage:0,stat:Ie()}):c=at(c,m)}}else for(let d of t){let u=a.get(d);if(u)c=Et(c,{path:u.path,mode:parseInt(u.mode,8),hash:u.hash,stage:0,stat:Ie()});else if(c.entries.some(h=>h.path===d))c=at(c,d);else if(!(e.workTree&&await e.fs.exists(T(e.workTree,d))))return Vt(d)}await ae(e,c);let l={stdout:await jl(e,c),stderr:"",exitCode:0};return await o?.hooks?.postReset?.({repo:e,mode:"paths",targetHash:null}),l}async function jl(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 Tt(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(`
611
613
  `)}
612
- `}async function Ml(e,t,n,r,o){let s=await o?.hooks?.preReset?.({repo:e,mode:n,target:t});if(ee(s))return{stdout:"",stderr:s.message??"",exitCode:1};let i=await Be(e,t);if(!i)return Vt(t);let a=await _e(e,i),c=await j(e,a);if(n==="soft"){let m=await F(e,"MERGE_HEAD"),h=await K(e);if(m||$t(h))return I("Cannot do a soft reset in the middle of a merge.")}let f=await Z(e),l=await Q(e);l?.type==="symbolic"?await X(e,l.target,a):await X(e,"HEAD",a);let d=`reset: moving to ${t}`;if(l?.type==="symbolic"&&f!==a?await re(e,r,l.target,f,a,d,!0):(l?.type==="symbolic"||f!==a)&&await re(e,r,"HEAD",f,a,d),await sr(e),n==="mixed"){let m=await Ve(e,c.tree),h=vs(m.map(g=>({path:g.path,mode:parseInt(g.mode,8),hash:g.hash,stage:0,stat:Ie()})));await ae(e,h);let p=await Gl(e,h);if(p)return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:p,stderr:"",exitCode:0}}if(n==="hard"){let m=Xe(e);if(m)return m;let h=await K(e),p=await gn(e,c.tree,h);await ae(e,{version:2,entries:p.newEntries}),await De(e,p.worktreeOps)}let u=n==="hard"?`HEAD is now at ${Y(a)} ${fe(c.message)}
613
- `:"";return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:u,stderr:"",exitCode:0}}se();Pe();ie();ue();ve();tt();function Ll(e,t){e.command("restore",{description:"Restore working tree files",args:[q.string().name("pathspec").variadic().optional()],options:{source:J.string().alias("s").describe("Restore from tree-ish"),staged:S().alias("S").describe("Restore the index"),worktree:S().alias("W").describe("Restore the working tree (default)"),ours:S().describe("Checkout our version for unmerged files"),theirs:S().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(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,l=ut(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"):io(i,a,l,n.theirs?3:2,{deleteOnMissing:!0});let d=null;if(n.source){let u=await He(i,n.source,`could not resolve '${n.source}'`);if(M(u))return u;d=u.commit.tree}else if(c){let u=await Z(i);u&&(d=(await j(i,u)).tree)}return c&&f?sg(i,a,l,d):c?ng(i,a,l,d):d?rg(i,a,l,d):oo(i,a,l)}})}async function ng(e,t,n,r){let o=await ce(e,r),s=await K(e),i=t.map(f=>Ue(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 l=o.get(f);if(l)s=yt(s,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:Ie()});else{if(s.entries.some(u=>u.path===f&&u.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
614
+ `}async function Dl(e,t,n,r,o){let s=await o?.hooks?.preReset?.({repo:e,mode:n,target:t});if(ee(s))return{stdout:"",stderr:s.message??"",exitCode:1};let i=await Be(e,t);if(!i)return Vt(t);let a=await _e(e,i),c=await j(e,a);if(n==="soft"){let m=await F(e,"MERGE_HEAD"),h=await K(e);if(m||St(h))return I("Cannot do a soft reset in the middle of a merge.")}let f=await Z(e),l=await Q(e);l?.type==="symbolic"?await X(e,l.target,a):await X(e,"HEAD",a);let d=`reset: moving to ${t}`;if(l?.type==="symbolic"&&f!==a?await re(e,r,l.target,f,a,d,!0):(l?.type==="symbolic"||f!==a)&&await re(e,r,"HEAD",f,a,d),await sr(e),n==="mixed"){let m=await Ve(e,c.tree),h=vs(m.map(g=>({path:g.path,mode:parseInt(g.mode,8),hash:g.hash,stage:0,stat:Ie()})));await ae(e,h);let p=await jl(e,h);if(p)return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:p,stderr:"",exitCode:0}}if(n==="hard"){let m=Xe(e);if(m)return m;let h=await K(e),p=await gn(e,c.tree,h);await ae(e,{version:2,entries:p.newEntries}),await Me(e,p.worktreeOps)}let u=n==="hard"?`HEAD is now at ${Y(a)} ${fe(c.message)}
615
+ `:"";return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:u,stderr:"",exitCode:0}}se();Ce();ie();ue();ve();tt();function Gl(e,t){e.command("restore",{description:"Restore working tree files",args:[q.string().name("pathspec").variadic().optional()],options:{source:J.string().alias("s").describe("Restore from tree-ish"),staged:$().alias("S").describe("Restore the index"),worktree:$().alias("W").describe("Restore the working tree (default)"),ours:$().describe("Checkout our version for unmerged files"),theirs:$().describe("Checkout their version for unmerged files")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(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,l=mt(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"):io(i,a,l,n.theirs?3:2,{deleteOnMissing:!0});let d=null;if(n.source){let u=await He(i,n.source,`could not resolve '${n.source}'`);if(M(u))return u;d=u.commit.tree}else if(c){let u=await Z(i);u&&(d=(await j(i,u)).tree)}return c&&f?ag(i,a,l,d):c?og(i,a,l,d):d?ig(i,a,l,d):oo(i,a,l)}})}async function og(e,t,n,r){let o=await ce(e,r),s=await K(e),i=t.map(f=>Ue(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 l=o.get(f);if(l)s=Et(s,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:Ie()});else{if(s.entries.some(u=>u.path===f&&u.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
614
616
  `,exitCode:1};s=at(s,f)}}return c?(await ae(e,s),{stdout:"",stderr:"",exitCode:0}):L(`error: pathspec '${t[0]}' did not match any file(s) known to git
615
- `)}async function rg(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");let o=await ce(e,r),s=t.map(f=>Ue(f,n)),i=[],a=await K(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(d=>d.path===f&&d.stage!==0))return{stdout:"",stderr:`error: path '${f}' is unmerged
617
+ `)}async function ig(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");let o=await ce(e,r),s=t.map(f=>Ue(f,n)),i=[],a=await K(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(d=>d.path===f&&d.stage!==0))return{stdout:"",stderr:`error: path '${f}' is unmerged
616
618
  `,exitCode:1};i.push(f)}if(i.length===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
617
- `);for(let f of i){let l=o.get(f);if(l)await ct(e,{path:l.path,hash:l.hash,mode:l.mode});else{let d=`${e.workTree}/${f}`;await e.fs.exists(d)&&await e.fs.rm(d)}}return{stdout:"",stderr:"",exitCode:0}}async function sg(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");let o=await ce(e,r),s=await K(e),i=t.map(f=>Ue(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 L(`error: pathspec '${t[0]}' did not match any file(s) known to git
618
- `);for(let f of a){let l=o.get(f);if(l)s=yt(s,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:Ie()}),await ct(e,{path:l.path,hash:l.hash,mode:l.mode});else{if(s.entries.some(m=>m.path===f&&m.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
619
- `,exitCode:1};s=at(s,f);let u=`${e.workTree}/${f}`;await e.fs.exists(u)&&await e.fs.rm(u)}}return await ae(e,s),{stdout:"",stderr:"",exitCode:0}}se();ie();le();ue();hn();ve();function _l(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:S().describe("Verify that exactly one parameter is provided and resolves to an object"),short:S().describe("Abbreviate object name (default 7 chars)"),"abbrev-ref":S().describe("Output abbreviated ref name instead of object hash"),"symbolic-full-name":S().describe("Output the full symbolic ref name"),"show-toplevel":S().describe("Show the absolute path of the top-level directory"),"git-dir":S().describe("Show the path to the .git directory"),"is-inside-work-tree":S().describe("Output whether cwd is inside the work tree"),"is-bare-repository":S().describe("Output whether the repository is bare"),"show-prefix":S().describe("Show path of cwd relative to top-level directory"),"show-cdup":S().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,i=n.short,a=n["abbrev-ref"],c=n["symbolic-full-name"],f=n["show-toplevel"],l=n["git-dir"],d=n["is-inside-work-tree"],u=n["is-bare-repository"],m=n["show-prefix"],h=n["show-cdup"],p=f||l||d||u||m||h,g=await W(r.fs,r.cwd,t);if(M(g))return g;let w=g,y=[];if(f){if(!w.workTree)return I("this operation must be run in a work tree");y.push(w.workTree)}if(l&&y.push(w.gitDir),d&&y.push(w.workTree?"true":"false"),u&&y.push(w.workTree?"false":"true"),m){if(!w.workTree)return I("this operation must be run in a work tree");let b=ft(w.workTree,r.cwd);y.push(b===""?"":`${b}/`)}if(h){if(!w.workTree)return I("this operation must be run in a work tree");let b=ft(r.cwd,w.workTree);y.push(b===""?"":`${b}/`)}if(p&&o.length===0)return{stdout:y.map(k=>`${k}
620
- `).join(""),stderr:"",exitCode:0};if(s&&o.length!==1)return I("Needed a single revision");for(let b of o){if(a){let R=await og(w,b);if(R===null)return ca(b,s);y.push(R);continue}if(c){let R=await ig(w,b);if(R===null)return ca(b,s);y.push(R);continue}let k=_s(b);if(k){let R=await ag(w,k.rev,k.path);if(R===null){let P=k.path.replace(/^\//,"");return I(`path '${P}' does not exist in '${k.rev}'`)}y.push(i?Y(R):R);continue}let E=await Be(w,b);if(!E)return ca(b,s);y.push(i?Y(E):E)}return{stdout:y.map(b=>`${b}
621
- `).join(""),stderr:"",exitCode:0}}})}function ca(e,t){return t?I("Needed a single revision"):Vt(e)}async function og(e,t){if(t==="HEAD"||t==="@"){let r=await Q(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 ig(e,t){if(t==="HEAD"||t==="@"){let r=await Q(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 F(e,o))return o}return t}async function ag(e,t,n){let r=await Be(e,t);if(!r)return null;let o=await j(e,r),s=n.replace(/^\//,"");return s===""?o.tree:(await ce(e,o.tree)).get(s)?.hash??null}se();Ne();Pe();ie();Fe();ue();ve();function Nl(e,t){e.command("revert",{description:"Revert some existing commits",args:[q.string().name("commit").describe("The commit to revert").optional()],options:{abort:S().describe("Abort the current revert operation"),continue:S().describe("Continue the revert after conflict resolution"),"no-commit":S().alias("n").describe("Apply changes without creating a commit"),"no-edit":S().describe("Do not edit the commit message"),mainline:J.number().alias("m").describe("Select the parent number for reverting merges")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort){let z=await t?.hooks?.preRevert?.({repo:s,mode:"abort",commit:null});if(ee(z))return{stdout:"",stderr:z.message??"",exitCode:1};let _=await cg(s,r.env);return _.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),_}if(n.continue){let z=await t?.hooks?.preRevert?.({repo:s,mode:"continue",commit:null});if(ee(z))return{stdout:"",stderr:z.message??"",exitCode:1};let _=await fg(s,r.env);return _.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"continue",commitHash:null,hadConflicts:!1}),_}let i=n.commit;if(!i)return I("you must specify a commit to revert");let a=await t?.hooks?.preRevert?.({repo:s,mode:"revert",commit:i});if(ee(a))return{stdout:"",stderr:a.message??"",exitCode:1};let c=await He(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Ze(s);if(M(d))return d;let u=await K(s),m=wn(u,"Reverting",`fatal: revert failed
622
- `);if(m)return m;let h=await j(s,d);if(s.workTree){let z=await ce(s,h.tree);if(yr(u,z))return L(`error: your local changes would be overwritten by revert.
619
+ `);for(let f of i){let l=o.get(f);if(l)await ct(e,{path:l.path,hash:l.hash,mode:l.mode});else{let d=`${e.workTree}/${f}`;await e.fs.exists(d)&&await e.fs.rm(d)}}return{stdout:"",stderr:"",exitCode:0}}async function ag(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");let o=await ce(e,r),s=await K(e),i=t.map(f=>Ue(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 L(`error: pathspec '${t[0]}' did not match any file(s) known to git
620
+ `);for(let f of a){let l=o.get(f);if(l)s=Et(s,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:Ie()}),await ct(e,{path:l.path,hash:l.hash,mode:l.mode});else{if(s.entries.some(m=>m.path===f&&m.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
621
+ `,exitCode:1};s=at(s,f);let u=`${e.workTree}/${f}`;await e.fs.exists(u)&&await e.fs.rm(u)}}return await ae(e,s),{stdout:"",stderr:"",exitCode:0}}se();ie();le();ue();hn();ve();function Ll(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:$().describe("Verify that exactly one parameter is provided and resolves to an object"),short:$().describe("Abbreviate object name (default 7 chars)"),"abbrev-ref":$().describe("Output abbreviated ref name instead of object hash"),"symbolic-full-name":$().describe("Output the full symbolic ref name"),"show-toplevel":$().describe("Show the absolute path of the top-level directory"),"git-dir":$().describe("Show the path to the .git directory"),"is-inside-work-tree":$().describe("Output whether cwd is inside the work tree"),"is-bare-repository":$().describe("Output whether the repository is bare"),"show-prefix":$().describe("Show path of cwd relative to top-level directory"),"show-cdup":$().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,i=n.short,a=n["abbrev-ref"],c=n["symbolic-full-name"],f=n["show-toplevel"],l=n["git-dir"],d=n["is-inside-work-tree"],u=n["is-bare-repository"],m=n["show-prefix"],h=n["show-cdup"],p=f||l||d||u||m||h,g=await W(r.fs,r.cwd,t);if(M(g))return g;let w=g,y=[];if(f){if(!w.workTree)return I("this operation must be run in a work tree");y.push(w.workTree)}if(l&&y.push(w.gitDir),d&&y.push(w.workTree?"true":"false"),u&&y.push(w.workTree?"false":"true"),m){if(!w.workTree)return I("this operation must be run in a work tree");let b=ft(w.workTree,r.cwd);y.push(b===""?"":`${b}/`)}if(h){if(!w.workTree)return I("this operation must be run in a work tree");let b=ft(r.cwd,w.workTree);y.push(b===""?"":`${b}/`)}if(p&&o.length===0)return{stdout:y.map(k=>`${k}
622
+ `).join(""),stderr:"",exitCode:0};if(s&&o.length!==1)return I("Needed a single revision");for(let b of o){if(a){let R=await cg(w,b);if(R===null)return ca(b,s);y.push(R);continue}if(c){let R=await fg(w,b);if(R===null)return ca(b,s);y.push(R);continue}let k=_s(b);if(k){let R=await lg(w,k.rev,k.path);if(R===null){let C=k.path.replace(/^\//,"");return I(`path '${C}' does not exist in '${k.rev}'`)}y.push(i?Y(R):R);continue}let E=await Be(w,b);if(!E)return ca(b,s);y.push(i?Y(E):E)}return{stdout:y.map(b=>`${b}
623
+ `).join(""),stderr:"",exitCode:0}}})}function ca(e,t){return t?I("Needed a single revision"):Vt(e)}async function cg(e,t){if(t==="HEAD"||t==="@"){let r=await Q(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 fg(e,t){if(t==="HEAD"||t==="@"){let r=await Q(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 F(e,o))return o}return t}async function lg(e,t,n){let r=await Be(e,t);if(!r)return null;let o=await j(e,r),s=n.replace(/^\//,"");return s===""?o.tree:(await ce(e,o.tree)).get(s)?.hash??null}se();Ne();Ce();ie();Fe();ue();ve();function _l(e,t){e.command("revert",{description:"Revert some existing commits",args:[q.string().name("commit").describe("The commit to revert").optional()],options:{abort:$().describe("Abort the current revert operation"),continue:$().describe("Continue the revert after conflict resolution"),"no-commit":$().alias("n").describe("Apply changes without creating a commit"),"no-edit":$().describe("Do not edit the commit message"),mainline:J.number().alias("m").describe("Select the parent number for reverting merges")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort){let z=await t?.hooks?.preRevert?.({repo:s,mode:"abort",commit:null});if(ee(z))return{stdout:"",stderr:z.message??"",exitCode:1};let _=await dg(s,r.env);return _.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),_}if(n.continue){let z=await t?.hooks?.preRevert?.({repo:s,mode:"continue",commit:null});if(ee(z))return{stdout:"",stderr:z.message??"",exitCode:1};let _=await ug(s,r.env);return _.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"continue",commitHash:null,hadConflicts:!1}),_}let i=n.commit;if(!i)return I("you must specify a commit to revert");let a=await t?.hooks?.preRevert?.({repo:s,mode:"revert",commit:i});if(ee(a))return{stdout:"",stderr:a.message??"",exitCode:1};let c=await He(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Ze(s);if(M(d))return d;let u=await K(s),m=wn(u,"Reverting",`fatal: revert failed
624
+ `);if(m)return m;let h=await j(s,d);if(s.workTree){let z=await ce(s,h.tree);if(Er(u,z))return L(`error: your local changes would be overwritten by revert.
623
625
  hint: commit your changes or stash them to proceed.
624
626
  fatal: revert failed
625
627
  `,128)}let p=n.mainline,g;if(l.parents.length>1){if(p===void 0)return L(`error: commit ${f} is a merge but no -m option was given.
626
628
  fatal: revert failed
627
629
  `,128);if(p<1||p>l.parents.length)return L(`error: commit ${f} does not have parent ${p}
628
630
  fatal: revert failed
629
- `,128);let z=l.parents[p-1];g=(await j(s,z)).tree}else if(l.parents.length===0)g=await Ge(s,[]);else{let z=l.parents[0];g=(await j(s,z)).tree}let w=Y(f),y=fe(l.message),x=lg(l,f,p),b=await ke(s,"merge.conflictstyle")??"merge",k={a:"HEAD",b:y?`parent of ${w} (${y})`:`parent of ${w}`,conflictStyle:b},E=await Ft(s,l.tree,h.tree,g,k);if(E.conflicts.length===0&&E.resultTree===h.tree){let z=E.messages.length>0?`${E.messages.join(`
631
+ `,128);let z=l.parents[p-1];g=(await j(s,z)).tree}else if(l.parents.length===0)g=await Ge(s,[]);else{let z=l.parents[0];g=(await j(s,z)).tree}let w=Y(f),y=fe(l.message),x=mg(l,f,p),b=await ke(s,"merge.conflictstyle")??"merge",k={a:"HEAD",b:y?`parent of ${w} (${y})`:`parent of ${w}`,conflictStyle:b},E=await Ft(s,l.tree,h.tree,g,k);if(E.conflicts.length===0&&E.resultTree===h.tree){let z=E.messages.length>0?`${E.messages.join(`
630
632
  `)}
631
633
  `:"",_=await rt(s,{fromCommit:!0}),U=await F(s,"CHERRY_PICK_HEAD");return{stdout:`${z}${_}`,stderr:U?`The previous cherry-pick is now empty, possibly due to conflict resolution.
632
634
  If you wish to commit it anyway, use:
@@ -644,28 +646,28 @@ hint: You can instead skip this commit with "git revert --skip".
644
646
  hint: To abort and get back to the state before "git revert",
645
647
  hint: run "git revert --abort".
646
648
  hint: Disable this message with "git config set advice.mergeConflict false"
647
- `,exitCode:1}}if(n["no-commit"])return await X(s,"REVERT_HEAD",f),await Te(s,"MERGE_MSG",x),{stdout:"",stderr:"",exitCode:0};let P=R.mergedTreeHash,C=await on(s,r.env);if(M(C))return C;let v=await Qe(s,r.env);if(M(v))return v;let D=await mt(s,P,[d],C,v,x);await jt(s),await Mt(s);let O=await Q(s),H=fe(x),G=O?.type==="symbolic"?O.target:"HEAD";await re(s,r.env,G,d,D,`revert: ${H}`,O?.type==="symbolic");let A=O?.type==="symbolic"?Re(O.target):"detached HEAD",$=await fn(s,h.tree,P,C,v,C.timestamp!==v.timestamp||C.timezone!==v.timezone),N=Ht(A,D,x),B=E.messages.length>0?`${E.messages.join(`
649
+ `,exitCode:1}}if(n["no-commit"])return await X(s,"REVERT_HEAD",f),await Te(s,"MERGE_MSG",x),{stdout:"",stderr:"",exitCode:0};let C=R.mergedTreeHash,P=await on(s,r.env);if(M(P))return P;let v=await Qe(s,r.env);if(M(v))return v;let D=await ht(s,C,[d],P,v,x);await jt(s),await Mt(s);let O=await Q(s),H=fe(x),G=O?.type==="symbolic"?O.target:"HEAD";await re(s,r.env,G,d,D,`revert: ${H}`,O?.type==="symbolic");let A=O?.type==="symbolic"?Re(O.target):"detached HEAD",S=await fn(s,h.tree,C,P,v,P.timestamp!==v.timestamp||P.timezone!==v.timezone),N=Ht(A,D,x),B=E.messages.length>0?`${E.messages.join(`
648
650
  `)}
649
651
  `:"";return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:D,hadConflicts:!1}),{stdout:`${B}${N}
650
- ${$}`,stderr:"",exitCode:0}}})}async function cg(e,t){return await F(e,"REVERT_HEAD")?Dn(e,t,{operationRef:"REVERT_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
652
+ ${S}`,stderr:"",exitCode:0}}})}async function dg(e,t){return await F(e,"REVERT_HEAD")?Dn(e,t,{operationRef:"REVERT_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
651
653
  fatal: revert failed
652
654
  `,128),operationName:"revert",clearState:async o=>{await jt(o),await Mt(o)},origHeadAsTargetRev:!0}):await F(e,"CHERRY_PICK_HEAD")?Dn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
653
655
  fatal: revert failed
654
656
  `,128),operationName:"revert",clearState:Mt,origHeadAsTargetRev:!0}):L(`error: no cherry-pick or revert in progress
655
657
  fatal: revert failed
656
- `,128)}async function fg(e,t){if(!await F(e,"REVERT_HEAD"))return L(`error: no cherry-pick or revert in progress
658
+ `,128)}async function ug(e,t){if(!await F(e,"REVERT_HEAD"))return L(`error: no cherry-pick or revert in progress
657
659
  fatal: revert failed
658
- `,128);let r=await K(e),o=wn(r,"Committing");if(o)return o;let s=await Ce(e,"MERGE_MSG");if(!s)return L(`Aborting commit due to empty commit message.
659
- `,1);let i=je(r),a=await Ge(e,i),c=await Ze(e);if(M(c))return c;let f=await j(e,c),l=await on(e,t);if(M(l))return l;let d=await Qe(e,t);if(M(d))return d;let u=await F(e,"CHERRY_PICK_HEAD");u&&(l=(await j(e,u)).author);let m=At(s),h=await mt(e,a,[c],l,d,m);await jt(e),await Mt(e);let p=await Q(e),g=fe(m),w=p?.type==="symbolic"?p.target:"HEAD";await re(e,t,w,c,h,`commit: ${g}`,p?.type==="symbolic");let y=p?.type==="symbolic"?Re(p.target):"detached HEAD",x=await fn(e,f.tree,a,l,d,l.timestamp!==d.timestamp||l.timezone!==d.timezone);return{stdout:`${Ht(y,h,s)}
660
- ${x}`,stderr:"",exitCode:0}}function lg(e,t,n){let r=fe(e.message),o='Revert "',a=`${r.startsWith(o)&&r.endsWith('"')?`Reapply "${r.slice(o.length,-1)}"`:`Revert "${r}"`}
660
+ `,128);let r=await K(e),o=wn(r,"Committing");if(o)return o;let s=await Pe(e,"MERGE_MSG");if(!s)return L(`Aborting commit due to empty commit message.
661
+ `,1);let i=De(r),a=await Ge(e,i),c=await Ze(e);if(M(c))return c;let f=await j(e,c),l=await on(e,t);if(M(l))return l;let d=await Qe(e,t);if(M(d))return d;let u=await F(e,"CHERRY_PICK_HEAD");u&&(l=(await j(e,u)).author);let m=At(s),h=await ht(e,a,[c],l,d,m);await jt(e),await Mt(e);let p=await Q(e),g=fe(m),w=p?.type==="symbolic"?p.target:"HEAD";await re(e,t,w,c,h,`commit: ${g}`,p?.type==="symbolic");let y=p?.type==="symbolic"?Re(p.target):"detached HEAD",x=await fn(e,f.tree,a,l,d,l.timestamp!==d.timestamp||l.timezone!==d.timezone);return{stdout:`${Ht(y,h,s)}
662
+ ${x}`,stderr:"",exitCode:0}}function mg(e,t,n){let r=fe(e.message),o='Revert "',a=`${r.startsWith(o)&&r.endsWith('"')?`Reapply "${r.slice(o.length,-1)}"`:`Revert "${r}"`}
661
663
 
662
664
  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
663
665
  changes made to ${c}`}return a+=`.
664
- `,a}se();Pe();ie();le();ue();Zn();ve();function Fl(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:S().describe("Only remove from the index"),recursive:S().alias("r").describe("Allow recursive removal when a directory name is given"),force:S().alias("f").describe("Override the up-to-date check"),dryRun:S().alias("n").describe("Don't actually remove any file(s)")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Xe(s);if(i)return i;let a=s.workTree,c=n.paths;if(c.length===0)return L("usage: git rm [--cached] [-f] [-r] <file>...");let f=n.cached,l=n.recursive,d=n.force,u=await t?.hooks?.preRm?.({repo:s,paths:c,cached:f,recursive:l,force:d});if(ee(u))return{stdout:"",stderr:u.message??"",exitCode:1};let m=await K(s),h=[],p=ut(s,r.cwd);for(let y of c){if(nr(y)){let E=[Ue(y,p)],R=m.entries.filter(P=>ye(E,P.path));if(R.length===0)return I(`pathspec '${y}' did not match any files`);for(let P of R)h.push(P.path);continue}let x=It(r.cwd,y),b=ft(a,x);if((b==="."||b==="")&&(b=""),b.startsWith(".."))return I(`'${y}' is outside repository at '${a}'`);if(await r.fs.exists(x)&&!(await lt(r.fs,x)).isSymbolicLink&&(await lt(r.fs,x)).isDirectory){if(!l)return I(`not removing '${b}' recursively without -r`);let E=b===""?"":`${b}/`,R=m.entries.filter(P=>E===""||P.path.startsWith(E));if(R.length===0)return I(`pathspec '${y}' did not match any files`);for(let P of R)h.push(P.path)}else{if(!m.entries.some(R=>R.path===b))return I(`pathspec '${y}' did not match any files`);h.push(b)}}if(!d){let y=await dg(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(`
666
+ `,a}se();Ce();ie();le();ue();Zn();ve();function Nl(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:$().describe("Only remove from the index"),recursive:$().alias("r").describe("Allow recursive removal when a directory name is given"),force:$().alias("f").describe("Override the up-to-date check"),dryRun:$().alias("n").describe("Don't actually remove any file(s)")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Xe(s);if(i)return i;let a=s.workTree,c=n.paths;if(c.length===0)return L("usage: git rm [--cached] [-f] [-r] <file>...");let f=n.cached,l=n.recursive,d=n.force,u=await t?.hooks?.preRm?.({repo:s,paths:c,cached:f,recursive:l,force:d});if(ee(u))return{stdout:"",stderr:u.message??"",exitCode:1};let m=await K(s),h=[],p=mt(s,r.cwd);for(let y of c){if(nr(y)){let E=[Ue(y,p)],R=m.entries.filter(C=>ye(E,C.path));if(R.length===0)return I(`pathspec '${y}' did not match any files`);for(let C of R)h.push(C.path);continue}let x=It(r.cwd,y),b=ft(a,x);if((b==="."||b==="")&&(b=""),b.startsWith(".."))return I(`'${y}' is outside repository at '${a}'`);if(await r.fs.exists(x)&&!(await lt(r.fs,x)).isSymbolicLink&&(await lt(r.fs,x)).isDirectory){if(!l)return I(`not removing '${b}' recursively without -r`);let E=b===""?"":`${b}/`,R=m.entries.filter(C=>E===""||C.path.startsWith(E));if(R.length===0)return I(`pathspec '${y}' did not match any files`);for(let C of R)h.push(C.path)}else{if(!m.entries.some(R=>R.path===b))return I(`pathspec '${y}' did not match any files`);h.push(b)}}if(!d){let y=await hg(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(`
665
667
  `)}
666
668
  `:"",stderr:"",exitCode:0}}let g=[];for(let y of h){if(m=at(m,y),!f){let x=T(a,y);await lt(r.fs,x).then(()=>!0).catch(()=>!1)&&await r.fs.rm(x)}g.push(`rm '${y}'`)}await ae(s,m);let w=g.length>0?`${g.join(`
667
669
  `)}
668
- `:"";return await t?.hooks?.postRm?.({repo:s,removedPaths:h,cached:f}),{stdout:w,stderr:"",exitCode:0}}})}async function dg(e,t,n,r){let o=await Z(e),s=new Map;if(o){let f=await j(e,o),l=await Ve(e,f.tree);for(let d of l)s.set(d.path,d.hash)}let i=[],a=[],c=[];for(let f of n){let l=t.entries.find(h=>h.path===f&&h.stage===0);if(!l)continue;let u=s.get(f)!==l.hash,m=!1;if(e.workTree){let h=T(e.workTree,f),p=!1;try{await lt(e.fs,h),p=!0}catch{p=!1}p&&(m=await vn(e.fs,h)!==l.hash)}u&&m?i.push(f):u&&!r?a.push(f):m&&!r&&c.push(f)}if(i.length>0){let f=i.map(d=>` ${d}`).join(`
670
+ `:"";return await t?.hooks?.postRm?.({repo:s,removedPaths:h,cached:f}),{stdout:w,stderr:"",exitCode:0}}})}async function hg(e,t,n,r){let o=await Z(e),s=new Map;if(o){let f=await j(e,o),l=await Ve(e,f.tree);for(let d of l)s.set(d.path,d.hash)}let i=[],a=[],c=[];for(let f of n){let l=t.entries.find(h=>h.path===f&&h.stage===0);if(!l)continue;let u=s.get(f)!==l.hash,m=!1;if(e.workTree){let h=T(e.workTree,f),p=!1;try{await lt(e.fs,h),p=!0}catch{p=!1}p&&(m=await vn(e.fs,h)!==l.hash)}u&&m?i.push(f):u&&!r?a.push(f):m&&!r&&c.push(f)}if(i.length>0){let f=i.map(d=>` ${d}`).join(`
669
671
  `),l=i.length===1?"the following file has":"the following files have";return L(`error: ${l} staged content different from both the
670
672
  file and the HEAD:
671
673
  ${f}
@@ -678,54 +680,54 @@ ${f}
678
680
  `),l=c.length===1?"the following file has":"the following files have";return L(`error: ${l} local modifications:
679
681
  ${f}
680
682
  (use --cached to keep the file, or -f to force removal)
681
- `)}return null}se();ie();hn();Ns();le();ve();var fa=new TextDecoder;function Ul(e,t){e.command("show",{description:"Show various types of objects",args:[q.string().name("object").variadic().optional()],options:{patch:S().alias("p").describe("Show diff in patch format"),noPatch:S().describe("Suppress diff output"),stat:S().describe("Show diffstat summary"),nameOnly:S().describe("Show only names of changed files"),nameStatus:S().describe("Show names and status of changed files"),shortstat:S().describe("Show only the shortstat summary line"),numstat:S().describe("Machine-readable insertions/deletions per file"),format:J.string().describe("Pretty-print format string"),pretty:J.string().describe("Pretty-print format or preset name")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,a=n.object[0]??"HEAD",c=_s(a);if(c)return ug(s,c.rev,c.path);if(a==="HEAD"){let p=await Ze(s);if(M(p))return p}let f=await vt(s,a,`bad object '${a}'`);if(M(f))return f;let l=await we(s,f),d;n.noPatch?d=null:n.stat?d="stat":n.nameOnly?d="name-only":n.nameStatus?d="name-status":n.shortstat?d="shortstat":n.numstat?d="numstat":d="patch";let u=n.format??n.pretty,m=null,h=null;if(u!==void 0){let p=Ho(u);m=p.formatStr,h=p.preset}switch(l.type){case"commit":{let p=await j(s,f);return{stdout:await Bl(s,f,p,d,m,h),stderr:"",exitCode:0}}case"tag":{let p=await hc(s,f);return{stdout:await mg(s,p,d,m,h),stderr:"",exitCode:0}}case"tree":{let p=Hn(l.content);return{stdout:Wl(p),stderr:"",exitCode:0}}case"blob":return{stdout:fa.decode(l.content),stderr:"",exitCode:0}}}})}async function ug(e,t,n){let r=await He(e,t);if(M(r))return r;let o=r.commit.tree,s=n.replace(/^\//,""),a=(await ce(e,o)).get(s);if(!a){let f=`path '${s}' does not exist in '${t}'`;if(e.workTree){let l=T(e.workTree,s);await e.fs.exists(l)&&(f=`path '${s}' exists on disk, but not in '${t}'`)}return I(f)}let c=await we(e,a.hash);if(c.type==="blob")return{stdout:fa.decode(c.content),stderr:"",exitCode:0};if(c.type==="tree"){let f=Hn(c.content);return{stdout:Wl(f),stderr:"",exitCode:0}}return{stdout:fa.decode(c.content),stderr:"",exitCode:0}}async function Bl(e,t,n,r="patch",o=null,s=null){let i;if(o!==null)i=ps(o,{hash:t,commit:n});else if(s!==null)i=gs(s,{hash:t,commit:n},!0,!1);else{let c=[];if(c.push(`commit ${t}`),n.parents.length>=2){let l=n.parents.map(d=>Y(d)).join(" ");c.push(`Merge: ${l}`)}c.push(`Author: ${n.author.name} <${n.author.email}>`),c.push(`Date: ${_t(n.author.timestamp,n.author.timezone)}`),c.push("");let f=n.message.replace(/\n$/,"");for(let l of f.split(`
683
+ `)}return null}se();ie();hn();Ns();le();ve();var fa=new TextDecoder;function Fl(e,t){e.command("show",{description:"Show various types of objects",args:[q.string().name("object").variadic().optional()],options:{patch:$().alias("p").describe("Show diff in patch format"),noPatch:$().describe("Suppress diff output"),stat:$().describe("Show diffstat summary"),nameOnly:$().describe("Show only names of changed files"),nameStatus:$().describe("Show names and status of changed files"),shortstat:$().describe("Show only the shortstat summary line"),numstat:$().describe("Machine-readable insertions/deletions per file"),format:J.string().describe("Pretty-print format string"),pretty:J.string().describe("Pretty-print format or preset name")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,a=n.object[0]??"HEAD",c=_s(a);if(c)return pg(s,c.rev,c.path);if(a==="HEAD"){let p=await Ze(s);if(M(p))return p}let f=await vt(s,a,`bad object '${a}'`);if(M(f))return f;let l=await we(s,f),d;n.noPatch?d=null:n.stat?d="stat":n.nameOnly?d="name-only":n.nameStatus?d="name-status":n.shortstat?d="shortstat":n.numstat?d="numstat":d="patch";let u=n.format??n.pretty,m=null,h=null;if(u!==void 0){let p=Ho(u);m=p.formatStr,h=p.preset}switch(l.type){case"commit":{let p=await j(s,f);return{stdout:await Ul(s,f,p,d,m,h),stderr:"",exitCode:0}}case"tag":{let p=await mc(s,f);return{stdout:await gg(s,p,d,m,h),stderr:"",exitCode:0}}case"tree":{let p=Hn(l.content);return{stdout:Bl(p),stderr:"",exitCode:0}}case"blob":return{stdout:fa.decode(l.content),stderr:"",exitCode:0}}}})}async function pg(e,t,n){let r=await He(e,t);if(M(r))return r;let o=r.commit.tree,s=n.replace(/^\//,""),a=(await ce(e,o)).get(s);if(!a){let f=`path '${s}' does not exist in '${t}'`;if(e.workTree){let l=T(e.workTree,s);await e.fs.exists(l)&&(f=`path '${s}' exists on disk, but not in '${t}'`)}return I(f)}let c=await we(e,a.hash);if(c.type==="blob")return{stdout:fa.decode(c.content),stderr:"",exitCode:0};if(c.type==="tree"){let f=Hn(c.content);return{stdout:Bl(f),stderr:"",exitCode:0}}return{stdout:fa.decode(c.content),stderr:"",exitCode:0}}async function Ul(e,t,n,r="patch",o=null,s=null){let i;if(o!==null)i=ps(o,{hash:t,commit:n});else if(s!==null)i=gs(s,{hash:t,commit:n},!0,!1);else{let c=[];if(c.push(`commit ${t}`),n.parents.length>=2){let l=n.parents.map(d=>Y(d)).join(" ");c.push(`Merge: ${l}`)}c.push(`Author: ${n.author.name} <${n.author.email}>`),c.push(`Date: ${_t(n.author.timestamp,n.author.timezone)}`),c.push("");let f=n.message.replace(/\n$/,"");for(let l of f.split(`
682
684
  `))c.push(` ${l}`);i=c.join(`
683
685
  `)}if(!r)return`${i}
684
- `;let a="";if(n.parents.length<=1){let c=n.parents.length===1?(await j(e,n.parents[0])).tree:null,f=await We(e,c,n.tree),{remaining:l,renames:d}=await nt(e,f);a=await hg(e,l,d,r)}else r==="patch"&&(a=await xg(e,n)??"");return a?`${i}
686
+ `;let a="";if(n.parents.length<=1){let c=n.parents.length===1?(await j(e,n.parents[0])).tree:null,f=await We(e,c,n.tree),{remaining:l,renames:d}=await nt(e,f);a=await wg(e,l,d,r)}else r==="patch"&&(a=await Og(e,n)??"");return a?`${i}
685
687
 
686
688
  ${a.replace(/\n$/,"")}
687
689
  `:n.parents.length>=2?`${i}
688
690
 
689
691
  `:`${i}
690
- `}async function mg(e,t,n="patch",r=null,o=null){let s=[];s.push(`tag ${t.name}`),s.push(`Tagger: ${t.tagger.name} <${t.tagger.email}>`),s.push(`Date: ${_t(t.tagger.timestamp,t.tagger.timezone)}`),s.push("");let i=t.message.replace(/\n$/,"");for(let a of i.split(`
691
- `))s.push(` ${a}`);if(t.objectType==="commit"){let a=await j(e,t.object),c=await Bl(e,t.object,a,n,r,o);s.push(""),s.push(c.replace(/\n$/,""))}return`${s.join(`
692
+ `}async function gg(e,t,n="patch",r=null,o=null){let s=[];s.push(`tag ${t.name}`),s.push(`Tagger: ${t.tagger.name} <${t.tagger.email}>`),s.push(`Date: ${_t(t.tagger.timestamp,t.tagger.timezone)}`),s.push("");let i=t.message.replace(/\n$/,"");for(let a of i.split(`
693
+ `))s.push(` ${a}`);if(t.objectType==="commit"){let a=await j(e,t.object),c=await Ul(e,t.object,a,n,r,o);s.push(""),s.push(c.replace(/\n$/,""))}return`${s.join(`
692
694
  `)}
693
- `}function Wl(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(`
695
+ `}function Bl(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(`
694
696
  `)}
695
- `:""}async function hg(e,t,n,r){switch(r){case"patch":return Rg(e,t,n);case"stat":return wg(e,t,n);case"shortstat":return bg(e,t,n);case"numstat":return yg(e,t,n);case"name-only":return pg(t,n);case"name-status":return gg(t,n);default:return""}}function pg(e,t){let n=[];for(let r of e)n.push(r.path);for(let r of t)n.push(r.newPath);return n.sort(),n.length>0?`${n.join(`
697
+ `:""}async function wg(e,t,n,r){switch(r){case"patch":return Cg(e,t,n);case"stat":return Eg(e,t,n);case"shortstat":return kg(e,t,n);case"numstat":return Rg(e,t,n);case"name-only":return bg(t,n);case"name-status":return yg(t,n);default:return""}}function bg(e,t){let n=[];for(let r of e)n.push(r.path);for(let r of t)n.push(r.newPath);return n.sort(),n.length>0?`${n.join(`
696
698
  `)}
697
- `:""}function gg(e,t){let n=[];for(let r of e){let o=r.status==="added"?"A":r.status==="deleted"?"D":"M";n.push({key:r.path,line:`${o} ${r.path}`})}for(let r of t){let o=String(r.similarity??100).padStart(3,"0");n.push({key:r.newPath,line:`R${o} ${r.oldPath} ${r.newPath}`})}return n.sort((r,o)=>r.key<o.key?-1:r.key>o.key?1:0),n.length>0?n.map(r=>`${r.line}
698
- `).join(""):""}async function wg(e,t,n){let{fileStats:r}=await Un(e,t,n);return r.sort((o,s)=>o.sortKey<s.sortKey?-1:o.sortKey>s.sortKey?1:0),cr(r)}async function bg(e,t,n){let{fileStats:r}=await Un(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=Fn(r.length,o,s);return i?`${i}
699
- `:""}async function yg(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 oe(e,s.oldHash):"",a=s.newHash?await oe(e,s.newHash):"";if(Se(i)||Se(a))o+=`- - ${s.display}
700
- `;else{let c=wt(i),f=wt(a),l=st(c,f),d=0,u=0;for(let m of l)m.type==="insert"?d++:m.type==="delete"&&u++;o+=`${d} ${u} ${s.display}
701
- `}}return o}async function Eg(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Ct({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash})}async function kg(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Ct({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 Rg(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 kg(e,s.entry):o+=await Eg(e,s.entry);return o}async function xg(e,t){if(t.parents.length<2)return"";let n=await Promise.all(t.parents.map(async a=>{let c=await j(e,a);return ce(e,c.tree)})),r=await ce(e,t.tree),o=new Set;for(let a of n)for(let c of a.keys())o.add(c);for(let a of r.keys())o.add(a);let s=[];for(let a of o){let f=r.get(a)?.hash??null;n.every(d=>(d.get(a)?.hash??null)!==f)&&s.push(a)}if(s.sort(),s.length===0)return"";let i="";for(let a of s)i+=await Cg(e,a,n,r);return i}async function Cg(e,t,n,r){let o=r.get(t),s=n.map(u=>u.get(t)??null),i=o?.hash??null,a=o?.mode??null,c=s.map(u=>u?.hash??null),f=s.map(u=>u?.mode??null),l=await Promise.all(c.map(async u=>u?await oe(e,u):"")),d=i?await oe(e,i):"";return Oo({path:t,parentHashes:c,parentModes:f,parentContents:l,resultHash:i,resultMode:a,resultContent:d})}se();Pe();ie();ue();se();Cn();Pe();ie();un();le();Fe();ue();ve();sn();tt();var Yt="refs/stash";function da(e,t){return Oe(e.replaceAll("/","\0"),t.replaceAll("/","\0"))}async function ql(e){let t=await Je(e,Yt),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 Je(e,Yt);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 zl(e,t,n,r){if(!e.workTree)throw new Error("Cannot stash in a bare repository");let o=e.workTree,s=await Z(e);if(!s)return null;let i=await j(e,s),a=await K(e),c=je(a),f=await Ge(e,c),l=await We(e,i.tree,f),d=new Map(c.map(_=>[_.path,_])),u=await et(e,o,"",{skipIgnore:!0}),m=!1;for(let _ of u){let U=d.get(_);if(!U)continue;let V=T(o,_),be=await e.fs.readFileBuffer(V);if(await Et("blob",be)!==U.hash){m=!0;break}}if(!m)for(let[_]of d){let U=T(o,_);if(!await e.fs.exists(U)){m=!0;break}}let h=[];if(r?.includeUntracked){let _=await et(e,o,"");for(let U of _)d.has(U)||h.push(U)}if(l.length===0&&!m&&h.length===0)return null;let p=await Ss(e,t),g=await Gr(e,t),w=await Q(e),y=w?.type==="symbolic"?Re(w.target):"(no branch)",x=Y(s),b=fe(i.message),k=`index on ${y}: ${x} ${b}
702
- `,E=tn({type:"commit",tree:f,parents:[s],author:p,committer:g,message:k}),R=await $e(e,"commit",E),P=await ce(e,i.tree),C=[],v=new Set;for(let _ of u){let U=d.get(_),V=P.get(_);if(!U&&!V)continue;let be=T(o,_),Le=await e.fs.readFileBuffer(be),it=await $e(e,"blob",Le),me=U?U.mode:parseInt(V?.mode??"100644",8);C.push({path:_,mode:me,hash:it,stage:0,stat:Ie()}),v.add(_)}for(let[_,U]of d)v.has(_)||P.has(_)||C.push({path:_,mode:U.mode,hash:U.hash,stage:0,stat:Ie()});let D=await Ge(e,C),O=null;if(r?.includeUntracked){let _=[];for(let Le of h){let it=T(o,Le),me=await e.fs.readFileBuffer(it),xe=await $e(e,"blob",me);_.push({path:Le,mode:33188,hash:xe,stage:0,stat:Ie()})}let U=await Ge(e,_),V=`untracked files on ${y}: ${x} ${b}
703
- `,be=tn({type:"commit",tree:U,parents:[],author:p,committer:g,message:V});O=await $e(e,"commit",be)}let H=n?`On ${y}: ${n}`:`WIP on ${y}: ${x} ${b}`,G=[s,R];O&&G.push(O);let A=tn({type:"commit",tree:D,parents:G,author:p,committer:g,message:H}),$=await $e(e,"commit",A),N=await Hr(e,0)??te;await Ke(e,Yt,{oldHash:N,newHash:$,name:g.name,email:g.email,timestamp:g.timestamp,tz:g.timezone,message:H.trimEnd()}),await X(e,Yt,$);let B=await gn(e,i.tree,a);await ae(e,{version:2,entries:B.newEntries}),await De(e,B.worktreeOps),(await Q(e))?.type==="symbolic"&&await re(e,t,"HEAD",s,s,"reset: moving to HEAD");for(let _ of["CHERRY_PICK_HEAD","MERGE_HEAD","ORIG_HEAD","REVERT_HEAD"])await de(e,_);for(let _ of["MERGE_MSG","MERGE_MODE","SQUASH_MSG"]){let U=T(e.gitDir,_);await e.fs.exists(U)&&await e.fs.rm(U)}if(h.length>0)for(let _ of h){if(P.has(_))continue;let U=T(o,_);await e.fs.exists(U)&&(await e.fs.rm(U),await er(e.fs,Zt(U),o))}return $}async function la(e,t){let n=e.workTree,r=await j(e,t),o=await Ve(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 ct(e,i)}return s.length>0?(s.sort(da),{ok:!1,stdout:"",stderr:`${s.map(i=>`${i} already exists, no checkout`).join(`
699
+ `:""}function yg(e,t){let n=[];for(let r of e){let o=r.status==="added"?"A":r.status==="deleted"?"D":"M";n.push({key:r.path,line:`${o} ${r.path}`})}for(let r of t){let o=String(r.similarity??100).padStart(3,"0");n.push({key:r.newPath,line:`R${o} ${r.oldPath} ${r.newPath}`})}return n.sort((r,o)=>r.key<o.key?-1:r.key>o.key?1:0),n.length>0?n.map(r=>`${r.line}
700
+ `).join(""):""}async function Eg(e,t,n){let{fileStats:r}=await Un(e,t,n);return r.sort((o,s)=>o.sortKey<s.sortKey?-1:o.sortKey>s.sortKey?1:0),cr(r)}async function kg(e,t,n){let{fileStats:r}=await Un(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=Fn(r.length,o,s);return i?`${i}
701
+ `:""}async function Rg(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 oe(e,s.oldHash):"",a=s.newHash?await oe(e,s.newHash):"";if($e(i)||$e(a))o+=`- - ${s.display}
702
+ `;else{let c=bt(i),f=bt(a),l=st(c,f),d=0,u=0;for(let m of l)m.type==="insert"?d++:m.type==="delete"&&u++;o+=`${d} ${u} ${s.display}
703
+ `}}return o}async function xg(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Pt({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash})}async function Pg(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Pt({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 Cg(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 Pg(e,s.entry):o+=await xg(e,s.entry);return o}async function Og(e,t){if(t.parents.length<2)return"";let n=await Promise.all(t.parents.map(async a=>{let c=await j(e,a);return ce(e,c.tree)})),r=await ce(e,t.tree),o=new Set;for(let a of n)for(let c of a.keys())o.add(c);for(let a of r.keys())o.add(a);let s=[];for(let a of o){let f=r.get(a)?.hash??null;n.every(d=>(d.get(a)?.hash??null)!==f)&&s.push(a)}if(s.sort(),s.length===0)return"";let i="";for(let a of s)i+=await Ig(e,a,n,r);return i}async function Ig(e,t,n,r){let o=r.get(t),s=n.map(u=>u.get(t)??null),i=o?.hash??null,a=o?.mode??null,c=s.map(u=>u?.hash??null),f=s.map(u=>u?.mode??null),l=await Promise.all(c.map(async u=>u?await oe(e,u):"")),d=i?await oe(e,i):"";return Oo({path:t,parentHashes:c,parentModes:f,parentContents:l,resultHash:i,resultMode:a,resultContent:d})}se();Ce();ie();ue();se();Pn();Ce();ie();un();le();Fe();ue();ve();sn();tt();var Yt="refs/stash";function da(e,t){return Oe(e.replaceAll("/","\0"),t.replaceAll("/","\0"))}async function Wl(e){let t=await Je(e,Yt),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 Je(e,Yt);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 ql(e,t,n,r){if(!e.workTree)throw new Error("Cannot stash in a bare repository");let o=e.workTree,s=await Z(e);if(!s)return null;let i=await j(e,s),a=await K(e),c=De(a),f=await Ge(e,c),l=await We(e,i.tree,f),d=new Map(c.map(_=>[_.path,_])),u=await et(e,o,"",{skipIgnore:!0}),m=!1;for(let _ of u){let U=d.get(_);if(!U)continue;let V=T(o,_),be=await e.fs.readFileBuffer(V);if(await ut("blob",be)!==U.hash){m=!0;break}}if(!m)for(let[_]of d){let U=T(o,_);if(!await e.fs.exists(U)){m=!0;break}}let h=[];if(r?.includeUntracked){let _=await et(e,o,"");for(let U of _)d.has(U)||h.push(U)}if(l.length===0&&!m&&h.length===0)return null;let p=await $s(e,t),g=await Gr(e,t),w=await Q(e),y=w?.type==="symbolic"?Re(w.target):"(no branch)",x=Y(s),b=fe(i.message),k=`index on ${y}: ${x} ${b}
704
+ `,E=tn({type:"commit",tree:f,parents:[s],author:p,committer:g,message:k}),R=await Se(e,"commit",E),C=await ce(e,i.tree),P=[],v=new Set;for(let _ of u){let U=d.get(_),V=C.get(_);if(!U&&!V)continue;let be=T(o,_),Le=await e.fs.readFileBuffer(be),it=await Se(e,"blob",Le),me=U?U.mode:parseInt(V?.mode??"100644",8);P.push({path:_,mode:me,hash:it,stage:0,stat:Ie()}),v.add(_)}for(let[_,U]of d)v.has(_)||C.has(_)||P.push({path:_,mode:U.mode,hash:U.hash,stage:0,stat:Ie()});let D=await Ge(e,P),O=null;if(r?.includeUntracked){let _=[];for(let Le of h){let it=T(o,Le),me=await e.fs.readFileBuffer(it),xe=await Se(e,"blob",me);_.push({path:Le,mode:33188,hash:xe,stage:0,stat:Ie()})}let U=await Ge(e,_),V=`untracked files on ${y}: ${x} ${b}
705
+ `,be=tn({type:"commit",tree:U,parents:[],author:p,committer:g,message:V});O=await Se(e,"commit",be)}let H=n?`On ${y}: ${n}`:`WIP on ${y}: ${x} ${b}`,G=[s,R];O&&G.push(O);let A=tn({type:"commit",tree:D,parents:G,author:p,committer:g,message:H}),S=await Se(e,"commit",A),N=await Hr(e,0)??te;await Ke(e,Yt,{oldHash:N,newHash:S,name:g.name,email:g.email,timestamp:g.timestamp,tz:g.timezone,message:H.trimEnd()}),await X(e,Yt,S);let B=await gn(e,i.tree,a);await ae(e,{version:2,entries:B.newEntries}),await Me(e,B.worktreeOps),(await Q(e))?.type==="symbolic"&&await re(e,t,"HEAD",s,s,"reset: moving to HEAD");for(let _ of["CHERRY_PICK_HEAD","MERGE_HEAD","ORIG_HEAD","REVERT_HEAD"])await de(e,_);for(let _ of["MERGE_MSG","MERGE_MODE","SQUASH_MSG"]){let U=T(e.gitDir,_);await e.fs.exists(U)&&await e.fs.rm(U)}if(h.length>0)for(let _ of h){if(C.has(_))continue;let U=T(o,_);await e.fs.exists(U)&&(await e.fs.rm(U),await er(e.fs,Zt(U),o))}return S}async function la(e,t){let n=e.workTree,r=await j(e,t),o=await Ve(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 ct(e,i)}return s.length>0?(s.sort(da),{ok:!1,stdout:"",stderr:`${s.map(i=>`${i} already exists, no checkout`).join(`
704
706
  `)}
705
707
  error: could not restore untracked files from stash
706
708
  `,exitCode:1}):{ok:!0,hasConflicts:!1,messages:[]}}async function ua(e,t=0){if(!e.workTree)return{ok:!1,stdout:"",stderr:`fatal: this operation must be run in a work tree
707
709
  `,exitCode:128};let n=await Hr(e,t);if(!n)return{ok:!1,stdout:"",stderr:`error: stash@{${t}} is not a valid reference
708
710
  `,exitCode:1};if(!await Z(e))return{ok:!1,stdout:"",stderr:`error: your current branch does not have any commits yet
709
- `,exitCode:1};let o=await K(e),s=Bt(o).sort();if(s.length>0)return{ok:!1,stdout:`${s.map(P=>`${P}: needs merge`).join(`
711
+ `,exitCode:1};let o=await K(e),s=Bt(o).sort();if(s.length>0)return{ok:!1,stdout:`${s.map(C=>`${C}: needs merge`).join(`
710
712
  `)}
711
713
  `,stderr:`error: could not write index
712
714
  `,exitCode:1};let i=await j(e,n),a=i.parents[0];if(!a)return{ok:!1,stdout:"",stderr:`error: invalid stash commit (no parent)
713
- `,exitCode:1};let c=await j(e,a),f=i.parents[2],l=je(o),d=await Ge(e,l),u={a:"Updated upstream",b:"Stashed changes"};if(c.tree===i.tree){if(f){let R=await la(e,f);if(!R.ok)return{...R,messages:["Already up to date."]}}return{ok:!0,hasConflicts:!1,messages:["Already up to date."]}}let m=await Ft(e,c.tree,d,i.tree,u),h=await ce(e,d),p=await ce(e,m.resultTree),g=[];for(let[R,P]of p){let C=h.get(R);(!C||C.hash!==P.hash)&&g.push({path:R,type:"checkout",hash:P.hash,mode:parseInt(P.mode,8)})}for(let[R]of h)p.has(R)||g.push({path:R,type:"delete"});let w=new Map(l.map(R=>[R.path,R])),y=[],x=[];for(let R of g){let P=w.get(R.path),C=T(e.workTree,R.path);if(P){if(!await e.fs.exists(C))continue;let v=await e.fs.readFileBuffer(C);await Et("blob",v)!==P.hash&&y.push(R.path)}else R.type==="checkout"&&await e.fs.exists(C)&&x.push(R.path)}if(y.length>0||x.length>0){y.sort(da),x.sort(da);let R="";if(y.length>0&&(R+=`error: Your local changes to the following files would be overwritten by merge:
714
- ${y.map(P=>` ${P}`).join(`
715
+ `,exitCode:1};let c=await j(e,a),f=i.parents[2],l=De(o),d=await Ge(e,l),u={a:"Updated upstream",b:"Stashed changes"};if(c.tree===i.tree){if(f){let R=await la(e,f);if(!R.ok)return{...R,messages:["Already up to date."]}}return{ok:!0,hasConflicts:!1,messages:["Already up to date."]}}let m=await Ft(e,c.tree,d,i.tree,u),h=await ce(e,d),p=await ce(e,m.resultTree),g=[];for(let[R,C]of p){let P=h.get(R);(!P||P.hash!==C.hash)&&g.push({path:R,type:"checkout",hash:C.hash,mode:parseInt(C.mode,8)})}for(let[R]of h)p.has(R)||g.push({path:R,type:"delete"});let w=new Map(l.map(R=>[R.path,R])),y=[],x=[];for(let R of g){let C=w.get(R.path),P=T(e.workTree,R.path);if(C){if(!await e.fs.exists(P))continue;let v=await e.fs.readFileBuffer(P);await ut("blob",v)!==C.hash&&y.push(R.path)}else R.type==="checkout"&&await e.fs.exists(P)&&x.push(R.path)}if(y.length>0||x.length>0){y.sort(da),x.sort(da);let R="";if(y.length>0&&(R+=`error: Your local changes to the following files would be overwritten by merge:
716
+ ${y.map(C=>` ${C}`).join(`
715
717
  `)}
716
718
  Please commit your changes or stash them before you merge.
717
719
  `),x.length>0&&(R+=`error: The following untracked working tree files would be overwritten by merge:
718
- ${x.map(P=>` ${P}`).join(`
720
+ ${x.map(C=>` ${C}`).join(`
719
721
  `)}
720
722
  Please move or remove them before you merge.
721
723
  `),R+=`Aborting
722
- `,f){let P=await la(e,f);P.ok||(R+=P.stderr)}return{ok:!1,stdout:"",stderr:R,exitCode:1}}await De(e,g);let b=new Set(m.conflicts.map(R=>R.path)),k=new Set;for(let R of m.entries)R.stage>0&&k.add(R.path);let E=b.size>0;if(E){let R=[];for(let[P,C]of p){if(b.has(P)||k.has(P))continue;let v=w.get(P);R.push({path:P,mode:parseInt(C.mode,8),hash:C.hash,stage:0,stat:v?.stat??Ie()})}for(let P of m.entries)P.stage>0&&R.push(P);R.sort((P,C)=>Oe(P.path,C.path)||P.stage-C.stage),await ae(e,{version:2,entries:R})}else{let R=[...o.entries],P=new Set(R.map(C=>C.path));for(let[C,v]of p)h.has(C)||P.has(C)||R.push({path:C,mode:parseInt(v.mode,8),hash:v.hash,stage:0,stat:Ie()});R.sort((C,v)=>Oe(C.path,v.path)||C.stage-v.stage),await ae(e,{version:2,entries:R})}if(f){let R=await la(e,f);if(!R.ok)return{...R,messages:m.messages}}return{ok:!0,hasConflicts:E,messages:m.messages}}async function ma(e,t=0){let n=await Je(e,Yt);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,Yt),await Xr(e,Yt);else{await Tn(e,Yt,n);let o=n[n.length-1];o&&await X(e,Yt,o.newHash)}return null}async function Kl(e){await de(e,Yt),await Xr(e,Yt)}ve();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 Pg(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Ct({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode})}async function zn(e,t,n,r){return e?.hooks?.preStash?.({repo:t,action:n,ref:r})??null}async function Kn(e,t,n,r){await e?.hooks?.postStash?.({repo:t,action:n,ok:r})}function Yl(e,t){let n=e.command("stash",{description:"Stash the changes in a dirty working directory away",options:{message:J.string().alias("m").describe("Stash message"),"include-untracked":S().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 W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"push",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Vl(s,o.env,r.message,r["include-untracked"]);return await Kn(t,s,"push",a.exitCode===0),a}});n.command("push",{description:"Save your local modifications to a new stash entry",options:{message:J.string().alias("m").describe("Stash message"),"include-untracked":S().alias("u").describe("Also stash untracked files")},handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"push",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Vl(s,o.env,r.message,r["include-untracked"]);return await Kn(t,s,"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:[q.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"pop",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Og(s,r.stash);return await Kn(t,s,"pop",a.exitCode===0),a}}),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 W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"apply",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Ig(s,r.stash);return await Kn(t,s,"apply",a.exitCode===0),a}}),n.command("list",{description:"List the stash entries that you currently have",handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"list",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Sg(s);return await Kn(t,s,"list",a.exitCode===0),a}}),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 W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"drop",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await $g(s,r.stash);return await Kn(t,s,"drop",a.exitCode===0),a}}),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 W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"show",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Tg(s,r.stash);return await Kn(t,s,"show",a.exitCode===0),a}}),n.command("clear",{description:"Remove all the stash entries",handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"clear",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await vg(s);return await Kn(t,s,"clear",a.exitCode===0),a}})}async function Vl(e,t,n,r){if(!await Z(e))return L(`You do not have the initial commit yet
724
+ `,f){let C=await la(e,f);C.ok||(R+=C.stderr)}return{ok:!1,stdout:"",stderr:R,exitCode:1}}await Me(e,g);let b=new Set(m.conflicts.map(R=>R.path)),k=new Set;for(let R of m.entries)R.stage>0&&k.add(R.path);let E=b.size>0;if(E){let R=[];for(let[C,P]of p){if(b.has(C)||k.has(C))continue;let v=w.get(C);R.push({path:C,mode:parseInt(P.mode,8),hash:P.hash,stage:0,stat:v?.stat??Ie()})}for(let C of m.entries)C.stage>0&&R.push(C);R.sort((C,P)=>Oe(C.path,P.path)||C.stage-P.stage),await ae(e,{version:2,entries:R})}else{let R=[...o.entries],C=new Set(R.map(P=>P.path));for(let[P,v]of p)h.has(P)||C.has(P)||R.push({path:P,mode:parseInt(v.mode,8),hash:v.hash,stage:0,stat:Ie()});R.sort((P,v)=>Oe(P.path,v.path)||P.stage-v.stage),await ae(e,{version:2,entries:R})}if(f){let R=await la(e,f);if(!R.ok)return{...R,messages:m.messages}}return{ok:!0,hasConflicts:E,messages:m.messages}}async function ma(e,t=0){let n=await Je(e,Yt);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,Yt),await Xr(e,Yt);else{await Tn(e,Yt,n);let o=n[n.length-1];o&&await X(e,Yt,o.newHash)}return null}async function zl(e){await de(e,Yt),await Xr(e,Yt)}ve();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 $g(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Pt({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode})}async function zn(e,t,n,r){return e?.hooks?.preStash?.({repo:t,action:n,ref:r})??null}async function Kn(e,t,n,r){await e?.hooks?.postStash?.({repo:t,action:n,ok:r})}function Vl(e,t){let n=e.command("stash",{description:"Stash the changes in a dirty working directory away",options:{message:J.string().alias("m").describe("Stash message"),"include-untracked":$().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 W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"push",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Kl(s,o.env,r.message,r["include-untracked"]);return await Kn(t,s,"push",a.exitCode===0),a}});n.command("push",{description:"Save your local modifications to a new stash entry",options:{message:J.string().alias("m").describe("Stash message"),"include-untracked":$().alias("u").describe("Also stash untracked files")},handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"push",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Kl(s,o.env,r.message,r["include-untracked"]);return await Kn(t,s,"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:[q.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"pop",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Sg(s,r.stash);return await Kn(t,s,"pop",a.exitCode===0),a}}),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 W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"apply",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Tg(s,r.stash);return await Kn(t,s,"apply",a.exitCode===0),a}}),n.command("list",{description:"List the stash entries that you currently have",handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"list",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await vg(s);return await Kn(t,s,"list",a.exitCode===0),a}}),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 W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"drop",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Hg(s,r.stash);return await Kn(t,s,"drop",a.exitCode===0),a}}),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 W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"show",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Ag(s,r.stash);return await Kn(t,s,"show",a.exitCode===0),a}}),n.command("clear",{description:"Remove all the stash entries",handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=await zn(t,s,"clear",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await Dg(s);return await Kn(t,s,"clear",a.exitCode===0),a}})}async function Kl(e,t,n,r){if(!await Z(e))return L(`You do not have the initial commit yet
723
725
  `);let s=await K(e),i=Bt(s).sort();if(i.length>0)return{stdout:`${i.map(l=>`${l}: needs merge`).join(`
724
726
  `)}
725
727
  `,stderr:`error: could not write index
726
- `,exitCode:1};let a;try{a=await zl(e,t,n,{includeUntracked:r})}catch(l){return I(l.message)}return a?{stdout:`Saved working directory and index state ${(await j(e,a)).message.trim()}
728
+ `,exitCode:1};let a;try{a=await ql(e,t,n,{includeUntracked:r})}catch(l){return I(l.message)}return a?{stdout:`Saved working directory and index state ${(await j(e,a)).message.trim()}
727
729
  `,stderr:"",exitCode:0}:{stdout:`No local changes to save
728
- `,stderr:"",exitCode:0}}async function Og(e,t){let n=Mo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await Hr(e,n);if(!r)return L(`error: stash@{${n}} is not a valid reference`);let o=await ua(e,n);if(!o.ok){let f=o.messages?.length?`${o.messages.join(`
730
+ `,stderr:"",exitCode:0}}async function Sg(e,t){let n=Mo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await Hr(e,n);if(!r)return L(`error: stash@{${n}} is not a valid reference`);let o=await ua(e,n);if(!o.ok){let f=o.messages?.length?`${o.messages.join(`
729
731
  `)}
730
732
  `:"";if(o.stdout)return{stdout:`${f}${o.stdout}The stash entry is kept in case you need it again.
731
733
  `,stderr:o.stderr,exitCode:o.exitCode};let l=await rt(e);return{stdout:`${f}${l}The stash entry is kept in case you need it again.
@@ -735,27 +737,27 @@ Please move or remove them before you merge.
735
737
  `,stderr:"",exitCode:1}}let s=await ma(e,n);if(s)return L(s);let i=o.messages.length>0?`${o.messages.join(`
736
738
  `)}
737
739
  `:"",a=t?`stash@{${n}}`:`refs/stash@{${n}}`,c=await rt(e);return{stdout:`${i}${c}Dropped ${a} (${r})
738
- `,stderr:"",exitCode:0}}async function Ig(e,t){let n=Mo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await ua(e,n);if(!r.ok){let a=r.messages?.length?`${r.messages.join(`
740
+ `,stderr:"",exitCode:0}}async function Tg(e,t){let n=Mo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await ua(e,n);if(!r.ok){let a=r.messages?.length?`${r.messages.join(`
739
741
  `)}
740
742
  `:"",c=r.stdout;return c||(c=await rt(e)),{stdout:`${a}${c}`,stderr:r.stderr,exitCode:r.exitCode}}let o=r.messages.length>0?`${r.messages.join(`
741
743
  `)}
742
- `:"",s=await rt(e),i=r.hasConflicts?1:0;return{stdout:`${o}${s}`,stderr:"",exitCode:i}}async function Sg(e){let t=await ql(e);return t.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${t.map(r=>`stash@{${r.index}}: ${r.message}`).join(`
744
+ `:"",s=await rt(e),i=r.hasConflicts?1:0;return{stdout:`${o}${s}`,stderr:"",exitCode:i}}async function vg(e){let t=await Wl(e);return t.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${t.map(r=>`stash@{${r.index}}: ${r.message}`).join(`
743
745
  `)}
744
- `,stderr:"",exitCode:0}}async function $g(e,t){let n=Mo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await Hr(e,n);if(!r)return L(`error: stash@{${n}} is not a valid reference`);let o=await ma(e,n);return o?L(o):{stdout:`Dropped ${t?`stash@{${n}}`:`refs/stash@{${n}}`} (${r})
745
- `,stderr:"",exitCode:0}}async function Tg(e,t){let n=Mo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await Hr(e,n);if(!r)return L(`error: stash@{${n}} is not a valid reference`);let o=await j(e,r),s=o.parents[0];if(!s)return L("error: invalid stash commit (no parent)");let i=await j(e,s),a=await We(e,i.tree,o.tree),c="";for(let f of a)c+=await Pg(e,f);return{stdout:c,stderr:"",exitCode:0}}async function vg(e){return await Kl(e),{stdout:"",stderr:"",exitCode:0}}se();Pe();ue();tt();function Xl(e,t){e.command("status",{description:"Show the working tree status",options:{short:S().alias("s").describe("Give the output in the short-format"),porcelain:S().describe("Give the output in a machine-parseable format"),branch:S().alias("b").describe("Show the branch in short-format output")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!n.short&&!n.porcelain)return{stdout:await rt(s),stderr:"",exitCode:0};let i=await Q(s),a=await Z(s),c;i&&i.type==="symbolic"?c=Re(i.target):c="HEAD detached";let f=await K(s),l=$i(f),d=await Si(s,a,f,l),u=await Tt(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,x)=>Oe(y.path,x.path));let p=new Set(f.entries.map(y=>y.path)),g=Ti(h,p);return{stdout:Mg(c,d,m,l,g,n.branch),stderr:"",exitCode:0}}})}var Hg={"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 Ag(e){switch(e){case"new file":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";default:return" "}}function Dg(e){switch(e){case"modified":return"M";case"deleted":return"D";default:return" "}}function Mg(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])),l=new Set;for(let u of r)l.add(u.path);for(let u of t)l.add(u.path);for(let u of n)l.add(u.path);let d=[...l].sort();for(let u of d){let m=a.get(u);if(m){let y=Hg[m.status]??"UU";i.push(`${y} ${ws(u)}`);continue}let h=c.get(u),p=f.get(u),g=h?Ag(h.status):" ",w=p?Dg(p.status):" ";if(h?.status==="renamed"&&h.displayPath){let y=h.displayPath.indexOf(" -> "),x=h.displayPath.slice(0,y),b=h.displayPath.slice(y+4);i.push(`${g}${w} ${ws(x)} -> ${ws(b)}`)}else i.push(`${g}${w} ${ws(u)}`)}for(let u of o)i.push(`?? ${ws(u)}`);return i.length===0?"":`${i.join(`
746
+ `,stderr:"",exitCode:0}}async function Hg(e,t){let n=Mo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await Hr(e,n);if(!r)return L(`error: stash@{${n}} is not a valid reference`);let o=await ma(e,n);return o?L(o):{stdout:`Dropped ${t?`stash@{${n}}`:`refs/stash@{${n}}`} (${r})
747
+ `,stderr:"",exitCode:0}}async function Ag(e,t){let n=Mo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await Hr(e,n);if(!r)return L(`error: stash@{${n}} is not a valid reference`);let o=await j(e,r),s=o.parents[0];if(!s)return L("error: invalid stash commit (no parent)");let i=await j(e,s),a=await We(e,i.tree,o.tree),c="";for(let f of a)c+=await $g(e,f);return{stdout:c,stderr:"",exitCode:0}}async function Dg(e){return await zl(e),{stdout:"",stderr:"",exitCode:0}}se();Ce();ue();tt();function Yl(e,t){e.command("status",{description:"Show the working tree status",options:{short:$().alias("s").describe("Give the output in the short-format"),porcelain:$().describe("Give the output in a machine-parseable format"),branch:$().alias("b").describe("Show the branch in short-format output")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!n.short&&!n.porcelain)return{stdout:await rt(s),stderr:"",exitCode:0};let i=await Q(s),a=await Z(s),c;i&&i.type==="symbolic"?c=Re(i.target):c="HEAD detached";let f=await K(s),l=Si(f),d=await $i(s,a,f,l),u=await Tt(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,x)=>Oe(y.path,x.path));let p=new Set(f.entries.map(y=>y.path)),g=Ti(h,p);return{stdout:Lg(c,d,m,l,g,n.branch),stderr:"",exitCode:0}}})}var Mg={"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 jg(e){switch(e){case"new file":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";default:return" "}}function Gg(e){switch(e){case"modified":return"M";case"deleted":return"D";default:return" "}}function Lg(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])),l=new Set;for(let u of r)l.add(u.path);for(let u of t)l.add(u.path);for(let u of n)l.add(u.path);let d=[...l].sort();for(let u of d){let m=a.get(u);if(m){let y=Mg[m.status]??"UU";i.push(`${y} ${ws(u)}`);continue}let h=c.get(u),p=f.get(u),g=h?jg(h.status):" ",w=p?Gg(p.status):" ";if(h?.status==="renamed"&&h.displayPath){let y=h.displayPath.indexOf(" -> "),x=h.displayPath.slice(0,y),b=h.displayPath.slice(y+4);i.push(`${g}${w} ${ws(x)} -> ${ws(b)}`)}else i.push(`${g}${w} ${ws(u)}`)}for(let u of o)i.push(`?? ${ws(u)}`);return i.length===0?"":`${i.join(`
746
748
  `)}
747
- `}function ws(e){return!/[ \t"\\]/.test(e)&&!/[^\x20-\x7E]/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}"`}se();Ne();Pe();ie();Fe();ue();ve();sn();function jg(e,t){return e?.type==="symbolic"?e.target.replace(/^refs\/heads\//,""):t??te}function Jl(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:J.string().alias("c").describe("Create and switch to a new branch"),forceCreate:J.string().alias("C").describe("Create/reset and switch to a branch"),detach:S().alias("d").describe("Detach HEAD at named commit"),orphan:J.string().describe("Create a new orphan branch"),guess:S().default(!0).describe("Guess branch from remote tracking")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n["branch-or-start-point"];if(n.orphan)return n.create||n.forceCreate?I("--orphan and -c/-C are incompatible"):n.detach?I("--orphan and --detach are incompatible"):_g(i,n.orphan,r.env,t);if(n.detach){if(n.create||n.forceCreate)return I("--detach and -c/-C are incompatible");let l=a??"HEAD",d=await He(i,l,`invalid reference: ${l}`);return M(d)?d:Lg(i,l,d.hash,r.env,t)}if(n.create||n.forceCreate){let l=n.create||n.forceCreate,d=a??(o.passthrough.length>0?o.passthrough[0]:void 0);return Zl(i,l,!!n.forceCreate,d,r.env,t)}if(!a)return I("missing branch or commit argument");if(a==="-")return Gg(i,r.env,t);let c=`refs/heads/${a}`,f=await F(i,c);if(f)return Ql(i,a,c,f,r.env,t);if(n.guess!==!1){let l=await fo(i,a);if(l)return Zl(i,a,!1,l.startPoint,r.env,t,l.trackingRef)}return I(`invalid reference: ${a}`)}})}async function bs(e){return await Ce(e,"CHERRY_PICK_HEAD")?I(`cannot switch branch while cherry-picking
748
- Consider "git cherry-pick --quit" or "git worktree add".`):await Ce(e,"MERGE_HEAD")?I(`cannot switch branch while merging
749
- Consider "git merge --quit" or "git worktree add".`):await Ce(e,"REVERT_HEAD")?I(`cannot switch branch while reverting
749
+ `}function ws(e){return!/[ \t"\\]/.test(e)&&!/[^\x20-\x7E]/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}"`}se();Ne();Ce();ie();Fe();ue();ve();sn();function _g(e,t){return e?.type==="symbolic"?e.target.replace(/^refs\/heads\//,""):t??te}function Zl(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:J.string().alias("c").describe("Create and switch to a new branch"),forceCreate:J.string().alias("C").describe("Create/reset and switch to a branch"),detach:$().alias("d").describe("Detach HEAD at named commit"),orphan:J.string().describe("Create a new orphan branch"),guess:$().default(!0).describe("Guess branch from remote tracking")},handler:async(n,r,o)=>{let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n["branch-or-start-point"];if(n.orphan)return n.create||n.forceCreate?I("--orphan and -c/-C are incompatible"):n.detach?I("--orphan and --detach are incompatible"):Ug(i,n.orphan,r.env,t);if(n.detach){if(n.create||n.forceCreate)return I("--detach and -c/-C are incompatible");let l=a??"HEAD",d=await He(i,l,`invalid reference: ${l}`);return M(d)?d:Fg(i,l,d.hash,r.env,t)}if(n.create||n.forceCreate){let l=n.create||n.forceCreate,d=a??(o.passthrough.length>0?o.passthrough[0]:void 0);return Xl(i,l,!!n.forceCreate,d,r.env,t)}if(!a)return I("missing branch or commit argument");if(a==="-")return Ng(i,r.env,t);let c=`refs/heads/${a}`,f=await F(i,c);if(f)return Jl(i,a,c,f,r.env,t);if(n.guess!==!1){let l=await fo(i,a);if(l)return Xl(i,a,!1,l.startPoint,r.env,t,l.trackingRef)}return I(`invalid reference: ${a}`)}})}async function bs(e){return await Pe(e,"CHERRY_PICK_HEAD")?I(`cannot switch branch while cherry-picking
750
+ Consider "git cherry-pick --quit" or "git worktree add".`):await Pe(e,"MERGE_HEAD")?I(`cannot switch branch while merging
751
+ Consider "git merge --quit" or "git worktree add".`):await Pe(e,"REVERT_HEAD")?I(`cannot switch branch while reverting
750
752
  Consider "git revert --quit" or "git worktree add".`):await Gt(e)?I(`cannot switch branch while rebasing
751
- Consider "git rebase --quit" or "git worktree add".`):null}async function Gg(e,t,n){let r=await bs(e);if(r)return r;let o=await so(e);return o?Ql(e,o.name,o.refName,o.hash,t,n):I("no previous branch")}async function Zl(e,t,n,r,o,s,i){let a=`refs/heads/${t}`,c=await F(e,a);if(c&&!n)return I(`a branch named '${t}' already exists`);let f;if(r){let C=await He(e,r,`invalid reference: ${r}`);if(M(C))return C;f=C.hash}else{let C=await Z(e);if(!C){let v=await Q(e),D=v?.type==="symbolic"?v.target.replace(/^refs\/heads\//,""):"";n&&c&&await de(e,a),await ze(e,"HEAD",a),await ht(e);let O=await yn(e);return await re(e,o,"HEAD",null,te,`checkout: moving from ${D} to ${t}`),{stdout:"",stderr:`Switched to a new branch '${t}'
752
- ${O}`,exitCode:0}}f=C}let l=await bs(e);if(l)return l;let d=await Z(e),u=await K(e);if(r){let C=jn(u);if(C)return C}let m=await j(e,f);if(d&&d!==f){let C=await j(e,d);if(C.tree!==m.tree){let v=await An(e,C.tree,m.tree,u);if(!v.success)return v.errorOutput??L("error: checkout would overwrite local changes");u={version:2,entries:v.newEntries},await ae(e,u),await De(e,v.worktreeOps)}}let h=await Q(e),p="";h?.type==="direct"&&d&&(p=await ao(e,d,f));let g=jg(h,d);await X(e,a,f),await ze(e,"HEAD",a),await ht(e);let w=await yn(e),y=r??"HEAD";n&&c?c!==f&&await re(e,o,a,c,f,`branch: Reset to ${y}`):await re(e,o,a,null,f,`branch: Created from ${y}`),await re(e,o,"HEAD",d,f,`checkout: moving from ${g} to ${t}`);let x="";if(i){let C=i.replace(/^refs\/remotes\//,"").split("/"),v=C[0]??"",D=`refs/heads/${C.slice(1).join("/")}`,O=await he(e);O[`branch "${t}"`]={...O[`branch "${t}"`],remote:v,merge:D},await Ye(e,O),x=`branch '${t}' set up to track '${v}/${C.slice(1).join("/")}'.
753
+ Consider "git rebase --quit" or "git worktree add".`):null}async function Ng(e,t,n){let r=await bs(e);if(r)return r;let o=await so(e);return o?Jl(e,o.name,o.refName,o.hash,t,n):I("no previous branch")}async function Xl(e,t,n,r,o,s,i){let a=`refs/heads/${t}`,c=await F(e,a);if(c&&!n)return I(`a branch named '${t}' already exists`);let f;if(r){let P=await He(e,r,`invalid reference: ${r}`);if(M(P))return P;f=P.hash}else{let P=await Z(e);if(!P){let v=await Q(e),D=v?.type==="symbolic"?v.target.replace(/^refs\/heads\//,""):"";n&&c&&await de(e,a),await ze(e,"HEAD",a),await pt(e);let O=await yn(e);return await re(e,o,"HEAD",null,te,`checkout: moving from ${D} to ${t}`),{stdout:"",stderr:`Switched to a new branch '${t}'
754
+ ${O}`,exitCode:0}}f=P}let l=await bs(e);if(l)return l;let d=await Z(e),u=await K(e);if(r){let P=jn(u);if(P)return P}let m=await j(e,f);if(d&&d!==f){let P=await j(e,d);if(P.tree!==m.tree){let v=await An(e,P.tree,m.tree,u);if(!v.success)return v.errorOutput??L("error: checkout would overwrite local changes");u={version:2,entries:v.newEntries},await ae(e,u),await Me(e,v.worktreeOps)}}let h=await Q(e),p="";h?.type==="direct"&&d&&(p=await ao(e,d,f));let g=_g(h,d);await X(e,a,f),await ze(e,"HEAD",a),await pt(e);let w=await yn(e),y=r??"HEAD";n&&c?c!==f&&await re(e,o,a,c,f,`branch: Reset to ${y}`):await re(e,o,a,null,f,`branch: Created from ${y}`),await re(e,o,"HEAD",d,f,`checkout: moving from ${g} to ${t}`);let x="";if(i){let P=i.replace(/^refs\/remotes\//,"").split("/"),v=P[0]??"",D=`refs/heads/${P.slice(1).join("/")}`,O=await he(e);O[`branch "${t}"`]={...O[`branch "${t}"`],remote:v,merge:D},await Ye(e,O),x=`branch '${t}' set up to track '${v}/${P.slice(1).join("/")}'.
753
755
  `}else r&&(x=await co(e,t,r));await s?.hooks?.postCheckout?.({repo:e,prevHead:d,newHead:f,isBranchCheckout:!0});let b=n&&c?`Switched to and reset branch '${t}'
754
756
  `:`Switched to a new branch '${t}'
755
- `,k=p+b+w+x,E="";r&&(E=await ir(e,m.tree,u));let R=await he(e),P=await bn(e,R,t);return P&&(E+=or(P)),{stdout:E,stderr:k,exitCode:0}}async function Ql(e,t,n,r,o,s){let i=await bs(e);return i||ar(e,t,n,r,o,s)}async function Lg(e,t,n,r,o){let s=await bs(e);return s||Gn(e,n,r,o)}async function _g(e,t,n,r){let o=await bs(e);if(o)return o;let s=`refs/heads/${t}`;if(await F(e,s))return I(`a branch named '${t}' already exists`);let a=await K(e),c=jn(a);if(c)return c;let f=await Z(e),l=await Q(e),d="";if(l?.type==="direct"&&f&&(d=await vi(e,f)),e.workTree){let m=f?(await j(e,f)).tree:null,h=await Ge(e,[]),p=await An(e,m,h,a);if(!p.success)return p.errorOutput??L("error: checkout would overwrite local changes");await De(e,p.worktreeOps),await ae(e,{version:2,entries:p.newEntries})}else await ae(e,Ga());await ze(e,"HEAD",s),await ht(e);let u=await yn(e);return await r?.hooks?.postCheckout?.({repo:e,prevHead:f,newHead:te,isBranchCheckout:!0}),{stdout:"",stderr:`${d}Switched to a new branch '${t}'
756
- ${u}`,exitCode:0}}se();ie();Kr();ue();Fs();function td(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:S().alias("a").describe("Make an annotated tag object"),message:J.string().alias("m").describe("Tag message"),delete:S().alias("d").describe("Delete a tag"),force:S().alias("f").describe("Replace an existing tag"),list:J.string().alias("l").describe("List tags matching pattern")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(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 F(s,i);return a?(await de(s,i),{stdout:`Deleted tag '${n.name}' (was ${Y(a)})
757
+ `,k=p+b+w+x,E="";r&&(E=await ir(e,m.tree,u));let R=await he(e),C=await bn(e,R,t);return C&&(E+=or(C)),{stdout:E,stderr:k,exitCode:0}}async function Jl(e,t,n,r,o,s){let i=await bs(e);return i||ar(e,t,n,r,o,s)}async function Fg(e,t,n,r,o){let s=await bs(e);return s||Gn(e,n,r,o)}async function Ug(e,t,n,r){let o=await bs(e);if(o)return o;let s=`refs/heads/${t}`;if(await F(e,s))return I(`a branch named '${t}' already exists`);let a=await K(e),c=jn(a);if(c)return c;let f=await Z(e),l=await Q(e),d="";if(l?.type==="direct"&&f&&(d=await vi(e,f)),e.workTree){let m=f?(await j(e,f)).tree:null,h=await Ge(e,[]),p=await An(e,m,h,a);if(!p.success)return p.errorOutput??L("error: checkout would overwrite local changes");await Me(e,p.worktreeOps),await ae(e,{version:2,entries:p.newEntries})}else await ae(e,ja());await ze(e,"HEAD",s),await pt(e);let u=await yn(e);return await r?.hooks?.postCheckout?.({repo:e,prevHead:f,newHead:te,isBranchCheckout:!0}),{stdout:"",stderr:`${d}Switched to a new branch '${t}'
758
+ ${u}`,exitCode:0}}se();ie();Kr();ue();Fs();function ed(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:$().alias("a").describe("Make an annotated tag object"),message:J.string().alias("m").describe("Tag message"),delete:$().alias("d").describe("Delete a tag"),force:$().alias("f").describe("Replace an existing tag"),list:$().alias("l").describe("List tags matching pattern")},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(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 F(s,i);return a?(await de(s,i),{stdout:`Deleted tag '${n.name}' (was ${Y(a)})
757
759
  `,stderr:"",exitCode:0}):L(`error: tag '${n.name}' not found.
758
- `)}if(n.list!==void 0)return ed(s,n.list||void 0);if(n.name){let i=n.commit,a;if(i){let d=await vt(s,i,`Failed to resolve '${i}' as a valid ref.`);if(M(d))return d;a=d}else if(a=await Z(s),!a)return I("Failed to resolve 'HEAD' as a valid ref.");let c=`refs/tags/${n.name}`;if(await F(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 d=await Qe(s,r.env);if(M(d))return d;let u=At(n.message),m=uc({type:"tag",object:a,objectType:"commit",name:n.name,tagger:d,message:u}),h=await $e(s,"tag",m);await X(s,c,h)}else await X(s,c,a);return{stdout:"",stderr:"",exitCode:0}}return ed(s)}})}async function ed(e,t){let n=await ge(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=>Jn(t,o,0)===0)),r.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${r.join(`
760
+ `)}if(n.list)return Ql(s,n.name||void 0);if(n.name){let i=n.commit,a;if(i){let d=await vt(s,i,`Failed to resolve '${i}' as a valid ref.`);if(M(d))return d;a=d}else if(a=await Z(s),!a)return I("Failed to resolve 'HEAD' as a valid ref.");let c=`refs/tags/${n.name}`;if(await F(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 d=await Qe(s,r.env);if(M(d))return d;let u=At(n.message),m=dc({type:"tag",object:a,objectType:"commit",name:n.name,tagger:d,message:u}),h=await Se(s,"tag",m);await X(s,c,h)}else await X(s,c,a);return{stdout:"",stderr:"",exitCode:0}}return Ql(s)}})}async function Ql(e,t){let n=await ge(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=>Jn(t,o,0)===0)),r.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${r.join(`
759
761
  `)}
760
- `,stderr:"",exitCode:0}}var Ng={init:e=>bl(e),clone:(e,t)=>Yf(e,t),fetch:(e,t)=>ul(e,t),pull:(e,t)=>vl(e,t),push:(e,t)=>Hl(e,t),add:(e,t)=>Mc(e,t),blame:(e,t)=>gf(e,t),commit:(e,t)=>Xf(e,t),status:(e,t)=>Xl(e,t),log:(e,t)=>Rl(e,t),branch:(e,t)=>bf(e,t),tag:(e,t)=>td(e,t),checkout:(e,t)=>Ef(e,t),diff:(e,t)=>al(e,t),reset:(e,t)=>jl(e,t),merge:(e,t)=>Pl(e,t),"cherry-pick":(e,t)=>Df(e,t),revert:(e,t)=>Nl(e,t),rebase:(e,t)=>Tl(e,t),mv:(e,t)=>Ol(e,t),rm:(e,t)=>Fl(e,t),remote:(e,t)=>Dl(e,t),config:(e,t)=>tl(e,t),show:(e,t)=>Ul(e,t),stash:(e,t)=>Yl(e,t),"rev-parse":(e,t)=>_l(e,t),"ls-files":(e,t)=>Cl(e,t),clean:(e,t)=>Mf(e,t),switch:(e,t)=>Jl(e,t),restore:(e,t)=>Ll(e,t),reflog:(e,t)=>Al(e,t),repack:(e,t)=>pl(e,t),gc:(e,t)=>gl(e,t),bisect:(e,t)=>tf(e,t)};function nd(e){let t=Uo("git",{description:"Git command"});for(let n of Object.values(Ng))n(t,e);return t}var jo=class{name="git";blocked;hooks;inner;locks=new WeakMap;async withLock(t,n){let r=this.locks.get(t)??Promise.resolve(),o,s=new Promise(i=>{o=i});this.locks.set(t,s),await r;try{return await n()}finally{o()}}constructor(t){this.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}:{},...t?.config?{configOverrides:t.config}:{}};this.inner=nd(r).toCommand()}exec=async(t,n)=>{let r=Fg(t),o=new Map;if(n.env)for(let[s,i]of Object.entries(n.env))o.set(s,i);return this.execute(r,{fs:n.fs,cwd:n.cwd,env:o,stdin:n.stdin??""})};execute=(t,n)=>this.withLock(n.fs,async()=>{let r=t[0]??"";if(this.blocked?.has(r))return{stdout:"",stderr:`git: '${r}' is not available in this environment
761
- `,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(ee(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 Fg(e){let t=[],n="",r=0;for(;r<e.length;){let o=e[r];if(o==='"'){for(r++;r<e.length&&e[r]!=='"';){if(e[r]==="\\"&&r+1<e.length){let s=e[r+1];if(s==='"'||s==="\\"){n+=s,r+=2;continue}}n+=e[r],r++}r++}else if(o==="'"){for(r++;r<e.length&&e[r]!=="'";)n+=e[r],r++;r++}else o===" "||o===" "?(n.length>0&&(t.push(n),n=""),r++):(n+=o,r++)}return n.length>0&&t.push(n),t.length>0&&t[0]==="git"&&t.shift(),t}function Ug(e){return new jo(e)}var rd=new TextEncoder,Bg=new TextDecoder;function ln(e){let t=[];for(let n of e.split("/"))n==="."||n===""||(n===".."?t.pop():t.push(n));return"/"+t.join("/")}function Go(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var ha=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:16877,mtime:new Date}),t)for(let[n,r]of Object.entries(t)){let o=ln(n);this.ensureParents(o),this.data.set(o,{type:"file",content:typeof r=="string"?rd.encode(r):r,mode:33188,mtime:new Date})}}ensureParents(t){let n=Go(t);n!=="/"&&(this.data.has(n)||(this.ensureParents(n),this.data.set(n,{type:"directory",mode:16877,mtime:new Date})))}resolve(t){let n="",r=new Set;for(let o of ln(t).slice(1).split("/")){n=`${n}/${o}`;let s=0,i=this.data.get(n);for(;i?.type==="symlink"&&s<40;){if(r.has(n))throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`);r.add(n);let a=i.target;n=a.startsWith("/")?ln(a):ln(Go(n)+"/"+a),i=this.data.get(n),s++}if(s>=40)throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`)}return n}resolveParent(t){let n=ln(t);if(n==="/")return"/";let r=n.slice(1).split("/");if(r.length<=1)return n;let o="",s=new Set;for(let i=0;i<r.length-1;i++){o=`${o}/${r[i]}`;let a=this.data.get(o),c=0;for(;a?.type==="symlink"&&c<40;){if(s.has(o))throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`);s.add(o);let f=a.target;o=f.startsWith("/")?ln(f):ln(Go(o)+"/"+f),a=this.data.get(o),c++}}return`${o}/${r[r.length-1]}`}async readFile(t){return Bg.decode(await this.readFileBuffer(t))}async readFileBuffer(t){let n=this.data.get(this.resolve(t));if(!n)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);return n.content}async writeFile(t,n){let r=this.resolve(t);this.ensureParents(r),this.data.set(r,{type:"file",content:typeof n=="string"?rd.encode(n):n,mode:33188,mtime:new Date})}async exists(t){try{return this.data.has(this.resolve(t))}catch{return!1}}async stat(t){let n=this.data.get(this.resolve(t));if(!n)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);return{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:n.type==="file"?n.content.byteLength:0,mtime:n.mtime}}async lstat(t){let n=this.resolveParent(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);return{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:r.type==="symlink",mode:r.mode,size:r.type==="file"?r.content.byteLength:r.type==="symlink"?r.target.length:0,mtime:r.mtime}}async mkdir(t,n){let r=ln(t);if(this.data.has(r)){if(this.data.get(r).type!=="directory")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!n?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let o=Go(r);if(o!=="/"&&!this.data.has(o))if(n?.recursive)await this.mkdir(o,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(r,{type:"directory",mode:16877,mtime:new Date})}async readdir(t){let n=this.resolve(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(r.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let o=n==="/"?"/":`${n}/`,s=new Set;for(let i of this.data.keys())if(i!==n&&i.startsWith(o)){let c=i.slice(o.length).split("/")[0];c&&s.add(c)}return[...s].sort()}async rm(t,n){let r=ln(t),o=this.data.get(r);if(!o){if(n?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(o.type==="directory"){if(!n?.recursive&&(await this.readdir(r)).length>0)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);let s=r==="/"?"/":`${r}/`;for(let i of[...this.data.keys()])i.startsWith(s)&&this.data.delete(i)}this.data.delete(r)}async readlink(t){let n=this.resolveParent(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}async symlink(t,n){let r=ln(n);if(this.data.has(r))throw new Error(`EEXIST: file already exists, symlink '${n}'`);this.ensureParents(r),this.data.set(r,{type:"symlink",target:t,mode:40960,mtime:new Date})}};$n();export{jo as Git,ha as MemoryFileSystem,Qm as composeGitHooks,Ug as createGit,Xn as findRepo,ee as isRejection};
762
+ `,stderr:"",exitCode:0}}var Bg={init:e=>wl(e),clone:(e,t)=>Vf(e,t),fetch:(e,t)=>dl(e,t),pull:(e,t)=>Tl(e,t),push:(e,t)=>vl(e,t),add:(e,t)=>Dc(e,t),blame:(e,t)=>pf(e,t),commit:(e,t)=>Yf(e,t),status:(e,t)=>Yl(e,t),log:(e,t)=>kl(e,t),branch:(e,t)=>wf(e,t),tag:(e,t)=>ed(e,t),checkout:(e,t)=>yf(e,t),diff:(e,t)=>il(e,t),reset:(e,t)=>Ml(e,t),merge:(e,t)=>Pl(e,t),"cherry-pick":(e,t)=>Af(e,t),revert:(e,t)=>_l(e,t),rebase:(e,t)=>Sl(e,t),mv:(e,t)=>Cl(e,t),rm:(e,t)=>Nl(e,t),remote:(e,t)=>Al(e,t),config:(e,t)=>el(e,t),show:(e,t)=>Fl(e,t),stash:(e,t)=>Vl(e,t),"rev-parse":(e,t)=>Ll(e,t),"ls-files":(e,t)=>xl(e,t),clean:(e,t)=>Df(e,t),switch:(e,t)=>Zl(e,t),restore:(e,t)=>Gl(e,t),reflog:(e,t)=>Hl(e,t),repack:(e,t)=>hl(e,t),gc:(e,t)=>pl(e,t),bisect:(e,t)=>ef(e,t)};function td(e){let t=Uo("git",{description:"Git command"});for(let n of Object.values(Bg))n(t,e);return t}var jo=class{name="git";defaultFs;blocked;hooks;inner;locks=new WeakMap;async withLock(t,n){let r=this.locks.get(t)??Promise.resolve(),o,s=new Promise(i=>{o=i});this.locks.set(t,s),await r;try{return await n()}finally{o()}}constructor(t){this.defaultFs=t?.fs,this.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}:{},...t?.config?{configOverrides:t.config}:{}};this.inner=td(r).toCommand()}exec=async(t,n)=>{let r=n?.fs??this.defaultFs;if(!r)throw new Error("No filesystem: pass `fs` in exec() options or in createGit()");let o=n?.cwd??"/",s=Wg(t),i=new Map;if(n?.env)for(let[a,c]of Object.entries(n.env))i.set(a,c);return this.execute(s,{fs:r,cwd:o,env:i,stdin:n?.stdin??""})};execute=(t,n)=>this.withLock(n.fs,async()=>{let r=t[0]??"";if(this.blocked?.has(r))return{stdout:"",stderr:`git: '${r}' is not available in this environment
763
+ `,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(ee(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 Wg(e){let t=[],n="",r=0;for(;r<e.length;){let o=e[r];if(o==='"'){for(r++;r<e.length&&e[r]!=='"';){if(e[r]==="\\"&&r+1<e.length){let s=e[r+1];if(s==='"'||s==="\\"){n+=s,r+=2;continue}}n+=e[r],r++}r++}else if(o==="'"){for(r++;r<e.length&&e[r]!=="'";)n+=e[r],r++;r++}else o===" "||o===" "?(n.length>0&&(t.push(n),n=""),r++):(n+=o,r++)}return n.length>0&&t.push(n),t.length>0&&t[0]==="git"&&t.shift(),t}function qg(e){return new jo(e)}var nd=new TextEncoder,zg=new TextDecoder;function ln(e){let t=[];for(let n of e.split("/"))n==="."||n===""||(n===".."?t.pop():t.push(n));return"/"+t.join("/")}function Go(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var ha=class{data=new Map;constructor(t){if(this.data.set("/",{type:"directory",mode:16877,mtime:new Date}),t)for(let[n,r]of Object.entries(t)){let o=ln(n);this.ensureParents(o),this.data.set(o,{type:"file",content:typeof r=="string"?nd.encode(r):r,mode:33188,mtime:new Date})}}ensureParents(t){let n=Go(t);n!=="/"&&(this.data.has(n)||(this.ensureParents(n),this.data.set(n,{type:"directory",mode:16877,mtime:new Date})))}resolve(t){let n="",r=new Set;for(let o of ln(t).slice(1).split("/")){n=`${n}/${o}`;let s=0,i=this.data.get(n);for(;i?.type==="symlink"&&s<40;){if(r.has(n))throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`);r.add(n);let a=i.target;n=a.startsWith("/")?ln(a):ln(Go(n)+"/"+a),i=this.data.get(n),s++}if(s>=40)throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`)}return n}resolveParent(t){let n=ln(t);if(n==="/")return"/";let r=n.slice(1).split("/");if(r.length<=1)return n;let o="",s=new Set;for(let i=0;i<r.length-1;i++){o=`${o}/${r[i]}`;let a=this.data.get(o),c=0;for(;a?.type==="symlink"&&c<40;){if(s.has(o))throw new Error(`ELOOP: too many levels of symbolic links, '${t}'`);s.add(o);let f=a.target;o=f.startsWith("/")?ln(f):ln(Go(o)+"/"+f),a=this.data.get(o),c++}}return`${o}/${r[r.length-1]}`}async readFile(t){return zg.decode(await this.readFileBuffer(t))}async readFileBuffer(t){let n=this.data.get(this.resolve(t));if(!n)throw new Error(`ENOENT: no such file or directory, open '${t}'`);if(n.type!=="file")throw new Error(`EISDIR: illegal operation on a directory, read '${t}'`);return n.content}async writeFile(t,n){let r=this.resolve(t);this.ensureParents(r),this.data.set(r,{type:"file",content:typeof n=="string"?nd.encode(n):n,mode:33188,mtime:new Date})}async exists(t){try{return this.data.has(this.resolve(t))}catch{return!1}}async stat(t){let n=this.data.get(this.resolve(t));if(!n)throw new Error(`ENOENT: no such file or directory, stat '${t}'`);return{isFile:n.type==="file",isDirectory:n.type==="directory",isSymbolicLink:!1,mode:n.mode,size:n.type==="file"?n.content.byteLength:0,mtime:n.mtime}}async lstat(t){let n=this.resolveParent(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${t}'`);return{isFile:r.type==="file",isDirectory:r.type==="directory",isSymbolicLink:r.type==="symlink",mode:r.mode,size:r.type==="file"?r.content.byteLength:r.type==="symlink"?r.target.length:0,mtime:r.mtime}}async mkdir(t,n){let r=ln(t);if(this.data.has(r)){if(this.data.get(r).type!=="directory")throw new Error(`EEXIST: file already exists, mkdir '${t}'`);if(!n?.recursive)throw new Error(`EEXIST: directory already exists, mkdir '${t}'`);return}let o=Go(r);if(o!=="/"&&!this.data.has(o))if(n?.recursive)await this.mkdir(o,{recursive:!0});else throw new Error(`ENOENT: no such file or directory, mkdir '${t}'`);this.data.set(r,{type:"directory",mode:16877,mtime:new Date})}async readdir(t){let n=this.resolve(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, scandir '${t}'`);if(r.type!=="directory")throw new Error(`ENOTDIR: not a directory, scandir '${t}'`);let o=n==="/"?"/":`${n}/`,s=new Set;for(let i of this.data.keys())if(i!==n&&i.startsWith(o)){let c=i.slice(o.length).split("/")[0];c&&s.add(c)}return[...s].sort()}async rm(t,n){let r=ln(t),o=this.data.get(r);if(!o){if(n?.force)return;throw new Error(`ENOENT: no such file or directory, rm '${t}'`)}if(o.type==="directory"){if(!n?.recursive&&(await this.readdir(r)).length>0)throw new Error(`ENOTEMPTY: directory not empty, rm '${t}'`);let s=r==="/"?"/":`${r}/`;for(let i of[...this.data.keys()])i.startsWith(s)&&this.data.delete(i)}this.data.delete(r)}async readlink(t){let n=this.resolveParent(t),r=this.data.get(n);if(!r)throw new Error(`ENOENT: no such file or directory, readlink '${t}'`);if(r.type!=="symlink")throw new Error(`EINVAL: invalid argument, readlink '${t}'`);return r.target}async symlink(t,n){let r=ln(n);if(this.data.has(r))throw new Error(`EEXIST: file already exists, symlink '${n}'`);this.ensureParents(r),this.data.set(r,{type:"symlink",target:t,mode:40960,mtime:new Date})}};Sn();export{jo as Git,ha as MemoryFileSystem,eh as composeGitHooks,qg as createGit,Xn as findRepo,ee as isRejection};