just-git 1.2.12 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- var bd=Object.defineProperty;var Os=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Ee=(e,t)=>()=>(e&&(t=e(e=0)),t);var yd=(e,t)=>{for(var n in t)bd(e,n,{get:t[n],enumerable:!0})};function Ts(e){if(e==="")return".";if(e==="/")return"/";let t=e.charCodeAt(0)===47,n=e.charCodeAt(e.length-1)===47,r=e.split("/"),o=[];for(let i of r)i===""||i==="."||(i===".."?t||o.length>0&&o[o.length-1]!==".."?o.pop():o.push(".."):o.push(i));let s=o.join("/");return t&&(s=`/${s}`),n&&s.length>1&&!s.endsWith("/")&&(s+="/"),s||(t?"/":n?"./":".")}function S(...e){if(e.length===0)return".";let t=e.filter(n=>n!=="").join("/");return t===""?".":Ts(t)}function vt(...e){let t="";for(let n=e.length-1;n>=0;n--){let r=e[n];if(r&&(t=t?`${r}/${t}`:r,r.charCodeAt(0)===47))break}return Ts(t||".")}function Qt(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 _r(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 nt(e,t){let n=Ts(e),r=Ts(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,m=s.slice(f),u=[];for(let h=0;h<d;h++)u.push("..");for(let h of m)u.push(h);return u.join("/")||"."}var ue=Ee(()=>{"use strict"});function Vo(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 Ma(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 m=c[f+1];switch(l(),m){case"\\":r+="\\";break;case'"':r+='"';break;case"n":r+=`
2
- `;break;case"t":r+=" ";break;case"b":r+="\b";break;default:r+="\\",r+=m;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 Cd(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=Vo(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:m}=Ma(l,r,o);a[f]=d,o+=m}continue}o++}return t}function Yo(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=Vo(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:m}=Ma(l,r,o);f in a?a[f].push(d):a[f]=[d],o+=m}continue}o++}return t}function Xo(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
- `: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} = ${Xo(s)}`)}return`${t.join(`
6
- `)}
7
- `}function Jo(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=Vo(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 m=l.indexOf("=");(m===-1?l.toLowerCase():l.slice(0,m).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 Pd(e,t,n,r){let o=e.split(`
8
- `),s=Jo(o,t,n),i=` ${n} = ${Xo(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 $d(e,t,n){let r=e.split(`
10
- `),o=Jo(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 pe(e){let t=S(e.gitDir,"config");if(!await e.fs.exists(t))return{};let n=await e.fs.readFile(t);return Cd(n)}async function Hs(e){let t=S(e.gitDir,"config");return await e.fs.exists(t)?e.fs.readFile(t):""}async function Ze(e,t){let n=S(e.gitDir,"config");await e.fs.writeFile(n,Zo(t))}async function Re(e,t){let n=e.configOverrides,r=n?.locked?.[t];if(r!==void 0)return r;let o=await pe(e),{section:s,key:i}=Fr(t),a=o[s]?.[i];return a!==void 0?a:n?.defaults?.[t]}async function Qo(e,t,n){let r=await Hs(e),{section:o,key:s}=Fr(t),i=Pd(r,o,s,n),a=S(e.gitDir,"config");await e.fs.writeFile(a,i)}async function ja(e,t){let n=e.configOverrides,r=n?.locked?.[t];if(r!==void 0)return[r];let o=await Hs(e);if(o){let i=Yo(o),{section:a,key:c}=Fr(t),f=i[a]?.[c];if(f&&f.length>0)return f}let s=n?.defaults?.[t];return s!==void 0?[s]:[]}function Od(e,t,n,r){let o=e.split(`
12
- `),s=Jo(o,t,n),i=` ${n} = ${Xo(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 Ga(e,t,n){let r=await Hs(e),{section:o,key:s}=Fr(t),i=Od(r,o,s,n),a=S(e.gitDir,"config");await e.fs.writeFile(a,i)}async function La(e,t){let n=await Hs(e),{section:r,key:o}=Fr(t),s=$d(n,r,o);if(!s.found)return!1;let i=S(e.gitDir,"config");return await e.fs.writeFile(i,s.text),!0}function Fr(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 Be=Ee(()=>{"use strict";ue()});function As(e,t){return Na(e,t,"author")}function Ur(e,t){return Na(e,t,"committer")}async function Na(e,t,n){let r=Id[n],o=e.identityOverride,{timestamp:s,timezone:i}=Sd(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 Re(e,"user.name")??o?.name,c=t.get(r.email)??await Re(e,"user.email")??o?.email;if(!a||!c)throw new Error(`${n.charAt(0).toUpperCase()}${n.slice(1)} identity unknown
1
+ var Hd=Object.defineProperty;var Is=(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 Re=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ad=(e,t)=>{for(var n in t)Hd(e,n,{get:t[n],enumerable:!0})};function Hs(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 S(...e){if(e.length===0)return".";let t=e.filter(n=>n!=="").join("/");return t===""?".":Hs(t)}function Tt(...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 Hs(t||".")}function Qt(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 Br(e,t){if(e==="")return"";let n=e.length;for(;n>1&&e.charCodeAt(n-1)===47;)n--;let r=e.slice(0,n);if(r==="/")return"";let o=r.lastIndexOf("/"),s=o===-1?r:r.slice(o+1);return t&&s.endsWith(t)&&s.length>t.length?s.slice(0,s.length-t.length):s}function st(e,t){let n=Hs(e),r=Hs(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,m=s.slice(f),u=[];for(let h=0;h<d;h++)u.push("..");for(let h of m)u.push(h);return u.join("/")||"."}var me=Re(()=>{"use strict"});function Zo(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 La(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 m=c[f+1];switch(l(),m){case"\\":r+="\\";break;case'"':r+='"';break;case"n":r+=`
2
+ `;break;case"t":r+=" ";break;case"b":r+="\b";break;default:r+="\\",r+=m;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 Ld(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=Zo(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:m}=La(l,r,o);a[f]=d,o+=m}continue}o++}return t}function Jo(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=Zo(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:m}=La(l,r,o);f in a?a[f].push(d):a[f]=[d],o+=m}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
+ `:n+="\\n";break;case" ":n+="\\t";break;case"\b":n+="\\b";break;default:n+=o}}return t?`"${n}"`:n}function ei(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
+ `)}
7
+ `}function ti(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=Zo(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 m=l.indexOf("=");(m===-1?l.toLowerCase():l.slice(0,m).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 Nd(e,t,n,r){let o=e.split(`
8
+ `),s=ti(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 _d(e,t,n){let r=e.split(`
10
+ `),o=ti(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 we(e){let t=S(e.gitDir,"config");if(!await e.fs.exists(t))return{};let n=await e.fs.readFile(t);return Ld(n)}async function As(e){let t=S(e.gitDir,"config");return await e.fs.exists(t)?e.fs.readFile(t):""}async function Je(e,t){let n=S(e.gitDir,"config");await e.fs.writeFile(n,ei(t))}async function xe(e,t){let n=e.configOverrides,r=n?.locked?.[t];if(r!==void 0)return r;let o=await we(e),{section:s,key:i}=Wr(t),a=o[s]?.[i];return a!==void 0?a:n?.defaults?.[t]}async function ni(e,t,n){let r=await As(e),{section:o,key:s}=Wr(t),i=Nd(r,o,s,n),a=S(e.gitDir,"config");await e.fs.writeFile(a,i)}async function Na(e,t){let n=e.configOverrides,r=n?.locked?.[t];if(r!==void 0)return[r];let o=await As(e);if(o){let i=Jo(o),{section:a,key:c}=Wr(t),f=i[a]?.[c];if(f&&f.length>0)return f}let s=n?.defaults?.[t];return s!==void 0?[s]:[]}function Fd(e,t,n,r){let o=e.split(`
12
+ `),s=ti(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 _a(e,t,n){let r=await As(e),{section:o,key:s}=Wr(t),i=Fd(r,o,s,n),a=S(e.gitDir,"config");await e.fs.writeFile(a,i)}async function Fa(e,t){let n=await As(e),{section:r,key:o}=Wr(t),s=_d(n,r,o);if(!s.found)return!1;let i=S(e.gitDir,"config");return await e.fs.writeFile(i,s.text),!0}function Wr(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 qe=Re(()=>{"use strict";me()});function Ds(e,t){return Ua(e,t,"author")}function qr(e,t){return Ua(e,t,"committer")}async function Ua(e,t,n){let r=Ud[n],o=e.identityOverride,{timestamp:s,timezone:i}=Bd(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 xe(e,"user.name")??o?.name,c=t.get(r.email)??await xe(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,97 +18,97 @@ Run
18
18
 
19
19
  git config user.email "you@example.com"
20
20
  git config user.name "Your Name"
21
- `);return{name:a,email:c,timestamp:s,timezone:i}}async function en(e,t){try{let n=await Ur(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 Sd(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:vd(n)}}function vd(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 Id,On=Ee(()=>{"use strict";Be();Id={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 In(e){let t="";for(let n=0;n<20;n++)t+=_a[e[n]];return t}function Br(e,t){let n="";for(let r=0;r<20;r++)n+=_a[e[t+r]];return n}function Tt(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,_a,mt=Ee(()=>{"use strict";te="0000000000000000000000000000000000000000",_a=(()=>{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 Fa(e){return e.length===4&&e.toLowerCase()===".git"}function Zn(e){if(e.length===0||e.includes("\0")||e.charCodeAt(0)===47||e.charCodeAt(e.length-1)===47)return!1;let t=e.split("/");for(let n of t)if(n.length===0||n==="."||n===".."||Fa(n))return!1;return!0}function Ds(e,t){return t===e?!1:e==="/"?t.startsWith("/")&&t.length>1:t.startsWith(e+"/")}function Ua(e){if(e.length===0||e.charCodeAt(0)===47)return!1;let t=e.split("/");for(let n of t)if(n===".."||Fa(n))return!1;return!0}var Ms=Ee(()=>{"use strict"});function ei(e){return typeof e=="string"?Td.encode(e):e}function Hd(){if(typeof globalThis.Bun<"u")return()=>{let e=new Bun.CryptoHasher("sha1"),t={update(n){return e.update(ei(n)),t},hex:()=>Promise.resolve(e.digest("hex"))};return t};try{let e=Os(["node","crypto"].join(":"));if(typeof e.createHash=="function")return()=>{let t=e.createHash("sha1"),n={update(r){return t.update(ei(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(ei(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 In(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 vn(e){return Ba().update(e).hex()}var Td,Ba,Sn,Jn=Ee(()=>{"use strict";mt();Td=new TextEncoder;Ba=Hd(),Sn=Ba});async function V(e){let t=S(e.gitDir,"index");if(!await e.fs.exists(t))return{version:ti,entries:[]};let n=await e.fs.readFileBuffer(t);return Ad(n)}async function ce(e,t){let n=S(e.gitDir,"index"),r=await Dd(t);await e.fs.writeFile(n,r)}function xt(e,t){if(!Zn(t.path))throw new Error(`refusing to add unsafe path to index: '${t.path}'`);let n;return t.stage===0?n=e.entries.filter(r=>r.path!==t.path):n=e.entries.filter(r=>!(r.path===t.path&&r.stage===t.stage)),n.push(t),n.sort(ni),{...e,entries:n}}function ft(e,t){return{...e,entries:e.entries.filter(n=>n.path!==t)}}function js(e,t,n=0){return e.entries.find(r=>r.path===t&&r.stage===n)}function Ht(e){return e.entries.some(t=>t.stage>0)}function Wt(e){return[...new Set(e.entries.filter(t=>t.stage>0).map(t=>t.path))]}function Me(e){return e.entries.filter(t=>t.stage===0)}function qa(){return{version:ti,entries:[]}}function Gs(e){let t=[...e].sort(ni);return{version:ti,entries:t}}function Ie(){return{ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,uid:0,gid:0,size:0}}function Ad(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=0,r=t.getUint32(n);if(n+=4,r!==Wa)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),m=In(d);n+=20;let u=t.getUint16(n);n+=2;let h=u>>12&3,p=u&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:m,stage:h,stat:f})}return{version:o,entries:i}}async function Dd(e){let t=new TextEncoder,n=[...e.entries].sort(ni),r=[],o=12;for(let m of n){let u=t.encode(m.path);r.push(u);let h=62+u.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,Wa),c+=4,a.setUint32(c,e.version),c+=4,a.setUint32(c,n.length),c+=4;for(let m=0;m<n.length;m++){let u=n[m],h=r[m],p=c;a.setUint32(c,u.stat.ctimeSeconds),a.setUint32(c+4,u.stat.ctimeNanoseconds),a.setUint32(c+8,u.stat.mtimeSeconds),a.setUint32(c+12,u.stat.mtimeNanoseconds),a.setUint32(c+16,u.stat.dev),a.setUint32(c+20,u.stat.ino),a.setUint32(c+24,u.mode),a.setUint32(c+28,u.stat.uid),a.setUint32(c+32,u.stat.gid),a.setUint32(c+36,u.stat.size),c+=40;let g=Tt(u.hash);i.set(g,c),c+=20;let w=Math.min(h.byteLength,4095),y=(u.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 vn(f),d=Tt(l);return i.set(d,c),i}function ni(e,t){return e.path<t.path?-1:e.path>t.path?1:e.stage-t.stage}var Wa,ti,Ce=Ee(()=>{"use strict";mt();Ms();ue();Jn();Wa=1145655875,ti=2});var Md,Ls,za=Ee(()=>{"use strict";Md=new Set(["tree","commit","tag"]),Ls=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(!Md.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 ri(e){let t=4294967295;for(let n=0;n<e.byteLength;n++)t=Ka[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var Ka,Va=Ee(()=>{"use strict";Ka=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;Ka[e]=t}});function rc(e){let t=nc(e);return tc(e.subarray(t,-4),{i:2})}function ai(e){let t=nc(e),n={i:2},r=tc(e.subarray(t),n),o=ec(n.p);return{result:r,bytesConsumed:t+o+4}}var zt,yr,jd,Ya,Xa,Gd,Za,Ja,Ld,ii,Wr,qr,Qa,Nd,_d,si,qt,oi,ec,Fd,tn,tc,nc,sc=Ee(()=>{"use strict";zt=Uint8Array,yr=Uint16Array,jd=Int32Array,Ya=new zt([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]),Xa=new zt([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]),Gd=new zt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Za=(e,t)=>{let n=new yr(31);for(let o=0;o<31;++o)n[o]=t+=1<<e[o-1];let r=new jd(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:Ja}=Za(Ya,2);Ja[28]=258;({b:Ld}=Za(Xa,0)),ii=new yr(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,ii[e]=((t&65280)>>8|(t&255)<<8)>>1}Wr=(e,t,n)=>{let r=e.length,o=0,s=new yr(t);for(;o<r;++o)e[o]&&++s[e[o]-1];let i=new yr(t);for(o=1;o<t;++o)i[o]=i[o-1]+s[o-1]<<1;let a;if(n){a=new yr(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 m=d|(1<<l)-1;d<=m;++d)a[ii[d]>>c]=f}}else for(a=new yr(r),o=0;o<r;++o)e[o]&&(a[o]=ii[i[e[o]-1]++]>>15-e[o]);return a},qr=new zt(288);for(let e=0;e<144;++e)qr[e]=8;for(let e=144;e<256;++e)qr[e]=9;for(let e=256;e<280;++e)qr[e]=7;for(let e=280;e<288;++e)qr[e]=8;Qa=new zt(32);for(let e=0;e<32;++e)Qa[e]=5;Nd=Wr(qr,9,1),_d=Wr(Qa,5,1),si=e=>{let t=e[0];for(let n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},qt=(e,t,n)=>{let r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},oi=(e,t)=>{let n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},ec=e=>(e+7)/8|0,Fd=(e,t,n)=>((t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new zt(e.subarray(t,n))),tn=(e,t)=>{let n=["unexpected EOF","invalid block type","invalid length/literal","invalid distance"];throw new Error(t||n[e]||"unknown inflate error")},tc=(e,t,n,r)=>{let o=e.length,s=r?r.length:0;if(!o||t.f&&!t.l)return n||new zt(0);let i=!n,a=i||t.i!=2,c=t.i;i&&(n=new zt(o*3));let f=y=>{let x=n.length;if(y>x){let b=new zt(Math.max(x*2,y));b.set(n),n=b}},l=t.f||0,d=t.p||0,m=t.b||0,u=t.l,h=t.d,p=t.m,g=t.n,w=o*8;do{if(!u){l=qt(e,d,1);let E=qt(e,d+1,3);if(d+=3,E)if(E==1)u=Nd,h=_d,p=9,g=5;else if(E==2){let k=qt(e,d,31)+257,R=qt(e,d+10,15)+4,P=k+qt(e,d+5,31)+1;d+=14;let C=new zt(P),H=new zt(19);for(let T=0;T<R;++T)H[Gd[T]]=qt(e,d+T*3,7);d+=R*3;let D=si(H),O=(1<<D)-1,A=Wr(H,D,1);for(let T=0;T<P;){let _=A[qt(e,d,O)];d+=_&15;let B=_>>4;if(B<16)C[T++]=B;else{let W=0,N=0;for(B==16?(N=3+qt(e,d,3),d+=2,W=C[T-1]):B==17?(N=3+qt(e,d,7),d+=3):B==18&&(N=11+qt(e,d,127),d+=7);N--;)C[T++]=W}}let G=C.subarray(0,k),v=C.subarray(k);p=si(G),g=si(v),u=Wr(G,p,1),h=Wr(v,g,1)}else tn(1);else{let k=ec(d)+4,R=e[k-4]|e[k-3]<<8,P=k+R;if(P>o){c&&tn(0);break}a&&f(m+R),n.set(e.subarray(k,P),m),t.b=m+=R,t.p=d=P*8,t.f=l;continue}if(d>w){c&&tn(0);break}}a&&f(m+131072);let y=(1<<p)-1,x=(1<<g)-1,b=d;for(;;b=d){let E=u[oi(e,d)&y],k=E>>4;if(d+=E&15,d>w){c&&tn(0);break}if(E||tn(2),k<256)n[m++]=k;else if(k==256){b=d,u=null;break}else{let R=k-254;if(k>264){let O=k-257,A=Ya[O];R=qt(e,d,(1<<A)-1)+Ja[O],d+=A}let P=h[oi(e,d)&x],C=P>>4;P||tn(3),d+=P&15;let H=Ld[C];if(C>3){let O=Xa[C];H+=oi(e,d)&(1<<O)-1,d+=O}if(d>w){c&&tn(0);break}a&&f(m+131072);let D=m+R;if(m<H){let O=s-H,A=Math.min(H,D);for(O+m<0&&tn(3);m<A;++m)n[m]=r[O+m]}for(;m<D;++m)n[m]=n[m-H]}}t.l=u,t.p=b,t.b=m,t.f=l,u&&(l=1,t.m=p,t.d=h,t.n=g)}while(!l);return m!=n.length&&i?Fd(n,0,m):n.subarray(0,m)},nc=e=>(((e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31)&&tn(0,"invalid zlib data"),e[1]&32&&tn(0,"zlib dictionaries are not supported"),2)});async function Ud(){let e;if(!(typeof document<"u"))try{e=Os(["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??ai}}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:rc,inflateWithConsumed:ai}}function ci(){return Bd??=Ud()}async function zr(e){return await(await ci()).deflateSync(e)}async function Er(e){return await(await ci()).inflateSync(e)}async function oc(e,t){let n=await ci(),{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 Bd,Ns=Ee(()=>{"use strict";sc();Bd=null});async function hc(e,t){let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=n.getUint32(0);if(r!==li)throw new Error(`Invalid pack signature: 0x${r.toString(16)} (expected 0x${li.toString(16)})`);let o=n.getUint32(4);if(o!==fc)throw new Error(`Unsupported pack version: ${o}`);if(e.byteLength>=32){let f=Br(e,e.byteLength-20),l=Sn();l.update(e.subarray(0,e.byteLength-20));let d=await l.hex();if(d!==f)throw new Error(`pack checksum mismatch: expected ${f}, computed ${d}`)}let s=n.getUint32(8),i=[],a=12;for(let f=0;f<s;f++){let l=await zd(e,a);i.push(l),a=l.nextOffset}return(await Kd(i,t)).map((f,l)=>({...f,offset:i[l].headerOffset,nextOffset:i[l].nextOffset}))}async function zd(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===Kr){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===di&&(c=Br(e,t),t+=20);let{result:f,bytesConsumed:l}=await oc(e.subarray(t),s);return{headerOffset:n,typeNum:o,inflated:f,baseOffset:a,baseHash:c,nextOffset:t+l}}async function Kd(e,t){let n=new Map;for(let s=0;s<e.length;s++)n.set(e[s].headerOffset,s);let r=new Array(e.length).fill(null);async function o(s,i=0){if(i>ic)throw new Error(`delta chain depth ${i} exceeds limit of ${ic}`);let a=r[s];if(a)return a;let c=e[s];if(c.typeNum!==Kr&&c.typeNum!==di){let u=Wd[c.typeNum];if(!u)throw new Error(`Unknown object type: ${c.typeNum}`);let h={type:u,content:c.inflated,hash:await fi(u,c.inflated)};return r[s]=h,h}if(c.typeNum===Kr){let u=n.get(c.baseOffset);if(u===void 0)throw new Error(`OFS_DELTA base not found at offset ${c.baseOffset}`);let h=await o(u,i+1),p=Vr(h.content,c.inflated),g={type:h.type,content:p,hash:await fi(h.type,p)};return r[s]=g,g}let f=await Vd(e,r,c.baseHash,o),l;if(f!==void 0)l=await o(f,i+1);else if(t){let u=await t(c.baseHash);u&&(l=u)}if(!l)throw new Error(`REF_DELTA base not found for hash ${c.baseHash}`);let d=Vr(l.content,c.inflated),m={type:l.type,content:d,hash:await fi(l.type,d)};return r[s]=m,m}for(let s=0;s<e.length;s++)await o(s);return r}async function Vd(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!==Kr&&s.typeNum!==di&&(await r(o)).hash===n)return o}}function Vr(e,t){let n=0,{value:r,newPos:o}=cc(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}=cc(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 _s(e){let t=[],n=new Map,r=new Uint8Array(12),o=new DataView(r.buffer);o.setUint32(0,li),o.setUint32(4,fc),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=ac(Kr,a.delta.byteLength),d=Xd(s-f),m=await zr(a.delta);t.push(l,d,m),s+=l.byteLength+d.byteLength+m.byteLength}else{let l=qd[a.type],d=ac(l,a.content.byteLength),m=await zr(a.content);t.push(d,m),s+=d.byteLength+m.byteLength}i.push({hash:a.hash,offset:c,nextOffset:s})}return{data:await Yd(t),entries:i}}async function Yd(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=Sn();o.update(n.subarray(0,r));let s=await o.hex();return n.set(Tt(s),r),n}function Xd(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 ac(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 cc(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 fi(e,t){let n=Zd.encode(`${e} ${t.byteLength}\0`),r=Sn();return r.update(n),r.update(t),r.hex()}var li,fc,lc,dc,uc,mc,Kr,di,Wd,qd,ic,Zd,Yr=Ee(()=>{"use strict";mt();Jn();Ns();li=1346454347,fc=2,lc=1,dc=2,uc=3,mc=4,Kr=6,di=7,Wd={[lc]:"commit",[dc]:"tree",[uc]:"blob",[mc]:"tag"},qd={commit:lc,tree:dc,blob:uc,tag:mc};ic=50;Zd=new TextEncoder});async function wc(e,t){let n=[...e].sort((u,h)=>u.hash<h.hash?-1:u.hash>h.hash?1:0),r=n.length,o=[];for(let u of n)u.offset>=2147483648&&o.push(BigInt(u.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,pc),c+=4,a.setUint32(c,gc),c+=4;let f=new Uint32Array(256);for(let u of n){let h=parseInt(u.hash.slice(0,2),16);for(let p=h;p<256;p++)f[p]++}for(let u=0;u<256;u++)a.setUint32(c,f[u]),c+=4;for(let u of n)i.set(Tt(u.hash),c),c+=20;for(let u of n)a.setUint32(c,u.crc),c+=4;let l=0;for(let u of n)u.offset>=2147483648?a.setUint32(c,2147483648|l++):a.setUint32(c,u.offset),c+=4;for(let u of o)a.setBigUint64(c,u),c+=8;i.set(t,c),c+=20;let d=Sn();d.update(i.subarray(0,c));let m=await d.hex();return i.set(Tt(m),c),i}async function bc(e){let n=(await hc(e)).map(o=>({hash:o.hash,offset:o.offset,crc:ri(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return wc(n,r)}async function yc(e,t){let n=t.map(o=>({hash:o.hash,offset:o.offset,crc:ri(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return wc(n,r)}var pc,gc,Kt,Fs=Ee(()=>{"use strict";mt();Jn();Va();Yr();pc=4285812579,gc=2,Kt=class{fanout;hashes;offsets;largeOffsets;count;constructor(t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(n.getUint32(0)!==pc)throw new Error("Invalid pack index: bad magic");if(n.getUint32(4)!==gc)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=Tt(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=Tt(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 m=d%2===0?this.hashes[f+(d>>1)]>>4&15:this.hashes[f+(d>>1)]&15,u=d%2===0?s[d>>1]>>4&15:s[d>>1]&15;if(m!==u){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 Jd,Qd,eu,Ec,Xr,kc=Ee(()=>{"use strict";mt();Fs();Yr();Ns();Jd=6,Qd=7,eu={1:"commit",2:"tree",3:"blob",4:"tag"},Ec=50,Xr=class{constructor(t,n){this.data=t;this.index=n instanceof Kt?n:new Kt(n)}index;hasObject(t){return this.index.has(t)}findByPrefix(t){return this.index.findByPrefix(t)}async readObject(t){let n=this.index.lookup(t);return n===null?null:this.readAt(n,0)}get objectCount(){return this.index.objectCount}async readAt(t,n){if(n>Ec)throw new Error(`delta chain depth ${n} exceeds limit of ${Ec}`);let r=this.data,o=t,s=r[o++],i=s>>4&7,a=s&15,c=4;for(;s&128;)s=r[o++],a|=(s&127)<<c,c+=7;if(i===Jd){let d=r[o++],m=d&127;for(;d&128;)m+=1,d=r[o++],m=(m<<7)+(d&127);let u=await Er(r.subarray(o)),h=await this.readAt(t-m,n+1);return{type:h.type,content:Vr(h.content,u)}}if(i===Qd){let d=Br(r,o);o+=20;let m=await Er(r.subarray(o)),u=this.index.lookup(d);if(u===null)throw new Error(`REF_DELTA base ${d} not found in pack`);let h=await this.readAt(u,n+1);return{type:h.type,content:Vr(h.content,m)}}let f=eu[i];if(!f)throw new Error(`Unknown pack object type: ${i}`);let l=await Er(r.subarray(o));if(l.byteLength!==a)throw new Error(`Pack inflate size mismatch at offset ${t}: got ${l.byteLength}, expected ${a}`);return{type:f,content:l}}}});function mi(e,t){let n=tu.encode(`${e} ${t.byteLength}\0`),r=new Uint8Array(n.byteLength+t.byteLength);return r.set(n),r.set(t,n.byteLength),r}function ru(e,t){let n=t.indexOf(0);if(n===-1)throw new Error(`Corrupt object ${e}: no null byte in header`);let r=nu.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 ui(e,t){return S(e,"objects",t.slice(0,2),t.slice(2))}var tu,nu,kr,hi=Ee(()=>{"use strict";mt();za();Fs();kc();Ns();ue();Jn();tu=new TextEncoder,nu=new TextDecoder;kr=class{constructor(t,n,r){this.fs=t;this.gitDir=n;this.cache=new Ls(r),this.packDir=S(n,"objects","pack")}packs=[];loadedPackNames=new Set;discoverPromise=null;cache;packDir;async write(t,n){let r=mi(t,n),o=await vn(r),s=ui(this.gitDir,o);if(await this.fs.exists(s))return o;let i=S(this.gitDir,"objects",o.slice(0,2));return await this.fs.mkdir(i,{recursive:!0}),await this.fs.writeFile(s,await zr(r)),o}async read(t){let n=this.cache.get(t);if(n)return n;let r=ui(this.gitDir,t);if(await this.fs.exists(r)){let o=await this.fs.readFileBuffer(r),s=await Er(o),i=await vn(s);if(i!==t)throw new Error(`corrupt loose object ${t}: SHA-1 mismatch (computed ${i})`);let a=ru(t,s);return this.cache.set(t,a),a}await this.discover();for(let o of this.packs){if(!o.index.has(t))continue;let i=await(await this.ensureReader(o)).readObject(t);if(i)return this.cache.set(t,i),i}throw new Error(`object ${t} not found`)}async exists(t){if(await this.fs.exists(ui(this.gitDir,t)))return!0;await this.discover();for(let n of this.packs)if(n.index.has(t))return!0;return!1}async ingestPack(t){if(t.byteLength<32)return 0;let n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=n.getUint32(0);if(r!==1346454347)throw new Error(`invalid pack signature: 0x${r.toString(16)} (expected 0x5041434b)`);let o=n.getUint32(4);if(o!==2)throw new Error(`unsupported pack version: ${o}`);let s=n.getUint32(8);if(s===0)return 0;let i=t.subarray(t.byteLength-20),a=In(i),c=await vn(t.subarray(0,t.byteLength-20));if(c!==a)throw new Error(`pack checksum mismatch: expected ${a}, computed ${c}`);await this.fs.mkdir(this.packDir,{recursive:!0});let f=`pack-${a}`,l=S(this.packDir,`${f}.pack`);await this.fs.writeFile(l,t);let d=await bc(t),m=S(this.packDir,`${f}.idx`);await this.fs.writeFile(m,d),this.loadedPackNames.add(f);let u=new Kt(d);return this.packs.push({name:f,index:u,reader:new Xr(t,u)}),s}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=S(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=S(this.packDir,`${t.name}.pack`),r=await this.fs.readFileBuffer(n);return t.reader=new Xr(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=S(this.packDir,`${r}.pack`);if(!await this.fs.exists(o))continue;let s=await this.fs.readFileBuffer(S(this.packDir,n));this.loadedPackNames.add(r),this.packs.push({name:r,index:new Kt(s),reader:null})}}}});function Zr(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 Jr(e){return`${e.name} <${e.email}> ${e.timestamp} ${e.timezone}`}var pi=Ee(()=>{"use strict"});function nn(e){let t=ou.decode(e),n=t.indexOf(`
21
+ `);return{name:a,email:c,timestamp:s,timezone:i}}async function en(e,t){try{let n=await qr(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 Bd(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 Ud,vn=Re(()=>{"use strict";qe();Ud={author:{name:"GIT_AUTHOR_NAME",email:"GIT_AUTHOR_EMAIL",date:"GIT_AUTHOR_DATE"},committer:{name:"GIT_COMMITTER_NAME",email:"GIT_COMMITTER_EMAIL",date:"GIT_COMMITTER_DATE"}}});function Tn(e){let t="";for(let n=0;n<20;n++)t+=Ba[e[n]];return t}function zr(e,t){let n="";for(let r=0;r<20;r++)n+=Ba[e[t+r]];return n}function Ht(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,Ba,ht=Re(()=>{"use strict";te="0000000000000000000000000000000000000000",Ba=(()=>{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 Wa(e){return e.length===4&&e.toLowerCase()===".git"}function tr(e){if(e.length===0||e.includes("\0")||e.charCodeAt(0)===47||e.charCodeAt(e.length-1)===47)return!1;let t=e.split("/");for(let n of t)if(n.length===0||n==="."||n===".."||Wa(n))return!1;return!0}function Ms(e,t){return t===e?!1:e==="/"?t.startsWith("/")&&t.length>1:t.startsWith(e+"/")}function qa(e){if(e.length===0||e.charCodeAt(0)===47)return!1;let t=e.split("/");for(let n of t)if(n===".."||Wa(n))return!1;return!0}var js=Re(()=>{"use strict"});function ri(e){return typeof e=="string"?qd.encode(e):e}function zd(){if(typeof globalThis.Bun<"u")return()=>{let e=new Bun.CryptoHasher("sha1"),t={update(n){return e.update(ri(n)),t},hex:()=>Promise.resolve(e.digest("hex"))};return t};try{let e=Is(["node","crypto"].join(":"));if(typeof e.createHash=="function")return()=>{let t=e.createHash("sha1"),n={update(r){return t.update(ri(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(ri(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 Tn(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 An(e){return za().update(e).hex()}var qd,za,Hn,nr=Re(()=>{"use strict";ht();qd=new TextEncoder;za=zd(),Hn=za});async function z(e){let t=S(e.gitDir,"index");if(!await e.fs.exists(t))return{version:si,entries:[]};let n=await e.fs.readFileBuffer(t);return Kd(n)}async function de(e,t){let n=S(e.gitDir,"index"),r=await Vd(t);await e.fs.writeFile(n,r)}function Ct(e,t){if(!tr(t.path))throw new Error(`refusing to add unsafe path to index: '${t.path}'`);let n;return t.stage===0?n=e.entries.filter(r=>r.path!==t.path):n=e.entries.filter(r=>!(r.path===t.path&&r.stage===t.stage)),n.push(t),n.sort(oi),{...e,entries:n}}function lt(e,t){return{...e,entries:e.entries.filter(n=>n.path!==t)}}function Gs(e,t,n=0){return e.entries.find(r=>r.path===t&&r.stage===n)}function At(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 Le(e){return e.entries.filter(t=>t.stage===0)}function Va(){return{version:si,entries:[]}}function Ls(e){let t=[...e].sort(oi);return{version:si,entries:t}}function Se(){return{ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,uid:0,gid:0,size:0}}function Kd(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=0,r=t.getUint32(n);if(n+=4,r!==Ka)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),m=Tn(d);n+=20;let u=t.getUint16(n);n+=2;let h=u>>12&3,p=u&4095,g,w;if(p<4095)w=new TextDecoder().decode(e.subarray(n,n+p)),g=p;else{let y=n;for(;y<e.byteLength&&e[y]!==0;)y++;w=new TextDecoder().decode(e.subarray(n,y)),g=y-n}let b=62+g+1,x=Math.ceil(b/8)*8;n=c+x,i.push({path:w,mode:l,hash:m,stage:h,stat:f})}return{version:o,entries:i}}async function Vd(e){let t=new TextEncoder,n=[...e.entries].sort(oi),r=[],o=12;for(let m of n){let u=t.encode(m.path);r.push(u);let h=62+u.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,Ka),c+=4,a.setUint32(c,e.version),c+=4,a.setUint32(c,n.length),c+=4;for(let m=0;m<n.length;m++){let u=n[m],h=r[m],p=c;a.setUint32(c,u.stat.ctimeSeconds),a.setUint32(c+4,u.stat.ctimeNanoseconds),a.setUint32(c+8,u.stat.mtimeSeconds),a.setUint32(c+12,u.stat.mtimeNanoseconds),a.setUint32(c+16,u.stat.dev),a.setUint32(c+20,u.stat.ino),a.setUint32(c+24,u.mode),a.setUint32(c+28,u.stat.uid),a.setUint32(c+32,u.stat.gid),a.setUint32(c+36,u.stat.size),c+=40;let g=Ht(u.hash);i.set(g,c),c+=20;let w=Math.min(h.byteLength,4095),b=(u.stage&3)<<12|w;a.setUint16(c,b),c+=2,i.set(h,c),c+=h.byteLength,i[c]=0,c+=1;let x=62+h.byteLength+1,y=Math.ceil(x/8)*8;c=p+y}let f=i.subarray(0,c),l=await An(f),d=Ht(l);return i.set(d,c),i}function oi(e,t){return e.path<t.path?-1:e.path>t.path?1:e.stage-t.stage}var Ka,si,Ce=Re(()=>{"use strict";ht();js();me();nr();Ka=1145655875,si=2});var Yd,Ns,Ya=Re(()=>{"use strict";Yd=new Set(["tree","commit","tag"]),Ns=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(!Yd.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 ii(e){let t=4294967295;for(let n=0;n<e.byteLength;n++)t=Xa[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var Xa,Za=Re(()=>{"use strict";Xa=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;Xa[e]=t}});function ic(e){let t=oc(e);return sc(e.subarray(t,-4),{i:2})}function li(e){let t=oc(e),n={i:2},r=sc(e.subarray(t),n),o=rc(n.p);return{result:r,bytesConsumed:t+o+4}}var qt,kr,Xd,Ja,Qa,Zd,ec,tc,Jd,fi,Kr,Vr,nc,Qd,eu,ai,Wt,ci,rc,tu,tn,sc,oc,ac=Re(()=>{"use strict";qt=Uint8Array,kr=Uint16Array,Xd=Int32Array,Ja=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]),Qa=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]),Zd=new qt([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ec=(e,t)=>{let n=new kr(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:tc}=ec(Ja,2);tc[28]=258;({b:Jd}=ec(Qa,0)),fi=new kr(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,fi[e]=((t&65280)>>8|(t&255)<<8)>>1}Kr=(e,t,n)=>{let r=e.length,o=0,s=new kr(t);for(;o<r;++o)e[o]&&++s[e[o]-1];let i=new kr(t);for(o=1;o<t;++o)i[o]=i[o-1]+s[o-1]<<1;let a;if(n){a=new kr(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 m=d|(1<<l)-1;d<=m;++d)a[fi[d]>>c]=f}}else for(a=new kr(r),o=0;o<r;++o)e[o]&&(a[o]=fi[i[e[o]-1]++]>>15-e[o]);return a},Vr=new qt(288);for(let e=0;e<144;++e)Vr[e]=8;for(let e=144;e<256;++e)Vr[e]=9;for(let e=256;e<280;++e)Vr[e]=7;for(let e=280;e<288;++e)Vr[e]=8;nc=new qt(32);for(let e=0;e<32;++e)nc[e]=5;Qd=Kr(Vr,9,1),eu=Kr(nc,5,1),ai=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},ci=(e,t)=>{let n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},rc=e=>(e+7)/8|0,tu=(e,t,n)=>((t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new qt(e.subarray(t,n))),tn=(e,t)=>{let n=["unexpected EOF","invalid block type","invalid length/literal","invalid distance"];throw new Error(t||n[e]||"unknown inflate error")},sc=(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=b=>{let x=n.length;if(b>x){let y=new qt(Math.max(x*2,b));y.set(n),n=y}},l=t.f||0,d=t.p||0,m=t.b||0,u=t.l,h=t.d,p=t.m,g=t.n,w=o*8;do{if(!u){l=Wt(e,d,1);let k=Wt(e,d+1,3);if(d+=3,k)if(k==1)u=Qd,h=eu,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),H=new qt(19);for(let T=0;T<R;++T)H[Zd[T]]=Wt(e,d+T*3,7);d+=R*3;let D=ai(H),O=(1<<D)-1,A=Kr(H,D,1);for(let T=0;T<C;){let F=A[Wt(e,d,O)];d+=F&15;let _=F>>4;if(_<16)P[T++]=_;else{let U=0,N=0;for(_==16?(N=3+Wt(e,d,3),d+=2,U=P[T-1]):_==17?(N=3+Wt(e,d,7),d+=3):_==18&&(N=11+Wt(e,d,127),d+=7);N--;)P[T++]=U}}let G=P.subarray(0,E),v=P.subarray(E);p=ai(G),g=ai(v),u=Kr(G,p,1),h=Kr(v,g,1)}else tn(1);else{let E=rc(d)+4,R=e[E-4]|e[E-3]<<8,C=E+R;if(C>o){c&&tn(0);break}a&&f(m+R),n.set(e.subarray(E,C),m),t.b=m+=R,t.p=d=C*8,t.f=l;continue}if(d>w){c&&tn(0);break}}a&&f(m+131072);let b=(1<<p)-1,x=(1<<g)-1,y=d;for(;;y=d){let k=u[ci(e,d)&b],E=k>>4;if(d+=k&15,d>w){c&&tn(0);break}if(k||tn(2),E<256)n[m++]=E;else if(E==256){y=d,u=null;break}else{let R=E-254;if(E>264){let O=E-257,A=Ja[O];R=Wt(e,d,(1<<A)-1)+tc[O],d+=A}let C=h[ci(e,d)&x],P=C>>4;C||tn(3),d+=C&15;let H=Jd[P];if(P>3){let O=Qa[P];H+=ci(e,d)&(1<<O)-1,d+=O}if(d>w){c&&tn(0);break}a&&f(m+131072);let D=m+R;if(m<H){let O=s-H,A=Math.min(H,D);for(O+m<0&&tn(3);m<A;++m)n[m]=r[O+m]}for(;m<D;++m)n[m]=n[m-H]}}t.l=u,t.p=y,t.b=m,t.f=l,u&&(l=1,t.m=p,t.d=h,t.n=g)}while(!l);return m!=n.length&&i?tu(n,0,m):n.subarray(0,m)},oc=e=>(((e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31)&&tn(0,"invalid zlib data"),e[1]&32&&tn(0,"zlib dictionaries are not supported"),2)});async function nu(){let e;if(!(typeof document<"u"))try{e=Is(["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??li}}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:ic,inflateWithConsumed:li}}function di(){return ru??=nu()}async function Rr(e){return await(await di()).deflateSync(e)}async function xr(e){return await(await di()).inflateSync(e)}async function cc(e,t){let n=await di(),{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 ru,_s=Re(()=>{"use strict";ac();ru=null});async function gc(e,t){let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=n.getUint32(0);if(r!==Fs)throw new Error(`Invalid pack signature: 0x${r.toString(16)} (expected 0x${Fs.toString(16)})`);let o=n.getUint32(4);if(o!==hi)throw new Error(`Unsupported pack version: ${o}`);if(e.byteLength>=32){let f=zr(e,e.byteLength-20),l=Hn();l.update(e.subarray(0,e.byteLength-20));let d=await l.hex();if(d!==f)throw new Error(`pack checksum mismatch: expected ${f}, computed ${d}`)}let s=n.getUint32(8),i=[],a=12;for(let f=0;f<s;f++){let l=await ou(e,a);i.push(l),a=l.nextOffset}return(await iu(i,t)).map((f,l)=>({...f,offset:i[l].headerOffset,nextOffset:i[l].nextOffset}))}async function ou(e,t){let n=t,r=e[t++],o=r>>4&7,s=r&15,i=4;for(;r&128;)r=e[t++],s|=(r&127)<<i,i+=7;let a,c;if(o===Yr){let d=e[t++];for(a=d&127;d&128;)a+=1,d=e[t++],a=(a<<7)+(d&127);a=n-a}else o===pi&&(c=zr(e,t),t+=20);let{result:f,bytesConsumed:l}=await cc(e.subarray(t),s);return{headerOffset:n,typeNum:o,inflated:f,baseOffset:a,baseHash:c,nextOffset:t+l}}async function iu(e,t){let n=new Map;for(let s=0;s<e.length;s++)n.set(e[s].headerOffset,s);let r=new Array(e.length).fill(null);async function o(s,i=0){if(i>fc)throw new Error(`delta chain depth ${i} exceeds limit of ${fc}`);let a=r[s];if(a)return a;let c=e[s];if(c.typeNum!==Yr&&c.typeNum!==pi){let u=su[c.typeNum];if(!u)throw new Error(`Unknown object type: ${c.typeNum}`);let h={type:u,content:c.inflated,hash:await ui(u,c.inflated)};return r[s]=h,h}if(c.typeNum===Yr){let u=n.get(c.baseOffset);if(u===void 0)throw new Error(`OFS_DELTA base not found at offset ${c.baseOffset}`);let h=await o(u,i+1),p=Xr(h.content,c.inflated),g={type:h.type,content:p,hash:await ui(h.type,p)};return r[s]=g,g}let f=await au(e,r,c.baseHash,o),l;if(f!==void 0)l=await o(f,i+1);else if(t){let u=await t(c.baseHash);u&&(l=u)}if(!l)throw new Error(`REF_DELTA base not found for hash ${c.baseHash}`);let d=Xr(l.content,c.inflated),m={type:l.type,content:d,hash:await ui(l.type,d)};return r[s]=m,m}for(let s=0;s<e.length;s++)await o(s);return r}async function au(e,t,n,r){for(let o=0;o<t.length;o++)if(t[o]?.hash===n)return o;for(let o=0;o<e.length;o++){let s=e[o];if(s.typeNum!==Yr&&s.typeNum!==pi&&(await r(o)).hash===n)return o}}function Xr(e,t){let n=0,{value:r,newPos:o}=lc(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}=lc(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 wc(e){let t=[],n=new Uint8Array(12),r=new DataView(n.buffer);r.setUint32(0,Fs),r.setUint32(4,hi),r.setUint32(8,e.length),t.push(n);for(let o of e){let s=pc[o.type],i=await Rr(o.content);t.push(mi(s,o.content.byteLength)),t.push(i)}return bc(t)}async function Us(e){let t=[],n=new Map,r=new Uint8Array(12),o=new DataView(r.buffer);o.setUint32(0,Fs),o.setUint32(4,hi),o.setUint32(8,e.length),t.push(r);let s=12,i=[];for(let a of e){let c=s;n.set(a.hash,s);let f=a.delta&&a.deltaBaseHash?n.get(a.deltaBaseHash):void 0;if(a.delta&&f!==void 0){let l=mi(Yr,a.delta.byteLength),d=cu(s-f),m=await Rr(a.delta);t.push(l,d,m),s+=l.byteLength+d.byteLength+m.byteLength}else{let l=pc[a.type],d=mi(l,a.content.byteLength),m=await Rr(a.content);t.push(d,m),s+=d.byteLength+m.byteLength}i.push({hash:a.hash,offset:c,nextOffset:s})}return{data:await bc(t),entries:i}}async function bc(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=Hn();o.update(n.subarray(0,r));let s=await o.hex();return n.set(Ht(s),r),n}function cu(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 mi(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 lc(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 ui(e,t){let n=fu.encode(`${e} ${t.byteLength}\0`),r=Hn();return r.update(n),r.update(t),r.hex()}var Fs,hi,dc,uc,mc,hc,Yr,pi,su,pc,fc,fu,Cr=Re(()=>{"use strict";ht();nr();_s();Fs=1346454347,hi=2,dc=1,uc=2,mc=3,hc=4,Yr=6,pi=7,su={[dc]:"commit",[uc]:"tree",[mc]:"blob",[hc]:"tag"},pc={commit:dc,tree:uc,blob:mc,tag:hc};fc=50;fu=new TextEncoder});async function kc(e,t){let n=[...e].sort((u,h)=>u.hash<h.hash?-1:u.hash>h.hash?1:0),r=n.length,o=[];for(let u of n)u.offset>=2147483648&&o.push(BigInt(u.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,yc),c+=4,a.setUint32(c,Ec),c+=4;let f=new Uint32Array(256);for(let u of n){let h=parseInt(u.hash.slice(0,2),16);for(let p=h;p<256;p++)f[p]++}for(let u=0;u<256;u++)a.setUint32(c,f[u]),c+=4;for(let u of n)i.set(Ht(u.hash),c),c+=20;for(let u of n)a.setUint32(c,u.crc),c+=4;let l=0;for(let u of n)u.offset>=2147483648?a.setUint32(c,2147483648|l++):a.setUint32(c,u.offset),c+=4;for(let u of o)a.setBigUint64(c,u),c+=8;i.set(t,c),c+=20;let d=Hn();d.update(i.subarray(0,c));let m=await d.hex();return i.set(Ht(m),c),i}async function Rc(e){let n=(await gc(e)).map(o=>({hash:o.hash,offset:o.offset,crc:ii(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return kc(n,r)}async function xc(e,t){let n=t.map(o=>({hash:o.hash,offset:o.offset,crc:ii(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return kc(n,r)}var yc,Ec,zt,Bs=Re(()=>{"use strict";ht();nr();Za();Cr();yc=4285812579,Ec=2,zt=class{fanout;hashes;offsets;largeOffsets;count;constructor(t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(n.getUint32(0)!==yc)throw new Error("Invalid pack index: bad magic");if(n.getUint32(4)!==Ec)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=Ht(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=Ht(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 m=d%2===0?this.hashes[f+(d>>1)]>>4&15:this.hashes[f+(d>>1)]&15,u=d%2===0?s[d>>1]>>4&15:s[d>>1]&15;if(m!==u){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 lu,du,uu,Cc,Zr,Pc=Re(()=>{"use strict";ht();Bs();Cr();_s();lu=6,du=7,uu={1:"commit",2:"tree",3:"blob",4:"tag"},Cc=50,Zr=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,0)}get objectCount(){return this.index.objectCount}async readAt(t,n){if(n>Cc)throw new Error(`delta chain depth ${n} exceeds limit of ${Cc}`);let r=this.data,o=t,s=r[o++],i=s>>4&7,a=s&15,c=4;for(;s&128;)s=r[o++],a|=(s&127)<<c,c+=7;if(i===lu){let d=r[o++],m=d&127;for(;d&128;)m+=1,d=r[o++],m=(m<<7)+(d&127);let u=await xr(r.subarray(o)),h=await this.readAt(t-m,n+1);return{type:h.type,content:Xr(h.content,u)}}if(i===du){let d=zr(r,o);o+=20;let m=await xr(r.subarray(o)),u=this.index.lookup(d);if(u===null)throw new Error(`REF_DELTA base ${d} not found in pack`);let h=await this.readAt(u,n+1);return{type:h.type,content:Xr(h.content,m)}}let f=uu[i];if(!f)throw new Error(`Unknown pack object type: ${i}`);let l=await xr(r.subarray(o));if(l.byteLength!==a)throw new Error(`Pack inflate size mismatch at offset ${t}: got ${l.byteLength}, expected ${a}`);return{type:f,content:l}}}});function wi(e,t){let n=mu.encode(`${e} ${t.byteLength}\0`),r=new Uint8Array(n.byteLength+t.byteLength);return r.set(n),r.set(t,n.byteLength),r}function pu(e,t){let n=t.indexOf(0);if(n===-1)throw new Error(`Corrupt object ${e}: no null byte in header`);let r=hu.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 gi(e,t){return S(e,"objects",t.slice(0,2),t.slice(2))}var mu,hu,Pr,bi=Re(()=>{"use strict";ht();Ya();Bs();Pc();Cr();_s();me();nr();mu=new TextEncoder,hu=new TextDecoder;Pr=class{constructor(t,n,r){this.fs=t;this.gitDir=n;this.cache=new Ns(r),this.packDir=S(n,"objects","pack")}packs=[];loadedPackNames=new Set;discoverPromise=null;cache;packDir;async write(t,n){let r=wi(t,n),o=await An(r),s=gi(this.gitDir,o);if(await this.fs.exists(s))return o;let i=S(this.gitDir,"objects",o.slice(0,2));return await this.fs.mkdir(i,{recursive:!0}),await this.fs.writeFile(s,await Rr(r)),o}async read(t){let n=this.cache.get(t);if(n)return n;let r=gi(this.gitDir,t);if(await this.fs.exists(r)){let o=await this.fs.readFileBuffer(r),s=await xr(o),i=await An(s);if(i!==t)throw new Error(`corrupt loose object ${t}: SHA-1 mismatch (computed ${i})`);let a=pu(t,s);return this.cache.set(t,a),a}await this.discover();for(let o of this.packs){if(!o.index.has(t))continue;let i=await(await this.ensureReader(o)).readObject(t);if(i)return this.cache.set(t,i),i}throw new Error(`object ${t} not found`)}async exists(t){if(await this.fs.exists(gi(this.gitDir,t)))return!0;await this.discover();for(let n of this.packs)if(n.index.has(t))return!0;return!1}async ingestPack(t){if(t.byteLength<32)return 0;let n=new DataView(t.buffer,t.byteOffset,t.byteLength),r=n.getUint32(0);if(r!==1346454347)throw new Error(`invalid pack signature: 0x${r.toString(16)} (expected 0x5041434b)`);let o=n.getUint32(4);if(o!==2)throw new Error(`unsupported pack version: ${o}`);let s=n.getUint32(8);if(s===0)return 0;let i=t.subarray(t.byteLength-20),a=Tn(i),c=await An(t.subarray(0,t.byteLength-20));if(c!==a)throw new Error(`pack checksum mismatch: expected ${a}, computed ${c}`);await this.fs.mkdir(this.packDir,{recursive:!0});let f=`pack-${a}`,l=S(this.packDir,`${f}.pack`);await this.fs.writeFile(l,t);let d=await Rc(t),m=S(this.packDir,`${f}.idx`);await this.fs.writeFile(m,d),this.loadedPackNames.add(f);let u=new zt(d);return this.packs.push({name:f,index:u,reader:new Zr(t,u)}),s}async ingestPackStream(t){let n=[];for await(let o of t)n.push(o);if(n.length===0)return 0;let r=await wc(n);return this.ingestPack(r)}invalidatePacks(){this.packs=[],this.loadedPackNames.clear(),this.discoverPromise=null,this.cache.clear()}async findByPrefix(t){if(t.length<4)return[];let n=t.slice(0,2),r=t.slice(2),o=S(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=S(this.packDir,`${t.name}.pack`),r=await this.fs.readFileBuffer(n);return t.reader=new Zr(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=S(this.packDir,`${r}.pack`);if(!await this.fs.exists(o))continue;let s=await this.fs.readFileBuffer(S(this.packDir,n));this.loadedPackNames.add(r),this.packs.push({name:r,index:new zt(s),reader:null})}}}});function Jr(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 Qr(e){return`${e.name} <${e.email}> ${e.timestamp} ${e.timezone}`}var yi=Re(()=>{"use strict"});function nn(e){let t=wu.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),m=f.slice(l+1);switch(d){case"tree":s=m;break;case"parent":i.push(m);break;case"author":a=Zr(m);break;case"committer":c=Zr(m);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 rn(e){let t=[];t.push(`tree ${e.tree}`);for(let n of e.parents)t.push(`parent ${n}`);return t.push(`author ${Jr(e.author)}`),t.push(`committer ${Jr(e.committer)}`),t.push(""),t.push(e.message),su.encode(t.join(`
25
- `))}var su,ou,hn=Ee(()=>{"use strict";pi();su=new TextEncoder,ou=new TextDecoder});function pn(e){let t=au.decode(e),n=t.indexOf(`
24
+ `)){let l=f.indexOf(" ");if(l===-1)continue;let d=f.slice(0,l),m=f.slice(l+1);switch(d){case"tree":s=m;break;case"parent":i.push(m);break;case"author":a=Jr(m);break;case"committer":c=Jr(m);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 rn(e){let t=[];t.push(`tree ${e.tree}`);for(let n of e.parents)t.push(`parent ${n}`);return t.push(`author ${Qr(e.author)}`),t.push(`committer ${Qr(e.committer)}`),t.push(""),t.push(e.message),gu.encode(t.join(`
25
+ `))}var gu,wu,gn=Re(()=>{"use strict";yi();gu=new TextEncoder,wu=new TextDecoder});function Kt(e){let t=yu.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),m=f.slice(l+1);switch(d){case"object":s=m;break;case"type":i=m;break;case"tag":a=m;break;case"tagger":c=Zr(m);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 Rc(e){let t=[];return t.push(`object ${e.object}`),t.push(`type ${e.objectType}`),t.push(`tag ${e.name}`),t.push(`tagger ${Jr(e.tagger)}`),t.push(""),t.push(e.message),iu.encode(t.join(`
29
- `))}var iu,au,Qr=Ee(()=>{"use strict";pi();iu=new TextEncoder,au=new TextDecoder});async function ht(e,t){return vn(mi(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 ye(e,t){return e.objectStore.read(t)}async function Vt(e,t){return e.objectStore.exists(t)}async function Us(e,t){return e.objectStore.ingestPack(t)}async function xc(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 Tn(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 re(e,t){let n=await ye(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return cu.decode(n.content)}async function Ct(e,t){let n=await ye(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 ye(e,t);if(n.type!=="commit")throw new Error(`Expected commit object for ${t}, got ${n.type}`);return nn(n.content)}async function Cc(e,t){let n=await ye(e,t);if(n.type!=="tag")throw new Error(`Expected tag object for ${t}, got ${n.type}`);return pn(n.content)}async function je(e,t){let n=t;for(let r=0;r<100;r++){let o=await ye(e,n);if(o.type==="commit")return n;if(o.type==="tag"){n=pn(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 cu,ie=Ee(()=>{"use strict";hi();hn();Qr();Jn();cu=new TextDecoder});function Pc(e){return typeof e=="string"?{type:"direct",hash:e}:e}var es,gi=Ee(()=>{"use strict";es={REGULAR:"100644",EXECUTABLE:"100755",SYMLINK:"120000",DIRECTORY:"040000",SUBMODULE:"160000"}});function lu(e,t,n){let r=0,o=!1,s=t;for(;s<e.length;s++){let a=e.charCodeAt(s);switch(a<128?fu[a]:0){case 1:break;case 2:if(r===46)return{len:-1,starConsumed:o};r=a;continue;case 3:if(r===64)return{len:-1,starConsumed:o};r=a;continue;case 4:return{len:-1,starConsumed:o};case 5:if(!n)return{len:-1,starConsumed:o};o=!0,r=a;continue;default:r=a;continue}break}let i=s-t;return i===0?{len:0,starConsumed:o}:e.charCodeAt(t)===46?{len:-1,starConsumed:o}:i>=wi.length&&e.slice(s-wi.length,s)===wi?{len:-1,starConsumed:o}:{len:i,starConsumed:o}}function ts(e,t=0){if(e==="@"||e.length===0)return!1;let n=0,r=0,o=!!(t&2);for(;n<=e.length;){let{len:s,starConsumed:i}=lu(e,n,o);if(s<0||s===0)return!1;i&&(o=!1),r++,n+=s+1}return!(e.charCodeAt(e.length-1)===46||!(t&1)&&r<2)}function gn(e){return!e||e.startsWith("-")?!1:ts(`refs/heads/${e}`,0)}function $c(e){return e?ts(`refs/tags/${e}`,0):!1}async function Ic(e,t){return e.refStore.readRef(t)}async function U(e,t){let n=t;for(let r=0;r<Oc;r++){let o=await Ic(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 Ic(e,"HEAD")}async function J(e){return U(e,"HEAD")}async function X(e,t,n){let r=e.hooks?await U(e,t):null;await e.refStore.writeRef(t,{type:"direct",hash:n}),e.hooks?.onRefUpdate?.({repo:e,ref:t,oldHash:r,newHash:n})}async function Ve(e,t,n){await e.refStore.writeRef(t,{type:"symbolic",target:n})}async function me(e,t){let n=e.hooks?await U(e,t):null;await e.refStore.deleteRef(t),await rs(e,t),e.hooks&&n&&e.hooks.onRefDelete?.({repo:e,ref:t,oldHash:n})}async function we(e,t="refs"){return e.refStore.listRefs(t)}function xe(e){return e.replace("refs/heads/","")}async function An(e,t){let n=await Q(e);n&&n.type==="symbolic"?await X(e,n.target,t):await X(e,"HEAD",t)}async function Sc(e){if(e.refStore&&!(e.refStore instanceof Hn))return;let t=await we(e,"refs");if(t.length===0)return;let n=["# pack-refs with: peeled fully-peeled sorted"];for(let o of t)if(n.push(`${o.hash} ${o.name}`),o.name.startsWith("refs/tags/"))try{let s=await ye(e,o.hash);if(s.type==="tag"){let i=pn(s.content).object;for(let a=0;a<100;a++){let c=await ye(e,i);if(c.type!=="tag")break;i=pn(c.content).object}n.push(`^${i}`)}}catch{}await e.fs.writeFile(S(e.gitDir,"packed-refs"),`${n.join(`
28
+ `)){let l=f.indexOf(" ");if(l===-1)continue;let d=f.slice(0,l),m=f.slice(l+1);switch(d){case"object":s=m;break;case"type":i=m;break;case"tag":a=m;break;case"tagger":c=Jr(m);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 $c(e){let t=[];return t.push(`object ${e.object}`),t.push(`type ${e.objectType}`),t.push(`tag ${e.name}`),t.push(`tagger ${Qr(e.tagger)}`),t.push(""),t.push(e.message),bu.encode(t.join(`
29
+ `))}var bu,yu,$r=Re(()=>{"use strict";yi();bu=new TextEncoder,yu=new TextDecoder});async function pt(e,t){return An(wi(e,t))}async function Ae(e,t,n){let r=await e.objectStore.write(t,n);return e.hooks?.onObjectWrite?.({repo:e,type:t,hash:r}),r}async function be(e,t){return e.objectStore.read(t)}async function Vt(e,t){return e.objectStore.exists(t)}async function Ws(e,t){return e.objectStore.ingestPack(t)}async function Oc(e,t){return e.objectStore.findByPrefix(t)}function ve(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 Dn(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 be(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return Eu.decode(n.content)}async function Pt(e,t){let n=await be(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 be(e,t);if(n.type!=="commit")throw new Error(`Expected commit object for ${t}, got ${n.type}`);return nn(n.content)}async function Ic(e,t){let n=await be(e,t);if(n.type!=="tag")throw new Error(`Expected tag object for ${t}, got ${n.type}`);return Kt(n.content)}async function Te(e,t){let n=t;for(let r=0;r<100;r++){let o=await be(e,n);if(o.type==="commit")return n;if(o.type==="tag"){n=Kt(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 Eu,ce=Re(()=>{"use strict";bi();gn();$r();nr();Eu=new TextDecoder});function Sc(e){return typeof e=="string"?{type:"direct",hash:e}:e}var es,Ei=Re(()=>{"use strict";es={REGULAR:"100644",EXECUTABLE:"100755",SYMLINK:"120000",DIRECTORY:"040000",SUBMODULE:"160000"}});function Ru(e,t,n){let r=0,o=!1,s=t;for(;s<e.length;s++){let a=e.charCodeAt(s);switch(a<128?ku[a]:0){case 1:break;case 2:if(r===46)return{len:-1,starConsumed:o};r=a;continue;case 3:if(r===64)return{len:-1,starConsumed:o};r=a;continue;case 4:return{len:-1,starConsumed:o};case 5:if(!n)return{len:-1,starConsumed:o};o=!0,r=a;continue;default:r=a;continue}break}let i=s-t;return i===0?{len:0,starConsumed:o}:e.charCodeAt(t)===46?{len:-1,starConsumed:o}:i>=ki.length&&e.slice(s-ki.length,s)===ki?{len:-1,starConsumed:o}:{len:i,starConsumed:o}}function ts(e,t=0){if(e==="@"||e.length===0)return!1;let n=0,r=0,o=!!(t&2);for(;n<=e.length;){let{len:s,starConsumed:i}=Ru(e,n,o);if(s<0||s===0)return!1;i&&(o=!1),r++,n+=s+1}return!(e.charCodeAt(e.length-1)===46||!(t&1)&&r<2)}function wn(e){return!e||e.startsWith("-")?!1:ts(`refs/heads/${e}`,0)}function vc(e){return e?ts(`refs/tags/${e}`,0):!1}async function Hc(e,t){return e.refStore.readRef(t)}async function B(e,t){let n=t;for(let r=0;r<Tc;r++){let o=await Hc(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 Hc(e,"HEAD")}async function Z(e){return B(e,"HEAD")}async function X(e,t,n){let r=e.hooks?await B(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 Xe(e,t,n){await e.refStore.writeRef(t,{type:"symbolic",target:n})}async function he(e,t){let n=e.hooks?await B(e,t):null;await e.refStore.deleteRef(t),await rs(e,t),e.hooks&&n&&e.hooks.onRefDelete?.({repo:e,ref:t,oldHash:n})}async function pe(e,t="refs"){return e.refStore.listRefs(t)}function Pe(e){return e.replace("refs/heads/","")}async function jn(e,t){let n=await Q(e);n&&n.type==="symbolic"?await X(e,n.target,t):await X(e,"HEAD",t)}async function Ac(e){if(e.refStore&&!(e.refStore instanceof Mn))return;let t=await pe(e,"refs");if(t.length===0)return;let n=["# pack-refs with: peeled fully-peeled sorted"];for(let o of t)if(n.push(`${o.hash} ${o.name}`),o.name.startsWith("refs/tags/"))try{let s=await be(e,o.hash);if(s.type==="tag"){let i=Kt(s.content).object;for(let a=0;a<100;a++){let c=await be(e,i);if(c.type!=="tag")break;i=Kt(c.content).object}n.push(`^${i}`)}}catch{}await e.fs.writeFile(S(e.gitDir,"packed-refs"),`${n.join(`
30
30
  `)}
31
- `);for(let o of t){let s=S(e.gitDir,o.name);await e.fs.exists(s)&&await e.fs.rm(s)}await vc(e,S(e.gitDir,"refs"));let r=S(e.gitDir,"refs");await e.fs.mkdir(r,{recursive:!0}),await e.fs.mkdir(S(r,"heads"),{recursive:!0}),await e.fs.mkdir(S(r,"tags"),{recursive:!0})}async function vc(e,t){if(e.refStore&&!(e.refStore instanceof Hn)||!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 vc(e,S(t,s));(await e.fs.readdir(t)).length===0&&await e.fs.rm(t,{recursive:!0})}var wi,fu,bi,Oc,Hn,he=Ee(()=>{"use strict";ie();Qr();ue();We();Dn();gi();wi=".lock",fu=[1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,5,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,4,4];bi="ref: ",Oc=10,Hn=class{constructor(t,n){this.fs=t;this.gitDir=n}casLocks=new Map;async readRef(t){let n=S(this.gitDir,t);if(await this.fs.exists(n)){let s=(await this.fs.readFile(n)).trim();return s.startsWith(bi)?{type:"symbolic",target:s.slice(bi.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=S(this.gitDir,t);await ns(this.fs,o),r.type==="symbolic"?await this.fs.writeFile(o,`${bi}${r.target}
31
+ `);for(let o of t){let s=S(e.gitDir,o.name);await e.fs.exists(s)&&await e.fs.rm(s)}await Dc(e,S(e.gitDir,"refs"));let r=S(e.gitDir,"refs");await e.fs.mkdir(r,{recursive:!0}),await e.fs.mkdir(S(r,"heads"),{recursive:!0}),await e.fs.mkdir(S(r,"tags"),{recursive:!0})}async function Dc(e,t){if(e.refStore&&!(e.refStore instanceof Mn)||!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 Dc(e,S(t,s));(await e.fs.readdir(t)).length===0&&await e.fs.rm(t,{recursive:!0})}var ki,ku,Ri,Tc,Mn,ge=Re(()=>{"use strict";ce();$r();me();ze();Gn();Ei();ki=".lock",ku=[1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,5,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,4,4];Ri="ref: ",Tc=10,Mn=class{constructor(t,n){this.fs=t;this.gitDir=n}casLocks=new Map;async readRef(t){let n=S(this.gitDir,t);if(await this.fs.exists(n)){let s=(await this.fs.readFile(n)).trim();return s.startsWith(Ri)?{type:"symbolic",target:s.slice(Ri.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=Sc(n),o=S(this.gitDir,t);await ns(this.fs,o),r.type==="symbolic"?await this.fs.writeFile(o,`${Ri}${r.target}
32
32
  `):await this.fs.writeFile(o,`${r.hash}
33
- `)}async deleteRef(t){let n=S(this.gitDir,t);await this.fs.exists(n)&&await this.fs.rm(n),await this.removePackedRef(t)}async listRefs(t="refs"){let n=[],r=S(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<Oc;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=S(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=S(this.gitDir,t);await this.fs.exists(n)&&await this.fs.rm(n),await this.removePackedRef(t)}async listRefs(t="refs"){let n=[],r=S(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<Tc;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=S(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=S(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=S(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 Qn(e,t){let n=t;for(;;){let r=S(n,".git");if(await e.exists(r)&&(await e.stat(r)).isDirectory)return{fs:e,gitDir:r,workTree:n,objectStore:new kr(e,r),refStore:new Hn(e,r)};if(await du(e,n))return{fs:e,gitDir:n,workTree:null,objectStore:new kr(e,n),refStore:new Hn(e,n)};let o=uu(n);if(o===n)return null;n=o}}async function du(e,t){let n=S(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=S(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 Bs(e,t,n={}){let{bare:r=!1,initialBranch:o="main"}=n,s=r?t:S(t,".git"),i=r?null:t,a=S(s,"HEAD"),c=await e.exists(a);await e.mkdir(S(s,"objects"),{recursive:!0}),await e.mkdir(S(s,"refs","heads"),{recursive:!0}),await e.mkdir(S(s,"refs","tags"),{recursive:!0});let f={fs:e,gitDir:s,workTree:i,objectStore:new kr(e,s),refStore:new Hn(e,s)};if(!c){await Ve(f,"HEAD",`refs/heads/${o}`);let l={core:{repositoryformatversion:"0",filemode:"true",bare:r?"true":"false",...r?{}:{logallrefupdates:"true"}}};await e.writeFile(S(s,"config"),Zo(l))}return{ctx:f,reinit:c}}async function ns(e,t){let n=t.lastIndexOf("/");if(n>0){let r=t.slice(0,n);await e.mkdir(r,{recursive:!0})}}function uu(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var Dn=Ee(()=>{"use strict";Be();hi();ue();he()});function Ws(e,t){return S(e.gitDir,"logs",t)}function mu(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),m=d.indexOf(" ");if(m<0)return null;let u=parseInt(d.slice(0,m),10),h=d.slice(m+1);return{oldHash:s,newHash:i,name:f,email:l,timestamp:u,tz:h,message:r}}async function et(e,t){let n=Ws(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=mu(s);i&&o.push(i)}return o}function Tc(e){return`${e.oldHash} ${e.newHash} ${e.name} <${e.email}> ${e.timestamp} ${e.tz} ${e.message}`}async function Mn(e,t,n){let r=Ws(e,t);if(await ns(e.fs,r),n.length===0){await e.fs.writeFile(r,"");return}let o=`${n.map(Tc).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=S(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 rr(e,t){let n=t;for(;;){let r=S(n,".git");if(await e.exists(r)&&(await e.stat(r)).isDirectory)return{fs:e,gitDir:r,workTree:n,objectStore:new Pr(e,r),refStore:new Mn(e,r)};if(await xu(e,n))return{fs:e,gitDir:n,workTree:null,objectStore:new Pr(e,n),refStore:new Mn(e,n)};let o=Cu(n);if(o===n)return null;n=o}}async function xu(e,t){let n=S(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=S(t,r);if(!await e.exists(o))return!1;try{if(!(await e.stat(o)).isDirectory)return!1}catch{return!1}}return!0}async function qs(e,t,n={}){let{bare:r=!1,initialBranch:o="main"}=n,s=r?t:S(t,".git"),i=r?null:t,a=S(s,"HEAD"),c=await e.exists(a);await e.mkdir(S(s,"objects"),{recursive:!0}),await e.mkdir(S(s,"refs","heads"),{recursive:!0}),await e.mkdir(S(s,"refs","tags"),{recursive:!0});let f={fs:e,gitDir:s,workTree:i,objectStore:new Pr(e,s),refStore:new Mn(e,s)};if(!c){await Xe(f,"HEAD",`refs/heads/${o}`);let l={core:{repositoryformatversion:"0",filemode:"true",bare:r?"true":"false",...r?{}:{logallrefupdates:"true"}}};await e.writeFile(S(s,"config"),ei(l))}return{ctx:f,reinit:c}}async function ns(e,t){let n=t.lastIndexOf("/");if(n>0){let r=t.slice(0,n);await e.mkdir(r,{recursive:!0})}}function Cu(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var Gn=Re(()=>{"use strict";qe();bi();me();ge()});function zs(e,t){return S(e.gitDir,"logs",t)}function Pu(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),m=d.indexOf(" ");if(m<0)return null;let u=parseInt(d.slice(0,m),10),h=d.slice(m+1);return{oldHash:s,newHash:i,name:f,email:l,timestamp:u,tz:h,message:r}}async function et(e,t){let n=zs(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=Pu(s);i&&o.push(i)}return o}function Mc(e){return`${e.oldHash} ${e.newHash} ${e.name} <${e.email}> ${e.timestamp} ${e.tz} ${e.message}`}async function Ln(e,t,n){let r=zs(e,t);if(await ns(e.fs,r),n.length===0){await e.fs.writeFile(r,"");return}let o=`${n.map(Mc).join(`
38
38
  `)}
39
- `;await e.fs.writeFile(r,o)}async function Ye(e,t,n){let r=Ws(e,t);await ns(e.fs,r);let o=`${Tc(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 rs(e,t){let n=Ws(e,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function se(e,t,n,r,o,s,i=!1){let a=await en(e,t),c={oldHash:r??te,newHash:o,...a,message:s};await Ye(e,n,c),i&&n!=="HEAD"&&await Ye(e,"HEAD",c)}var We=Ee(()=>{"use strict";mt();On();ue();Dn();mt()});function hu(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 pu(e,t){let n=await xc(e,t);if(n.length===0)return null;if(n.length>1)throw new yi(t);return n[0]}async function gu(e,t){if(t==="HEAD"||t==="@")return U(e,"HEAD");if(Hc.includes(t))return U(e,t);if(/^[0-9a-f]{40}$/.test(t))return await Vt(e,t)?t:null;if(/^[0-9a-f]{4,39}$/.test(t)){let s=await pu(e,t);if(s)return s}if(t.startsWith("refs/")){let s=await U(e,t);if(s)return s}let n=await U(e,`refs/heads/${t}`);if(n)return n;let r=await U(e,`refs/tags/${t}`);if(r)return r;let o=await U(e,`refs/remotes/${t}`);return o||null}function wu(e){if(e==="HEAD"||e==="@")return"HEAD";for(let t of Hc)if(e===t)return t;return e.startsWith("refs/")?e:`refs/heads/${e}`}async function bu(e,t,n){let r=wu(t),o=await et(e,r);if(o.length===0)return null;let s=o.length-1-n;if(s<0||s>=o.length)return null;let i=o[s];return i?i.newHash:null}async function yu(e,t,n){if(n===""||n==="commit")try{return await je(e,t)}catch{return null}if(n==="tree"){let o;try{o=await je(e,t)}catch{return null}return(await j(e,o)).tree}return(await ye(e,t)).type!==n?null:t}async function ze(e,t){let{base:n,reflogIndex:r,suffixes:o}=hu(t),s;if(r!==void 0?s=await bu(e,n,r):s=await gu(e,n),!s)return null;o.some(a=>a.type==="tilde"||a.type==="caret")&&(s=await je(e,s));for(let a of o)if(a.type==="peel"){if(!s)return null;s=await yu(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 qs(e){let t=e.indexOf(":");return t<0?null:{rev:e.slice(0,t)||"HEAD",path:e.slice(t+1)}}var Hc,yi,wn=Ee(()=>{"use strict";ie();We();he();Hc=["HEAD","FETCH_HEAD","ORIG_HEAD","MERGE_HEAD","CHERRY_PICK_HEAD","REBASE_HEAD"];yi=class extends Error{constructor(n){super(`short object ID ${n} is ambiguous`);this.prefix=n}}});function ut(e,t){return e.lstat?e.lstat(t):e.stat(t)}function bn(e){return typeof e=="string"?e==="120000":e===40960}async function ss(e,t){if((await ut(e,t)).isSymbolicLink&&e.readlink){let r=await e.readlink(t);return Eu.encode(r)}return e.readFileBuffer(t)}async function jn(e,t){let n=await ss(e,t);return ht("blob",n)}var Eu,er=Ee(()=>{"use strict";ie();Eu=new TextEncoder});function xu(e){return e.length===4&&e.toLowerCase()===".git"}function Cu(e,t){if(e.length===0)throw new Error("invalid tree entry: empty name");if(e.includes("/"))throw new Error(`invalid tree entry: name contains slash: '${e}'`);if(e.includes("\0"))throw new Error("invalid tree entry: name contains null byte");if(e==="."||e==="..")throw new Error(`invalid tree entry: '${e}'`);if(xu(e))throw new Error(`invalid tree entry: '${e}'`);if(!Ru.has(t))throw new Error(`invalid tree entry mode: '${t}' for '${e}'`)}function Gn(e){let t=[],n=0;for(;n<e.byteLength;){let r=e.indexOf(32,n);if(r===-1)break;let o=Ac.decode(e.subarray(n,r)),s=e.indexOf(0,r+1);if(s===-1)break;let i=Ac.decode(e.subarray(r+1,s)),a=e.subarray(s+1,s+21),c=In(a),f=o.padStart(6,"0");Cu(i,f),t.push({mode:f,name:i,hash:c}),n=s+21}return{type:"tree",entries:t}}function Dc(e){let t=[];for(let s of e.entries){let i=s.mode.replace(/^0+/,""),a=ku.encode(`${i} ${s.name}\0`),c=Tt(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 ku,Ac,Ru,zs=Ee(()=>{"use strict";mt();ku=new TextEncoder,Ac=new TextDecoder,Ru=new Set(["100644","100755","040000","120000","160000"])});async function Ne(e,t){return Mc(e,t,"")}async function Mc(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:Pu(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 Mc(e,a,c);r.push({mode:es.DIRECTORY,name:i,hash:f})}r.sort((i,a)=>{let c=i.mode===es.DIRECTORY?`${i.name}/`:i.name,f=a.mode===es.DIRECTORY?`${a.name}/`:a.name;return c<f?-1:c>f?1:0});let s=Dc({type:"tree",entries:r});return Se(e,"tree",s)}async function qe(e,t,n=""){let r=await ye(e,t);if(r.type!=="tree")throw new Error(`Expected tree object, got ${r.type}`);let o=Gn(r.content),s=[];for(let i of o.entries){let a=n?`${n}/${i.name}`:i.name;if(i.mode===es.DIRECTORY){let c=await qe(e,i.hash,a);s.push(...c)}else s.push({path:a,mode:i.mode,hash:i.hash})}return s}async function fe(e,t){if(!t)return new Map;let n=await qe(e,t);return new Map(n.map(r=>[r.path,r]))}async function Ke(e,t,n){let r=await fe(e,t),o=await fe(e,n),s=[];for(let[i,a]of r){let c=o.get(i);c?(a.hash!==c.hash||a.mode!==c.mode)&&s.push({path:i,status:"modified",oldHash:a.hash,newHash:c.hash,oldMode:a.mode,newMode:c.mode}):s.push({path:i,status:"deleted",oldHash:a.hash,oldMode:a.mode})}for(let[i,a]of o)r.has(i)||s.push({path:i,status:"added",newHash:a.hash,newMode:a.mode});return s.sort((i,a)=>Oe(i.path,a.path))}function Pu(e){return e.toString(8).padStart(6,"0")}var ve=Ee(()=>{"use strict";oe();ie();zs();gi()});function jc(e){return/^[a-zA-Z0-9]$/.test(e)}function $u(e){return/^[a-zA-Z]$/.test(e)}function Ou(e){return e>="0"&&e<="9"}function Ei(e){return e>="A"&&e<="Z"}function ki(e){return e>="a"&&e<="z"}function Gc(e){return/^\s$/.test(e)}function Iu(e){return e===" "||e===" "}function xi(e){let t=e.charCodeAt(0);return t>=32&&t<=126}function Su(e){return xi(e)&&!Gc(e)}function vu(e){return xi(e)&&!jc(e)&&e!==" "}function Tu(e){let t=e.charCodeAt(0);return t<32||t===127}function Hu(e){return/^[0-9a-fA-F]$/.test(e)}function os(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e===t}function Ri(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(!os(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]==="/"&&Ri(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(!Au(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=Ri(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="",m=!0;for(;t<e.length&&(m||e[t]!=="]");){m=!1;let u=e[t];if(u==="\\"){if(t++,t>=e.length)return-1;u=e[t],os(c,u,s)&&(l=!0)}else if(u==="-"&&d&&t+1<e.length&&e[t+1]!=="]"){if(t++,u=e[t],u==="\\"){if(t++,t>=e.length)return-1;u=e[t]}let h=d,p=u;if(c>=h&&c<=p&&(l=!0),s){if(ki(c)){let g=c.toUpperCase();g>=h&&g<=p&&(l=!0)}else if(Ei(c)){let g=c.toLowerCase();g>=h&&g<=p&&(l=!0)}}u=""}else if(u==="["&&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,u="[",os(c,u,s)&&(l=!0);else{let g=e.slice(h,h+p);Du(g,c,s)&&(l=!0),u=""}}else os(c,u,s)&&(l=!0);d=u,t++}if(t>=e.length)return-1;if(t++,l===f)return 1;r++;break}default:{if(!os(c,a,s))return 1;r++,t++;break}}}return r>=n.length?0:1}function Au(e){return e==="*"||e==="?"||e==="["||e==="\\"}function Du(e,t,n){switch(e){case"alnum":return jc(t);case"alpha":return $u(t);case"blank":return Iu(t);case"cntrl":return Tu(t);case"digit":return Ou(t);case"graph":return Su(t);case"lower":return ki(t)||n&&Ei(t);case"print":return xi(t);case"punct":return vu(t);case"space":return Gc(t);case"upper":return Ei(t)||n&&ki(t);case"xdigit":return Hu(t);default:return!1}}function tr(e,t,n=0){return Ri(e,0,t,0,n)===0?0:1}var Ks=Ee(()=>{"use strict"});function Fc(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 Mu(e){return Fc(e)===e.length}function ju(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|=Vs,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|=Lc);let a=Math.min(Fc(o),s);return o[0]==="*"&&Mu(o.slice(1))&&(r|=Nc),{pattern:o,patternLen:s,nowildcardLen:a,flags:r,base:t}}function is(e,t,n){let r=[];for(let o of e.split(`
41
- `)){let s=ju(o,t);s&&r.push(s)}return{patterns:r,src:n}}function Gu(e,t){let{pattern:n,patternLen:r,nowildcardLen:o,flags:s}=t;if(o===r)return e===n;if(s&Nc){let i=n.slice(1);return e.length>=i.length&&e.endsWith(i)}return tr(n,e,2)===0}function Lu(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 tr(r,a,2)===0}function Ci(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&Lc){if(s.base&&!e.startsWith(`${s.base}/`))continue;if(Gu(r,s))return s;continue}if(Lu(e,s))return s}}return null}function sn(e,t,n){for(let r=e.dirPatterns.length-1;r>=0;r--){let o=e.dirPatterns[r],s=Ci(t,n,o);if(s)return s.flags&Vs?"not-ignored":"ignored"}if(e.excludeFile){let r=Ci(t,n,e.excludeFile);if(r)return r.flags&Vs?"not-ignored":"ignored"}if(e.globalExclude){let r=Ci(t,n,e.globalExclude);if(r)return r.flags&Vs?"not-ignored":"ignored"}return"undecided"}async function xr(e){let t={dirPatterns:[],excludeFile:null,globalExclude:null},n=S(e.gitDir,"info","exclude");try{let r=await e.fs.readFile(n);t.excludeFile=is(r,"",n)}catch{}try{let r=await Re(e,"core.excludesFile");if(r)try{let o=await e.fs.readFile(r);t.globalExclude=is(o,"",r)}catch{}}catch{}return t}function nr(e,t,n,r){let s=is(t,n===""?"":n,r);return{...e,dirPatterns:[...e.dirPatterns,s]}}var Lc,Nc,_c,Vs,Xs=Ee(()=>{"use strict";Be();ue();Ks();Lc=1,Nc=4,_c=8,Vs=16});async function At(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=S(e.workTree,s.path),a;try{a=await ut(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 jn(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 rt(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 lt(e,t){if(!e.workTree)throw new Error("Cannot checkout in a bare repository");if(!Zn(t.path))throw new Error(`refusing to check out unsafe path '${t.path}'`);let n=await ye(e,t.hash);if(n.type!=="blob")throw new Error(`Expected blob for ${t.path}, got ${n.type}`);let r=S(e.workTree,t.path);if(!Ds(e.workTree,r))throw new Error(`refusing to check out path outside worktree: '${t.path}'`);let o=r.lastIndexOf("/");if(o>0&&await e.fs.mkdir(r.slice(0,o),{recursive:!0}),t.mode!=null&&bn(t.mode)&&e.fs.symlink){let s=_u.decode(n.content);if(!Ua(s))throw new Error(`refusing to create symlink with unsafe target '${s}'`);await ut(e.fs,r).then(()=>!0).catch(()=>!1)&&await e.fs.rm(r,{force:!0}),await e.fs.symlink(s,r)}else{if(e.fs.lstat)try{(await e.fs.lstat(r)).isSymbolicLink&&await e.fs.rm(r,{force:!0})}catch{}await e.fs.writeFile(r,n.content)}}async function Uc(e,t){let n=await qe(e,t);for(let r of n)await lt(e,r)}async function on(e,t,n){if(!e.workTree)throw new Error("Cannot stage in a bare repository");if(!Zn(n))throw new Error(`refusing to stage unsafe path '${n}'`);let r=S(e.workTree,n);if(!await e.fs.exists(r))throw new Error(`Path does not exist: ${n}`);let o=await ut(e.fs,r);if(o.isSymbolicLink&&e.fs.readlink){let f=await e.fs.readlink(r),l=Nu.encode(f),d=await Se(e,"blob",l),m={path:n,mode:40960,hash:d,stage:0,stat:{...Ie(),size:l.byteLength}};return{index:xt(t,m),hash:d}}let s=await e.fs.readFileBuffer(r),i=await Se(e,"blob",s),a=o.mode!=null?Fu(o.mode):33188,c={path:n,mode:a,hash:i,stage:0,stat:{...Ie(),size:s.byteLength}};return{index:xt(t,c),hash:i}}async function rt(e,t,n,r){let o=r?.skipIgnore??!1,s=null;if(!o){s=r?._ignore??await xr(e);let c=S(t,".gitignore");try{let f=await e.fs.readFile(c);s=nr(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=S(t,c),l=n?`${n}/${c}`:c,d=await ut(e.fs,f);if(d.isSymbolicLink){if(s&&sn(s,l,!1)==="ignored")continue;i.push(l)}else if(d.isDirectory){if(s&&sn(s,l,!0)==="ignored")continue;let m=await rt(e,f,l,{skipIgnore:o,_ignore:s??void 0});i.push(...m)}else if(d.isFile){if(s&&sn(s,l,!1)==="ignored")continue;i.push(l)}}return i}function Fu(e){return e>511?e:e&73?33261:33188}async function rr(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 rr(e,Qt(t),n))}var Nu,_u,st=Ee(()=>{"use strict";oe();Xs();Ce();ie();Ms();ue();er();ve();Nu=new TextEncoder,_u=new TextDecoder});function Pi(e){return e.existsOnDisk&&e.indexHash===null}async function Uu(e,t,n){let r=await Promise.all(t.map(h=>fe(e,h.treeHash))),o=new Map,s=new Set;for(let h of n.entries)h.stage===0?o.set(h.path,h):s.add(h.path);let i=e.workTree?new Set(await rt(e,e.workTree,"",{skipIgnore:!0})):new Set,a=null,c=async()=>(a===null&&(a=e.workTree?new Set(await rt(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()),m=(h,p)=>r[h]?.get(p),u=[];for(let h of d){let p=null,g=null,w=null,y=null,x=null;if(r.length===1){let O=m(0,h);w=O?.hash??null,x=O?.mode??null}else if(r.length===2){let O=m(0,h),A=m(1,h);g=O?.hash??null,y=O?.mode??null,w=A?.hash??null,x=A?.mode??null}else if(r.length>=3){let O=m(0,h),A=m(1,h),G=m(2,h);p=O?.hash??null,g=A?.hash??null,y=A?.mode??null,w=G?.hash??null,x=G?.mode??null}let E=o.get(h)?.hash??null,k=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),H,D=async()=>{if(H!==void 0)return H;if(!R||!e.workTree)return H=null,null;let O=S(e.workTree,h);try{H=await jn(e.fs,O)}catch{H=null}return H};u.push({path:h,baseHash:p,headHash:g,remoteHash:w,indexHash:E,indexStage:k,existsOnDisk:R,isIgnoredOnDisk:C,getWorktreeHash:D,headMode:y,remoteMode:x})}return u}function Zs(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 Js(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 Bu(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 Wu(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=Bu(s,i);for(let c of s.requirements){if(n.allowStagedChanges&&c==="INDEX_MUST_MATCH_HEAD")continue;let f=await qu(c,i,a);if(f){r.push({path:o,error:f});break}}if(n.stopAtFirstError&&r.length>0)break}return r}async function qu(e,t,n,r){switch(e){case"INDEX_MUST_NOT_EXIST":return t.indexHash!==null?"WOULD_OVERWRITE":Pi(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 Pi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_OVERWRITTEN":null;case"NO_UNTRACKED_REMOVED":return Pi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_REMOVED":null}}function zu(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,m=f.takeFrom==="head"?l.headMode:l.remoteMode,u=m?Number.parseInt(m,8):33188;o.push({path:c,mode:u,hash:d,stage:0,stat:Ie()}),r.updateWorktree&&s.push({path:c,type:"checkout",hash:d,mode:u});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 Qs(e,t){let n=t.actionHint??t.operationName,r=[];for(let{error:s,msg:i,fix:a}of Ku){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 Ze(e,t,n){let r=zs(e,t);await ns(e.fs,r);let o=`${Mc(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 rs(e,t){let n=zs(e,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function fe(e,t,n,r,o,s,i=!1){let a=await en(e,t),c={oldHash:r??te,newHash:o,...a,message:s};await Ze(e,n,c),i&&n!=="HEAD"&&await Ze(e,"HEAD",c)}var ze=Re(()=>{"use strict";ht();vn();me();Gn();ht()});function $u(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 Ou(e,t){let n=await Oc(e,t);if(n.length===0)return null;if(n.length>1)throw new xi(t);return n[0]}async function Iu(e,t){if(t==="HEAD"||t==="@")return B(e,"HEAD");if(jc.includes(t))return B(e,t);if(/^[0-9a-f]{40}$/.test(t))return await Vt(e,t)?t:null;if(/^[0-9a-f]{4,39}$/.test(t)){let s=await Ou(e,t);if(s)return s}if(t.startsWith("refs/")){let s=await B(e,t);if(s)return s}let n=await B(e,`refs/heads/${t}`);if(n)return n;let r=await B(e,`refs/tags/${t}`);if(r)return r;let o=await B(e,`refs/remotes/${t}`);return o||null}function Su(e){if(e==="HEAD"||e==="@")return"HEAD";for(let t of jc)if(e===t)return t;return e.startsWith("refs/")?e:`refs/heads/${e}`}async function vu(e,t,n){let r=Su(t),o=await et(e,r);if(o.length===0)return null;let s=o.length-1-n;if(s<0||s>=o.length)return null;let i=o[s];return i?i.newHash:null}async function Tu(e,t,n){if(n===""||n==="commit")try{return await Te(e,t)}catch{return null}if(n==="tree"){let o;try{o=await Te(e,t)}catch{return null}return(await j(e,o)).tree}return(await be(e,t)).type!==n?null:t}async function Hu(e,t,n){let r=t;n.some(s=>s.type==="tilde"||s.type==="caret")&&(r=await Te(e,r));for(let s of n)if(s.type==="peel"){if(!r)return null;r=await Tu(e,r,s.target)}else if(s.type==="tilde")for(let i=0;i<s.n;i++){if(!r)return null;let a=await j(e,r);if(a.parents.length===0||(r=a.parents[0]??null,!r))return null}else{if(s.n===0)continue;if(!r)return null;let i=await j(e,r);if(s.n>i.parents.length||(r=i.parents[s.n-1]??null,!r))return null}return r}async function Be(e,t){let{base:n,reflogIndex:r,suffixes:o}=$u(t),s;return r!==void 0?s=await vu(e,n,r):s=await Iu(e,n),s?Hu(e,s,o):null}function Ks(e){let t=e.indexOf(":");return t<0?null:{rev:e.slice(0,t)||"HEAD",path:e.slice(t+1)}}var jc,xi,sn=Re(()=>{"use strict";ce();ze();ge();jc=["HEAD","FETCH_HEAD","ORIG_HEAD","MERGE_HEAD","CHERRY_PICK_HEAD","REBASE_HEAD"];xi=class extends Error{constructor(n){super(`short object ID ${n} is ambiguous`);this.prefix=n}}});function mt(e,t){return e.lstat?e.lstat(t):e.stat(t)}function bn(e){return typeof e=="string"?e==="120000":e===40960}async function ss(e,t){if((await mt(e,t)).isSymbolicLink&&e.readlink){let r=await e.readlink(t);return Au.encode(r)}return e.readFileBuffer(t)}async function Nn(e,t){let n=await ss(e,t);return pt("blob",n)}var Au,sr=Re(()=>{"use strict";ce();Au=new TextEncoder});function ju(e){return e.length===4&&e.toLowerCase()===".git"}function Gu(e,t){if(e.length===0)throw new Error("invalid tree entry: empty name");if(e.includes("/"))throw new Error(`invalid tree entry: name contains slash: '${e}'`);if(e.includes("\0"))throw new Error("invalid tree entry: name contains null byte");if(e==="."||e==="..")throw new Error(`invalid tree entry: '${e}'`);if(ju(e))throw new Error(`invalid tree entry: '${e}'`);if(!Mu.has(t))throw new Error(`invalid tree entry mode: '${t}' for '${e}'`)}function _n(e){let t=[],n=0;for(;n<e.byteLength;){let r=e.indexOf(32,n);if(r===-1)break;let o=Gc.decode(e.subarray(n,r)),s=e.indexOf(0,r+1);if(s===-1)break;let i=Gc.decode(e.subarray(r+1,s)),a=e.subarray(s+1,s+21),c=Tn(a),f=o.padStart(6,"0");Gu(i,f),t.push({mode:f,name:i,hash:c}),n=s+21}return{type:"tree",entries:t}}function Lc(e){let t=[];for(let s of e.entries){let i=s.mode.replace(/^0+/,""),a=Du.encode(`${i} ${s.name}\0`),c=Ht(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 Du,Gc,Mu,Vs=Re(()=>{"use strict";ht();Du=new TextEncoder,Gc=new TextDecoder,Mu=new Set(["100644","100755","040000","120000","160000"])});async function Fe(e,t){return Nc(e,t,"")}async function Nc(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:Lu(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 Nc(e,a,c);r.push({mode:es.DIRECTORY,name:i,hash:f})}r.sort((i,a)=>{let c=i.mode===es.DIRECTORY?`${i.name}/`:i.name,f=a.mode===es.DIRECTORY?`${a.name}/`:a.name;return c<f?-1:c>f?1:0});let s=Lc({type:"tree",entries:r});return Ae(e,"tree",s)}async function Ke(e,t,n=""){let r=await be(e,t);if(r.type!=="tree")throw new Error(`Expected tree object, got ${r.type}`);let o=_n(r.content),s=[];for(let i of o.entries){let a=n?`${n}/${i.name}`:i.name;if(i.mode===es.DIRECTORY){let c=await Ke(e,i.hash,a);s.push(...c)}else s.push({path:a,mode:i.mode,hash:i.hash})}return s}async function le(e,t){if(!t)return new Map;let n=await Ke(e,t);return new Map(n.map(r=>[r.path,r]))}async function Ve(e,t,n){let r=await le(e,t),o=await le(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)=>Ie(i.path,a.path))}function Lu(e){return e.toString(8).padStart(6,"0")}var He=Re(()=>{"use strict";ie();ce();Vs();Ei()});function _c(e){return/^[a-zA-Z0-9]$/.test(e)}function Nu(e){return/^[a-zA-Z]$/.test(e)}function _u(e){return e>="0"&&e<="9"}function Ci(e){return e>="A"&&e<="Z"}function Pi(e){return e>="a"&&e<="z"}function Fc(e){return/^\s$/.test(e)}function Fu(e){return e===" "||e===" "}function Oi(e){let t=e.charCodeAt(0);return t>=32&&t<=126}function Uu(e){return Oi(e)&&!Fc(e)}function Bu(e){return Oi(e)&&!_c(e)&&e!==" "}function Wu(e){let t=e.charCodeAt(0);return t<32||t===127}function qu(e){return/^[0-9a-fA-F]$/.test(e)}function os(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e===t}function $i(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(!os(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]==="/"&&$i(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(!zu(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=$i(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="",m=!0;for(;t<e.length&&(m||e[t]!=="]");){m=!1;let u=e[t];if(u==="\\"){if(t++,t>=e.length)return-1;u=e[t],os(c,u,s)&&(l=!0)}else if(u==="-"&&d&&t+1<e.length&&e[t+1]!=="]"){if(t++,u=e[t],u==="\\"){if(t++,t>=e.length)return-1;u=e[t]}let h=d,p=u;if(c>=h&&c<=p&&(l=!0),s){if(Pi(c)){let g=c.toUpperCase();g>=h&&g<=p&&(l=!0)}else if(Ci(c)){let g=c.toLowerCase();g>=h&&g<=p&&(l=!0)}}u=""}else if(u==="["&&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,u="[",os(c,u,s)&&(l=!0);else{let g=e.slice(h,h+p);Ku(g,c,s)&&(l=!0),u=""}}else os(c,u,s)&&(l=!0);d=u,t++}if(t>=e.length)return-1;if(t++,l===f)return 1;r++;break}default:{if(!os(c,a,s))return 1;r++,t++;break}}}return r>=n.length?0:1}function zu(e){return e==="*"||e==="?"||e==="["||e==="\\"}function Ku(e,t,n){switch(e){case"alnum":return _c(t);case"alpha":return Nu(t);case"blank":return Fu(t);case"cntrl":return Wu(t);case"digit":return _u(t);case"graph":return Uu(t);case"lower":return Pi(t)||n&&Ci(t);case"print":return Oi(t);case"punct":return Bu(t);case"space":return Fc(t);case"upper":return Ci(t)||n&&Pi(t);case"xdigit":return qu(t);default:return!1}}function on(e,t,n=0){return $i(e,0,t,0,n)===0?0:1}var is=Re(()=>{"use strict"});function qc(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 Vu(e){return qc(e)===e.length}function Yu(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|=Ys,o=o.slice(1)),o.length===0)return null;let s=o.length;o[s-1]==="/"&&(s--,o=o.slice(0,s),r|=Wc);let i=!1;for(let c=0;c<s;c++)if(o[c]==="/"){i=!0;break}i||(r|=Uc);let a=Math.min(qc(o),s);return o[0]==="*"&&Vu(o.slice(1))&&(r|=Bc),{pattern:o,patternLen:s,nowildcardLen:a,flags:r,base:t}}function as(e,t,n){let r=[];for(let o of e.split(`
41
+ `)){let s=Yu(o,t);s&&r.push(s)}return{patterns:r,src:n}}function Xu(e,t){let{pattern:n,patternLen:r,nowildcardLen:o,flags:s}=t;if(o===r)return e===n;if(s&Bc){let i=n.slice(1);return e.length>=i.length&&e.endsWith(i)}return on(n,e,2)===0}function Zu(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 on(r,a,2)===0}function Ii(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&Wc&&!t)){if(s.flags&Uc){if(s.base&&!e.startsWith(`${s.base}/`))continue;if(Xu(r,s))return s;continue}if(Zu(e,s))return s}}return null}function an(e,t,n){for(let r=e.dirPatterns.length-1;r>=0;r--){let o=e.dirPatterns[r],s=Ii(t,n,o);if(s)return s.flags&Ys?"not-ignored":"ignored"}if(e.excludeFile){let r=Ii(t,n,e.excludeFile);if(r)return r.flags&Ys?"not-ignored":"ignored"}if(e.globalExclude){let r=Ii(t,n,e.globalExclude);if(r)return r.flags&Ys?"not-ignored":"ignored"}return"undecided"}async function Or(e){let t={dirPatterns:[],excludeFile:null,globalExclude:null},n=S(e.gitDir,"info","exclude");try{let r=await e.fs.readFile(n);t.excludeFile=as(r,"",n)}catch{}try{let r=await xe(e,"core.excludesFile");if(r)try{let o=await e.fs.readFile(r);t.globalExclude=as(o,"",r)}catch{}}catch{}return t}function or(e,t,n,r){let s=as(t,n===""?"":n,r);return{...e,dirPatterns:[...e.dirPatterns,s]}}var Uc,Bc,Wc,Ys,Zs=Re(()=>{"use strict";qe();me();is();Uc=1,Bc=4,Wc=8,Ys=16});async function gt(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=S(e.workTree,s.path),a;try{a=await mt(e.fs,i)}catch{a=null}if(!a){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}if(!a.isFile&&!a.isSymbolicLink){n.push({path:s.path,status:"deleted",indexHash:s.hash});continue}await Nn(e.fs,i)!==s.hash&&n.push({path:s.path,status:"modified",indexHash:s.hash})}let r=new Set(t.entries.map(s=>s.path)),o=await ot(e,e.workTree,"");for(let s of o)r.has(s)||n.push({path:s,status:"untracked"});return n.sort((s,i)=>Ie(s.path,i.path))}async function dt(e,t){if(!e.workTree)throw new Error("Cannot checkout in a bare repository");if(!tr(t.path))throw new Error(`refusing to check out unsafe path '${t.path}'`);let n=await be(e,t.hash);if(n.type!=="blob")throw new Error(`Expected blob for ${t.path}, got ${n.type}`);let r=S(e.workTree,t.path);if(!Ms(e.workTree,r))throw new Error(`refusing to check out path outside worktree: '${t.path}'`);let o=r.lastIndexOf("/");if(o>0&&await e.fs.mkdir(r.slice(0,o),{recursive:!0}),t.mode!=null&&bn(t.mode)&&e.fs.symlink){let s=Qu.decode(n.content);if(!qa(s))throw new Error(`refusing to create symlink with unsafe target '${s}'`);await mt(e.fs,r).then(()=>!0).catch(()=>!1)&&await e.fs.rm(r,{force:!0}),await e.fs.symlink(s,r)}else{if(e.fs.lstat)try{(await e.fs.lstat(r)).isSymbolicLink&&await e.fs.rm(r,{force:!0})}catch{}await e.fs.writeFile(r,n.content)}}async function zc(e,t){let n=await Ke(e,t);for(let r of n)await dt(e,r)}async function cn(e,t,n){if(!e.workTree)throw new Error("Cannot stage in a bare repository");if(!tr(n))throw new Error(`refusing to stage unsafe path '${n}'`);let r=S(e.workTree,n);if(!await e.fs.exists(r))throw new Error(`Path does not exist: ${n}`);let o=await mt(e.fs,r);if(o.isSymbolicLink&&e.fs.readlink){let f=await e.fs.readlink(r),l=Ju.encode(f),d=await Ae(e,"blob",l),m={path:n,mode:40960,hash:d,stage:0,stat:{...Se(),size:l.byteLength}};return{index:Ct(t,m),hash:d}}let s=await e.fs.readFileBuffer(r),i=await Ae(e,"blob",s),a=o.mode!=null?em(o.mode):33188,c={path:n,mode:a,hash:i,stage:0,stat:{...Se(),size:s.byteLength}};return{index:Ct(t,c),hash:i}}async function ot(e,t,n,r){let o=r?.skipIgnore??!1,s=null;if(!o){s=r?._ignore??await Or(e);let c=S(t,".gitignore");try{let f=await e.fs.readFile(c);s=or(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=S(t,c),l=n?`${n}/${c}`:c,d=await mt(e.fs,f);if(d.isSymbolicLink){if(s&&an(s,l,!1)==="ignored")continue;i.push(l)}else if(d.isDirectory){if(s&&an(s,l,!0)==="ignored")continue;let m=await ot(e,f,l,{skipIgnore:o,_ignore:s??void 0});i.push(...m)}else if(d.isFile){if(s&&an(s,l,!1)==="ignored")continue;i.push(l)}}return i}function em(e){return e>511?e:e&73?33261:33188}async function ir(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 ir(e,Qt(t),n))}var Ju,Qu,tt=Re(()=>{"use strict";ie();Zs();Ce();ce();js();me();sr();He();Ju=new TextEncoder,Qu=new TextDecoder});function Si(e){return e.existsOnDisk&&e.indexHash===null}async function tm(e,t,n){let r=await Promise.all(t.map(h=>le(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 ot(e,e.workTree,"",{skipIgnore:!0})):new Set,a=null,c=async()=>(a===null&&(a=e.workTree?new Set(await ot(e,e.workTree,"")):new Set),a),f=new Set;for(let 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()),m=(h,p)=>r[h]?.get(p),u=[];for(let h of d){let p=null,g=null,w=null,b=null,x=null;if(r.length===1){let O=m(0,h);w=O?.hash??null,x=O?.mode??null}else if(r.length===2){let O=m(0,h),A=m(1,h);g=O?.hash??null,b=O?.mode??null,w=A?.hash??null,x=A?.mode??null}else if(r.length>=3){let O=m(0,h),A=m(1,h),G=m(2,h);p=O?.hash??null,g=A?.hash??null,b=A?.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),H,D=async()=>{if(H!==void 0)return H;if(!R||!e.workTree)return H=null,null;let O=S(e.workTree,h);try{H=await Nn(e.fs,O)}catch{H=null}return H};u.push({path:h,baseHash:p,headHash:g,remoteHash:w,indexHash:k,indexStage:E,existsOnDisk:R,isIgnoredOnDisk:P,getWorktreeHash:D,headMode:b,remoteMode:x})}return u}function Js(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 Qs(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 nm(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 rm(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=nm(s,i);for(let c of s.requirements){if(n.allowStagedChanges&&c==="INDEX_MUST_MATCH_HEAD")continue;let f=await sm(c,i,a);if(f){r.push({path:o,error:f});break}}if(n.stopAtFirstError&&r.length>0)break}return r}async function sm(e,t,n,r){switch(e){case"INDEX_MUST_NOT_EXIST":return t.indexHash!==null?"WOULD_OVERWRITE":Si(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 Si(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_OVERWRITTEN":null;case"NO_UNTRACKED_REMOVED":return Si(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_REMOVED":null}}function om(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,m=f.takeFrom==="head"?l.headMode:l.remoteMode,u=m?Number.parseInt(m,8):33188;o.push({path:c,mode:u,hash:d,stage:0,stat:Se()}),r.updateWorktree&&s.push({path:c,type:"checkout",hash:d,mode:u});break}case"DELETE":{r.updateWorktree&&l.existsOnDisk&&s.push({path:c,type:"delete"});break}case"SKIP":break}}return o.sort((c,f)=>Ie(c.path,f.path)||c.stage-f.stage),{newEntries:o,worktreeOps:s}}function eo(e,t){let n=t.actionHint??t.operationName,r=[];for(let{error:s,msg:i,fix:a}of im){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 sr(e,t,n,r){let o=await Uu(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 Wu(i,s,r);if(a.length>0)return{success:!1,newEntries:[],worktreeOps:[],errors:a,errorOutput:Qs(a,r)};let{newEntries:c,worktreeOps:f}=zu(i,s,n,r);return{success:!0,newEntries:c,worktreeOps:f,errors:[],errorOutput:null}}async function Ge(e,t){if(!e.workTree)return;let n=e.workTree,r=[];for(let o of t){if(!Zn(o.path))throw new Error(`refusing to apply worktree operation on unsafe path '${o.path}'`);let s=S(n,o.path);if(!Ds(n,s))throw new Error(`refusing to apply worktree operation outside worktree: '${o.path}'`);o.type==="delete"?await ut(e.fs,s).then(()=>!0).catch(()=>!1)&&(await e.fs.rm(s),r.push(s)):o.type==="checkout"&&o.hash&&await lt(e,{path:o.path,hash:o.hash,mode:o.mode})}for(let o of r)await rr(e.fs,Qt(o),n)}async function Ln(e,t,n,r){return sr(e,[{label:"current",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:Js,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"checkout",actionHint:"switch branches"})}async function Bc(e,t,n,r){return sr(e,[{label:"HEAD",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:Js,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"merge"})}async function yn(e,t,n){return sr(e,[{label:"target",treeHash:t}],n,{mergeFn:Zs,updateWorktree:!0,reset:!0,errorExitCode:128,operationName:"reset"})}async function eo(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:Me(n)},i=await sr(e,[{label:"ORIG_HEAD",treeHash:t}],s,{mergeFn:Zs,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 ar(e,t,n,r){let o=await tm(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 rm(i,s,r);if(a.length>0)return{success:!1,newEntries:[],worktreeOps:[],errors:a,errorOutput:eo(a,r)};let{newEntries:c,worktreeOps:f}=om(i,s,n,r);return{success:!0,newEntries:c,worktreeOps:f,errors:[],errorOutput:null}}async function Ne(e,t){if(!e.workTree)return;let n=e.workTree,r=[];for(let o of t){if(!tr(o.path))throw new Error(`refusing to apply worktree operation on unsafe path '${o.path}'`);let s=S(n,o.path);if(!Ms(n,s))throw new Error(`refusing to apply worktree operation outside worktree: '${o.path}'`);o.type==="delete"?await mt(e.fs,s).then(()=>!0).catch(()=>!1)&&(await e.fs.rm(s),r.push(s)):o.type==="checkout"&&o.hash&&await dt(e,{path:o.path,hash:o.hash,mode:o.mode})}for(let o of r)await ir(e.fs,Qt(o),n)}async function Fn(e,t,n,r){return ar(e,[{label:"current",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:Qs,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"checkout",actionHint:"switch branches"})}async function Kc(e,t,n,r){return ar(e,[{label:"HEAD",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:Qs,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"merge"})}async function En(e,t,n){return ar(e,[{label:"target",treeHash:t}],n,{mergeFn:Js,updateWorktree:!0,reset:!0,errorExitCode:128,operationName:"reset"})}async function to(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:Le(n)},i=await ar(e,[{label:"ORIG_HEAD",treeHash:t}],s,{mergeFn:Js,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 fe(e,t),c=new Set(i.newEntries.map(f=>f.path));for(let f of o)!a.has(f)&&!c.has(f)&&i.worktreeOps.push({path:f,type:"delete"})}return i}var Ku,an=Ee(()=>{"use strict";oe();Ce();Ms();ue();er();ve();st();Ku=[{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 q(e,t,n){let r=await Qn(e,t);return r?n?{...r,...n}:r:Vu}function M(e){return typeof e=="object"&&e!==null&&"exitCode"in e}function Je(e){return e.workTree?null:Yu}async function Qe(e){let t=await J(e);return t||I("your current branch does not have any commits yet")}function En(e,t,n=`fatal: Exiting because of an unresolved conflict.
51
- `){return Ht(e)?L(`error: ${t} is not possible because you have unmerged files.
49
+ `,128)),i}if(e.workTree&&o.size>0){let a=await le(e,t),c=new Set(i.newEntries.map(f=>f.path));for(let f of o)!a.has(f)&&!c.has(f)&&i.worktreeOps.push({path:f,type:"delete"})}return i}var im,fn=Re(()=>{"use strict";ie();Ce();js();me();sr();He();tt();im=[{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){if(n?.objectStore&&n?.refStore&&n?.gitDir)return{fs:e,gitDir:n.gitDir,workTree:n.workTree??t,objectStore:n.objectStore,refStore:n.refStore,...n};let r=await rr(e,t);return r?n?{...r,...n}:r:am}function M(e){return typeof e=="object"&&e!==null&&"exitCode"in e}function Ye(e){return e.workTree?null:cm}async function Qe(e){let t=await Z(e);return t||I("your current branch does not have any commits yet")}function kn(e,t,n=`fatal: Exiting because of an unresolved conflict.
51
+ `){return At(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 pt(e,t,n){let r=await ze(e,t);return r||I(n??`bad revision '${t}'`)}async function Ae(e,t,n){let r=await ze(e,t);if(!r)return I(n??`bad revision '${t}'`);try{let o=await je(e,r),s=await j(e,o);return{hash:o,commit:s}}catch{return I(n??`bad revision '${t}'`)}}async function tt(e,t){try{return await Ur(e,t)}catch(n){return I(n.message)}}async function cn(e,t){try{return await As(e,t)}catch(n){return I(n.message)}}function Cr(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 dt(e,t){return e.workTree?nt(e.workTree,t):""}function Y(e){return e.slice(0,7)}function le(e){let t=e.indexOf(`
54
+ `+n,128):null}async function wt(e,t,n){let r=await Be(e,t);return r||I(n??`bad revision '${t}'`)}async function Me(e,t,n){let r=await Be(e,t);if(!r)return I(n??`bad revision '${t}'`);try{let o=await Te(e,r),s=await j(e,o);return{hash:o,commit:s}}catch{return I(n??`bad revision '${t}'`)}}async function nt(e,t){try{return await qr(e,t)}catch(n){return I(n.message)}}async function ln(e,t){try{return await Ds(e,t)}catch(n){return I(n.message)}}function Un(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 Ie(e,t){return e<t?-1:e>t?1:0}function ut(e,t){return e.workTree?st(e.workTree,t):""}function Y(e){return e.slice(0,7)}function ue(e){let t=e.indexOf(`
55
55
  `);return t===-1?e:e.slice(0,t)}function Yt(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 Dt(e,t,n,r=!1){return`[${e}${r?" (root-commit)":""} ${Y(t)}] ${le(n)}`}async function Nn(e,t,n){if(!await U(e,n.operationRef))return n.noOpError;let o=await U(e,"ORIG_HEAD")??await J(e);if(!o)return I(`There is no ${n.operationName} to abort (ORIG_HEAD missing).`);let s=await J(e),i=await j(e,o),a=await V(e),c=await eo(e,i.tree,a,n.origHeadAsTargetRev?o:void 0);if(!c.success)return c.errorOutput;if(await An(e,o),await ce(e,{version:2,entries:c.newEntries}),await Ge(e,c.worktreeOps),s&&((await Q(e))?.type==="symbolic"||s!==o)){let d=n.origHeadAsTargetRev?o:"HEAD";await se(e,t,"HEAD",s,o,`reset: moving to ${d}`)}return await n.clearState(e),{stdout:"",stderr:"",exitCode:0}}async function gt(e,t,n,r,o,s){let i=rn({type:"commit",tree:t,parents:n,author:r,committer:o,message:s}),a=await Se(e,"commit",i);return await An(e,a),a}function Xt(e){let t=e.split(`
57
+ 'git <command> [<revision>...] -- [<file>...]'`)}function Dt(e,t,n,r=!1){return`[${e}${r?" (root-commit)":""} ${Y(t)}] ${ue(n)}`}async function Bn(e,t,n){if(!await B(e,n.operationRef))return n.noOpError;let o=await B(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 z(e),c=await to(e,i.tree,a,n.origHeadAsTargetRev?o:void 0);if(!c.success)return c.errorOutput;if(await jn(e,o),await de(e,{version:2,entries:c.newEntries}),await Ne(e,c.worktreeOps),s&&((await Q(e))?.type==="symbolic"||s!==o)){let d=n.origHeadAsTargetRev?o:"HEAD";await fe(e,t,"HEAD",s,o,`reset: moving to ${d}`)}return await n.clearState(e),{stdout:"",stderr:"",exitCode:0}}async function bt(e,t,n,r,o,s){let i=rn({type:"commit",tree:t,parents:n,author:r,committer:o,message:s}),a=await Ae(e,"commit",i);return await jn(e,a),a}function Xt(e){let t=e.split(`
58
58
  `).filter(o=>!o.startsWith("#")).map(o=>o.trimEnd());for(;t.length>0&&t[0]==="";)t.shift();for(;t.length>0&&t[t.length-1]==="";)t.pop();if(t.length===0)return"";let n=[],r=!1;for(let o of t)o===""?(r||n.push(o),r=!0):(n.push(o),r=!1);return n.join(`
59
59
  `)+`
60
60
  `}function Mt(e){return e.endsWith(`
61
61
  `)?e:`${e}
62
- `}var Vu,Yu,oe=Ee(()=>{"use strict";On();Ce();ie();hn();ue();We();he();Dn();wn();an();Vu=I("not a git repository (or any of the parent directories): .git"),Yu=I("this operation must be run in a work tree")});var Vc={};yd(Vc,{CommitHeap:()=>_n,countAheadBehind:()=>Si,findOrphanedCommits:()=>vi,walkCommits:()=>jt});async function*jt(e,t,n){if(n?.topoOrder){yield*tm(e,t,n);return}let r=await Kc(e,n?.exclude),o=new Set(r),s=new _n,i=n?.shallowBoundary,a=Array.isArray(t)?t:[t];for(let c of a)o.has(c)||s.push(await Pr(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 Pr(e,l))}catch{}}}async function*tm(e,t,n){let r=await Kc(e,n?.exclude),o=new Set(r),s=new _n,i=n?.shallowBoundary,a=Array.isArray(t)?t:[t];for(let u of a)o.has(u)||s.push(await Pr(e,u));let c=[],f=new Map;for(;s.size>0;){let u=s.pop();if(o.has(u.hash)||(o.add(u.hash),f.set(u.hash,c.length),c.push(u),i?.has(u.hash)))continue;let h=n?.firstParent?u.commit.parents.slice(0,1):u.commit.parents;for(let p of h)if(!o.has(p))try{s.push(await Pr(e,p))}catch{}}let l=c.length;if(l===0)return;let d=new Int32Array(l);for(let u of c){let h=n?.firstParent?u.commit.parents.slice(0,1):u.commit.parents;for(let p of h){let g=f.get(p);g!==void 0&&(d[g]=(d[g]??0)+1)}}let m=[];for(let u=l-1;u>=0;u--)d[u]===0&&m.push(u);for(;m.length>0;){let u=m.pop();yield c[u];let h=n?.firstParent?c[u].commit.parents.slice(0,1):c[u].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&&m.push(g)}}}}async function Si(e,t,n){if(t===n)return{ahead:0,behind:0};let r=new Set;for await(let a of jt(e,t))r.add(a.hash);let o=new Set;for await(let a of jt(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 vi(e,t,n){let r=n?.maxCount??25,o=await we(e,"refs"),s=[];for(let l of o)try{s.push(await je(e,l.hash))}catch{}n?.targetHash&&s.push(n.targetHash);let i=new Set;if(s.length>0)for await(let l of jt(e,s))i.add(l.hash);if(i.has(t))return[];let a=[],c=new Set,f=new _n;for(f.push(await Pr(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:le(l.commit.message)});for(let d of l.commit.parents)c.has(d)||f.push(await Pr(e,d))}}return a}async function Kc(e,t){if(!t||t.length===0)return new Set;let n=new Set;for await(let r of jt(e,t))n.add(r.hash);return n}async function Pr(e,t){return{hash:t,commit:await j(e,t)}}var _n,ir=Ee(()=>{"use strict";oe();ie();he();_n=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 Wo=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 $a(e){return new Wo({_kind:"arg",type:e,required:!0})}function Oa(){return $a("string")}function Ia(){return $a("number")}var Is=class e{_def;constructor(t={_kind:"flag"}){this._def=t}describe(t){return new e({...this._def,description:t})}alias(t){return new e({...this._def,short:t})}default(t){return new e({...this._def,default:t})}count(){return new e({...this._def,counted:!0})}};var qo=class e{_def;constructor(t){this._def=t}describe(t){return new e({...this._def,description:t})}alias(t){return new e({...this._def,short:t})}env(t){return new e({...this._def,env:t})}required(){return new e({...this._def,required:!0})}default(t){return new e({...this._def,default:t})}repeatable(){return new e({...this._def,repeatable:!0,default:[]})}};function Sa(e){return new qo({_kind:"option",type:e})}function va(){return Sa("string")}function Ta(){return Sa("number")}var Z={string:va,number:Ta};function $(){return new Is}var z={string:Oa,number:Ia};function Ed(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+=`
62
+ `}var am,cm,ie=Re(()=>{"use strict";vn();Ce();ce();gn();me();ze();ge();Gn();sn();fn();am=I("not a git repository (or any of the parent directories): .git"),cm=I("this operation must be run in a work tree")});var Jc={};Ad(Jc,{CommitHeap:()=>Wn,countAheadBehind:()=>Ai,findOrphanedCommits:()=>Di,walkCommits:()=>jt});async function*jt(e,t,n){if(n?.topoOrder){yield*hm(e,t,n);return}let r=await Zc(e,n?.exclude),o=new Set(r),s=new Wn,i=n?.shallowBoundary,a=Array.isArray(t)?t:[t];for(let c of a)o.has(c)||s.push(await Ir(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 Ir(e,l))}catch{}}}async function*hm(e,t,n){let r=await Zc(e,n?.exclude),o=new Set(r),s=new Wn,i=n?.shallowBoundary,a=Array.isArray(t)?t:[t];for(let u of a)o.has(u)||s.push(await Ir(e,u));let c=[],f=new Map;for(;s.size>0;){let u=s.pop();if(o.has(u.hash)||(o.add(u.hash),f.set(u.hash,c.length),c.push(u),i?.has(u.hash)))continue;let h=n?.firstParent?u.commit.parents.slice(0,1):u.commit.parents;for(let p of h)if(!o.has(p))try{s.push(await Ir(e,p))}catch{}}let l=c.length;if(l===0)return;let d=new Int32Array(l);for(let u of c){let h=n?.firstParent?u.commit.parents.slice(0,1):u.commit.parents;for(let p of h){let g=f.get(p);g!==void 0&&(d[g]=(d[g]??0)+1)}}let m=[];for(let u=l-1;u>=0;u--)d[u]===0&&m.push(u);for(;m.length>0;){let u=m.pop();yield c[u];let h=n?.firstParent?c[u].commit.parents.slice(0,1):c[u].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&&m.push(g)}}}}async function Ai(e,t,n){if(t===n)return{ahead:0,behind:0};let r=new Set;for await(let a of jt(e,t))r.add(a.hash);let o=new Set;for await(let a of jt(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 Di(e,t,n){let r=n?.maxCount??25,o=await pe(e,"refs"),s=[];for(let l of o)try{s.push(await Te(e,l.hash))}catch{}n?.targetHash&&s.push(n.targetHash);let i=new Set;if(s.length>0)for await(let l of jt(e,s))i.add(l.hash);if(i.has(t))return[];let a=[],c=new Set,f=new Wn;for(f.push(await Ir(e,t));f.size>0&&a.length<r;){let l=f.pop();if(!c.has(l.hash)&&(c.add(l.hash),!i.has(l.hash))){a.push({hash:l.hash,subject:ue(l.commit.message)});for(let d of l.commit.parents)c.has(d)||f.push(await Ir(e,d))}}return a}async function Zc(e,t){if(!t||t.length===0)return new Set;let n=new Set;for await(let r of jt(e,t))n.add(r.hash);return n}async function Ir(e,t){return{hash:t,commit:await j(e,t)}}var Wn,fr=Re(()=>{"use strict";ie();ce();ge();Wn=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 Ko=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 Sa(e){return new Ko({_kind:"arg",type:e,required:!0})}function va(){return Sa("string")}function Ta(){return Sa("number")}var Ss=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 Vo=class e{_def;constructor(t){this._def=t}describe(t){return new e({...this._def,description:t})}alias(t){return new e({...this._def,short:t})}env(t){return new e({...this._def,env:t})}required(){return new e({...this._def,required:!0})}default(t){return new e({...this._def,default:t})}repeatable(){return new e({...this._def,repeatable:!0,default:[]})}};function Ha(e){return new Vo({_kind:"option",type:e})}function Aa(){return Ha("string")}function Da(){return Ha("number")}var V={string:Aa,number:Da};function $(){return new Ss}var q={string:va,number:Ta};function Dd(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+=`
63
63
  Not all git options are supported. Run 'git <command> --help' for available options.`,t}case"invalid_type":return`Invalid value for "${e.name}": expected ${e.expected}, got "${e.received}".`;case"missing_required":return e.kind==="option"?`Missing required option "--${e.name}".`:`Missing required argument <${e.name}>.`;case"unexpected_positional":return e.maxPositionals===0?`Unexpected argument "${e.value}". This command takes no positional arguments.`:`Unexpected argument "${e.value}". Expected at most ${e.maxPositionals} positional argument${e.maxPositionals===1?"":"s"}.`;case"missing_value":return`Option "--${e.name}" requires a value.`;case"unknown_command":{let t=`git: '${e.path.replace(/^git /,"")}' is not a git command.`;return e.suggestions.length>0&&(t+=` Did you mean ${e.suggestions.map(n=>`"${n}"`).join(" or ")}?`),t+=`
64
- Run 'git help' for available commands.`,t}}}function zo(e){return e.map(Ed).join(`
64
+ Run 'git help' for available commands.`,t}}}function Yo(e){return e.map(Dd).join(`
65
65
  `)+`
66
- `}function kd(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 Ss(e,t,n){let r=n??Math.min(Math.max(1,Math.floor(e.length/2)),3);return t.map(s=>({candidate:s,distance:kd(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 Ha(e,t,n,r){let o=[],s=new Map,i=new Map;for(let[m,u]of Object.entries(e)){let h=Nr(m);s.set(h,{key:m,def:u}),u.short&&i.set(u.short,{key:m,def:u})}let a={},c=[],f=[],l=0;for(;l<n.length;){let m=n[l];if(m==="--"){for(l++;l<n.length;)f.push(n[l]),l++;break}if(m.startsWith("--")){let u=m.indexOf("="),h,p;u!==-1?(h=m.slice(2,u),p=m.slice(u+1)):h=m.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:Ss(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=Lr(w,g.def.type,g.key,o);y!==void 0&&(g.def.repeatable?(Array.isArray(a[g.key])||(a[g.key]=[]),a[g.key].push(y)):a[g.key]=y),l++;continue}if(m.startsWith("-")&&m.length>1){let u=m.slice(1);for(let h=0;h<u.length;h++){let p=u[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=u.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=Lr(y,g.def.type,g.key,o);x!==void 0&&(g.def.repeatable?(Array.isArray(a[g.key])||(a[g.key]=[]),a[g.key].push(x)):a[g.key]=x);break}l++;continue}c.push(m),l++}let d=0;for(let m=0;m<t.length;m++){let u=t[m],h=u.name??`arg${m}`;if(u.variadic){let p=c.slice(d);p.length>0?a[h]=p.map(g=>Lr(g,u.type,h,o)):u.required?o.push({type:"missing_required",name:h,kind:"arg"}):u.default!==void 0?a[h]=u.default:a[h]=[],d=c.length}else{let p=c[d];p!==void 0?(a[h]=Lr(p,u.type,h,o),d++):u.required?o.push({type:"missing_required",name:h,kind:"arg"}):u.default!==void 0&&(a[h]=u.default)}}if(d<c.length)for(let m=d;m<c.length;m++)o.push({type:"unexpected_positional",value:c[m],maxPositionals:t.length});for(let[m,u]of Object.entries(e))if(a[m]===void 0){if(u._kind==="flag")a[m]=u.default??(u.counted?0:!1);else if(u._kind==="option"){let h=u;if(h.env&&r?.[h.env]!==void 0){let p=Lr(r[h.env],h.type,m,o);p!==void 0&&(a[m]=p)}a[m]===void 0&&(h.required&&h.default===void 0?o.push({type:"missing_required",name:m,kind:"option"}):h.default!==void 0&&(a[m]=h.default))}}return o.length>0?{ok:!1,errors:o}:{ok:!0,args:a,passthrough:f}}function Lr(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 Nr(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function br(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=Rd(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(`
67
- `)}function Rd(e,t){let n=Object.entries(e);if(n.length===0)return[];let r=[];for(let[i,a]of n){let c=Nr(i);if(a._kind==="flag"){let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c}`);let d=[];f.description&&d.push(f.description),f.counted&&d.push("(counted)"),f.default!==void 0&&d.push(`(default: ${f.default})`),r.push([l.join(" "),d.join(" ")])}else{let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c} <${f.type}>`);let d=[];f.description&&d.push(f.description),f.repeatable&&d.push("(repeatable)"),f.required&&d.push("(required)"),f.default!==void 0&&!f.repeatable&&d.push(`(default: ${JSON.stringify(f.default)})`),f.env&&d.push(`[env: ${f.env}]`),r.push([l.join(" "),d.join(" ")])}}let o=Math.max(...r.map(([i])=>i.length)),s=[];t&&s.push(t);for(let[i,a]of r)if(a){let c=" ".repeat(o-i.length+2);s.push(` ${i}${c}${a}`)}else s.push(` ${i}`);return s}function Aa(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r._def;return t}function Da(e){return e?e.map(t=>t._def):[]}var vs=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,Aa(n.options),Da(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=Nr(s);if(i._kind==="flag")if(i.counted&&typeof a=="number"&&a>0)for(let f=0;f<a;f++)n.push(`--${c}`);else a===!0?n.push(`--${c}`):a===!1&&i.default===!0&&n.push(`--no-${c}`);else i._kind==="option"&&a!==void 0&&n.push(`--${c}`,String(a))}for(let s of this.args){let i=s.name??"arg",a=o[i];if(a!==void 0)if(s.variadic&&Array.isArray(a))for(let c of a)n.push(String(c));else n.push(String(a))}return n}async invoke(t,n){if(!this.handler)return{stdout:"",stderr:`Command "${this.fullPath}" has no handler`,exitCode:1};let r={...t},o=this.allOptions;for(let[s,i]of Object.entries(o))if(r[s]===void 0){if(i._kind==="flag")r[s]=i.default??(i.counted?0:!1);else if(i._kind==="option"){if(i.default!==void 0)r[s]=i.default;else if(i.required)return{stdout:"",stderr:`Missing required option "${s}"`,exitCode:1}}}for(let s of this.args){let i=s.name??"arg";if(r[i]===void 0){if(s.default!==void 0)r[i]=s.default;else if(s.required)return{stdout:"",stderr:`Missing required arg "${i}"`,exitCode:1}}}try{return await this.handler(r,n,{passthrough:[]})}catch(s){return{stdout:"",stderr:s instanceof Error?s.message:String(s),exitCode:1}}}async execute(t,n){let r=n?.env?Object.fromEntries(n.env):{},o=t[0];if(o&&!o.startsWith("-")){let s=this.children.get(o);if(s)return s.execute(t.slice(1),n)}if(!this.handler&&o&&!o.startsWith("-")){let s=Ss(o,[...this.children.keys()]);return{stdout:"",stderr:zo([{type:"unknown_command",path:`${this.fullPath} ${o}`,suggestions:s}]),exitCode:1}}if(xd(t))return{stdout:br(this),stderr:"",exitCode:0};if(this.handler){let s=this.transformArgs?this.transformArgs([...t]):[...t],i=Ha(this.allOptions,this.args,s,r);if(!i.ok)return{stdout:"",stderr:zo(i.errors),exitCode:1};try{return await this.handler(i.args,n,{passthrough:i.passthrough})}catch(a){return{stdout:"",stderr:a instanceof Error?a.message:String(a),exitCode:1}}}return{stdout:br(this),stderr:"",exitCode:0}}};function Ko(e,t){return new vs(e,t.description,Aa(t.options),Da(t.args),t.examples??[],t.handler,t.transformArgs)}function xd(e){return e.some(t=>t==="--help")}oe();Xs();Ce();ue();Ks();var no=1,$i=2,to=4,Oi=8,as=16,qc=new Set(["*","?","[","\\"]),Zu={glob:no,literal:$i,icase:to,top:Oi,exclude:as};function or(e){for(let t=0;t<e.length;t++)if(qc.has(e[t]))return!0;return!1}function Ju(e){for(let t=0;t<e.length;t++)if(qc.has(e[t]))return t;return e.length}function Wc(e){let t=e.split("/"),n=[];for(let r of t)if(!(r===""||r===".")){if(r===".."){n.length>0&&n[n.length-1]!==".."&&n.pop();continue}n.push(r)}return n.join("/")}function _e(e,t){let n=0,r=e;if(r.startsWith(":(")){let c=r.indexOf(")");if(c!==-1){let f=r.slice(2,c);r=r.slice(c+1);for(let l of f.split(",")){let d=Zu[l.trim()];d!==void 0&&(n|=d)}}}else r.startsWith(":/")?(n|=Oi,r=r.slice(2)):(r.startsWith(":!")||r.startsWith(":^"))&&(n|=as,r=r.slice(2));n&$i&&n&no&&(n&=~no);let o;n&Oi||t===""?o=Wc(r):o=Wc(`${t}/${r}`);let s=!!(n&$i),i=s?!1:or(o),a=s?o.length:Ju(o);return{original:e,pattern:o,magic:n,hasWildcard:i,nowildcardLen:a}}function ro(e,t){let{pattern:n,hasWildcard:r,magic:o,nowildcardLen:s}=e;if(n==="")return!0;if(!r){let a=!!(o&to),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&to){if(a.toLowerCase()!==c.toLowerCase())return!1}else if(a!==c)return!1}let i=0;return o&no&&(i|=2),o&to&&(i|=1),tr(n,t,i)===0}function be(e,t){let n=!1,r=!1;for(let o of e)o.magic&as?ro(o,t)&&(r=!0):ro(o,t)&&(n=!0);return n&&!r}st();function zc(e,t){e.command("add",{description:"Add file contents to the index",args:[z.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 q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Je(s);if(i)return i;let a=s.workTree,c={skipIgnore:n.force,updateOnly:n.update,actions:n["dry-run"]?[]:void 0},f=n.paths;if((n.all||n.update)&&f.length===0){let p=await V(s);return p=await Ii(s,p,a,"",c),n["dry-run"]||await ce(s,p),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}if(f.length===0)return{stdout:"",stderr:`Nothing specified, nothing added.
68
- Maybe you wanted to say 'git add .'?`,exitCode:0};let l=await V(s),d=[],m=[];for(let p of f)or(p)?m.push(p):d.push(p);let u=[];for(let p of d){let g=vt(r.cwd,p),w=nt(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(k=>k.path===w||k.path.startsWith(`${w}/`)),E=await em(s,a,w,b);if(E){b&&((await r.fs.stat(g)).isDirectory?l=await Ii(s,l,g,w,c):l=(await on(s,l,w)).index),u.push(E);continue}}if((await r.fs.stat(g)).isDirectory)l=await Ii(s,l,g,w,c);else{let b=l.entries.find(k=>k.path===w&&k.stage===0)?.hash,E=await on(s,l,w);l=E.index,c.actions&&E.hash!==b&&c.actions.push(`add '${w}'
69
- `)}}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}'
70
- `);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(u.length>0)return n["dry-run"]||await ce(s,l),L(`The following paths are ignored by one of your .gitignore files:
66
+ `}function Md(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 vs(e,t,n){let r=n??Math.min(Math.max(1,Math.floor(e.length/2)),3);return t.map(s=>({candidate:s,distance:Md(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 Ma(e,t,n,r){let o=[],s=new Map,i=new Map;for(let[m,u]of Object.entries(e)){let h=Ur(m);s.set(h,{key:m,def:u}),u.short&&i.set(u.short,{key:m,def:u})}let a={},c=[],f=[],l=0;for(;l<n.length;){let m=n[l];if(m==="--"){for(l++;l<n.length;)f.push(n[l]),l++;break}if(m.startsWith("--")){let u=m.indexOf("="),h,p;u!==-1?(h=m.slice(2,u),p=m.slice(u+1)):h=m.slice(2);let g=s.get(h);if(!g){if(h.startsWith("no-")){let y=s.get(h.slice(3));if(y&&y.def._kind==="flag"){a[y.key]=y.def.counted?0:!1,l++;continue}}let x=[...s.keys()];o.push({type:"unknown_option",name:`--${h}`,suggestions:vs(h,x).map(y=>`--${y}`)}),l++;continue}if(g.def._kind==="flag"){g.def.counted?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0,l++;continue}let w=p??n[++l];if(w===void 0){o.push({type:"missing_value",name:g.key}),l++;continue}let b=Fr(w,g.def.type,g.key,o);b!==void 0&&(g.def.repeatable?(Array.isArray(a[g.key])||(a[g.key]=[]),a[g.key].push(b)):a[g.key]=b),l++;continue}if(m.startsWith("-")&&m.length>1){let u=m.slice(1);for(let h=0;h<u.length;h++){let p=u[h],g=i.get(p);if(!g){let y=[];s.has(p)&&y.push(`--${p}`),o.push({type:"unknown_option",name:`-${p}`,suggestions:y});continue}if(g.def._kind==="flag"){g.def.counted?a[g.key]=(a[g.key]||0)+1:a[g.key]=!0;continue}let w=u.slice(h+1),b=w.length>0?w:n[++l];if(b===void 0){o.push({type:"missing_value",name:g.key});break}let x=Fr(b,g.def.type,g.key,o);x!==void 0&&(g.def.repeatable?(Array.isArray(a[g.key])||(a[g.key]=[]),a[g.key].push(x)):a[g.key]=x);break}l++;continue}c.push(m),l++}let d=0;for(let m=0;m<t.length;m++){let u=t[m],h=u.name??`arg${m}`;if(u.variadic){let p=c.slice(d);p.length>0?a[h]=p.map(g=>Fr(g,u.type,h,o)):u.required?o.push({type:"missing_required",name:h,kind:"arg"}):u.default!==void 0?a[h]=u.default:a[h]=[],d=c.length}else{let p=c[d];p!==void 0?(a[h]=Fr(p,u.type,h,o),d++):u.required?o.push({type:"missing_required",name:h,kind:"arg"}):u.default!==void 0&&(a[h]=u.default)}}if(d<c.length)for(let m=d;m<c.length;m++)o.push({type:"unexpected_positional",value:c[m],maxPositionals:t.length});for(let[m,u]of Object.entries(e))if(a[m]===void 0){if(u._kind==="flag")a[m]=u.default??(u.counted?0:!1);else if(u._kind==="option"){let h=u;if(h.env&&r?.[h.env]!==void 0){let p=Fr(r[h.env],h.type,m,o);p!==void 0&&(a[m]=p)}a[m]===void 0&&(h.required&&h.default===void 0?o.push({type:"missing_required",name:m,kind:"option"}):h.default!==void 0&&(a[m]=h.default))}}return o.length>0?{ok:!1,errors:o}:{ok:!0,args:a,passthrough:f}}function Fr(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 Ur(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function Er(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=jd(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(`
67
+ `)}function jd(e,t){let n=Object.entries(e);if(n.length===0)return[];let r=[];for(let[i,a]of n){let c=Ur(i);if(a._kind==="flag"){let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c}`);let d=[];f.description&&d.push(f.description),f.counted&&d.push("(counted)"),f.default!==void 0&&d.push(`(default: ${f.default})`),r.push([l.join(" "),d.join(" ")])}else{let f=a,l=[];f.short&&l.push(`-${f.short},`),l.push(`--${c} <${f.type}>`);let d=[];f.description&&d.push(f.description),f.repeatable&&d.push("(repeatable)"),f.required&&d.push("(required)"),f.default!==void 0&&!f.repeatable&&d.push(`(default: ${JSON.stringify(f.default)})`),f.env&&d.push(`[env: ${f.env}]`),r.push([l.join(" "),d.join(" ")])}}let o=Math.max(...r.map(([i])=>i.length)),s=[];t&&s.push(t);for(let[i,a]of r)if(a){let c=" ".repeat(o-i.length+2);s.push(` ${i}${c}${a}`)}else s.push(` ${i}`);return s}function ja(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r._def;return t}function Ga(e){return e?e.map(t=>t._def):[]}var Ts=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,ja(n.options),Ga(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=Ur(s);if(i._kind==="flag")if(i.counted&&typeof a=="number"&&a>0)for(let f=0;f<a;f++)n.push(`--${c}`);else a===!0?n.push(`--${c}`):a===!1&&i.default===!0&&n.push(`--no-${c}`);else i._kind==="option"&&a!==void 0&&n.push(`--${c}`,String(a))}for(let s of this.args){let i=s.name??"arg",a=o[i];if(a!==void 0)if(s.variadic&&Array.isArray(a))for(let c of a)n.push(String(c));else n.push(String(a))}return n}async invoke(t,n){if(!this.handler)return{stdout:"",stderr:`Command "${this.fullPath}" has no handler`,exitCode:1};let r={...t},o=this.allOptions;for(let[s,i]of Object.entries(o))if(r[s]===void 0){if(i._kind==="flag")r[s]=i.default??(i.counted?0:!1);else if(i._kind==="option"){if(i.default!==void 0)r[s]=i.default;else if(i.required)return{stdout:"",stderr:`Missing required option "${s}"`,exitCode:1}}}for(let s of this.args){let i=s.name??"arg";if(r[i]===void 0){if(s.default!==void 0)r[i]=s.default;else if(s.required)return{stdout:"",stderr:`Missing required arg "${i}"`,exitCode:1}}}try{return await this.handler(r,n,{passthrough:[]})}catch(s){return{stdout:"",stderr:s instanceof Error?s.message:String(s),exitCode:1}}}async execute(t,n){let r=n?.env?Object.fromEntries(n.env):{},o=t[0];if(o&&!o.startsWith("-")){let s=this.children.get(o);if(s)return s.execute(t.slice(1),n)}if(!this.handler&&o&&!o.startsWith("-")){let s=vs(o,[...this.children.keys()]);return{stdout:"",stderr:Yo([{type:"unknown_command",path:`${this.fullPath} ${o}`,suggestions:s}]),exitCode:1}}if(Gd(t))return{stdout:Er(this),stderr:"",exitCode:0};if(this.handler){let s=this.transformArgs?this.transformArgs([...t]):[...t],i=Ma(this.allOptions,this.args,s,r);if(!i.ok)return{stdout:"",stderr:Yo(i.errors),exitCode:1};try{return await this.handler(i.args,n,{passthrough:i.passthrough})}catch(a){return{stdout:"",stderr:a instanceof Error?a.message:String(a),exitCode:1}}}return{stdout:Er(this),stderr:"",exitCode:0}}};function Xo(e,t){return new Ts(e,t.description,ja(t.options),Ga(t.args),t.examples??[],t.handler,t.transformArgs)}function Gd(e){return e.some(t=>t==="--help")}ie();Zs();Ce();me();is();var ro=1,vi=2,no=4,Ti=8,cs=16,Yc=new Set(["*","?","[","\\"]),lm={glob:ro,literal:vi,icase:no,top:Ti,exclude:cs};function cr(e){for(let t=0;t<e.length;t++)if(Yc.has(e[t]))return!0;return!1}function dm(e){for(let t=0;t<e.length;t++)if(Yc.has(e[t]))return t;return e.length}function Vc(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=lm[l.trim()];d!==void 0&&(n|=d)}}}else r.startsWith(":/")?(n|=Ti,r=r.slice(2)):(r.startsWith(":!")||r.startsWith(":^"))&&(n|=cs,r=r.slice(2));n&vi&&n&ro&&(n&=~ro);let o;n&Ti||t===""?o=Vc(r):o=Vc(`${t}/${r}`);let s=!!(n&vi),i=s?!1:cr(o),a=s?o.length:dm(o);return{original:e,pattern:o,magic:n,hasWildcard:i,nowildcardLen:a}}function so(e,t){let{pattern:n,hasWildcard:r,magic:o,nowildcardLen:s}=e;if(n==="")return!0;if(!r){let a=!!(o&no),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&no){if(a.toLowerCase()!==c.toLowerCase())return!1}else if(a!==c)return!1}let i=0;return o&ro&&(i|=2),o&no&&(i|=1),on(n,t,i)===0}function Ee(e,t){let n=!1,r=!1;for(let o of e)o.magic&cs?so(o,t)&&(r=!0):so(o,t)&&(n=!0);return n&&!r}tt();function Xc(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=Ye(s);if(i)return i;let a=s.workTree,c={skipIgnore:n.force,updateOnly:n.update,actions:n["dry-run"]?[]:void 0},f=n.paths;if((n.all||n.update)&&f.length===0){let p=await z(s);return p=await Hi(s,p,a,"",c),n["dry-run"]||await de(s,p),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}if(f.length===0)return{stdout:"",stderr:`Nothing specified, nothing added.
68
+ Maybe you wanted to say 'git add .'?`,exitCode:0};let l=await z(s),d=[],m=[];for(let p of f)cr(p)?m.push(p):d.push(p);let u=[];for(let p of d){let g=Tt(r.cwd,p),w=st(a,g);if((w==="."||w==="")&&(w=""),w.startsWith(".."))return I(`'${p}' is outside repository at '${a}'`);if(await r.fs.exists(g)){if(!n.force&&w!==""){let y=l.entries.some(E=>E.path===w||E.path.startsWith(`${w}/`)),k=await mm(s,a,w,y);if(k){y&&((await r.fs.stat(g)).isDirectory?l=await Hi(s,l,g,w,c):l=(await cn(s,l,w)).index),u.push(k);continue}}if((await r.fs.stat(g)).isDirectory)l=await Hi(s,l,g,w,c);else{let y=l.entries.find(E=>E.path===w&&E.stage===0)?.hash,k=await cn(s,l,w);l=k.index,c.actions&&k.hash!==y&&c.actions.push(`add '${w}'
69
+ `)}}else if(l.entries.some(y=>y.path===w||y.path.startsWith(`${w}/`))){if(c.actions)for(let y of l.entries)(y.path===w||y.path.startsWith(`${w}/`))&&c.actions.push(`remove '${y.path}'
70
+ `);l={...l,entries:l.entries.filter(y=>y.path!==w&&!y.path.startsWith(`${w}/`))}}else return I(`pathspec '${p}' did not match any files`)}if(u.length>0)return n["dry-run"]||await de(s,l),L(`The following paths are ignored by one of your .gitignore files:
71
71
  ${u.join(`
72
72
  `)}
73
73
  hint: Use -f if you really want to add them.
74
74
  hint: Disable this message with "git config set advice.addIgnoredFile false"
75
- `);if(m.length>0){let p=await Qu(s,r.cwd,l,m,c);if(p.error)return p.error;l=p.index}return n["dry-run"]||await ce(s,l),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}})}async function Qu(e,t,n,r,o){let s=e.workTree,i=dt(e,t),a=r.map(d=>_e(d,i)),c=new Array(a.length).fill(!1),f=d=>{for(let m=0;m<a.length;m++)a[m].hasWildcard&&ro(a[m],d)&&(c[m]=!0)},l=[];for(let d of n.entries){if(d.stage>0||!be(a,d.path))continue;f(d.path);let m=S(s,d.path);if(await e.fs.exists(m)){let u=await on(e,n,d.path);n=u.index,o?.actions&&u.hash!==d.hash&&o.actions.push(`add '${d.path}'
75
+ `);if(m.length>0){let p=await um(s,r.cwd,l,m,c);if(p.error)return p.error;l=p.index}return n["dry-run"]||await de(s,l),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}})}async function um(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 m=0;m<a.length;m++)a[m].hasWildcard&&so(a[m],d)&&(c[m]=!0)},l=[];for(let d of n.entries){if(d.stage>0||!Ee(a,d.path))continue;f(d.path);let m=S(s,d.path);if(await e.fs.exists(m)){let u=await cn(e,n,d.path);n=u.index,o?.actions&&u.hash!==d.hash&&o.actions.push(`add '${d.path}'
76
76
  `)}else o?.actions&&o.actions.push(`remove '${d.path}'
77
- `),l.push(d.path)}for(let d of l)n=ft(n,d);if(!o?.updateOnly){let d=new Set(n.entries.map(u=>u.path)),m=await rt(e,s,"",{skipIgnore:o?.skipIgnore});for(let u of m){if(d.has(u)||!be(a,u))continue;f(u),o?.actions&&o.actions.push(`add '${u}'
78
- `),n=(await on(e,n,u)).index}}for(let d=0;d<a.length;d++){let m=a[d];if(!c[d]&&!(m.magic&as))return{index:n,error:I(`pathspec '${m.original}' did not match any files`)}}return{index:n}}async function Ii(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=S(i,f.path);if(await e.fs.exists(l)){let d=f.stage>0,m=await on(e,t,f.path);t=m.index,o?.actions&&(d||m.hash!==f.hash)&&o.actions.push(`add '${f.path}'
77
+ `),l.push(d.path)}for(let d of l)n=lt(n,d);if(!o?.updateOnly){let d=new Set(n.entries.map(u=>u.path)),m=await ot(e,s,"",{skipIgnore:o?.skipIgnore});for(let u of m){if(d.has(u)||!Ee(a,u))continue;f(u),o?.actions&&o.actions.push(`add '${u}'
78
+ `),n=(await cn(e,n,u)).index}}for(let d=0;d<a.length;d++){let m=a[d];if(!c[d]&&!(m.magic&cs))return{index:n,error:I(`pathspec '${m.original}' did not match any files`)}}return{index:n}}async function Hi(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=S(i,f.path);if(await e.fs.exists(l)){let d=f.stage>0,m=await cn(e,t,f.path);t=m.index,o?.actions&&(d||m.hash!==f.hash)&&o.actions.push(`add '${f.path}'
79
79
  `)}else o?.actions&&o.actions.push(`remove '${f.path}'
80
- `),a.push(f.path)}for(let f of a)t=ft(t,f);if(!o?.updateOnly){let f=new Set(t.entries.map(d=>d.path)),l=await rt(e,n,r===""?"":r,{skipIgnore:o?.skipIgnore});for(let d of l){if(f.has(d))continue;o?.actions&&o.actions.push(`add '${d}'
81
- `),t=(await on(e,t,d)).index}}return t}async function em(e,t,n,r){let o=await xr(e);try{let i=await e.fs.readFile(S(t,".gitignore"));o=nr(o,i,"",S(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=S(t,a);if(sn(o,a,!0)==="ignored")return a;try{let f=await e.fs.readFile(S(c,".gitignore"));o=nr(o,f,a,S(c,".gitignore"))}catch{}}if(!r){let i=await e.fs.stat(S(t,n)).then(a=>a.isDirectory).catch(()=>!1);if(sn(o,n,i)==="ignored")return n}return null}oe();oe();ir();ie();ue();he();async function Pe(e,t){let n=S(e.gitDir,t);return await e.fs.exists(n)?e.fs.readFile(n):null}async function Te(e,t,n){await e.fs.writeFile(S(e.gitDir,t),n)}async function ge(e,t){let n=S(e.gitDir,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function cs(e){await me(e,"MERGE_HEAD"),await me(e,"ORIG_HEAD"),await ge(e,"MERGE_MSG"),await ge(e,"MERGE_MODE"),await ge(e,"SQUASH_MSG")}async function Gt(e){await me(e,"CHERRY_PICK_HEAD"),await me(e,"ORIG_HEAD"),await ge(e,"MERGE_MSG")}async function Lt(e){await me(e,"REVERT_HEAD"),await me(e,"ORIG_HEAD"),await ge(e,"MERGE_MSG")}async function ar(e){for(let t of["CHERRY_PICK_HEAD","REVERT_HEAD","MERGE_HEAD","ORIG_HEAD"])await me(e,t);await ge(e,"MERGE_MSG"),await ge(e,"MERGE_MODE"),await ge(e,"SQUASH_MSG")}var Ti="DETACH_POINT";async function Yc(e,t){await e.fs.writeFile(S(e.gitDir,Ti),t)}async function wt(e){let t=S(e.gitDir,Ti);await e.fs.exists(t)&&await e.fs.rm(t)}async function fs(e){let t=S(e.gitDir,Ti);return await e.fs.exists(t)?(await e.fs.readFile(t))?.trim()??null:null}ue();he();async function Pt(e){let t=await Pe(e,"BISECT_START");return t!=null&&t.trim().length>0}async function ls(e){let t=await Pe(e,"BISECT_TERMS");if(!t)return{termBad:"bad",termGood:"good"};let n=t.trim().split(`
82
- `);return{termBad:n[0]??"bad",termGood:n[1]??"good"}}async function so(e){let t=(await Pe(e,"BISECT_START"))?.trim()??"",{termBad:n,termGood:r}=await ls(e),o=await U(e,`refs/bisect/${n}`),s=[],i=[],a=await we(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(S(e.gitDir,"BISECT_HEAD")),f=await e.fs.exists(S(e.gitDir,"BISECT_FIRST_PARENT"));return{startRef:t,badHash:o,goodHashes:s,skipHashes:i,termBad:n,termGood:r,noCheckout:c,firstParent:f}}async function $t(e,t){let n=await Pe(e,"BISECT_LOG")??"";await Te(e,"BISECT_LOG",n+t+`
83
- `)}async function oo(e){let t=await we(e,"refs/bisect");for(let r of t)await me(e,r.name);await ge(e,"BISECT_EXPECTED_REV"),await ge(e,"BISECT_ANCESTORS_OK"),await ge(e,"BISECT_LOG"),await ge(e,"BISECT_TERMS"),await ge(e,"BISECT_NAMES"),await ge(e,"BISECT_FIRST_PARENT"),await ge(e,"BISECT_HEAD"),await ge(e,"BISECT_START");let n=S(e.gitDir,"refs","bisect");if(await e.fs.exists(n))try{await e.fs.rm(n,{recursive:!0})}catch{}}async function Xc(e,t,n,r,o){let s=[],i=new Map;for await(let g of jt(e,t,{exclude:n})){let w=o?g.commit.parents.slice(0,1):g.commit.parents;s.push({hash:g.hash,subject:le(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 E=i.get(b);if(E)for(let k of E)!w.has(k)&&c.has(k)&&y.push(k)}f.set(g.hash,w.size)}let 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 m=!1;if(d===a){m=!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 u=s.find(g=>g.hash===l),h=nm(a),p=rm(a);return{hash:u.hash,subject:u.subject,remaining:h,steps:p,found:!1,onlySkippedLeft:m}}function nm(e){return Math.floor((e-1)/2)}function rm(e){return e<=1?0:Math.ceil(Math.log2(e))}function Zc(e){let t=e.badHash!=null,n=e.goodHashes.length;return!t&&n===0?`status: waiting for both ${e.termGood} and ${e.termBad} commits
80
+ `),a.push(f.path)}for(let f of a)t=lt(t,f);if(!o?.updateOnly){let f=new Set(t.entries.map(d=>d.path)),l=await ot(e,n,r===""?"":r,{skipIgnore:o?.skipIgnore});for(let d of l){if(f.has(d))continue;o?.actions&&o.actions.push(`add '${d}'
81
+ `),t=(await cn(e,t,d)).index}}return t}async function mm(e,t,n,r){let o=await Or(e);try{let i=await e.fs.readFile(S(t,".gitignore"));o=or(o,i,"",S(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=S(t,a);if(an(o,a,!0)==="ignored")return a;try{let f=await e.fs.readFile(S(c,".gitignore"));o=or(o,f,a,S(c,".gitignore"))}catch{}}if(!r){let i=await e.fs.stat(S(t,n)).then(a=>a.isDirectory).catch(()=>!1);if(an(o,n,i)==="ignored")return n}return null}ie();ie();fr();ce();me();ge();async function Oe(e,t){let n=S(e.gitDir,t);return await e.fs.exists(n)?e.fs.readFile(n):null}async function De(e,t,n){await e.fs.writeFile(S(e.gitDir,t),n)}async function ye(e,t){let n=S(e.gitDir,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function fs(e){await he(e,"MERGE_HEAD"),await he(e,"ORIG_HEAD"),await ye(e,"MERGE_MSG"),await ye(e,"MERGE_MODE"),await ye(e,"SQUASH_MSG")}async function Gt(e){await he(e,"CHERRY_PICK_HEAD"),await he(e,"ORIG_HEAD"),await ye(e,"MERGE_MSG")}async function Lt(e){await he(e,"REVERT_HEAD"),await he(e,"ORIG_HEAD"),await ye(e,"MERGE_MSG")}async function lr(e){for(let t of["CHERRY_PICK_HEAD","REVERT_HEAD","MERGE_HEAD","ORIG_HEAD"])await he(e,t);await ye(e,"MERGE_MSG"),await ye(e,"MERGE_MODE"),await ye(e,"SQUASH_MSG")}var Mi="DETACH_POINT";async function Qc(e,t){await e.fs.writeFile(S(e.gitDir,Mi),t)}async function yt(e){let t=S(e.gitDir,Mi);await e.fs.exists(t)&&await e.fs.rm(t)}async function ls(e){let t=S(e.gitDir,Mi);return await e.fs.exists(t)?(await e.fs.readFile(t))?.trim()??null:null}me();ge();async function $t(e){let t=await Oe(e,"BISECT_START");return t!=null&&t.trim().length>0}async function ds(e){let t=await Oe(e,"BISECT_TERMS");if(!t)return{termBad:"bad",termGood:"good"};let n=t.trim().split(`
82
+ `);return{termBad:n[0]??"bad",termGood:n[1]??"good"}}async function oo(e){let t=(await Oe(e,"BISECT_START"))?.trim()??"",{termBad:n,termGood:r}=await ds(e),o=await B(e,`refs/bisect/${n}`),s=[],i=[],a=await pe(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 Oe(e,"BISECT_HEAD")!=null||await e.fs.exists(S(e.gitDir,"BISECT_HEAD")),f=await e.fs.exists(S(e.gitDir,"BISECT_FIRST_PARENT"));return{startRef:t,badHash:o,goodHashes:s,skipHashes:i,termBad:n,termGood:r,noCheckout:c,firstParent:f}}async function Ot(e,t){let n=await Oe(e,"BISECT_LOG")??"";await De(e,"BISECT_LOG",n+t+`
83
+ `)}async function io(e){let t=await pe(e,"refs/bisect");for(let r of t)await he(e,r.name);await ye(e,"BISECT_EXPECTED_REV"),await ye(e,"BISECT_ANCESTORS_OK"),await ye(e,"BISECT_LOG"),await ye(e,"BISECT_TERMS"),await ye(e,"BISECT_NAMES"),await ye(e,"BISECT_FIRST_PARENT"),await ye(e,"BISECT_HEAD"),await ye(e,"BISECT_START");let n=S(e.gitDir,"refs","bisect");if(await e.fs.exists(n))try{await e.fs.rm(n,{recursive:!0})}catch{}}async function ef(e,t,n,r,o){let s=[],i=new Map;for await(let g of jt(e,t,{exclude:n})){let w=o?g.commit.parents.slice(0,1):g.commit.parents;s.push({hash:g.hash,subject:ue(g.commit.message)}),i.set(g.hash,w)}let a=s.length;if(a===0)return null;if(a===1)return{hash:s[0].hash,subject:s[0].subject,remaining:0,steps:0,found:!0,onlySkippedLeft:!1};let c=new Set(s.map(g=>g.hash)),f=new Map;for(let g of s){let w=new Set,b=[g.hash],x=0;for(;x<b.length;){let y=b[x++];if(w.has(y)||!c.has(y))continue;w.add(y);let k=i.get(y);if(k)for(let E of k)!w.has(E)&&c.has(E)&&b.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,b=Math.abs(2*w-a);b<d&&(d=b,l=g.hash)}let m=!1;if(d===a){m=!0;for(let g of s){let w=f.get(g.hash)??0,b=Math.abs(2*w-a);b<d&&(d=b,l=g.hash)}}let u=s.find(g=>g.hash===l),h=pm(a),p=gm(a);return{hash:u.hash,subject:u.subject,remaining:h,steps:p,found:!1,onlySkippedLeft:m}}function pm(e){return Math.floor((e-1)/2)}function gm(e){return e<=1?0:Math.ceil(Math.log2(e))}function tf(e){let t=e.badHash!=null,n=e.goodHashes.length;return!t&&n===0?`status: waiting for both ${e.termGood} and ${e.termBad} commits
84
84
  `:t?n===0?`status: waiting for ${e.termGood} commit(s), ${e.termBad} commit known
85
85
  `:"":`status: waiting for ${e.termBad} commit, ${n} ${e.termGood} commit(s) known
86
- `}function Jc(e){return`Bisecting: ${e.remaining} revision${e.remaining===1?"":"s"} left to test after this (roughly ${e.steps} step${e.steps===1?"":"s"})
86
+ `}function nf(e){return`Bisecting: ${e.remaining} revision${e.remaining===1?"":"s"} left to test after this (roughly ${e.steps} step${e.steps===1?"":"s"})
87
87
  [${e.hash}] ${e.subject}
88
- `}async function Qc(e,t){let n=await j(e,t),r=le(n.message),s=new Date(n.author.timestamp*1e3).toUTCString().replace("GMT","+0000"),i=`${t} is the first bad commit
88
+ `}async function rf(e,t){let n=await j(e,t),r=ue(n.message),s=new Date(n.author.timestamp*1e3).toUTCString().replace("GMT","+0000"),i=`${t} is the first bad commit
89
89
  `;return i+=`commit ${t}
90
90
  `,i+=`Author: ${n.author.name} <${n.author.email}>
91
91
  `,i+=`Date: ${s}
92
92
  `,i+=`
93
93
  `,i+=` ${r}
94
94
  `,i+=`
95
- `,i}oe();ir();Be();Ce();ie();ue();We();he();oe();ir();Be();Ce();ie();ue();ie();hn();ue();function $r(e){return S(e.gitDir,"rebase-merge")}async function Nt(e){return e.fs.exists($r(e))}async function bt(e){let t=$r(e);if(!await e.fs.exists(t))return null;let n=await e.fs.readFile(S(t,"head-name")),r=await e.fs.readFile(S(t,"orig-head")),o=await e.fs.readFile(S(t,"onto")),s=Number.parseInt(await e.fs.readFile(S(t,"msgnum")),10),i=Number.parseInt(await e.fs.readFile(S(t,"end")),10),a=await e.fs.exists(S(t,"git-rebase-todo"))?S(t,"git-rebase-todo"):S(t,"todo"),c=ef(await e.fs.readFile(a)),f=await e.fs.exists(S(t,"done"))?await e.fs.readFile(S(t,"done")):"",l=ef(f);return{headName:n.trim(),origHead:r.trim(),onto:o.trim(),todo:c,done:l,msgnum:s,end:i}}async function Hi(e,t){let n=$r(e);await e.fs.mkdir(n,{recursive:!0}),await e.fs.writeFile(S(n,"head-name"),`${t.headName}
95
+ `,i}ie();fr();qe();Ce();ce();me();ze();ge();ie();fr();qe();Ce();ce();me();ce();gn();me();function Sr(e){return S(e.gitDir,"rebase-merge")}async function Nt(e){return e.fs.exists(Sr(e))}async function Et(e){let t=Sr(e);if(!await e.fs.exists(t))return null;let n=await e.fs.readFile(S(t,"head-name")),r=await e.fs.readFile(S(t,"orig-head")),o=await e.fs.readFile(S(t,"onto")),s=Number.parseInt(await e.fs.readFile(S(t,"msgnum")),10),i=Number.parseInt(await e.fs.readFile(S(t,"end")),10),a=await e.fs.exists(S(t,"git-rebase-todo"))?S(t,"git-rebase-todo"):S(t,"todo"),c=sf(await e.fs.readFile(a)),f=await e.fs.exists(S(t,"done"))?await e.fs.readFile(S(t,"done")):"",l=sf(f);return{headName:n.trim(),origHead:r.trim(),onto:o.trim(),todo:c,done:l,msgnum:s,end:i}}async function ji(e,t){let n=Sr(e);await e.fs.mkdir(n,{recursive:!0}),await e.fs.writeFile(S(n,"head-name"),`${t.headName}
96
96
  `),await e.fs.writeFile(S(n,"orig-head"),`${t.origHead}
97
97
  `),await e.fs.writeFile(S(n,"onto"),`${t.onto}
98
98
  `),await e.fs.writeFile(S(n,"msgnum"),`${String(t.msgnum)}
99
99
  `),await e.fs.writeFile(S(n,"end"),`${String(t.end)}
100
- `),await e.fs.writeFile(S(n,"git-rebase-todo"),ao(t.todo)),await e.fs.writeFile(S(n,"done"),ao(t.done)),await e.fs.writeFile(S(n,"interactive"),"")}async function rf(e){let t=$r(e),n=await bt(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(S(t,"msgnum"),`${String(n.msgnum)}
101
- `),await e.fs.writeFile(S(t,"git-rebase-todo"),ao(n.todo)),await e.fs.writeFile(S(t,"done"),ao(n.done))}async function Ai(e){let t=$r(e);await e.fs.exists(t)&&await e.fs.rm(t,{recursive:!0})}async function co(e,t,n){let r=$r(e),o=`@${n.timestamp} ${n.timezone}`;await e.fs.writeFile(S(r,"author-script"),`GIT_AUTHOR_NAME='${n.name}'
100
+ `),await e.fs.writeFile(S(n,"git-rebase-todo"),co(t.todo)),await e.fs.writeFile(S(n,"done"),co(t.done)),await e.fs.writeFile(S(n,"interactive"),"")}async function cf(e){let t=Sr(e),n=await Et(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(S(t,"msgnum"),`${String(n.msgnum)}
101
+ `),await e.fs.writeFile(S(t,"git-rebase-todo"),co(n.todo)),await e.fs.writeFile(S(t,"done"),co(n.done))}async function Gi(e){let t=Sr(e);await e.fs.exists(t)&&await e.fs.rm(t,{recursive:!0})}async function fo(e,t,n){let r=Sr(e),o=`@${n.timestamp} ${n.timezone}`;await e.fs.writeFile(S(r,"author-script"),`GIT_AUTHOR_NAME='${n.name}'
102
102
  GIT_AUTHOR_EMAIL='${n.email}'
103
103
  GIT_AUTHOR_DATE='${o}'
104
104
  `),await e.fs.writeFile(S(r,"stopped-sha"),`${t}
105
- `)}function ef(e){let t=[];for(let n of e.split(`
106
- `)){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 ao(e){return e.length===0?"":`${e.map(t=>`pick ${t.hash} # ${t.subject}`).join(`
105
+ `)}function sf(e){let t=[];for(let n of e.split(`
106
+ `)){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 co(e){return e.length===0?"":`${e.map(t=>`pick ${t.hash} # ${t.subject}`).join(`
107
107
  `)}
108
- `}async function sf(e,t,n){let r=new Map,[o,s]=await Promise.all([tf(e,t,r),tf(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 nf(e,r,n,i),left:await nf(e,r,t,a)}}async function tf(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 io(e,i,n);for(let c of a.commit.parents)r.has(c)||o.push(c)}return r}async function nf(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 io(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 io(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 io(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 m=(o.get(d)??0)-1;o.set(d,m),m<=0&&i.push(d)}}return a.reverse(),a}async function io(e,t,n){let r=n.get(t);if(r)return r;let o=await ye(e,t);if(o.type!=="commit")throw new Error(`Expected commit object, got ${o.type}`);let s={hash:t,commit:nn(o.content)};return n.set(t,s),s}he();ie();function Or(e){let t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function sm(e,t){if(e.length===0)return;if(e.length===1)return e.shift();let n=Or(t),r=0;for(let o=0;o<e.length;o++){let s=e[o];if(s&&Or(s.path)===n){r=o;break}}return e.splice(r,1)[0]}var om=50;async function ot(e,t,n=om){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 m=r.get(d);if(m&&m.length>0){let u=sm(m,l.path);u&&a.push({oldPath:u.path,newPath:l.path,oldHash:u.oldHash??d,newHash:d,similarity:100,oldMode:u.oldMode,newMode:l.newMode})}else c.push(l)}let f=[...r.values()].flat();if(f.length>0&&c.length>0){let l=await im(e,f,c,n);if(l.length>0){let d=new Set(l.map(u=>u.oldPath)),m=new Set(l.map(u=>u.newPath));f=f.filter(u=>!d.has(u.path)),c=c.filter(u=>!m.has(u.path)),a.push(...l)}}if(f.length>0&&c.length>0){let l=await fm(e,f,c,n);if(l.length>0){let d=new Set(l.map(u=>u.oldPath)),m=new Set(l.map(u=>u.newPath));f=f.filter(u=>!d.has(u.path)),c=c.filter(u=>!m.has(u.path)),a.push(...l)}}return{remaining:[...i,...f,...c],renames:a}}async function im(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=Or(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=Or(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 m=await Ct(e,l.oldHash),u=await Ct(e,d.newHash),h=cm(m,u);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 of=107927;function fo(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))%of;t.set(f,(t.get(f)??0)+n),n=0,r=0,o=0}if(n>0){let i=(r+Math.imul(o,97))%of;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 am(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 cm(e,t){return e.length===0&&t.length===0?100:e.length===0||t.length===0?0:af(e.length,fo(e),t.length,fo(t))}function af(e,t,n,r){let o=Math.max(e,n),s=Math.min(e,n);if(s<o-s)return 0;let{srcCopied:i}=am(t,r);return Math.floor(i*100/o)}async function fm(e,t,n,r){let o=[];for(let l of t)if(l.oldHash){let d=await Ct(e,l.oldHash);o.push({size:d.length,chunks:fo(d)})}else o.push(null);let s=[];for(let l of n)if(l.newHash){let d=await Ct(e,l.newHash);s.push({size:d.length,chunks:fo(d)})}else s.push(null);let i=[];for(let l=0;l<t.length;l++){let d=t[l],m=o[l];if(!(!d||!m))for(let u=0;u<n.length;u++){let h=n[u],p=s[u];if(!h||!p)continue;let g=af(m.size,m.chunks,p.size,p.chunks);if(g>=r){let w=Or(d.path)===Or(h.path)?1:0;i.push({similarity:g,nameScore:w,delIdx:l,addIdx:u})}}}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:m}of i){if(a.has(d)||c.has(m))continue;a.add(d),c.add(m);let u=t[d],h=n[m];!u||!h||f.push({oldPath:u.path,newPath:h.path,oldHash:u.oldHash??"",newHash:h.newHash??"",similarity:l,oldMode:u.oldMode,newMode:h.newMode})}return f}function fn(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),m=e.slice(0,o),u=e.slice(n-a),h=e.slice(o,o+l),p=t.slice(o,o+d);return o+a>0?`${m}{${h} => ${p}}${u}`:`${e} => ${t}`}ve();st();async function it(e,t){let n=await Q(e),r=await J(e),o,s=!1;n&&n.type==="symbolic"?o=xe(n.target):(s=!0,o="HEAD detached");let i=t?.index??await V(e),a=Mi(i),c=t?.compareHash!==void 0?t.compareHash:r,f=t?.compareHash!==void 0?!t.compareHash:!r,l=await Di(e,c,i,a),d=await At(e,i),m=[],u=[];for(let g of d)g.status==="untracked"?u.push(g.path):m.push({path:g.path,status:g.status});m.sort((g,w)=>Oe(g.path,w.path));let h=new Set(i.entries.map(g=>g.path)),p=ji(u,h);return lm(e,r,s,o,i,l,m,a,p,{fromCommit:t?.fromCommit,noWarn:t?.noWarn,isInitial:f})}function cf(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 lm(e,t,n,r,o,s,i,a,c,f){let l=[],d=!1,m=await U(e,"CHERRY_PICK_HEAD"),u=await U(e,"REVERT_HEAD"),h=await U(e,"MERGE_HEAD"),p=!m&&!h,w=await Nt(e)?await bt(e):null;if(n&&w){let P=Y(w.onto);l.push(`interactive rebase in progress; onto ${P}`)}else if(n){let P=await fs(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 pe(e),C=await kn(e,P,r);if(C){let H=cr(C,{abbreviated:f?.fromCommit});for(let D of H.trimEnd().split(`
109
- `))l.push(D);d=!0}}if(d&&(w||m||u||h)&&l.push(""),w&&h)cf(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=Ht(o),C=await e.fs.exists(S(e.gitDir,"MERGE_MSG"));cf(l,w);let D=w.headName==="detached HEAD"?null:xe(w.headName),O=Y(w.onto),A=D?` branch '${D}' on '${O}'`:"";if(P)l.push(`You are currently rebasing${A}.`),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${A}.`),l.push(' (all conflicts fixed: run "git rebase --continue")');else{let G=A?`You are currently editing a commit while rebasing${A}.`:"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 m?(l.push(`You are currently cherry-picking commit ${Y(m)}.`),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):u?(l.push(`You are currently reverting commit ${Y(u)}.`),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 Pt(e)){let C=(await Pe(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 E=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)',k=!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(` ${ff(P.status,P.path,P.displayPath)}`);l.push(""),k=!0}if(a.length>0){!k&&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(` ${dm(C.status,C.path)}`);l.push(""),k=!0}if(i.length>0){!k&&d&&l.push(""),l.push("Changes not staged for commit:"),l.push(E),l.push(' (use "git restore <file>..." to discard changes in working directory)');for(let P of i)l.push(` ${ff(P.status,P.path)}`);l.push(""),k=!0}if(c.length>0){!k&&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(""),k=!0}let R=s.length>0||!!h&&a.length===0;return!k&&d&&(f?.noWarn||R)&&l.push(""),!R&&!f?.noWarn&&(!k&&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(`
108
+ `}async function ff(e,t,n){let r=new Map,[o,s]=await Promise.all([of(e,t,r),of(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 af(e,r,n,i),left:await af(e,r,t,a)}}async function of(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 ao(e,i,n);for(let c of a.commit.parents)r.has(c)||o.push(c)}return r}async function af(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 ao(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 ao(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 ao(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 m=(o.get(d)??0)-1;o.set(d,m),m<=0&&i.push(d)}}return a.reverse(),a}async function ao(e,t,n){let r=n.get(t);if(r)return r;let o=await be(e,t);if(o.type!=="commit")throw new Error(`Expected commit object, got ${o.type}`);let s={hash:t,commit:nn(o.content)};return n.set(t,s),s}ge();ce();function vr(e){let t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function wm(e,t){if(e.length===0)return;if(e.length===1)return e.shift();let n=vr(t),r=0;for(let o=0;o<e.length;o++){let s=e[o];if(s&&vr(s.path)===n){r=o;break}}return e.splice(r,1)[0]}var bm=50;async function it(e,t,n=bm){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 m=r.get(d);if(m&&m.length>0){let u=wm(m,l.path);u&&a.push({oldPath:u.path,newPath:l.path,oldHash:u.oldHash??d,newHash:d,similarity:100,oldMode:u.oldMode,newMode:l.newMode})}else c.push(l)}let f=[...r.values()].flat();if(f.length>0&&c.length>0){let l=await ym(e,f,c,n);if(l.length>0){let d=new Set(l.map(u=>u.oldPath)),m=new Set(l.map(u=>u.newPath));f=f.filter(u=>!d.has(u.path)),c=c.filter(u=>!m.has(u.path)),a.push(...l)}}if(f.length>0&&c.length>0){let l=await Rm(e,f,c,n);if(l.length>0){let d=new Set(l.map(u=>u.oldPath)),m=new Set(l.map(u=>u.newPath));f=f.filter(u=>!d.has(u.path)),c=c.filter(u=>!m.has(u.path)),a.push(...l)}}return{remaining:[...i,...f,...c],renames:a}}async function ym(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=vr(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=vr(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 m=await Pt(e,l.oldHash),u=await Pt(e,d.newHash),h=km(m,u);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 lf=107927;function lo(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))%lf;t.set(f,(t.get(f)??0)+n),n=0,r=0,o=0}if(n>0){let i=(r+Math.imul(o,97))%lf;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 Em(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 km(e,t){return e.length===0&&t.length===0?100:e.length===0||t.length===0?0:df(e.length,lo(e),t.length,lo(t))}function df(e,t,n,r){let o=Math.max(e,n),s=Math.min(e,n);if(s<o-s)return 0;let{srcCopied:i}=Em(t,r);return Math.floor(i*100/o)}async function Rm(e,t,n,r){let o=[];for(let l of t)if(l.oldHash){let d=await Pt(e,l.oldHash);o.push({size:d.length,chunks:lo(d)})}else o.push(null);let s=[];for(let l of n)if(l.newHash){let d=await Pt(e,l.newHash);s.push({size:d.length,chunks:lo(d)})}else s.push(null);let i=[];for(let l=0;l<t.length;l++){let d=t[l],m=o[l];if(!(!d||!m))for(let u=0;u<n.length;u++){let h=n[u],p=s[u];if(!h||!p)continue;let g=df(m.size,m.chunks,p.size,p.chunks);if(g>=r){let w=vr(d.path)===vr(h.path)?1:0;i.push({similarity:g,nameScore:w,delIdx:l,addIdx:u})}}}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:m}of i){if(a.has(d)||c.has(m))continue;a.add(d),c.add(m);let u=t[d],h=n[m];!u||!h||f.push({oldPath:u.path,newPath:h.path,oldHash:u.oldHash??"",newHash:h.newHash??"",similarity:l,oldMode:u.oldMode,newMode:h.newMode})}return f}function dn(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),m=e.slice(0,o),u=e.slice(n-a),h=e.slice(o,o+l),p=t.slice(o,o+d);return o+a>0?`${m}{${h} => ${p}}${u}`:`${e} => ${t}`}He();tt();async function at(e,t){let n=await Q(e),r=await Z(e),o,s=!1;n&&n.type==="symbolic"?o=Pe(n.target):(s=!0,o="HEAD detached");let i=t?.index??await z(e),a=Ni(i),c=t?.compareHash!==void 0?t.compareHash:r,f=t?.compareHash!==void 0?!t.compareHash:!r,l=await Li(e,c,i,a),d=await gt(e,i),m=[],u=[];for(let g of d)g.status==="untracked"?u.push(g.path):m.push({path:g.path,status:g.status});m.sort((g,w)=>Ie(g.path,w.path));let h=new Set(i.entries.map(g=>g.path)),p=_i(u,h);return xm(e,r,s,o,i,l,m,a,p,{fromCommit:t?.fromCommit,noWarn:t?.noWarn,isInitial:f})}function uf(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 xm(e,t,n,r,o,s,i,a,c,f){let l=[],d=!1,m=await B(e,"CHERRY_PICK_HEAD"),u=await B(e,"REVERT_HEAD"),h=await B(e,"MERGE_HEAD"),p=!m&&!h,w=await Nt(e)?await Et(e):null;if(n&&w){let C=Y(w.onto);l.push(`interactive rebase in progress; onto ${C}`)}else if(n){let C=await ls(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 we(e),P=await Rn(e,C,r);if(P){let H=dr(P,{abbreviated:f?.fromCommit});for(let D of H.trimEnd().split(`
109
+ `))l.push(D);d=!0}}if(d&&(w||m||u||h)&&l.push(""),w&&h)uf(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=At(o),P=await e.fs.exists(S(e.gitDir,"MERGE_MSG"));uf(l,w);let D=w.headName==="detached HEAD"?null:Pe(w.headName),O=Y(w.onto),A=D?` branch '${D}' on '${O}'`:"";if(C)l.push(`You are currently rebasing${A}.`),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${A}.`),l.push(' (all conflicts fixed: run "git rebase --continue")');else{let G=A?`You are currently editing a commit while rebasing${A}.`:"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 m?(l.push(`You are currently cherry-picking commit ${Y(m)}.`),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):u?(l.push(`You are currently reverting commit ${Y(u)}.`),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 $t(e)){let P=(await Oe(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 b=f?.isInitial??!t;b&&(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(` ${mf(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(` ${Cm(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(` ${mf(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)'):b?l.push('nothing to commit (create/copy files and use "git add" to track)'):l.push("nothing to commit, working tree clean")),`${l.join(`
110
110
  `)}
111
- `}async function Di(e,t,n,r){let o=new Set(r?.map(u=>u.path)),s=null;t&&(s=(await j(e,t)).tree);let i=await fe(e,s),a=new Map(Me(n).map(u=>[u.path,u])),c=[];for(let[u,h]of a){if(o.has(u))continue;let p=i.get(u);p?p.hash!==h.hash&&c.push({path:u,status:"modified",oldHash:p.hash,newHash:h.hash,oldMode:p.mode,newMode:h.mode.toString(8).padStart(6,"0")}):c.push({path:u,status:"added",newHash:h.hash,newMode:h.mode.toString(8).padStart(6,"0")})}for(let[u,h]of i)o.has(u)||a.has(u)||c.push({path:u,status:"deleted",oldHash:h.hash,oldMode:h.mode});let{remaining:f,renames:l}=await ot(e,c),d={added:"new file",deleted:"deleted",modified:"modified"},m=[];for(let u of f){let h=d[u.status];h&&m.push({path:u.path,status:h})}for(let u of l)m.push({path:u.newPath,status:"renamed",displayPath:`${u.oldPath} -> ${u.newPath}`});return m.sort((u,h)=>Oe(u.path,h.path))}function Mi(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 ji(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 ff(e,t,n){return`${e}:`.padEnd(12)+(n??t)}function dm(e,t){return`${e}:`.padEnd(17)+t}async function kn(e,t,n){let r=t[`branch "${n}"`];if(!r?.remote||!r?.merge)return null;let o=r.remote,s=r.merge,i=s.replace(/^refs\/heads\//,`refs/remotes/${o}/`),a=`${o}/${s.replace(/^refs\/heads\//,"")}`,c=await U(e,i);if(!c)return{upstream:a,ahead:0,behind:0,gone:!0};let f=await U(e,`refs/heads/${n}`);if(!f)return null;if(f===c)return{upstream:a,ahead:0,behind:0,gone:!1};let{ahead:l,behind:d}=await Si(e,f,c);return{upstream:a,ahead:l,behind:d,gone:!1}}function lf(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 cr(e,t){if(e.gone)return`Your branch is based on '${e.upstream}', but the upstream is gone.
111
+ `}async function Li(e,t,n,r){let o=new Set(r?.map(u=>u.path)),s=null;t&&(s=(await j(e,t)).tree);let i=await le(e,s),a=new Map(Le(n).map(u=>[u.path,u])),c=[];for(let[u,h]of a){if(o.has(u))continue;let p=i.get(u);p?p.hash!==h.hash&&c.push({path:u,status:"modified",oldHash:p.hash,newHash:h.hash,oldMode:p.mode,newMode:h.mode.toString(8).padStart(6,"0")}):c.push({path:u,status:"added",newHash:h.hash,newMode:h.mode.toString(8).padStart(6,"0")})}for(let[u,h]of i)o.has(u)||a.has(u)||c.push({path:u,status:"deleted",oldHash:h.hash,oldMode:h.mode});let{remaining:f,renames:l}=await it(e,c),d={added:"new file",deleted:"deleted",modified:"modified"},m=[];for(let u of f){let h=d[u.status];h&&m.push({path:u.path,status:h})}for(let u of l)m.push({path:u.newPath,status:"renamed",displayPath:`${u.oldPath} -> ${u.newPath}`});return m.sort((u,h)=>Ie(u.path,h.path))}function Ni(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)=>Ie(r.path,o.path))}function _i(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 mf(e,t,n){return`${e}:`.padEnd(12)+(n??t)}function Cm(e,t){return`${e}:`.padEnd(17)+t}async function Rn(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 B(e,i);if(!c)return{upstream:a,ahead:0,behind:0,gone:!0};let f=await B(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 Ai(e,f,c);return{upstream:a,ahead:l,behind:d,gone:!1}}function hf(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 dr(e,t){if(e.gone)return`Your branch is based on '${e.upstream}', but the upstream is gone.
112
112
  (use "git branch --unset-upstream" to fixup)
113
113
  `;if(e.ahead===0&&e.behind===0)return`Your branch is up to date with '${e.upstream}'.
114
114
  `;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}.
@@ -118,19 +118,19 @@ GIT_AUTHOR_DATE='${o}'
118
118
  `}let n=`Your branch and '${e.upstream}' have diverged,
119
119
  and have ${e.ahead} and ${e.behind} different commits each, respectively.
120
120
  `;return t?.abbreviated?n:n+` (use "git pull" if you want to integrate the remote branch with yours)
121
- `}ve();an();st();async function lo(e){let t=await et(e,"HEAD");for(let n=t.length-1;n>=0;n--){let r=t[n];if(!r)continue;let o=r.message.match(/^checkout: moving from (.+) to (.+)$/);if(o?.[1]){let s=o[1],i=`refs/heads/${s}`,a=await U(e,i);if(a)return{name:s,refName:i,hash:a}}}return null}async function Rn(e){let t="";return await U(e,"CHERRY_PICK_HEAD")&&(t=`warning: cancelling a cherry picking in progress
122
- `),await U(e,"REVERT_HEAD")&&(t+=`warning: cancelling a revert in progress
123
- `),await ar(e),t}function um(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
+ `}He();fn();tt();async function uo(e){let t=await et(e,"HEAD");for(let n=t.length-1;n>=0;n--){let r=t[n];if(!r)continue;let o=r.message.match(/^checkout: moving from (.+) to (.+)$/);if(o?.[1]){let s=o[1],i=`refs/heads/${s}`,a=await B(e,i);if(a)return{name:s,refName:i,hash:a}}}return null}async function xn(e){let t="";return await B(e,"CHERRY_PICK_HEAD")&&(t=`warning: cancelling a cherry picking in progress
122
+ `),await B(e,"REVERT_HEAD")&&(t+=`warning: cancelling a revert in progress
123
+ `),await lr(e),t}function Pm(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(`
124
124
  `)}
125
- `:""}function Fn(e){return e.entries.some(t=>t.stage>0)?{stdout:um(e),stderr:`error: you need to resolve your current index first
126
- `,exitCode:1}:null}async function uo(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");if(r)return mm(e,t,n,r);let o=await V(e),s=t.map(a=>_e(a,n)),i=o.entries.filter(a=>a.stage===0&&be(s,a.path));if(i.length===0)return o.entries.some(c=>c.stage>0&&be(s,c.path))?L(`error: path '${t[0]}' is unmerged
125
+ `:""}function qn(e){return e.entries.some(t=>t.stage>0)?{stdout:Pm(e),stderr:`error: you need to resolve your current index first
126
+ `,exitCode:1}:null}async function mo(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");if(r)return $m(e,t,n,r);let o=await z(e),s=t.map(a=>Ue(a,n)),i=o.entries.filter(a=>a.stage===0&&Ee(s,a.path));if(i.length===0)return o.entries.some(c=>c.stage>0&&Ee(s,c.path))?L(`error: path '${t[0]}' is unmerged
127
127
  `):L(`error: pathspec '${t[0]}' did not match any file(s) known to git
128
- `);for(let a of i)await lt(e,{path:a.path,hash:a.hash,mode:a.mode});return{stdout:"",stderr:"",exitCode:0}}async function mm(e,t,n,r){let o=await fe(e,r),s=await V(e),i=t.map(c=>_e(c,n)),a=[];for(let[c]of o)be(i,c)&&a.push(c);if(a.length===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
129
- `);for(let c of a){let f=o.get(c);f&&(await lt(e,{path:f.path,hash:f.hash,mode:f.mode}),s=xt(s,{path:f.path,hash:f.hash,mode:parseInt(f.mode,8),stage:0,stat:Ie()}))}return await ce(e,s),{stdout:"",stderr:"",exitCode:0}}async function mo(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 V(e),a=t.map(f=>_e(f,n)),c=new Set;for(let f of i.entries)be(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
130
- `);for(let f of c){let l=i.entries.find(u=>u.path===f&&u.stage===r),d=!l&&i.entries.find(u=>u.path===f&&u.stage===0),m=l||d;if(m)await lt(e,{path:m.path,hash:m.hash,mode:m.mode});else if(s){let u=S(e.workTree,f);await e.fs.exists(u)&&await e.fs.rm(u)}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
131
- `)}return{stdout:"",stderr:"",exitCode:0}}async function fr(e,t,n){if(!e.workTree)return"";let r=await qe(e,t),o=new Map;for(let c of r)o.set(c.path,c.hash);let s=new Map;for(let c of n.entries)c.stage===0&&s.set(c.path,c.hash);let i=new Map;for(let[c]of s){let f=S(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 ht("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
+ `);for(let a of i)await dt(e,{path:a.path,hash:a.hash,mode:a.mode});return{stdout:"",stderr:"",exitCode:0}}async function $m(e,t,n,r){let o=await le(e,r),s=await z(e),i=t.map(c=>Ue(c,n)),a=[];for(let[c]of o)Ee(i,c)&&a.push(c);if(a.length===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
129
+ `);for(let c of a){let f=o.get(c);f&&(await dt(e,{path:f.path,hash:f.hash,mode:f.mode}),s=Ct(s,{path:f.path,hash:f.hash,mode:parseInt(f.mode,8),stage:0,stat:Se()}))}return await de(e,s),{stdout:"",stderr:"",exitCode:0}}async function ho(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 z(e),a=t.map(f=>Ue(f,n)),c=new Set;for(let f of i.entries)Ee(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
130
+ `);for(let f of c){let l=i.entries.find(u=>u.path===f&&u.stage===r),d=!l&&i.entries.find(u=>u.path===f&&u.stage===0),m=l||d;if(m)await dt(e,{path:m.path,hash:m.hash,mode:m.mode});else if(s){let u=S(e.workTree,f);await e.fs.exists(u)&&await e.fs.rm(u)}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
131
+ `)}return{stdout:"",stderr:"",exitCode:0}}async function ur(e,t,n){if(!e.workTree)return"";let r=await Ke(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=S(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 pt("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(`
132
132
  `)}
133
- `)}var df=5;function hm(e){let t=e.length,n=t===1?"commit":"commits",r=t===1?"it":"them",o=t>df?df-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
133
+ `)}var pf=5;function Om(e){let t=e.length,n=t===1?"commit":"commits",r=t===1?"it":"them",o=t>pf?pf-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
134
134
  any of your branches:
135
135
 
136
136
  ${i.join(`
@@ -141,10 +141,10 @@ to do so with:
141
141
 
142
142
  git branch <new-branch-name> ${Y(e[0].hash)}
143
143
 
144
- `}async function Gi(e,t){let n=await j(e,t);return`Previous HEAD position was ${Y(t)} ${le(n.message)}
145
- `}async function ho(e,t,n){let r=await vi(e,t,{targetHash:n});return r.length>0?hm(r):t!==n?Gi(e,t):""}async function lr(e,t,n,r,o,s){let i=await Q(e);if(i?.type==="symbolic"&&i.target===n)return{stdout:"",stderr:`Already on '${t}'
146
- `,exitCode:0};let a=await V(e),c=Fn(a);if(c)return c;let f=await J(e),d=(await j(e,r)).tree,m=null;if(f&&(m=(await j(e,f)).tree),m!==d){let x=await Ln(e,m,d,a);if(!x.success)return x.errorOutput??L("error: checkout would overwrite local changes");a={version:2,entries:x.newEntries},await ce(e,a),await Ge(e,x.worktreeOps)}let u="";i?.type==="direct"&&f&&(u=await ho(e,f,r));let h=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):f??te;await Ve(e,"HEAD",n),await wt(e);let p=await Rn(e);await se(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 fr(e,d,a),w=await pe(e),y=await kn(e,w,t);return y&&(g+=cr(y)),{stdout:g,stderr:`${u}Switched to branch '${t}'
147
- ${p}`,exitCode:0}}async function Un(e,t,n,r,o){let s=await V(e),i=Fn(s);if(i)return i;let a=await J(e),c=await j(e,t),f=c.tree,l=null;if(a&&(l=(await j(e,a)).tree),l!==f){let x=await Ln(e,l,f,s);if(!x.success)return x.errorOutput??L("error: checkout would overwrite local changes");s={version:2,entries:x.newEntries},await ce(e,s),await Ge(e,x.worktreeOps)}let d=await Q(e),m=d?.type==="direct"&&a===t;if(await X(e,"HEAD",t),!m){await Yc(e,t);let x=d?.type==="symbolic"?d.target.replace(/^refs\/heads\//,""):a??te;await se(e,n,"HEAD",a,t,`checkout: moving from ${x} to ${t}`)}let u=await Rn(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:a,newHead:t,isBranchCheckout:!1});let h=Y(t),p=le(c.message),g=d?.type==="direct",w="";return g&&a&&a!==t&&(w+=await ho(e,a,t)),g||!o?.detachAdviceTarget?w+=`HEAD is now at ${h} ${p}
144
+ `}async function Fi(e,t){let n=await j(e,t);return`Previous HEAD position was ${Y(t)} ${ue(n.message)}
145
+ `}async function po(e,t,n){let r=await Di(e,t,{targetHash:n});return r.length>0?Om(r):t!==n?Fi(e,t):""}async function mr(e,t,n,r,o,s){let i=await Q(e);if(i?.type==="symbolic"&&i.target===n)return{stdout:"",stderr:`Already on '${t}'
146
+ `,exitCode:0};let a=await z(e),c=qn(a);if(c)return c;let f=await Z(e),d=(await j(e,r)).tree,m=null;if(f&&(m=(await j(e,f)).tree),m!==d){let x=await Fn(e,m,d,a);if(!x.success)return x.errorOutput??L("error: checkout would overwrite local changes");a={version:2,entries:x.newEntries},await de(e,a),await Ne(e,x.worktreeOps)}let u="";i?.type==="direct"&&f&&(u=await po(e,f,r));let h=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):f??te;await Xe(e,"HEAD",n),await yt(e);let p=await xn(e);await fe(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 ur(e,d,a),w=await we(e),b=await Rn(e,w,t);return b&&(g+=dr(b)),{stdout:g,stderr:`${u}Switched to branch '${t}'
147
+ ${p}`,exitCode:0}}async function zn(e,t,n,r,o){let s=await z(e),i=qn(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 Fn(e,l,f,s);if(!x.success)return x.errorOutput??L("error: checkout would overwrite local changes");s={version:2,entries:x.newEntries},await de(e,s),await Ne(e,x.worktreeOps)}let d=await Q(e),m=d?.type==="direct"&&a===t;if(await X(e,"HEAD",t),!m){await Qc(e,t);let x=d?.type==="symbolic"?d.target.replace(/^refs\/heads\//,""):a??te;await fe(e,n,"HEAD",a,t,`checkout: moving from ${x} to ${t}`)}let u=await xn(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:a,newHead:t,isBranchCheckout:!1});let h=Y(t),p=ue(c.message),g=d?.type==="direct",w="";return g&&a&&a!==t&&(w+=await po(e,a,t)),g||!o?.detachAdviceTarget?w+=`HEAD is now at ${h} ${p}
148
148
  `:w=`Note: switching to '${o.detachAdviceTarget}'.
149
149
 
150
150
  You are in 'detached HEAD' state. You can look around, make experimental
@@ -163,93 +163,93 @@ Or undo this operation with:
163
163
  Turn off this advice by setting config variable advice.detachedHead to false
164
164
 
165
165
  HEAD is now at ${h} ${p}
166
- `,w+=u,{stdout:await fr(e,f,s),stderr:w,exitCode:0}}async function pm(e,t){if(t.startsWith("refs/remotes/")){if(!await U(e,t))return null;let s=t.slice(13).split("/");if(s.length<2)return null;let i=s[0],a=s.slice(1).join("/");return{remote:i,branch:a,ref:t}}let n=`refs/remotes/${t}`;if(await U(e,n)){let o=t.split("/");if(o.length<2)return null;let s=o[0],i=o.slice(1).join("/");return{remote:s,branch:i,ref:n}}return null}async function po(e,t,n){let r=await pm(e,n);if(!r||await Re(e,"branch.autoSetupMerge")==="false")return"";let s=await pe(e),i=`branch "${t}"`;return s[i]||(s[i]={}),s[i].remote=r.remote,s[i].merge=`refs/heads/${r.branch}`,await Ze(e,s),`branch '${t}' set up to track '${r.remote}/${r.branch}'.
167
- `}async function go(e,t){let n=await we(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 Re(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();ue();he();wn();var uf=new Set(["help","start","skip","next","reset","visualize","view","replay","log","run","terms"]),us={stdout:`You need to start by "git bisect start"
168
- `,stderr:"",exitCode:1};async function Li(e){let t=await Pe(e,"BISECT_HEAD");if(t?.trim())return t.trim();let n=await J(e);return n||I("no current commit")}function mf(e,t){let n=e.command("bisect",{description:"Use binary search to find the commit that introduced a bug",args:[z.string().name("subcommand").describe("Subcommand or custom term").optional(),z.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]
169
- `,exitCode:1};let i=r.rest??[],a=await q(o.fs,o.cwd,t);return M(a)?a:ym(a,o.env,t,s,i)}});gm(n,t),wm(n,t),Em(n,t),km(n,t),xm(n,t),Cm(n,t),$m(n,t),Im(n,t),Sm(n,t)}function gm(e,t){e.command("start",{description:"Start bisecting",args:[z.string().name("revs").describe("Bad and good revisions").optional().variadic()],options:{"term-new":Z.string().describe("Alternate term for new/bad"),"term-bad":Z.string().describe("Alternate term for new/bad"),"term-old":Z.string().describe("Alternate term for old/good"),"term-good":Z.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 q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Je(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 uf.has(a)?I(`'${a}' is not a valid term`):uf.has(c)?I(`'${c}' is not a valid term`):a===c?I("'bad' and 'good' terms must be different"):hf(s,r.env,t,n.revs??[],a,c,n["no-checkout"]??!1,n["first-parent"]??!1)}})}async function hf(e,t,n,r,o,s,i,a){await Pt(e)&&await oo(e);let c=await Q(e),f;if(c?.type==="symbolic"?f=c.target.replace(/^refs\/heads\//,""):f=await J(e)??"HEAD",await Te(e,"BISECT_START",f+`
170
- `),await Te(e,"BISECT_TERMS",`${o}
166
+ `,w+=u,{stdout:await ur(e,f,s),stderr:w,exitCode:0}}async function Im(e,t){if(t.startsWith("refs/remotes/")){if(!await B(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 B(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 go(e,t,n){let r=await Im(e,n);if(!r||await xe(e,"branch.autoSetupMerge")==="false")return"";let s=await we(e),i=`branch "${t}"`;return s[i]||(s[i]={}),s[i].remote=r.remote,s[i].merge=`refs/heads/${r.branch}`,await Je(e,s),`branch '${t}' set up to track '${r.remote}/${r.branch}'.
167
+ `}async function wo(e,t){let n=await pe(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 xe(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}ce();me();ge();sn();var gf=new Set(["help","start","skip","next","reset","visualize","view","replay","log","run","terms"]),ms={stdout:`You need to start by "git bisect start"
168
+ `,stderr:"",exitCode:1};async function Ui(e){let t=await Oe(e,"BISECT_HEAD");if(t?.trim())return t.trim();let n=await Z(e);return n||I("no current commit")}function wf(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]
169
+ `,exitCode:1};let i=r.rest??[],a=await W(o.fs,o.cwd,t);return M(a)?a:Hm(a,o.env,t,s,i)}});Sm(n,t),vm(n,t),Am(n,t),Dm(n,t),jm(n,t),Gm(n,t),Nm(n,t),Fm(n,t),Um(n,t)}function Sm(e,t){e.command("start",{description:"Start bisecting",args:[q.string().name("revs").describe("Bad and good revisions").optional().variadic()],options:{"term-new":V.string().describe("Alternate term for new/bad"),"term-bad":V.string().describe("Alternate term for new/bad"),"term-old":V.string().describe("Alternate term for old/good"),"term-good":V.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=Ye(s);if(i&&!n["no-checkout"])return i;let a=n["term-new"]??n["term-bad"]??"bad",c=n["term-old"]??n["term-good"]??"good";return gf.has(a)?I(`'${a}' is not a valid term`):gf.has(c)?I(`'${c}' is not a valid term`):a===c?I("'bad' and 'good' terms must be different"):bf(s,r.env,t,n.revs??[],a,c,n["no-checkout"]??!1,n["first-parent"]??!1)}})}async function bf(e,t,n,r,o,s,i,a){await $t(e)&&await io(e);let c=await Q(e),f;if(c?.type==="symbolic"?f=c.target.replace(/^refs\/heads\//,""):f=await Z(e)??"HEAD",await De(e,"BISECT_START",f+`
170
+ `),await De(e,"BISECT_TERMS",`${o}
171
171
  ${s}
172
- `),await Te(e,"BISECT_NAMES",`
173
- `),a&&await Te(e,"BISECT_FIRST_PARENT",""),i){let m=await J(e);m&&await Te(e,"BISECT_HEAD",m)}if(r.length>0){let m=r[0],u=await pt(e,m);if(M(u))return u;await X(e,`refs/bisect/${o}`,u);let h=await j(e,u);await $t(e,`# ${o}: [${u}] ${le(h.message)}`);for(let p=1;p<r.length;p++){let g=r[p],w=await pt(e,g);if(M(w))return w;await X(e,`refs/bisect/${s}-${w}`,w);let y=await j(e,w);await $t(e,`# ${s}: [${w}] ${le(y.message)}`)}}let l=r.map(m=>`'${m}'`),d=l.length>0?` ${l.join(" ")}`:"";return await $t(e,`git bisect start${d}`),ms(e,t,n)}function wm(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:[z.string().name("rev").describe("Revision to mark").optional()],handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);return M(s)?s:bm(s,o.env,t,n,r.rev)}})}async function bm(e,t,n,r,o){if(!await Pt(e))return us;let s=await ls(e),i=r==="bad"||r==="new"?s.termBad:s.termGood;return ds(e,t,n,i,s,o)}async function ym(e,t,n,r,o){if(!await Pt(e))return us;let s=await ls(e);return r!==s.termBad&&r!==s.termGood?{stdout:"",stderr:`error: unknown command: 'git bisect ${r}'
174
- `,exitCode:1}:ds(e,t,n,r,s,o[0])}async function ds(e,t,n,r,o,s){let i;if(s){let f=await pt(e,s);if(M(f))return f;i=f}else{let f=await Li(e);if(M(f))return f;i=f}let a=await j(e,i),c=le(a.message);return r===o.termBad?await X(e,`refs/bisect/${o.termBad}`,i):await X(e,`refs/bisect/${o.termGood}-${i}`,i),await $t(e,`# ${r}: [${i}] ${c}`),await $t(e,`git bisect ${r} ${i}`),ms(e,t,n)}function Em(e,t){e.command("skip",{description:"Mark a commit as untestable",args:[z.string().name("revs").describe("Revisions to skip").optional().variadic()],handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Pt(s))return us;let i=n.revs??[];if(i.length===0){let a=await Li(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 pt(s,a);if(M(l))return l;c=l}await X(s,`refs/bisect/skip-${c}`,c);let f=await j(s,c);await $t(s,`# skip: [${c}] ${le(f.message)}`),await $t(s,`git bisect skip ${c}`)}return ms(s,r.env,t)}})}function km(e,t){e.command("reset",{description:"Finish bisecting and return to original branch",args:[z.string().name("commit").describe("Branch or commit to checkout").optional()],handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;return await Pt(s)?Rm(s,r.env,t,n.commit):{stdout:`We are not bisecting.
175
- `,stderr:"",exitCode:0}}})}async function Rm(e,t,n,r){let o=(await Pe(e,"BISECT_START"))?.trim()??"";if(await oo(e),r){let s=await pt(e,r);return M(s)?s:Un(e,s,t,n)}if(o){let s=`refs/heads/${o}`,i=await U(e,s);if(i)return lr(e,o,s,i,t,n);let a=await ze(e,o);if(a)return Un(e,a,t,n)}return{stdout:"",stderr:"",exitCode:0}}function xm(e,t){e.command("log",{description:"Show the bisect log",handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;return await Pt(s)?{stdout:await Pe(s,"BISECT_LOG")??"",stderr:"",exitCode:0}:{stdout:"",stderr:`error: We are not bisecting.
176
- `,exitCode:1}}})}function Cm(e,t){e.command("replay",{description:"Replay a bisect log",args:[z.string().name("logfile").describe("Path to bisect log file")],handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.logfile.startsWith("/")?n.logfile:S(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 Pm(s,r.env,t,a)}})}async function Pm(e,t,n,r){await Pt(e)&&await oo(e);let o={termBad:"bad",termGood:"good"},s="";for(let i of r.split(`
177
- `)){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 m=l?l.split(/\s+/).map(u=>u.replace(/^'|'$/g,"")):[];d=await hf(e,t,n,m,"bad","good",!1,!1)}else if(f==="bad"||f==="new")d=await ds(e,t,n,"bad",o,l||void 0);else if(f==="good"||f==="old")d=await ds(e,t,n,"good",o,l||void 0);else if(f==="skip"){for(let m of l?l.split(/\s+/):[]){await X(e,`refs/bisect/skip-${m}`,m);let u=await j(e,m);await $t(e,`# skip: [${m}] ${le(u.message)}`),await $t(e,`git bisect skip ${m}`)}d=await ms(e,t,n)}else continue;if(d.exitCode!==0)return d;s+=d.stdout}return{stdout:s,stderr:"",exitCode:0}}function $m(e,t){e.command("run",{description:"Bisect by running a command",args:[z.string().name("cmd").describe("Command and arguments to run").variadic()],handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Pt(s))return us;if(!r.exec)return I("bisect run requires shell execution support");let i=n.cmd.join(" ");return Om(s,r.env,t,i,r.exec,r.cwd)}})}async function Om(e,t,n,r,o,s){let i="";for(;;){i+=`running '${r}'
178
- `;let c=(await o(r,{cwd:s})).exitCode;if(c===125){let m=await Li(e);if(M(m))return m;await X(e,`refs/bisect/skip-${m}`,m);let u=await j(e,m);await $t(e,`# skip: [${m}] ${le(u.message)}`),await $t(e,`git bisect skip ${m}`);let h=await ms(e,t,n);if(i+=h.stdout,h.stdout.includes("is the first bad commit"))return i+=`bisect found first bad commit
179
- `,{stdout:i,stderr:"",exitCode:0};if(h.exitCode!==0)return{stdout:i,stderr:h.stderr,exitCode:h.exitCode};continue}let f=await so(e),l=c===0?f.termGood:f.termBad,d=await ds(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
180
- `,{stdout:i,stderr:"",exitCode:0};if(d.exitCode!==0)return{stdout:i,stderr:d.stderr,exitCode:d.exitCode}}}function Im(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 q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!await Pt(s))return{stdout:"",stderr:`error: no terms defined
181
- `,exitCode:1};let{termBad:i,termGood:a}=await ls(s);return n["term-good"]?{stdout:`${a}
172
+ `),await De(e,"BISECT_NAMES",`
173
+ `),a&&await De(e,"BISECT_FIRST_PARENT",""),i){let m=await Z(e);m&&await De(e,"BISECT_HEAD",m)}if(r.length>0){let m=r[0],u=await wt(e,m);if(M(u))return u;await X(e,`refs/bisect/${o}`,u);let h=await j(e,u);await Ot(e,`# ${o}: [${u}] ${ue(h.message)}`);for(let p=1;p<r.length;p++){let g=r[p],w=await wt(e,g);if(M(w))return w;await X(e,`refs/bisect/${s}-${w}`,w);let b=await j(e,w);await Ot(e,`# ${s}: [${w}] ${ue(b.message)}`)}}let l=r.map(m=>`'${m}'`),d=l.length>0?` ${l.join(" ")}`:"";return await Ot(e,`git bisect start${d}`),hs(e,t,n)}function vm(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:Tm(s,o.env,t,n,r.rev)}})}async function Tm(e,t,n,r,o){if(!await $t(e))return ms;let s=await ds(e),i=r==="bad"||r==="new"?s.termBad:s.termGood;return us(e,t,n,i,s,o)}async function Hm(e,t,n,r,o){if(!await $t(e))return ms;let s=await ds(e);return r!==s.termBad&&r!==s.termGood?{stdout:"",stderr:`error: unknown command: 'git bisect ${r}'
174
+ `,exitCode:1}:us(e,t,n,r,s,o[0])}async function us(e,t,n,r,o,s){let i;if(s){let f=await wt(e,s);if(M(f))return f;i=f}else{let f=await Ui(e);if(M(f))return f;i=f}let a=await j(e,i),c=ue(a.message);return r===o.termBad?await X(e,`refs/bisect/${o.termBad}`,i):await X(e,`refs/bisect/${o.termGood}-${i}`,i),await Ot(e,`# ${r}: [${i}] ${c}`),await Ot(e,`git bisect ${r} ${i}`),hs(e,t,n)}function Am(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 $t(s))return ms;let i=n.revs??[];if(i.length===0){let a=await Ui(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 wt(s,a);if(M(l))return l;c=l}await X(s,`refs/bisect/skip-${c}`,c);let f=await j(s,c);await Ot(s,`# skip: [${c}] ${ue(f.message)}`),await Ot(s,`git bisect skip ${c}`)}return hs(s,r.env,t)}})}function Dm(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 $t(s)?Mm(s,r.env,t,n.commit):{stdout:`We are not bisecting.
175
+ `,stderr:"",exitCode:0}}})}async function Mm(e,t,n,r){let o=(await Oe(e,"BISECT_START"))?.trim()??"";if(await io(e),r){let s=await wt(e,r);return M(s)?s:zn(e,s,t,n)}if(o){let s=`refs/heads/${o}`,i=await B(e,s);if(i)return mr(e,o,s,i,t,n);let a=await Be(e,o);if(a)return zn(e,a,t,n)}return{stdout:"",stderr:"",exitCode:0}}function jm(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 $t(s)?{stdout:await Oe(s,"BISECT_LOG")??"",stderr:"",exitCode:0}:{stdout:"",stderr:`error: We are not bisecting.
176
+ `,exitCode:1}}})}function Gm(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:S(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 Lm(s,r.env,t,a)}})}async function Lm(e,t,n,r){await $t(e)&&await io(e);let o={termBad:"bad",termGood:"good"},s="";for(let i of r.split(`
177
+ `)){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 m=l?l.split(/\s+/).map(u=>u.replace(/^'|'$/g,"")):[];d=await bf(e,t,n,m,"bad","good",!1,!1)}else if(f==="bad"||f==="new")d=await us(e,t,n,"bad",o,l||void 0);else if(f==="good"||f==="old")d=await us(e,t,n,"good",o,l||void 0);else if(f==="skip"){for(let m of l?l.split(/\s+/):[]){await X(e,`refs/bisect/skip-${m}`,m);let u=await j(e,m);await Ot(e,`# skip: [${m}] ${ue(u.message)}`),await Ot(e,`git bisect skip ${m}`)}d=await hs(e,t,n)}else continue;if(d.exitCode!==0)return d;s+=d.stdout}return{stdout:s,stderr:"",exitCode:0}}function Nm(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 $t(s))return ms;if(!r.exec)return I("bisect run requires shell execution support");let i=n.cmd.join(" ");return _m(s,r.env,t,i,r.exec,r.cwd)}})}async function _m(e,t,n,r,o,s){let i="";for(;;){i+=`running '${r}'
178
+ `;let c=(await o(r,{cwd:s})).exitCode;if(c===125){let m=await Ui(e);if(M(m))return m;await X(e,`refs/bisect/skip-${m}`,m);let u=await j(e,m);await Ot(e,`# skip: [${m}] ${ue(u.message)}`),await Ot(e,`git bisect skip ${m}`);let h=await hs(e,t,n);if(i+=h.stdout,h.stdout.includes("is the first bad commit"))return i+=`bisect found first bad commit
179
+ `,{stdout:i,stderr:"",exitCode:0};if(h.exitCode!==0)return{stdout:i,stderr:h.stderr,exitCode:h.exitCode};continue}let f=await oo(e),l=c===0?f.termGood:f.termBad,d=await us(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
180
+ `,{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":$().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 $t(s))return{stdout:"",stderr:`error: no terms defined
181
+ `,exitCode:1};let{termBad:i,termGood:a}=await ds(s);return n["term-good"]?{stdout:`${a}
182
182
  `,stderr:"",exitCode:0}:n["term-bad"]?{stdout:`${i}
183
183
  `,stderr:"",exitCode:0}:{stdout:`Your current terms are ${a} for the old state
184
184
  and ${i} for the new state.
185
- `,stderr:"",exitCode:0}}})}function Sm(e,t){for(let n of["visualize","view"])e.command(n,{description:"Show remaining suspects in git log",handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);if(M(s))return s;let i=s;if(!await Pt(i))return us;let a=await so(i);if(!a.badHash||a.goodHashes.length===0)return{stdout:"",stderr:`error: need both bad and good commits to visualize
186
- `,exitCode:1};let{walkCommits:c}=await Promise.resolve().then(()=>(ir(),Vc)),f="";for await(let l of c(i,a.badHash,{exclude:a.goodHashes}))f+=`${Y(l.hash)} ${le(l.commit.message)}
187
- `;return{stdout:f,stderr:"",exitCode:0}}})}async function ms(e,t,n){let r=await so(e);return!r.badHash||r.goodHashes.length===0?{stdout:Zc(r),stderr:"",exitCode:0}:(await Te(e,"BISECT_ANCESTORS_OK",""),vm(e,t,n,r))}async function vm(e,t,n,r){let o=await Xc(e,r.badHash,r.goodHashes,new Set(r.skipHashes),r.firstParent);if(!o)return{stdout:"",stderr:`error: no testable commits found
188
- `,exitCode:1};if(o.found){let s=await Qc(e,o.hash);return await $t(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.
185
+ `,stderr:"",exitCode:0}}})}function Um(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 $t(i))return ms;let a=await oo(i);if(!a.badHash||a.goodHashes.length===0)return{stdout:"",stderr:`error: need both bad and good commits to visualize
186
+ `,exitCode:1};let{walkCommits:c}=await Promise.resolve().then(()=>(fr(),Jc)),f="";for await(let l of c(i,a.badHash,{exclude:a.goodHashes}))f+=`${Y(l.hash)} ${ue(l.commit.message)}
187
+ `;return{stdout:f,stderr:"",exitCode:0}}})}async function hs(e,t,n){let r=await oo(e);return!r.badHash||r.goodHashes.length===0?{stdout:tf(r),stderr:"",exitCode:0}:(await De(e,"BISECT_ANCESTORS_OK",""),Bm(e,t,n,r))}async function Bm(e,t,n,r){let o=await ef(e,r.badHash,r.goodHashes,new Set(r.skipHashes),r.firstParent);if(!o)return{stdout:"",stderr:`error: no testable commits found
188
+ `,exitCode:1};if(o.found){let s=await rf(e,o.hash);return await Ot(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.
189
189
  The first bad commit could be any of:
190
190
  `;for(let i of r.skipHashes)s+=i+`
191
191
  `;return r.badHash&&(s+=r.badHash+`
192
192
  `),s+=`We cannot bisect more!
193
- `,{stdout:s,stderr:"",exitCode:2}}if(r.noCheckout)await Te(e,"BISECT_HEAD",o.hash);else{let s=await Un(e,o.hash,t,n);if(s.exitCode!==0)return s}return await Te(e,"BISECT_EXPECTED_REV",o.hash+`
194
- `),{stdout:Jc(o),stderr:"",exitCode:0}}oe();ie();function _t(e){if(e.length===0)return[];let t=e.split(`
195
- `);return t[t.length-1]===""&&t.pop(),t}function Et(e){if(e.length===0)return[];let t=[],n=0;for(let r=0;r<e.length;r++)e[r]===`
196
- `&&(t.push(e.slice(n,r+1)),n=r+1);return n<e.length&&t.push(e.slice(n)),t}var Tm=4,pf=1024,wo=100,Eo=0,bo=1,Ir=2;function _i(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 Am(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 gf(e,t,n,r){t-n>wo&&(n=t-wo),r-t>wo&&(r=t+wo);let o=0,s=1;for(let c=1;t-c>=n;c++){let f=e[t-c];if(f===Eo)o++;else if(f===Ir)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===Eo)i++;else if(f===Ir)a++;else break}return i===0?!1:(i+=o,a+=s,a*Tm<a+i)}function Dm(e,t,n,r,o,s,i,a,c,f){let l=new Uint8Array(t),d=new Uint8Array(r),m=Math.min(_i(t),pf);for(let g=s;g<=i;g++){let w=o[e[g]].len2;w===0?l[g]=Eo:w>=m?l[g]=Ir:l[g]=bo}let u=Math.min(_i(r),pf);for(let g=s;g<=a;g++){let w=o[n[g]].len1;w===0?d[g]=Eo:w>=u?d[g]=Ir:d[g]=bo}let h=[];for(let g=s;g<=i;g++)l[g]===bo||l[g]===Ir&&!gf(l,g,s,i)?h.push(g):c[g]=1;let p=[];for(let g=s;g<=a;g++)d[g]===bo||d[g]===Ir&&!gf(d,g,s,a)?p.push(g):f[g]=1;return{refIndex1:h,nreff1:h.length,refIndex2:p,nreff2:p.length}}var Bn=20,wf=4,Mm=256,jm=256,yo=2147483647;function yt(e,t){return e[t]??0}function Gm(e,t,n,r,o,s,i,a,c,f){let l=t-s,d=n-o,m=t-o,u=n-s,h=m-u&1,p=m,g=m,w=u,y=u;i[m]=t,a[u]=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 E=g;E>=p;E-=2){let k;yt(i,E-1)>=yt(i,E+1)?k=yt(i,E-1)+1:k=yt(i,E+1);let R=k,P=k-E;for(;k<n&&P<s&&e[k]===r[P];)k++,P++;if(k-R>Bn&&(b=!0),i[E]=k,h&&w<=E&&E<=y&&yt(a,E)<=k)return{i1:k,i2:P,minLo:!0,minHi:!0}}w>l?a[--w-1]=yo:++w,y<d?a[++y+1]=yo:--y;for(let E=y;E>=w;E-=2){let k;yt(a,E-1)<yt(a,E+1)?k=yt(a,E-1):k=yt(a,E+1)-1;let R=k,P=k-E;for(;k>t&&P>o&&e[k-1]===r[P-1];)k--,P--;if(R-k>Bn&&(b=!0),a[E]=k,!h&&p<=E&&E<=g&&k<=yt(i,E))return{i1:k,i2:P,minLo:!0,minHi:!0}}if(!c){if(b&&x>Mm){let E=0,k=null;for(let R=g;R>=p;R-=2){let P=R>m?R-m:m-R,C=yt(i,R),H=C-R,D=C-t+(H-o)-P;if(D>wf*x&&D>E&&t+Bn<=C&&C<n&&o+Bn<=H&&H<s){let O=!0;for(let A=1;A<=Bn;A++)if(e[C-A]!==r[H-A]){O=!1;break}O&&(E=D,k={i1:C,i2:H,minLo:!0,minHi:!1})}}if(k)return k;E=0,k=null;for(let R=y;R>=w;R-=2){let P=R>u?R-u:u-R,C=yt(a,R),H=C-R,D=n-C+(s-H)-P;if(D>wf*x&&D>E&&t<C&&C<=n-Bn&&o<H&&H<=s-Bn){let O=!0;for(let A=0;A<Bn;A++)if(e[C+A]!==r[H+A]){O=!1;break}O&&(E=D,k={i1:C,i2:H,minLo:!1,minHi:!0})}}if(k)return k}if(x>=f){let E=-1,k=-1;for(let C=g;C>=p;C-=2){let H=Math.min(yt(i,C),n),D=H-C;s<D&&(H=s+C,D=s),E<H+D&&(E=H+D,k=H)}let R=yo,P=yo;for(let C=y;C>=w;C-=2){let H=Math.max(t,yt(a,C)),D=H-C;D<o&&(H=o+C,D=o),H+D<R&&(R=H+D,P=H)}return n+s-R<E-(t+o)?{i1:k,i2:E-k,minLo:!0,minHi:!1}:{i1:P,i2:R-P,minLo:!1,minHi:!0}}}}}function Fi(e,t,n,r,o,s,i,a,c,f,l,d,m,u){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=Gm(e,t,n,r,o,s,l,d,m,u);Fi(e,t,h.i1,r,o,h.i2,i,a,c,f,l,d,h.minLo,u),Fi(e,h.i1,n,r,h.i2,s,i,a,c,f,l,d,h.minHi,u)}}function Lm(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 bf=200,yf=20,Ef=100,Nm=1,_m=21,Fm=-30,Um=6,Bm=-4,Wm=10,qm=24,zm=17,Km=23,Vm=17,Ym=60;function Ni(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>=bf)return bf}return-1}function kf(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=Ni(e[n]));for(let o=n-1;o>=0&&(r.preIndent=Ni(e[o]),r.preIndent===-1);o--)if(r.preBlank+=1,r.preBlank===yf){r.preIndent=0;break}for(let o=n+1;o<t&&(r.postIndent=Ni(e[o]),r.postIndent===-1);o++)if(r.postBlank+=1,r.postBlank===yf){r.postIndent=0;break}return r}function Rf(e,t){e.preIndent===-1&&e.preBlank===0&&(t.penalty+=Nm),e.endOfFile&&(t.penalty+=_m);let n=e.indent===-1?1+e.postBlank:0,r=e.preBlank+n;t.penalty+=Fm*r,t.penalty+=Um*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?Wm:Bm:o===e.preIndent||(e.postIndent!==-1&&e.postIndent>o?t.penalty+=s?zm:qm:t.penalty+=s?Vm:Km))}function Xm(e,t){let n=(e.effectiveIndent>t.effectiveIndent?1:0)-(e.effectiveIndent<t.effectiveIndent?1:0);return Ym*n+(e.penalty-t.penalty)}function xf(e,t,n,r,o,s){let i=0,a=0;for(;e[a];)a++;let c=0,f=0;for(;o[f];)f++;let l=(d,m)=>t[d]===t[m];for(;;){if(a!==i){let d,m,u;do{for(d=a-i,m=-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(u=a,f>c&&(m=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&&(m=a)}}while(d!==a-i);if(a!==u)if(m!==-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=u;for(a-d-1>g&&(g=a-d-1),a-Ef>g&&(g=a-Ef);g<=a;g++){let w={effectiveIndent:0,penalty:0},y=kf(n,r,g);Rf(y,w);let x=kf(n,r,g-d);Rf(x,w),(h===-1||Xm(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 Ui(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}=Am(i,n,a,r);if(f>l)for(let m=f;m<r-(n-1-l);m++)s[m]=1;else if(f>d)for(let m=f;m<n-(r-1-d);m++)o[m]=1;else{let{refIndex1:m,nreff1:u,refIndex2:h,nreff2:p}=Dm(i,n,a,r,c,f,l,d,o,s);if(u>0&&p>0){let g=new Array(u);for(let k=0;k<u;k++)g[k]=i[m[k]];let w=new Array(p);for(let k=0;k<p;k++)w[k]=a[h[k]];let y={},x={},b=u+p+3,E=Math.max(jm,_i(b));Fi(g,0,u,w,0,p,o,s,m,h,y,x,!1,E)}else if(u===0)for(let g=0;g<p;g++)s[h[g]]=1;else for(let g=0;g<u;g++)o[m[g]]=1;xf(o,i,e,n,s,r),xf(s,a,t,r,o,n)}}else n===0?s.fill(1):o.fill(1);return{changedOld:o,changedNew:s}}function at(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}=Ui(e,t);return Lm(e,t,o,s)}var Zm=3;function Jm(e,t=Zm){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=>Qm(e,a.start,a.end))}function Qm(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 ko(e){return e?e.length<40?e:Y(e):"0000000"}function Cf(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 eh(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==="",m=e.isDeleted??s==="";if(o===s&&!f)return"";let u=[];if(Cf(u,e,l,d,m,f),o!==s){if(a||c){let h=ko(a),p=ko(c);d||m||f?u.push(`index ${h}..${p}`):u.push(`index ${h}..${p} ${i||"100644"}`)}t&&n?u.push(`Binary files a/${r} and b/${l} differ`):d?u.push(`Binary files /dev/null and b/${l} differ`):m?u.push(`Binary files a/${r} and /dev/null differ`):u.push(`Binary files a/${r} and b/${l} differ`)}return`${u.join(`
193
+ `,{stdout:s,stderr:"",exitCode:2}}if(r.noCheckout)await De(e,"BISECT_HEAD",o.hash);else{let s=await zn(e,o.hash,t,n);if(s.exitCode!==0)return s}return await De(e,"BISECT_EXPECTED_REV",o.hash+`
194
+ `),{stdout:nf(o),stderr:"",exitCode:0}}ie();ce();function _t(e){if(e.length===0)return[];let t=e.split(`
195
+ `);return t[t.length-1]===""&&t.pop(),t}function Rt(e){if(e.length===0)return[];let t=[],n=0;for(let r=0;r<e.length;r++)e[r]===`
196
+ `&&(t.push(e.slice(n,r+1)),n=r+1);return n<e.length&&t.push(e.slice(n)),t}var Wm=4,yf=1024,bo=100,ko=0,yo=1,Tr=2;function Wi(e){let t=1;for(;t*t<e;)t++;return t}function qm(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 zm(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 Ef(e,t,n,r){t-n>bo&&(n=t-bo),r-t>bo&&(r=t+bo);let o=0,s=1;for(let c=1;t-c>=n;c++){let f=e[t-c];if(f===ko)o++;else if(f===Tr)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===ko)i++;else if(f===Tr)a++;else break}return i===0?!1:(i+=o,a+=s,a*Wm<a+i)}function Km(e,t,n,r,o,s,i,a,c,f){let l=new Uint8Array(t),d=new Uint8Array(r),m=Math.min(Wi(t),yf);for(let g=s;g<=i;g++){let w=o[e[g]].len2;w===0?l[g]=ko:w>=m?l[g]=Tr:l[g]=yo}let u=Math.min(Wi(r),yf);for(let g=s;g<=a;g++){let w=o[n[g]].len1;w===0?d[g]=ko:w>=u?d[g]=Tr:d[g]=yo}let h=[];for(let g=s;g<=i;g++)l[g]===yo||l[g]===Tr&&!Ef(l,g,s,i)?h.push(g):c[g]=1;let p=[];for(let g=s;g<=a;g++)d[g]===yo||d[g]===Tr&&!Ef(d,g,s,a)?p.push(g):f[g]=1;return{refIndex1:h,nreff1:h.length,refIndex2:p,nreff2:p.length}}var Kn=20,kf=4,Vm=256,Ym=256,Eo=2147483647;function kt(e,t){return e[t]??0}function Xm(e,t,n,r,o,s,i,a,c,f){let l=t-s,d=n-o,m=t-o,u=n-s,h=m-u&1,p=m,g=m,w=u,b=u;i[m]=t,a[u]=n;for(let x=1;;x++){let y=!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;kt(i,k-1)>=kt(i,k+1)?E=kt(i,k-1)+1:E=kt(i,k+1);let R=E,C=E-k;for(;E<n&&C<s&&e[E]===r[C];)E++,C++;if(E-R>Kn&&(y=!0),i[k]=E,h&&w<=k&&k<=b&&kt(a,k)<=E)return{i1:E,i2:C,minLo:!0,minHi:!0}}w>l?a[--w-1]=Eo:++w,b<d?a[++b+1]=Eo:--b;for(let k=b;k>=w;k-=2){let E;kt(a,k-1)<kt(a,k+1)?E=kt(a,k-1):E=kt(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>Kn&&(y=!0),a[k]=E,!h&&p<=k&&k<=g&&E<=kt(i,k))return{i1:E,i2:C,minLo:!0,minHi:!0}}if(!c){if(y&&x>Vm){let k=0,E=null;for(let R=g;R>=p;R-=2){let C=R>m?R-m:m-R,P=kt(i,R),H=P-R,D=P-t+(H-o)-C;if(D>kf*x&&D>k&&t+Kn<=P&&P<n&&o+Kn<=H&&H<s){let O=!0;for(let A=1;A<=Kn;A++)if(e[P-A]!==r[H-A]){O=!1;break}O&&(k=D,E={i1:P,i2:H,minLo:!0,minHi:!1})}}if(E)return E;k=0,E=null;for(let R=b;R>=w;R-=2){let C=R>u?R-u:u-R,P=kt(a,R),H=P-R,D=n-P+(s-H)-C;if(D>kf*x&&D>k&&t<P&&P<=n-Kn&&o<H&&H<=s-Kn){let O=!0;for(let A=0;A<Kn;A++)if(e[P+A]!==r[H+A]){O=!1;break}O&&(k=D,E={i1:P,i2:H,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 H=Math.min(kt(i,P),n),D=H-P;s<D&&(H=s+P,D=s),k<H+D&&(k=H+D,E=H)}let R=Eo,C=Eo;for(let P=b;P>=w;P-=2){let H=Math.max(t,kt(a,P)),D=H-P;D<o&&(H=o+P,D=o),H+D<R&&(R=H+D,C=H)}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 qi(e,t,n,r,o,s,i,a,c,f,l,d,m,u){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=Xm(e,t,n,r,o,s,l,d,m,u);qi(e,t,h.i1,r,o,h.i2,i,a,c,f,l,d,h.minLo,u),qi(e,h.i1,n,r,h.i2,s,i,a,c,f,l,d,h.minHi,u)}}function Zm(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 Rf=200,xf=20,Cf=100,Jm=1,Qm=21,eh=-30,th=6,nh=-4,rh=10,sh=24,oh=17,ih=23,ah=17,ch=60;function Bi(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>=Rf)return Rf}return-1}function Pf(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=Bi(e[n]));for(let o=n-1;o>=0&&(r.preIndent=Bi(e[o]),r.preIndent===-1);o--)if(r.preBlank+=1,r.preBlank===xf){r.preIndent=0;break}for(let o=n+1;o<t&&(r.postIndent=Bi(e[o]),r.postIndent===-1);o++)if(r.postBlank+=1,r.postBlank===xf){r.postIndent=0;break}return r}function $f(e,t){e.preIndent===-1&&e.preBlank===0&&(t.penalty+=Jm),e.endOfFile&&(t.penalty+=Qm);let n=e.indent===-1?1+e.postBlank:0,r=e.preBlank+n;t.penalty+=eh*r,t.penalty+=th*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?rh:nh:o===e.preIndent||(e.postIndent!==-1&&e.postIndent>o?t.penalty+=s?oh:sh:t.penalty+=s?ah:ih))}function fh(e,t){let n=(e.effectiveIndent>t.effectiveIndent?1:0)-(e.effectiveIndent<t.effectiveIndent?1:0);return ch*n+(e.penalty-t.penalty)}function Of(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,m)=>t[d]===t[m];for(;;){if(a!==i){let d,m,u;do{for(d=a-i,m=-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(u=a,f>c&&(m=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&&(m=a)}}while(d!==a-i);if(a!==u)if(m!==-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=u;for(a-d-1>g&&(g=a-d-1),a-Cf>g&&(g=a-Cf);g<=a;g++){let w={effectiveIndent:0,penalty:0},b=Pf(n,r,g);$f(b,w);let x=Pf(n,r,g-d);$f(x,w),(h===-1||fh(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 zi(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}=qm(e,t),{dstart:f,dend1:l,dend2:d}=zm(i,n,a,r);if(f>l)for(let m=f;m<r-(n-1-l);m++)s[m]=1;else if(f>d)for(let m=f;m<n-(r-1-d);m++)o[m]=1;else{let{refIndex1:m,nreff1:u,refIndex2:h,nreff2:p}=Km(i,n,a,r,c,f,l,d,o,s);if(u>0&&p>0){let g=new Array(u);for(let E=0;E<u;E++)g[E]=i[m[E]];let w=new Array(p);for(let E=0;E<p;E++)w[E]=a[h[E]];let b={},x={},y=u+p+3,k=Math.max(Ym,Wi(y));qi(g,0,u,w,0,p,o,s,m,h,b,x,!1,k)}else if(u===0)for(let g=0;g<p;g++)s[h[g]]=1;else for(let g=0;g<u;g++)o[m[g]]=1;Of(o,i,e,n,s,r),Of(s,a,t,r,o,n)}}else n===0?s.fill(1):o.fill(1);return{changedOld:o,changedNew:s}}function ct(e,t){let n=e.length,r=t.length;if(n===0&&r===0)return[];if(n===0)return t.map((i,a)=>({type:"insert",line:i,oldLineNo:0,newLineNo:a+1}));if(r===0)return e.map((i,a)=>({type:"delete",line:i,oldLineNo:a+1,newLineNo:0}));let{changedOld:o,changedNew:s}=zi(e,t);return Zm(e,t,o,s)}var lh=3;function dh(e,t=lh){if(t=Math.max(0,t),e.length===0)return[];let n=[];for(let a=0;a<e.length;a++){let c=e[a];c&&c.type!=="keep"&&n.push(a)}if(n.length===0)return[];let r=n[0]??0,o=[],s=Math.max(0,r-t),i=Math.min(e.length-1,r+t);for(let a=1;a<n.length;a++){let c=n[a]??0,f=Math.max(0,c-t),l=Math.min(e.length-1,c+t);f<=i+1||(o.push({start:s,end:i}),s=f),i=l}return o.push({start:s,end:i}),o.map(a=>uh(e,a.start,a.end))}function uh(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 Ro(e){return e?e.length<40?e:Y(e):"0000000"}function If(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 mh(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==="",m=e.isDeleted??s==="";if(o===s&&!f)return"";let u=[];if(If(u,e,l,d,m,f),o!==s){if(a||c){let h=Ro(a),p=Ro(c);d||m||f?u.push(`index ${h}..${p}`):u.push(`index ${h}..${p} ${i||"100644"}`)}t&&n?u.push(`Binary files a/${r} and b/${l} differ`):d?u.push(`Binary files /dev/null and b/${l} differ`):m?u.push(`Binary files a/${r} and /dev/null differ`):u.push(`Binary files a/${r} and b/${l} differ`)}return`${u.join(`
197
197
  `)}
198
- `}function Ot(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 eh(e,l,d);let m=_t(n),u=_t(r),h=n.length>0&&n.endsWith(`
198
+ `}function It(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=ve(n),d=ve(r);if(l||d)return mh(e,l,d);let m=_t(n),u=_t(r),h=n.length>0&&n.endsWith(`
199
199
  `),p=r.length>0&&r.endsWith(`
200
- `),g="\0NOEOL",w=m;!h&&m.length>0&&(w=m.slice(),w[w.length-1]+=g);let y=u;!p&&u.length>0&&(y=u.slice(),y[y.length-1]+=g);let x=at(w,y);if(!h||!p)for(let D of x)D.line.includes(g)&&(D.line=D.line.replace(g,""));let b=Jm(x);if(b.length===0&&!c)return"";let E=e.isNew??n==="",k=e.isDeleted??r==="",R=[];if(Cf(R,e,f,E,k,c),b.length===0)return`${R.join(`
200
+ `),g="\0NOEOL",w=m;!h&&m.length>0&&(w=m.slice(),w[w.length-1]+=g);let b=u;!p&&u.length>0&&(b=u.slice(),b[b.length-1]+=g);let x=ct(w,b);if(!h||!p)for(let D of x)D.line.includes(g)&&(D.line=D.line.replace(g,""));let y=dh(x,e.contextLines);if(y.length===0&&!c)return"";let k=e.isNew??n==="",E=e.isDeleted??r==="",R=[];if(If(R,e,f,k,E,c),y.length===0)return`${R.join(`
201
201
  `)}
202
- `;if(i||a){let D=ko(i),O=ko(a);E||k?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(" ")?" ":"";E?(R.push("--- /dev/null"),R.push(`+++ b/${f}${P(f)}`)):k?(R.push(`--- a/${t}${P(t)}`),R.push("+++ /dev/null")):(R.push(`--- a/${t}${P(t)}`),R.push(`+++ b/${f}${P(f)}`));let C=m.length,H=u.length;for(let D of b){let O=D.oldCount===1?`${D.oldStart}`:`${D.oldStart},${D.oldCount}`,A=D.newCount===1?`${D.newStart}`:`${D.newStart},${D.newCount}`,G="";for(let _=D.oldStart-2;_>=0;_--){let B=m[_];if(B&&/^[a-zA-Z$_]/.test(B)){G=` ${B.trimEnd().slice(0,79)}`;break}}R.push(`@@ -${O} +${A} @@${G}`);let v=D.oldStart,T=D.newStart;for(let _ of D.lines)switch(_.type){case"context":R.push(` ${_.content}`),(!h&&v===C||!p&&T===H)&&R.push("\"),v++,T++;break;case"delete":R.push(`-${_.content}`),!h&&v===C&&R.push("\"),v++;break;case"insert":R.push(`+${_.content}`),!p&&T===H&&R.push("\"),T++;break}}return`${R.join(`
202
+ `;if(i||a){let D=Ro(i),O=Ro(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=m.length,H=u.length;for(let D of y){let O=D.oldCount===1?`${D.oldStart}`:`${D.oldStart},${D.oldCount}`,A=D.newCount===1?`${D.newStart}`:`${D.newStart},${D.newCount}`,G="",v=D.oldCount===0?D.oldStart-1:D.oldStart-2;for(let _=v;_>=0;_--){let U=m[_];if(U&&/^[a-zA-Z$_]/.test(U)){G=` ${U.trimEnd().slice(0,79)}`;break}}R.push(`@@ -${O} +${A} @@${G}`);let T=D.oldStart,F=D.newStart;for(let _ of D.lines)switch(_.type){case"context":R.push(` ${_.content}`),(!h&&T===P||!p&&F===H)&&R.push("\"),T++,F++;break;case"delete":R.push(`-${_.content}`),!h&&T===P&&R.push("\"),T++;break;case"insert":R.push(`+${_.content}`),!p&&F===H&&R.push("\"),F++;break}}return`${R.join(`
203
203
  `)}
204
- `}ie();ve();async function Wn(e,t,n){return(await fe(e,t)).get(n)?.hash??null}async function Pf(e,t,n,r){let o=await Ke(e,t,n);if(!o.find(c=>c.status==="added"&&c.path===r))return null;let{renames:i}=await ot(e,o);return i.find(c=>c.newPath===r)?.oldPath??null}async function th(e,t,n,r,o,s){let i=await Wn(e,(await j(e,t)).tree,n);if(!i){let p=new Map,g=await j(e,t);for(let w of r)p.set(w.finalIdx,qn(t,n,w.currentLine,s+w.finalIdx,o[w.finalIdx],g,!1,void 0));return p}let a=await re(e,i),c=_t(a),f=new Array(o.length),l=[...r],d=t,m=n,u=c;for(;l.length>0;){let p=await j(e,d);if(p.parents.length===0){for(let C of l)f[C.finalIdx]=qn(d,m,C.currentLine,s+C.finalIdx,o[C.finalIdx],p,!0,void 0);break}let g=await Wn(e,p.tree,m),w=null,y=[];for(let C of p.parents){let H=await j(e,C),D=m,O=await Wn(e,H.tree,D);if(!O){let A=await Pf(e,H.tree,p.tree,m);A&&(D=A,O=await Wn(e,H.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,m=w.path;continue}if(y.length===0){for(let C of l)f[C.finalIdx]=qn(d,m,C.currentLine,s+C.finalIdx,o[C.finalIdx],p,!1,void 0);break}let x=y[0],b=await re(e,x.blobHash),E=_t(b),k=at(E,u),R=new Map;for(let C of k)C.type==="keep"&&R.set(C.newLineNo,C.oldLineNo);let P=[];for(let C of l){let H=R.get(C.currentLine);H!==void 0?P.push({finalIdx:C.finalIdx,currentLine:H}):f[C.finalIdx]=qn(d,m,C.currentLine,s+C.finalIdx,o[C.finalIdx],p,!1,{hash:x.hash,path:x.path})}l=P,d=x.hash,m=x.path,u=E}let h=new Map;for(let p of r)f[p.finalIdx]&&h.set(p.finalIdx,f[p.finalIdx]);return h}async function $f(e,t,n,r){let o=await j(e,t),s=await Wn(e,o.tree,n);if(!s)throw new Error(`no such path '${n}' in ${t.slice(0,7)}`);let i=await re(e,s),a=_t(i),c=r?.startLine??1,f=r?.endLine??a.length,l=a.slice(c-1,f),d=new Array(l.length),m=l.map((g,w)=>({finalIdx:w,currentLine:c+w})),u=t,h=n,p=a;for(;m.length>0;){let g=await j(e,u);if(g.parents.length===0){for(let R of m)d[R.finalIdx]=qn(u,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!0,void 0);break}let w=await Wn(e,g.tree,h),y=[],x=null;for(let R of g.parents){let P=await j(e,R),C=h,H=await Wn(e,P.tree,C);if(!H){let D=await Pf(e,P.tree,g.tree,h);D&&(C=D,H=await Wn(e,P.tree,C))}if(H){let D={hash:R,path:C,blobHash:H};if(y.push(D),H===w){x=D;break}}}if(x){u=x.hash,h=x.path;continue}if(y.length===0){for(let R of m)d[R.finalIdx]=qn(u,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!1,void 0);break}if(y.length===1){let R=y[0],P=await re(e,R.blobHash),C=_t(P),H=at(C,p),D=new Map;for(let A of H)A.type==="keep"&&D.set(A.newLineNo,A.oldLineNo);let O=[];for(let A of m){let G=D.get(A.currentLine);G!==void 0?O.push({finalIdx:A.finalIdx,currentLine:G}):d[A.finalIdx]=qn(u,h,A.currentLine,c+A.finalIdx,l[A.finalIdx],g,!1,{hash:R.hash,path:R.path})}m=O,u=R.hash,h=R.path,p=C;continue}let b=[];for(let R of y){let P=await re(e,R.blobHash),C=_t(P),H=at(C,p),D=new Map;for(let O of H)O.type==="keep"&&D.set(O.newLineNo,O.oldLineNo);b.push({info:R,newToOld:D})}let E=new Map;for(let R of m){let P=!1;for(let C=0;C<b.length;C++){let H=b[C],D=H.newToOld.get(R.currentLine);if(D!==void 0){let O=E.get(C);O||(O={info:H.info,lines:[]},E.set(C,O)),O.lines.push({finalIdx:R.finalIdx,currentLine:D}),P=!0;break}}P||(d[R.finalIdx]=qn(u,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!1,{hash:y[0].hash,path:y[0].path}))}let k=E.get(0);for(let[R,P]of E){if(R===0)continue;let C=await th(e,P.info.hash,P.info.path,P.lines,l,c);for(let[H,D]of C)d[H]=D}if(k&&k.lines.length>0){m=k.lines,u=k.info.hash,h=k.info.path;let R=await re(e,k.info.blobHash);p=_t(R)}else break}return d}function qn(e,t,n,r,o,s,i,a){return{hash:e,origPath:t,origLine:n,finalLine:r,content:o,author:s.author,committer:s.committer,summary:s.message.split(`
205
- `)[0],boundary:i,previous:a}}oe();ie();ve();ie();ue();function nh(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 rh(e,t){let n=nh(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 sh(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 m=r?`<${d.author.email}>`:d.author.name;m.length>c&&(c=m.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 m;n?m=d.boundary?`^${d.hash.slice(0,39)}`:d.hash:m=d.boundary?`^${d.hash.slice(0,7)}`:d.hash.slice(0,8);let u=a?` ${d.origPath.padEnd(f)}`:"";if(o)l.push(`${m}${u} ${String(d.finalLine).padStart(i)}) ${d.content}`);else{let h=r?`<${d.author.email}>`:d.author.name,p=rh(d.author.timestamp,d.author.timezone);l.push(`${m}${u} (${h.padEnd(c)} ${p} ${String(d.finalLine).padStart(i)}) ${d.content}`)}}return`${l.join(`
204
+ `}ce();He();async function Vn(e,t,n){return(await le(e,t)).get(n)?.hash??null}async function Sf(e,t,n,r){let o=await Ve(e,t,n);if(!o.find(c=>c.status==="added"&&c.path===r))return null;let{renames:i}=await it(e,o);return i.find(c=>c.newPath===r)?.oldPath??null}async function hh(e,t,n,r,o,s){let i=await Vn(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,Yn(t,n,w.currentLine,s+w.finalIdx,o[w.finalIdx],g,!1,void 0));return p}let a=await oe(e,i),c=_t(a),f=new Array(o.length),l=[...r],d=t,m=n,u=c;for(;l.length>0;){let p=await j(e,d);if(p.parents.length===0){for(let P of l)f[P.finalIdx]=Yn(d,m,P.currentLine,s+P.finalIdx,o[P.finalIdx],p,!0,void 0);break}let g=await Vn(e,p.tree,m),w=null,b=[];for(let P of p.parents){let H=await j(e,P),D=m,O=await Vn(e,H.tree,D);if(!O){let A=await Sf(e,H.tree,p.tree,m);A&&(D=A,O=await Vn(e,H.tree,D))}if(O&&(b.push({hash:P,path:D,blobHash:O}),O===g)){w={hash:P,path:D};break}}if(w){d=w.hash,m=w.path;continue}if(b.length===0){for(let P of l)f[P.finalIdx]=Yn(d,m,P.currentLine,s+P.finalIdx,o[P.finalIdx],p,!1,void 0);break}let x=b[0],y=await oe(e,x.blobHash),k=_t(y),E=ct(k,u),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 H=R.get(P.currentLine);H!==void 0?C.push({finalIdx:P.finalIdx,currentLine:H}):f[P.finalIdx]=Yn(d,m,P.currentLine,s+P.finalIdx,o[P.finalIdx],p,!1,{hash:x.hash,path:x.path})}l=C,d=x.hash,m=x.path,u=k}let h=new Map;for(let p of r)f[p.finalIdx]&&h.set(p.finalIdx,f[p.finalIdx]);return h}async function vf(e,t,n,r){let o=await j(e,t),s=await Vn(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=_t(i),c=r?.startLine??1,f=r?.endLine??a.length,l=a.slice(c-1,f),d=new Array(l.length),m=l.map((g,w)=>({finalIdx:w,currentLine:c+w})),u=t,h=n,p=a;for(;m.length>0;){let g=await j(e,u);if(g.parents.length===0){for(let R of m)d[R.finalIdx]=Yn(u,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!0,void 0);break}let w=await Vn(e,g.tree,h),b=[],x=null;for(let R of g.parents){let C=await j(e,R),P=h,H=await Vn(e,C.tree,P);if(!H){let D=await Sf(e,C.tree,g.tree,h);D&&(P=D,H=await Vn(e,C.tree,P))}if(H){let D={hash:R,path:P,blobHash:H};if(b.push(D),H===w){x=D;break}}}if(x){u=x.hash,h=x.path;continue}if(b.length===0){for(let R of m)d[R.finalIdx]=Yn(u,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!1,void 0);break}if(b.length===1){let R=b[0],C=await oe(e,R.blobHash),P=_t(C),H=ct(P,p),D=new Map;for(let A of H)A.type==="keep"&&D.set(A.newLineNo,A.oldLineNo);let O=[];for(let A of m){let G=D.get(A.currentLine);G!==void 0?O.push({finalIdx:A.finalIdx,currentLine:G}):d[A.finalIdx]=Yn(u,h,A.currentLine,c+A.finalIdx,l[A.finalIdx],g,!1,{hash:R.hash,path:R.path})}m=O,u=R.hash,h=R.path,p=P;continue}let y=[];for(let R of b){let C=await oe(e,R.blobHash),P=_t(C),H=ct(P,p),D=new Map;for(let O of H)O.type==="keep"&&D.set(O.newLineNo,O.oldLineNo);y.push({info:R,newToOld:D})}let k=new Map;for(let R of m){let C=!1;for(let P=0;P<y.length;P++){let H=y[P],D=H.newToOld.get(R.currentLine);if(D!==void 0){let O=k.get(P);O||(O={info:H.info,lines:[]},k.set(P,O)),O.lines.push({finalIdx:R.finalIdx,currentLine:D}),C=!0;break}}C||(d[R.finalIdx]=Yn(u,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!1,{hash:b[0].hash,path:b[0].path}))}let E=k.get(0);for(let[R,C]of k){if(R===0)continue;let P=await hh(e,C.info.hash,C.info.path,C.lines,l,c);for(let[H,D]of P)d[H]=D}if(E&&E.lines.length>0){m=E.lines,u=E.info.hash,h=E.info.path;let R=await oe(e,E.info.blobHash);p=_t(R)}else break}return d}function Yn(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(`
205
+ `)[0],boundary:i,previous:a}}ie();ce();He();ce();me();function ph(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 gh(e,t){let n=ph(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 wh(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 m=r?`<${d.author.email}>`:d.author.name;m.length>c&&(c=m.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 m;n?m=d.boundary?`^${d.hash.slice(0,39)}`:d.hash:m=d.boundary?`^${d.hash.slice(0,7)}`:d.hash.slice(0,8);let u=a?` ${d.origPath.padEnd(f)}`:"";if(o)l.push(`${m}${u} ${String(d.finalLine).padStart(i)}) ${d.content}`);else{let h=r?`<${d.author.email}>`:d.author.name,p=gh(d.author.timestamp,d.author.timezone);l.push(`${m}${u} (${h.padEnd(c)} ${p} ${String(d.finalLine).padStart(i)}) ${d.content}`)}}return`${l.join(`
206
206
  `)}
207
- `}function oh(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(`
207
+ `}function bh(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(`
208
208
  `)}
209
- `}function ih(e,t,n){if(e.startsWith("/"))return nt(n,e);let r=nt(n,t);return r===""||r==="."?e:`${r}/${e}`}function Of(e,t){e.command("blame",{description:"Show what revision and author last modified each line of a file",args:[z.string().name("args").variadic().optional()],options:{lineRange:Z.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 q(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 Qe(i);if(M(a))return a;let c=n.args??[],f=o.passthrough??[],l=null,d=null;if(f.length>0?(d=f[f.length-1],c.length>0&&(l=c[0])):c.length===2?(l=c[0],d=c[1]):c.length===1&&(d=c[0]),!d)return I("no file specified");let m=ih(d,r.cwd,i.workTree),u;if(l){let k=await pt(i,l);if(M(k))return k;u=await je(i,k)}else u=a;let h=await j(i,u),p=await fe(i,h.tree);if(!p.has(m))return I(`no such path ${m} in ${l??"HEAD"}`);let g=p.get(m).hash,w=await re(i,g);if($e(w))return I(`cannot blame binary file '${m}'`);let y,x;if(n.lineRange){let k=n.lineRange,R=k.match(/^(\d+),(\d+)$/);if(R)y=parseInt(R[1],10),x=parseInt(R[2],10);else return I(`invalid -L range: '${k}'`)}let b;try{b=await $f(i,u,m,{startLine:y,endLine:x})}catch(k){let R=k instanceof Error?k.message:String(k);return I(R)}let E;return n.porcelain||n.linePorcelain?E=oh(b,!!n.linePorcelain):E=sh(b,m,!!n.long,!!n.showEmail,!!n.suppress),{stdout:E,stderr:"",exitCode:0}}})}oe();Be();On();oe();var ah=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ch=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Ft(e,t){let n=fh(t),r=new Date((e+n*60)*1e3),o=ah[r.getUTCDay()],s=ch[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 Bi(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 fh(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 Ro=new TextDecoder;function If(e){if(e.length===0)return 0;let t=0;for(let n=0;n<e.length;n++)e[n]===`
209
+ `}function yh(e,t,n){if(e.startsWith("/"))return st(n,e);let r=st(n,t);return r===""||r==="."?e:`${r}/${e}`}function Tf(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:V.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 Qe(i);if(M(a))return a;let c=n.args??[],f=o.passthrough??[],l=null,d=null;if(f.length>0?(d=f[f.length-1],c.length>0&&(l=c[0])):c.length===2?(l=c[0],d=c[1]):c.length===1&&(d=c[0]),!d)return I("no file specified");let m=yh(d,r.cwd,i.workTree),u;if(l){let E=await wt(i,l);if(M(E))return E;u=await Te(i,E)}else u=a;let h=await j(i,u),p=await le(i,h.tree);if(!p.has(m))return I(`no such path ${m} in ${l??"HEAD"}`);let g=p.get(m).hash,w=await oe(i,g);if(ve(w))return I(`cannot blame binary file '${m}'`);let b,x;if(n.lineRange){let E=n.lineRange,R=E.match(/^(\d+),(\d+)$/);if(R)b=parseInt(R[1],10),x=parseInt(R[2],10);else return I(`invalid -L range: '${E}'`)}let y;try{y=await vf(i,u,m,{startLine:b,endLine:x})}catch(E){let R=E instanceof Error?E.message:String(E);return I(R)}let k;return n.porcelain||n.linePorcelain?k=bh(y,!!n.linePorcelain):k=wh(y,m,!!n.long,!!n.showEmail,!!n.suppress),{stdout:k,stderr:"",exitCode:0}}})}ie();qe();vn();ie();var Eh=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],kh=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Cn(e,t){let n=Rh(t),r=new Date((e+n*60)*1e3),o=Eh[r.getUTCDay()],s=kh[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 Ki(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 Rh(e){let t=e.startsWith("-")?-1:1,n=e.replace(/^[+-]/,""),r=parseInt(n.slice(0,2),10)||0,o=parseInt(n.slice(2,4),10)||0;return t*(r*60+o)}ce();He();var xo=new TextDecoder;function Hf(e){if(e.length===0)return 0;let t=0;for(let n=0;n<e.length;n++)e[n]===`
210
210
  `&&t++;return e[e.length-1]!==`
211
- `&&t++,t}function zn(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 Kn(e,t,n){let r=[],o=[],s=[];for(let a of t)if(a.status==="added"&&a.newHash&&a.newMode){let c=await Ct(e,a.newHash);Tn(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:If(Ro.decode(c)),deletions:0}),o.push({path:a.path,mode:a.newMode})}else if(a.status==="deleted"&&a.oldHash&&a.oldMode){let c=await Ct(e,a.oldHash);Tn(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:If(Ro.decode(c))}),s.push({path:a.path,mode:a.oldMode})}else if(a.status==="modified"&&a.oldHash&&a.newHash){let c=await Ct(e,a.oldHash),f=await Ct(e,a.newHash);if(Tn(c)||Tn(f))r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:f.byteLength});else{let l=Et(Ro.decode(c)),d=Et(Ro.decode(f)),m=at(l,d),u=0,h=0;for(let p of m)p.type==="insert"?u++:p.type==="delete"&&h++;r.push({path:a.path,sortKey:a.path,insertions:u,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=fn(a.oldPath,a.newPath),f=0,l=0;if(a.similarity<100&&a.oldHash&&a.newHash){let d=await re(e,a.oldHash),m=await re(e,a.newHash);if(!$e(d)&&!$e(m)){let u=Et(d),h=Et(m),p=at(u,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=fn(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 ln(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: ${Ft(r.timestamp,r.timezone)}`),i)return a.join(`
211
+ `&&t++,t}function Xn(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 Zn(e,t,n){let r=[],o=[],s=[];for(let a of t)if(a.status==="added"&&a.newHash&&a.newMode){let c=await Pt(e,a.newHash);Dn(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:Hf(xo.decode(c)),deletions:0}),o.push({path:a.path,mode:a.newMode})}else if(a.status==="deleted"&&a.oldHash&&a.oldMode){let c=await Pt(e,a.oldHash);Dn(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:Hf(xo.decode(c))}),s.push({path:a.path,mode:a.oldMode})}else if(a.status==="modified"&&a.oldHash&&a.newHash){let c=await Pt(e,a.oldHash),f=await Pt(e,a.newHash);if(Dn(c)||Dn(f))r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:f.byteLength});else{let l=Rt(xo.decode(c)),d=Rt(xo.decode(f)),m=ct(l,d),u=0,h=0;for(let p of m)p.type==="insert"?u++:p.type==="delete"&&h++;r.push({path:a.path,sortKey:a.path,insertions:u,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=dn(a.oldPath,a.newPath),f=0,l=0;if(a.similarity<100&&a.oldHash&&a.newHash){let d=await oe(e,a.oldHash),m=await oe(e,a.newHash);if(!ve(d)&&!ve(m)){let u=Rt(d),h=Rt(m),p=ct(u,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=dn(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 un(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: ${Cn(r.timestamp,r.timezone)}`),i)return a.join(`
212
212
  `)+(a.length>0?`
213
- `:"");let c=await Ke(e,t,n),{remaining:f,renames:l}=await ot(e,c),{fileStats:d,modeLines:m}=await Kn(e,f,l),u=0,h=0;for(let g of d)u+=g.insertions,h+=g.deletions;let p=zn(d.length,u,h);p&&a.push(p);for(let g of m)a.push(g);return a.join(`
213
+ `:"");let c=await Ve(e,t,n),{remaining:f,renames:l}=await it(e,c),{fileStats:d,modeLines:m}=await Zn(e,f,l),u=0,h=0;for(let g of d)u+=g.insertions,h+=g.deletions;let p=Xn(d.length,u,h);p&&a.push(p);for(let g of m)a.push(g);return a.join(`
214
214
  `)+(a.length>0?`
215
- `:"")}var lh=80;function dh(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 dr(e,t=lh){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=dh(p.path,c);let f=c,l=[],d=0,m=0,u=0;for(let p of e){let g=p.path.padEnd(f);if(p.isUnmerged){l.push(` ${g} | Unmerged`);continue}if(u++,d+=p.insertions,m+=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=H=>H===0?0:1+Math.floor(H*(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 E="+".repeat(x)+"-".repeat(b),k=E?` ${E}`:"";l.push(` ${g} | ${y}${k}`)}let h=zn(u,d,m);return h?l.push(h):e.some(p=>p.isUnmerged)&&l.push(" 0 files changed"),`${l.join(`
215
+ `:"")}var xh=80;function Ch(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 hr(e,t=xh){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=Ch(p.path,c);let f=c,l=[],d=0,m=0,u=0;for(let p of e){let g=p.path.padEnd(f);if(p.isUnmerged){l.push(` ${g} | Unmerged`);continue}if(u++,d+=p.insertions,m+=p.deletions,p.isBinary){let C=`${"Bin".padStart(s)} ${p.oldSize??0} -> ${p.newSize??0} bytes`;l.push(` ${g} | ${C}`);continue}let w=p.insertions+p.deletions,b=String(w).padStart(s),x,y;if(r<=a)x=p.insertions,y=p.deletions;else{let R=H=>H===0?0:1+Math.floor(H*(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),y=P-x):(y=R(p.deletions),x=P-y)}let k="+".repeat(x)+"-".repeat(y),E=k?` ${k}`:"";l.push(` ${g} | ${b}${E}`)}let h=Xn(u,d,m);return h?l.push(h):e.some(p=>p.isUnmerged)&&l.push(" 0 files changed"),`${l.join(`
216
216
  `)}
217
- `}async function dn(e,t,n){let r=await Ke(e,t,n),{remaining:o,renames:s}=await ot(e,r);if(o.length===0&&s.length===0)return"";let{fileStats:i,modeLines:a}=await Kn(e,o,s);i.sort((f,l)=>f.sortKey<l.sortKey?-1:f.sortKey>l.sortKey?1:0);let c=dr(i);for(let f of a)c+=`${f}
218
- `;return c}Be();Ce();ie();he();an();async function uh(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 xn(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 Ut(e,t,n){if(t===n)return[t];let r=await uh(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 xn(e,f,d)){l=!0;break}l||c.push(f)}return c.length<=1?c:mh(e,t,n,c)}async function mh(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(m){let u=c.get(m);if(u!==void 0)return u;let h=(await j(e,m)).committer.timestamp;return c.set(m,h),h}for(;l.length>0;){let m=0,u=await d(l[0].hash);for(let y=1;y<l.length;y++){let x=l[y],b=await d(x.hash),E=l[m];(b>u||b===u&&x.seq<E.seq)&&(m=y,u=b)}let h=l.splice(m,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 m of r)s.has(m)||i.push(m);return i}async function ur(e,t,n){let r=await Re(e,"init.defaultBranch")??"main";return n===r?`Merge branch '${t}'
217
+ `}async function mn(e,t,n){let r=await Ve(e,t,n),{remaining:o,renames:s}=await it(e,r);if(o.length===0&&s.length===0)return"";let{fileStats:i,modeLines:a}=await Zn(e,o,s);i.sort((f,l)=>f.sortKey<l.sortKey?-1:f.sortKey>l.sortKey?1:0);let c=hr(i);for(let f of a)c+=`${f}
218
+ `;return c}qe();Ce();ce();ge();fn();async function Ph(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 Pn(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 Ft(e,t,n){if(t===n)return[t];let r=await Ph(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 Pn(e,f,d)){l=!0;break}l||c.push(f)}return c.length<=1?c:$h(e,t,n,c)}async function $h(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(m){let u=c.get(m);if(u!==void 0)return u;let h=(await j(e,m)).committer.timestamp;return c.set(m,h),h}for(;l.length>0;){let m=0,u=await d(l[0].hash);for(let b=1;b<l.length;b++){let x=l[b],y=await d(x.hash),k=l[m];(y>u||y===u&&x.seq<k.seq)&&(m=b,u=y)}let h=l.splice(m,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 b of w.parents)l.push({hash:b,mask:g,seq:f++})}for(let m of r)s.has(m)||i.push(m);return i}async function pr(e,t,n){let r=await xe(e,"init.defaultBranch")??"main";return n===r?`Merge branch '${t}'
219
219
  `:`Merge branch '${t}' into ${n}
220
- `}async function xo(e,t,n){let r=await j(e,t),o=await j(e,n),s=Y(t),i=Y(n),a=`Updating ${s}..${i}
221
- `;if(e.workTree){let f=await V(e),l=await Bc(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 ce(e,{version:2,entries:l.newEntries}),await Ge(e,l.worktreeOps)}await An(e,n);let c=await dn(e,r.tree,o.tree);return{stdout:`${a}Fast-forward
222
- ${c}`,stderr:"",exitCode:0}}ie();We();he();function Sf(e,t){e.command("branch",{description:"List, create, or delete branches",args:[z.string().name("name").describe("Branch name").optional(),z.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:Z.string().alias("u").describe("Set upstream tracking branch"),verbose:$().alias("v").count().describe("Show hash and subject")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await Q(s),a=i?.type==="symbolic"?xe(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");if(!gn(y))return I(`'${y}' is not a valid branch name`);let x=`refs/heads/${w}`,b=`refs/heads/${y}`,E=await U(s,x);if(!E)return I(`no branch named '${w}'`);if(await Nt(s)&&(await bt(s))?.headName===x)return I(`branch ${x} is being rebased at ${s.workTree}`);let k=await U(s,b);if(k&&!c)return I(`a branch named '${y}' already exists`);k&&await me(s,b);let R=await et(s,x);await X(s,b,E),await me(s,x),w===a&&await Ve(s,"HEAD",b),R.length>0&&await Mn(s,b,R);let P=`Branch: renamed ${x} to ${b}`;if(await se(s,r.env,b,E,E,P),w===a){let D=await en(s,r.env);await Ye(s,"HEAD",{oldHash:E,newHash:te,...D,message:P}),await Ye(s,"HEAD",{oldHash:te,newHash:E,...D,message:P})}let C=await pe(s),H=`branch "${w}"`;return C[H]&&(C[`branch "${y}"`]=C[H],delete C[H],await Ze(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 Nt(s)&&(await bt(s))?.headName===`refs/heads/${n.name}`&&(w=!0),w)return L(`error: cannot delete branch '${n.name}' used by worktree at '${s.workTree}'
223
- `);let y=`refs/heads/${n.name}`,x=await U(s,y);if(!x)return L(`error: branch '${n.name}' not found
224
- `);let b="";if(!f){let E=await J(s),R=(await pe(s))[`branch "${n.name}"`],P=R?.remote,C=R?.merge,H=null,D=null;if(P&&C&&(H=C.replace(/^refs\/heads\//,`refs/remotes/${P}/`),D=await U(s,H)),D&&H){if(!(x===D||await xn(s,x,D))){let v=E!=null&&(x===E||await xn(s,x,E))?`warning: not deleting branch '${n.name}' that is not yet merged to
220
+ `}async function Co(e,t,n){let r=await j(e,t),o=await j(e,n),s=Y(t),i=Y(n),a=`Updating ${s}..${i}
221
+ `;if(e.workTree){let f=await z(e),l=await Kc(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 de(e,{version:2,entries:l.newEntries}),await Ne(e,l.worktreeOps)}await jn(e,n);let c=await mn(e,r.tree,o.tree);return{stdout:`${a}Fast-forward
222
+ ${c}`,stderr:"",exitCode:0}}ce();ze();ge();function Af(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:V.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"?Pe(i.target):null,c=!!n.forceMove;if(n.move||c){let w,b;if(n.newName)w=n.name,b=n.newName;else if(n.name){if(!a)return I("not on any branch");w=a,b=n.name}else return I("branch name required");if(!wn(b))return I(`'${b}' is not a valid branch name`);let x=`refs/heads/${w}`,y=`refs/heads/${b}`,k=await B(s,x);if(!k)return I(`no branch named '${w}'`);if(await Nt(s)&&(await Et(s))?.headName===x)return I(`branch ${x} is being rebased at ${s.workTree}`);let E=await B(s,y);if(E&&!c)return I(`a branch named '${b}' already exists`);E&&await he(s,y);let R=await et(s,x);await X(s,y,k),await he(s,x),w===a&&await Xe(s,"HEAD",y),R.length>0&&await Ln(s,y,R);let C=`Branch: renamed ${x} to ${y}`;if(await fe(s,r.env,y,k,k,C),w===a){let D=await en(s,r.env);await Ze(s,"HEAD",{oldHash:k,newHash:te,...D,message:C}),await Ze(s,"HEAD",{oldHash:te,newHash:k,...D,message:C})}let P=await we(s),H=`branch "${w}"`;return P[H]&&(P[`branch "${b}"`]=P[H],delete P[H],await Je(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 Nt(s)&&(await Et(s))?.headName===`refs/heads/${n.name}`&&(w=!0),w)return L(`error: cannot delete branch '${n.name}' used by worktree at '${s.workTree}'
223
+ `);let b=`refs/heads/${n.name}`,x=await B(s,b);if(!x)return L(`error: branch '${n.name}' not found
224
+ `);let y="";if(!f){let k=await Z(s),R=(await we(s))[`branch "${n.name}"`],C=R?.remote,P=R?.merge,H=null,D=null;if(C&&P&&(H=P.replace(/^refs\/heads\//,`refs/remotes/${C}/`),D=await B(s,H)),D&&H){if(!(x===D||await Pn(s,x,D))){let v=k!=null&&(x===k||await Pn(s,x,k))?`warning: not deleting branch '${n.name}' that is not yet merged to
225
225
  '${H}', even though it is merged to HEAD
226
226
  `:"";return L(`${v}error: the branch '${n.name}' is not fully merged
227
227
  hint: If you are sure you want to delete it, run 'git branch -D ${n.name}'
228
228
  hint: Disable this message with "git config set advice.forceDeleteBranch false"
229
- `)}E!=null&&(x===E||await xn(s,x,E))||(b=`warning: deleting branch '${n.name}' that has been merged to
229
+ `)}k!=null&&(x===k||await Pn(s,x,k))||(y=`warning: deleting branch '${n.name}' that has been merged to
230
230
  '${H}', but not yet merged to HEAD
231
- `)}else if(E&&x!==E&&!await xn(s,x,E))return L(`error: the branch '${n.name}' is not fully merged
231
+ `)}else if(k&&x!==k&&!await Pn(s,x,k))return L(`error: the branch '${n.name}' is not fully merged
232
232
  hint: If you are sure you want to delete it, run 'git branch -D ${n.name}'
233
233
  hint: Disable this message with "git config set advice.forceDeleteBranch false"
234
- `)}return await me(s,y),{stdout:`Deleted branch ${n.name} (was ${Y(x)}).
235
- `,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 U(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 E=w.slice(0,b),k=w.slice(b+1);if(!await U(s,`refs/remotes/${w}`))return I(`the requested upstream branch '${w}' does not exist`);let P=await pe(s),C=`branch "${y}"`;return P[C]||(P[C]={}),P[C].remote=E,P[C].merge=`refs/heads/${k}`,await Ze(s,P),{stdout:"",stderr:`branch '${y}' set up to track '${w}'.
236
- `,exitCode:0}}if(n.name&&!n.remotes&&!n.all){if(!gn(n.name))return I(`'${n.name}' is not a valid branch name`);let w=n.newName,y;if(w){let R=await Ae(s,w,`not a valid object name: '${w}'`);if(M(R))return R;y=R.hash}else if(y=await J(s),!y)return I("Not a valid object name: 'HEAD'.");let x=`refs/heads/${n.name}`;if(await U(s,x))return I(`a branch named '${n.name}' already exists`);await X(s,x,y);let E=w??"HEAD";await se(s,r.env,x,null,y,`branch: Created from ${E}`);let k="";return w&&(k=await po(s,n.name,w)),{stdout:"",stderr:k,exitCode:0}}let l=n.verbose||0,d=!n.remotes||n.all,m=n.remotes||n.all,u=[];if(d&&!a){let w=await J(s);if(w){let y=await Nt(s),x;if(y){let b=await bt(s);if(b?.headName){let E=xe(b.headName);if(E==="detached HEAD"){let k=await fs(s);x=`(no branch, rebasing detached HEAD ${k?Y(k):"(null)"})`}else x=`(no branch, rebasing ${E})`}else x="(no branch)"}else{let b=await fs(s);b?x=`(HEAD detached ${w===b?"at":"from"} ${Y(b)})`:x="(no branch)"}u.push({displayName:x,hash:w,isCurrent:!0,branchName:null})}}if(d){let w=await we(s,"refs/heads");for(let y of w){let x=xe(y.name);u.push({displayName:x,hash:y.hash,isCurrent:x===a,branchName:x})}}if(m){let w=await we(s,"refs/remotes");for(let y of w){let x=y.name.replace("refs/remotes/","");u.push({displayName:n.all?`remotes/${x}`:x,hash:y.hash,isCurrent:!1,branchName:null})}}if(u.length===0)return{stdout:"",stderr:"",exitCode:0};if(l===0)return{stdout:`${u.map(y=>y.isCurrent?`* ${y.displayName}`:` ${y.displayName}`).join(`
234
+ `)}return await he(s,b),{stdout:`Deleted branch ${n.name} (was ${Y(x)}).
235
+ `,stderr:y,exitCode:0}}if(n.setUpstreamTo){let w=n.setUpstreamTo,b=n.name||a;if(!b)return I("could not set upstream of HEAD when it does not point to any branch.");if(!await B(s,`refs/heads/${b}`))return I(`branch '${b}' does not exist`);let y=w.indexOf("/");if(y<0)return I(`the requested upstream branch '${w}' does not exist`);let k=w.slice(0,y),E=w.slice(y+1);if(!await B(s,`refs/remotes/${w}`))return I(`the requested upstream branch '${w}' does not exist`);let C=await we(s),P=`branch "${b}"`;return C[P]||(C[P]={}),C[P].remote=k,C[P].merge=`refs/heads/${E}`,await Je(s,C),{stdout:"",stderr:`branch '${b}' set up to track '${w}'.
236
+ `,exitCode:0}}if(n.name&&!n.remotes&&!n.all){if(!wn(n.name))return I(`'${n.name}' is not a valid branch name`);let w=n.newName,b;if(w){let R=await Me(s,w,`not a valid object name: '${w}'`);if(M(R))return R;b=R.hash}else if(b=await Z(s),!b)return I("Not a valid object name: 'HEAD'.");let x=`refs/heads/${n.name}`;if(await B(s,x))return I(`a branch named '${n.name}' already exists`);await X(s,x,b);let k=w??"HEAD";await fe(s,r.env,x,null,b,`branch: Created from ${k}`);let E="";return w&&(E=await go(s,n.name,w)),{stdout:"",stderr:E,exitCode:0}}let l=n.verbose||0,d=!n.remotes||n.all,m=n.remotes||n.all,u=[];if(d&&!a){let w=await Z(s);if(w){let b=await Nt(s),x;if(b){let y=await Et(s);if(y?.headName){let k=Pe(y.headName);if(k==="detached HEAD"){let E=await ls(s);x=`(no branch, rebasing detached HEAD ${E?Y(E):"(null)"})`}else x=`(no branch, rebasing ${k})`}else x="(no branch)"}else{let y=await ls(s);y?x=`(HEAD detached ${w===y?"at":"from"} ${Y(y)})`:x="(no branch)"}u.push({displayName:x,hash:w,isCurrent:!0,branchName:null})}}if(d){let w=await pe(s,"refs/heads");for(let b of w){let x=Pe(b.name);u.push({displayName:x,hash:b.hash,isCurrent:x===a,branchName:x})}}if(m){let w=await pe(s,"refs/remotes");for(let b of w){let x=b.name.replace("refs/remotes/","");u.push({displayName:n.all?`remotes/${x}`:x,hash:b.hash,isCurrent:!1,branchName:null})}}if(u.length===0)return{stdout:"",stderr:"",exitCode:0};if(l===0)return{stdout:`${u.map(b=>b.isCurrent?`* ${b.displayName}`:` ${b.displayName}`).join(`
237
237
  `)}
238
- `,stderr:"",exitCode:0};let h=l>=1?await pe(s):null,p=Math.max(...u.map(w=>w.displayName.length)),g=[];for(let w of u){let y=w.isCurrent?"* ":" ",x=w.displayName.padEnd(p),b=Y(w.hash),E="";try{let R=await j(s,w.hash);E=le(R.message)}catch{}let k="";if(h&&w.branchName){let R=await kn(s,h,w.branchName);if(R){let P=lf(R,l>=2);P&&(k=` ${P}`)}}g.push(`${y}${x} ${b}${k} ${E}`)}return{stdout:`${g.join(`
238
+ `,stderr:"",exitCode:0};let h=l>=1?await we(s):null,p=Math.max(...u.map(w=>w.displayName.length)),g=[];for(let w of u){let b=w.isCurrent?"* ":" ",x=w.displayName.padEnd(p),y=Y(w.hash),k="";try{let R=await j(s,w.hash);k=ue(R.message)}catch{}let E="";if(h&&w.branchName){let R=await Rn(s,h,w.branchName);if(R){let C=hf(R,l>=2);C&&(E=` ${C}`)}}g.push(`${b}${x} ${y}${E} ${k}`)}return{stdout:`${g.join(`
239
239
  `)}
240
- `,stderr:"",exitCode:0}}})}function ee(e){return e!=null&&typeof e=="object"&&"reject"in e&&e.reject===!0}var hh=["preCommit","preMergeCommit","preCheckout","prePush","preFetch","preClone","prePull","preRebase","preReset","preClean","preRm","preCherryPick","preRevert","preStash","beforeCommand"],ph=["commitMsg","mergeMsg"],gh=["postCommit","postMerge","postCheckout","postPush","postFetch","postClone","postPull","postReset","postClean","postRm","postCherryPick","postRevert","postStash","afterCommand"],wh=["onRefUpdate","onRefDelete","onObjectWrite"];function bh(...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 hh){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 ph){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 gh){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 wh){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}oe();Be();Ce();ie();We();he();wn();st();function Tf(e,t){e.command("checkout",{description:"Switch branches or restore working tree files",args:[z.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 q(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 m=dt(i,r.cwd),u=o.passthrough,h=null;if(a){if(n.ours||n.theirs)return I("cannot specify both a revision and --ours/--theirs");let p=await Ae(i,a,`invalid reference: ${a}`);if(M(p))return p;h=p.commit.tree}return n.ours||n.theirs?mo(i,u,m,n.theirs?3:2):uo(i,u,m,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?Eh(i,a,r.env,t):I("you must specify a branch to checkout");if(n.detach){let m=a??"HEAD",u=await Ae(i,m,`invalid reference: ${m}`);return M(u)?u:vf(i,m,u.hash,r.env,t)}if(!a)return I("you must specify a branch to checkout");if(n.branch||n.forceBranch)return kh(i,a,r.env,t,!!n.forceBranch);if(a==="-")return yh(i,r.env,t);let c=`refs/heads/${a}`,f=await U(i,c);if(f)return Hf(i,a,c,f,r.env,t);let l=await go(i,a);if(l)return Rh(i,a,l.trackingRef,r.env,t);let d=await ze(i,a);if(d){let m=await je(i,d);return vf(i,a,m,r.env,t)}if(i.workTree){let m=await V(i),u=js(m,a);if(u)return await lt(i,{path:u.path,hash:u.hash,mode:u.mode}),{stdout:"",stderr:"",exitCode:0}}return L(`error: pathspec '${a}' did not match any file(s) known to git
241
- `)}})}async function yh(e,t,n){let r=await lo(e);return r?Hf(e,r.name,r.refName,r.hash,t,n):I("no previous branch")}async function Eh(e,t,n,r){if(!gn(t))return I(`'${t}' is not a valid branch name`);let o=`refs/heads/${t}`;if(await U(e,o))return I(`a branch named '${t}' already exists`);let i=await V(e),a=Fn(i);if(a)return a;let c=await J(e),f=null;c&&(f=(await j(e,c)).tree),await Ve(e,"HEAD",o),await wt(e);let l=await Rn(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:c,newHead:te,isBranchCheckout:!0});let d="";return f&&(d=await fr(e,f,i)),{stdout:d,stderr:`Switched to a new branch '${t}'
242
- ${l}`,exitCode:0}}async function kh(e,t,n,r,o=!1){if(!gn(t))return I(`'${t}' is not a valid branch name`);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 J(e),c=`refs/heads/${t}`,f=await U(e,c);if(f&&!o)return I(`a branch named '${t}' already exists`);if(o){let g=await V(e),w=Fn(g);if(w)return w}a&&await X(e,c,a),await Ve(e,"HEAD",c),await wt(e);let l=await Rn(e),d=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):a??te;a&&(f?f!==a&&await se(e,n,c,f,a,"branch: Reset to HEAD"):await se(e,n,c,null,a,"branch: Created from HEAD")),await se(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 m="";if(o&&a){let g=await V(e),w=await j(e,a);m=await fr(e,w.tree,g)}let u=await pe(e),h=await kn(e,u,t);h&&(m+=cr(h));let p=f?`Switched to and reset branch '${t}'
240
+ `,stderr:"",exitCode:0}}})}function ee(e){return e!=null&&typeof e=="object"&&"reject"in e&&e.reject===!0}var Oh=["preCommit","preMergeCommit","preCheckout","prePush","preFetch","preClone","prePull","preRebase","preReset","preClean","preRm","preCherryPick","preRevert","preStash","beforeCommand"],Ih=["commitMsg","mergeMsg"],Sh=["postCommit","postMerge","postCheckout","postPush","postFetch","postClone","postPull","postReset","postClean","postRm","postCherryPick","postRevert","postStash","afterCommand"],vh=["onRefUpdate","onRefDelete","onObjectWrite"];function Th(...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 Oh){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 Ih){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 Sh){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 vh){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}ie();qe();Ce();ce();ze();ge();sn();tt();function Mf(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 m=ut(i,r.cwd),u=o.passthrough,h=null;if(a){if(n.ours||n.theirs)return I("cannot specify both a revision and --ours/--theirs");let p=await Me(i,a,`invalid reference: ${a}`);if(M(p))return p;h=p.commit.tree}return n.ours||n.theirs?ho(i,u,m,n.theirs?3:2):mo(i,u,m,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?Ah(i,a,r.env,t):I("you must specify a branch to checkout");if(n.detach){let m=a??"HEAD",u=await Me(i,m,`invalid reference: ${m}`);return M(u)?u:Df(i,m,u.hash,r.env,t)}if(!a)return I("you must specify a branch to checkout");if(n.branch||n.forceBranch)return Dh(i,a,r.env,t,!!n.forceBranch);if(a==="-")return Hh(i,r.env,t);let c=`refs/heads/${a}`,f=await B(i,c);if(f)return jf(i,a,c,f,r.env,t);let l=await wo(i,a);if(l)return Mh(i,a,l.trackingRef,r.env,t);let d=await Be(i,a);if(d){let m=await Te(i,d);return Df(i,a,m,r.env,t)}if(i.workTree){let m=await z(i),u=Gs(m,a);if(u)return await dt(i,{path:u.path,hash:u.hash,mode:u.mode}),{stdout:"",stderr:"",exitCode:0}}return L(`error: pathspec '${a}' did not match any file(s) known to git
241
+ `)}})}async function Hh(e,t,n){let r=await uo(e);return r?jf(e,r.name,r.refName,r.hash,t,n):I("no previous branch")}async function Ah(e,t,n,r){if(!wn(t))return I(`'${t}' is not a valid branch name`);let o=`refs/heads/${t}`;if(await B(e,o))return I(`a branch named '${t}' already exists`);let i=await z(e),a=qn(i);if(a)return a;let c=await Z(e),f=null;c&&(f=(await j(e,c)).tree),await Xe(e,"HEAD",o),await yt(e);let l=await xn(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:c,newHead:te,isBranchCheckout:!0});let d="";return f&&(d=await ur(e,f,i)),{stdout:d,stderr:`Switched to a new branch '${t}'
242
+ ${l}`,exitCode:0}}async function Dh(e,t,n,r,o=!1){if(!wn(t))return I(`'${t}' is not a valid branch name`);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 B(e,c);if(f&&!o)return I(`a branch named '${t}' already exists`);if(o){let g=await z(e),w=qn(g);if(w)return w}a&&await X(e,c,a),await Xe(e,"HEAD",c),await yt(e);let l=await xn(e),d=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):a??te;a&&(f?f!==a&&await fe(e,n,c,f,a,"branch: Reset to HEAD"):await fe(e,n,c,null,a,"branch: Created from HEAD")),await fe(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 m="";if(o&&a){let g=await z(e),w=await j(e,a);m=await ur(e,w.tree,g)}let u=await we(e),h=await Rn(e,u,t);h&&(m+=dr(h));let p=f?`Switched to and reset branch '${t}'
243
243
  `:`Switched to a new branch '${t}'
244
- `;return{stdout:m,stderr:`${p}${l}`,exitCode:0}}async function Hf(e,t,n,r,o,s){let i=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"switch"});return ee(i)?L(i.message??""):lr(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 U(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 pe(e);d[`branch "${t}"`]={...d[`branch "${t}"`],remote:f,merge:l},await Ze(e,d),await se(e,r,a,null,i,`branch: Created from ${n}`);let m=await lr(e,t,a,i,r,o),u=c.slice(1).join("/");return m.stderr=`branch '${t}' set up to track '${f}/${u}'.
245
- ${m.stderr}`,m}async function vf(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"detach"});return ee(s)?L(s.message??""):Un(e,n,r,o,{detachAdviceTarget:t})}oe();Be();Ce();oe();function Wi(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}=Ui(e,t);return xh(o,n,s,r)}function xh(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 Ch(e,t,n){let r=[];for(let c of Wi(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 Wi(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 m=r[a];if(m.oStart>l)break;l=Math.max(l,m.oStart+m.oLength),d.push(m),a++}if(d.length===1){if(c.abLength>0){let m=c.ab==="a"?e:n;o.push({stable:!0,buffer:c.ab,bufferStart:c.abStart,bufferLength:c.abLength,content:m.slice(c.abStart,c.abStart+c.abLength)})}}else{let m={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,E=b+w.abLength,k=m[w.ab];k.abMin=Math.min(b,k.abMin),k.abMax=Math.max(E,k.abMax),k.oMin=Math.min(y,k.oMin),k.oMax=Math.max(x,k.oMax)}let u=m.a.abMin+(f-m.a.oMin),h=m.a.abMax+(l-m.a.oMax),p=m.b.abMin+(f-m.b.oMin),g=m.b.abMax+(l-m.b.oMax);o.push({stable:!1,a:e.slice(u,h),o:t.slice(f,l),b:n.slice(p,g)})}s=l}return i(t.length),o}function Ph(e,t,n,r){let o=r?.excludeFalseConflicts??!0,s=Ch(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&&Df(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"?Af(i):Af($h(i))}function hs(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=Ph(e,t,n,{conflictStyle:s}),d=!1,m=[];for(let u of l)u.type==="ok"?m.push(...u.lines):(d=!0,s==="diff3"?m.push(i,...u.a,a,...u.o,c,...u.b,f):m.push(i,...u.a,c,...u.b,f));return{conflict:d,result:m}}function $h(e){let t=[];for(let n of e)n.type==="ok"?t.push(n):t.push(...Oh(n));return t}function Oh(e){let{a:t,b:n}=e;if(t.length===0||n.length===0)return[e];if(Df(t,n))return[e];let r=Wi(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 Af(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 mr(e,t,n,r){let o=hs(It(e),It(t),It(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(qi);return(a[a.length-1]??"").startsWith(">>>>>>>")||!i?`${a.join(`
244
+ `;return{stdout:m,stderr:`${p}${l}`,exitCode:0}}async function jf(e,t,n,r,o,s){let i=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"switch"});return ee(i)?L(i.message??""):mr(e,t,n,r,o,s)}async function Mh(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 B(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 we(e);d[`branch "${t}"`]={...d[`branch "${t}"`],remote:f,merge:l},await Je(e,d),await fe(e,r,a,null,i,`branch: Created from ${n}`);let m=await mr(e,t,a,i,r,o),u=c.slice(1).join("/");return m.stderr=`branch '${t}' set up to track '${f}/${u}'.
245
+ ${m.stderr}`,m}async function Df(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"detach"});return ee(s)?L(s.message??""):zn(e,n,r,o,{detachAdviceTarget:t})}ie();qe();Ce();ie();function Vi(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}=zi(e,t);return jh(o,n,s,r)}function jh(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 Gh(e,t,n){let r=[];for(let c of Vi(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 Vi(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 m=r[a];if(m.oStart>l)break;l=Math.max(l,m.oStart+m.oLength),d.push(m),a++}if(d.length===1){if(c.abLength>0){let m=c.ab==="a"?e:n;o.push({stable:!0,buffer:c.ab,bufferStart:c.abStart,bufferLength:c.abLength,content:m.slice(c.abStart,c.abStart+c.abLength)})}}else{let m={a:{abMin:e.length,abMax:-1,oMin:t.length,oMax:-1},b:{abMin:n.length,abMax:-1,oMin:t.length,oMax:-1}};for(let w of d){let b=w.oStart,x=b+w.oLength,y=w.abStart,k=y+w.abLength,E=m[w.ab];E.abMin=Math.min(y,E.abMin),E.abMax=Math.max(k,E.abMax),E.oMin=Math.min(b,E.oMin),E.oMax=Math.max(x,E.oMax)}let u=m.a.abMin+(f-m.a.oMin),h=m.a.abMax+(l-m.a.oMax),p=m.b.abMin+(f-m.b.oMin),g=m.b.abMax+(l-m.b.oMax);o.push({stable:!1,a:e.slice(u,h),o:t.slice(f,l),b:n.slice(p,g)})}s=l}return i(t.length),o}function Lh(e,t,n,r){let o=r?.excludeFalseConflicts??!0,s=Gh(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&&Lf(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"?Gf(i):Gf(Nh(i))}function ps(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=Lh(e,t,n,{conflictStyle:s}),d=!1,m=[];for(let u of l)u.type==="ok"?m.push(...u.lines):(d=!0,s==="diff3"?m.push(i,...u.a,a,...u.o,c,...u.b,f):m.push(i,...u.a,c,...u.b,f));return{conflict:d,result:m}}function Nh(e){let t=[];for(let n of e)n.type==="ok"?t.push(n):t.push(..._h(n));return t}function _h(e){let{a:t,b:n}=e;if(t.length===0||n.length===0)return[e];if(Lf(t,n))return[e];let r=Vi(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 Gf(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 gr(e,t,n,r){let o=ps(St(e),St(t),St(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(Yi);return(a[a.length-1]??"").startsWith(">>>>>>>")||!i?`${a.join(`
246
246
  `)}
247
247
  `:a.join(`
248
- `)}function It(e){if(e==="")return[];let t=e.split(`
249
- `);if(t[t.length-1]==="")t.pop();else{let n=t[t.length-1]??"";t[t.length-1]=`${n}\0`}return t}function qi(e){return e.endsWith("\0")?e.slice(0,-1):e}function Df(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();hn();ue();er();ve();st();an();var Sr=new TextDecoder,Vn=new TextEncoder,Mf={name:"virtual",email:"virtual@merge",timestamp:0,timezone:"+0000"};async function Bt(e,t,n,r,o){let{paths:s,baseMap:i,oursMap:a,theirsMap:c}=await Sh(e,t,n,r),f=await Th(e,s,i,a,c,o);return Hh(e,s,o,f)}async function gs(e,t,n,r){let o=await Ut(e,t,n),s=await j(e,t),i=await j(e,n);if(o.length===0)return{...await Bt(e,null,s.tree,i.tree,r),baseTree:null};if(o.length===1){let f=await j(e,o[0]);return{...await Bt(e,f.tree,s.tree,i.tree,r),baseTree:f.tree}}let a=await Wf(e,t,n,o,1);return{...await Bt(e,a,s.tree,i.tree,r),baseTree:a}}async function Sh(e,t,n,r){let o=await fe(e,t),s=await fe(e,n),i=await fe(e,r),a=new Set;for(let f of o.keys())a.add(f);for(let f of s.keys())a.add(f);for(let f of i.keys())a.add(f);let c=new Map;for(let f of a){let l=o.get(f)??null,d=s.get(f)??null,m=i.get(f)??null,u=l?{hash:l.hash,mode:l.mode}:null,h=d?{hash:d.hash,mode:d.mode}:null,p=m?{hash:m.hash,mode:m.mode}:null,g=(l?1:0)|(d?2:0)|(m?4:0),w=l?.hash??null,y=d?.hash??null,x=m?.hash??null,b=0;w!==null&&w===y&&(b|=3),w!==null&&w===x&&(b|=5),y!==null&&y===x&&(b|=6);let E={path:f,stages:[u,h,p],pathnames:[f,f,f],filemask:g,matchMask:b,merged:{result:null,clean:!1},pathConflict:!1};if(vh(E)){c.set(f,E);continue}c.set(f,E)}return{paths:c,baseMap:o,oursMap:s,theirsMap:i}}function vh(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 Th(e,t,n,r,o,s){let i={entries:[],conflicts:[],msgBuf:[],worktreeBlobs:new Map},a=[],c=[];for(let[v,T]of n)r.has(v)||a.push({path:v,status:"deleted",oldHash:T.hash,oldMode:T.mode}),o.has(v)||c.push({path:v,status:"deleted",oldHash:T.hash,oldMode:T.mode});for(let[v,T]of r)n.has(v)||a.push({path:v,status:"added",newHash:T.hash,newMode:T.mode});for(let[v,T]of o)n.has(v)||c.push({path:v,status:"added",newHash:T.hash,newMode:T.mode});let f=await ot(e,a),l=await ot(e,c);if(f.renames.length===0&&l.renames.length===0)return i;let d=new Map,m=new Map;for(let v of f.renames)d.set(v.oldPath,v);for(let v of l.renames)m.set(v.oldPath,v);let u=new Set;for(let[v]of r)!n.has(v)&&o.has(v)&&u.add(v);let h=new Set,p=s?.a??"HEAD",g=s?.b??"theirs";function w(v,T,_=0){i.msgBuf.push({sortKey:v,subOrder:_,text:T})}for(let v of[...n.keys()].sort()){let T=d.get(v),_=m.get(v);if(!T&&!_)continue;let B=n.get(v);if(h.add(v),T&&_)if(h.add(T.newPath),h.add(_.newPath),T.newPath===_.newPath){let W=r.get(T.newPath),N=o.get(_.newPath);if(W.hash===N.hash)i.entries.push(kt(T.newPath,W));else{let F=zi(t,T.newPath);F.stages=[{hash:B.hash,mode:B.mode},{hash:W.hash,mode:W.mode},{hash:N.hash,mode:N.mode}],F.pathnames=[v,T.newPath,_.newPath],F.filemask=7,F.merged={result:null,clean:!1}}}else{let W=r.get(T.newPath),N=o.get(_.newPath),F=await Bf(e,B,W,N,s);F.conflict&&w(v,`Auto-merging ${v}`,-1),i.conflicts.push({path:v,reason:"rename-rename",oursPath:T.newPath,theirsPath:_.newPath}),w(v,`CONFLICT (rename/rename): ${v} renamed to ${T.newPath} in ${p} and to ${_.newPath} in ${g}.`),i.entries.push(kt(v,B,1)),i.entries.push(ct(T.newPath,W.mode,F.hash,2)),i.entries.push(ct(_.newPath,N.mode,F.hash,3)),i.worktreeBlobs.set(T.newPath,{hash:F.hash,mode:W.mode}),i.worktreeBlobs.set(_.newPath,{hash:F.hash,mode:N.mode})}else if(T){h.add(T.newPath);let W=o.get(v),N=r.get(T.newPath),F=u.has(T.newPath);if(W)if(F)await Ff(e,i,T.newPath,v,B,N,W,r,o,!1,s);else if(W.hash===B.hash&&N.hash===B.hash)i.entries.push(kt(T.newPath,N));else if(W.hash===B.hash)i.entries.push(kt(T.newPath,N));else if(N.hash===B.hash)i.entries.push(ct(T.newPath,N.mode,W.hash));else{let K=zi(t,T.newPath);K.stages=[{hash:B.hash,mode:B.mode},{hash:N.hash,mode:N.mode},{hash:W.hash,mode:W.mode}],K.pathnames=[v,T.newPath,v],K.filemask=7,K.merged={result:null,clean:!1}}else{let K=o.get(T.newPath);if(i.conflicts.push({path:T.newPath,reason:"rename-delete",deletedBy:"theirs",oldPath:v}),w(T.newPath,`CONFLICT (rename/delete): ${v} renamed to ${T.newPath} in ${p}, but deleted in ${g}.`),K){i.conflicts.push({path:T.newPath,reason:"add-add"}),w(T.newPath,`Auto-merging ${T.newPath}`,0),w(T.newPath,`CONFLICT (add/add): Merge conflict in ${T.newPath}`,1),i.entries.push(kt(T.newPath,N,2)),i.entries.push(kt(T.newPath,K,3));let de=await Co(e,N.hash,K.hash,N.mode,s);i.worktreeBlobs.set(T.newPath,{hash:de,mode:N.mode})}else i.entries.push(ct(T.newPath,B.mode,B.hash,1)),i.entries.push(kt(T.newPath,N,2)),i.worktreeBlobs.set(T.newPath,{hash:N.hash,mode:N.mode}),N.hash!==B.hash&&w(T.newPath,`CONFLICT (modify/delete): ${T.newPath} deleted in ${g} and modified in ${p}. Version ${p} of ${T.newPath} left in tree.`,1)}}else if(_){h.add(_.newPath);let W=r.get(v),N=o.get(_.newPath),F=u.has(_.newPath);if(W)if(F)await Ff(e,i,_.newPath,v,B,W,N,r,o,!0,s);else if(W.hash===B.hash&&N.hash===B.hash)i.entries.push(kt(_.newPath,N));else if(W.hash===B.hash)i.entries.push(kt(_.newPath,N));else if(N.hash===B.hash)i.entries.push(ct(_.newPath,N.mode,W.hash));else{let K=zi(t,_.newPath);K.stages=[{hash:B.hash,mode:B.mode},{hash:W.hash,mode:W.mode},{hash:N.hash,mode:N.mode}],K.pathnames=[v,v,_.newPath],K.filemask=7,K.merged={result:null,clean:!1}}else{let K=r.get(_.newPath);if(i.conflicts.push({path:_.newPath,reason:"rename-delete",deletedBy:"ours",oldPath:v}),w(_.newPath,`CONFLICT (rename/delete): ${v} renamed to ${_.newPath} in ${g}, but deleted in ${p}.`),K){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(kt(_.newPath,K,2)),i.entries.push(kt(_.newPath,N,3));let de=await Co(e,K.hash,N.hash,K.mode,s);i.worktreeBlobs.set(_.newPath,{hash:de,mode:K.mode})}else i.entries.push(ct(_.newPath,B.mode,B.hash,1)),i.entries.push(kt(_.newPath,N,3)),i.worktreeBlobs.set(_.newPath,{hash:N.hash,mode:N.mode}),N.hash!==B.hash&&w(_.newPath,`CONFLICT (modify/delete): ${_.newPath} deleted in ${p} and modified in ${g}. Version ${g} of ${_.newPath} left in tree.`,1)}}}let y=new Set(f.renames.map(v=>v.newPath)),x=new Set(l.renames.map(v=>v.newPath)),b=jf(n,r),E=jf(n,o),k=Gf(b,o,n),R=Gf(E,r,n),P=Lf(f.renames,k),C=Lf(l.renames,R),H=Nf(P),D=Nf(C);for(let v of[...H.keys()])D.has(v)&&(H.delete(v),D.delete(v));let O=new Set(H.keys()),A=new Set(D.keys());if(D.size>0)for(let v of a){if(v.status!=="added"||y.has(v.path))continue;let T=_f(v.path,D,O);if(!T)continue;if(t.has(T)||n.has(T)||r.has(T)||o.has(T)){if(r.has(T)){w(T,`CONFLICT (implicit dir rename): Existing file/dir at ${T} in the way of implicit directory rename(s) putting the following path(s) there: ${v.path}.`,1);continue}let W=r.get(v.path),N=o.get(T)??n.get(T);i.entries.push(ct(T,W.mode,W.hash,2)),N&&i.entries.push(ct(T,N.mode,N.hash,3)),i.worktreeBlobs.set(T,{hash:W.hash,mode:W.mode}),i.conflicts.push({path:T,reason:"add-add"}),w(T,`CONFLICT (file location): ${v.path} added in ${p} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${T}.`,1);let F=t.get(v.path);F&&(F.merged={result:null,clean:!0}),h.add(v.path);continue}let _=r.get(v.path);i.entries.push(ct(T,_.mode,_.hash,2)),i.worktreeBlobs.set(T,{hash:_.hash,mode:_.mode}),i.conflicts.push({path:T,reason:"directory-rename"}),w(T,`CONFLICT (file location): ${v.path} added in ${p} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${T}.`,1);let B=t.get(v.path);B&&(B.merged={result:null,clean:!0}),h.add(v.path)}if(H.size>0)for(let v of c){if(v.status!=="added"||x.has(v.path))continue;let T=_f(v.path,H,A);if(!T)continue;if(t.has(T)||n.has(T)||r.has(T)||o.has(T)){if(o.has(T)){w(T,`CONFLICT (implicit dir rename): Existing file/dir at ${T} in the way of implicit directory rename(s) putting the following path(s) there: ${v.path}.`,1);continue}let W=o.get(v.path),N=r.get(T)??n.get(T);N&&i.entries.push(ct(T,N.mode,N.hash,2)),i.entries.push(ct(T,W.mode,W.hash,3)),i.worktreeBlobs.set(T,{hash:W.hash,mode:W.mode}),i.conflicts.push({path:T,reason:"add-add"}),w(T,`CONFLICT (file location): ${v.path} added in ${g} inside a directory that was renamed in ${p}, suggesting it should perhaps be moved to ${T}.`,1);let F=t.get(v.path);F&&(F.merged={result:null,clean:!0}),h.add(v.path);continue}let _=o.get(v.path);i.entries.push(ct(T,_.mode,_.hash,3)),i.worktreeBlobs.set(T,{hash:_.hash,mode:_.mode}),i.conflicts.push({path:T,reason:"directory-rename"}),w(T,`CONFLICT (file location): ${v.path} added in ${g} inside a directory that was renamed in ${p}, suggesting it should perhaps be moved to ${T}.`,1);let B=t.get(v.path);B&&(B.merged={result:null,clean:!0}),h.add(v.path)}let G=new Set(i.entries.map(v=>v.path));for(let v of G){let T=t.get(v);T&&(T.merged={result:null,clean:!0})}for(let v of h){if(G.has(v))continue;let T=t.get(v);if(!T||T.merged.clean)continue;T.filemask===7&&!T.pathConflict||(T.merged={result:null,clean:!0})}return i}function jf(e,t){let n=new Set;for(let s of e.keys()){let i=St(s);for(;i;)n.add(i),i=St(i)}let r=new Set;for(let s of t.keys()){let i=St(s);for(;i;)r.add(i),i=St(i)}let o=new Set;for(let s of n)r.has(s)||o.add(s);return o}function Gf(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=St(o)??"";e.has(s)&&r.add(s)}for(let o of[...r]){let s=St(o);for(;s;)e.has(s)&&!r.has(s)&&r.add(s),s=St(s)}return r}function Lf(e,t){let n=new Map;for(let r of e){let o=St(r.oldPath),s=St(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=St(o),s=St(s)}}return n}function Nf(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=St(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=St(r)}let o=t.get("");return o!==void 0&&!n.has(o)?`${o}/${e}`:null}function St(e){let t=e.lastIndexOf("/");return t===-1?"":e.slice(0,t)}async function Ff(e,t,n,r,o,s,i,a,c,f=!1,l){let d=f?a.get(n):c.get(n),m=f?i:s;if(d.hash===m.hash){t.entries.push(ct(n,d.mode,d.hash)),t.msgBuf.push({sortKey:r,subOrder:0,text:`Auto-merging ${r}`});return}let h=await Bf(e,o,s,i,l,f?{oursPath:r,theirsPath:n}:{oursPath:n,theirsPath:r},8);if(d.hash===h.hash)t.entries.push(ct(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(kt(n,d,2)),t.entries.push(ct(n,i.mode,h.hash,3));let p=await Co(e,d.hash,h.hash,d.mode,l);t.worktreeBlobs.set(n,{hash:p,mode:d.mode})}else{t.entries.push(ct(n,s.mode,h.hash,2)),t.entries.push(kt(n,d,3));let p=await Co(e,h.hash,d.hash,s.mode,l);t.worktreeBlobs.set(n,{hash:p,mode:s.mode})}}async function Bf(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(bn(t.mode)||bn(n.mode)||bn(r.mode))return{hash:n.hash,conflict:!0};let a=await re(e,t.hash),c=await re(e,n.hash),f=await re(e,r.hash);if($e(c)||$e(f)||$e(a))return{hash:n.hash,conflict:!0};let l=It(a),d=It(c),m=It(f),u=o?.conflictStyle,h=hs(d,l,m,{conflictStyle:u});if(!h.conflict)return{hash:await Vi(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=mr(c,a,f,{a:w,b:y,markerSize:i??7,conflictStyle:u});return{hash:await Se(e,"blob",Vn.encode(x)),conflict:!0}}async function Co(e,t,n,r,o){let s=await re(e,t),i=await re(e,n),a=mr(s,"",i,{a:o?.a??"HEAD",b:o?.b??"theirs",conflictStyle:o?.conflictStyle});return Se(e,"blob",Vn.encode(a))}function kt(e,t,n=0){return ct(e,t.mode,t.hash,n)}function ct(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(u,h,p=0){i.push({sortKey:u,subOrder:p,text:h})}for(let u of[...t.keys()].sort()){let h=t.get(u);if(h.merged.clean){h.merged.result?.hash&&o.push(Le(u,h.merged.result.hash,h.merged.result.mode));continue}await Ah(e,h,n,o,s,c,a)}i.sort((u,h)=>(u.sortKey<h.sortKey?-1:u.sortKey>h.sortKey?1:0)||u.subOrder-h.subOrder);let f=i.map(u=>u.text),l=[],d=new Set;for(let u of o)u.stage===0&&(l.push(u),d.add(u.path));for(let[u,h]of a)d.has(u)||l.push(Le(u,h.hash,h.mode));l.sort((u,h)=>Oe(u.path,h.path));let m=await Ne(e,l);return{entries:o,conflicts:s,messages:f,resultTree:m}}async function Ah(e,t,n,r,o,s,i){let a=t.path,[c,f,l]=t.stages,d=c?.hash??null,m=f?.hash??null,u=l?.hash??null;if(m===null&&u!==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(Le(a,d,c.mode,1)),r.push(Le(a,u,l.mode,3)),i.set(a,{hash:u,mode:l.mode});return}if(u===null&&m!==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(Le(a,d,c.mode,1)),r.push(Le(a,m,f.mode,2)),i.set(a,{hash:m,mode:f.mode});return}if(d===null&&m!==null&&u!==null){if(m===u){r.push(Le(a,m,f.mode));return}s(a,`Auto-merging ${a}`,0);let h=await re(e,m),p=await re(e,u);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(Le(a,m,f.mode,2)),r.push(Le(a,u,l.mode,3)),i.set(a,{hash:m,mode:f.mode});return}let g=It(""),w=It(h),y=It(p),x=hs(w,g,y,{conflictStyle:n?.conflictStyle});if(!x.conflict){let k=await Vi(e,x.result);r.push(Le(a,k,f.mode));return}o.push({path:a,reason:"add-add"}),s(a,`CONFLICT (add/add): Merge conflict in ${a}`,1),r.push(Le(a,m,f.mode,2)),r.push(Le(a,u,l.mode,3));let b=mr(h,"",p,{a:n?.a??"HEAD",b:n?.b??"theirs",conflictStyle:n?.conflictStyle}),E=await Se(e,"blob",Vn.encode(b));i.set(a,{hash:E,mode:f.mode});return}if(d!==null&&m!==null&&u!==null){if(m===d){r.push(Le(a,u,l.mode));return}if(u===d){r.push(Le(a,m,f.mode));return}if(m===u){r.push(Le(a,m,f.mode));return}if(s(a,`Auto-merging ${a}`,0),bn(c.mode)||bn(f.mode)||bn(l.mode)){o.push({path:a,reason:"content"}),s(a,`CONFLICT (content): Merge conflict in ${a}`,1),r.push(Le(a,d,c.mode,1)),r.push(Le(a,m,f.mode,2)),r.push(Le(a,u,l.mode,3)),i.set(a,{hash:m,mode:f.mode});return}let h=await re(e,d),p=await re(e,m),g=await re(e,u);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(Le(a,d,c.mode,1)),r.push(Le(a,m,f.mode,2)),r.push(Le(a,u,l.mode,3)),i.set(a,{hash:m,mode:f.mode});return}let w=It(h),y=It(p),x=It(g),b=hs(y,w,x,{conflictStyle:n?.conflictStyle});if(b.conflict){let E=t.pathnames[1],k=t.pathnames[2],R=E!==a||k!==a,P={path:a,reason:"content"};R&&(E!==a&&(P.oursOrigPath=E),k!==a&&(P.theirsOrigPath=k)),o.push(P),s(a,`CONFLICT (content): Merge conflict in ${a}`,1),r.push(Le(a,d,c.mode,1)),r.push(Le(a,m,f.mode,2)),r.push(Le(a,u,l.mode,3));let C=R?`${n?.a??"HEAD"}:${E}`:n?.a??"HEAD",H=R?`${n?.b??"theirs"}:${k}`:n?.b??"theirs",D=mr(p,h,g,{a:C,b:H,conflictStyle:n?.conflictStyle}),O=await Se(e,"blob",Vn.encode(D));i.set(a,{hash:O,mode:f.mode})}else{let E=await Vi(e,b.result);r.push(Le(a,E,f.mode))}return}}var Dh=200;async function Wf(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],m=(await j(e,d)).tree,u=null;if(o>=Dh)u=f;else{let g=await Ut(e,c,d);g.length===0?u=null:g.length===1?u=(await j(e,g[0])).tree:u=await Wf(e,c,d,g,o+1)}let h=await Bt(e,u,f,m);f=await Mh(e,h,o);let p=rn({type:"commit",tree:f,parents:[c,d],author:Mf,committer:Mf,message:"merged common ancestors"});c=await Se(e,"commit",p)}return f}async function Mh(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,m=s(a.path,1),u=s(l,2),h=s(d,3);if(u&&h){let p=Sr.decode((await ye(e,u.hash)).content),g=Sr.decode((await ye(e,h.hash)).content),w=m?Sr.decode((await ye(e,m.hash)).content):"",y=8+n*2,x=i.a??"Temporary merge branch 1",b=i.b??"Temporary merge branch 2",E=mr(p,w,g,{a:`${x}:${l}`,o:i.o,b:`${b}:${d}`,markerSize:y}),k=await Se(e,"blob",Vn.encode(E));r.push({path:l,mode:u.mode,hash:k,stage:0,stat:Ie()}),r.push({path:d,mode:h.mode,hash:k,stage:0,stat:Ie()});continue}else if(u){r.push({...u,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=Sr.decode((await ye(e,c.hash)).content),d=Sr.decode((await ye(e,f.hash)).content),m=a.reason==="content"?s(a.path,1):null,u=m?Sr.decode((await ye(e,m.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=mr(l,u,d,{a:w,o:i.o,b:y,markerSize:i.markerSize}),b=await Se(e,"blob",Vn.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)),Ne(e,r)}async function Vi(e,t){let n=t.map(qi);if(n.length===0)return Se(e,"blob",Vn.encode(""));let s=(t[t.length-1]??"").endsWith("\0")?n.join(`
248
+ `)}function St(e){if(e==="")return[];let t=e.split(`
249
+ `);if(t[t.length-1]==="")t.pop();else{let n=t[t.length-1]??"";t[t.length-1]=`${n}\0`}return t}function Yi(e){return e.endsWith("\0")?e.slice(0,-1):e}function Lf(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();ce();gn();me();sr();He();tt();fn();var Hr=new TextDecoder,Jn=new TextEncoder,Nf={name:"virtual",email:"virtual@merge",timestamp:0,timezone:"+0000"};async function Ut(e,t,n,r,o){let{paths:s,baseMap:i,oursMap:a,theirsMap:c}=await Uh(e,t,n,r),f=await Wh(e,s,i,a,c,o);return qh(e,s,o,f)}async function ws(e,t,n,r){let o=await Ft(e,t,n),s=await j(e,t),i=await j(e,n);if(o.length===0)return{...await Ut(e,null,s.tree,i.tree,r),baseTree:null};if(o.length===1){let f=await j(e,o[0]);return{...await Ut(e,f.tree,s.tree,i.tree,r),baseTree:f.tree}}let a=await Vf(e,t,n,o,1);return{...await Ut(e,a,s.tree,i.tree,r),baseTree:a}}async function Uh(e,t,n,r){let o=await le(e,t),s=await le(e,n),i=await le(e,r),a=new Set;for(let f of o.keys())a.add(f);for(let f of s.keys())a.add(f);for(let f of i.keys())a.add(f);let c=new Map;for(let f of a){let l=o.get(f)??null,d=s.get(f)??null,m=i.get(f)??null,u=l?{hash:l.hash,mode:l.mode}:null,h=d?{hash:d.hash,mode:d.mode}:null,p=m?{hash:m.hash,mode:m.mode}:null,g=(l?1:0)|(d?2:0)|(m?4:0),w=l?.hash??null,b=d?.hash??null,x=m?.hash??null,y=0;w!==null&&w===b&&(y|=3),w!==null&&w===x&&(y|=5),b!==null&&b===x&&(y|=6);let k={path:f,stages:[u,h,p],pathnames:[f,f,f],filemask:g,matchMask:y,merged:{result:null,clean:!1},pathConflict:!1};if(Bh(k)){c.set(f,k);continue}c.set(f,k)}return{paths:c,baseMap:o,oursMap:s,theirsMap:i}}function Bh(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 Wh(e,t,n,r,o,s){let i={entries:[],conflicts:[],msgBuf:[],worktreeBlobs:new Map},a=[],c=[];for(let[v,T]of n)r.has(v)||a.push({path:v,status:"deleted",oldHash:T.hash,oldMode:T.mode}),o.has(v)||c.push({path:v,status:"deleted",oldHash:T.hash,oldMode:T.mode});for(let[v,T]of r)n.has(v)||a.push({path:v,status:"added",newHash:T.hash,newMode:T.mode});for(let[v,T]of o)n.has(v)||c.push({path:v,status:"added",newHash:T.hash,newMode:T.mode});let f=await it(e,a),l=await it(e,c);if(f.renames.length===0&&l.renames.length===0)return i;let d=new Map,m=new Map;for(let v of f.renames)d.set(v.oldPath,v);for(let v of l.renames)m.set(v.oldPath,v);let u=new Set;for(let[v]of r)!n.has(v)&&o.has(v)&&u.add(v);let h=new Set,p=s?.a??"HEAD",g=s?.b??"theirs";function w(v,T,F=0){i.msgBuf.push({sortKey:v,subOrder:F,text:T})}for(let v of[...n.keys()].sort()){let T=d.get(v),F=m.get(v);if(!T&&!F)continue;let _=n.get(v);if(h.add(v),T&&F)if(h.add(T.newPath),h.add(F.newPath),T.newPath===F.newPath){let U=r.get(T.newPath),N=o.get(F.newPath);if(U.hash===N.hash)i.entries.push(xt(T.newPath,U));else{let K=Xi(t,T.newPath);K.stages=[{hash:_.hash,mode:_.mode},{hash:U.hash,mode:U.mode},{hash:N.hash,mode:N.mode}],K.pathnames=[v,T.newPath,F.newPath],K.filemask=7,K.merged={result:null,clean:!1}}}else{let U=r.get(T.newPath),N=o.get(F.newPath),K=await Kf(e,_,U,N,s);K.conflict&&w(v,`Auto-merging ${v}`,-1),i.conflicts.push({path:v,reason:"rename-rename",oursPath:T.newPath,theirsPath:F.newPath}),w(v,`CONFLICT (rename/rename): ${v} renamed to ${T.newPath} in ${p} and to ${F.newPath} in ${g}.`),i.entries.push(xt(v,_,1)),i.entries.push(ft(T.newPath,U.mode,K.hash,2)),i.entries.push(ft(F.newPath,N.mode,K.hash,3)),i.worktreeBlobs.set(T.newPath,{hash:K.hash,mode:U.mode}),i.worktreeBlobs.set(F.newPath,{hash:K.hash,mode:N.mode})}else if(T){h.add(T.newPath);let U=o.get(v),N=r.get(T.newPath),K=u.has(T.newPath);if(U)if(K)await qf(e,i,T.newPath,v,_,N,U,r,o,!1,s);else if(U.hash===_.hash&&N.hash===_.hash)i.entries.push(xt(T.newPath,N));else if(U.hash===_.hash)i.entries.push(xt(T.newPath,N));else if(N.hash===_.hash)i.entries.push(ft(T.newPath,N.mode,U.hash));else{let ne=Xi(t,T.newPath);ne.stages=[{hash:_.hash,mode:_.mode},{hash:N.hash,mode:N.mode},{hash:U.hash,mode:U.mode}],ne.pathnames=[v,T.newPath,v],ne.filemask=7,ne.merged={result:null,clean:!1}}else{let ne=o.get(T.newPath);if(i.conflicts.push({path:T.newPath,reason:"rename-delete",deletedBy:"theirs",oldPath:v}),w(T.newPath,`CONFLICT (rename/delete): ${v} renamed to ${T.newPath} in ${p}, but deleted in ${g}.`),ne){i.conflicts.push({path:T.newPath,reason:"add-add"}),w(T.newPath,`Auto-merging ${T.newPath}`,0),w(T.newPath,`CONFLICT (add/add): Merge conflict in ${T.newPath}`,1),i.entries.push(xt(T.newPath,N,2)),i.entries.push(xt(T.newPath,ne,3));let J=await Po(e,N.hash,ne.hash,N.mode,s);i.worktreeBlobs.set(T.newPath,{hash:J,mode:N.mode})}else i.entries.push(ft(T.newPath,_.mode,_.hash,1)),i.entries.push(xt(T.newPath,N,2)),i.worktreeBlobs.set(T.newPath,{hash:N.hash,mode:N.mode}),N.hash!==_.hash&&w(T.newPath,`CONFLICT (modify/delete): ${T.newPath} deleted in ${g} and modified in ${p}. Version ${p} of ${T.newPath} left in tree.`,1)}}else if(F){h.add(F.newPath);let U=r.get(v),N=o.get(F.newPath),K=u.has(F.newPath);if(U)if(K)await qf(e,i,F.newPath,v,_,U,N,r,o,!0,s);else if(U.hash===_.hash&&N.hash===_.hash)i.entries.push(xt(F.newPath,N));else if(U.hash===_.hash)i.entries.push(xt(F.newPath,N));else if(N.hash===_.hash)i.entries.push(ft(F.newPath,N.mode,U.hash));else{let ne=Xi(t,F.newPath);ne.stages=[{hash:_.hash,mode:_.mode},{hash:U.hash,mode:U.mode},{hash:N.hash,mode:N.mode}],ne.pathnames=[v,v,F.newPath],ne.filemask=7,ne.merged={result:null,clean:!1}}else{let ne=r.get(F.newPath);if(i.conflicts.push({path:F.newPath,reason:"rename-delete",deletedBy:"ours",oldPath:v}),w(F.newPath,`CONFLICT (rename/delete): ${v} renamed to ${F.newPath} in ${g}, but deleted in ${p}.`),ne){i.conflicts.push({path:F.newPath,reason:"add-add"}),w(F.newPath,`Auto-merging ${F.newPath}`,0),w(F.newPath,`CONFLICT (add/add): Merge conflict in ${F.newPath}`,1),i.entries.push(xt(F.newPath,ne,2)),i.entries.push(xt(F.newPath,N,3));let J=await Po(e,ne.hash,N.hash,ne.mode,s);i.worktreeBlobs.set(F.newPath,{hash:J,mode:ne.mode})}else i.entries.push(ft(F.newPath,_.mode,_.hash,1)),i.entries.push(xt(F.newPath,N,3)),i.worktreeBlobs.set(F.newPath,{hash:N.hash,mode:N.mode}),N.hash!==_.hash&&w(F.newPath,`CONFLICT (modify/delete): ${F.newPath} deleted in ${p} and modified in ${g}. Version ${g} of ${F.newPath} left in tree.`,1)}}}let b=new Set(f.renames.map(v=>v.newPath)),x=new Set(l.renames.map(v=>v.newPath)),y=_f(n,r),k=_f(n,o),E=Ff(y,o,n),R=Ff(k,r,n),C=Uf(f.renames,E),P=Uf(l.renames,R),H=Bf(C),D=Bf(P);for(let v of[...H.keys()])D.has(v)&&(H.delete(v),D.delete(v));let O=new Set(H.keys()),A=new Set(D.keys());if(D.size>0)for(let v of a){if(v.status!=="added"||b.has(v.path))continue;let T=Wf(v.path,D,O);if(!T)continue;if(t.has(T)||n.has(T)||r.has(T)||o.has(T)){if(r.has(T)){w(T,`CONFLICT (implicit dir rename): Existing file/dir at ${T} in the way of implicit directory rename(s) putting the following path(s) there: ${v.path}.`,1);continue}let U=r.get(v.path),N=o.get(T)??n.get(T);i.entries.push(ft(T,U.mode,U.hash,2)),N&&i.entries.push(ft(T,N.mode,N.hash,3)),i.worktreeBlobs.set(T,{hash:U.hash,mode:U.mode}),i.conflicts.push({path:T,reason:"add-add"}),w(T,`CONFLICT (file location): ${v.path} added in ${p} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${T}.`,1);let K=t.get(v.path);K&&(K.merged={result:null,clean:!0}),h.add(v.path);continue}let F=r.get(v.path);i.entries.push(ft(T,F.mode,F.hash,2)),i.worktreeBlobs.set(T,{hash:F.hash,mode:F.mode}),i.conflicts.push({path:T,reason:"directory-rename"}),w(T,`CONFLICT (file location): ${v.path} added in ${p} inside a directory that was renamed in ${g}, suggesting it should perhaps be moved to ${T}.`,1);let _=t.get(v.path);_&&(_.merged={result:null,clean:!0}),h.add(v.path)}if(H.size>0)for(let v of c){if(v.status!=="added"||x.has(v.path))continue;let T=Wf(v.path,H,A);if(!T)continue;if(t.has(T)||n.has(T)||r.has(T)||o.has(T)){if(o.has(T)){w(T,`CONFLICT (implicit dir rename): Existing file/dir at ${T} in the way of implicit directory rename(s) putting the following path(s) there: ${v.path}.`,1);continue}let U=o.get(v.path),N=r.get(T)??n.get(T);N&&i.entries.push(ft(T,N.mode,N.hash,2)),i.entries.push(ft(T,U.mode,U.hash,3)),i.worktreeBlobs.set(T,{hash:U.hash,mode:U.mode}),i.conflicts.push({path:T,reason:"add-add"}),w(T,`CONFLICT (file location): ${v.path} added in ${g} inside a directory that was renamed in ${p}, suggesting it should perhaps be moved to ${T}.`,1);let K=t.get(v.path);K&&(K.merged={result:null,clean:!0}),h.add(v.path);continue}let F=o.get(v.path);i.entries.push(ft(T,F.mode,F.hash,3)),i.worktreeBlobs.set(T,{hash:F.hash,mode:F.mode}),i.conflicts.push({path:T,reason:"directory-rename"}),w(T,`CONFLICT (file location): ${v.path} added in ${g} inside a directory that was renamed in ${p}, suggesting it should perhaps be moved to ${T}.`,1);let _=t.get(v.path);_&&(_.merged={result:null,clean:!0}),h.add(v.path)}let G=new Set(i.entries.map(v=>v.path));for(let v of G){let T=t.get(v);T&&(T.merged={result:null,clean:!0})}for(let v of h){if(G.has(v))continue;let T=t.get(v);if(!T||T.merged.clean)continue;T.filemask===7&&!T.pathConflict||(T.merged={result:null,clean:!0})}return i}function _f(e,t){let n=new Set;for(let s of e.keys()){let i=vt(s);for(;i;)n.add(i),i=vt(i)}let r=new Set;for(let s of t.keys()){let i=vt(s);for(;i;)r.add(i),i=vt(i)}let o=new Set;for(let s of n)r.has(s)||o.add(s);return o}function Ff(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=vt(o)??"";e.has(s)&&r.add(s)}for(let o of[...r]){let s=vt(o);for(;s;)e.has(s)&&!r.has(s)&&r.add(s),s=vt(s)}return r}function Uf(e,t){let n=new Map;for(let r of e){let o=vt(r.oldPath),s=vt(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=vt(o),s=vt(s)}}return n}function Bf(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 Wf(e,t,n){let r=vt(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=vt(r)}let o=t.get("");return o!==void 0&&!n.has(o)?`${o}/${e}`:null}function vt(e){let t=e.lastIndexOf("/");return t===-1?"":e.slice(0,t)}async function qf(e,t,n,r,o,s,i,a,c,f=!1,l){let d=f?a.get(n):c.get(n),m=f?i:s;if(d.hash===m.hash){t.entries.push(ft(n,d.mode,d.hash)),t.msgBuf.push({sortKey:r,subOrder:0,text:`Auto-merging ${r}`});return}let h=await Kf(e,o,s,i,l,f?{oursPath:r,theirsPath:n}:{oursPath:n,theirsPath:r},8);if(d.hash===h.hash)t.entries.push(ft(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(xt(n,d,2)),t.entries.push(ft(n,i.mode,h.hash,3));let p=await Po(e,d.hash,h.hash,d.mode,l);t.worktreeBlobs.set(n,{hash:p,mode:d.mode})}else{t.entries.push(ft(n,s.mode,h.hash,2)),t.entries.push(xt(n,d,3));let p=await Po(e,h.hash,d.hash,s.mode,l);t.worktreeBlobs.set(n,{hash:p,mode:s.mode})}}async function Kf(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(bn(t.mode)||bn(n.mode)||bn(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(ve(c)||ve(f)||ve(a))return{hash:n.hash,conflict:!0};let l=St(a),d=St(c),m=St(f),u=o?.conflictStyle,h=ps(d,l,m,{conflictStyle:u});if(!h.conflict)return{hash:await Ji(e,h.result),conflict:!1};let p=o?.a??"HEAD",g=o?.b??"theirs",w=s?.oursPath?`${p}:${s.oursPath}`:p,b=s?.theirsPath?`${g}:${s.theirsPath}`:g,x=gr(c,a,f,{a:w,b,markerSize:i??7,conflictStyle:u});return{hash:await Ae(e,"blob",Jn.encode(x)),conflict:!0}}async function Po(e,t,n,r,o){let s=await oe(e,t),i=await oe(e,n),a=gr(s,"",i,{a:o?.a??"HEAD",b:o?.b??"theirs",conflictStyle:o?.conflictStyle});return Ae(e,"blob",Jn.encode(a))}function xt(e,t,n=0){return ft(e,t.mode,t.hash,n)}function ft(e,t,n,r=0){return{path:e,mode:parseInt(t,8),hash:n,stage:r,stat:Se()}}async function qh(e,t,n,r){let o=[...r.entries],s=[...r.conflicts],i=[...r.msgBuf],a=new Map(r.worktreeBlobs);function c(u,h,p=0){i.push({sortKey:u,subOrder:p,text:h})}for(let u of[...t.keys()].sort()){let h=t.get(u);if(h.merged.clean){h.merged.result?.hash&&o.push(_e(u,h.merged.result.hash,h.merged.result.mode));continue}await zh(e,h,n,o,s,c,a)}i.sort((u,h)=>(u.sortKey<h.sortKey?-1:u.sortKey>h.sortKey?1:0)||u.subOrder-h.subOrder);let f=i.map(u=>u.text),l=[],d=new Set;for(let u of o)u.stage===0&&(l.push(u),d.add(u.path));for(let[u,h]of a)d.has(u)||l.push(_e(u,h.hash,h.mode));l.sort((u,h)=>Ie(u.path,h.path));let m=await Fe(e,l);return{entries:o,conflicts:s,messages:f,resultTree:m}}async function zh(e,t,n,r,o,s,i){let a=t.path,[c,f,l]=t.stages,d=c?.hash??null,m=f?.hash??null,u=l?.hash??null;if(m===null&&u!==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(_e(a,d,c.mode,1)),r.push(_e(a,u,l.mode,3)),i.set(a,{hash:u,mode:l.mode});return}if(u===null&&m!==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(_e(a,d,c.mode,1)),r.push(_e(a,m,f.mode,2)),i.set(a,{hash:m,mode:f.mode});return}if(d===null&&m!==null&&u!==null){if(m===u){r.push(_e(a,m,f.mode));return}s(a,`Auto-merging ${a}`,0);let h=await oe(e,m),p=await oe(e,u);if(ve(h)||ve(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(_e(a,m,f.mode,2)),r.push(_e(a,u,l.mode,3)),i.set(a,{hash:m,mode:f.mode});return}let g=St(""),w=St(h),b=St(p),x=ps(w,g,b,{conflictStyle:n?.conflictStyle});if(!x.conflict){let E=await Ji(e,x.result);r.push(_e(a,E,f.mode));return}o.push({path:a,reason:"add-add"}),s(a,`CONFLICT (add/add): Merge conflict in ${a}`,1),r.push(_e(a,m,f.mode,2)),r.push(_e(a,u,l.mode,3));let y=gr(h,"",p,{a:n?.a??"HEAD",b:n?.b??"theirs",conflictStyle:n?.conflictStyle}),k=await Ae(e,"blob",Jn.encode(y));i.set(a,{hash:k,mode:f.mode});return}if(d!==null&&m!==null&&u!==null){if(m===d){r.push(_e(a,u,l.mode));return}if(u===d){r.push(_e(a,m,f.mode));return}if(m===u){r.push(_e(a,m,f.mode));return}if(s(a,`Auto-merging ${a}`,0),bn(c.mode)||bn(f.mode)||bn(l.mode)){o.push({path:a,reason:"content"}),s(a,`CONFLICT (content): Merge conflict in ${a}`,1),r.push(_e(a,d,c.mode,1)),r.push(_e(a,m,f.mode,2)),r.push(_e(a,u,l.mode,3)),i.set(a,{hash:m,mode:f.mode});return}let h=await oe(e,d),p=await oe(e,m),g=await oe(e,u);if(ve(p)||ve(g)||ve(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(_e(a,d,c.mode,1)),r.push(_e(a,m,f.mode,2)),r.push(_e(a,u,l.mode,3)),i.set(a,{hash:m,mode:f.mode});return}let w=St(h),b=St(p),x=St(g),y=ps(b,w,x,{conflictStyle:n?.conflictStyle});if(y.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(_e(a,d,c.mode,1)),r.push(_e(a,m,f.mode,2)),r.push(_e(a,u,l.mode,3));let P=R?`${n?.a??"HEAD"}:${k}`:n?.a??"HEAD",H=R?`${n?.b??"theirs"}:${E}`:n?.b??"theirs",D=gr(p,h,g,{a:P,b:H,conflictStyle:n?.conflictStyle}),O=await Ae(e,"blob",Jn.encode(D));i.set(a,{hash:O,mode:f.mode})}else{let k=await Ji(e,y.result);r.push(_e(a,k,f.mode))}return}}var Kh=200;async function Vf(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],m=(await j(e,d)).tree,u=null;if(o>=Kh)u=f;else{let g=await Ft(e,c,d);g.length===0?u=null:g.length===1?u=(await j(e,g[0])).tree:u=await Vf(e,c,d,g,o+1)}let h=await Ut(e,u,f,m);f=await Vh(e,h,o);let p=rn({type:"commit",tree:f,parents:[c,d],author:Nf,committer:Nf,message:"merged common ancestors"});c=await Ae(e,"commit",p)}return f}async function Vh(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,m=s(a.path,1),u=s(l,2),h=s(d,3);if(u&&h){let p=Hr.decode((await be(e,u.hash)).content),g=Hr.decode((await be(e,h.hash)).content),w=m?Hr.decode((await be(e,m.hash)).content):"",b=8+n*2,x=i.a??"Temporary merge branch 1",y=i.b??"Temporary merge branch 2",k=gr(p,w,g,{a:`${x}:${l}`,o:i.o,b:`${y}:${d}`,markerSize:b}),E=await Ae(e,"blob",Jn.encode(k));r.push({path:l,mode:u.mode,hash:E,stage:0,stat:Se()}),r.push({path:d,mode:h.mode,hash:E,stage:0,stat:Se()});continue}else if(u){r.push({...u,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=Hr.decode((await be(e,c.hash)).content),d=Hr.decode((await be(e,f.hash)).content),m=a.reason==="content"?s(a.path,1):null,u=m?Hr.decode((await be(e,m.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,b=h?`${g}:${a.theirsOrigPath??a.path}`:g,x=gr(l,u,d,{a:w,o:i.o,b,markerSize:i.markerSize}),y=await Ae(e,"blob",Jn.encode(x));r.push({path:a.path,mode:c.mode,hash:y,stage:0,stat:Se()})}else c?r.push({...c,stage:0}):f&&r.push({...f,stage:0})}return r.sort((a,c)=>Ie(a.path,c.path)),Fe(e,r)}async function Ji(e,t){let n=t.map(Yi);if(n.length===0)return Ae(e,"blob",Jn.encode(""));let s=(t[t.length-1]??"").endsWith("\0")?n.join(`
250
250
  `):`${n.join(`
251
251
  `)}
252
- `;return Se(e,"blob",Vn.encode(s))}function Le(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 zi(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 ps(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}
252
+ `;return Ae(e,"blob",Jn.encode(s))}function _e(e,t,n,r=0){let o=typeof n=="string"?parseInt(n,8):n;return{path:e,mode:o,hash:t,stage:r,stat:Se()}}function Xi(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 gs(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}
253
253
  ${e.join(" ")}
254
254
  Merge with strategy ort failed.
255
255
  `;let c=e.map(l=>` ${l}`).join(`
@@ -264,7 +264,7 @@ ${i}
264
264
  ${a}
265
265
  Aborting
266
266
  fatal: ${n} failed
267
- `}function Uf(e,t,n,r){let o=[];if(e.length>0){let i=e.map(a=>` ${a}`).join(`
267
+ `}function zf(e,t,n,r){let o=[];if(e.length>0){let i=e.map(a=>` ${a}`).join(`
268
268
  `);o.push(`error: Your local changes to the following files would be overwritten by ${n}:
269
269
  ${i}
270
270
  Please commit your changes or stash them before you ${n}.
@@ -274,37 +274,37 @@ ${i}
274
274
  Please move or remove them before you ${n}.
275
275
  `)}let s=r==="merge"?"Merge with strategy ort failed.":`fatal: ${r} failed`;return`${o.join("")}Aborting
276
276
  ${s}
277
- `}async function Cn(e,t,n,r){let o=await V(e),s=await fe(e,n);if(!r.skipStagedChangeCheck&&e.workTree){let h=new Map(Me(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 Ki(e,o,s);let w=r.operationName??"merge",y=r.callerCommand??"merge";return{ok:!1,stdout:"",stderr:ps(g,w,y,"local","staged"),exitCode:r.errorExitCode??2,failureKind:"staged"}}}if(e.workTree&&r.preflightOnewayCheck){let h=await sr(e,[{label:"target",treeHash:t.resultTree}],o,{mergeFn:Zs,updateWorktree:!1,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge"});if(!h.success){await Ki(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=Uf(w,y,p,g):y.length>0?x=ps(y,p,g,"untracked","worktree"):x=ps(w,p,g,"local","worktree"),{ok:!1,stdout:"",stderr:x,exitCode:r.errorExitCode??2,failureKind:"worktree"}}}if(e.workTree){let h=await sr(e,[{label:"current",treeHash:n},{label:"target",treeHash:t.resultTree}],o,{mergeFn:Js,updateWorktree:!0,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge",allowStagedChanges:!!r.preflightOnewayCheck});if(!h.success){await Ki(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=h.errors.filter(E=>E.error==="WOULD_OVERWRITE"||E.error==="NOT_UPTODATE_FILE").map(E=>E.path).sort(),y=h.errors.filter(E=>E.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||E.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(E=>E.path).sort(),x=[];w.length>0&&x.push(ps(w,p,g,"local","worktree")),y.length>0&&x.push(ps(y,p,g,"untracked","worktree"));let b;return x.length>1?b=Uf(w,y,p,g):b=x[0]??"",{ok:!1,stdout:"",stderr:b,exitCode:r.errorExitCode??2,failureKind:"worktree"}}await Ge(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 ce(e,d);let m=l.filter(h=>h.stage===0),u=await Ne(e,m);return{ok:!0,finalIndex:d,mergedTreeHash:u}}async function Ki(e,t,n){if(e.workTree)for(let r of t.entries){if(r.stage!==0||n.has(r.path))continue;let o=S(e.workTree,r.path);await e.fs.exists(o)||await lt(e,{path:r.path,hash:r.hash,mode:r.mode})}}ie();We();he();ve();an();function qf(e,t){e.command("cherry-pick",{description:"Apply the changes introduced by some existing commits",args:[z.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:Z.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 q(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 W=await Gh(s,r.env);return W.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),W}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 W=await Lh(s,r.env);return W.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"continue",commitHash:null,hadConflicts:!1}),W}if(n.skip)return jh(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 Ae(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Qe(s);if(M(d))return d;let m=await V(s);if(n.noCommit){let B=m.entries.filter(W=>W.stage>0);if(B.length>0){let F=B.slice(0,10).map(de=>`${de.path}: unmerged (${de.hash})`).join(`
278
- `),K=B.length>10?`
279
- ...`:"";return L(`${F}${K}
277
+ `}async function $n(e,t,n,r){let o=await z(e),s=await le(e,n);if(!r.skipStagedChangeCheck&&e.workTree){let h=new Map(Le(o).map(g=>[g.path,g])),p=[];for(let[g,w]of h){let b=s.get(g);(!b||b.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 Zi(e,o,s);let w=r.operationName??"merge",b=r.callerCommand??"merge";return{ok:!1,stdout:"",stderr:gs(g,w,b,"local","staged"),exitCode:r.errorExitCode??2,failureKind:"staged"}}}if(e.workTree&&r.preflightOnewayCheck){let h=await ar(e,[{label:"target",treeHash:t.resultTree}],o,{mergeFn:Js,updateWorktree:!1,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge"});if(!h.success){await Zi(e,o,s);let p=r.operationName??"merge",g=r.callerCommand??"merge",w=h.errors.filter(y=>y.error==="WOULD_OVERWRITE"||y.error==="NOT_UPTODATE_FILE").map(y=>y.path).sort(),b=h.errors.filter(y=>y.error==="WOULD_LOSE_UNTRACKED_OVERWRITTEN"||y.error==="WOULD_LOSE_UNTRACKED_REMOVED").map(y=>y.path).sort(),x;return w.length>0&&b.length>0?x=zf(w,b,p,g):b.length>0?x=gs(b,p,g,"untracked","worktree"):x=gs(w,p,g,"local","worktree"),{ok:!1,stdout:"",stderr:x,exitCode:r.errorExitCode??2,failureKind:"worktree"}}}if(e.workTree){let h=await ar(e,[{label:"current",treeHash:n},{label:"target",treeHash:t.resultTree}],o,{mergeFn:Qs,updateWorktree:!0,reset:!1,errorExitCode:r.errorExitCode??2,operationName:r.operationName??"merge",allowStagedChanges:!!r.preflightOnewayCheck});if(!h.success){await Zi(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(),b=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(gs(w,p,g,"local","worktree")),b.length>0&&x.push(gs(b,p,g,"untracked","worktree"));let y;return x.length>1?y=zf(w,b,p,g):y=x[0]??"",{ok:!1,stdout:"",stderr:y,exitCode:r.errorExitCode??2,failureKind:"worktree"}}await Ne(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)=>Ie(h.path,p.path)||h.stage-p.stage);let d={version:2,entries:l};await de(e,d);let m=l.filter(h=>h.stage===0),u=await Fe(e,m);return{ok:!0,finalIndex:d,mergedTreeHash:u}}async function Zi(e,t,n){if(e.workTree)for(let r of t.entries){if(r.stage!==0||n.has(r.path))continue;let o=S(e.workTree,r.path);await e.fs.exists(o)||await dt(e,{path:r.path,hash:r.hash,mode:r.mode})}}ce();ze();ge();He();fn();function Yf(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:V.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 _=await t?.hooks?.preCherryPick?.({repo:s,mode:"abort",commit:null});if(ee(_))return{stdout:"",stderr:_.message??"",exitCode:1};let U=await Xh(s,r.env);return U.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),U}if(n.continue){let _=await t?.hooks?.preCherryPick?.({repo:s,mode:"continue",commit:null});if(ee(_))return{stdout:"",stderr:_.message??"",exitCode:1};let U=await Zh(s,r.env);return U.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"continue",commitHash:null,hadConflicts:!1}),U}if(n.skip)return Yh(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 Me(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Qe(s);if(M(d))return d;let m=await z(s);if(n.noCommit){let _=m.entries.filter(U=>U.stage>0);if(_.length>0){let K=_.slice(0,10).map(J=>`${J.path}: unmerged (${J.hash})`).join(`
278
+ `),ne=_.length>10?`
279
+ ...`:"";return L(`${K}${ne}
280
280
  error: your index file is unmerged.
281
281
  fatal: cherry-pick failed
282
- `,128)}}else{let B=En(m,"Cherry-picking",`fatal: cherry-pick failed
283
- `);if(B)return B}let u=await j(s,d),p=!!n["record-origin"]?Nh(l.message,f):l.message;if(s.workTree&&!n.noCommit){let B=await fe(s,u.tree);if(Cr(m,B))return L(`error: your local changes would be overwritten by cherry-pick.
282
+ `,128)}}else{let _=kn(m,"Cherry-picking",`fatal: cherry-pick failed
283
+ `);if(_)return _}let u=await j(s,d),p=!!n["record-origin"]?Jh(l.message,f):l.message;if(s.workTree&&!n.noCommit){let _=await le(s,u.tree);if(Un(m,_))return L(`error: your local changes would be overwritten by cherry-pick.
284
284
  hint: commit your changes or stash them to proceed.
285
285
  fatal: cherry-pick failed
286
286
  `,128)}if(l.parents.length>1){if(!n.mainline)return L(`error: commit ${f} is a merge but no -m option was given.
287
287
  fatal: cherry-pick failed
288
- `,128);let B=n.mainline-1;if(B<0||B>=l.parents.length)return L(`error: commit ${f} does not have parent ${n.mainline}
288
+ `,128);let _=n.mainline-1;if(_<0||_>=l.parents.length)return L(`error: commit ${f} does not have parent ${n.mainline}
289
289
  fatal: cherry-pick failed
290
290
  `,128)}else if(n.mainline)return L(`error: mainline was specified but commit is not a merge.
291
291
  fatal: cherry-pick failed
292
- `,128);let g;if(l.parents.length===0)g=await Ne(s,[]);else{let B=l.parents.length>1?n.mainline-1:0,W=l.parents[B];if(!W)throw new Error("unreachable: parent must exist");g=(await j(s,W)).tree}let w=Y(f),y=le(l.message),x=await Re(s,"merge.conflictstyle")??"merge",b={a:"HEAD",b:y?`${w} (${y})`:w,conflictStyle:x},E=await Bt(s,g,u.tree,l.tree,b);if(E.conflicts.length===0&&E.resultTree===u.tree){if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};await X(s,"CHERRY_PICK_HEAD",f),await X(s,"ORIG_HEAD",d),await Te(s,"MERGE_MSG",p);let B=E.messages.length>0?`${E.messages.join(`
292
+ `,128);let g;if(l.parents.length===0)g=await Fe(s,[]);else{let _=l.parents.length>1?n.mainline-1:0,U=l.parents[_];if(!U)throw new Error("unreachable: parent must exist");g=(await j(s,U)).tree}let w=Y(f),b=ue(l.message),x=await xe(s,"merge.conflictstyle")??"merge",y={a:"HEAD",b:b?`${w} (${b})`:w,conflictStyle:x},k=await Ut(s,g,u.tree,l.tree,y);if(k.conflicts.length===0&&k.resultTree===u.tree){if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};await X(s,"CHERRY_PICK_HEAD",f),await X(s,"ORIG_HEAD",d),await De(s,"MERGE_MSG",p);let _=k.messages.length>0?`${k.messages.join(`
293
293
  `)}
294
- `:"",W=await it(s,{fromCommit:!0});return{stdout:`${B}${W}`,stderr:`The previous cherry-pick is now empty, possibly due to conflict resolution.
294
+ `:"",U=await at(s,{fromCommit:!0});return{stdout:`${_}${U}`,stderr:`The previous cherry-pick is now empty, possibly due to conflict resolution.
295
295
  If you wish to commit it anyway, use:
296
296
 
297
297
  git commit --allow-empty
298
298
 
299
299
  Otherwise, please use 'git cherry-pick --skip'
300
- `,exitCode:1}}let k=await Cn(s,E,u.tree,{labels:b,errorExitCode:128,operationName:"merge",callerCommand:"cherry-pick",skipStagedChangeCheck:!0,preflightOnewayCheck:!!n.noCommit});if(!k.ok)return k;if(E.conflicts.length>0){let B=E.messages.join(`
301
- `);return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:null,hadConflicts:!0}),n.noCommit?{stdout:B?`${B}
302
- `:"",stderr:`error: could not apply ${w}... ${le(l.message)}
300
+ `,exitCode:1}}let E=await $n(s,k,u.tree,{labels:y,errorExitCode:128,operationName:"merge",callerCommand:"cherry-pick",skipStagedChangeCheck:!0,preflightOnewayCheck:!!n.noCommit});if(!E.ok)return E;if(k.conflicts.length>0){let _=k.messages.join(`
301
+ `);return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:null,hadConflicts:!0}),n.noCommit?{stdout:_?`${_}
302
+ `:"",stderr:`error: could not apply ${w}... ${ue(l.message)}
303
303
  hint: after resolving the conflicts, mark the corrected paths
304
304
  hint: with 'git add <paths>' or 'git rm <paths>'
305
305
  hint: Disable this message with "git config set advice.mergeConflict false"
306
- `,exitCode:1}:(await X(s,"CHERRY_PICK_HEAD",f),await X(s,"ORIG_HEAD",d),await Te(s,"MERGE_MSG",p),{stdout:B?`${B}
307
- `:"",stderr:`error: could not apply ${w}... ${le(l.message)}
306
+ `,exitCode:1}:(await X(s,"CHERRY_PICK_HEAD",f),await X(s,"ORIG_HEAD",d),await De(s,"MERGE_MSG",p),{stdout:_?`${_}
307
+ `:"",stderr:`error: could not apply ${w}... ${ue(l.message)}
308
308
  hint: After resolving the conflicts, mark them with
309
309
  hint: "git add/rm <pathspec>", then run
310
310
  hint: "git cherry-pick --continue".
@@ -312,50 +312,57 @@ hint: You can instead skip this commit with "git cherry-pick --skip".
312
312
  hint: To abort and get back to the state before "git cherry-pick",
313
313
  hint: run "git cherry-pick --abort".
314
314
  hint: Disable this message with "git config set advice.mergeConflict false"
315
- `,exitCode:1})}let R=k.mergedTreeHash;if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};let P=await tt(s,r.env);if(M(P))return P;let C=await gt(s,R,[d],l.author,P,p);await Gt(s),await Lt(s);let H=await Q(s),D=p.split(`
316
- `)[0]??"",O=H?.type==="symbolic"?H.target:"HEAD";await se(s,r.env,O,d,C,`cherry-pick: ${D}`,H?.type==="symbolic");let A=H?.type==="symbolic"?xe(H.target):"detached HEAD",G=u.tree,v=await ln(s,G,R,l.author,P,!0),T=Dt(A,C,p),_=E.messages.length>0?`${E.messages.join(`
315
+ `,exitCode:1})}let R=E.mergedTreeHash;if(n.noCommit)return{stdout:"",stderr:"",exitCode:0};let C=await nt(s,r.env);if(M(C))return C;let P=await bt(s,R,[d],l.author,C,p);await Gt(s),await Lt(s);let H=await Q(s),D=p.split(`
316
+ `)[0]??"",O=H?.type==="symbolic"?H.target:"HEAD";await fe(s,r.env,O,d,P,`cherry-pick: ${D}`,H?.type==="symbolic");let A=H?.type==="symbolic"?Pe(H.target):"detached HEAD",G=u.tree,v=await un(s,G,R,l.author,C,!0),T=Dt(A,P,p),F=k.messages.length>0?`${k.messages.join(`
317
317
  `)}
318
- `:"";return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:C,hadConflicts:!1}),{stdout:`${_}${T}
319
- ${v}`,stderr:"",exitCode:0}}})}async function jh(e,t){if(!await U(e,"CHERRY_PICK_HEAD"))return L(`error: no cherry-pick in progress
318
+ `:"";return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:P,hadConflicts:!1}),{stdout:`${F}${T}
319
+ ${v}`,stderr:"",exitCode:0}}})}async function Yh(e,t){if(!await B(e,"CHERRY_PICK_HEAD"))return L(`error: no cherry-pick in progress
320
320
  fatal: cherry-pick failed
321
- `,128);let r=await J(e);if(!r)return I("unable to resolve HEAD");let o=await j(e,r),s=await V(e),i=await eo(e,o.tree,s,r);if(!i.success){let a=i.errorOutput;return{...a,stderr:a.stderr+`error: failed to skip the commit
321
+ `,128);let r=await Z(e);if(!r)return I("unable to resolve HEAD");let o=await j(e,r),s=await z(e),i=await to(e,o.tree,s,r);if(!i.success){let a=i.errorOutput;return{...a,stderr:a.stderr+`error: failed to skip the commit
322
322
  fatal: cherry-pick failed
323
- `}}return await ce(e,{version:2,entries:i.newEntries}),await Ge(e,i.worktreeOps),await se(e,t,"HEAD",r,r,`reset: moving to ${r}`),await Gt(e),{stdout:"",stderr:"",exitCode:0}}async function Gh(e,t){return await U(e,"CHERRY_PICK_HEAD")?Nn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
323
+ `}}return await de(e,{version:2,entries:i.newEntries}),await Ne(e,i.worktreeOps),await fe(e,t,"HEAD",r,r,`reset: moving to ${r}`),await Gt(e),{stdout:"",stderr:"",exitCode:0}}async function Xh(e,t){return await B(e,"CHERRY_PICK_HEAD")?Bn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
324
324
  fatal: cherry-pick failed
325
- `,128),operationName:"cherry-pick",clearState:Gt,origHeadAsTargetRev:!0}):await U(e,"REVERT_HEAD")?Nn(e,t,{operationRef:"REVERT_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
325
+ `,128),operationName:"cherry-pick",clearState:Gt,origHeadAsTargetRev:!0}):await B(e,"REVERT_HEAD")?Bn(e,t,{operationRef:"REVERT_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
326
326
  fatal: cherry-pick failed
327
327
  `,128),operationName:"cherry-pick",clearState:Lt,origHeadAsTargetRev:!0}):L(`error: no cherry-pick or revert in progress
328
328
  fatal: cherry-pick failed
329
- `,128)}async function Lh(e,t){let n=await U(e,"CHERRY_PICK_HEAD");if(!n)return L(`error: no cherry-pick or revert in progress
329
+ `,128)}async function Zh(e,t){let n=await B(e,"CHERRY_PICK_HEAD");if(!n)return L(`error: no cherry-pick or revert in progress
330
330
  fatal: cherry-pick failed
331
- `,128);let r=await V(e),o=En(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.
332
- `,1);let a=await Pe(e,"SQUASH_MSG");a&&(i=a+i),i=Xt(i);let c=Me(r),f=await Ne(e,c),l=await Qe(e);if(M(l))return l;let m=(await j(e,l)).tree,u=await tt(e,t);if(M(u))return u;let h=Mt(i),p=await gt(e,f,[l],s.author,u,h);await Gt(e),await Lt(e),await ge(e,"SQUASH_MSG");let g=await Q(e),w=le(h),y=g?.type==="symbolic"?g.target:"HEAD";await se(e,t,y,l,p,`commit (cherry-pick): ${w}`,g?.type==="symbolic");let x=g?.type==="symbolic"?xe(g.target):"detached HEAD",b=await ln(e,m,f,s.author,u,!0);return{stdout:`${Dt(x,p,i)}
333
- ${b}`,stderr:"",exitCode:0}}function Nh(e,t){let n=`(cherry picked from commit ${t})`,r=e.replace(/\n+$/,""),o=r.lastIndexOf(`
331
+ `,128);let r=await z(e),o=kn(r,"Committing");if(o)return o;let s=await j(e,n),i=await Oe(e,"MERGE_MSG");if(!i)return L(`Aborting commit due to empty commit message.
332
+ `,1);let a=await Oe(e,"SQUASH_MSG");a&&(i=a+i),i=Xt(i);let c=Le(r),f=await Fe(e,c),l=await Qe(e);if(M(l))return l;let m=(await j(e,l)).tree,u=await nt(e,t);if(M(u))return u;let h=Mt(i),p=await bt(e,f,[l],s.author,u,h);await Gt(e),await Lt(e),await ye(e,"SQUASH_MSG");let g=await Q(e),w=ue(h),b=g?.type==="symbolic"?g.target:"HEAD";await fe(e,t,b,l,p,`commit (cherry-pick): ${w}`,g?.type==="symbolic");let x=g?.type==="symbolic"?Pe(g.target):"detached HEAD",y=await un(e,m,f,s.author,u,!0);return{stdout:`${Dt(x,p,i)}
333
+ ${y}`,stderr:"",exitCode:0}}function Jh(e,t){let n=`(cherry picked from commit ${t})`,r=e.replace(/\n+$/,""),o=r.lastIndexOf(`
334
334
  `),s=o===-1?r:r.slice(o+1);return/^\(cherry picked from commit [0-9a-f]+\)$/.test(s)?`${r}
335
335
  ${n}
336
336
  `:`${r}
337
337
 
338
338
  ${n}
339
- `}oe();Be();Xs();Ce();ue();function zf(e,t){e.command("clean",{description:"Remove untracked files from the working tree",args:[z.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:Z.string().alias("e").describe("Additional exclude pattern")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Je(s);if(i)return i;let a=s.workTree,c=n["dry-run"],f=n.force,l=n.directories,d=n.removeIgnored,m=n.onlyIgnored,u=await t?.hooks?.preClean?.({repo:s,dryRun:c,force:f,removeDirs:l,removeIgnored:d,onlyIgnored:m});if(ee(u))return{stdout:"",stderr:u.message??"",exitCode:1};if(!f&&!c&&await Re(s,"clean.requireForce")!=="false")return I("clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean");let h=await V(s),p=new Set(h.entries.map(P=>P.path)),g=dt(s,r.cwd),w=n.pathspec,y=w.length>0?w.map(P=>_e(P,g)):null,x=n.exclude?[n.exclude]:[],b=await Kf(s,a,"",{trackedPaths:p,removeDirs:l,removeIgnored:d,onlyIgnored:m,extraExcludes:x}),E;y?E=b.filter(P=>be(y,P.path)):E=b,E.sort((P,C)=>P.path<C.path?-1:P.path>C.path?1:0);let k=[];if(c)for(let P of E){let C=P.isDir?`Would remove ${P.path}/`:`Would remove ${P.path}`;k.push(C)}else for(let P of E){let C=S(a,P.path);P.isDir?(await r.fs.rm(C,{recursive:!0}),k.push(`Removing ${P.path}/`)):(await r.fs.rm(C),k.push(`Removing ${P.path}`))}let R=k.length>0?`${k.join(`
339
+ `}ie();qe();Zs();Ce();me();function Xf(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:V.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=Ye(s);if(i)return i;let a=s.workTree,c=n["dry-run"],f=n.force,l=n.directories,d=n.removeIgnored,m=n.onlyIgnored,u=await t?.hooks?.preClean?.({repo:s,dryRun:c,force:f,removeDirs:l,removeIgnored:d,onlyIgnored:m});if(ee(u))return{stdout:"",stderr:u.message??"",exitCode:1};if(!f&&!c&&await xe(s,"clean.requireForce")!=="false")return I("clean.requireForce defaults to true and neither -i, -n, nor -f given; refusing to clean");let h=await z(s),p=new Set(h.entries.map(C=>C.path)),g=ut(s,r.cwd),w=n.pathspec,b=w.length>0?w.map(C=>Ue(C,g)):null,x=n.exclude?[n.exclude]:[],y=await Zf(s,a,"",{trackedPaths:p,removeDirs:l,removeIgnored:d,onlyIgnored:m,extraExcludes:x}),k;b?k=y.filter(C=>Ee(b,C.path)):k=y,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=S(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(`
340
340
  `)}
341
- `:"";return await t?.hooks?.postClean?.({repo:s,removed:E.map(P=>P.path),dryRun:c}),{stdout:R,stderr:"",exitCode:0}}})}async function Kf(e,t,n,r){let o=[],s=!r.removeIgnored,i=null;if(s||r.onlyIgnored){i=r._ignore??await xr(e);let c=S(t,".gitignore");try{let f=await e.fs.readFile(c);i=nr(i,f,n,c)}catch{}if(!r._ignore&&r.extraExcludes.length>0){let f=r.extraExcludes.join(`
342
- `),l=is(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=S(t,c),l=n?`${n}/${c}`:c,d=await e.fs.stat(f);if(d.isDirectory){let m=i&&sn(i,l,!0)==="ignored",u=_h(r.trackedPaths,l),h=()=>Kf(e,f,l,{...r,_ignore:i??void 0});if(r.onlyIgnored){if(m&&!u){r.removeDirs&&o.push({path:l,isDir:!0});continue}let p=await h();!u&&r.removeDirs?p.length>0&&o.push({path:l,isDir:!0}):o.push(...p)}else if(u){let p=await h();o.push(...p)}else if(!(m&&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 m=i&&sn(i,l,!1)==="ignored";r.onlyIgnored?m&&o.push({path:l,isDir:!1}):m&&s||o.push({path:l,isDir:!1})}}return o}function _h(e,t){let n=`${t}/`;for(let r of e)if(r.startsWith(n))return!0;return!1}oe();Be();On();Ce();ie();ue();We();he();Dn();ie();ue();var ws=2147483647;async function vr(e){let t=S(e.gitDir,"shallow");try{let n=await e.fs.readFile(t),r=new Set;for(let o of n.split(`
343
- `)){let s=o.trim();s.length===40&&r.add(s)}return r}catch{return new Set}}async function Fh(e,t){let n=S(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
+ `:"";return await t?.hooks?.postClean?.({repo:s,removed:k.map(C=>C.path),dryRun:c}),{stdout:R,stderr:"",exitCode:0}}})}async function Zf(e,t,n,r){let o=[],s=!r.removeIgnored,i=null;if(s||r.onlyIgnored){i=r._ignore??await Or(e);let c=S(t,".gitignore");try{let f=await e.fs.readFile(c);i=or(i,f,n,c)}catch{}if(!r._ignore&&r.extraExcludes.length>0){let f=r.extraExcludes.join(`
342
+ `),l=as(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=S(t,c),l=n?`${n}/${c}`:c,d=await e.fs.stat(f);if(d.isDirectory){let m=i&&an(i,l,!0)==="ignored",u=Qh(r.trackedPaths,l),h=()=>Zf(e,f,l,{...r,_ignore:i??void 0});if(r.onlyIgnored){if(m&&!u){r.removeDirs&&o.push({path:l,isDir:!0});continue}let p=await h();!u&&r.removeDirs?p.length>0&&o.push({path:l,isDir:!0}):o.push(...p)}else if(u){let p=await h();o.push(...p)}else if(!(m&&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 m=i&&an(i,l,!1)==="ignored";r.onlyIgnored?m&&o.push({path:l,isDir:!1}):m&&s||o.push({path:l,isDir:!1})}}return o}function Qh(e,t){let n=`${t}/`;for(let r of e)if(r.startsWith(n))return!0;return!1}ie();qe();vn();Ce();ce();me();ze();ge();Gn();ce();me();var bs=2147483647;async function Ar(e){let t=S(e.gitDir,"shallow");try{let n=await e.fs.readFile(t),r=new Set;for(let o of n.split(`
343
+ `)){let s=o.trim();s.length===40&&r.add(s)}return r}catch{return new Set}}async function ep(e,t){let n=S(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(`
344
344
  `)+`
345
- `)}async function Po(e){return(await vr(e)).size>0}async function Tr(e,t,n){let r=n??await vr(e);for(let o of t.shallow)r.add(o);for(let o of t.unshallow)r.delete(o);await Fh(e,r)}async function Vf(e,t,n,r){if(n>=ws)return{shallow:[],unshallow:[...r]};let o=new Map,s=[];for(let f of t)!o.has(f)&&await Vt(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 m of d.parents)!o.has(m)&&await Vt(e,m)&&(o.set(m,l+1),s.push({hash:m,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}}Be();Dn();mt();ie();var Oo=new Uint32Array([0,2874782929,1454598562,4260027763,104818581,2909197124,1351355959,4225088230,209637162,2804382715,1523426952,4053013081,172075199,2702711918,1559413021,4155209164,419274324,3013880453,1313798134,3843506983,516094401,3046853904,1215402083,3811058866,344150398,3218793903,1110456540,3916008461,314324715,3118826042,1141858121,4015451032,838548648,2594343033,1732793610,3423723995,935615293,2627596268,1635201695,3392046670,1032188802,2531018579,1798740512,3228511985,1002083351,2430804166,1829371317,3327150436,688300796,2187269677,2142620510,3572268943,792315241,2220913080,2039131339,3537049626,628649430,2384582919,1942684788,3633492133,591858243,2283716242,1978950625,3735934768,1677097296,3366964609,893718770,2652677155,1707679429,3465587220,863663975,2552480694,1871230586,3302032043,960225240,2455923465,1773654511,3270403390,1057273933,2489126044,2064377604,3495056341,767069862,2262907511,2100592785,3597481024,730327347,2162056674,2004166702,3693911295,566641036,2325738845,1900695483,3658742634,670639641,2359333576,1376601592,4183093545,79572058,2951190667,1412571757,4285241020,42027983,2849570590,1584630482,4113186307,146858864,2744735649,1481436487,4078262678,251626725,2779131956,1257298860,3785977725,474198542,3071936223,1288682553,3885369576,444388763,2972016970,1183716486,3990331479,272465188,3143944693,1085371155,3957901250,369236657,3176902240,1823819377,3354194592,973483987,2438961922,1787437540,3251868981,1010387014,2539715735,1623951707,3415358858,913891577,2636207144,1727327950,3450690079,809994092,2602447805,1950930981,3742461172,586920327,2309096790,1920450480,3643673441,616879634,2409456323,2016810767,3547309022,780500653,2245839484,2114547866,3578840139,683284792,2212736489,1565424345,4128755208,201134971,2695145386,1534139724,4029196701,230847726,2795225151,1362146803,4201185570,126082129,2899994752,1460654694,4233520823,29146052,2867138325,1169417357,4008333404,318803247,3092855294,1133282072,3906287561,356510394,3194379883,1238182823,3801390966,528368133,3022517972,1341279282,3836475619,423699856,2987954497,256065313,2753203184,1508923011,4071219794,159144116,2720394341,1607414038,4103505351,54390795,2825143514,1435408809,4275514744,84055966,2925208399,1404173884,4175973101,398369141,3169260964,1091422423,3931405318,293717728,3134747185,1194504002,3966442387,465595999,2962872974,1299384317,3861558060,503253450,3064380699,1263296616,3759527097,1052246921,2514597720,1745578539,3276988154,948397084,2480853197,1848905150,3312302447,851889315,2577365106,1685431553,3475771856,888777526,2678071271,1649066644,3373495877,642096605,2367432972,1895232639,3685695662,544930376,2334346905,1992922090,3717211963,708530935,2170742310,2089302869,3620835204,738473314,2271052211,2058837184,3522095121]),Uh=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]),$o=64,Bh=4,Yi=4096,Yf=65536,Wh=127;function qh(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=Kh(r);let o=r-1,s=new Uint32Array(r),i=[],a=-1>>>0;for(let m=n*16-16;m>=0;m-=16){let u=0;for(let h=1;h<=16;h++)u=(u<<8|e[m+h])^Oo[u>>>23];if(u=u>>>0,u===a)i[i.length-1].ptr=m+16;else{a=u;let h=u&o;i.push({ptr:m+16,val:u}),s[h]++}}let c=new Map;for(let m of i){let u=m.val&o,h=c.get(u);h||(h=[],c.set(u,h)),h.push(m)}for(let[m,u]of c){if(u.length<=$o)continue;let h=[],p=u.length/$o;for(let g=0;g<$o;g++)h.push(u[Math.floor(g*p)]);c.set(m,h),s[m]=$o}let f=new Uint32Array(r+1),l=[],d=0;for(let m=0;m<r;m++){f[m]=d;let u=c.get(m);if(u){for(let h of u)l.push(h);d+=u.length}}return f[r]=d,{src:e,hashMask:o,buckets:f,entries:l}}function zh(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=Zf(i,a,r),a=Zf(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])^Oo[f>>>23],l++;f=f>>>0;let m=d,u=0,h=0;for(;m<o;){if(h<Yi){f^=Uh[t[m-16]],f=((f<<8|t[m])^Oo[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,E=s.byteLength-b,k=o-m;if(E>k&&(E=k),E<=h)break;let R=0;for(;R<E&&s[b+R]===t[m+R];)R++;if(R>h&&(h=R,u=b,h>=Yi))break}}if(h<Bh)c(2),l===0&&a++,i[a++]=t[m++],l++,l===Wh&&(i[a-l-1]=l,l=0),h=0;else{if(l>0){for(;u>0&&s[u-1]===t[m-1];)if(h++,u--,m--,a--,!(--l>0)){a--,l=-1;break}l>0&&(i[a-l-1]=l),l=0}let p=h>Yf?h-Yf:0;h-=p,c(8);let g=a++,w=128;if(u&255&&(i[a++]=u&255,w|=1),u&65280&&(i[a++]=u>>>8&255,w|=2),u&16711680&&(i[a++]=u>>>16&255,w|=4),u&4278190080&&(i[a++]=u>>>24&255,w|=8),h&255&&(i[a++]=h&255,w|=16),h&65280&&(i[a++]=h>>>8&255,w|=32),i[g]=w,m+=h,u+=h,h=p,u>4294967295&&(h=0),h<Yi){f=0;for(let y=-16;y<0;y++)f=(f<<8|t[m+y])^Oo[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 Xf={blob:0,tree:1,commit:2,tag:3};function Io(e,t){let n=t?.window??10,r=t?.depth??50,o=e.slice().sort((f,l)=>{let d=Xf[f.type]??99,m=Xf[l.type]??99;return d!==m?d-m: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},m=null,u=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=m?m.byteLength:l.content.byteLength/2|0;if(b<16)continue;let E=zh(x,l.content,b);E&&(!m||E.byteLength<m.byteLength)&&(m=E,u=g.hash)}if(m&&u){d.delta=m,d.deltaBase=u;let p=s.get(u);d.depth=(p?.depth??0)+1}s.set(l.hash,d),i.push(d),a.length>=n&&(a.shift(),c.shift()),a.push(qh(l.content)),c.push(l.hash)}return i}function Kh(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 Zf(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}Yr();he();ie();hn();Qr();zs();async function Vh(e,t,n,r,o){let s=o??r,i=new Set;for(let l of n)await bs(e,l,i,s);let a=[...t];if(o&&r)for(let l of o)try{let d=await j(e,l);for(let m of d.parents)i.has(m)||a.push(m)}catch{}let c=[],f=new Set;for(let l of a)await ys(e,l,i,f,c,r);return{count:c.length,objects:Yh(c)}}async function Hr(e,t,n,r,o){let{count:s,objects:i}=await Vh(e,t,n,r,o);return{count:s,objects:Xh(e,i)}}async function*Yh(e){for(let t of e)yield t}async function*Xh(e,t){for await(let n of t){let r=await ye(e,n.hash);yield{hash:n.hash,type:n.type,content:r.content}}}async function Ar(e){let t=[];for await(let n of e.objects)t.push(n);return t}async function bs(e,t,n,r){if(n.has(t)||(n.add(t),!await Vt(e,t)))return;let o=await ye(e,t);switch(o.type){case"commit":{let s=nn(o.content);if(await bs(e,s.tree,n,r),!r?.has(t))for(let i of s.parents)await bs(e,i,n,r);break}case"tree":{let s=Gn(o.content);for(let i of s.entries)await bs(e,i.hash,n,r);break}case"tag":{let s=pn(o.content);await bs(e,s.object,n,r);break}case"blob":break}}async function ys(e,t,n,r,o,s){if(r.has(t)||n.has(t))return;r.add(t);let i=await ye(e,t);switch(o.push({hash:t,type:i.type}),i.type){case"commit":{let a=nn(i.content);if(await ys(e,a.tree,n,r,o,s),!s?.has(t))for(let c of a.parents)await ys(e,c,n,r,o,s);break}case"tree":{let a=Gn(i.content);for(let c of a.entries)await ys(e,c.hash,n,r,o,s);break}case"tag":{let a=pn(i.content);await ys(e,a.object,n,r,o,s);break}case"blob":break}}var Zh=new TextEncoder,So=new TextDecoder,Jf=65520,Jh=new Uint8Array([48,48,48,48]);function Pn(e){let t=typeof e=="string"?Zh.encode(e):e,n=4+t.byteLength;if(n>Jf)throw new Error(`pkt-line too long: ${n} bytes (max ${Jf})`);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 Xi(){return Jh.slice()}function vo(...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 Dr(e){let t=[],n=0;for(;n<e.byteLength;){if(n+4>e.byteLength)throw new Error("Truncated pkt-line header");let r=So.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 To(e){if(e.type==="flush")return"";let t=So.decode(e.data);return t.endsWith(`
346
- `)?t.slice(0,-1):t}var Qh=1,ep=2,tp=3;function Zi(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 Qh:t.push(f),o+=f.byteLength;break;case ep:n.push(So.decode(f));break;case tp:r.push(So.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}}mt();function Ji(e){return e?e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:{Authorization:`Basic ${btoa(`${e.username}:${e.password}`)}`}:{}}async function Qi(e,t,n,r=globalThis.fetch){let o=e.replace(/\/+$/,""),s=await r(`${o}/info/refs?service=${t}`,{headers:{...Ji(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=Dr(c);return np(f,t)}function np(e,t){let n=0,r=e[n];r?.type==="data"&&To(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 m=l.slice(0,d),u=l.slice(d+1);if(!(m===te&&u==="capabilities^{}")){if(u.endsWith("^{}")){let h=u.slice(0,-3),p=o.find(g=>g.name===h);p&&(p.peeledHash=m);continue}o.push({name:u,hash:m})}}return{refs:o,capabilities:s,symrefs:i}}var rp=["multi_ack_detailed","no-done","side-band-64k","ofs-delta","include-tag","shallow"];async function Qf(e,t,n,r,o,s=globalThis.fetch,i){if(t.length===0)throw new Error("fetchPack requires at least one want");let a=tl(r,rp),c=[];c.push(Pn(`want ${t[0]} ${a.join(" ")}
347
- `));for(let u=1;u<t.length;u++)c.push(Pn(`want ${t[u]}
348
- `));if(i?.existingShallows)for(let u of i.existingShallows)c.push(Pn(`shallow ${u}
349
- `));i?.depth!==void 0&&c.push(Pn(`deepen ${i.depth}
350
- `)),c.push(Xi());for(let u of n)c.push(Pn(`have ${u}
351
- `));c.push(Pn(`done
352
- `));let f=vo(...c),l=e.replace(/\/+$/,""),d=await s(`${l}/git-upload-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-upload-pack-request",...Ji(o),"User-Agent":"just-git/1.0"},body:f});if(!d.ok)throw new Error(`HTTP ${d.status} fetching pack from ${l}`);let m=new Uint8Array(await d.arrayBuffer());return sp(m,a.includes("side-band-64k"))}function sp(e,t){let n=Dr(e),r=[],o=[],s=[],i=0;for(let d=0;d<n.length;d++){let m=n[d];if(!m||m.type==="flush"){i=d+1;continue}if(m.type!=="data")continue;let u=To(m);if(u.startsWith("shallow "))o.push(u.slice(8)),i=d+1;else if(u.startsWith("unshallow "))s.push(u.slice(10)),i=d+1;else if(u.startsWith("ACK ")||u==="NAK")r.push(u),i=d+1;else{i=d;break}}let a=n.slice(i);if(t){let{packData:d,progress:m,errors:u}=Zi(a);if(u.length>0)throw new Error(`Remote error: ${u.join("")}`);return{packData:d,acks:r,progress:m,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 op=["report-status","side-band-64k","ofs-delta","delete-refs"];async function el(e,t,n,r,o,s=globalThis.fetch){if(t.length===0)throw new Error("pushPack requires at least one command");let i=tl(r,op),a=[],[c,...f]=t;if(!c)throw new Error("pushPack requires at least one command");a.push(Pn(`${c.oldHash} ${c.newHash} ${c.refName}\0${i.join(" ")}
353
- `));for(let h of f)a.push(Pn(`${h.oldHash} ${h.newHash} ${h.refName}
354
- `));a.push(Xi());let l;if(n&&n.byteLength>0){let h=vo(...a);l=new Uint8Array(h.byteLength+n.byteLength),l.set(h,0),l.set(n,h.byteLength)}else l=vo(...a);let d=e.replace(/\/+$/,""),m=await s(`${d}/git-receive-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-receive-pack-request",...Ji(o),"User-Agent":"just-git/1.0"},body:l});if(!m.ok)throw new Error(`HTTP ${m.status} pushing to ${d}`);let u=new Uint8Array(await m.arrayBuffer());return i.includes("report-status")?ip(u,i.includes("side-band-64k")):{unpackOk:!0,refResults:[],progress:[]}}function ip(e,t){let n,r=[];if(t){let a=Dr(e),{packData:c,progress:f,errors:l}=Zi(a);if(l.length>0)throw new Error(`Remote error: ${l.join("")}`);r=f,n=Dr(c)}else n=Dr(e);let o=!1,s,i=[];for(let a of n){if(a.type==="flush")break;let c=To(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 tl(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 Es=class{constructor(t,n){this.local=t;this.remote=n}headTarget;async advertiseRefs(){let t=await we(this.remote),n=[];for(let s of t)n.push({name:s.name,hash:s.hash});let r=await U(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 Vf(this.remote,t,r.depth,l);i=d,s=new Set(d.shallow),l.size>0&&(a=l)}let c=await ea(this.remote,t,n,s,a);if(!c)return{remoteRefs:o,objectCount:0,shallowUpdates:i};let f=await Us(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 ea(this.local,n,r);s&&await Us(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 xn(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}}},ks=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 Qi(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 Qi(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 Qf(this.url,t,n,o,this.auth,this.fetchFn,r);if(i.packData.byteLength===0)return{remoteRefs:s,objectCount:0};let a=await Us(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 xn(this.local,l.oldHash,l.newHash))return{updates:t.map(m=>m===l?{...m,ok:!1,error:"non-fast-forward"}:{...m,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 ea(this.local,o,s)??null);let c=await el(this.url,r,a,n,this.auth,this.fetchFn);return{updates:t.map(l=>{let d=c.refResults.find(h=>h.name===l.name),m=d?.ok??c.unpackOk,u=d?.error??(!m&&c.unpackError?`unpack failed: ${c.unpackError}`:void 0);return{...l,ok:m,error:u}})}}};async function ea(e,t,n,r,o){let s=await Hr(e,t,n,r,o);if(s.count===0)return;let i=await Ar(s),c=Io(i).map(l=>({hash:l.hash,type:l.type,content:l.content,delta:l.delta,deltaBaseHash:l.deltaBase})),{data:f}=await _s(c);return f}async function ap(e,t){let r=(await pe(e))[`remote "${t}"`];return r?.url?{name:t,url:r.url,fetchRefspec:r.fetch??"+refs/heads/*:refs/remotes/origin/*"}:null}function ta(e){return e.startsWith("http://")||e.startsWith("https://")}function nl(e){return e.startsWith("ssh://")||e.startsWith("git@")||e.startsWith("git+ssh://")}function rl(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(ta(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 cp(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 sl(e,t,n){if(e.credentialProvider){let r=await e.credentialProvider(t);if(r)return r}return cp(n)}async function ol(e,t,n,r){if(ta(t)){let o=rl(t,e.networkPolicy);if(o)throw new Error(o);let s=await sl(e,t,n);return new ks(e,t,s,e.fetchFn)}if(!r&&e.resolveRemote&&(r=await e.resolveRemote(t)??void 0),!r)throw nl(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 Es(e,r)}async function Mr(e,t,n){let r=await ap(e,t);if(!r)return null;if(ta(r.url)){let s=rl(r.url,e.networkPolicy);if(s)throw new Error(s);let i=n?await sl(e,r.url,n):void 0;return{transport:new ks(e,r.url,i,e.fetchFn),config:r}}let o=(e.resolveRemote?await e.resolveRemote(r.url):null)??await Qn(e.fs,r.url);if(!o){if(nl(r.url))throw new Error(`SSH transport is not supported. Use an HTTPS URL instead of '${r.url}'.`);return null}return{transport:new Es(e,o),config:r}}ve();st();function il(e,t){e.command("clone",{description:"Clone a repository into a new directory",args:[z.string().name("repository").describe("Repository to clone"),z.string().name("directory").describe("Target directory").optional()],options:{bare:$().describe("Create a bare clone"),branch:Z.string().alias("b").describe("Checkout this branch instead of HEAD"),depth:Z.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:vt(r.cwd,o),a=n.branch,c=n.directory;if(!c){let O=s?o.split("/").pop()??o:_r(i);O.endsWith(".git")&&(O=O.slice(0,-4)),c=O}let f=vt(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 Qn(r.fs,i)),!d))return I(`repository '${o}' does not exist`);await r.fs.mkdir(f,{recursive:!0});let{ctx:m}=await Bs(r.fs,f,{bare:n.bare}),u=t?{...m,hooks:t.hooks,credentialProvider:t.credentialProvider,identityOverride:t.identityOverride,fetchFn:t.fetchFn,networkPolicy:t.networkPolicy,resolveRemote:t.resolveRemote}:m,h=await pe(u);h['remote "origin"']={url:i,fetch:"+refs/heads/*:refs/remotes/origin/*"},await Ze(u,h);let p;try{p=await ol(u,i,r.env,d??void 0)}catch(O){let A=O instanceof Error?O.message:"";return A.startsWith("network")?I(A):I(`repository '${o}' does not exist`)}let g=await p.advertiseRefs();if(g.length===0)return await t?.hooks?.postClone?.({repo:m,repository:o,targetPath:f,bare:n.bare,branch:a??null}),{stdout:"",stderr:`Cloning into '${c}'...
345
+ `)}async function $o(e){return(await Ar(e)).size>0}async function Dr(e,t,n){let r=n??await Ar(e);for(let o of t.shallow)r.add(o);for(let o of t.unshallow)r.delete(o);await ep(e,r)}async function Jf(e,t,n,r){if(n>=bs)return{shallow:[],unshallow:[...r]};let o=new Map,s=[];for(let f of t)!o.has(f)&&await Vt(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 m of d.parents)!o.has(m)&&await Vt(e,m)&&(o.set(m,l+1),s.push({hash:m,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}}qe();Gn();ht();ce();var Io=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]),tp=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]),Oo=64,np=4,Qi=4096,Qf=65536,rp=127;function sp(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=ip(r);let o=r-1,s=new Uint32Array(r),i=[],a=-1>>>0;for(let m=n*16-16;m>=0;m-=16){let u=0;for(let h=1;h<=16;h++)u=(u<<8|e[m+h])^Io[u>>>23];if(u=u>>>0,u===a)i[i.length-1].ptr=m+16;else{a=u;let h=u&o;i.push({ptr:m+16,val:u}),s[h]++}}let c=new Map;for(let m of i){let u=m.val&o,h=c.get(u);h||(h=[],c.set(u,h)),h.push(m)}for(let[m,u]of c){if(u.length<=Oo)continue;let h=[],p=u.length/Oo;for(let g=0;g<Oo;g++)h.push(u[Math.floor(g*p)]);c.set(m,h),s[m]=Oo}let f=new Uint32Array(r+1),l=[],d=0;for(let m=0;m<r;m++){f[m]=d;let u=c.get(m);if(u){for(let h of u)l.push(h);d+=u.length}}return f[r]=d,{src:e,hashMask:o,buckets:f,entries:l}}function op(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=tl(i,a,r),a=tl(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])^Io[f>>>23],l++;f=f>>>0;let m=d,u=0,h=0;for(;m<o;){if(h<Qi){f^=tp[t[m-16]],f=((f<<8|t[m])^Io[f>>>23])>>>0;let p=f&e.hashMask,g=e.buckets[p],w=e.buckets[p+1];for(let b=g;b<w;b++){let x=e.entries[b];if(x.val!==f)continue;let y=x.ptr,k=s.byteLength-y,E=o-m;if(k>E&&(k=E),k<=h)break;let R=0;for(;R<k&&s[y+R]===t[m+R];)R++;if(R>h&&(h=R,u=y,h>=Qi))break}}if(h<np)c(2),l===0&&a++,i[a++]=t[m++],l++,l===rp&&(i[a-l-1]=l,l=0),h=0;else{if(l>0){for(;u>0&&s[u-1]===t[m-1];)if(h++,u--,m--,a--,!(--l>0)){a--,l=-1;break}l>0&&(i[a-l-1]=l),l=0}let p=h>Qf?h-Qf:0;h-=p,c(8);let g=a++,w=128;if(u&255&&(i[a++]=u&255,w|=1),u&65280&&(i[a++]=u>>>8&255,w|=2),u&16711680&&(i[a++]=u>>>16&255,w|=4),u&4278190080&&(i[a++]=u>>>24&255,w|=8),h&255&&(i[a++]=h&255,w|=16),h&65280&&(i[a++]=h>>>8&255,w|=32),i[g]=w,m+=h,u+=h,h=p,u>4294967295&&(h=0),h<Qi){f=0;for(let b=-16;b<0;b++)f=(f<<8|t[m+b])^Io[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 el={blob:0,tree:1,commit:2,tag:3};function So(e,t){let n=t?.window??10,r=t?.depth??50,o=e.slice().sort((f,l)=>{let d=el[f.type]??99,m=el[l.type]??99;return d!==m?d-m: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},m=null,u=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 y=m?m.byteLength:l.content.byteLength/2|0;if(y<16)continue;let k=op(x,l.content,y);k&&(!m||k.byteLength<m.byteLength)&&(m=k,u=g.hash)}if(m&&u){d.delta=m,d.deltaBase=u;let p=s.get(u);d.depth=(p?.depth??0)+1}s.set(l.hash,d),i.push(d),a.length>=n&&(a.shift(),c.shift()),a.push(sp(l.content)),c.push(l.hash)}return i}function ip(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 tl(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}Cr();ge();ce();gn();$r();Vs();async function ap(e,t,n,r,o){let s=o??r,i=new Set;for(let l of n)await ys(e,l,i,s);let a=[...t];if(o&&r)for(let l of o)try{let d=await j(e,l);for(let m of d.parents)i.has(m)||a.push(m)}catch{}let c=[],f=new Set;for(let l of a)await Es(e,l,i,f,c,r);return{count:c.length,objects:cp(c)}}async function Mr(e,t,n,r,o){let{count:s,objects:i}=await ap(e,t,n,r,o);return{count:s,objects:fp(e,i)}}async function*cp(e){for(let t of e)yield t}async function*fp(e,t){for await(let n of t){let r=await be(e,n.hash);yield{hash:n.hash,type:n.type,content:r.content}}}async function jr(e){let t=[];for await(let n of e.objects)t.push(n);return t}async function ys(e,t,n,r){if(n.has(t)||(n.add(t),!await Vt(e,t)))return;let o=await be(e,t);switch(o.type){case"commit":{let s=nn(o.content);if(await ys(e,s.tree,n,r),!r?.has(t))for(let i of s.parents)await ys(e,i,n,r);break}case"tree":{let s=_n(o.content);for(let i of s.entries)await ys(e,i.hash,n,r);break}case"tag":{let s=Kt(o.content);await ys(e,s.object,n,r);break}case"blob":break}}async function Es(e,t,n,r,o,s){if(r.has(t)||n.has(t))return;r.add(t);let i=await be(e,t);switch(o.push({hash:t,type:i.type}),i.type){case"commit":{let a=nn(i.content);if(await Es(e,a.tree,n,r,o,s),!s?.has(t))for(let c of a.parents)await Es(e,c,n,r,o,s);break}case"tree":{let a=_n(i.content);for(let c of a.entries)await Es(e,c.hash,n,r,o,s);break}case"tag":{let a=Kt(i.content);await Es(e,a.object,n,r,o,s);break}case"blob":break}}var lp=new TextEncoder,vo=new TextDecoder,nl=65520,dp=new Uint8Array([48,48,48,48]);function On(e){let t=typeof e=="string"?lp.encode(e):e,n=4+t.byteLength;if(n>nl)throw new Error(`pkt-line too long: ${n} bytes (max ${nl})`);let r=n.toString(16).padStart(4,"0"),o=new Uint8Array(n);return o[0]=r.charCodeAt(0),o[1]=r.charCodeAt(1),o[2]=r.charCodeAt(2),o[3]=r.charCodeAt(3),o.set(t,4),o}function ea(){return dp.slice()}function To(...e){let t=0;for(let o of e)t+=o.byteLength;let n=new Uint8Array(t),r=0;for(let o of e)n.set(o,r),r+=o.byteLength;return n}function Gr(e){let t=[],n=0;for(;n<e.byteLength;){if(n+4>e.byteLength)throw new Error("Truncated pkt-line header");let r=vo.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 Ho(e){if(e.type==="flush")return"";let t=vo.decode(e.data);return t.endsWith(`
346
+ `)?t.slice(0,-1):t}var up=1,mp=2,hp=3;function ta(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 up:t.push(f),o+=f.byteLength;break;case mp:n.push(vo.decode(f));break;case hp:r.push(vo.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}}ht();function na(e){return e?e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:{Authorization:`Basic ${btoa(`${e.username}:${e.password}`)}`}:{}}async function ra(e,t,n,r=globalThis.fetch){let o=e.replace(/\/+$/,""),s=await r(`${o}/info/refs?service=${t}`,{headers:{...na(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=Gr(c);return pp(f,t)}function pp(e,t){let n=0,r=e[n];r?.type==="data"&&Ho(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 m=l.slice(0,d),u=l.slice(d+1);if(!(m===te&&u==="capabilities^{}")){if(u.endsWith("^{}")){let h=u.slice(0,-3),p=o.find(g=>g.name===h);p&&(p.peeledHash=m);continue}o.push({name:u,hash:m})}}return{refs:o,capabilities:s,symrefs:i}}var gp=["multi_ack_detailed","no-done","side-band-64k","ofs-delta","include-tag","shallow"];async function rl(e,t,n,r,o,s=globalThis.fetch,i){if(t.length===0)throw new Error("fetchPack requires at least one want");let a=ol(r,gp),c=[];c.push(On(`want ${t[0]} ${a.join(" ")}
347
+ `));for(let u=1;u<t.length;u++)c.push(On(`want ${t[u]}
348
+ `));if(i?.existingShallows)for(let u of i.existingShallows)c.push(On(`shallow ${u}
349
+ `));i?.depth!==void 0&&c.push(On(`deepen ${i.depth}
350
+ `)),c.push(ea());for(let u of n)c.push(On(`have ${u}
351
+ `));c.push(On(`done
352
+ `));let f=To(...c),l=e.replace(/\/+$/,""),d=await s(`${l}/git-upload-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-upload-pack-request",...na(o),"User-Agent":"just-git/1.0"},body:f});if(!d.ok)throw new Error(`HTTP ${d.status} fetching pack from ${l}`);let m=new Uint8Array(await d.arrayBuffer());return wp(m,a.includes("side-band-64k"))}function wp(e,t){let n=Gr(e),r=[],o=[],s=[],i=0;for(let d=0;d<n.length;d++){let m=n[d];if(!m||m.type==="flush"){i=d+1;continue}if(m.type!=="data")continue;let u=Ho(m);if(u.startsWith("shallow "))o.push(u.slice(8)),i=d+1;else if(u.startsWith("unshallow "))s.push(u.slice(10)),i=d+1;else if(u.startsWith("ACK ")||u==="NAK")r.push(u),i=d+1;else{i=d;break}}let a=n.slice(i);if(t){let{packData:d,progress:m,errors:u}=ta(a);if(u.length>0)throw new Error(`Remote error: ${u.join("")}`);return{packData:d,acks:r,progress:m,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 bp=["report-status","side-band-64k","ofs-delta","delete-refs"];async function sl(e,t,n,r,o,s=globalThis.fetch){if(t.length===0)throw new Error("pushPack requires at least one command");let i=ol(r,bp),a=[],[c,...f]=t;if(!c)throw new Error("pushPack requires at least one command");a.push(On(`${c.oldHash} ${c.newHash} ${c.refName}\0${i.join(" ")}
353
+ `));for(let h of f)a.push(On(`${h.oldHash} ${h.newHash} ${h.refName}
354
+ `));a.push(ea());let l;if(n&&n.byteLength>0){let h=To(...a);l=new Uint8Array(h.byteLength+n.byteLength),l.set(h,0),l.set(n,h.byteLength)}else l=To(...a);let d=e.replace(/\/+$/,""),m=await s(`${d}/git-receive-pack`,{method:"POST",headers:{"Content-Type":"application/x-git-receive-pack-request",...na(o),"User-Agent":"just-git/1.0"},body:l});if(!m.ok)throw new Error(`HTTP ${m.status} pushing to ${d}`);let u=new Uint8Array(await m.arrayBuffer());return i.includes("report-status")?yp(u,i.includes("side-band-64k")):{unpackOk:!0,refResults:[],progress:[]}}function yp(e,t){let n,r=[];if(t){let a=Gr(e),{packData:c,progress:f,errors:l}=ta(a);if(l.length>0)throw new Error(`Remote error: ${l.join("")}`);r=f,n=Gr(c)}else n=Gr(e);let o=!1,s,i=[];for(let a of n){if(a.type==="flush")break;let c=Ho(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 ol(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 ks=class{constructor(t,n){this.local=t;this.remote=n}headTarget;async advertiseRefs(){let t=await pe(this.remote),n=[];for(let s of t)n.push({name:s.name,hash:s.hash});let r=await B(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 sa(this.remote,t,n,s,a);if(!c)return{remoteRefs:o,objectCount:0,shallowUpdates:i};let f=await Ws(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 sa(this.local,n,r);s&&await Ws(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 Pn(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}}},Rs=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 ra(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 ra(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 rl(this.url,t,n,o,this.auth,this.fetchFn,r);if(i.packData.byteLength===0)return{remoteRefs:s,objectCount:0};let a=await Ws(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 Pn(this.local,l.oldHash,l.newHash))return{updates:t.map(m=>m===l?{...m,ok:!1,error:"non-fast-forward"}:{...m,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 sa(this.local,o,s)??null);let c=await sl(this.url,r,a,n,this.auth,this.fetchFn);return{updates:t.map(l=>{let d=c.refResults.find(h=>h.name===l.name),m=d?.ok??c.unpackOk,u=d?.error??(!m&&c.unpackError?`unpack failed: ${c.unpackError}`:void 0);return{...l,ok:m,error:u}})}}};async function sa(e,t,n,r,o){let s=await Mr(e,t,n,r,o);if(s.count===0)return;let i=await jr(s),c=So(i).map(l=>({hash:l.hash,type:l.type,content:l.content,delta:l.delta,deltaBaseHash:l.deltaBase})),{data:f}=await Us(c);return f}async function Ep(e,t){let r=(await we(e))[`remote "${t}"`];return r?.url?{name:t,url:r.url,fetchRefspec:r.fetch??"+refs/heads/*:refs/remotes/origin/*"}:null}function oa(e){return e.startsWith("http://")||e.startsWith("https://")}function il(e){return e.startsWith("ssh://")||e.startsWith("git@")||e.startsWith("git+ssh://")}function al(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(oa(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 kp(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 cl(e,t,n){if(e.credentialProvider){let r=await e.credentialProvider(t);if(r)return r}return kp(n)}async function fl(e,t,n,r){if(oa(t)){let o=al(t,e.networkPolicy);if(o)throw new Error(o);let s=await cl(e,t,n);return new Rs(e,t,s,e.fetchFn)}if(!r&&e.resolveRemote&&(r=await e.resolveRemote(t)??void 0),!r)throw il(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 ks(e,r)}async function Lr(e,t,n){let r=await Ep(e,t);if(!r)return null;if(oa(r.url)){let s=al(r.url,e.networkPolicy);if(s)throw new Error(s);let i=n?await cl(e,r.url,n):void 0;return{transport:new Rs(e,r.url,i,e.fetchFn),config:r}}let o=(e.resolveRemote?await e.resolveRemote(r.url):null)??await rr(e.fs,r.url);if(!o){if(il(r.url))throw new Error(`SSH transport is not supported. Use an HTTPS URL instead of '${r.url}'.`);return null}return{transport:new ks(e,o),config:r}}He();tt();function ll(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:V.string().alias("b").describe("Checkout this branch instead of HEAD"),depth:V.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=n.branch,a=null,c=o;if(s)c=o;else if(t?.resolveRemote&&(a=await t.resolveRemote(o)),a||(c=Tt(r.cwd,o),a=await rr(r.fs,c)),!a)return I(`repository '${o}' does not exist`);let f=n.directory;if(!f){let O;s||o.includes("://")?O=o.split("/").pop()??o:O=Br(c),O.endsWith(".git")&&(O=O.slice(0,-4)),f=O}let l=Tt(r.cwd,f),d=await t?.hooks?.preClone?.({repository:o,targetPath:l,bare:n.bare,branch:i??null});if(ee(d))return L(d.message??"");if(await r.fs.exists(l))try{if((await r.fs.readdir(l)).length>0)return I(`destination path '${f}' already exists and is not an empty directory.`)}catch{return I(`destination path '${f}' already exists and is not an empty directory.`)}await r.fs.mkdir(l,{recursive:!0});let{ctx:m}=await qs(r.fs,l,{bare:n.bare}),u=t?{...m,hooks:t.hooks,credentialProvider:t.credentialProvider,identityOverride:t.identityOverride,fetchFn:t.fetchFn,networkPolicy:t.networkPolicy,resolveRemote:t.resolveRemote}:m,h=await we(u);h['remote "origin"']={url:c,fetch:"+refs/heads/*:refs/remotes/origin/*"},await Je(u,h);let p;try{p=await fl(u,c,r.env,a??void 0)}catch(O){let A=O instanceof Error?O.message:"";return A.startsWith("network")?I(A):I(`repository '${o}' does not exist`)}let g=await p.advertiseRefs();if(g.length===0)return await t?.hooks?.postClone?.({repo:m,repository:o,targetPath:l,bare:n.bare,branch:i??null}),{stdout:"",stderr:`Cloning into '${f}'...
355
355
  warning: You appear to have cloned an empty repository.
356
- `,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 Tr(u,O.shallowUpdates)}let E=g.find(O=>O.name==="HEAD"),k=null,R=null,P=await en(u,r.env),C=`clone: from ${i}`,H=p.headTarget;H?.startsWith("refs/heads/")&&g.some(O=>O.name===H)&&(k=H.slice(11),R=g.find(O=>O.name===H)?.hash??null);for(let O of g)if(O.name!=="HEAD"){if(O.name.startsWith("refs/heads/")){let A=O.name.slice(11),G=`refs/remotes/origin/${A}`;await X(u,G,O.hash),await Ye(u,G,{oldHash:te,newHash:O.hash,name:P.name,email:P.email,timestamp:P.timestamp,tz:P.tz,message:C}),!k&&E&&O.hash===E.hash&&(k=A,R=O.hash)}O.name.startsWith("refs/tags/")&&await X(u,O.name,O.hash)}if(a){let O=g.find(A=>A.name===`refs/heads/${a}`);if(!O)return I(`Remote branch '${a}' not found in upstream origin`);k=a,R=O.hash}if(!k){let O=g.find(A=>A.name.startsWith("refs/heads/"));O&&(k=O.name.slice(11),R=O.hash)}if(n.bare)return k&&await Ve(u,"HEAD",`refs/heads/${k}`),await t?.hooks?.postClone?.({repo:u,repository:o,targetPath:f,bare:n.bare,branch:k}),{stdout:"",stderr:`Cloning into bare repository '${c}'...
357
- `,exitCode:0};if(k&&await Ve(u,"refs/remotes/origin/HEAD",`refs/remotes/origin/${k}`),k&&R){await X(u,`refs/heads/${k}`,R),await Ve(u,"HEAD",`refs/heads/${k}`);let O={oldHash:te,newHash:R,name:P.name,email:P.email,timestamp:P.timestamp,tz:P.tz,message:C};await Ye(u,`refs/heads/${k}`,O),await Ye(u,"HEAD",O);let A=await pe(u);A[`branch "${k}"`]={remote:"origin",merge:`refs/heads/${k}`},await Ze(u,A);let G=await j(u,R);await Uc(u,G.tree);let v=await qe(u,G.tree),T=Gs(v.map(_=>({path:_.path,mode:parseInt(_.mode,8),hash:_.hash,stage:0,stat:Ie()})));await ce(u,T)}let D={stdout:"",stderr:`Cloning into '${c}'...
358
- `,exitCode:0};return await t?.hooks?.postClone?.({repo:u,repository:o,targetPath:f,bare:n.bare,branch:k}),D}})}oe();Ce();ie();hn();ue();We();he();ve();st();function al(e,t){e.command("commit",{description:"Record changes to the repository",options:{message:Z.string().alias("m").repeatable().describe("Commit message"),file:Z.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)=>{let o=n.message;if(o.length>0&&n.file!==void 0)return I("options '-m' and '-F' cannot be used together");let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=await V(i);if(n.all){let ae=Je(i);if(ae)return ae;let Ue=await At(i,a);for(let Xe of Ue)Xe.status==="modified"?a=(await on(i,a,Xe.path)).index:Xe.status==="deleted"&&(a=ft(a,Xe.path));let Rt=new Set(Me(a).map(Xe=>Xe.path)),gr=new Set(a.entries.filter(Xe=>Xe.stage>0&&!Rt.has(Xe.path)).map(Xe=>Xe.path));for(let Xe of gr){let wr=S(i.workTree,Xe);await r.fs.exists(wr)?a=(await on(i,a,Xe)).index:a=ft(a,Xe)}}let c=await U(i,"MERGE_HEAD"),f=await U(i,"CHERRY_PICK_HEAD"),l=await U(i,"REVERT_HEAD"),m=await Nt(i)?await U(i,"REBASE_HEAD"):null,u=n.amend,h=await J(i);if(u){if(!h)return I("You have nothing yet to amend.");if(c)return I("You are in the middle of a merge -- cannot amend.");if(f)return I("You are in the middle of a cherry-pick -- cannot amend.")}if(Ht(a)){let ae=new Set,Ue=[];for(let Rt of a.entries)Rt.stage>0&&!ae.has(Rt.path)&&(ae.add(Rt.path),Ue.push(`U ${Rt.path}`));return Ue.sort(),{stdout:Ue.length>0?`${Ue.join(`
356
+ `,exitCode:0};let w=[],b=new Set;for(let O of g)O.name!=="HEAD"&&(b.has(O.hash)||(b.add(O.hash),w.push(O.hash)));let x=n.depth,y=x!==void 0&&x>0?{depth:x}:void 0;if(w.length>0){let O=await p.fetch(w,[],y);O.shallowUpdates&&await Dr(u,O.shallowUpdates)}let k=g.find(O=>O.name==="HEAD"),E=null,R=null,C=await en(u,r.env),P=`clone: from ${c}`,H=p.headTarget;H?.startsWith("refs/heads/")&&g.some(O=>O.name===H)&&(E=H.slice(11),R=g.find(O=>O.name===H)?.hash??null);for(let O of g)if(O.name!=="HEAD"){if(O.name.startsWith("refs/heads/")){let A=O.name.slice(11),G=`refs/remotes/origin/${A}`;await X(u,G,O.hash),await Ze(u,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=A,R=O.hash)}O.name.startsWith("refs/tags/")&&await X(u,O.name,O.hash)}if(i){let O=g.find(A=>A.name===`refs/heads/${i}`);if(!O)return I(`Remote branch '${i}' not found in upstream origin`);E=i,R=O.hash}if(!E){let O=g.find(A=>A.name.startsWith("refs/heads/"));O&&(E=O.name.slice(11),R=O.hash)}if(n.bare)return E&&await Xe(u,"HEAD",`refs/heads/${E}`),await t?.hooks?.postClone?.({repo:u,repository:o,targetPath:l,bare:n.bare,branch:E}),{stdout:"",stderr:`Cloning into bare repository '${f}'...
357
+ `,exitCode:0};if(E&&await Xe(u,"refs/remotes/origin/HEAD",`refs/remotes/origin/${E}`),E&&R){await X(u,`refs/heads/${E}`,R),await Xe(u,"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 Ze(u,`refs/heads/${E}`,O),await Ze(u,"HEAD",O);let A=await we(u);A[`branch "${E}"`]={remote:"origin",merge:`refs/heads/${E}`},await Je(u,A);let G=await j(u,R);await zc(u,G.tree);let v=await Ke(u,G.tree),T=Ls(v.map(F=>({path:F.path,mode:parseInt(F.mode,8),hash:F.hash,stage:0,stat:Se()})));await de(u,T)}let D={stdout:"",stderr:`Cloning into '${f}'...
358
+ `,exitCode:0};return await t?.hooks?.postClone?.({repo:u,repository:o,targetPath:l,bare:n.bare,branch:E}),D}})}ie();ce();Ce();ge();sn();He();tt();is();$r();function ul(e,t){e.command("describe",{description:"Give an object a human readable name based on an available ref",args:[q.string().name("committish").describe("Commit to describe").optional()],options:{tags:$().describe("Use any tag, not just annotated"),always:$().describe("Show abbreviated hash as fallback"),long:$().describe("Always output long format"),abbrev:V.number().describe("Abbreviation length"),dirty:V.string().describe("Append dirty marker if worktree has changes"),match:V.string().describe("Only consider tags matching glob"),exclude:V.string().describe("Exclude tags matching glob"),exactMatch:$().alias("exact-match").describe("Only output exact matches"),firstParent:$().alias("first-parent").describe("Only follow first parent"),candidates:V.number().describe("Consider N most recent tags")},transformArgs(n){return n.map(r=>r==="--dirty"?"--dirty=-dirty":r)},handler:async(n,r)=>{let o=await W(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.committish,a=n.tags,c=n.always,f=n.long,l=n.abbrev??7,d=n.dirty,m=n.match,u=n.exclude,h=n.exactMatch,p=n.firstParent,g;if(i){let C=await Be(s,i);if(!C)return I(`Not a valid object name ${i}`);try{g=await Te(s,C)}catch{return I(`Not a valid object name ${i}`)}}else g=await Z(s);if(!g)return I("your current branch does not have any commits yet");let w=await Rp(s,a,m,u),b=new Map,x=!1;for(let C of w){C.timestamp===0&&(x=!0);let P=b.get(C.commitHash);P||(P=[],b.set(C.commitHash,P)),P.push(C)}let y=await xp(s,g,b,p,h?0:void 0);if(!y){if(h)return I(`no tag exactly matches '${g}'`);if(c){let P=g.slice(0,Math.max(l,1));return d&&await dl(s)&&(P+=d),{stdout:P+`
359
+ `,stderr:"",exitCode:0}}let C;return!a&&x?C=`fatal: No annotated tags can describe '${g}'.
360
+ However, there were unannotated tags: try --tags.
361
+ `:w.length===0&&!a&&(await pe(s,"refs/tags")).length>0?C=`fatal: No annotated tags can describe '${g}'.
362
+ However, there were unannotated tags: try --tags.
363
+ `:C=`fatal: No names found, cannot describe anything.
364
+ `,{stdout:"",stderr:C,exitCode:128}}let{tag:k,depth:E}=y,R;if(E===0&&!f)R=k.name;else if(l===0)R=k.name;else{let C=g.slice(0,Math.max(l,1));R=`${k.name}-${E}-g${C}`}return d&&await dl(s)&&(R+=d),{stdout:R+`
365
+ `,stderr:"",exitCode:0}}})}async function Rp(e,t,n,r){let o=await pe(e,"refs/tags"),s=[];for(let i of o){let a=i.name.replace("refs/tags/","");if(n&&on(n,a,0)!==0||r&&on(r,a,0)===0)continue;let c=await be(e,i.hash);if(c.type==="tag"){let f=Kt(c.content),l;try{l=await Te(e,f.object)}catch{continue}s.push({name:a,commitHash:l,timestamp:f.tagger.timestamp})}else c.type==="commit"&&t&&s.push({name:a,commitHash:i.hash,timestamp:0})}return s}async function xp(e,t,n,r,o){let s=new Set,i=[{hash:t,depth:0}];for(;i.length>0;){let{hash:a,depth:c}=i.shift();if(s.has(a)||(s.add(a),o!==void 0&&c>o))continue;let f=n.get(a);if(f&&f.length>0)return{tag:Cp(f),depth:c};let l;try{l=await j(e,a)}catch{continue}if(r)l.parents.length>0&&!s.has(l.parents[0])&&i.push({hash:l.parents[0],depth:c+1});else for(let d of l.parents)s.has(d)||i.push({hash:d,depth:c+1})}return null}function Cp(e){return e.sort((t,n)=>n.timestamp!==t.timestamp?n.timestamp-t.timestamp:t.name.localeCompare(n.name))[0]}async function dl(e){if(Ye(e))return!1;let n=await Z(e);if(!n)return!1;let r=await j(e,n),o=await le(e,r.tree),s=await z(e);return Un(s,o)?!0:(await gt(e,s)).length>0}ie();Ce();ce();gn();me();ze();ge();He();tt();function ml(e,t){e.command("commit",{description:"Record changes to the repository",options:{message:V.string().alias("m").repeatable().describe("Commit message"),file:V.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)=>{let o=n.message;if(o.length>0&&n.file!==void 0)return I("options '-m' and '-F' cannot be used together");let s=await W(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=await z(i);if(n.all){let ae=Ye(i);if(ae)return ae;let $e=await gt(i,a);for(let We of $e)We.status==="modified"?a=(await cn(i,a,We.path)).index:We.status==="deleted"&&(a=lt(a,We.path));let rt=new Set(Le(a).map(We=>We.path)),Sn=new Set(a.entries.filter(We=>We.stage>0&&!rt.has(We.path)).map(We=>We.path));for(let We of Sn){let yr=S(i.workTree,We);await r.fs.exists(yr)?a=(await cn(i,a,We)).index:a=lt(a,We)}}let c=await B(i,"MERGE_HEAD"),f=await B(i,"CHERRY_PICK_HEAD"),l=await B(i,"REVERT_HEAD"),m=await Nt(i)?await B(i,"REBASE_HEAD"):null,u=n.amend,h=await Z(i);if(u){if(!h)return I("You have nothing yet to amend.");if(c)return I("You are in the middle of a merge -- cannot amend.");if(f)return I("You are in the middle of a cherry-pick -- cannot amend.")}if(At(a)){let ae=new Set,$e=[];for(let rt of a.entries)rt.stage>0&&!ae.has(rt.path)&&(ae.add(rt.path),$e.push(`U ${rt.path}`));return $e.sort(),{stdout:$e.length>0?`${$e.join(`
359
366
  `)}
360
367
  `:"",stderr:`error: Committing is not possible because you have unmerged files.
361
368
  hint: Fix them up in the work tree, and then use 'git add/rm <file>'
@@ -364,93 +371,94 @@ fatal: Exiting because of an unresolved conflict.
364
371
  `,exitCode:128}}let p=u&&h?await j(i,h):null,g=o.length>0?o.join(`
365
372
 
366
373
  `):void 0;if(g!==void 0&&(g=Xt(g),!g))return{stdout:`Aborting commit due to empty commit message.
367
- `,stderr:"",exitCode:1};if(!g&&n.file!==void 0){if(n.file==="-")g=r.stdin;else{let ae=n.file.startsWith("/")?n.file:S(r.cwd,n.file);if(!await r.fs.exists(ae))return I(`could not read log file '${n.file}': No such file or directory`);let Ue=await r.fs.readFile(ae);g=typeof Ue=="string"?Ue:new TextDecoder().decode(Ue)}if(g=Xt(g),!g)return{stdout:`Aborting commit due to empty commit message.
368
- `,stderr:"",exitCode:1}}if(!g&&u&&p&&(g=p.message),!g&&(c||f||l||m)){let ae=await Pe(i,"SQUASH_MSG");if(ae)g=Xt(ae);else{let Ue=await Pe(i,"MERGE_MSG");Ue!==null&&(g=Xt(Ue))}}if(!g)return L("error: must provide a commit message with -m or -F");let w=Me(a),y=await Ne(i,w),x=await t?.hooks?.preCommit?.({repo:i,index:a,treeHash:y});if(ee(x))return L(x.message??"");let b=n.allowEmpty,E=null;if(u&&p){let ae=p.parents[0];ae?E=(await j(i,ae)).tree:E=await ht("tree",new Uint8Array(0))}else h&&(E=(await j(i,h)).tree);let k=u&&p&&p.parents.length>1;if(!b&&!c&&!k){if(!h&&!u&&w.length===0)return{stdout:await it(i,{fromCommit:!0,index:a}),stderr:"",exitCode:1};if(E!==null&&E===y){if(u){let ae=p?.parents[0]??null;return{stdout:`${await it(i,{fromCommit:!0,compareHash:ae,noWarn:!0,index:a})}No changes
374
+ `,stderr:"",exitCode:1};if(!g&&n.file!==void 0){if(n.file==="-")g=r.stdin;else{let ae=n.file.startsWith("/")?n.file:S(r.cwd,n.file);if(!await r.fs.exists(ae))return I(`could not read log file '${n.file}': No such file or directory`);let $e=await r.fs.readFile(ae);g=typeof $e=="string"?$e:new TextDecoder().decode($e)}if(g=Xt(g),!g)return{stdout:`Aborting commit due to empty commit message.
375
+ `,stderr:"",exitCode:1}}if(!g&&u&&p&&(g=p.message),!g&&(c||f||l||m)){let ae=await Oe(i,"SQUASH_MSG");if(ae)g=Xt(ae);else{let $e=await Oe(i,"MERGE_MSG");$e!==null&&(g=Xt($e))}}if(!g)return L("error: must provide a commit message with -m or -F");let w=Le(a),b=await Fe(i,w),x=await t?.hooks?.preCommit?.({repo:i,index:a,treeHash:b});if(ee(x))return L(x.message??"");let y=n.allowEmpty,k=null;if(u&&p){let ae=p.parents[0];ae?k=(await j(i,ae)).tree:k=await pt("tree",new Uint8Array(0))}else h&&(k=(await j(i,h)).tree);let E=u&&p&&p.parents.length>1;if(!y&&!c&&!E){if(!h&&!u&&w.length===0)return{stdout:await at(i,{fromCommit:!0,index:a}),stderr:"",exitCode:1};if(k!==null&&k===b){if(u){let ae=p?.parents[0]??null;return{stdout:`${await at(i,{fromCommit:!0,compareHash:ae,noWarn:!0,index:a})}No changes
369
376
  `,stderr:`You asked to amend the most recent commit, but doing so would make
370
377
  it empty. You can repeat your command with --allow-empty, or you can
371
378
  remove the commit entirely with "git reset HEAD^".
372
- `,exitCode:1}}return f?{stdout:await it(i,{fromCommit:!0,index:a}),stderr:`The previous cherry-pick is now empty, possibly due to conflict resolution.
379
+ `,exitCode:1}}return f?{stdout:await at(i,{fromCommit:!0,index:a}),stderr:`The previous cherry-pick is now empty, possibly due to conflict resolution.
373
380
  If you wish to commit it anyway, use:
374
381
 
375
382
  git commit --allow-empty
376
383
 
377
384
  Otherwise, please use 'git cherry-pick --skip'
378
- `,exitCode:1}:{stdout:await it(i,{fromCommit:!0,index:a}),stderr:"",exitCode:1}}}let R=await cn(i,r.env);if(M(R))return R;let P=await tt(i,r.env);if(M(P))return P;u&&p&&(R.name=p.author.name,R.email=p.author.email,R.timestamp=p.author.timestamp,R.timezone=p.author.timezone),f&&(R=(await j(i,f)).author);let C=Mt(g),H={repo:i,message:C},D=await t?.hooks?.commitMsg?.(H);if(ee(D))return L(D.message??"");C=H.message;let O;u&&p?O=[...p.parents]:(O=h?[h]:[],c&&O.push(c));let A=rn({type:"commit",tree:y,parents:O,author:R,committer:P,message:C}),G=await Se(i,"commit",A);await ce(i,a);let v=await Q(i);v&&v.type==="symbolic"?await X(i,v.target,G):await X(i,"HEAD",G);let T=le(C),_;u?_="commit (amend)":c?_="commit (merge)":f?_="commit (cherry-pick)":h?_="commit":_="commit (initial)";let B=`${_}: ${T}`,W=v?.type==="symbolic"?v.target:"HEAD";await se(i,r.env,W,h,G,B,v?.type==="symbolic"),c&&await cs(i),f&&await Gt(i),l&&await Lt(i),m&&await ge(i,"MERGE_MSG"),await ge(i,"SQUASH_MSG"),await t?.hooks?.postCommit?.({repo:i,hash:G,message:C,branch:v?.type==="symbolic"?xe(v.target):null,parents:O,author:R});let N=v?.type==="symbolic"?v.target:null,F=N?xe(N):"detached HEAD",K;if(u&&p){let ae=p.parents[0];K=ae?(await j(i,ae)).tree:null}else K=h?(await j(i,h)).tree:null;let de=R.timestamp!==P.timestamp||R.timezone!==P.timezone,ke=O.length>1,He=await ln(i,K,y,R,P,de,ke);return{stdout:`${Dt(F,G,g,O.length===0&&!u)}
379
- ${He}`,stderr:"",exitCode:0}}})}oe();Be();ue();function $n(e){let t=e.split(".");return t.length===2||t.length===3}function fp(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 dl(e,t){e.command("config",{description:"Get and set repository options",args:[z.string().name("positionals").variadic().optional()],options:{list:$().alias("l").describe("List all config entries"),get:$().describe("Get the value for a given key"),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 q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.positionals,a=i[0];if(n.list)return ll(s);if(n.get){let f=a;return f?$n(f)?na(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(n["get-all"]){let f=a;return f?$n(f)?cl(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):$n(f)?(await Ga(s,f,l),{stdout:"",stderr:"",exitCode:0}):L(`error: invalid key: ${f}`,2)}if(n.unset){let f=a;return f?$n(f)?fl(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(a==="list")return ll(s);if(a==="get"){let f=i[1];return f?$n(f)?na(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(a==="get-all"){let f=i[1];return f?$n(f)?cl(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):$n(f)?(await Qo(s,f,l),{stdout:"",stderr:"",exitCode:0}):L(`error: invalid key: ${f}`,2)}if(a==="unset"){let f=i[1];return f?$n(f)?fl(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(!$n(a))return L(`error: invalid key: ${a}`,2);let c=i[1];return c!==void 0?(await Qo(s,a,c),{stdout:"",stderr:"",exitCode:0}):na(s,a)}})}async function na(e,t){let n=await Re(e,t);return n===void 0?L(""):{stdout:`${n}
380
- `,stderr:"",exitCode:0}}async function cl(e,t){let n=await ja(e,t);return n.length===0?L(""):{stdout:`${n.join(`
385
+ `,exitCode:1}:{stdout:await at(i,{fromCommit:!0,index:a}),stderr:"",exitCode:1}}}let R=await ln(i,r.env);if(M(R))return R;let C=await nt(i,r.env);if(M(C))return C;u&&p&&(R.name=p.author.name,R.email=p.author.email,R.timestamp=p.author.timestamp,R.timezone=p.author.timezone),f&&(R=(await j(i,f)).author);let P=Mt(g),H={repo:i,message:P},D=await t?.hooks?.commitMsg?.(H);if(ee(D))return L(D.message??"");P=H.message;let O;u&&p?O=[...p.parents]:(O=h?[h]:[],c&&O.push(c));let A=rn({type:"commit",tree:b,parents:O,author:R,committer:C,message:P}),G=await Ae(i,"commit",A);await de(i,a);let v=await Q(i);v&&v.type==="symbolic"?await X(i,v.target,G):await X(i,"HEAD",G);let T=ue(P),F;u?F="commit (amend)":c?F="commit (merge)":f?F="commit (cherry-pick)":h?F="commit":F="commit (initial)";let _=`${F}: ${T}`,U=v?.type==="symbolic"?v.target:"HEAD";await fe(i,r.env,U,h,G,_,v?.type==="symbolic"),c&&await fs(i),f&&await Gt(i),l&&await Lt(i),m&&await ye(i,"MERGE_MSG"),await ye(i,"SQUASH_MSG"),await t?.hooks?.postCommit?.({repo:i,hash:G,message:P,branch:v?.type==="symbolic"?Pe(v.target):null,parents:O,author:R});let N=v?.type==="symbolic"?v.target:null,K=N?Pe(N):"detached HEAD",ne;if(u&&p){let ae=p.parents[0];ne=ae?(await j(i,ae)).tree:null}else ne=h?(await j(i,h)).tree:null;let J=R.timestamp!==C.timestamp||R.timezone!==C.timezone,re=O.length>1,ke=await un(i,ne,b,R,C,J,re);return{stdout:`${Dt(K,G,g,O.length===0&&!u)}
386
+ ${ke}`,stderr:"",exitCode:0}}})}ie();qe();me();function In(e){let t=e.split(".");return t.length===2||t.length===3}function Pp(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 wl(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"),get:$().describe("Get the value for a given key"),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 gl(s);if(n.get){let f=a;return f?In(f)?ia(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(n["get-all"]){let f=a;return f?In(f)?hl(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):In(f)?(await _a(s,f,l),{stdout:"",stderr:"",exitCode:0}):L(`error: invalid key: ${f}`,2)}if(n.unset){let f=a;return f?In(f)?pl(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(a==="list")return gl(s);if(a==="get"){let f=i[1];return f?In(f)?ia(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(a==="get-all"){let f=i[1];return f?In(f)?hl(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):In(f)?(await ni(s,f,l),{stdout:"",stderr:"",exitCode:0}):L(`error: invalid key: ${f}`,2)}if(a==="unset"){let f=i[1];return f?In(f)?pl(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(!In(a))return L(`error: invalid key: ${a}`,2);let c=i[1];return c!==void 0?(await ni(s,a,c),{stdout:"",stderr:"",exitCode:0}):ia(s,a)}})}async function ia(e,t){let n=await xe(e,t);return n===void 0?L(""):{stdout:`${n}
387
+ `,stderr:"",exitCode:0}}async function hl(e,t){let n=await Na(e,t);return n.length===0?L(""):{stdout:`${n.join(`
381
388
  `)}
382
- `,stderr:"",exitCode:0}}async function fl(e,t){return await La(e,t)?{stdout:"",stderr:"",exitCode:0}:L("",5)}async function ll(e){let t=S(e.gitDir,"config"),n="";await e.fs.exists(t)&&(n=await e.fs.readFile(t));let r=Yo(n),o=fp(r),s=new Set(o.map(c=>c.split("=")[0])),i=e.configOverrides?.defaults;if(i)for(let[c,f]of Object.entries(i))s.has(c)||(o.push(`${c}=${f}`),s.add(c));let a=e.configOverrides?.locked;if(a)for(let[c,f]of Object.entries(a))s.has(c)||o.push(`${c}=${f}`);return{stdout:o.length>0?`${o.join(`
389
+ `,stderr:"",exitCode:0}}async function pl(e,t){return await Fa(e,t)?{stdout:"",stderr:"",exitCode:0}:L("",5)}async function gl(e){let t=S(e.gitDir,"config"),n="";await e.fs.exists(t)&&(n=await e.fs.readFile(t));let r=Jo(n),o=Pp(r),s=new Set(o.map(c=>c.split("=")[0])),i=e.configOverrides?.defaults;if(i)for(let[c,f]of Object.entries(i))s.has(c)||(o.push(`${c}=${f}`),s.add(c));let a=e.configOverrides?.locked;if(a)for(let[c,f]of Object.entries(a))s.has(c)||o.push(`${c}=${f}`);return{stdout:o.length>0?`${o.join(`
383
390
  `)}
384
- `:"",stderr:"",exitCode:0}}oe();function Ho(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(E=>E||"000000"),x=s||"000000";y.some(E=>E!==x)&&i.push(`mode ${y.join(",")}..${x}`)}let m=n.some(y=>y!==null);if(i.push(m?`--- a/${t}`:"--- /dev/null"),i.push(f?`+++ b/${t}`:"+++ /dev/null"),d||l)return`${i.join(`
391
+ `:"",stderr:"",exitCode:0}}ie();function Ao(e){let{path:t,parentHashes:n,parentModes:r,resultHash:o,resultMode:s}=e,i=[];i.push(`diff --cc ${t}`);let a=n.map(b=>b?Y(b):"0000000"),c=o?Y(o):"0000000";i.push(`index ${a.join(",")}..${c}`);let f=e.resultContent.length>0,l=n.every(b=>b===null),d=!f&&n.some(b=>b!==null);if(l&&s)i.push(`new file mode ${s}`);else if(d){let b=r.map(x=>x||"000000").join(",");i.push(`deleted file mode ${b}`)}else{let b=r.map(k=>k||"000000"),x=s||"000000";b.some(k=>k!==x)&&i.push(`mode ${b.join(",")}..${x}`)}let m=n.some(b=>b!==null);if(i.push(m?`--- a/${t}`:"--- /dev/null"),i.push(f?`+++ b/${t}`:"+++ /dev/null"),d||l)return`${i.join(`
385
392
  `)}
386
- `;let u=e.parentContents.map(y=>y.length>0?_t(y):[]),h=e.resultContent.length>0?_t(e.resultContent):[],p=u.map(y=>at(y,h)),g=lp(u,h,p),w=up(g,u.length,h);if(w.length===0)return"";for(let y of w)i.push(y);return`${i.join(`
393
+ `;let u=e.parentContents.map(b=>b.length>0?_t(b):[]),h=e.resultContent.length>0?_t(e.resultContent):[],p=u.map(b=>ct(b,h)),g=$p(u,h,p),w=Ip(g,u.length,h);if(w.length===0)return"";for(let b of w)i.push(b);return`${i.join(`
387
394
  `)}
388
- `}function lp(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=dp(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 u=o[d]?.resultStatus[i];if(f.push(u==="insert"?"+":" "),u==="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 dp(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=at(i,a),f=[];for(let l of c)if(l.type==="keep"){let d=o.find(u=>u.text===l.line&&u.parentLineNo===l.oldLineNo),m=s.find(u=>u.text===l.line&&u.parentLineNo===l.newLineNo);f.push({columns:["-","-"],text:l.line,resultLineNo:0,parentLineNos:[d?.parentLineNo??0,m?.parentLineNo??0]})}else if(l.type==="delete"){let d=o.find(m=>m.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(m=>m.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 up(e,t,n){let o=[];for(let l=0;l<e.length;l++)e[l]?.columns.some(m=>m!==" ")&&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,m=Math.max(0,d-3),u=Math.min(e.length-1,d+3);m<=c+1||(s.push({start:a,end:c}),a=m),c=u}s.push({start:a,end:c});let f=[];for(let l of s){let d=e.slice(l.start,l.end+1),m=[];for(let b=0;b<t;b++){let E=d.filter(k=>(k.parentLineNos[b]??0)>0||k.columns[b]==="-");if(E.length===0)m.push({start:1,count:0});else{let R=E.find(P=>(P.parentLineNos[b]??0)>0)?.parentLineNos[b]??1;m.push({start:R,count:E.length})}}let u=d.filter(b=>b.resultLineNo>0),h=u[0],p=h?h.resultLineNo:1,g=u.length,w="";for(let b=p-2;b>=0;b--){let E=n[b];if(E&&/^[a-zA-Z$_]/.test(E)){w=` ${E.trimEnd().slice(0,79)}`;break}}let y=m.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}oe();Ce();ie();ue();function Ao(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}er();he();ve();st();var ra=new TextDecoder;function pl(e){return"exitCode"in e}function hr(e){return e.toString(8).padStart(6,"0")}function gl(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 wl(e,t){e.command("diff",{description:"Show changes between commits, commit and working tree, etc.",args:[z.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 q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.cached||n.staged,c=n.commits,f=dt(i,r.cwd),l=o.passthrough.length>0?o.passthrough.map(p=>_e(p,f)):null,d=n.stat?"stat":n.nameOnly?"name-only":n.nameStatus?"name-status":n.shortstat?"shortstat":n.numstat?"numstat":"unified",m,u=c.length===1?Ao(c[0]):null;if(u){if(a)return I("too many arguments");u.type==="three-dot"?m=await gp(i,u.left,u.right,l):m=await hl(i,u.left,u.right,l)}else if(c.length===2)m=await hl(i,c[0],c[1],l);else{if(c.length>2)return I("too many arguments");a?m=await pp(i,c.length===1?c[0]:null,l):c.length===1?m=await wp(i,c[0],l):m=await mp(i,l)}if(pl(m))return m;let h=await bp(i,m.items,d);return m.stderr&&(h.stderr=m.stderr),h}})}async function mp(e,t){let n=Je(e);if(n)return n;let r=await V(e),o=new Set,s=new Map,i=new Map,a=new Map;for(let l of r.entries)l.stage===0?s.set(l.path,l):(o.add(l.path),l.stage===2?i.set(l.path,l):l.stage===3&&a.set(l.path,l));let c=await At(e,r);c.sort((l,d)=>Oe(l.path,d.path));let f=[];for(let l of c){if(l.status==="untracked"||t&&!be(t,l.path)||o.has(l.path))continue;let d=s.get(l.path);if(!d)continue;let m=hr(d.mode),u;if(l.status==="modified"&&e.workTree){let h=S(e.workTree,l.path),p=await e.fs.readFileBuffer(h);u=await ht("blob",p)}f.push({path:l.path,status:l.status==="deleted"?"D":"M",oldHash:d.hash,newHash:u,oldMode:m,newMode:m,newFromWorkTree:l.status==="modified"})}for(let l of o){if(t&&!be(t,l))continue;let d=i.get(l),m=a.get(l);await hp(f,e,l,d,m)}return f.sort((l,d)=>{let m=Oe(l.path,d.path);return m!==0?m:l.status==="U"&&d.status!=="U"?-1:l.status!=="U"&&d.status==="U"?1:0}),{items:f}}async function hp(e,t,n,r,o){let s=t.workTree;if(s&&r&&o){let i=hr(r.mode),a=hr(o.mode),{exists:c,hash:f}=await ul(t.fs,s,n);e.push({path:n,status:"U",newHash:f,newMode:i,newFromWorkTree:c,combinedParentHashes:[r.hash,o.hash],combinedParentModes:[i,a]}),ml(e,n,r.hash,i,c,f);return}if(e.push({path:n,status:"U"}),s&&r){let i=hr(r.mode),{exists:a,hash:c}=await ul(t.fs,s,n);ml(e,n,r.hash,i,a,c)}}async function ul(e,t,n){let r=S(t,n);if(!await e.exists(r))return{exists:!1};let o=await ss(e,r);return{exists:!0,hash:await ht("blob",o)}}function ml(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 pp(e,t,n){let r=null;if(t){let m=await Ae(e,t);if(M(m))return m;r=m.commit.tree}else{let m=await J(e);m&&(r=(await j(e,m)).tree)}let o=await fe(e,r),s=await V(e),i=new Set;for(let m of s.entries)m.stage>0&&i.add(m.path);let a=new Map(Me(s).map(m=>[m.path,m])),c=[];for(let[m,u]of a){if(i.has(m))continue;let h=o.get(m);h?h.hash!==u.hash&&c.push({path:m,status:"modified",oldHash:h.hash,newHash:u.hash,oldMode:h.mode,newMode:hr(u.mode)}):c.push({path:m,status:"added",newHash:u.hash,newMode:hr(u.mode)})}for(let[m,u]of o)i.has(m)||a.has(m)||c.push({path:m,status:"deleted",oldHash:u.hash,oldMode:u.mode});let{remaining:f,renames:l}=await ot(e,c),d=gl(f,l);for(let m of i)d.push({path:m,status:"U"});return d.sort((m,u)=>Oe(m.path,u.path)),n?{items:d.filter(m=>be(n,m.path))}:{items:d}}async function hl(e,t,n,r){let o=await Ae(e,t);if(M(o))return o;let s=await Ae(e,n);if(M(s))return s;let i=await Ke(e,o.commit.tree,s.commit.tree);return bl(e,i,r)}async function gp(e,t,n,r){let o=await Ae(e,t);if(M(o))return o;let s=await Ae(e,n);if(M(s))return s;let i=await Ut(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]}
389
- `);let c=i[0],f=await j(e,c),l=await Ke(e,f.tree,s.commit.tree),d=await bl(e,l,r);return pl(d)||a&&(d.stderr=a),d}async function bl(e,t,n){let{remaining:r,renames:o}=await ot(e,t),s=gl(r,o);return s.sort((i,a)=>Oe(i.path,a.path)),n?{items:s.filter(i=>be(n,i.path))}:{items:s}}async function wp(e,t,n){let r=Je(e);if(r)return r;let o=await Ae(e,t);if(M(o))return o;let s=e.workTree,i=await fe(e,o.commit.tree),a=await V(e),c=new Map(Me(a).map(l=>[l.path,l])),f=[];for(let[l,d]of i){if(n&&!be(n,l))continue;let m=S(s,l);if(!await e.fs.exists(m)){f.push({path:l,status:"D",oldHash:d.hash,oldMode:d.mode});continue}let u=await e.fs.readFileBuffer(m),h=await ht("blob",u);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&&!be(n,l))continue;let m=S(s,l);if(!await e.fs.exists(m))continue;let u=await e.fs.readFileBuffer(m),h=await ht("blob",u);f.push({path:l,status:"A",newHash:h,newMode:hr(d.mode),newFromWorkTree:!0})}return f.sort((l,d)=>Oe(l.path,d.path)),{items:f}}async function bp(e,t,n){let r;switch(n){case"stat":r=await Cp(e,t);break;case"shortstat":r=await Pp(e,t);break;case"numstat":r=await xp(e,t);break;case"name-only":r=kp(t);break;case"name-status":r=Rp(t);break;default:r=await yp(e,t);break}return{stdout:r,stderr:"",exitCode:0}}async function yp(e,t){let n="",r=new Set,o=await Ep(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 re(e,f):"")),a=await sa(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}
390
- index ${f.join(",")}..0000000
395
+ `}function $p(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=Op(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 u=o[d]?.resultStatus[i];if(f.push(u==="insert"?"+":" "),u==="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 Op(e,t){if(!e.some(o=>o.length>0))return[];if(t===2){let o=e[0]??[],s=e[1]??[];if(o.length===0)return s.map(l=>({columns:[" ","-"],text:l.text,resultLineNo:0,parentLineNos:[0,l.parentLineNo]}));if(s.length===0)return o.map(l=>({columns:["-"," "],text:l.text,resultLineNo:0,parentLineNos:[l.parentLineNo,0]}));let i=o.map(l=>l.text),a=s.map(l=>l.text),c=ct(i,a),f=[];for(let l of c)if(l.type==="keep"){let d=o.find(u=>u.text===l.line&&u.parentLineNo===l.oldLineNo),m=s.find(u=>u.text===l.line&&u.parentLineNo===l.newLineNo);f.push({columns:["-","-"],text:l.line,resultLineNo:0,parentLineNos:[d?.parentLineNo??0,m?.parentLineNo??0]})}else if(l.type==="delete"){let d=o.find(m=>m.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(m=>m.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 Ip(e,t,n){let o=[];for(let l=0;l<e.length;l++)e[l]?.columns.some(m=>m!==" ")&&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,m=Math.max(0,d-3),u=Math.min(e.length-1,d+3);m<=c+1||(s.push({start:a,end:c}),a=m),c=u}s.push({start:a,end:c});let f=[];for(let l of s){let d=e.slice(l.start,l.end+1),m=[];for(let y=0;y<t;y++){let k=d.filter(E=>(E.parentLineNos[y]??0)>0||E.columns[y]==="-");if(k.length===0)m.push({start:1,count:0});else{let R=k.find(C=>(C.parentLineNos[y]??0)>0)?.parentLineNos[y]??1;m.push({start:R,count:k.length})}}let u=d.filter(y=>y.resultLineNo>0),h=u[0],p=h?h.resultLineNo:1,g=u.length,w="";for(let y=p-2;y>=0;y--){let k=n[y];if(k&&/^[a-zA-Z$_]/.test(k)){w=` ${k.trimEnd().slice(0,79)}`;break}}let b=m.map(y=>`-${y.start},${y.count}`),x=`${"@".repeat(t+1)} ${b.join(" ")} +${p},${g} ${"@".repeat(t+1)}${w}`;f.push(x);for(let y of d)f.push(`${y.columns.join("")}${y.text}`)}return f}ie();Ce();ce();me();function Do(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}sr();ge();He();tt();var aa=new TextDecoder;function kl(e){return"exitCode"in e}function wr(e){return e.toString(8).padStart(6,"0")}function Rl(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 xl(e,t){e.command("diff",{description:"Show changes between commits, commit and working tree, etc.",transformArgs:n=>n.map(r=>{let o=/^-U(\d+)$/.exec(r);return o?`--unified=${o[1]}`:r}),args:[q.string().name("commits").variadic().optional()],options:{cached:$().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"),unified:V.number().alias("U").describe("Generate diffs with <n> lines of context"),findRenames:$().alias("M").describe("Detect renames (enabled by default)"),findCopies:$().alias("C").describe("Detect copies (accepted for compatibility)"),color:$().describe("Show colored diff (accepted for compatibility)"),noColor:$().describe("Turn off colored diff (accepted for compatibility)")},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(g=>Ue(g,f)):null,d=n.stat?"stat":n.nameOnly?"name-only":n.nameStatus?"name-status":n.shortstat?"shortstat":n.numstat?"numstat":"unified",m,u=c.length===1?Do(c[0]):null;if(u){if(a)return I("too many arguments");u.type==="three-dot"?m=await Hp(i,u.left,u.right,l):m=await El(i,u.left,u.right,l)}else if(c.length===2)m=await El(i,c[0],c[1],l);else{if(c.length>2)return I("too many arguments");a?m=await Tp(i,c.length===1?c[0]:null,l):c.length===1?m=await Ap(i,c[0],l):m=await Sp(i,l)}if(kl(m))return m;let h=n.unified,p=await Dp(i,m.items,d,h);return m.stderr&&(p.stderr=m.stderr),p}})}async function Sp(e,t){let n=Ye(e);if(n)return n;let r=await z(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 gt(e,r);c.sort((l,d)=>Ie(l.path,d.path));let f=[];for(let l of c){if(l.status==="untracked"||t&&!Ee(t,l.path)||o.has(l.path))continue;let d=s.get(l.path);if(!d)continue;let m=wr(d.mode),u;if(l.status==="modified"&&e.workTree){let h=S(e.workTree,l.path),p=await e.fs.readFileBuffer(h);u=await pt("blob",p)}f.push({path:l.path,status:l.status==="deleted"?"D":"M",oldHash:d.hash,newHash:u,oldMode:m,newMode:m,newFromWorkTree:l.status==="modified"})}for(let l of o){if(t&&!Ee(t,l))continue;let d=i.get(l),m=a.get(l);await vp(f,e,l,d,m)}return f.sort((l,d)=>{let m=Ie(l.path,d.path);return m!==0?m:l.status==="U"&&d.status!=="U"?-1:l.status!=="U"&&d.status==="U"?1:0}),{items:f}}async function vp(e,t,n,r,o){let s=t.workTree;if(s&&r&&o){let i=wr(r.mode),a=wr(o.mode),{exists:c,hash:f}=await bl(t.fs,s,n);e.push({path:n,status:"U",newHash:f,newMode:i,newFromWorkTree:c,combinedParentHashes:[r.hash,o.hash],combinedParentModes:[i,a]}),yl(e,n,r.hash,i,c,f);return}if(e.push({path:n,status:"U"}),s&&r){let i=wr(r.mode),{exists:a,hash:c}=await bl(t.fs,s,n);yl(e,n,r.hash,i,a,c)}}async function bl(e,t,n){let r=S(t,n);if(!await e.exists(r))return{exists:!1};let o=await ss(e,r);return{exists:!0,hash:await pt("blob",o)}}function yl(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 Tp(e,t,n){let r=null;if(t){let m=await Me(e,t);if(M(m))return m;r=m.commit.tree}else{let m=await Z(e);m&&(r=(await j(e,m)).tree)}let o=await le(e,r),s=await z(e),i=new Set;for(let m of s.entries)m.stage>0&&i.add(m.path);let a=new Map(Le(s).map(m=>[m.path,m])),c=[];for(let[m,u]of a){if(i.has(m))continue;let h=o.get(m);h?h.hash!==u.hash&&c.push({path:m,status:"modified",oldHash:h.hash,newHash:u.hash,oldMode:h.mode,newMode:wr(u.mode)}):c.push({path:m,status:"added",newHash:u.hash,newMode:wr(u.mode)})}for(let[m,u]of o)i.has(m)||a.has(m)||c.push({path:m,status:"deleted",oldHash:u.hash,oldMode:u.mode});let{remaining:f,renames:l}=await it(e,c),d=Rl(f,l);for(let m of i)d.push({path:m,status:"U"});return d.sort((m,u)=>Ie(m.path,u.path)),n?{items:d.filter(m=>Ee(n,m.path))}:{items:d}}async function El(e,t,n,r){let o=await Me(e,t);if(M(o))return o;let s=await Me(e,n);if(M(s))return s;let i=await Ve(e,o.commit.tree,s.commit.tree);return Cl(e,i,r)}async function Hp(e,t,n,r){let o=await Me(e,t);if(M(o))return o;let s=await Me(e,n);if(M(s))return s;let i=await Ft(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]}
396
+ `);let c=i[0],f=await j(e,c),l=await Ve(e,f.tree,s.commit.tree),d=await Cl(e,l,r);return kl(d)||a&&(d.stderr=a),d}async function Cl(e,t,n){let{remaining:r,renames:o}=await it(e,t),s=Rl(r,o);return s.sort((i,a)=>Ie(i.path,a.path)),n?{items:s.filter(i=>Ee(n,i.path))}:{items:s}}async function Ap(e,t,n){let r=Ye(e);if(r)return r;let o=await Me(e,t);if(M(o))return o;let s=e.workTree,i=await le(e,o.commit.tree),a=await z(e),c=new Map(Le(a).map(l=>[l.path,l])),f=[];for(let[l,d]of i){if(n&&!Ee(n,l))continue;let m=S(s,l);if(!await e.fs.exists(m)){f.push({path:l,status:"D",oldHash:d.hash,oldMode:d.mode});continue}let u=await e.fs.readFileBuffer(m),h=await pt("blob",u);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&&!Ee(n,l))continue;let m=S(s,l);if(!await e.fs.exists(m))continue;let u=await e.fs.readFileBuffer(m),h=await pt("blob",u);f.push({path:l,status:"A",newHash:h,newMode:wr(d.mode),newFromWorkTree:!0})}return f.sort((l,d)=>Ie(l.path,d.path)),{items:f}}async function Dp(e,t,n,r){let o;switch(n){case"stat":o=await _p(e,t);break;case"shortstat":o=await Fp(e,t);break;case"numstat":o=await Np(e,t);break;case"name-only":o=Gp(t);break;case"name-status":o=Lp(t);break;default:o=await Mp(e,t,r);break}return{stdout:o,stderr:"",exitCode:0}}async function Mp(e,t,n){let r="",o=new Set,s=await jp(e,t);for(let i of t)if(i.status==="U")if(i.combinedParentHashes){let a=await Promise.all(i.combinedParentHashes.map(async l=>l?await oe(e,l):"")),c=await ca(e,i);if(a.some(l=>ve(l))||ve(c)){let l=i.combinedParentHashes.map(d=>d?Y(d):"0000000");r+=`diff --cc ${i.path}
397
+ index ${l.join(",")}..0000000
391
398
  Binary files differ
392
- `,r.add(s.path)}else{let f=Ho({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}
393
- `}}else n+=`* Unmerged path ${s.path}
394
- `;for(let s of t){if(s.status==="U"||r.has(s.path))continue;let i=s.oldHash?await re(e,s.oldHash):"",a=await sa(e,s);s.status==="R"&&s.oldPath?n+=Ot({path:s.oldPath,oldContent:i,newContent:a,oldMode:s.oldMode,newMode:s.newMode,oldHash:Do(s.oldHash,o),newHash:Do(s.newHash,o),renameTo:s.path,similarity:s.similarity}):n+=Ot({path:s.path,oldContent:i,newContent:a,oldMode:s.oldMode,newMode:s.newMode,oldHash:Do(s.oldHash,o),newHash:Do(s.newHash,o),isNew:s.status==="A",isDeleted:s.status==="D"})}return n}async function Ep(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=S(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),m=0;for(let u of d)if(u.startsWith(l)&&(m++,m>1))return!1;return m===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 Do(e,t){if(e)return e.length!==40?e:t.get(e)??Y(e)}function kp(e){let t="";for(let n of e)t+=`${n.path}
395
- `;return t}function Rp(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}
399
+ `,o.add(i.path)}else{let l=Ao({path:i.path,parentHashes:i.combinedParentHashes,parentModes:i.combinedParentModes??[],parentContents:a,resultHash:null,resultMode:i.newMode??null,resultContent:c});l?(r+=l,o.add(i.path)):r+=`* Unmerged path ${i.path}
400
+ `}}else r+=`* Unmerged path ${i.path}
401
+ `;for(let i of t){if(i.status==="U"||o.has(i.path))continue;let a=i.oldHash?await oe(e,i.oldHash):"",c=await ca(e,i);i.status==="R"&&i.oldPath?r+=It({path:i.oldPath,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:Mo(i.oldHash,s),newHash:Mo(i.newHash,s),renameTo:i.path,similarity:i.similarity,contextLines:n}):r+=It({path:i.path,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:Mo(i.oldHash,s),newHash:Mo(i.newHash,s),isNew:i.status==="A",isDeleted:i.status==="D",contextLines:n})}return r}async function jp(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=S(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),m=0;for(let u of d)if(u.startsWith(l)&&(m++,m>1))return!1;return m===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 Mo(e,t){if(e)return e.length!==40?e:t.get(e)??Y(e)}function Gp(e){let t="";for(let n of e)t+=`${n.path}
402
+ `;return t}function Lp(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}
396
403
  `}else t+=`${n.status} ${n.path}
397
- `;return t}async function xp(e,t){let n="";for(let r of t){if(r.status==="U"){n+=`0 0 ${r.path}
398
- `;continue}let o=r.oldHash?await re(e,r.oldHash):"",s=await sa(e,r),i=$e(o)||$e(s),a,c;if(i)a="-",c="-";else{let{ins:f,del:l}=yl(o,s);a=String(f),c=String(l)}if(r.status==="R"&&r.oldPath){let f=fn(r.oldPath,r.path);n+=`${a} ${c} ${f}
404
+ `;return t}async function Np(e,t){let n="";for(let r of t){if(r.status==="U"){n+=`0 0 ${r.path}
405
+ `;continue}let o=r.oldHash?await oe(e,r.oldHash):"",s=await ca(e,r),i=ve(o)||ve(s),a,c;if(i)a="-",c="-";else{let{ins:f,del:l}=Pl(o,s);a=String(f),c=String(l)}if(r.status==="R"&&r.oldPath){let f=dn(r.oldPath,r.path);n+=`${a} ${c} ${f}
399
406
  `}else n+=`${a} ${c} ${r.path}
400
- `}return n}async function Cp(e,t){let n=await El(e,t);return dr(n)}async function Pp(e,t){let n=await El(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=zn(s,r,o);return i?`${i}
407
+ `}return n}async function _p(e,t){let n=await $l(e,t);return hr(n)}async function Fp(e,t){let n=await $l(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=Xn(s,r,o);return i?`${i}
401
408
  `:n.some(a=>a.isUnmerged)?` 0 files changed
402
- `:""}async function sa(e,t){if(!t.newHash)return"";if(t.newFromWorkTree&&e.workTree){let n=S(e.workTree,t.path),r=await ss(e.fs,n);return ra.decode(r)}return re(e,t.newHash)}async function $p(e,t){if(!t.newHash)return new Uint8Array(0);if(t.newFromWorkTree&&e.workTree){let n=S(e.workTree,t.path);return ss(e.fs,n)}return Ct(e,t.newHash)}function yl(e,t){let n=Et(e),r=Et(t),o=at(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 El(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?fn(r.oldPath,r.path):r.path,s=r.oldHash?await Ct(e,r.oldHash):new Uint8Array(0),i=await $p(e,r);if(Tn(s)||Tn(i))n.push({path:o,sortKey:r.path,insertions:0,deletions:0,isBinary:!0,oldSize:s.byteLength,newSize:i.byteLength});else{let a=ra.decode(s),c=ra.decode(i),{ins:f,del:l}=yl(a,c);n.push({path:o,sortKey:r.path,insertions:f,deletions:l})}}return n}oe();Be();On();ue();We();he();function pr(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 Op(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 Mo(e,t){if(!Op(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 Rl(e,t){e.command("fetch",{description:"Download objects and refs from another repository",args:[z.string().name("remote").describe("Remote to fetch from").optional(),z.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:Z.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 q(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 Po(s))return I("--unshallow on a complete repository does not make sense");let i=n.depth;if(n.unshallow&&(i=ws),n.all){if(n.remote)return I("fetch --all does not take a remote argument");let c=await pe(s),f=[];for(let m of Object.keys(c)){let u=m.match(/^remote "(.+)"$/);u?.[1]&&f.push(u[1])}if(f.length===0)return{stdout:"",stderr:"",exitCode:0};let l=[],d=0;for(let m of f){let u=await kl(s,m,void 0,n.prune,n.tags,r.env,t,i);u.stderr&&l.push(u.stderr),u.exitCode!==0&&(d=u.exitCode)}return{stdout:"",stderr:l.join(""),exitCode:d}}let a=n.remote||"origin";return kl(s,a,n.refspec,n.prune,n.tags,r.env,t,i)}})}async function kl(e,t,n,r,o,s,i,a){let c;try{c=await Mr(e,t,s)}catch(A){let G=A instanceof Error?A.message:"";if(G.startsWith("network"))return I(G);throw A}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(pr):d=[pr(l.fetchRefspec)];let m=await i?.hooks?.preFetch?.({repo:e,remote:t,url:l.url,refspecs:d.map(A=>`${A.src}:${A.dst}`),prune:r,tags:o});if(ee(m))return{stdout:"",stderr:m.message??"",exitCode:1};let u=await f.advertiseRefs();if(u.length===0)return{stdout:"",stderr:"",exitCode:0};let p=(await we(e)).map(A=>A.hash),g=await U(e,"HEAD");g&&p.push(g);let w=[],y=new Set,x=[];for(let A of u)if(A.name!=="HEAD")for(let G of d){let v=Mo(G,A.name);if(v!==null){x.push({remote:A,localRef:v,force:G.force}),y.has(A.hash)||(y.add(A.hash),w.push(A.hash));break}}if(o)for(let A of u)A.name.startsWith("refs/tags/")&&(x.push({remote:A,localRef:A.name,force:!1}),y.has(A.hash)||(y.add(A.hash),w.push(A.hash)));let b=new Set(p),E=w.filter(A=>!b.has(A)),k,R=a!==void 0?await vr(e):void 0;a!==void 0&&(k={depth:a,existingShallows:R});let P=E.length>0?E:k?w:[];if(P.length>0){let A=await f.fetch(P,p,k);A.shallowUpdates&&await Tr(e,A.shallowUpdates,R)}let C=await en(e,s),H=[];H.push(`From ${l.url}
403
- `);for(let A of x){let G=await U(e,A.localRef);await X(e,A.localRef,A.remote.hash),await Ye(e,A.localRef,{oldHash:G??te,newHash:A.remote.hash,name:C.name,email:C.email,timestamp:C.timestamp,tz:C.tz,message:G?"fetch":"fetch: storing head"});let v=jo(A.remote.name),T=jo(A.localRef);if(G){if(G!==A.remote.hash){let _=Y(G),B=Y(A.remote.hash);H.push(` ${_}..${B} ${v} -> ${T}
404
- `)}}else{let B=A.remote.name.startsWith("refs/tags/")?" * [new tag]":" * [new branch]";H.push(`${B} ${v} -> ${T}
405
- `)}}if(!o)for(let A of u){if(!A.name.startsWith("refs/tags/")||y.has(A.hash))continue;let G=await U(e,A.name),v=A.peeledHash??A.hash;!G&&b.has(v)&&(await X(e,A.name,A.hash),await Ye(e,A.name,{oldHash:te,newHash:A.hash,name:C.name,email:C.email,timestamp:C.timestamp,tz:C.tz,message:"fetch: storing head"}),H.push(` * [new tag] ${jo(A.name)} -> ${jo(A.name)}
406
- `))}if(r){let A=`refs/remotes/${t}`,G=await we(e,A),v=new Set(u.filter(T=>T.name.startsWith("refs/heads/")).map(T=>T.name.slice(11)));for(let T of G){let _=T.name.slice(A.length+1);v.has(_)||(await me(e,T.name),H.push(` - [deleted] (none) -> ${t}/${_}
409
+ `:""}async function ca(e,t){if(!t.newHash)return"";if(t.newFromWorkTree&&e.workTree){let n=S(e.workTree,t.path),r=await ss(e.fs,n);return aa.decode(r)}return oe(e,t.newHash)}async function Up(e,t){if(!t.newHash)return new Uint8Array(0);if(t.newFromWorkTree&&e.workTree){let n=S(e.workTree,t.path);return ss(e.fs,n)}return Pt(e,t.newHash)}function Pl(e,t){let n=Rt(e),r=Rt(t),o=ct(n,r),s=0,i=0;for(let a of o)a.type==="insert"?s++:a.type==="delete"&&i++;return{ins:s,del:i}}async function $l(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?dn(r.oldPath,r.path):r.path,s=r.oldHash?await Pt(e,r.oldHash):new Uint8Array(0),i=await Up(e,r);if(Dn(s)||Dn(i))n.push({path:o,sortKey:r.path,insertions:0,deletions:0,isBinary:!0,oldSize:s.byteLength,newSize:i.byteLength});else{let a=aa.decode(s),c=aa.decode(i),{ins:f,del:l}=Pl(a,c);n.push({path:o,sortKey:r.path,insertions:f,deletions:l})}}return n}ie();qe();vn();me();ze();ge();function br(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 Bp(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 jo(e,t){if(!Bp(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 Il(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:V.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 $o(s))return I("--unshallow on a complete repository does not make sense");let i=n.depth;if(n.unshallow&&(i=bs),n.all){if(n.remote)return I("fetch --all does not take a remote argument");let c=await we(s),f=[];for(let m of Object.keys(c)){let u=m.match(/^remote "(.+)"$/);u?.[1]&&f.push(u[1])}if(f.length===0)return{stdout:"",stderr:"",exitCode:0};let l=[],d=0;for(let m of f){let u=await Ol(s,m,void 0,n.prune,n.tags,r.env,t,i);u.stderr&&l.push(u.stderr),u.exitCode!==0&&(d=u.exitCode)}return{stdout:"",stderr:l.join(""),exitCode:d}}let a=n.remote||"origin";return Ol(s,a,n.refspec,n.prune,n.tags,r.env,t,i)}})}async function Ol(e,t,n,r,o,s,i,a){let c;try{c=await Lr(e,t,s)}catch(A){let G=A instanceof Error?A.message:"";if(G.startsWith("network"))return I(G);throw A}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(br):d=[br(l.fetchRefspec)];let m=await i?.hooks?.preFetch?.({repo:e,remote:t,url:l.url,refspecs:d.map(A=>`${A.src}:${A.dst}`),prune:r,tags:o});if(ee(m))return{stdout:"",stderr:m.message??"",exitCode:1};let u=await f.advertiseRefs();if(u.length===0)return{stdout:"",stderr:"",exitCode:0};let p=(await pe(e)).map(A=>A.hash),g=await B(e,"HEAD");g&&p.push(g);let w=[],b=new Set,x=[];for(let A of u)if(A.name!=="HEAD")for(let G of d){let v=jo(G,A.name);if(v!==null){x.push({remote:A,localRef:v,force:G.force}),b.has(A.hash)||(b.add(A.hash),w.push(A.hash));break}}if(o)for(let A of u)A.name.startsWith("refs/tags/")&&(x.push({remote:A,localRef:A.name,force:!1}),b.has(A.hash)||(b.add(A.hash),w.push(A.hash)));let y=new Set(p),k=w.filter(A=>!y.has(A)),E,R=a!==void 0?await Ar(e):void 0;a!==void 0&&(E={depth:a,existingShallows:R});let C=k.length>0?k:E?w:[];if(C.length>0){let A=await f.fetch(C,p,E);A.shallowUpdates&&await Dr(e,A.shallowUpdates,R)}let P=await en(e,s),H=[];H.push(`From ${l.url}
410
+ `);for(let A of x){let G=await B(e,A.localRef);await X(e,A.localRef,A.remote.hash),await Ze(e,A.localRef,{oldHash:G??te,newHash:A.remote.hash,name:P.name,email:P.email,timestamp:P.timestamp,tz:P.tz,message:G?"fetch":"fetch: storing head"});let v=Go(A.remote.name),T=Go(A.localRef);if(G){if(G!==A.remote.hash){let F=Y(G),_=Y(A.remote.hash);H.push(` ${F}..${_} ${v} -> ${T}
411
+ `)}}else{let _=A.remote.name.startsWith("refs/tags/")?" * [new tag]":" * [new branch]";H.push(`${_} ${v} -> ${T}
412
+ `)}}if(!o)for(let A of u){if(!A.name.startsWith("refs/tags/")||b.has(A.hash))continue;let G=await B(e,A.name),v=A.peeledHash??A.hash;!G&&y.has(v)&&(await X(e,A.name,A.hash),await Ze(e,A.name,{oldHash:te,newHash:A.hash,name:P.name,email:P.email,timestamp:P.timestamp,tz:P.tz,message:"fetch: storing head"}),H.push(` * [new tag] ${Go(A.name)} -> ${Go(A.name)}
413
+ `))}if(r){let A=`refs/remotes/${t}`,G=await pe(e,A),v=new Set(u.filter(T=>T.name.startsWith("refs/heads/")).map(T=>T.name.slice(11)));for(let T of G){let F=T.name.slice(A.length+1);v.has(F)||(await he(e,T.name),H.push(` - [deleted] (none) -> ${t}/${F}
407
414
  `))}}let D=u.find(A=>A.name==="HEAD");if(D){let A=S(e.gitDir,"FETCH_HEAD"),G=u.find(T=>T.name.startsWith("refs/heads/")&&T.hash===D.hash),v=G?`branch '${G.name.slice(11)}' of`:"of";await e.fs.writeFile(A,`${D.hash} ${v} ${l.url}
408
- `)}let O={stdout:"",stderr:H.join(""),exitCode:0};return await i?.hooks?.postFetch?.({repo:e,remote:t,url:l.url,refsUpdated:x.length}),O}function jo(e){return e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/tags/")?e.slice(10):e.startsWith("refs/remotes/")?e.slice(13):e}oe();Ce();ie();ue();We();he();oe();Ce();ie();ue();We();he();async function xl(e){let t=new Set,n=await J(e);n&&t.add(n);let r=await we(e,"refs");for(let a of r)t.add(a.hash);let o=S(e.gitDir,"logs");await e.fs.exists(o)&&await Cl(e,o,o,t);let s=await V(e);for(let a of s.entries)t.add(a.hash);for(let a of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let c=await U(e,a);c&&t.add(c)}let i=[];for(let a of t)await Vt(e,a)&&i.push(a);return i}async function Cl(e,t,n,r){let o=await e.fs.readdir(t);for(let s of o){let i=S(t,s),a=await e.fs.stat(i);if(a.isDirectory)await Cl(e,i,n,r);else if(a.isFile){let c=i.slice(n.length+1),f=await et(e,c);for(let l of f)l.newHash!==te&&r.add(l.newHash)}}}Fs();Yr();ue();async function Ip(e,t){let n=new Set,r=S(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(S(r,i)),c=new Kt(a);for(let f of c.allHashes())n.add(f)}}catch{}return n.size===0?Ar(await Hr(e,t,[])):(await Ar(await Hr(e,t,[]))).filter(s=>!n.has(s.hash))}async function oa(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 Ar(await Hr(t,r,[])):await Ip(t,r);if(a.length===0)return null;let c=a.length,f=Io(a,{window:s,depth:i}),l=f.filter(k=>k.delta).length,d=f.map(k=>({hash:k.hash,type:k.type,content:k.content,delta:k.delta,deltaBaseHash:k.deltaBase})),{data:m,entries:u}=await _s(d),h=await yc(m,u),p=m.subarray(m.byteLength-20),g="";for(let k=0;k<20;k++){let R=p[k];g+=(R>>4).toString(16)+(R&15).toString(16)}let w=S(t.gitDir,"objects","pack");await n.mkdir(w,{recursive:!0});let y=`pack-${g}`,x=S(w,`${y}.pack`),b=S(w,`${y}.idx`);await n.writeFile(x,m),await n.writeFile(b,h);let E=new Set(f.map(k=>k.hash));if(t.objectStore.invalidatePacks?.(),o){let k=await n.readdir(w);for(let C of k){if(!C.endsWith(".idx"))continue;let H=C.slice(0,-4);if(H===y)continue;let D=S(w,`${H}.idx`),O=!0;try{let A=await n.readFileBuffer(D),G=new Kt(A);for(let v of G.allHashes())if(!E.has(v)){O=!1;break}}catch{O=!1}if(O){try{await n.rm(S(w,`${H}.pack`))}catch{}try{await n.rm(D)}catch{}}}let R=S(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 H=S(R,C),D;try{D=await n.readdir(H)}catch{continue}for(let O of D){let A=`${C}${O}`;E.has(A)&&await n.rm(S(H,O))}try{(await n.readdir(H)).length===0&&await n.rm(H,{recursive:!0})}catch{}}}return{totalCount:c,deltaCount:l,packHash:g}}function ia(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(`
409
- `)}function Pl(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 q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=await xl(s),a=await oa({gitCtx:s,fs:r.fs,tips:i,cleanup:n.delete,all:n.all});return a?{stdout:"",stderr:`${ia(a.totalCount,a.deltaCount)}
415
+ `)}let O={stdout:"",stderr:H.join(""),exitCode:0};return await i?.hooks?.postFetch?.({repo:e,remote:t,url:l.url,refsUpdated:x.length}),O}function Go(e){return e.startsWith("refs/heads/")?e.slice(11):e.startsWith("refs/tags/")?e.slice(10):e.startsWith("refs/remotes/")?e.slice(13):e}ie();Ce();ce();me();ze();ge();ie();Ce();ce();me();ze();ge();async function Sl(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await pe(e,"refs");for(let a of r)t.add(a.hash);let o=S(e.gitDir,"logs");await e.fs.exists(o)&&await vl(e,o,o,t);let s=await z(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 B(e,a);c&&t.add(c)}let i=[];for(let a of t)await Vt(e,a)&&i.push(a);return i}async function vl(e,t,n,r){let o=await e.fs.readdir(t);for(let s of o){let i=S(t,s),a=await e.fs.stat(i);if(a.isDirectory)await vl(e,i,n,r);else if(a.isFile){let c=i.slice(n.length+1),f=await et(e,c);for(let l of f)l.newHash!==te&&r.add(l.newHash)}}}Bs();Cr();me();async function Wp(e,t){let n=new Set,r=S(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(S(r,i)),c=new zt(a);for(let f of c.allHashes())n.add(f)}}catch{}return n.size===0?jr(await Mr(e,t,[])):(await jr(await Mr(e,t,[]))).filter(s=>!n.has(s.hash))}async function fa(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 jr(await Mr(t,r,[])):await Wp(t,r);if(a.length===0)return null;let c=a.length,f=So(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:m,entries:u}=await Us(d),h=await xc(m,u),p=m.subarray(m.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=S(t.gitDir,"objects","pack");await n.mkdir(w,{recursive:!0});let b=`pack-${g}`,x=S(w,`${b}.pack`),y=S(w,`${b}.idx`);await n.writeFile(x,m),await n.writeFile(y,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 H=P.slice(0,-4);if(H===b)continue;let D=S(w,`${H}.idx`),O=!0;try{let A=await n.readFileBuffer(D),G=new zt(A);for(let v of G.allHashes())if(!k.has(v)){O=!1;break}}catch{O=!1}if(O){try{await n.rm(S(w,`${H}.pack`))}catch{}try{await n.rm(D)}catch{}}}let R=S(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 H=S(R,P),D;try{D=await n.readdir(H)}catch{continue}for(let O of D){let A=`${P}${O}`;k.has(A)&&await n.rm(S(H,O))}try{(await n.readdir(H)).length===0&&await n.rm(H,{recursive:!0})}catch{}}}return{totalCount:c,deltaCount:l,packHash:g}}function la(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(`
416
+ `)}function Tl(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 Sl(s),a=await fa({gitCtx:s,fs:r.fs,tips:i,cleanup:n.delete,all:n.all});return a?{stdout:"",stderr:`${la(a.totalCount,a.deltaCount)}
410
417
  `,exitCode:0}:{stdout:`Nothing new to pack.
411
- `,stderr:"",exitCode:0}}})}function $l(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 q(r.fs,r.cwd,t);if(M(o))return o;let s=o;await Sc(s),await wt(s);let i=await vp(s);if(i.length>0){let a=n.aggressive?250:10,c=n.aggressive?250:50,f=await oa({gitCtx:s,fs:r.fs,tips:i,window:a,depth:c,cleanup:!0,all:!0});if(await Tp(s.gitDir,r.fs),f)return{stdout:"",stderr:`${ia(f.totalCount,f.deltaCount,!0)}
412
- `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}})}var Sp=2160*60*60;async function vp(e){let t=new Set,n=await J(e);n&&t.add(n);let r=await we(e,"refs");for(let f of r)t.add(f.hash);let s=Math.floor(Date.now()/1e3)-Sp,i=S(e.gitDir,"logs");await e.fs.exists(i)&&await Ol(e,i,i,s,t);let a=await V(e);for(let f of a.entries)t.add(f.hash);for(let f of["MERGE_HEAD","CHERRY_PICK_HEAD","ORIG_HEAD"]){let l=await U(e,f);l&&t.add(l)}let c=[];for(let f of t)await Vt(e,f)&&c.push(f);return c}async function Ol(e,t,n,r,o){let s=await e.fs.readdir(t);for(let i of s){let a=S(t,i),c=await e.fs.stat(a);if(c.isDirectory){await Ol(e,a,n,r,o);try{(await e.fs.readdir(a)).length===0&&await e.fs.rm(a,{recursive:!0})}catch{}}else if(c.isFile){let f=a.slice(n.length+1),l=await et(e,f);if(f==="refs/stash"){for(let m of l)m.newHash!==te&&o.add(m.newHash);continue}let d=l.filter(m=>m.timestamp>=r);await Mn(e,f,d);for(let m of d)m.newHash!==te&&o.add(m.newHash)}}}async function Tp(e,t){let n=S(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(S(n,o),{recursive:!0})}catch{}}oe();Ce();ie();ue();ve();function Hp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ap(e,t,n,r){let o=t?Hp(e):e;r&&(o=`\\b${o}\\b`);let s=n?"i":"";try{return new RegExp(o,s)}catch{return I(`command line, '${e}': invalid regular expression`)}}async function Dp(e){let t=await V(e),n=new Set,r=[];for(let o of t.entries){if(o.stage!==0||n.has(o.path))continue;n.add(o.path);let s=S(e.workTree,o.path);r.push({path:o.path,getContent:async()=>{try{return await e.fs.readFile(s)}catch{return""}}})}return r}async function Mp(e){let t=await V(e),n=new Set,r=[];for(let o of t.entries){if(o.stage!==0||n.has(o.path))continue;n.add(o.path);let s=o.hash;r.push({path:o.path,getContent:()=>re(e,s)})}return r}async function jp(e,t){return(await qe(e,t)).filter(r=>!r.mode.startsWith("120")).map(r=>({path:r.path,getContent:()=>re(e,r.hash)}))}function Gp(e){let t=0;for(let n=0;n<e.length;n++)e[n]==="/"&&t++;return t}function Lp(e,t,n){return n||t===""?e:nt(t,e)}function Np(e,t,n,r){if($e(e)){let i=t.some(a=>a.test(e));return{matches:[],binary:i}}let o=e.split(`
413
- `);if(o.length>0&&o[o.length-1]===""&&o.pop(),n&&t.length>1&&!t.every(a=>o.some(c=>a.test(c))))return{matches:[],binary:!1};let s=[];for(let i=0;i<o.length;i++){let a=o[i],c=t.some(f=>f.test(a));(r?!c:c)&&s.push({lineNo:i+1,line:a})}return{matches:s,binary:!1}}function Il(e,t){e.command("grep",{description:"Print lines matching a pattern",args:[z.string().name("args").variadic().optional()],options:{cached:$().describe("Search blobs registered in the index"),lineNumber:$().alias("n").describe("Prefix the line number to matching lines"),filesWithMatches:$().alias("l").describe("Show only filenames"),filesWithoutMatch:$().alias("L").describe("Show only filenames without matches"),count:$().alias("c").describe("Show count of matching lines per file"),ignoreCase:$().alias("i").describe("Case insensitive matching"),wordRegexp:$().alias("w").describe("Match whole words only"),invertMatch:$().alias("v").describe("Invert the sense of matching"),fixedStrings:$().alias("F").describe("Interpret pattern as fixed string"),extendedRegexp:$().alias("E").describe("Interpret pattern as extended regexp"),basicRegexp:$().alias("G").describe("Interpret pattern as basic regexp"),suppressFilename:$().alias("h").describe("Suppress filename prefix"),forceFilename:$().alias("H").describe("Force filename prefix"),fullName:$().describe("Force paths to be output relative to project top"),quiet:$().alias("q").describe("Do not output matched lines; exit with status 0 on match"),allMatch:$().describe("Require all patterns to match in a file"),maxDepth:Z.number().describe("Descend at most <n> levels of directories"),maxCount:Z.number().alias("m").describe("Maximum number of matches per file"),afterContext:Z.number().alias("A").describe("Show <n> lines after match"),beforeContext:Z.number().alias("B").describe("Show <n> lines before match"),context:Z.number().alias("C").describe("Show <n> lines before and after match"),heading:$().describe("Show filename above matches"),break:$().describe("Print empty line between results from different files"),pattern:Z.string().alias("e").repeatable().describe("Match <pattern>")},handler:async(n,r,o)=>{let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.args??[],c=o.passthrough??[],f=n.pattern,l=[],d=0;if(f.length===0){if(a.length===0)return I("no pattern given");f.push(a[d++])}for(;d<a.length;d++)l.push(a[d]);let m=[];for(let W of f){let N=Ap(W,!!n.fixedStrings,!!n.ignoreCase,!!n.wordRegexp);if(M(N))return N;m.push(N)}let u=[];if(l.length>0)for(let W of l){let N=await pt(i,W);if(M(N))return N;let F;try{F=await je(i,N)}catch{return I(`bad revision '${W}'`)}let K=await j(i,F),de=await jp(i,K.tree);u.push({prefix:`${W}:`,files:de})}else if(n.cached)u.push({prefix:"",files:await Mp(i)});else{if(!i.workTree)return I("this operation must be run in a work tree");u.push({prefix:"",files:await Dp(i)})}let h=dt(i,r.cwd),p=null;c.length>0&&(p=c.map(W=>_e(W,h)));let g=n.maxDepth,w=n.maxCount,y=!!(n.lineNumber||n.afterContext!=null||n.beforeContext!=null||n.context!=null),x=!!n.filesWithMatches,b=!!n.filesWithoutMatch,E=!!n.count,k=!!n.quiet,R=!!n.heading,P=!!n.break,C=!!n.suppressFilename,H=!!n.invertMatch,D=!!n.allMatch,O=n.context??n.afterContext??0,A=n.context??n.beforeContext??0,G=O>0||A>0,v=[],T=!1,_=!0;for(let W of u){let N=W.files.slice().sort((F,K)=>F.path<K.path?-1:F.path>K.path?1:0);for(let F of N){if(p&&!be(p,F.path)||g!==void 0&&Gp(F.path)>g)continue;let K=await F.getContent(),de=Np(K,m,D,H),ke=Lp(F.path,h,!!n.fullName),He=W.prefix;if(de.binary){if(T=!0,k)return{stdout:"",stderr:"",exitCode:0};x?v.push(`${He}${ke}`):!b&&!E&&v.push(`Binary file ${He}${ke} matches`);continue}if(de.matches.length===0){b&&v.push(`${He}${ke}`);continue}if(T=!0,k)return{stdout:"",stderr:"",exitCode:0};if(b)continue;if(x){v.push(`${He}${ke}`);continue}if(E){let ae=w!==void 0?Math.min(de.matches.length,w):de.matches.length;v.push(`${He}${ke}:${ae}`);continue}let Fe=de.matches;if(w!==void 0&&(Fe=Fe.slice(0,w)),G)_p(v,K,Fe,He,ke,C,A,O,R,P,_);else if(R){!_&&P&&v.push(""),v.push(`${He}${ke}`);for(let ae of Fe)y?v.push(`${ae.lineNo}:${ae.line}`):v.push(ae.line)}else{!_&&P&&v.push("");for(let ae of Fe){let Ue=C?"":`${He}${ke}:`;y?v.push(`${Ue}${ae.lineNo}:${ae.line}`):v.push(`${Ue}${ae.line}`)}}_=!1}}return k?{stdout:"",stderr:"",exitCode:T?0:1}:{stdout:v.length>0?`${v.join(`
418
+ `,stderr:"",exitCode:0}}})}function Hl(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 Ac(s),await yt(s);let i=await zp(s);if(i.length>0){let a=n.aggressive?250:10,c=n.aggressive?250:50,f=await fa({gitCtx:s,fs:r.fs,tips:i,window:a,depth:c,cleanup:!0,all:!0});if(await Kp(s.gitDir,r.fs),f)return{stdout:"",stderr:`${la(f.totalCount,f.deltaCount,!0)}
419
+ `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}})}var qp=2160*60*60;async function zp(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await pe(e,"refs");for(let f of r)t.add(f.hash);let s=Math.floor(Date.now()/1e3)-qp,i=S(e.gitDir,"logs");await e.fs.exists(i)&&await Al(e,i,i,s,t);let a=await z(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 B(e,f);l&&t.add(l)}let c=[];for(let f of t)await Vt(e,f)&&c.push(f);return c}async function Al(e,t,n,r,o){let s=await e.fs.readdir(t);for(let i of s){let a=S(t,i),c=await e.fs.stat(a);if(c.isDirectory){await Al(e,a,n,r,o);try{(await e.fs.readdir(a)).length===0&&await e.fs.rm(a,{recursive:!0})}catch{}}else if(c.isFile){let f=a.slice(n.length+1),l=await et(e,f);if(f==="refs/stash"){for(let m of l)m.newHash!==te&&o.add(m.newHash);continue}let d=l.filter(m=>m.timestamp>=r);await Ln(e,f,d);for(let m of d)m.newHash!==te&&o.add(m.newHash)}}}async function Kp(e,t){let n=S(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(S(n,o),{recursive:!0})}catch{}}ie();function Vp(e){let t=Math.min(e.length,8e3),n=0;for(let r=0;r<t;r++)e.charCodeAt(r)===0&&n++;return n>t*.01}function Dl(e,t,n,r){if(Vp(e)){let i=t.some(a=>a.test(e));return{matches:[],binary:i}}let o=e.split(`
420
+ `);if(o.length>0&&o[o.length-1]===""&&o.pop(),n&&t.length>1&&!t.every(a=>o.some(c=>a.test(c))))return{matches:[],binary:!1};let s=[];for(let i=0;i<o.length;i++){let a=o[i],c=t.some(f=>f.test(a));(r?!c:c)&&s.push({lineNo:i+1,line:a})}return{matches:s,binary:!1}}function Yp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ml(e,t){let n=t?.fixed?Yp(e):e;t?.wordRegexp&&(n=`\\b${n}\\b`);let r=t?.ignoreCase?"i":"";try{return new RegExp(n,r)}catch{return null}}Ce();ce();me();He();async function Xp(e){let t=await z(e),n=new Set,r=[];for(let o of t.entries){if(o.stage!==0||n.has(o.path))continue;n.add(o.path);let s=S(e.workTree,o.path);r.push({path:o.path,getContent:async()=>{try{return await e.fs.readFile(s)}catch{return""}}})}return r}async function Zp(e){let t=await z(e),n=new Set,r=[];for(let o of t.entries){if(o.stage!==0||n.has(o.path))continue;n.add(o.path);let s=o.hash;r.push({path:o.path,getContent:()=>oe(e,s)})}return r}async function Jp(e,t){return(await Ke(e,t)).filter(r=>!r.mode.startsWith("120")).map(r=>({path:r.path,getContent:()=>oe(e,r.hash)}))}function Qp(e){let t=0;for(let n=0;n<e.length;n++)e[n]==="/"&&t++;return t}function eg(e,t,n){return n||t===""?e:st(t,e)}function jl(e,t){e.command("grep",{description:"Print lines matching a pattern",args:[q.string().name("args").variadic().optional()],options:{cached:$().describe("Search blobs registered in the index"),lineNumber:$().alias("n").describe("Prefix the line number to matching lines"),filesWithMatches:$().alias("l").describe("Show only filenames"),filesWithoutMatch:$().alias("L").describe("Show only filenames without matches"),count:$().alias("c").describe("Show count of matching lines per file"),ignoreCase:$().alias("i").describe("Case insensitive matching"),wordRegexp:$().alias("w").describe("Match whole words only"),invertMatch:$().alias("v").describe("Invert the sense of matching"),fixedStrings:$().alias("F").describe("Interpret pattern as fixed string"),extendedRegexp:$().alias("E").describe("Interpret pattern as extended regexp"),basicRegexp:$().alias("G").describe("Interpret pattern as basic regexp"),suppressFilename:$().alias("h").describe("Suppress filename prefix"),forceFilename:$().alias("H").describe("Force filename prefix"),fullName:$().describe("Force paths to be output relative to project top"),quiet:$().alias("q").describe("Do not output matched lines; exit with status 0 on match"),allMatch:$().describe("Require all patterns to match in a file"),maxDepth:V.number().describe("Descend at most <n> levels of directories"),maxCount:V.number().alias("m").describe("Maximum number of matches per file"),afterContext:V.number().alias("A").describe("Show <n> lines after match"),beforeContext:V.number().alias("B").describe("Show <n> lines before match"),context:V.number().alias("C").describe("Show <n> lines before and after match"),heading:$().describe("Show filename above matches"),break:$().describe("Print empty line between results from different files"),pattern:V.string().alias("e").repeatable().describe("Match <pattern>")},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??[],c=o.passthrough??[],f=n.pattern,l=[],d=0;if(f.length===0){if(a.length===0)return I("no pattern given");f.push(a[d++])}for(;d<a.length;d++)l.push(a[d]);let m=[];for(let U of f){let N=Ml(U,{fixed:!!n.fixedStrings,ignoreCase:!!n.ignoreCase,wordRegexp:!!n.wordRegexp});if(!N)return I(`command line, '${U}': invalid regular expression`);m.push(N)}let u=[];if(l.length>0)for(let U of l){let N=await wt(i,U);if(M(N))return N;let K;try{K=await Te(i,N)}catch{return I(`bad revision '${U}'`)}let ne=await j(i,K),J=await Jp(i,ne.tree);u.push({prefix:`${U}:`,files:J})}else if(n.cached)u.push({prefix:"",files:await Zp(i)});else{if(!i.workTree)return I("this operation must be run in a work tree");u.push({prefix:"",files:await Xp(i)})}let h=ut(i,r.cwd),p=null;c.length>0&&(p=c.map(U=>Ue(U,h)));let g=n.maxDepth,w=n.maxCount,b=!!(n.lineNumber||n.afterContext!=null||n.beforeContext!=null||n.context!=null),x=!!n.filesWithMatches,y=!!n.filesWithoutMatch,k=!!n.count,E=!!n.quiet,R=!!n.heading,C=!!n.break,P=!!n.suppressFilename,H=!!n.invertMatch,D=!!n.allMatch,O=n.context??n.afterContext??0,A=n.context??n.beforeContext??0,G=O>0||A>0,v=[],T=!1,F=!0;for(let U of u){let N=U.files.slice().sort((K,ne)=>K.path<ne.path?-1:K.path>ne.path?1:0);for(let K of N){if(p&&!Ee(p,K.path)||g!==void 0&&Qp(K.path)>g)continue;let ne=await K.getContent(),J=Dl(ne,m,D,H),re=eg(K.path,h,!!n.fullName),ke=U.prefix;if(J.binary){if(T=!0,E)return{stdout:"",stderr:"",exitCode:0};x?v.push(`${ke}${re}`):!y&&!k&&v.push(`Binary file ${ke}${re} matches`);continue}if(J.matches.length===0){y&&v.push(`${ke}${re}`);continue}if(T=!0,E)return{stdout:"",stderr:"",exitCode:0};if(y)continue;if(x){v.push(`${ke}${re}`);continue}if(k){let ae=w!==void 0?Math.min(J.matches.length,w):J.matches.length;v.push(`${ke}${re}:${ae}`);continue}let je=J.matches;if(w!==void 0&&(je=je.slice(0,w)),G)tg(v,ne,je,ke,re,P,A,O,R,C,F);else if(R){!F&&C&&v.push(""),v.push(`${ke}${re}`);for(let ae of je)b?v.push(`${ae.lineNo}:${ae.line}`):v.push(ae.line)}else{!F&&C&&v.push("");for(let ae of je){let $e=P?"":`${ke}${re}:`;b?v.push(`${$e}${ae.lineNo}:${ae.line}`):v.push(`${$e}${ae.line}`)}}F=!1}}return E?{stdout:"",stderr:"",exitCode:T?0:1}:{stdout:v.length>0?`${v.join(`
414
421
  `)}
415
- `:"",stderr:"",exitCode:T?0:1}}})}function _p(e,t,n,r,o,s,i,a,c,f,l){let d=t.split(`
416
- `);d.length>0&&d[d.length-1]===""&&d.pop();let m=new Set(n.map(g=>g.lineNo)),u=[];for(let g of n){let w=Math.max(1,g.lineNo-i),y=Math.min(d.length,g.lineNo+a);u.push([w,y])}let h=[];for(let[g,w]of u)h.length>0&&g<=h[h.length-1][1]+1?h[h.length-1][1]=Math.max(h[h.length-1][1],w):h.push([g,w]);let p=s?"":`${r}${o}`;c?(!l&&f&&e.push(""),e.push(`${r}${o}`)):!l&&f&&e.push("");for(let g=0;g<h.length;g++){g>0&&e.push("--");let[w,y]=h[g];for(let x=w;x<=y;x++){let b=d[x-1],k=m.has(x)?":":"-";c?e.push(`${x}${k}${b}`):e.push(`${p}${k}${x}${k}${b}`)}}}ue();Dn();function Sl(e){e.command("init",{description:"Initialize a new repository",args:[z.string().name("directory").describe("The directory to initialize").optional()],options:{bare:$().describe("Create a bare repository"),initialBranch:Z.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?vt(n.cwd,t.directory):n.cwd;t.directory&&await n.fs.mkdir(o,{recursive:!0});let{ctx:s,reinit:i}=await Bs(n.fs,o,{bare:t.bare,...r?{initialBranch:r}:{}}),a="";i&&r&&(a=`warning: re-init: ignored --initial-branch=${r}
417
- `);let c=t.bare?"bare ":"";return{stdout:`${i?"Reinitialized existing":"Initialized empty"} ${c}Git repository in ${s.gitDir}/
418
- `,stderr:a,exitCode:0}}})}oe();ir();var Go=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:vl(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,vl(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 vl(e,t){return e.length>=t?e:e+" ".repeat(t-e.length)}oe();function Rs(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+=Vp(c.timestamp,c.timezone),s+=3;continue;case"i":o+=Yp(c.timestamp,c.timezone),s+=3;continue;case"d":o+=Ft(c.timestamp,c.timezone),s+=3;continue;case"D":o+=Zp(c.timestamp,c.timezone),s+=3;continue;case"r":o+=Xp(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+=aa(r.message),s+=2;continue;case"b":o+=Fp(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+=`
419
- `,s+=2;continue;case"%":o+="%",s+=2;continue;default:o+=`%${i}`,s+=2;continue}}o+=e[s],s++}return o}var aa=le;function Fp(e){let t=e.indexOf(`
422
+ `:"",stderr:"",exitCode:T?0:1}}})}function tg(e,t,n,r,o,s,i,a,c,f,l){let d=t.split(`
423
+ `);d.length>0&&d[d.length-1]===""&&d.pop();let m=new Set(n.map(g=>g.lineNo)),u=[];for(let g of n){let w=Math.max(1,g.lineNo-i),b=Math.min(d.length,g.lineNo+a);u.push([w,b])}let h=[];for(let[g,w]of u)h.length>0&&g<=h[h.length-1][1]+1?h[h.length-1][1]=Math.max(h[h.length-1][1],w):h.push([g,w]);let p=s?"":`${r}${o}`;c?(!l&&f&&e.push(""),e.push(`${r}${o}`)):!l&&f&&e.push("");for(let g=0;g<h.length;g++){g>0&&e.push("--");let[w,b]=h[g];for(let x=w;x<=b;x++){let y=d[x-1],E=m.has(x)?":":"-";c?e.push(`${x}${E}${y}`):e.push(`${p}${E}${x}${E}${y}`)}}}me();Gn();function Gl(e,t){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:V.string().alias("b").describe("Name for the initial branch")},examples:["git init","git init --bare","git init my-project"],handler:async(n,r)=>{let o=n.initialBranch??t?.configOverrides?.locked?.["init.defaultBranch"]??t?.configOverrides?.defaults?.["init.defaultBranch"],s=n.directory?Tt(r.cwd,n.directory):r.cwd;n.directory&&await r.fs.mkdir(s,{recursive:!0});let{ctx:i,reinit:a}=await qs(r.fs,s,{bare:n.bare,...o?{initialBranch:o}:{}}),c="";a&&o&&(c=`warning: re-init: ignored --initial-branch=${o}
424
+ `);let f=n.bare?"bare ":"";return{stdout:`${a?"Reinitialized existing":"Initialized empty"} ${f}Git repository in ${i.gitDir}/
425
+ `,stderr:c,exitCode:0}}})}ie();fr();var Lo=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:Ll(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,Ll(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 Ll(e,t){return e.length>=t?e:e+" ".repeat(t-e.length)}ie();function xs(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+=Fl(c.timestamp,c.timezone),s+=3;continue;case"i":o+=Ul(c.timestamp,c.timezone),s+=3;continue;case"d":o+=No(c.timestamp,c.timezone,t.dateMode),s+=3;continue;case"D":o+=Wl(c.timestamp,c.timezone),s+=3;continue;case"r":o+=Bl(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+=da(r.message),s+=2;continue;case"b":o+=ng(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+=`
426
+ `,s+=2;continue;case"%":o+="%",s+=2;continue;default:o+=`%${i}`,s+=2;continue}}o+=e[s],s++}return o}var da=ue;function ng(e){let t=e.indexOf(`
420
427
 
421
- `);return t===-1?"":e.slice(t+2).replace(/\n$/,"")}function Lo(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 xs(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=aa(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(` ${aa(s.message)}`),a.join(`
428
+ `);return t===-1?"":e.slice(t+2).replace(/\n$/,"")}function _o(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 Cs(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=da(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(` ${da(s.message)}`),a.join(`
422
429
  `)}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(`
423
430
  `))a.push(` ${f}`);return a.join(`
424
- `)}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: ${Ft(s.author.timestamp,s.author.timezone)}`),a.push(`Commit: ${s.committer.name} <${s.committer.email}>`),a.push(`CommitDate: ${Ft(s.committer.timestamp,s.committer.timezone)}`),a.push("");let c=s.message.replace(/\n$/,"");for(let f of c.split(`
431
+ `)}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: ${No(s.author.timestamp,s.author.timezone,t.dateMode)}`),a.push(`Commit: ${s.committer.name} <${s.committer.email}>`),a.push(`CommitDate: ${No(s.committer.timestamp,s.committer.timezone,t.dateMode)}`),a.push("");let c=s.message.replace(/\n$/,"");for(let f of c.split(`
425
432
  `))a.push(` ${f}`);return a.join(`
426
- `)}case"raw":return Up(t,n);default:return Bp(t,n)}}function Up(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(`
433
+ `)}case"raw":return rg(t,n);default:return sg(t,n)}}function rg(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(`
427
434
  `))o.push(` ${i}`);return o.join(`
428
- `)}function Bp(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: ${Ft(r.author.timestamp,r.author.timezone)}`),s.push("");let i=r.message.replace(/\n$/,"");for(let a of i.split(`
435
+ `)}function sg(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: ${No(r.author.timestamp,r.author.timezone,e.dateMode)}`),s.push("");let i=r.message.replace(/\n$/,"");for(let a of i.split(`
429
436
  `))s.push(` ${a}`);return s.join(`
430
- `)}var Wp=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],qp=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function zp(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 ca(e,t){let n=zp(t);return new Date((e+n*60)*1e3)}function Kp(e){return`${e.slice(0,3)}:${e.slice(3)}`}function Vp(e,t){let n=ca(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 Yp(e,t){let n=ca(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 Xp(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 Zp(e,t){let n=ca(e,t),r=Wp[n.getUTCDay()]?.slice(0,3),o=qp[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();he();wn();ve();function Al(e,t){e.command("log",{description:"Show commit logs",transformArgs:n=>n.map(r=>/^-(\d+)$/.test(r)?`-n${r.slice(1)}`:r),args:[z.string().name("revisions").variadic().optional()],options:{maxCount:Z.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:Z.string().describe("Filter by author (regex or substring)"),grep:Z.string().describe("Filter by commit message (regex or substring)"),since:Z.string().describe("Show commits after date"),after:Z.string().describe("Synonym for --since"),until:Z.string().describe("Show commits before date"),before:Z.string().describe("Synonym for --until"),decorate:$().describe("Show ref names next to commit hashes"),reverse:$().describe("Output commits in reverse order"),format:Z.string().describe("Pretty-print format string"),pretty:Z.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 q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a,c,f=n.revisions,l=f&&f.length===1?Ao(f[0]):null;if(l){let F=async Fe=>{let ae=await ze(i,Fe);if(!ae)return Yt(Fe);try{return await je(i,ae)}catch{return Yt(Fe)}},K=await F(l.left);if(typeof K=="object"&&"exitCode"in K)return K;let de=await F(l.right);if(typeof de=="object"&&"exitCode"in de)return de;let ke=K,He=de;if(l.type==="two-dot")a=[He],c=[ke];else{a=[ke,He];let Fe=await Ut(i,ke,He);c=Fe.length>0?Fe:void 0}if(n.all){let Fe=await we(i);for(let Ue of Fe)try{let Rt=await je(i,Ue.hash);a.includes(Rt)||a.push(Rt)}catch{}let ae=await J(i);ae&&!a.includes(ae)&&a.push(ae)}}else if(n.all){let F=await we(i),K=new Set;for(let ke of F)try{K.add(await je(i,ke.hash))}catch{}let de=await J(i);de&&K.add(de),a=[...K]}else if(f&&f.length>0){let F=[];for(let K of f){let de=await ze(i,K);if(!de)return Yt(K);try{F.push(await je(i,de))}catch{return Yt(K)}}a=F}else{let F=await Qe(i);if(M(F))return F;a=[F]}if(a.length===0)return I("your current branch does not have any commits yet");let d=o.passthrough.length>0?o.passthrough.map(F=>_e(F,"")):null,m=n.author?Tl(n.author):null,u=n.grep?Tl(n.grep):null,h=n.since??n.after,p=n.until??n.before,g=h?Bi(h):null,w=p?Bi(p):null,y=n.format??n.pretty,x=null,b=null,E=!1;if(n.oneline)b="oneline",E=!0;else if(y!==void 0){let F=Lo(y);x=F.formatStr,b=F.preset}let k=n.patch?"patch":n.stat?"stat":n.nameStatus?"name-status":n.nameOnly?"name-only":n.shortstat?"shortstat":n.numstat?"numstat":null,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 eg(i):null,H=C?F=>Hl(C,F):void 0,D=C?F=>{let K=Hl(C,F);return K.startsWith("(")&&K.endsWith(")")?K.slice(1,-1):K}:void 0,O=n.maxCount,A=n.reverse,G=n.firstParent,v=d?Qp(i,a,d,c?await Jp(i,c):void 0,G):jt(i,a,{exclude:c,topoOrder:R,firstParent:G}),T=[];for await(let F of v){if(O!==void 0&&T.length>=O)break;let{commit:K}=F;if(!(w!==null&&K.committer.timestamp>w)&&!(g!==null&&K.committer.timestamp<=g)){if(m){let de=`${K.author.name} <${K.author.email}>`;if(!m(de))continue}u&&!u(K.message)||T.push(F)}}let _=A?T.reverse():T;if(R)return tg(_,i,x,b,E,k,H,D);if(x!==null){let F=[];for(let K of _){let de={hash:K.hash,commit:K.commit,decorations:H,decorationsRaw:D},ke=Rs(x,de),He=await fa(i,K.commit,k);He&&(ke+=`
437
+ `)}var Nl=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],_l=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function og(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 Fo(e,t){let n=og(t);return new Date((e+n*60)*1e3)}function ig(e){return`${e.slice(0,3)}:${e.slice(3)}`}function Fl(e,t){let n=Fo(e,t),r=n.getUTCFullYear(),o=String(n.getUTCMonth()+1).padStart(2,"0"),s=String(n.getUTCDate()).padStart(2,"0"),i=String(n.getUTCHours()).padStart(2,"0"),a=String(n.getUTCMinutes()).padStart(2,"0"),c=String(n.getUTCSeconds()).padStart(2,"0"),f=t==="+0000"||t==="-0000"?"Z":ig(t);return`${r}-${o}-${s}T${i}:${a}:${c}${f}`}function Ul(e,t){let n=Fo(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 Bl(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 ag(e,t){let n=Fo(e,t),r=n.getUTCFullYear(),o=String(n.getUTCMonth()+1).padStart(2,"0"),s=String(n.getUTCDate()).padStart(2,"0");return`${r}-${o}-${s}`}function cg(e,t){return`${e} ${t}`}function fg(e){return e.toString()}function lg(e,t){let n=new Date(e*1e3),r=Nl[n.getDay()]?.slice(0,3),o=_l[n.getMonth()],s=n.getDate(),i=String(n.getHours()).padStart(2,"0"),a=String(n.getMinutes()).padStart(2,"0"),c=String(n.getSeconds()).padStart(2,"0"),f=n.getFullYear();return`${r} ${o} ${s} ${i}:${a}:${c} ${f}`}function No(e,t,n){switch(n){case"short":return ag(e,t);case"iso":return Ul(e,t);case"iso-strict":return Fl(e,t);case"relative":case"human":return Bl(e);case"rfc":return Wl(e,t);case"raw":return cg(e,t);case"unix":return fg(e);case"local":return lg(e,t);default:return Cn(e,t)}}function Wl(e,t){let n=Fo(e,t),r=Nl[n.getUTCDay()]?.slice(0,3),o=_l[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}`}ce();ge();sn();He();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:V.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:V.string().describe("Filter by author (regex or substring)"),grep:V.string().describe("Filter by commit message (regex or substring)"),since:V.string().describe("Show commits after date"),after:V.string().describe("Synonym for --since"),until:V.string().describe("Show commits before date"),before:V.string().describe("Synonym for --until"),decorate:$().describe("Show ref names next to commit hashes"),reverse:$().describe("Output commits in reverse order"),format:V.string().describe("Pretty-print format string"),pretty:V.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"),date:V.string().describe("Date format: short, iso, iso-strict, relative, rfc, raw, unix, local, human, default")},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?Do(f[0]):null;if(l){let J=async $e=>{let rt=await Be(i,$e);if(!rt)return Yt($e);try{return await Te(i,rt)}catch{return Yt($e)}},re=await J(l.left);if(typeof re=="object"&&"exitCode"in re)return re;let ke=await J(l.right);if(typeof ke=="object"&&"exitCode"in ke)return ke;let je=re,ae=ke;if(l.type==="two-dot")a=[ae],c=[je];else{a=[je,ae];let $e=await Ft(i,je,ae);c=$e.length>0?$e:void 0}if(n.all){let $e=await pe(i);for(let Sn of $e)try{let We=await Te(i,Sn.hash);a.includes(We)||a.push(We)}catch{}let rt=await Z(i);rt&&!a.includes(rt)&&a.push(rt)}}else if(n.all){let J=await pe(i),re=new Set;for(let je of J)try{re.add(await Te(i,je.hash))}catch{}let ke=await Z(i);ke&&re.add(ke),a=[...re]}else if(f&&f.length>0){let J=[];for(let re of f){let ke=await Be(i,re);if(!ke)return Yt(re);try{J.push(await Te(i,ke))}catch{return Yt(re)}}a=J}else{let J=await Qe(i);if(M(J))return J;a=[J]}if(a.length===0)return I("your current branch does not have any commits yet");let d=o.passthrough.length>0?o.passthrough.map(J=>Ue(J,"")):null,m=n.author?ql(n.author):null,u=n.grep?ql(n.grep):null,h=n.since??n.after,p=n.until??n.before,g=h?Ki(h):null,w=p?Ki(p):null,b=n.format??n.pretty,x=null,y=null,k=!1;if(n.oneline)y="oneline",k=!0;else if(b!==void 0){let J=_o(b);x=J.formatStr,y=J.preset}let E=new Set(["default","short","iso","iso-strict","relative","rfc","raw","unix","local","human"]);if(n.date&&!E.has(n.date))return{stdout:"",stderr:`fatal: unknown date format ${n.date}
438
+ `,exitCode:128};let R=n.date,C=n.patch?"patch":n.stat?"stat":n.nameStatus?"name-status":n.nameOnly?"name-only":n.shortstat?"shortstat":n.numstat?"numstat":null,P=n.graph;if(P&&n.reverse)return I("options '--graph' and '--reverse' cannot be used together");let D=n.decorate||x!=null&&(x.includes("%d")||x.includes("%D"))?await mg(i):null,O=D?J=>zl(D,J):void 0,A=D?J=>{let re=zl(D,J);return re.startsWith("(")&&re.endsWith(")")?re.slice(1,-1):re}:void 0,G=n.maxCount,v=n.reverse,T=n.firstParent,F=d?ug(i,a,d,c?await dg(i,c):void 0,T):jt(i,a,{exclude:c,topoOrder:P,firstParent:T}),_=[];for await(let J of F){if(G!==void 0&&_.length>=G)break;let{commit:re}=J;if(!(w!==null&&re.committer.timestamp>w)&&!(g!==null&&re.committer.timestamp<=g)){if(m){let ke=`${re.author.name} <${re.author.email}>`;if(!m(ke))continue}u&&!u(re.message)||_.push(J)}}let U=v?_.reverse():_;if(P)return hg(U,i,x,y,k,C,O,A,R);if(x!==null){let J=[];for(let re of U){let ke={hash:re.hash,commit:re.commit,decorations:O,decorationsRaw:A,dateMode:R},je=xs(x,ke),ae=await ua(i,re.commit,C);ae&&(je+=`
431
439
 
432
- ${He.replace(/\n$/,"")}`),F.push(ke)}return{stdout:F.length>0?`${F.join(`
440
+ ${ae.replace(/\n$/,"")}`),J.push(je)}return{stdout:J.length>0?`${J.join(`
433
441
  `)}
434
- `:"",stderr:"",exitCode:0}}let B=b??"medium",W=B==="oneline",N=[];for(let F=0;F<_.length;F++){let K=_[F],de={hash:K.hash,commit:K.commit,decorations:H,decorationsRaw:D},ke=xs(B,de,F===0,E),He=await fa(i,K.commit,k);He&&(ke+=`${W?`
442
+ `:"",stderr:"",exitCode:0}}let N=y??"medium",K=N==="oneline",ne=[];for(let J=0;J<U.length;J++){let re=U[J],ke={hash:re.hash,commit:re.commit,decorations:O,decorationsRaw:A,dateMode:R},je=Cs(N,ke,J===0,k),ae=await ua(i,re.commit,C);ae&&(je+=`${K?`
435
443
  `:`
436
444
 
437
- `}${He.replace(/\n$/,"")}`),N.push(ke)}return{stdout:N.length>0?`${N.join(`
438
- `)}
439
- `:"",stderr:"",exitCode:0}}})}async function Jp(e,t){let n=new Set;for await(let r of jt(e,t))n.add(r.hash);return n}function Tl(e){try{let t=new RegExp(e);return n=>t.test(n)}catch{return t=>t.includes(e)}}async function*Qp(e,t,n,r,o){let s=new Set(r),i=new _n,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 Ke(e,null,f.tree)).some(u=>be(n,u.path))&&(yield c);continue}if(l.length===1){let m=l[0];if(m){try{let u=await j(e,m);(await Ke(e,u.tree,f.tree)).some(p=>be(n,p.path))&&(yield c)}catch{yield c}await a(m)}continue}let d=[];for(let m of l)try{let u=await j(e,m);(await Ke(e,u.tree,f.tree)).some(p=>be(n,p.path))||d.push(m)}catch{}if(d.length>0&&d[0])await a(d[0]);else{yield c;for(let m of l)await a(m)}}}async function eg(e){let t=await Q(e),n=t?.type==="symbolic"?xe(t.target):null,r=await J(e),o=new Map,s=(f,l,d)=>{let m=o.get(f);m||(m=[],o.set(f,m)),m.push({label:l,fullRef:d})},i=await we(e,"refs/heads");for(let f of i)s(f.hash,xe(f.name),f.name);let a=await we(e,"refs/remotes");for(let f of a)s(f.hash,f.name.replace("refs/remotes/",""),f.name);let c=await we(e,"refs/tags");for(let f of c){let l=f.hash;try{l=await je(e,f.hash)}catch{}s(l,`tag: ${f.name.replace("refs/tags/","")}`,f.name)}return{headTarget:n,headHash:r,byHash:o}}function Hl(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 tg(e,t,n,r,o,s,i,a){let c=new Go,f=r??"medium",l=f==="oneline",d=[];for(let m=0;m<e.length;m++){let u=e[m],h={hash:u.hash,commit:u.commit,decorations:i,decorationsRaw:a},p;n!==null?p=Rs(n,h):p=xs(f,h,!0,o),c.update(u.hash,u.commit.parents),m>0&&!l&&n===null&&d.push(c.paddingPrefix());let g=p.split(`
440
- `),w=0;for(;;){let{prefix:b,isCommitLine:E}=c.nextLine();if(E){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 fa(t,u.commit,s,y);if(x){let b=x.replace(/\n$/,"").split(`
441
- `);if(l||n!==null)for(let E of b)d.push(c.paddingPrefix()+E);else{d.push(c.paddingPrefix());for(let E of b)d.push(c.paddingPrefix()+E)}}}return{stdout:d.length>0?`${d.join(`
442
- `)}
443
- `:"",stderr:"",exitCode:0}}async function fa(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 Ke(e,o,t.tree),{remaining:i,renames:a}=await ot(e,s);switch(n){case"name-only":return ng(i,a);case"name-status":return rg(i,a);case"stat":return sg(e,i,a,r);case"shortstat":return og(e,i,a);case"numstat":return ig(e,i,a);case"patch":return ag(e,i,a)}}function ng(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}
444
- `).join("")}function rg(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}
445
- `).join("")}async function sg(e,t,n,r){let{fileStats:o}=await Kn(e,t,n);return o.sort((s,i)=>s.sortKey<i.sortKey?-1:s.sortKey>i.sortKey?1:0),dr(o,r)}async function og(e,t,n){let{fileStats:r}=await Kn(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=zn(r.length,o,s);return i?`${i}
446
- `:""}async function ig(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:fn(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 re(e,s.oldHash):"",a=s.newHash?await re(e,s.newHash):"";if($e(i)||$e(a))o+=`- - ${s.display}
447
- `;else{let c=Et(i),f=Et(a),l=at(c,f),d=0,m=0;for(let u of l)u.type==="insert"?d++:u.type==="delete"&&m++;o+=`${d} ${m} ${s.display}
448
- `}}return o}async function ag(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 re(e,i.oldHash):"",c=i.newHash?await re(e,i.newHash):"";o+=Ot({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 re(e,i.oldHash):"",c=i.newHash?await re(e,i.newHash):"";o+=Ot({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}oe();Ce();ue();er();st();function Ml(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 q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=Je(i);if(a)return a;let c=i.workTree,f=n.cached,l=n.modified,d=n.deleted,m=n.others,u=n.unmerged,h=n.stage,p=n["exclude-standard"],g=n["nul-terminate"],w=n["show-tags"];f||l||d||m||u||(f=!0);let x=await V(i),b=g?"\0":`
449
- `,E=o.passthrough.length>0?o.passthrough.map(P=>{let C=r.cwd!==c?cg(c,r.cwd):"";return _e(P,C)}):null,k=[];if(f)for(let P of x.entries){if(E&&!be(E,P.path))continue;let C=w?P.stage>0?"M":"H":null;k.push(Dl(P,h,C))}if(u&&!f)for(let P of x.entries)P.stage!==0&&(E&&!be(E,P.path)||k.push(Dl(P,!0,w?"M":null)));if(l||d){let P=await fg(i,c,x);for(let{path:C,status:H}of P){if(H==="modified"&&!l||H==="deleted"&&!d||E&&!be(E,C))continue;let D=w?H==="deleted"?"R":"C":null;k.push(D?`${D} ${C}`:C)}}if(m){let P=await lg(i,c,x,p);for(let C of P)E&&!be(E,C)||k.push(w?`? ${C}`:C)}return{stdout:k.length>0?k.join(b)+b:"",stderr:"",exitCode:0}}})}function Dl(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 cg(e,t){return t===e?"":t.startsWith(`${e}/`)?t.slice(e.length+1):""}async function fg(e,t,n){let r=[];for(let o of n.entries){if(o.stage!==0)continue;let s=S(t,o.path);if(!await e.fs.exists(s)){r.push({path:o.path,status:"deleted"});continue}let a=await ut(e.fs,s);if(!a.isFile&&!a.isSymbolicLink)continue;await jn(e.fs,s)!==o.hash&&r.push({path:o.path,status:"modified"})}return r}async function lg(e,t,n,r){let o=new Set(n.entries.map(i=>i.path));return(await rt(e,t,"",{skipIgnore:!r})).filter(i=>!o.has(i))}oe();ir();Be();Ce();ie();We();he();wn();ve();function jl(e,t){e.command("merge",{description:"Join two or more development histories together",args:[z.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:Z.string().alias("m").describe("Merge commit message")},transformArgs:n=>n.filter(r=>r!=="--ff"),handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort)return pg(s,r.env);if(n.continue)return hg(s,r.env,t);let i=n.branch;if(!i)return I("you must specify a branch to merge");let a=await Qe(s);if(M(a))return a;let c=await V(s),f=En(c,"Merging");if(f)return f;if(await U(s,"MERGE_HEAD"))return I(`You have not concluded your merge (MERGE_HEAD exists).
450
- Please, commit your changes before you merge.`);if(await U(s,"CHERRY_PICK_HEAD"))return I(`You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
451
- Please, commit your changes before you merge.`);let m=await ze(s,i);if(!m)return L(`merge: ${i} - not something we can merge
452
- `);let u=await je(s,m),h=await Ut(s,a,u),p=h[0]??null;if(h.length===0)return I("refusing to merge unrelated histories");if(p===u)return await ge(s,"MERGE_MSG"),{stdout:`Already up to date.${n.squash?" (nothing to squash)":""}
453
- `,stderr:"",exitCode:0};let g=!!n.noFf,w=!!n.ffOnly;if(!n.noFf&&!n.ffOnly){let E=await Re(s,"merge.ff");E==="false"?g=!0:E==="only"&&(w=!0)}if(g&&w)return I("--no-ff and --ff-only are incompatible");let y=p===a&&!g;if(w&&!y)return L(`hint: Diverging branches can't be fast-forwarded, you need to either:
445
+ `}${ae.replace(/\n$/,"")}`),ne.push(je)}return{stdout:ne.length>0?`${ne.join(`
446
+ `)}
447
+ `:"",stderr:"",exitCode:0}}})}async function dg(e,t){let n=new Set;for await(let r of jt(e,t))n.add(r.hash);return n}function ql(e){try{let t=new RegExp(e);return n=>t.test(n)}catch{return t=>t.includes(e)}}async function*ug(e,t,n,r,o){let s=new Set(r),i=new Wn,a=async c=>{if(!s.has(c))try{let f=await j(e,c);i.push({hash:c,commit:f})}catch{}};for(let c of t)await a(c);for(;i.size>0;){let c=i.pop();if(s.has(c.hash))continue;s.add(c.hash);let{commit:f}=c,l=o?f.parents.slice(0,1):f.parents;if(l.length===0){(await Ve(e,null,f.tree)).some(u=>Ee(n,u.path))&&(yield c);continue}if(l.length===1){let m=l[0];if(m){try{let u=await j(e,m);(await Ve(e,u.tree,f.tree)).some(p=>Ee(n,p.path))&&(yield c)}catch{yield c}await a(m)}continue}let d=[];for(let m of l)try{let u=await j(e,m);(await Ve(e,u.tree,f.tree)).some(p=>Ee(n,p.path))||d.push(m)}catch{}if(d.length>0&&d[0])await a(d[0]);else{yield c;for(let m of l)await a(m)}}}async function mg(e){let t=await Q(e),n=t?.type==="symbolic"?Pe(t.target):null,r=await Z(e),o=new Map,s=(f,l,d)=>{let m=o.get(f);m||(m=[],o.set(f,m)),m.push({label:l,fullRef:d})},i=await pe(e,"refs/heads");for(let f of i)s(f.hash,Pe(f.name),f.name);let a=await pe(e,"refs/remotes");for(let f of a)s(f.hash,f.name.replace("refs/remotes/",""),f.name);let c=await pe(e,"refs/tags");for(let f of c){let l=f.hash;try{l=await Te(e,f.hash)}catch{}s(l,`tag: ${f.name.replace("refs/tags/","")}`,f.name)}return{headTarget:n,headHash:r,byHash:o}}function zl(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 hg(e,t,n,r,o,s,i,a,c){let f=new Lo,l=r??"medium",d=l==="oneline",m=[];for(let u=0;u<e.length;u++){let h=e[u],p={hash:h.hash,commit:h.commit,decorations:i,decorationsRaw:a,dateMode:c},g;n!==null?g=xs(n,p):g=Cs(l,p,!0,o),f.update(h.hash,h.commit.parents),u>0&&!d&&n===null&&m.push(f.paddingPrefix());let w=g.split(`
448
+ `),b=0;for(;;){let{prefix:k,isCommitLine:E}=f.nextLine();if(E){m.push(k+(w[b++]??""));break}m.push(k)}for(;b<w.length;){let{prefix:k}=f.nextLine();m.push(k+w[b++])}for(;!f.isFinished();){let{prefix:k}=f.nextLine();m.push(k)}let x=80-f.width,y=await ua(t,h.commit,s,x);if(y){let k=y.replace(/\n$/,"").split(`
449
+ `);if(d||n!==null)for(let E of k)m.push(f.paddingPrefix()+E);else{m.push(f.paddingPrefix());for(let E of k)m.push(f.paddingPrefix()+E)}}}return{stdout:m.length>0?`${m.join(`
450
+ `)}
451
+ `:"",stderr:"",exitCode:0}}async function ua(e,t,n,r){if(!n||t.parents.length>=2)return"";let o=t.parents.length===1?(await j(e,t.parents[0])).tree:null,s=await Ve(e,o,t.tree),{remaining:i,renames:a}=await it(e,s);switch(n){case"name-only":return pg(i,a);case"name-status":return gg(i,a);case"stat":return wg(e,i,a,r);case"shortstat":return bg(e,i,a);case"numstat":return yg(e,i,a);case"patch":return Eg(e,i,a)}}function pg(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}
452
+ `).join("")}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.map(r=>`${r.line}
453
+ `).join("")}async function wg(e,t,n,r){let{fileStats:o}=await Zn(e,t,n);return o.sort((s,i)=>s.sortKey<i.sortKey?-1:s.sortKey>i.sortKey?1:0),hr(o,r)}async function bg(e,t,n){let{fileStats:r}=await Zn(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=Xn(r.length,o,s);return i?`${i}
454
+ `:""}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:dn(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(ve(i)||ve(a))o+=`- - ${s.display}
455
+ `;else{let c=Rt(i),f=Rt(a),l=ct(c,f),d=0,m=0;for(let u of l)u.type==="insert"?d++:u.type==="delete"&&m++;o+=`${d} ${m} ${s.display}
456
+ `}}return o}async function Eg(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+=It({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+=It({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}ie();Ce();me();sr();tt();function Yl(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=Ye(i);if(a)return a;let c=i.workTree,f=n.cached,l=n.modified,d=n.deleted,m=n.others,u=n.unmerged,h=n.stage,p=n["exclude-standard"],g=n["nul-terminate"],w=n["show-tags"];f||l||d||m||u||(f=!0);let x=await z(i),y=g?"\0":`
457
+ `,k=o.passthrough.length>0?o.passthrough.map(C=>{let P=r.cwd!==c?kg(c,r.cwd):"";return Ue(C,P)}):null,E=[];if(f)for(let C of x.entries){if(k&&!Ee(k,C.path))continue;let P=w?C.stage>0?"M":"H":null;E.push(Vl(C,h,P))}if(u&&!f)for(let C of x.entries)C.stage!==0&&(k&&!Ee(k,C.path)||E.push(Vl(C,!0,w?"M":null)));if(l||d){let C=await Rg(i,c,x);for(let{path:P,status:H}of C){if(H==="modified"&&!l||H==="deleted"&&!d||k&&!Ee(k,P))continue;let D=w?H==="deleted"?"R":"C":null;E.push(D?`${D} ${P}`:P)}}if(m){let C=await xg(i,c,x,p);for(let P of C)k&&!Ee(k,P)||E.push(w?`? ${P}`:P)}return{stdout:E.length>0?E.join(y)+y:"",stderr:"",exitCode:0}}})}function Vl(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 kg(e,t){return t===e?"":t.startsWith(`${e}/`)?t.slice(e.length+1):""}async function Rg(e,t,n){let r=[];for(let o of n.entries){if(o.stage!==0)continue;let s=S(t,o.path);if(!await e.fs.exists(s)){r.push({path:o.path,status:"deleted"});continue}let a=await mt(e.fs,s);if(!a.isFile&&!a.isSymbolicLink)continue;await Nn(e.fs,s)!==o.hash&&r.push({path:o.path,status:"modified"})}return r}async function xg(e,t,n,r){let o=new Set(n.entries.map(i=>i.path));return(await ot(e,t,"",{skipIgnore:!r})).filter(i=>!o.has(i))}ie();fr();qe();Ce();ce();ze();ge();sn();He();function Xl(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:V.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 Ig(s,r.env);if(n.continue)return Og(s,r.env,t);let i=n.branch;if(!i)return I("you must specify a branch to merge");let a=await Qe(s);if(M(a))return a;let c=await z(s),f=kn(c,"Merging");if(f)return f;if(await B(s,"MERGE_HEAD"))return I(`You have not concluded your merge (MERGE_HEAD exists).
458
+ Please, commit your changes before you merge.`);if(await B(s,"CHERRY_PICK_HEAD"))return I(`You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
459
+ Please, commit your changes before you merge.`);let m=await Be(s,i);if(!m)return L(`merge: ${i} - not something we can merge
460
+ `);let u=await Te(s,m),h=await Ft(s,a,u),p=h[0]??null;if(h.length===0)return I("refusing to merge unrelated histories");if(p===u)return await ye(s,"MERGE_MSG"),{stdout:`Already up to date.${n.squash?" (nothing to squash)":""}
461
+ `,stderr:"",exitCode:0};let g=!!n.noFf,w=!!n.ffOnly;if(!n.noFf&&!n.ffOnly){let k=await xe(s,"merge.ff");k==="false"?g=!0:k==="only"&&(w=!0)}if(g&&w)return I("--no-ff and --ff-only are incompatible");let b=p===a&&!g;if(w&&!b)return L(`hint: Diverging branches can't be fast-forwarded, you need to either:
454
462
  hint:
455
463
  hint: git merge --no-ff
456
464
  hint:
@@ -460,44 +468,44 @@ hint: git rebase
460
468
  hint:
461
469
  hint: Disable this message with "git config set advice.diverging false"
462
470
  fatal: Not possible to fast-forward, aborting.
463
- `,128);if(await U(s,"REVERT_HEAD")&&await Lt(s),y&&!n.squash){let E=await Q(s),k=await xo(s,a,u);if(k.exitCode===0&&n.message&&(k.stdout=k.stdout.replace(/^Fast-forward$/m,"Fast-forward (no commit created; -m option ignored)")),k.exitCode===0){await ge(s,"MERGE_MSG");let R=E?.type==="symbolic"?E.target:"HEAD";await se(s,r.env,R,a,u,`merge ${i}: Fast-forward${n.message?" (no commit created; -m option ignored)":""}`,E?.type==="symbolic"),await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:u,strategy:"fast-forward",commitHash:null})}return k}let x=n.message,b=x?x.endsWith(`
471
+ `,128);if(await B(s,"REVERT_HEAD")&&await Lt(s),b&&!n.squash){let k=await Q(s),E=await Co(s,a,u);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 ye(s,"MERGE_MSG");let R=k?.type==="symbolic"?k.target:"HEAD";await fe(s,r.env,R,a,u,`merge ${i}: Fast-forward${n.message?" (no commit created; -m option ignored)":""}`,k?.type==="symbolic"),await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:u,strategy:"fast-forward",commitHash:null})}return E}let x=n.message,y=x?x.endsWith(`
464
472
  `)?x:`${x}
465
- `:void 0;return n.squash?mg(s,a,u,i,r.env,t,b):dg(s,a,u,i,r.env,g,t,b)}})}async function dg(e,t,n,r,o,s=!1,i,a){let c=await j(e,t),f=await Q(e),l=f?.type==="symbolic"?xe(f.target):"HEAD",d=await Re(e,"merge.conflictstyle")??"merge",m={a:"HEAD",b:r,conflictStyle:d},u=await gs(e,t,n,m),h=await Cn(e,u,c.tree,{labels:m,errorExitCode:2,operationName:"merge"});if(!h.ok)return await ge(e,"MERGE_MSG"),h.failureKind==="staged"&&f?.type==="symbolic"&&await se(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`),h;if(u.conflicts.length>0){await X(e,"MERGE_HEAD",n),await X(e,"ORIG_HEAD",t);let H=a??await ur(e,r,l),D={repo:e,message:H,treeHash:h.mergedTreeHash,headHash:t,theirsHash:n},O=await i?.hooks?.mergeMsg?.(D);if(ee(O))return{stdout:"",stderr:O.message??"",exitCode:1};H=D.message;let A=Wt({version:2,entries:u.entries}).sort();return H+=`
473
+ `:void 0;return n.squash?$g(s,a,u,i,r.env,t,y):Cg(s,a,u,i,r.env,g,t,y)}})}async function Cg(e,t,n,r,o,s=!1,i,a){let c=await j(e,t),f=await Q(e),l=f?.type==="symbolic"?Pe(f.target):"HEAD",d=await xe(e,"merge.conflictstyle")??"merge",m={a:"HEAD",b:r,conflictStyle:d},u=await ws(e,t,n,m),h=await $n(e,u,c.tree,{labels:m,errorExitCode:2,operationName:"merge"});if(!h.ok)return await ye(e,"MERGE_MSG"),h.failureKind==="staged"&&f?.type==="symbolic"&&await fe(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`),h;if(u.conflicts.length>0){await X(e,"MERGE_HEAD",n),await X(e,"ORIG_HEAD",t);let H=a??await pr(e,r,l),D={repo:e,message:H,treeHash:h.mergedTreeHash,headHash:t,theirsHash:n},O=await i?.hooks?.mergeMsg?.(D);if(ee(O))return{stdout:"",stderr:O.message??"",exitCode:1};H=D.message;let A=Bt({version:2,entries:u.entries}).sort();return H+=`
466
474
  # Conflicts:
467
475
  ${A.map(v=>`# ${v}`).join(`
468
476
  `)}
469
- `,await Te(e,"MERGE_MSG",H),await Te(e,"MERGE_MODE",s?"no-ff":""),{stdout:`${[...u.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
477
+ `,await De(e,"MERGE_MSG",H),await De(e,"MERGE_MODE",s?"no-ff":""),{stdout:`${[...u.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
470
478
  `)}
471
- `,stderr:"",exitCode:1}}await ge(e,"MERGE_MSG");let p=h.mergedTreeHash,g=await cn(e,o);if(M(g))return g;let w=await tt(e,o);if(M(w))return w;let y=a??await ur(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 E=await i?.hooks?.preMergeCommit?.({repo:e,mergeMessage:y,treeHash:p,headHash:t,theirsHash:n});if(ee(E))return{stdout:"",stderr:E.message??"",exitCode:1};let k=await gt(e,p,[t,n],g,w,y),R=f?.type==="symbolic"?f.target:"HEAD";await se(e,o,R,t,k,`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:k});let P=await dn(e,c.tree,p);return{stdout:`${u.messages.length>0?`${u.messages.join(`
479
+ `,stderr:"",exitCode:1}}await ye(e,"MERGE_MSG");let p=h.mergedTreeHash,g=await ln(e,o);if(M(g))return g;let w=await nt(e,o);if(M(w))return w;let b=a??await pr(e,r,l),x={repo:e,message:b,treeHash:p,headHash:t,theirsHash:n},y=await i?.hooks?.mergeMsg?.(x);if(ee(y))return{stdout:"",stderr:y.message??"",exitCode:1};b=x.message;let k=await i?.hooks?.preMergeCommit?.({repo:e,mergeMessage:b,treeHash:p,headHash:t,theirsHash:n});if(ee(k))return{stdout:"",stderr:k.message??"",exitCode:1};let E=await bt(e,p,[t,n],g,w,b),R=f?.type==="symbolic"?f.target:"HEAD";await fe(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 mn(e,c.tree,p);return{stdout:`${u.messages.length>0?`${u.messages.join(`
472
480
  `)}
473
481
  `:""}Merge made by the 'ort' strategy.
474
- ${P}`,stderr:"",exitCode:0}}async function ug(e,t,n){let r=[];for await(let o of jt(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: ${Ft(s.timestamp,s.timezone)}`),r.push("");for(let i of o.commit.message.replace(/\n+$/,"").split(`
482
+ ${C}`,stderr:"",exitCode:0}}async function Pg(e,t,n){let r=[];for await(let o of jt(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: ${Cn(s.timestamp,s.timezone)}`),r.push("");for(let i of o.commit.message.replace(/\n+$/,"").split(`
475
483
  `))r.push(` ${i}`);r.push("")}return r.join(`
476
- `)}async function mg(e,t,n,r,o,s,i){let a=await j(e,t),c=await Q(e),f=await Re(e,"merge.conflictstyle")??"merge",l={a:"HEAD",b:r,conflictStyle:f},d=await Ut(e,t,n),m=d.length>0&&d[0]===t,u=m?`Updating ${Y(t)}..${Y(n)}
477
- `:"",h=await gs(e,t,n,l),p=await Cn(e,h,a.tree,{labels:l,errorExitCode:m?1:2,operationName:"merge",skipStagedChangeCheck:m});if(!p.ok){await ge(e,"MERGE_MSG"),!m&&p.failureKind==="staged"&&c?.type==="symbolic"&&await se(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`);let E=p;return u&&(E.stdout=u+E.stdout),E}let g;if(i?g=`Squashed commit of the following:
484
+ `)}async function $g(e,t,n,r,o,s,i){let a=await j(e,t),c=await Q(e),f=await xe(e,"merge.conflictstyle")??"merge",l={a:"HEAD",b:r,conflictStyle:f},d=await Ft(e,t,n),m=d.length>0&&d[0]===t,u=m?`Updating ${Y(t)}..${Y(n)}
485
+ `:"",h=await ws(e,t,n,l),p=await $n(e,h,a.tree,{labels:l,errorExitCode:m?1:2,operationName:"merge",skipStagedChangeCheck:m});if(!p.ok){await ye(e,"MERGE_MSG"),!m&&p.failureKind==="staged"&&c?.type==="symbolic"&&await fe(e,o,"HEAD",t,t,`merge ${r}: updating HEAD`);let k=p;return u&&(k.stdout=u+k.stdout),k}let g;if(i?g=`Squashed commit of the following:
478
486
 
479
487
  ${i}`:g=`Squashed commit of the following:
480
488
 
481
- ${await ug(e,t,n)}`,await Te(e,"SQUASH_MSG",g),h.conflicts.length>0){let k=`
489
+ ${await Pg(e,t,n)}`,await De(e,"SQUASH_MSG",g),h.conflicts.length>0){let E=`
482
490
  # Conflicts:
483
- ${Wt({version:2,entries:h.entries}).sort().map(C=>`# ${C}`).join(`
491
+ ${Bt({version:2,entries:h.entries}).sort().map(P=>`# ${P}`).join(`
484
492
  `)}
485
- `,R=await Pe(e,"MERGE_MSG");return await Te(e,"MERGE_MSG",(R??"")+k),{stdout:`${[...h.messages,"Squash commit -- not updating HEAD","Automatic merge failed; fix conflicts and then commit the result."].join(`
493
+ `,R=await Oe(e,"MERGE_MSG");return await De(e,"MERGE_MSG",(R??"")+E),{stdout:`${[...h.messages,"Squash commit -- not updating HEAD","Automatic merge failed; fix conflicts and then commit the result."].join(`
486
494
  `)}
487
- `,stderr:"",exitCode:1}}let w=p.mergedTreeHash,y=await dn(e,a.tree,w),x=h.messages.length>0?`${h.messages.join(`
495
+ `,stderr:"",exitCode:1}}let w=p.mergedTreeHash,b=await mn(e,a.tree,w),x=h.messages.length>0?`${h.messages.join(`
488
496
  `)}
489
497
  `:"";return{stdout:`${m?`${u}Fast-forward
490
498
  `:""}${x}Squash commit -- not updating HEAD
491
- ${m?y:""}`,stderr:m?"":`Automatic merge went well; stopped before committing as requested
492
- `,exitCode:0}}async function hg(e,t,n){let r=await U(e,"MERGE_HEAD");if(!r)return I("There is no merge in progress (MERGE_HEAD missing).");let o=await V(e),s=En(o,"Committing");if(s)return s;let i=await Qe(e);if(M(i))return i;let a=await j(e,i),c=await Pe(e,"MERGE_MSG");if(c)c=Xt(c);else{let P=await Q(e),C=P?.type==="symbolic"?xe(P.target):"HEAD";c=await ur(e,"unknown",C)}let f=Me(o),l=await Ne(e,f),d=await cn(e,t);if(M(d))return d;let m=await tt(e,t);if(M(m))return m;let u=Mt(c),h={repo:e,message:u,treeHash:l,headHash:i,theirsHash:r},p=await n?.hooks?.mergeMsg?.(h);if(ee(p))return{stdout:"",stderr:p.message??"",exitCode:1};u=h.message;let g=await n?.hooks?.preMergeCommit?.({repo:e,mergeMessage:u,treeHash:l,headHash:i,theirsHash:r});if(ee(g))return{stdout:"",stderr:g.message??"",exitCode:1};let w=await gt(e,l,[i,r],d,m,u);await cs(e);let y=await Q(e),x=le(u),b=y?.type==="symbolic"?y.target:"HEAD";await se(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 E=await dn(e,a.tree,l),k=y?.type==="symbolic"?xe(y.target):"detached HEAD";return{stdout:`${Dt(k,w,c)}
493
- ${E}`,stderr:"",exitCode:0}}async function pg(e,t){return Nn(e,t,{operationRef:"MERGE_HEAD",noOpError:I("There is no merge to abort (MERGE_HEAD missing)."),operationName:"merge",clearState:cs})}oe();Ce();ue();st();function Gl(e,t){e.command("mv",{description:"Move or rename a file, directory, or symlink",args:[z.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 q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Je(s);if(i)return i;let a=s.workTree,c=n.sources;if(c.length<2)return L(`usage: git mv [<options>] <source>... <destination>
494
- `);let f=c[c.length-1],l=c.slice(0,-1),d=vt(r.cwd,f),m=nt(a,d);if(m.startsWith(".."))return I(`'${f}' is outside repository at '${a}'`);let u=await V(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=vt(r.cwd,w),x=nt(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=${m}`)}let k=(await r.fs.stat(y)).isDirectory;if(!(k?u.entries.some(O=>O.path===x||O.path.startsWith(`${x}/`)):u.entries.some(O=>O.path===x&&O.stage===0))){let O=!k&&u.entries.some(A=>A.path===x&&A.stage>0);if(n.skip)continue;return I(O?`conflicted, source=${x}, destination=${m}`:`not under version control, source=${x}, destination=${m}`)}let P,C;if(p){let O=_r(x);P=m===""||m==="."?O:`${m}/${O}`,C=S(d,O)}else P=m,C=d;if(await r.fs.exists(C)&&!n.force)if((await r.fs.stat(C)).isDirectory){let A=_r(x);P=`${P}/${A}`,C=S(C,A)}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=Qt(C);if(!await r.fs.exists(D)){if(n.skip)continue;return I(`renaming '${x}' failed: No such file or directory`)}if(k){let O=`${x}/`,A=u.entries.filter(G=>G.path.startsWith(O)&&G.stage===0);for(let G of A){let v=G.path.slice(x.length),T=P+v,_=C+v;g.push({srcRel:G.path,dstRel:T,srcAbs:S(a,G.path),dstAbs:_})}}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=Qt(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=js(u,w.srcRel,0);if(b){u=ft(u,w.srcRel);let E={...b,path:w.dstRel};u=xt(u,E)}}for(let w of g)await rr(r.fs,Qt(w.srcAbs),a);return await ce(s,u),{stdout:"",stderr:"",exitCode:0}}})}oe();Be();On();Ce();ie();ue();mt();We();he();oe();Be();Ce();ie();oe();ie();hn();Jn();ve();async function la(e,t){let n=await ye(e,t);if(n.type!=="commit")return null;let r=nn(n.content),o=null;if(r.parents.length>0&&r.parents[0]){let f=await ye(e,r.parents[0]);f.type==="commit"&&(o=nn(f.content).tree)}let s=await Ke(e,o,r.tree);if(s.length===0)return null;let i=Sn(),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 u=await ye(e,f.oldHash);l=new TextDecoder().decode(u.content)}catch{}if(f.newHash)try{let u=await ye(e,f.newHash);d=new TextDecoder().decode(u.content)}catch{}let m=Ot({path:f.path,oldContent:l,newContent:d,oldMode:f.oldMode,newMode:f.newMode});if(m)for(let u of m.split(`
499
+ ${m?b:""}`,stderr:m?"":`Automatic merge went well; stopped before committing as requested
500
+ `,exitCode:0}}async function Og(e,t,n){let r=await B(e,"MERGE_HEAD");if(!r)return I("There is no merge in progress (MERGE_HEAD missing).");let o=await z(e),s=kn(o,"Committing");if(s)return s;let i=await Qe(e);if(M(i))return i;let a=await j(e,i),c=await Oe(e,"MERGE_MSG");if(c)c=Xt(c);else{let C=await Q(e),P=C?.type==="symbolic"?Pe(C.target):"HEAD";c=await pr(e,"unknown",P)}let f=Le(o),l=await Fe(e,f),d=await ln(e,t);if(M(d))return d;let m=await nt(e,t);if(M(m))return m;let u=Mt(c),h={repo:e,message:u,treeHash:l,headHash:i,theirsHash:r},p=await n?.hooks?.mergeMsg?.(h);if(ee(p))return{stdout:"",stderr:p.message??"",exitCode:1};u=h.message;let g=await n?.hooks?.preMergeCommit?.({repo:e,mergeMessage:u,treeHash:l,headHash:i,theirsHash:r});if(ee(g))return{stdout:"",stderr:g.message??"",exitCode:1};let w=await bt(e,l,[i,r],d,m,u);await fs(e);let b=await Q(e),x=ue(u),y=b?.type==="symbolic"?b.target:"HEAD";await fe(e,t,y,i,w,`commit (merge): ${x}`,b?.type==="symbolic"),await n?.hooks?.postMerge?.({repo:e,headHash:i,theirsHash:r,strategy:"three-way",commitHash:w});let k=await mn(e,a.tree,l),E=b?.type==="symbolic"?Pe(b.target):"detached HEAD";return{stdout:`${Dt(E,w,c)}
501
+ ${k}`,stderr:"",exitCode:0}}async function Ig(e,t){return Bn(e,t,{operationRef:"MERGE_HEAD",noOpError:I("There is no merge to abort (MERGE_HEAD missing)."),operationName:"merge",clearState:fs})}ie();Ce();me();tt();function Zl(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=Ye(s);if(i)return i;let a=s.workTree,c=n.sources;if(c.length<2)return L(`usage: git mv [<options>] <source>... <destination>
502
+ `);let f=c[c.length-1],l=c.slice(0,-1),d=Tt(r.cwd,f),m=st(a,d);if(m.startsWith(".."))return I(`'${f}' is outside repository at '${a}'`);let u=await z(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 b=Tt(r.cwd,w),x=st(a,b);if(x.startsWith("..")){if(n.skip)continue;return I(`'${w}' is outside repository at '${a}'`)}if(!await r.fs.exists(b)){if(n.skip)continue;return I(`bad source, source=${x}, destination=${m}`)}let E=(await r.fs.stat(b)).isDirectory;if(!(E?u.entries.some(O=>O.path===x||O.path.startsWith(`${x}/`)):u.entries.some(O=>O.path===x&&O.stage===0))){let O=!E&&u.entries.some(A=>A.path===x&&A.stage>0);if(n.skip)continue;return I(O?`conflicted, source=${x}, destination=${m}`:`not under version control, source=${x}, destination=${m}`)}let C,P;if(p){let O=Br(x);C=m===""||m==="."?O:`${m}/${O}`,P=S(d,O)}else C=m,P=d;if(await r.fs.exists(P)&&!n.force)if((await r.fs.stat(P)).isDirectory){let A=Br(x);C=`${C}/${A}`,P=S(P,A)}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=Qt(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}/`,A=u.entries.filter(G=>G.path.startsWith(O)&&G.stage===0);for(let G of A){let v=G.path.slice(x.length),T=C+v,F=P+v;g.push({srcRel:G.path,dstRel:T,srcAbs:S(a,G.path),dstAbs:F})}}else g.push({srcRel:x,dstRel:C,srcAbs:b,dstAbs:P})}if(g.length===0)return{stdout:"",stderr:"",exitCode:0};if(n["dry-run"])return{stdout:"",stderr:"",exitCode:0};for(let w of g){let b=Qt(w.dstAbs);await r.fs.exists(b)||await r.fs.mkdir(b,{recursive:!0});let x=await r.fs.readFileBuffer(w.srcAbs);await r.fs.writeFile(w.dstAbs,x),await r.fs.rm(w.srcAbs);let y=Gs(u,w.srcRel,0);if(y){u=lt(u,w.srcRel);let k={...y,path:w.dstRel};u=Ct(u,k)}}for(let w of g)await ir(r.fs,Qt(w.srcAbs),a);return await de(s,u),{stdout:"",stderr:"",exitCode:0}}})}ie();qe();vn();Ce();ce();me();ht();ze();ge();ie();qe();Ce();ce();ie();ce();gn();nr();He();async function ma(e,t){let n=await be(e,t);if(n.type!=="commit")return null;let r=nn(n.content),o=null;if(r.parents.length>0&&r.parents[0]){let f=await be(e,r.parents[0]);f.type==="commit"&&(o=nn(f.content).tree)}let s=await Ve(e,o,r.tree);if(s.length===0)return null;let i=Hn(),a=!1,c=[...s].sort((f,l)=>Ie(f.path,l.path));for(let f of c){let l="",d="";if(f.oldHash)try{let u=await be(e,f.oldHash);l=new TextDecoder().decode(u.content)}catch{}if(f.newHash)try{let u=await be(e,f.newHash);d=new TextDecoder().decode(u.content)}catch{}let m=It({path:f.path,oldContent:l,newContent:d,oldMode:f.oldMode,newMode:f.newMode});if(m)for(let u of m.split(`
495
503
  `)){if(!u||u.startsWith("index "))continue;let p=(u.startsWith("@@")?u.replace(/^@@ [^@]* @@/,"@@ @@"):u).replace(/[ \t\r]/g,"");p&&(i.update(p),i.update(`
496
- `),a=!0)}}return a?i.hex():null}We();he();ve();an();st();async function gg(e){let t=await Q(e);return t?.type==="symbolic"?xe(t.target):"detached HEAD"}function Ll(e){return e==="HEAD"?`HEAD is up to date.
504
+ `),a=!0)}}return a?i.hex():null}ze();ge();He();fn();tt();async function Sg(e){let t=await Q(e);return t?.type==="symbolic"?Pe(t.target):"detached HEAD"}function Jl(e){return e==="HEAD"?`HEAD is up to date.
497
505
  `:`Current branch ${e} is up to date.
498
- `}async function wg(e,t,n){if(!e.workTree)return null;let r=await fe(e,t),o=new Map(Me(n).map(a=>[a.path,a])),s=new Set(await rt(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=Qs(i,{errorExitCode:1,operationName:"checkout",actionHint:"switch branches"});return L(`${a.stderr}error: could not detach HEAD
499
- `)}return null}async function bg(e,t,n,r){if(!e.workTree)return null;let o=await fe(e,t),s=new Set(n.entries.map(c=>c.path)),i=new Set(await rt(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:`${Qs(a,{errorExitCode:128,operationName:"reset",actionHint:"reset"}).stderr}fatal: could not move back to ${r}
500
- `,exitCode:128}:null}async function Nl(e,t,n){if(!e.workTree)return null;let r=new Map(Me(t).map(i=>[i.path,i])),o=new Set(await rt(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:
506
+ `}async function vg(e,t,n){if(!e.workTree)return null;let r=await le(e,t),o=new Map(Le(n).map(a=>[a.path,a])),s=new Set(await ot(e,e.workTree,"")),i=[];for(let[a]of r)o.has(a)||s.has(a)&&i.push({path:a,error:"WOULD_LOSE_UNTRACKED_OVERWRITTEN"});if(i.length>0){let a=eo(i,{errorExitCode:1,operationName:"checkout",actionHint:"switch branches"});return L(`${a.stderr}error: could not detach HEAD
507
+ `)}return null}async function Tg(e,t,n,r){if(!e.workTree)return null;let o=await le(e,t),s=new Set(n.entries.map(c=>c.path)),i=new Set(await ot(e,e.workTree,"")),a=[];for(let[c]of o)!s.has(c)&&i.has(c)&&a.push({path:c,error:"WOULD_LOSE_UNTRACKED_OVERWRITTEN"});return a.length>0?{stdout:"",stderr:`${eo(a,{errorExitCode:128,operationName:"reset",actionHint:"reset"}).stderr}fatal: could not move back to ${r}
508
+ `,exitCode:128}:null}async function Ql(e,t,n){if(!e.workTree)return null;let r=new Map(Le(t).map(i=>[i.path,i])),o=new Set(await ot(e,e.workTree,"")),s=[];for(let[i]of n)!r.has(i)&&o.has(i)&&s.push(i);return s.length>0?s:null}function ed(e,t){return`error: The following untracked working tree files would be overwritten by merge:
501
509
  ${e.map(r=>` ${r}`).join(`
502
510
  `)}
503
511
  Please move or remove them before you merge.
@@ -511,20 +519,20 @@ hint: edit the todo list first:
511
519
  hint:
512
520
  hint: git rebase --edit-todo
513
521
  hint: git rebase --continue
514
- `}async function da(e,t,n,r,o,s){await se(e,t,"HEAD",n,r,`rebase (start): checkout ${s}`),o!=="detached HEAD"&&(await se(e,t,o,n,r,`rebase (finish): ${o} onto ${r}`),await se(e,t,"HEAD",r,r,`rebase (finish): returning to ${o}`))}async function No(e,t,n,r){let o=await j(e,t),s=await wg(e,o.tree,n);if(s)return s;let i=await yn(e,o.tree,n);return i.success&&(await ce(e,{version:2,entries:i.newEntries}),await Ge(e,i.worktreeOps)),r!=="detached HEAD"?await X(e,r,t):await X(e,"HEAD",t),null}async function ua(e,t,n,r,o,s,i,a){let c=r.startsWith("refs/heads/")?xe(r):"HEAD",f=await V(e),l=Wt(f).sort();if(l.length>0)return{stdout:l.map(O=>`${O}: needs merge
522
+ `}async function ha(e,t,n,r,o,s){await fe(e,t,"HEAD",n,r,`rebase (start): checkout ${s}`),o!=="detached HEAD"&&(await fe(e,t,o,n,r,`rebase (finish): ${o} onto ${r}`),await fe(e,t,"HEAD",r,r,`rebase (finish): returning to ${o}`))}async function Uo(e,t,n,r){let o=await j(e,t),s=await vg(e,o.tree,n);if(s)return s;let i=await En(e,o.tree,n);return i.success&&(await de(e,{version:2,entries:i.newEntries}),await Ne(e,i.worktreeOps)),r!=="detached HEAD"?await X(e,r,t):await X(e,"HEAD",t),null}async function pa(e,t,n,r,o,s,i,a){let c=r.startsWith("refs/heads/")?Pe(r):"HEAD",f=await z(e),l=Bt(f).sort();if(l.length>0)return{stdout:l.map(O=>`${O}: needs merge
515
523
  `).join(""),stderr:`error: cannot rebase: You have unstaged changes.
516
524
  error: additionally, your index contains uncommitted changes.
517
525
  error: Please commit or stash them.
518
- `,exitCode:1};let d=await j(e,n),m=await fe(e,d.tree);if(e.workTree){let O=Cr(f,m),G=(await At(e,f)).some(v=>v.status==="modified"||v.status==="deleted");if(O||G){let v=[];return G&&v.push("error: cannot rebase: You have unstaged changes."),O&&(G?v.push("error: additionally, your index contains uncommitted changes."):v.push("error: cannot rebase: Your index contains uncommitted changes.")),v.push("error: Please commit or stash them."),L(`${v.join(`
526
+ `,exitCode:1};let d=await j(e,n),m=await le(e,d.tree);if(e.workTree){let O=Un(f,m),G=(await gt(e,f)).some(v=>v.status==="modified"||v.status==="deleted");if(O||G){let v=[];return G&&v.push("error: cannot rebase: You have unstaged changes."),O&&(G?v.push("error: additionally, your index contains uncommitted changes."):v.push("error: cannot rebase: Your index contains uncommitted changes.")),v.push("error: Please commit or stash them."),L(`${v.join(`
519
527
  `)}
520
- `)}}let u=await a?.hooks?.preRebase?.({repo:e,upstream:i,branch:r!=="detached HEAD"?c:null});if(ee(u))return{stdout:"",stderr:u.message??"",exitCode:1};let h=await sf(e,o,n),p=h.right;if(p.length===0){if(s!==n){let O=await No(e,s,f,r);return O||(await da(e,t,n,s,r,i),{stdout:"",stderr:`Successfully rebased and updated ${r}.
521
- `,exitCode:0})}return{stdout:Ll(c),stderr:"",exitCode:0}}let g=[],w=h.left,y=new Set;for(let O of w){let A=await la(e,O.hash);A&&y.add(A)}let x=[];if(y.size>0)for(let O of p){let A=await la(e,O.hash);A&&y.has(A)?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(`
528
+ `)}}let u=await a?.hooks?.preRebase?.({repo:e,upstream:i,branch:r!=="detached HEAD"?c:null});if(ee(u))return{stdout:"",stderr:u.message??"",exitCode:1};let h=await ff(e,o,n),p=h.right;if(p.length===0){if(s!==n){let O=await Uo(e,s,f,r);return O||(await ha(e,t,n,s,r,i),{stdout:"",stderr:`Successfully rebased and updated ${r}.
529
+ `,exitCode:0})}return{stdout:Jl(c),stderr:"",exitCode:0}}let g=[],w=h.left,b=new Set;for(let O of w){let A=await ma(e,O.hash);A&&b.add(A)}let x=[];if(b.size>0)for(let O of p){let A=await ma(e,O.hash);A&&b.has(A)?g.push(`warning: skipped previously applied commit ${Y(O.hash)}`):x.push(O)}else x.push(...p);let y="";if(g.length>0&&(y=`${g.join(`
522
530
  `)}
523
531
  hint: use --reapply-cherry-picks to include skipped commits
524
532
  hint: Disable this message with "git config set advice.skippedCherryPicks false"
525
- `),x.length===0){if(s!==n){let O=await No(e,s,f,r);if(O)return O.stderr=b+O.stderr,O;await da(e,t,n,s,r,i)}return{stdout:"",stderr:`${b}Successfully rebased and updated ${r}.
526
- `,exitCode:0}}let E=x.map(O=>({hash:O.hash,subject:le(O.commit.message)})),k=s,R=0;for(let O of E){let A=await j(e,O.hash);if(A.parents.length>1||A.parents.length===0||A.parents[0]!==k)break;k=O.hash,R++}let P=E.splice(0,R);if(E.length===0){if(k===n)return{stdout:Ll(c),stderr:b,exitCode:0};let O=await No(e,k,f,r);return O?(O.stderr=b+O.stderr,O):(await da(e,t,n,k,r,i),{stdout:"",stderr:`${b}Successfully rebased and updated ${r}.
527
- `,exitCode:0})}let C=await No(e,k,f,"detached HEAD");if(C)return C.stderr=b+C.stderr,C;await me(e,"CHERRY_PICK_HEAD"),await me(e,"REVERT_HEAD"),await ge(e,"MERGE_MSG"),await ge(e,"MERGE_MODE"),await se(e,t,"HEAD",n,k,`rebase (start): checkout ${i}`);let H={headName:r,origHead:n,onto:s,todo:E,done:P,msgnum:R,end:R+E.length};await Hi(e,H),await X(e,"ORIG_HEAD",n);let D=await ma(e,t);return b&&(D.stderr=b+D.stderr),D}function Fl(e,t){e.command("rebase",{description:"Reapply commits on top of another base tip",args:[z.string().name("upstream").describe("Upstream branch to rebase onto").optional()],options:{onto:Z.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 q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort)return kg(s,r.env);if(n.continue)return Rg(s,r.env);if(n.skip)return xg(s,r.env);let i=n.upstream;if(!i)return I("no upstream configured and no upstream argument given");if(await Nt(s))return I(`It seems that there is already a rebase-merge directory, and
533
+ `),x.length===0){if(s!==n){let O=await Uo(e,s,f,r);if(O)return O.stderr=y+O.stderr,O;await ha(e,t,n,s,r,i)}return{stdout:"",stderr:`${y}Successfully rebased and updated ${r}.
534
+ `,exitCode:0}}let k=x.map(O=>({hash:O.hash,subject:ue(O.commit.message)})),E=s,R=0;for(let O of k){let A=await j(e,O.hash);if(A.parents.length>1||A.parents.length===0||A.parents[0]!==E)break;E=O.hash,R++}let C=k.splice(0,R);if(k.length===0){if(E===n)return{stdout:Jl(c),stderr:y,exitCode:0};let O=await Uo(e,E,f,r);return O?(O.stderr=y+O.stderr,O):(await ha(e,t,n,E,r,i),{stdout:"",stderr:`${y}Successfully rebased and updated ${r}.
535
+ `,exitCode:0})}let P=await Uo(e,E,f,"detached HEAD");if(P)return P.stderr=y+P.stderr,P;await he(e,"CHERRY_PICK_HEAD"),await he(e,"REVERT_HEAD"),await ye(e,"MERGE_MSG"),await ye(e,"MERGE_MODE"),await fe(e,t,"HEAD",n,E,`rebase (start): checkout ${i}`);let H={headName:r,origHead:n,onto:s,todo:k,done:C,msgnum:R,end:R+k.length};await ji(e,H),await X(e,"ORIG_HEAD",n);let D=await ga(e,t);return y&&(D.stderr=y+D.stderr),D}function td(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:V.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 Dg(s,r.env);if(n.continue)return Mg(s,r.env);if(n.skip)return jg(s,r.env);let i=n.upstream;if(!i)return I("no upstream configured and no upstream argument given");if(await Nt(s))return I(`It seems that there is already a rebase-merge directory, and
528
536
  I wonder if you are in the middle of another rebase. If that is the
529
537
  case, please try
530
538
  git rebase (--continue | --abort | --skip)
@@ -532,9 +540,9 @@ If that is not the case, please
532
540
  rm -fr ".git/rebase-merge"
533
541
  and run me again. I am stopping in case you still have something
534
542
  valuable there.
535
- `);let a=await Qe(s);if(M(a))return a;let c=await Q(s),f=c?.type==="symbolic"?c.target:"detached HEAD",l=await Ae(s,i,`invalid upstream '${i}'`);if(M(l))return l;let d=l.hash,m,u=n.onto;if(u){let h=await Ae(s,u,`Does not point to a valid commit: '${u}'`);if(M(h))return h;m=h.hash}else m=d;return ua(s,r.env,a,f,d,m,i,t)}})}async function ma(e,t){let n=[],r=[];for(;;){let o=await bt(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 rf(e);let i=await yg(e,s,t);if(i.conflict){if(i.rescheduleCurrent){let a=await bt(e);a&&(a.todo=[s,...a.todo],await Hi(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 Eg(e,n,t)}async function yg(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 J(e);if(!a)return{conflict:!0,stdout:"",stderr:`fatal: no HEAD commit during rebase
536
- `};if(s&&s===a){let G=await V(e);if(!i)return{conflict:!0,stdout:"",stderr:`fatal: missing parent commit during rebase
537
- `};let v=await qe(e,i.tree),T=await qe(e,o.tree),_=new Map(v.map(F=>[F.path,F.hash])),B=new Map;for(let F of T){let K=_.get(F.path);(!K||K!==F.hash)&&B.set(F.path,F.hash)}let W=await Nl(e,G,B);if(W)return await X(e,"REBASE_HEAD",r),await co(e,r,o.author),{conflict:!0,stdout:"",stderr:_l(W,t),rescheduleCurrent:!0};let N=await yn(e,o.tree,G);return N.success&&(await ce(e,{version:2,entries:N.newEntries}),await Ge(e,N.worktreeOps)),await An(e,r),await se(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=le(o.message),m=await Re(e,"merge.conflictstyle")??"merge",u={a:"HEAD",b:d?`${l} (${d})`:l,conflictStyle:m},h=await Bt(e,f,c.tree,o.tree,u),p=await V(e),[g,w,y]=await Promise.all([qe(e,c.tree),f?qe(e,f):Promise.resolve([]),qe(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)),E=[...h.entries,...b];E.sort((G,v)=>Oe(G.path,v.path)||G.stage-v.stage);let k={version:2,entries:E},R=E.filter(G=>G.stage===0),P=await Ne(e,R),C=new Map(g.map(G=>[G.path,G])),H=new Map;for(let G of R){let v=C.get(G.path);(!v||v.hash!==G.hash)&&H.set(G.path,G.hash)}for(let G of h.conflicts){if(G.reason==="content"||G.reason==="add-add"){H.set(G.path,null);continue}if(G.reason==="delete-modify"){let v=h.entries.filter(B=>B.path===G.path&&B.stage>0),T=v.find(B=>B.stage===2),_=v.find(B=>B.stage===3);_&&!T&&H.set(G.path,_.hash)}}let D=await Nl(e,p,H);if(D)return await X(e,"REBASE_HEAD",r),await co(e,r,o.author),{conflict:!0,stdout:"",stderr:_l(D,t),rescheduleCurrent:!0};if(await ce(e,k),e.workTree){let G=await Ln(e,c.tree,h.resultTree,p);G.success&&await Ge(e,G.worktreeOps)}if(h.conflicts.length>0){await X(e,"REBASE_HEAD",r),await co(e,r,o.author),await Te(e,"MERGE_MSG",o.message),await Te(e,"rebase-merge/message",o.message);let G=h.messages.join(`
543
+ `);let a=await Qe(s);if(M(a))return a;let c=await Q(s),f=c?.type==="symbolic"?c.target:"detached HEAD",l=await Me(s,i,`invalid upstream '${i}'`);if(M(l))return l;let d=l.hash,m,u=n.onto;if(u){let h=await Me(s,u,`Does not point to a valid commit: '${u}'`);if(M(h))return h;m=h.hash}else m=d;return pa(s,r.env,a,f,d,m,i,t)}})}async function ga(e,t){let n=[],r=[];for(;;){let o=await Et(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 cf(e);let i=await Hg(e,s,t);if(i.conflict){if(i.rescheduleCurrent){let a=await Et(e);a&&(a.todo=[s,...a.todo],await ji(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 Ag(e,n,t)}async function Hg(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
544
+ `};if(s&&s===a){let G=await z(e);if(!i)return{conflict:!0,stdout:"",stderr:`fatal: missing parent commit during rebase
545
+ `};let v=await Ke(e,i.tree),T=await Ke(e,o.tree),F=new Map(v.map(K=>[K.path,K.hash])),_=new Map;for(let K of T){let ne=F.get(K.path);(!ne||ne!==K.hash)&&_.set(K.path,K.hash)}let U=await Ql(e,G,_);if(U)return await X(e,"REBASE_HEAD",r),await fo(e,r,o.author),{conflict:!0,stdout:"",stderr:ed(U,t),rescheduleCurrent:!0};let N=await En(e,o.tree,G);return N.success&&(await de(e,{version:2,entries:N.newEntries}),await Ne(e,N.worktreeOps)),await jn(e,r),await fe(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=ue(o.message),m=await xe(e,"merge.conflictstyle")??"merge",u={a:"HEAD",b:d?`${l} (${d})`:l,conflictStyle:m},h=await Ut(e,f,c.tree,o.tree,u),p=await z(e),[g,w,b]=await Promise.all([Ke(e,c.tree),f?Ke(e,f):Promise.resolve([]),Ke(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 b)x.add(G.path);let y=p.entries.filter(G=>!x.has(G.path)),k=[...h.entries,...y];k.sort((G,v)=>Ie(G.path,v.path)||G.stage-v.stage);let E={version:2,entries:k},R=k.filter(G=>G.stage===0),C=await Fe(e,R),P=new Map(g.map(G=>[G.path,G])),H=new Map;for(let G of R){let v=P.get(G.path);(!v||v.hash!==G.hash)&&H.set(G.path,G.hash)}for(let G of h.conflicts){if(G.reason==="content"||G.reason==="add-add"){H.set(G.path,null);continue}if(G.reason==="delete-modify"){let v=h.entries.filter(_=>_.path===G.path&&_.stage>0),T=v.find(_=>_.stage===2),F=v.find(_=>_.stage===3);F&&!T&&H.set(G.path,F.hash)}}let D=await Ql(e,p,H);if(D)return await X(e,"REBASE_HEAD",r),await fo(e,r,o.author),{conflict:!0,stdout:"",stderr:ed(D,t),rescheduleCurrent:!0};if(await de(e,E),e.workTree){let G=await Fn(e,c.tree,h.resultTree,p);G.success&&await Ne(e,G.worktreeOps)}if(h.conflicts.length>0){await X(e,"REBASE_HEAD",r),await fo(e,r,o.author),await De(e,"MERGE_MSG",o.message),await De(e,"rebase-merge/message",o.message);let G=h.messages.join(`
538
546
  `);return{conflict:!0,stdout:G?`${G}
539
547
  `:"",stderr:`error: could not apply ${l}... ${t.subject}
540
548
  hint: Resolve all conflicts manually, mark them as resolved with
@@ -543,13 +551,13 @@ hint: You can instead skip this commit: run "git rebase --skip".
543
551
  hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
544
552
  hint: Disable this message with "git config set advice.mergeConflict false"
545
553
  Could not apply ${l}... # ${t.subject}
546
- `}}if(P===c.tree)return{conflict:!1,stdout:"",stderr:`dropping ${r} ${t.subject} -- patch contents already upstream
547
- `};let O=await tt(e,n);if(M(O))return{conflict:!0,stdout:"",stderr:O.stderr};let A=await gt(e,P,[a],o.author,O,o.message);return await se(e,n,"HEAD",a,A,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}async function Eg(e,t,n){let r=await bt(e);if(!r)return I("no rebase in progress");let o=await J(e);if(!o)return I("no HEAD during rebase finish");r.headName!=="detached HEAD"&&(await X(e,r.headName,o),await Ve(e,"HEAD",r.headName),await wt(e),await se(e,n,r.headName,r.origHead,o,`rebase (finish): ${r.headName} onto ${r.onto}`),await se(e,n,"HEAD",o,o,`rebase (finish): returning to ${r.headName}`));let i=`Successfully rebased and updated ${r.headName}.
548
- `;return await me(e,"REBASE_HEAD"),await ar(e),await Ai(e),{stdout:"",stderr:t.join("")+i,exitCode:0}}async function kg(e,t){let n=await bt(e);if(!n)return I("no rebase in progress");let r=await J(e),o=n.origHead,s=await j(e,o),i=await V(e),a=await bg(e,s.tree,i,o);if(a)return a;let c=await yn(e,s.tree,i);c.success&&(await ce(e,{version:2,entries:c.newEntries}),await Ge(e,c.worktreeOps)),n.headName!=="detached HEAD"?(await X(e,n.headName,o),await Ve(e,"HEAD",n.headName),await wt(e)):await An(e,o);let f=n.headName==="detached HEAD"?o:n.headName;return await se(e,t,"HEAD",r,o,`rebase (abort): returning to ${f}`),await me(e,"REBASE_HEAD"),await ar(e),await Ai(e),{stdout:"",stderr:"",exitCode:0}}async function Rg(e,t){let n="";if(!await bt(e))return I("no rebase in progress");let o=await V(e);if(Ht(o))return L(`error: Committing is not possible because you have unmerged files.
554
+ `}}if(C===c.tree)return{conflict:!1,stdout:"",stderr:`dropping ${r} ${t.subject} -- patch contents already upstream
555
+ `};let O=await nt(e,n);if(M(O))return{conflict:!0,stdout:"",stderr:O.stderr};let A=await bt(e,C,[a],o.author,O,o.message);return await fe(e,n,"HEAD",a,A,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}async function Ag(e,t,n){let r=await Et(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 Xe(e,"HEAD",r.headName),await yt(e),await fe(e,n,r.headName,r.origHead,o,`rebase (finish): ${r.headName} onto ${r.onto}`),await fe(e,n,"HEAD",o,o,`rebase (finish): returning to ${r.headName}`));let i=`Successfully rebased and updated ${r.headName}.
556
+ `;return await he(e,"REBASE_HEAD"),await lr(e),await Gi(e),{stdout:"",stderr:t.join("")+i,exitCode:0}}async function Dg(e,t){let n=await Et(e);if(!n)return I("no rebase in progress");let r=await Z(e),o=n.origHead,s=await j(e,o),i=await z(e),a=await Tg(e,s.tree,i,o);if(a)return a;let c=await En(e,s.tree,i);c.success&&(await de(e,{version:2,entries:c.newEntries}),await Ne(e,c.worktreeOps)),n.headName!=="detached HEAD"?(await X(e,n.headName,o),await Xe(e,"HEAD",n.headName),await yt(e)):await jn(e,o);let f=n.headName==="detached HEAD"?o:n.headName;return await fe(e,t,"HEAD",r,o,`rebase (abort): returning to ${f}`),await he(e,"REBASE_HEAD"),await lr(e),await Gi(e),{stdout:"",stderr:"",exitCode:0}}async function Mg(e,t){let n="";if(!await Et(e))return I("no rebase in progress");let o=await z(e);if(At(o))return L(`error: Committing is not possible because you have unmerged files.
549
557
  hint: Fix them up in the work tree, and then use 'git add <file>'
550
558
  hint: as appropriate to mark resolution and make a commit.
551
559
  fatal: Exiting because of an unresolved conflict.
552
- `,128);let s=await U(e,"REBASE_HEAD");if(s){let a=await J(e);if(!a)return I("Cannot read HEAD");let c=await j(e,a),f=Me(o),l=await Ne(e,f),d=l!==c.tree,m=await Pe(e,"rebase-merge/message")!==null;if(d&&!m)return L(`error: you have staged changes in your working tree
560
+ `,128);let s=await B(e,"REBASE_HEAD");if(s){let a=await Z(e);if(!a)return I("Cannot read HEAD");let c=await j(e,a),f=Le(o),l=await Fe(e,f),d=l!==c.tree,m=await Oe(e,"rebase-merge/message")!==null;if(d&&!m)return L(`error: you have staged changes in your working tree
553
561
  If these changes are meant to be squashed into the previous commit, run:
554
562
 
555
563
  git commit --amend
@@ -562,37 +570,37 @@ In both cases, once you're done, continue with:
562
570
 
563
571
  git rebase --continue
564
572
 
565
- `);if(d){let u=await j(e,s),h=await U(e,"CHERRY_PICK_HEAD"),p=h?await j(e,h):u,g;g=await Pe(e,"rebase-merge/message")??await Pe(e,"MERGE_MSG")??void 0,g&&(g=Xt(g)),g||(g=u.message);let w=await tt(e,t);if(M(w))return w;let y=Mt(g),x=[a],b=await U(e,"MERGE_HEAD");b&&x.push(b);let E=await gt(e,l,x,p.author,w,y);b&&(await me(e,"MERGE_HEAD"),await ge(e,"MERGE_MODE"));let k=le(y);await se(e,t,"HEAD",a,E,`rebase (continue): ${k}`);let R=await gg(e),P=p.author.timestamp!==w.timestamp||p.author.timezone!==w.timezone,C=await ln(e,c.tree,l,p.author,w,P);n=`${Dt(R,E,y)}
566
- ${C}`}await me(e,"REBASE_HEAD"),await me(e,"CHERRY_PICK_HEAD"),await me(e,"REVERT_HEAD"),await ge(e,"MERGE_MSG"),await ge(e,"rebase-merge/message")}let i=await ma(e,t);return n&&(i.stdout=n+i.stdout),i}async function xg(e,t){if(!await bt(e))return I("no rebase in progress");let r=await J(e);if(!r)return{stdout:"",stderr:`error: could not determine HEAD revision
573
+ `);if(d){let u=await j(e,s),h=await B(e,"CHERRY_PICK_HEAD"),p=h?await j(e,h):u,g;g=await Oe(e,"rebase-merge/message")??await Oe(e,"MERGE_MSG")??void 0,g&&(g=Xt(g)),g||(g=u.message);let w=await nt(e,t);if(M(w))return w;let b=Mt(g),x=[a],y=await B(e,"MERGE_HEAD");y&&x.push(y);let k=await bt(e,l,x,p.author,w,b);y&&(await he(e,"MERGE_HEAD"),await ye(e,"MERGE_MODE"));let E=ue(b);await fe(e,t,"HEAD",a,k,`rebase (continue): ${E}`);let R=await Sg(e),C=p.author.timestamp!==w.timestamp||p.author.timezone!==w.timezone,P=await un(e,c.tree,l,p.author,w,C);n=`${Dt(R,k,b)}
574
+ ${P}`}await he(e,"REBASE_HEAD"),await he(e,"CHERRY_PICK_HEAD"),await he(e,"REVERT_HEAD"),await ye(e,"MERGE_MSG"),await ye(e,"rebase-merge/message")}let i=await ga(e,t);return n&&(i.stdout=n+i.stdout),i}async function jg(e,t){if(!await Et(e))return I("no rebase in progress");let r=await Z(e);if(!r)return{stdout:"",stderr:`error: could not determine HEAD revision
567
575
  fatal: could not discard worktree changes
568
- `,exitCode:128};let o=await j(e,r),s=await V(e),i=await yn(e,o.tree,s);return i.success&&(await ce(e,{version:2,entries:i.newEntries}),await Ge(e,i.worktreeOps)),await me(e,"REBASE_HEAD"),await me(e,"CHERRY_PICK_HEAD"),await me(e,"REVERT_HEAD"),await me(e,"MERGE_HEAD"),await ge(e,"MERGE_MSG"),await ge(e,"MERGE_MODE"),await ge(e,"rebase-merge/message"),ma(e,t)}function Ul(e,t){e.command("pull",{description:"Fetch from and integrate with another repository",args:[z.string().name("remote").describe("Remote to pull from").optional(),z.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:Z.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 q(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 Po(s))return I("--unshallow on a complete repository does not make sense");let i=n.depth;n.unshallow&&(i=ws);let a=await Qe(s);if(M(a))return a;let c=await V(s);if(Ht(c))return L(`error: Pulling is not possible because you have unmerged files.
569
- `,128);let f=n.remote,l=n.branch;if(!f){let ne=await Q(s);if(ne?.type==="symbolic"){let De=ne.target.startsWith("refs/heads/")?ne.target.slice(11):ne.target,Jt=(await pe(s))[`branch "${De}"`];Jt&&(f=Jt.remote||"origin",!l&&Jt.merge&&(l=Jt.merge.startsWith("refs/heads/")?Jt.merge.slice(11):Jt.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 De=ne.target.startsWith("refs/heads/")?ne.target.slice(11):ne.target,mn=await Re(s,`branch.${De}.rebase`);(mn==="true"||mn!=="false"&&await Re(s,"pull.rebase")==="true")&&(d=!0)}else await Re(s,"pull.rebase")==="true"&&(d=!0)}let m;try{m=await Mr(s,f,r.env)}catch(ne){let De=ne instanceof Error?ne.message:"";if(De.startsWith("network"))return I(De);throw ne}if(!m)return I(`'${f}' does not appear to be a git repository`);let{transport:u,config:h}=m,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=pr(h.fetchRefspec),y=await u.advertiseRefs();if(y.length===0)return I("Couldn't find remote ref HEAD");let b=(await we(s)).map(ne=>ne.hash),E=await U(s,"HEAD");E&&b.push(E);let k=[],R=new Set,P=[];for(let ne of y){if(ne.name==="HEAD")continue;let De=Mo(w,ne.name);De!==null&&(P.push({remote:ne,localRef:De}),R.has(ne.hash)||(R.add(ne.hash),k.push(ne.hash)))}let C=new Set(b),H=k.filter(ne=>!C.has(ne)),D,O=i!==void 0?await vr(s):void 0;i!==void 0&&(D={depth:i,existingShallows:O});let A=H.length>0?H:D?k:[];if(A.length>0){let ne=await u.fetch(A,b,D);ne.shallowUpdates&&await Tr(s,ne.shallowUpdates,O)}let G=await en(s,r.env);for(let ne of P){let De=await U(s,ne.localRef);await X(s,ne.localRef,ne.remote.hash),await Ye(s,ne.localRef,{oldHash:De??te,newHash:ne.remote.hash,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:De?"pull":"pull: storing head"})}let v=null;if(l){let ne=y.find(De=>De.name===`refs/heads/${l}`);if(ne)v=ne.hash;else return I(`Couldn't find remote ref refs/heads/${l}`)}else{let ne=y.find(De=>De.name==="HEAD");ne&&(v=ne.hash)}if(v&&await r.fs.writeFile(S(s.gitDir,"FETCH_HEAD"),`${v} ${h.url}
576
+ `,exitCode:128};let o=await j(e,r),s=await z(e),i=await En(e,o.tree,s);return i.success&&(await de(e,{version:2,entries:i.newEntries}),await Ne(e,i.worktreeOps)),await he(e,"REBASE_HEAD"),await he(e,"CHERRY_PICK_HEAD"),await he(e,"REVERT_HEAD"),await he(e,"MERGE_HEAD"),await ye(e,"MERGE_MSG"),await ye(e,"MERGE_MODE"),await ye(e,"rebase-merge/message"),ga(e,t)}function nd(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:V.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 $o(s))return I("--unshallow on a complete repository does not make sense");let i=n.depth;n.unshallow&&(i=bs);let a=await Qe(s);if(M(a))return a;let c=await z(s);if(At(c))return L(`error: Pulling is not possible because you have unmerged files.
577
+ `,128);let f=n.remote,l=n.branch;if(!f){let se=await Q(s);if(se?.type==="symbolic"){let Ge=se.target.startsWith("refs/heads/")?se.target.slice(11):se.target,Jt=(await we(s))[`branch "${Ge}"`];Jt&&(f=Jt.remote||"origin",!l&&Jt.merge&&(l=Jt.merge.startsWith("refs/heads/")?Jt.merge.slice(11):Jt.merge))}}f=f||"origin";let d=!1;if(n.rebase)d=!0;else if(!n.noRebase){let se=await Q(s);if(se?.type==="symbolic"){let Ge=se.target.startsWith("refs/heads/")?se.target.slice(11):se.target,pn=await xe(s,`branch.${Ge}.rebase`);(pn==="true"||pn!=="false"&&await xe(s,"pull.rebase")==="true")&&(d=!0)}else await xe(s,"pull.rebase")==="true"&&(d=!0)}let m;try{m=await Lr(s,f,r.env)}catch(se){let Ge=se instanceof Error?se.message:"";if(Ge.startsWith("network"))return I(Ge);throw se}if(!m)return I(`'${f}' does not appear to be a git repository`);let{transport:u,config:h}=m,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=br(h.fetchRefspec),b=await u.advertiseRefs();if(b.length===0)return I("Couldn't find remote ref HEAD");let y=(await pe(s)).map(se=>se.hash),k=await B(s,"HEAD");k&&y.push(k);let E=[],R=new Set,C=[];for(let se of b){if(se.name==="HEAD")continue;let Ge=jo(w,se.name);Ge!==null&&(C.push({remote:se,localRef:Ge}),R.has(se.hash)||(R.add(se.hash),E.push(se.hash)))}let P=new Set(y),H=E.filter(se=>!P.has(se)),D,O=i!==void 0?await Ar(s):void 0;i!==void 0&&(D={depth:i,existingShallows:O});let A=H.length>0?H:D?E:[];if(A.length>0){let se=await u.fetch(A,y,D);se.shallowUpdates&&await Dr(s,se.shallowUpdates,O)}let G=await en(s,r.env);for(let se of C){let Ge=await B(s,se.localRef);await X(s,se.localRef,se.remote.hash),await Ze(s,se.localRef,{oldHash:Ge??te,newHash:se.remote.hash,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:Ge?"pull":"pull: storing head"})}let v=null;if(l){let se=b.find(Ge=>Ge.name===`refs/heads/${l}`);if(se)v=se.hash;else return I(`Couldn't find remote ref refs/heads/${l}`)}else{let se=b.find(Ge=>Ge.name==="HEAD");se&&(v=se.hash)}if(v&&await r.fs.writeFile(S(s.gitDir,"FETCH_HEAD"),`${v} ${h.url}
570
578
  `),!v)return I("Could not determine remote HEAD");let T=v;if(a===T)return await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
571
- `,stderr:"",exitCode:0};if(d){let ne=await Q(s),De=ne?.type==="symbolic"?ne.target:"detached HEAD",mn=l?`${f}/${l}`:f,Jt=await ua(s,r.env,a,De,T,T,mn,t);return Jt.exitCode===0&&await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"rebase",commitHash:null}),Jt}let _=await Ut(s,a,T),B=_[0]??null;if(_.length===0)return I("refusing to merge unrelated histories");if(B===T)return await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
572
- `,stderr:"",exitCode:0};let W=!!n.noFf,N=!!n.ffOnly;if(!n.noFf&&!n.ffOnly){let ne=await Re(s,"pull.ff");ne==="false"?W=!0:ne==="only"&&(N=!0)}let F=B===a;if(N&&!F)return I("Not possible to fast-forward, aborting.");if(F&&!W){let ne=await xo(s,a,T),De=await Q(s),mn=De?.type==="symbolic"?De.target:"HEAD";return await Ye(s,mn,{oldHash:a,newHash:T,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:"pull: Fast-forward"}),De?.type==="symbolic"&&await Ye(s,"HEAD",{oldHash:a,newHash:T,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:T,strategy:"fast-forward",commitHash:null}),await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"fast-forward",commitHash:null})),ne}let K=await Q(s),de=K?.type==="symbolic"?xe(K.target):"HEAD",ke=l||f||"FETCH_HEAD",He=await Re(s,"merge.conflictstyle")??"merge",Fe={a:"HEAD",b:ke,conflictStyle:He},ae=await gs(s,a,T,Fe),Ue=await j(s,a),Rt=await Cn(s,ae,Ue.tree,{labels:Fe,errorExitCode:2,operationName:"merge"});if(!Rt.ok)return Rt;if(ae.conflicts.length>0){await X(s,"MERGE_HEAD",T),await X(s,"ORIG_HEAD",a);let ne=await ur(s,ke,de),De=Wt({version:2,entries:ae.entries}).sort();return ne+=`
579
+ `,stderr:"",exitCode:0};if(d){let se=await Q(s),Ge=se?.type==="symbolic"?se.target:"detached HEAD",pn=l?`${f}/${l}`:f,Jt=await pa(s,r.env,a,Ge,T,T,pn,t);return Jt.exitCode===0&&await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"rebase",commitHash:null}),Jt}let F=await Ft(s,a,T),_=F[0]??null;if(F.length===0)return I("refusing to merge unrelated histories");if(_===T)return await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"up-to-date",commitHash:null}),{stdout:`Already up to date.
580
+ `,stderr:"",exitCode:0};let U=!!n.noFf,N=!!n.ffOnly;if(!n.noFf&&!n.ffOnly){let se=await xe(s,"pull.ff");se==="false"?U=!0:se==="only"&&(N=!0)}let K=_===a;if(N&&!K)return I("Not possible to fast-forward, aborting.");if(K&&!U){let se=await Co(s,a,T),Ge=await Q(s),pn=Ge?.type==="symbolic"?Ge.target:"HEAD";return await Ze(s,pn,{oldHash:a,newHash:T,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:"pull: Fast-forward"}),Ge?.type==="symbolic"&&await Ze(s,"HEAD",{oldHash:a,newHash:T,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:"pull: Fast-forward"}),se.exitCode===0&&(await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:T,strategy:"fast-forward",commitHash:null}),await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"fast-forward",commitHash:null})),se}let ne=await Q(s),J=ne?.type==="symbolic"?Pe(ne.target):"HEAD",re=l||f||"FETCH_HEAD",ke=await xe(s,"merge.conflictstyle")??"merge",je={a:"HEAD",b:re,conflictStyle:ke},ae=await ws(s,a,T,je),$e=await j(s,a),rt=await $n(s,ae,$e.tree,{labels:je,errorExitCode:2,operationName:"merge"});if(!rt.ok)return rt;if(ae.conflicts.length>0){await X(s,"MERGE_HEAD",T),await X(s,"ORIG_HEAD",a);let se=await pr(s,re,J),Ge=Bt({version:2,entries:ae.entries}).sort();return se+=`
573
581
  # Conflicts:
574
- ${De.map(mn=>`# ${mn}`).join(`
582
+ ${Ge.map(pn=>`# ${pn}`).join(`
575
583
  `)}
576
- `,await Te(s,"MERGE_MSG",ne),{stdout:`${[...ae.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
584
+ `,await De(s,"MERGE_MSG",se),{stdout:`${[...ae.messages,"Automatic merge failed; fix conflicts and then commit the result."].join(`
577
585
  `)}
578
- `,stderr:"",exitCode:1}}let gr=Rt.mergedTreeHash,Xe=await cn(s,r.env);if(M(Xe))return Xe;let wr=await tt(s,r.env);if(M(wr))return wr;let Gr=await ur(s,ke,de),Ra={repo:s,message:Gr,treeHash:gr,headHash:a,theirsHash:T},xa=await t?.hooks?.mergeMsg?.(Ra);if(ee(xa))return{stdout:"",stderr:xa.message??"",exitCode:1};Gr=Ra.message;let Ca=await t?.hooks?.preMergeCommit?.({repo:s,mergeMessage:Gr,treeHash:gr,headHash:a,theirsHash:T});if(ee(Ca))return{stdout:"",stderr:Ca.message??"",exitCode:1};let $s=await gt(s,gr,[a,T],Xe,wr,Gr);await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:T,strategy:"three-way",commitHash:$s}),await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"three-way",commitHash:$s});let gd=K?.type==="symbolic"?K.target:"HEAD",Pa="pull: Merge made by the 'ort' strategy.";await Ye(s,gd,{oldHash:a,newHash:$s,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:Pa}),K?.type==="symbolic"&&await Ye(s,"HEAD",{oldHash:a,newHash:$s,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:Pa});let wd=await dn(s,Ue.tree,gr);return{stdout:`${ae.messages.length>0?`${ae.messages.join(`
586
+ `,stderr:"",exitCode:1}}let Sn=rt.mergedTreeHash,We=await ln(s,r.env);if(M(We))return We;let yr=await nt(s,r.env);if(M(yr))return yr;let _r=await pr(s,re,J),Pa={repo:s,message:_r,treeHash:Sn,headHash:a,theirsHash:T},$a=await t?.hooks?.mergeMsg?.(Pa);if(ee($a))return{stdout:"",stderr:$a.message??"",exitCode:1};_r=Pa.message;let Oa=await t?.hooks?.preMergeCommit?.({repo:s,mergeMessage:_r,treeHash:Sn,headHash:a,theirsHash:T});if(ee(Oa))return{stdout:"",stderr:Oa.message??"",exitCode:1};let Os=await bt(s,Sn,[a,T],We,yr,_r);await t?.hooks?.postMerge?.({repo:s,headHash:a,theirsHash:T,strategy:"three-way",commitHash:Os}),await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"three-way",commitHash:Os});let vd=ne?.type==="symbolic"?ne.target:"HEAD",Ia="pull: Merge made by the 'ort' strategy.";await Ze(s,vd,{oldHash:a,newHash:Os,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:Ia}),ne?.type==="symbolic"&&await Ze(s,"HEAD",{oldHash:a,newHash:Os,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:Ia});let Td=await mn(s,$e.tree,Sn);return{stdout:`${ae.messages.length>0?`${ae.messages.join(`
579
587
  `)}
580
588
  `:""}Merge made by the 'ort' strategy.
581
- ${wd}`,stderr:"",exitCode:0}}})}oe();Be();mt();he();function Bl(e,t){e.command("push",{description:"Update remote refs along with associated objects",args:[z.string().name("remote").describe("Remote to push to").optional(),z.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 q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=n.remote||"origin",a;try{a=await Mr(s,i,r.env)}catch(b){let E=b instanceof Error?b.message:"";if(E.startsWith("network"))return I(E);throw b}if(!a)return I(`'${i}' does not appear to be a git repository`);let{transport:c,config:f}=a,l=n.force,d=await c.advertiseRefs(),m=new Map;for(let b of d)m.set(b.name,b.hash);let u=[],h=n.refspec;if(n.delete){let b=h&&h.length>0?h:[];if(b.length===0)return I("--delete requires a ref argument");for(let E of b){let k=E.startsWith("refs/")?E:`refs/heads/${E}`,R=m.get(k)??null;if(!R)return L(`error: unable to delete '${E}': remote ref does not exist
582
- `);u.push({name:k,oldHash:R,newHash:te,ok:l})}}else if(n.all){let b=await we(s,"refs/heads");for(let E of b){let k=E.name,R=m.get(k)??null;u.push({name:k,oldHash:R,newHash:E.hash,ok:l})}}else if(n.tags){let b=await we(s,"refs/tags");for(let E of b){let k=m.get(E.name)??null;k!==E.hash&&u.push({name:E.name,oldHash:k,newHash:E.hash,ok:l})}}else if(h&&h.length>0)for(let b of h){let E=pr(b),k=await Pg(s,E.src);if(!k)return L(`error: src refspec '${E.src}' does not match any
583
- `);let R=E.dst.startsWith("refs/")?E.dst:`refs/heads/${E.dst}`,P=m.get(R)??null;u.push({name:R,oldHash:P,newHash:k,ok:l||E.force})}else{let b=await Q(s);if(!b||b.type!=="symbolic")return I("You are not currently on a branch.");let E=b.target,k=E.startsWith("refs/heads/")?E.slice(11):E,R=await J(s);if(!R)return L(`error: src refspec does not match any
584
- `);let P=(await Re(s,"push.default"))?.toLowerCase()??"simple",C=await Cg(s,P,E,k,R,i,m,l);if("exitCode"in C)return C;u.push(C)}if(u.length===0)return{stdout:`Everything up-to-date
585
- `,stderr:"",exitCode:0};let p=await t?.hooks?.prePush?.({repo:s,remote:i,url:f.url,refs:u.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(u),w=[];w.push(`To ${f.url}
586
- `);let y=!1;for(let b of g.updates){let E=b.name.startsWith("refs/heads/")?b.name.slice(11):b.name;if(!b.ok)w.push(` ! [rejected] ${E} -> ${E} (${b.error??"failed"})
587
- `),y=!0;else if(!b.oldHash)w.push(` * [new branch] ${E} -> ${E}
588
- `);else if(b.newHash===te)w.push(` - [deleted] ${E}
589
- `);else{let k=Y(b.oldHash),R=Y(b.newHash);w.push(` ${k}..${R} ${E} -> ${E}
590
- `)}}if(n["set-upstream"]&&!y){let b=await Q(s);if(b?.type==="symbolic"){let E=b.target.startsWith("refs/heads/")?b.target.slice(11):b.target,k=await pe(s);k[`branch "${E}"`]={remote:i,merge:`refs/heads/${E}`},await Ze(s,k),w.push(`branch '${E}' set up to track '${i}/${E}'.
591
- `)}}let x={stdout:"",stderr:w.join(""),exitCode:y?1:0};return y||await t?.hooks?.postPush?.({repo:s,remote:i,url:f.url,refs:u.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 Cg(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 pe(e))[`branch "${r}"`];if(!d?.remote||!d?.merge)return I(`The current branch ${r} has no upstream branch.
589
+ ${Td}`,stderr:"",exitCode:0}}})}ie();qe();ht();ge();function rd(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 Lr(s,i,r.env)}catch(y){let k=y instanceof Error?y.message:"";if(k.startsWith("network"))return I(k);throw y}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(),m=new Map;for(let y of d)m.set(y.name,y.hash);if(n.tags&&n.all)return I("options '--tags' and '--all/--branches' cannot be used together");if(n.tags&&n.delete)return I("options '--delete' and '--tags' cannot be used together");let u=[],h=n.refspec;if(n.delete){let y=h&&h.length>0?h:[];if(y.length===0)return I("--delete requires a ref argument");for(let k of y){let E=k.startsWith("refs/")?k:`refs/heads/${k}`,R=m.get(E)??null;if(!R)return L(`error: unable to delete '${k}': remote ref does not exist
590
+ `);u.push({name:E,oldHash:R,newHash:te,ok:l})}}else if(n.all){let y=await pe(s,"refs/heads");for(let k of y){let E=k.name,R=m.get(E)??null;u.push({name:E,oldHash:R,newHash:k.hash,ok:l})}}else if(h&&h.length>0)for(let y of h){let k=br(y),E=await Lg(s,k.src);if(!E)return L(`error: src refspec '${k.src}' does not match any
591
+ `);let R=k.dst.startsWith("refs/")?k.dst:`refs/heads/${k.dst}`,C=m.get(R)??null;u.push({name:R,oldHash:C,newHash:E,ok:l||k.force})}else if(!n.tags){let y=await Q(s);if(!y||y.type!=="symbolic")return I("You are not currently on a branch.");let k=y.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
592
+ `);let C=(await xe(s,"push.default"))?.toLowerCase()??"simple",P=await Gg(s,C,k,E,R,i,m,l);if("exitCode"in P)return P;u.push(P)}if(n.tags){let y=await pe(s,"refs/tags");for(let k of y){let E=m.get(k.name)??null;E!==k.hash&&(u.some(R=>R.name===k.name)||u.push({name:k.name,oldHash:E,newHash:k.hash,ok:l}))}}if(u.length===0)return{stdout:`Everything up-to-date
593
+ `,stderr:"",exitCode:0};let p=await t?.hooks?.prePush?.({repo:s,remote:i,url:f.url,refs:u.map(y=>({srcRef:y.newHash===te?null:y.name,srcHash:y.newHash===te?null:y.newHash,dstRef:y.name,dstHash:y.oldHash,force:!!y.ok,delete:y.newHash===te}))});if(ee(p))return L(p.message??"");let g=await c.push(u),w=[];w.push(`To ${f.url}
594
+ `);let b=!1;for(let y of g.updates){let k=y.name.startsWith("refs/tags/"),E=y.name.startsWith("refs/heads/")?y.name.slice(11):y.name.startsWith("refs/tags/")?y.name.slice(10):y.name;if(!y.ok)w.push(` ! [rejected] ${E} -> ${E} (${y.error??"failed"})
595
+ `),b=!0;else if(y.oldHash)if(y.newHash===te)w.push(` - [deleted] ${E}
596
+ `);else{let R=Y(y.oldHash),C=Y(y.newHash);w.push(` ${R}..${C} ${E} -> ${E}
597
+ `)}else{let R=k?"[new tag]":"[new branch]";w.push(` * ${R} ${E} -> ${E}
598
+ `)}}if(n["set-upstream"]&&!b){let y=await Q(s);if(y?.type==="symbolic"){let k=y.target.startsWith("refs/heads/")?y.target.slice(11):y.target,E=await we(s);E[`branch "${k}"`]={remote:i,merge:`refs/heads/${k}`},await Je(s,E),w.push(`branch '${k}' set up to track '${i}/${k}'.
599
+ `)}}let x={stdout:"",stderr:w.join(""),exitCode:b?1:0};return b||await t?.hooks?.postPush?.({repo:s,remote:i,url:f.url,refs:u.map(y=>({srcRef:y.newHash===te?null:y.name,srcHash:y.newHash===te?null:y.newHash,dstRef:y.name,dstHash:y.oldHash,force:!!y.ok,delete:y.newHash===te}))}),x}})}async function Gg(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 we(e))[`branch "${r}"`];if(!d?.remote||!d?.merge)return I(`The current branch ${r} has no upstream branch.
592
600
  To push the current branch and set the remote as upstream, use
593
601
 
594
602
  git push --set-upstream ${s} ${r}
595
- `);let m=d.merge;return{name:m,oldHash:i.get(m)??null,newHash:o,ok:a}}let f=(await pe(e))[`branch "${r}"`];if(f?.remote&&f?.merge){let l=f.remote,d=f.merge;if(l===s)return(d.startsWith("refs/heads/")?d.slice(11):d)!==r?I(`The upstream branch of your current branch does not match
603
+ `);let m=d.merge;return{name:m,oldHash:i.get(m)??null,newHash:o,ok:a}}let f=(await we(e))[`branch "${r}"`];if(f?.remote&&f?.merge){let l=f.remote,d=f.merge;if(l===s)return(d.startsWith("refs/heads/")?d.slice(11):d)!==r?I(`The upstream branch of your current branch does not match
596
604
  the name of your current branch. To push to the upstream branch
597
605
  on the remote, use
598
606
 
@@ -601,52 +609,52 @@ on the remote, use
601
609
  To push to the branch of the same name on the remote, use
602
610
 
603
611
  git push ${s} HEAD
604
- `):{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 Pg(e,t){if(t.startsWith("refs/"))return U(e,t);let n=await U(e,`refs/heads/${t}`);if(n)return n;let r=await U(e,`refs/tags/${t}`);return r||(t==="HEAD"?J(e):null)}oe();ue();We();he();function $g(e,t,n,r){return`${Y(n)} ${e}@{${t}}: ${r}`}async function _o(e,t,n){let r=t==="HEAD"?"HEAD":`refs/heads/${t}`;if(!await U(e,r))return{stdout:"",stderr:`fatal: ambiguous argument '${t}': unknown revision or path not in the working tree.
612
+ `):{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 Lg(e,t){if(t.startsWith("refs/"))return B(e,t);let n=await B(e,`refs/heads/${t}`);if(n)return n;let r=await B(e,`refs/tags/${t}`);return r||(t==="HEAD"?Z(e):null)}ie();me();ze();ge();function Ng(e,t,n,r){return`${Y(n)} ${e}@{${t}}: ${r}`}async function Bo(e,t,n){let r=t==="HEAD"?"HEAD":`refs/heads/${t}`;if(!await B(e,r))return{stdout:"",stderr:`fatal: ambiguous argument '${t}': unknown revision or path not in the working tree.
605
613
  Use '--' to separate paths from revisions, like this:
606
614
  'git <command> [<revision>...] -- [<file>...]'
607
- `,exitCode:128};let s=await et(e,r),i=[],a=n!==void 0?n:s.length,c=0;for(let l=s.length-1;l>=0&&c<a;l--){let d=s[l];if(!d)continue;let m=s.length-1-l;d.newHash!==te&&(i.push($g(t,m,d.newHash,d.message)),c++)}return{stdout:i.length>0?`${i.join(`
615
+ `,exitCode:128};let s=await et(e,r),i=[],a=n!==void 0?n:s.length,c=0;for(let l=s.length-1;l>=0&&c<a;l--){let d=s[l];if(!d)continue;let m=s.length-1-l;d.newHash!==te&&(i.push(Ng(t,m,d.newHash,d.message)),c++)}return{stdout:i.length>0?`${i.join(`
608
616
  `)}
609
- `:"",stderr:"",exitCode:0}}function Wl(e,t){return e.command("reflog",{description:"Manage reflog information",args:[z.string().name("args").variadic().optional()],options:{maxCount:Z.number().alias("n").describe("Limit the number of entries to output")},handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);if(M(s))return s;let i=s,a=r.args;if(a.length===0)return _o(i,"HEAD",r.maxCount);let c=a[0];if(!c)return _o(i,"HEAD",r.maxCount);if(c==="show"){let f=a[1]??"HEAD";return _o(i,f,r.maxCount)}if(c==="exists"){let f=a[1];if(!f)return{stdout:"",stderr:`fatal: reflog exists requires a ref argument
610
- `,exitCode:128};let l=S(i.gitDir,"logs",f);return{stdout:"",stderr:"",exitCode:await i.fs.exists(l)?0:1}}return _o(i,c,r.maxCount)}})}oe();Be();We();he();function Og(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 ql(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 q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=Og(c);if(f.length===0)return{stdout:"",stderr:"",exitCode:0};if(s.verbose){let l=[];for(let d of f){let u=c[`remote "${d}"`]?.url??"";l.push(`${d} ${u} (fetch)`),l.push(`${d} ${u} (push)`)}return{stdout:`${l.join(`
617
+ `:"",stderr:"",exitCode:0}}function sd(e,t){return e.command("reflog",{description:"Manage reflog information",args:[q.string().name("args").variadic().optional()],options:{maxCount:V.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 Bo(i,"HEAD",r.maxCount);let c=a[0];if(!c)return Bo(i,"HEAD",r.maxCount);if(c==="show"){let f=a[1]??"HEAD";return Bo(i,f,r.maxCount)}if(c==="exists"){let f=a[1];if(!f)return{stdout:"",stderr:`fatal: reflog exists requires a ref argument
618
+ `,exitCode:128};let l=S(i.gitDir,"logs",f);return{stdout:"",stderr:"",exitCode:await i.fs.exists(l)?0:1}}return Bo(i,c,r.maxCount)}})}ie();qe();ze();ge();function _g(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 od(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 we(a),f=_g(c);if(f.length===0)return{stdout:"",stderr:"",exitCode:0};if(s.verbose){let l=[];for(let d of f){let u=c[`remote "${d}"`]?.url??"";l.push(`${d} ${u} (fetch)`),l.push(`${d} ${u} (push)`)}return{stdout:`${l.join(`
611
619
  `)}
612
620
  `,stderr:"",exitCode:0}}return{stdout:`${f.join(`
613
621
  `)}
614
- `,stderr:"",exitCode:0}}});n.command("add",{description:"Add a remote named <name> for the repository at <url>",args:[z.string().name("name").describe("Remote name"),z.string().name("url").describe("Remote URL")],handler:async(s,i)=>{if(!ts(`refs/remotes/${s.name}`,0))return I(`'${s.name}' is not a valid remote name`);let a=await q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;return f in c?L(`error: remote ${s.name} already exists.
615
- `,3):(c[f]={url:s.url,fetch:`+refs/heads/*:refs/remotes/${s.name}/*`},await Ze(a,c),{stdout:"",stderr:"",exitCode:0})}});let r=async(s,i)=>{let a=await q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;return f in c?(delete c[f],Sg(c,s.name),await Ze(a,c),await vg(a,s.name),{stdout:"",stderr:"",exitCode:0}):L(`error: No such remote: '${s.name}'
616
- `,2)},o=[z.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:[z.string().name("old").describe("Current remote name"),z.string().name("new").describe("New remote name")],handler:async(s,i)=>{let a=await q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a);return Ig(a,c,s.old,s.new)}}),n.command("set-url",{description:"Change the URL for an existing remote",args:[z.string().name("name").describe("Remote name"),z.string().name("url").describe("New remote URL")],handler:async(s,i)=>{let a=await q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;if(!(f in c))return L(`error: No such remote '${s.name}'
617
- `,2);let l=c[f];return l&&(l.url=s.url),await Ze(a,c),{stdout:"",stderr:"",exitCode:0}}}),n.command("get-url",{description:"Retrieve the URL for an existing remote",args:[z.string().name("name").describe("Remote name")],handler:async(s,i)=>{let a=await q(i.fs,i.cwd,t);if(M(a))return a;let c=await pe(a),f=`remote "${s.name}"`;return f in c?{stdout:`${c[f]?.url??""}
622
+ `,stderr:"",exitCode:0}}});n.command("add",{description:"Add a remote named <name> for the repository at <url>",args:[q.string().name("name").describe("Remote name"),q.string().name("url").describe("Remote URL")],handler:async(s,i)=>{if(!ts(`refs/remotes/${s.name}`,0))return I(`'${s.name}' is not a valid remote name`);let a=await W(i.fs,i.cwd,t);if(M(a))return a;let c=await we(a),f=`remote "${s.name}"`;return f in c?L(`error: remote ${s.name} already exists.
623
+ `,3):(c[f]={url:s.url,fetch:`+refs/heads/*:refs/remotes/${s.name}/*`},await Je(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 we(a),f=`remote "${s.name}"`;return f in c?(delete c[f],Ug(c,s.name),await Je(a,c),await Bg(a,s.name),{stdout:"",stderr:"",exitCode:0}):L(`error: No such remote: '${s.name}'
624
+ `,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 we(a);return Fg(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 we(a),f=`remote "${s.name}"`;if(!(f in c))return L(`error: No such remote '${s.name}'
625
+ `,2);let l=c[f];return l&&(l.url=s.url),await Je(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 we(a),f=`remote "${s.name}"`;return f in c?{stdout:`${c[f]?.url??""}
618
626
  `,stderr:"",exitCode:0}:L(`error: No such remote '${s.name}'
619
- `,2)}})}async function Ig(e,t,n,r){if(!ts(`refs/remotes/${r}`,0))return I(`'${r}' is not a valid remote name`);let o=`remote "${n}"`;if(!(o in t))return L(`error: No such remote: '${n}'
620
- `,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 Ze(e,t);let a=`refs/remotes/${n}`,c=await we(e,a);for(let f of c){let l=f.name.replace(a,`refs/remotes/${r}`),d=await et(e,f.name);await X(e,l,f.hash),await me(e,f.name),d.length>0&&await Mn(e,l,d)}return{stdout:"",stderr:"",exitCode:0}}function Sg(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 vg(e,t){let n=`refs/remotes/${t}`,r=await we(e,n);for(let o of r)await me(e,o.name)}oe();Ce();ie();ue();We();he();wn();ve();an();st();function Kl(e,t){e.command("reset",{description:"Reset current HEAD to the specified state",args:[z.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 q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n.args;if([n.soft,n.mixed,n.hard].filter(Boolean).length>1)return I("--soft, --mixed, and --hard are mutually exclusive");let f=n.soft||n.mixed||n.hard,l=dt(i,r.cwd);if(o.passthrough.length>0){let u=a.length>0?a[0]:void 0;return ha(i,o.passthrough,l,u,t)}if(!f&&a.length>0){let u=a[0],h=await ze(i,u);return a.length===1&&h?zl(i,u,"mixed",r.env,t):h?ha(i,a.slice(1),l,u,t):ha(i,a,l,void 0,t)}let d=n.soft?"soft":n.hard?"hard":"mixed",m=a.length>0?a[0]:"HEAD";return zl(i,m,d,r.env,t)}})}async function ha(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 ze(e,r);if(!d)return Yt(r);let m=await je(e,d);i=(await j(e,m)).tree}else{let d=await J(e);d&&(i=(await j(e,d)).tree)}let a=await fe(e,i??null),c=await V(e);if(t.some(or)){let d=t.map(u=>_e(u,n)),m=new Set;for(let[u]of a)m.add(u);for(let u of c.entries)m.add(u.path);for(let u of m){if(!be(d,u))continue;let h=a.get(u);h?c=xt(c,{path:h.path,mode:parseInt(h.mode,8),hash:h.hash,stage:0,stat:Ie()}):c=ft(c,u)}}else for(let d of t){let m=a.get(d);if(m)c=xt(c,{path:m.path,mode:parseInt(m.mode,8),hash:m.hash,stage:0,stat:Ie()});else if(c.entries.some(h=>h.path===d))c=ft(c,d);else if(!(e.workTree&&await e.fs.exists(S(e.workTree,d))))return Yt(d)}await ce(e,c);let l={stdout:await Vl(e,c),stderr:"",exitCode:0};return await o?.hooks?.postReset?.({repo:e,mode:"paths",targetHash:null}),l}async function Vl(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 At(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(`
627
+ `,2)}})}async function Fg(e,t,n,r){if(!ts(`refs/remotes/${r}`,0))return I(`'${r}' is not a valid remote name`);let o=`remote "${n}"`;if(!(o in t))return L(`error: No such remote: '${n}'
628
+ `,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 Je(e,t);let a=`refs/remotes/${n}`,c=await pe(e,a);for(let f of c){let l=f.name.replace(a,`refs/remotes/${r}`),d=await et(e,f.name);await X(e,l,f.hash),await he(e,f.name),d.length>0&&await Ln(e,l,d)}return{stdout:"",stderr:"",exitCode:0}}function Ug(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 Bg(e,t){let n=`refs/remotes/${t}`,r=await pe(e,n);for(let o of r)await he(e,o.name)}ie();Ce();ce();me();ze();ge();sn();He();fn();tt();function ad(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=ut(i,r.cwd);if(o.passthrough.length>0){let u=a.length>0?a[0]:void 0;return wa(i,o.passthrough,l,u,t)}if(!f&&a.length>0){let u=a[0],h=await Be(i,u);return a.length===1&&h?id(i,u,"mixed",r.env,t):h?wa(i,a.slice(1),l,u,t):wa(i,a,l,void 0,t)}let d=n.soft?"soft":n.hard?"hard":"mixed",m=a.length>0?a[0]:"HEAD";return id(i,m,d,r.env,t)}})}async function wa(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 Yt(r);let m=await Te(e,d);i=(await j(e,m)).tree}else{let d=await Z(e);d&&(i=(await j(e,d)).tree)}let a=await le(e,i??null),c=await z(e);if(t.some(cr)){let d=t.map(u=>Ue(u,n)),m=new Set;for(let[u]of a)m.add(u);for(let u of c.entries)m.add(u.path);for(let u of m){if(!Ee(d,u))continue;let h=a.get(u);h?c=Ct(c,{path:h.path,mode:parseInt(h.mode,8),hash:h.hash,stage:0,stat:Se()}):c=lt(c,u)}}else for(let d of t){let m=a.get(d);if(m)c=Ct(c,{path:m.path,mode:parseInt(m.mode,8),hash:m.hash,stage:0,stat:Se()});else if(c.entries.some(h=>h.path===d))c=lt(c,d);else if(!(e.workTree&&await e.fs.exists(S(e.workTree,d))))return Yt(d)}await de(e,c);let l={stdout:await cd(e,c),stderr:"",exitCode:0};return await o?.hooks?.postReset?.({repo:e,mode:"paths",targetHash:null}),l}async function cd(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 gt(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(`
621
629
  `)}
622
- `}async function zl(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 ze(e,t);if(!i)return Yt(t);let a=await je(e,i),c=await j(e,a);if(n==="soft"){let u=await U(e,"MERGE_HEAD"),h=await V(e);if(u||Ht(h))return I("Cannot do a soft reset in the middle of a merge.")}let f=await J(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 se(e,r,l.target,f,a,d,!0):(l?.type==="symbolic"||f!==a)&&await se(e,r,"HEAD",f,a,d),await ar(e),n==="mixed"){let u=await qe(e,c.tree),h=Gs(u.map(g=>({path:g.path,mode:parseInt(g.mode,8),hash:g.hash,stage:0,stat:Ie()})));await ce(e,h);let p=await Vl(e,h);if(p)return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:p,stderr:"",exitCode:0}}if(n==="hard"){let u=Je(e);if(u)return u;let h=await V(e),p=await yn(e,c.tree,h);await ce(e,{version:2,entries:p.newEntries}),await Ge(e,p.worktreeOps)}let m=n==="hard"?`HEAD is now at ${Y(a)} ${le(c.message)}
623
- `:"";return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:m,stderr:"",exitCode:0}}oe();Ce();ie();he();ve();st();function Yl(e,t){e.command("restore",{description:"Restore working tree files",args:[z.string().name("pathspec").variadic().optional()],options:{source:Z.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 q(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=dt(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"):mo(i,a,l,n.theirs?3:2,{deleteOnMissing:!0});let d=null;if(n.source){let m=await Ae(i,n.source,`could not resolve '${n.source}'`);if(M(m))return m;d=m.commit.tree}else if(c){let m=await J(i);m&&(d=(await j(i,m)).tree)}return c&&f?Ag(i,a,l,d):c?Tg(i,a,l,d):d?Hg(i,a,l,d):uo(i,a,l)}})}async function Tg(e,t,n,r){let o=await fe(e,r),s=await V(e),i=t.map(f=>_e(f,n)),a=new Set;for(let[f]of o)a.add(f);for(let f of s.entries)a.add(f.path);let c=!1;for(let f of a){if(!be(i,f))continue;c=!0;let l=o.get(f);if(l)s=xt(s,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:Ie()});else{if(s.entries.some(m=>m.path===f&&m.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
624
- `,exitCode:1};s=ft(s,f)}}return c?(await ce(e,s),{stdout:"",stderr:"",exitCode:0}):L(`error: pathspec '${t[0]}' did not match any file(s) known to git
625
- `)}async function Hg(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");let o=await fe(e,r),s=t.map(f=>_e(f,n)),i=[],a=await V(e),c=new Set;for(let[f]of o)c.add(f);for(let f of a.entries)c.add(f.path);for(let f of c)if(be(s,f)){if(!o.has(f)&&a.entries.some(d=>d.path===f&&d.stage!==0))return{stdout:"",stderr:`error: path '${f}' is unmerged
630
+ `}async function id(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 Yt(t);let a=await Te(e,i),c=await j(e,a);if(n==="soft"){let u=await B(e,"MERGE_HEAD"),h=await z(e);if(u||At(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 fe(e,r,l.target,f,a,d,!0):(l?.type==="symbolic"||f!==a)&&await fe(e,r,"HEAD",f,a,d),await lr(e),n==="mixed"){let u=await Ke(e,c.tree),h=Ls(u.map(g=>({path:g.path,mode:parseInt(g.mode,8),hash:g.hash,stage:0,stat:Se()})));await de(e,h);let p=await cd(e,h);if(p)return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:p,stderr:"",exitCode:0}}if(n==="hard"){let u=Ye(e);if(u)return u;let h=await z(e),p=await En(e,c.tree,h);await de(e,{version:2,entries:p.newEntries}),await Ne(e,p.worktreeOps)}let m=n==="hard"?`HEAD is now at ${Y(a)} ${ue(c.message)}
631
+ `:"";return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:m,stderr:"",exitCode:0}}ie();Ce();ce();ge();He();tt();function fd(e,t){e.command("restore",{description:"Restore working tree files",args:[q.string().name("pathspec").variadic().optional()],options:{source:V.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=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"):ho(i,a,l,n.theirs?3:2,{deleteOnMissing:!0});let d=null;if(n.source){let m=await Me(i,n.source,`could not resolve '${n.source}'`);if(M(m))return m;d=m.commit.tree}else if(c){let m=await Z(i);m&&(d=(await j(i,m)).tree)}return c&&f?zg(i,a,l,d):c?Wg(i,a,l,d):d?qg(i,a,l,d):mo(i,a,l)}})}async function Wg(e,t,n,r){let o=await le(e,r),s=await z(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(!Ee(i,f))continue;c=!0;let l=o.get(f);if(l)s=Ct(s,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:Se()});else{if(s.entries.some(m=>m.path===f&&m.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
632
+ `,exitCode:1};s=lt(s,f)}}return c?(await de(e,s),{stdout:"",stderr:"",exitCode:0}):L(`error: pathspec '${t[0]}' did not match any file(s) known to git
633
+ `)}async function qg(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");let o=await le(e,r),s=t.map(f=>Ue(f,n)),i=[],a=await z(e),c=new Set;for(let[f]of o)c.add(f);for(let f of a.entries)c.add(f.path);for(let f of c)if(Ee(s,f)){if(!o.has(f)&&a.entries.some(d=>d.path===f&&d.stage!==0))return{stdout:"",stderr:`error: path '${f}' is unmerged
626
634
  `,exitCode:1};i.push(f)}if(i.length===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
627
- `);for(let f of i){let l=o.get(f);if(l)await lt(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 fe(e,r),s=await V(e),i=t.map(f=>_e(f,n)),a=[],c=new Set;for(let[f]of o)c.add(f);for(let f of s.entries)c.add(f.path);for(let f of c)be(i,f)&&a.push(f);if(a.length===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
628
- `);for(let f of a){let l=o.get(f);if(l)s=xt(s,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:Ie()}),await lt(e,{path:l.path,hash:l.hash,mode:l.mode});else{if(s.entries.some(u=>u.path===f&&u.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
629
- `,exitCode:1};s=ft(s,f);let m=`${e.workTree}/${f}`;await e.fs.exists(m)&&await e.fs.rm(m)}}return await ce(e,s),{stdout:"",stderr:"",exitCode:0}}oe();ie();ue();he();wn();ve();function Xl(e,t){e.command("rev-parse",{description:"Pick out and massage parameters",args:[z.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"],m=n["is-bare-repository"],u=n["show-prefix"],h=n["show-cdup"],p=f||l||d||m||u||h,g=await q(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"),m&&y.push(w.workTree?"false":"true"),u){if(!w.workTree)return I("this operation must be run in a work tree");let b=nt(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=nt(r.cwd,w.workTree);y.push(b===""?"":`${b}/`)}if(p&&o.length===0)return{stdout:y.map(E=>`${E}
630
- `).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 Dg(w,b);if(R===null)return pa(b,s);y.push(R);continue}if(c){let R=await Mg(w,b);if(R===null)return pa(b,s);y.push(R);continue}let E=qs(b);if(E){let R=await jg(w,E.rev,E.path);if(R===null){let P=E.path.replace(/^\//,"");return I(`path '${P}' does not exist in '${E.rev}'`)}y.push(i?Y(R):R);continue}let k=await ze(w,b);if(!k)return pa(b,s);y.push(i?Y(k):k)}return{stdout:y.map(b=>`${b}
631
- `).join(""),stderr:"",exitCode:0}}})}function pa(e,t){return t?I("Needed a single revision"):Yt(e)}async function Dg(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 ze(e,t)?t:null}async function Mg(e,t){if(t==="HEAD"||t==="@"){let r=await Q(e);return r?r.type==="symbolic"?r.target:"HEAD":null}if(!await ze(e,t))return null;if(t.startsWith("refs/"))return t;for(let r of["refs/heads/","refs/tags/","refs/remotes/"]){let o=`${r}${t}`;if(await U(e,o))return o}return t}async function jg(e,t,n){let r=await ze(e,t);if(!r)return null;let o=await j(e,r),s=n.replace(/^\//,"");return s===""?o.tree:(await fe(e,o.tree)).get(s)?.hash??null}oe();Be();Ce();ie();We();he();ve();function Zl(e,t){e.command("revert",{description:"Revert some existing commits",args:[z.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:Z.number().alias("m").describe("Select the parent number for reverting merges")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(n.abort){let W=await t?.hooks?.preRevert?.({repo:s,mode:"abort",commit:null});if(ee(W))return{stdout:"",stderr:W.message??"",exitCode:1};let N=await Gg(s,r.env);return N.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),N}if(n.continue){let W=await t?.hooks?.preRevert?.({repo:s,mode:"continue",commit:null});if(ee(W))return{stdout:"",stderr:W.message??"",exitCode:1};let N=await Lg(s,r.env);return N.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"continue",commitHash:null,hadConflicts:!1}),N}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 Ae(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Qe(s);if(M(d))return d;let m=await V(s),u=En(m,"Reverting",`fatal: revert failed
632
- `);if(u)return u;let h=await j(s,d);if(s.workTree){let W=await fe(s,h.tree);if(Cr(m,W))return L(`error: your local changes would be overwritten by revert.
635
+ `);for(let f of i){let l=o.get(f);if(l)await dt(e,{path:l.path,hash:l.hash,mode:l.mode});else{let d=`${e.workTree}/${f}`;await e.fs.exists(d)&&await e.fs.rm(d)}}return{stdout:"",stderr:"",exitCode:0}}async function zg(e,t,n,r){if(!e.workTree)return I("this operation must be run in a work tree");let o=await le(e,r),s=await z(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)Ee(i,f)&&a.push(f);if(a.length===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
636
+ `);for(let f of a){let l=o.get(f);if(l)s=Ct(s,{path:l.path,mode:parseInt(l.mode,8),hash:l.hash,stage:0,stat:Se()}),await dt(e,{path:l.path,hash:l.hash,mode:l.mode});else{if(s.entries.some(u=>u.path===f&&u.stage>0))return{stdout:"",stderr:`error: path '${f}' is unmerged
637
+ `,exitCode:1};s=lt(s,f);let m=`${e.workTree}/${f}`;await e.fs.exists(m)&&await e.fs.rm(m)}}return await de(e,s),{stdout:"",stderr:"",exitCode:0}}ie();ce();me();ge();sn();He();function ld(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(y=>y!==""),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"],m=n["is-bare-repository"],u=n["show-prefix"],h=n["show-cdup"],p=f||l||d||m||u||h,g=await W(r.fs,r.cwd,t);if(M(g))return g;let w=g,b=[];if(f){if(!w.workTree)return I("this operation must be run in a work tree");b.push(w.workTree)}if(l&&b.push(w.gitDir),d&&b.push(w.workTree?"true":"false"),m&&b.push(w.workTree?"false":"true"),u){if(!w.workTree)return I("this operation must be run in a work tree");let y=st(w.workTree,r.cwd);b.push(y===""?"":`${y}/`)}if(h){if(!w.workTree)return I("this operation must be run in a work tree");let y=st(r.cwd,w.workTree);b.push(y===""?"":`${y}/`)}if(p&&o.length===0)return{stdout:b.map(k=>`${k}
638
+ `).join(""),stderr:"",exitCode:0};if(s&&o.length!==1)return I("Needed a single revision");for(let y of o){if(a){let R=await Kg(w,y);if(R===null)return ba(y,s);b.push(R);continue}if(c){let R=await Vg(w,y);if(R===null)return ba(y,s);b.push(R);continue}let k=Ks(y);if(k){let R=await Yg(w,k.rev,k.path);if(R===null){let C=k.path.replace(/^\//,"");return I(`path '${C}' does not exist in '${k.rev}'`)}b.push(i?Y(R):R);continue}let E=await Be(w,y);if(!E)return ba(y,s);b.push(i?Y(E):E)}return{stdout:b.map(y=>`${y}
639
+ `).join(""),stderr:"",exitCode:0}}})}function ba(e,t){return t?I("Needed a single revision"):Yt(e)}async function Kg(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 Vg(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 B(e,o))return o}return t}async function Yg(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 le(e,o.tree)).get(s)?.hash??null}ie();qe();Ce();ce();ze();ge();He();function dd(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:V.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 U=await t?.hooks?.preRevert?.({repo:s,mode:"abort",commit:null});if(ee(U))return{stdout:"",stderr:U.message??"",exitCode:1};let N=await Xg(s,r.env);return N.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"abort",commitHash:null,hadConflicts:!1}),N}if(n.continue){let U=await t?.hooks?.preRevert?.({repo:s,mode:"continue",commit:null});if(ee(U))return{stdout:"",stderr:U.message??"",exitCode:1};let N=await Zg(s,r.env);return N.exitCode===0&&await t?.hooks?.postRevert?.({repo:s,mode:"continue",commitHash:null,hadConflicts:!1}),N}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 Me(s,i);if(M(c))return c;let f=c.hash,l=c.commit,d=await Qe(s);if(M(d))return d;let m=await z(s),u=kn(m,"Reverting",`fatal: revert failed
640
+ `);if(u)return u;let h=await j(s,d);if(s.workTree){let U=await le(s,h.tree);if(Un(m,U))return L(`error: your local changes would be overwritten by revert.
633
641
  hint: commit your changes or stash them to proceed.
634
642
  fatal: revert failed
635
643
  `,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.
636
644
  fatal: revert failed
637
645
  `,128);if(p<1||p>l.parents.length)return L(`error: commit ${f} does not have parent ${p}
638
646
  fatal: revert failed
639
- `,128);let W=l.parents[p-1];g=(await j(s,W)).tree}else if(l.parents.length===0)g=await Ne(s,[]);else{let W=l.parents[0];g=(await j(s,W)).tree}let w=Y(f),y=le(l.message),x=Ng(l,f,p),b=await Re(s,"merge.conflictstyle")??"merge",E={a:"HEAD",b:y?`parent of ${w} (${y})`:`parent of ${w}`,conflictStyle:b},k=await Bt(s,l.tree,h.tree,g,E);if(k.conflicts.length===0&&k.resultTree===h.tree){let W=k.messages.length>0?`${k.messages.join(`
647
+ `,128);let U=l.parents[p-1];g=(await j(s,U)).tree}else if(l.parents.length===0)g=await Fe(s,[]);else{let U=l.parents[0];g=(await j(s,U)).tree}let w=Y(f),b=ue(l.message),x=Jg(l,f,p),y=await xe(s,"merge.conflictstyle")??"merge",k={a:"HEAD",b:b?`parent of ${w} (${b})`:`parent of ${w}`,conflictStyle:y},E=await Ut(s,l.tree,h.tree,g,k);if(E.conflicts.length===0&&E.resultTree===h.tree){let U=E.messages.length>0?`${E.messages.join(`
640
648
  `)}
641
- `:"",N=await it(s,{fromCommit:!0}),F=await U(s,"CHERRY_PICK_HEAD");return{stdout:`${W}${N}`,stderr:F?`The previous cherry-pick is now empty, possibly due to conflict resolution.
649
+ `:"",N=await at(s,{fromCommit:!0}),K=await B(s,"CHERRY_PICK_HEAD");return{stdout:`${U}${N}`,stderr:K?`The previous cherry-pick is now empty, possibly due to conflict resolution.
642
650
  If you wish to commit it anyway, use:
643
651
 
644
652
  git commit --allow-empty
645
653
 
646
654
  Otherwise, please use 'git cherry-pick --skip'
647
- `:"",exitCode:1}}let R=await Cn(s,k,h.tree,{labels:E,errorExitCode:128,operationName:"merge",callerCommand:"revert",skipStagedChangeCheck:!0});if(!R.ok)return R;if(k.conflicts.length>0){await X(s,"REVERT_HEAD",f),await X(s,"ORIG_HEAD",d),await Te(s,"MERGE_MSG",x);let W=k.messages.join(`
648
- `);return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:null,hadConflicts:!0}),{stdout:W?`${W}
649
- `:"",stderr:`error: could not revert ${w}... ${le(l.message)}
655
+ `:"",exitCode:1}}let R=await $n(s,E,h.tree,{labels:k,errorExitCode:128,operationName:"merge",callerCommand:"revert",skipStagedChangeCheck:!0});if(!R.ok)return R;if(E.conflicts.length>0){await X(s,"REVERT_HEAD",f),await X(s,"ORIG_HEAD",d),await De(s,"MERGE_MSG",x);let U=E.messages.join(`
656
+ `);return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:null,hadConflicts:!0}),{stdout:U?`${U}
657
+ `:"",stderr:`error: could not revert ${w}... ${ue(l.message)}
650
658
  hint: After resolving the conflicts, mark them with
651
659
  hint: "git add/rm <pathspec>", then run
652
660
  hint: "git revert --continue".
@@ -654,28 +662,28 @@ hint: You can instead skip this commit with "git revert --skip".
654
662
  hint: To abort and get back to the state before "git revert",
655
663
  hint: run "git revert --abort".
656
664
  hint: Disable this message with "git config set advice.mergeConflict false"
657
- `,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 cn(s,r.env);if(M(C))return C;let H=await tt(s,r.env);if(M(H))return H;let D=await gt(s,P,[d],C,H,x);await Lt(s),await Gt(s);let O=await Q(s),A=le(x),G=O?.type==="symbolic"?O.target:"HEAD";await se(s,r.env,G,d,D,`revert: ${A}`,O?.type==="symbolic");let v=O?.type==="symbolic"?xe(O.target):"detached HEAD",T=await ln(s,h.tree,P,C,H,C.timestamp!==H.timestamp||C.timezone!==H.timezone),_=Dt(v,D,x),B=k.messages.length>0?`${k.messages.join(`
665
+ `,exitCode:1}}if(n["no-commit"])return await X(s,"REVERT_HEAD",f),await De(s,"MERGE_MSG",x),{stdout:"",stderr:"",exitCode:0};let C=R.mergedTreeHash,P=await ln(s,r.env);if(M(P))return P;let H=await nt(s,r.env);if(M(H))return H;let D=await bt(s,C,[d],P,H,x);await Lt(s),await Gt(s);let O=await Q(s),A=ue(x),G=O?.type==="symbolic"?O.target:"HEAD";await fe(s,r.env,G,d,D,`revert: ${A}`,O?.type==="symbolic");let v=O?.type==="symbolic"?Pe(O.target):"detached HEAD",T=await un(s,h.tree,C,P,H,P.timestamp!==H.timestamp||P.timezone!==H.timezone),F=Dt(v,D,x),_=E.messages.length>0?`${E.messages.join(`
658
666
  `)}
659
- `:"";return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:D,hadConflicts:!1}),{stdout:`${B}${_}
660
- ${T}`,stderr:"",exitCode:0}}})}async function Gg(e,t){return await U(e,"REVERT_HEAD")?Nn(e,t,{operationRef:"REVERT_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
667
+ `:"";return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:D,hadConflicts:!1}),{stdout:`${_}${F}
668
+ ${T}`,stderr:"",exitCode:0}}})}async function Xg(e,t){return await B(e,"REVERT_HEAD")?Bn(e,t,{operationRef:"REVERT_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
661
669
  fatal: revert failed
662
- `,128),operationName:"revert",clearState:async o=>{await Lt(o),await Gt(o)},origHeadAsTargetRev:!0}):await U(e,"CHERRY_PICK_HEAD")?Nn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
670
+ `,128),operationName:"revert",clearState:async o=>{await Lt(o),await Gt(o)},origHeadAsTargetRev:!0}):await B(e,"CHERRY_PICK_HEAD")?Bn(e,t,{operationRef:"CHERRY_PICK_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
663
671
  fatal: revert failed
664
672
  `,128),operationName:"revert",clearState:Gt,origHeadAsTargetRev:!0}):L(`error: no cherry-pick or revert in progress
665
673
  fatal: revert failed
666
- `,128)}async function Lg(e,t){if(!await U(e,"REVERT_HEAD"))return L(`error: no cherry-pick or revert in progress
674
+ `,128)}async function Zg(e,t){if(!await B(e,"REVERT_HEAD"))return L(`error: no cherry-pick or revert in progress
667
675
  fatal: revert failed
668
- `,128);let r=await V(e),o=En(r,"Committing");if(o)return o;let s=await Pe(e,"MERGE_MSG");if(!s)return L(`Aborting commit due to empty commit message.
669
- `,1);let i=Me(r),a=await Ne(e,i),c=await Qe(e);if(M(c))return c;let f=await j(e,c),l=await cn(e,t);if(M(l))return l;let d=await tt(e,t);if(M(d))return d;let m=await U(e,"CHERRY_PICK_HEAD");m&&(l=(await j(e,m)).author);let u=Mt(s),h=await gt(e,a,[c],l,d,u);await Lt(e),await Gt(e);let p=await Q(e),g=le(u),w=p?.type==="symbolic"?p.target:"HEAD";await se(e,t,w,c,h,`commit: ${g}`,p?.type==="symbolic");let y=p?.type==="symbolic"?xe(p.target):"detached HEAD",x=await ln(e,f.tree,a,l,d,l.timestamp!==d.timestamp||l.timezone!==d.timezone);return{stdout:`${Dt(y,h,s)}
670
- ${x}`,stderr:"",exitCode:0}}function Ng(e,t,n){let r=le(e.message),o='Revert "',a=`${r.startsWith(o)&&r.endsWith('"')?`Reapply "${r.slice(o.length,-1)}"`:`Revert "${r}"`}
676
+ `,128);let r=await z(e),o=kn(r,"Committing");if(o)return o;let s=await Oe(e,"MERGE_MSG");if(!s)return L(`Aborting commit due to empty commit message.
677
+ `,1);let i=Le(r),a=await Fe(e,i),c=await Qe(e);if(M(c))return c;let f=await j(e,c),l=await ln(e,t);if(M(l))return l;let d=await nt(e,t);if(M(d))return d;let m=await B(e,"CHERRY_PICK_HEAD");m&&(l=(await j(e,m)).author);let u=Mt(s),h=await bt(e,a,[c],l,d,u);await Lt(e),await Gt(e);let p=await Q(e),g=ue(u),w=p?.type==="symbolic"?p.target:"HEAD";await fe(e,t,w,c,h,`commit: ${g}`,p?.type==="symbolic");let b=p?.type==="symbolic"?Pe(p.target):"detached HEAD",x=await un(e,f.tree,a,l,d,l.timestamp!==d.timestamp||l.timezone!==d.timezone);return{stdout:`${Dt(b,h,s)}
678
+ ${x}`,stderr:"",exitCode:0}}function Jg(e,t,n){let r=ue(e.message),o='Revert "',a=`${r.startsWith(o)&&r.endsWith('"')?`Reapply "${r.slice(o.length,-1)}"`:`Revert "${r}"`}
671
679
 
672
680
  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
673
681
  changes made to ${c}`}return a+=`.
674
- `,a}oe();Ce();ie();ue();he();er();ve();function Jl(e,t){e.command("rm",{description:"Remove files from the working tree and from the index",args:[z.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 q(r.fs,r.cwd,t);if(M(o))return o;let s=o,i=Je(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,m=await t?.hooks?.preRm?.({repo:s,paths:c,cached:f,recursive:l,force:d});if(ee(m))return{stdout:"",stderr:m.message??"",exitCode:1};let u=await V(s),h=[],p=dt(s,r.cwd);for(let y of c){if(or(y)){let k=[_e(y,p)],R=u.entries.filter(P=>be(k,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=vt(r.cwd,y),b=nt(a,x);if((b==="."||b==="")&&(b=""),b.startsWith(".."))return I(`'${y}' is outside repository at '${a}'`);if(await r.fs.exists(x)&&!(await ut(r.fs,x)).isSymbolicLink&&(await ut(r.fs,x)).isDirectory){if(!l)return I(`not removing '${b}' recursively without -r`);let k=b===""?"":`${b}/`,R=u.entries.filter(P=>k===""||P.path.startsWith(k));if(R.length===0)return I(`pathspec '${y}' did not match any files`);for(let P of R)h.push(P.path)}else{if(!u.entries.some(R=>R.path===b))return I(`pathspec '${y}' did not match any files`);h.push(b)}}if(!d){let y=await _g(s,u,h,f);if(y)return y}if(n.dryRun){let y=h.map(b=>`rm '${b}'`);return{stdout:y.length>0?`${y.join(`
682
+ `,a}ie();Ce();ce();me();ge();sr();He();function ud(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=Ye(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,m=await t?.hooks?.preRm?.({repo:s,paths:c,cached:f,recursive:l,force:d});if(ee(m))return{stdout:"",stderr:m.message??"",exitCode:1};let u=await z(s),h=[],p=ut(s,r.cwd);for(let b of c){if(cr(b)){let E=[Ue(b,p)],R=u.entries.filter(C=>Ee(E,C.path));if(R.length===0)return I(`pathspec '${b}' did not match any files`);for(let C of R)h.push(C.path);continue}let x=Tt(r.cwd,b),y=st(a,x);if((y==="."||y==="")&&(y=""),y.startsWith(".."))return I(`'${b}' is outside repository at '${a}'`);if(await r.fs.exists(x)&&!(await mt(r.fs,x)).isSymbolicLink&&(await mt(r.fs,x)).isDirectory){if(!l)return I(`not removing '${y}' recursively without -r`);let E=y===""?"":`${y}/`,R=u.entries.filter(C=>E===""||C.path.startsWith(E));if(R.length===0)return I(`pathspec '${b}' did not match any files`);for(let C of R)h.push(C.path)}else{if(!u.entries.some(R=>R.path===y))return I(`pathspec '${b}' did not match any files`);h.push(y)}}if(!d){let b=await Qg(s,u,h,f);if(b)return b}if(n.dryRun){let b=h.map(y=>`rm '${y}'`);return{stdout:b.length>0?`${b.join(`
675
683
  `)}
676
- `:"",stderr:"",exitCode:0}}let g=[];for(let y of h){if(u=ft(u,y),!f){let x=S(a,y);await ut(r.fs,x).then(()=>!0).catch(()=>!1)&&await r.fs.rm(x)}g.push(`rm '${y}'`)}await ce(s,u);let w=g.length>0?`${g.join(`
684
+ `:"",stderr:"",exitCode:0}}let g=[];for(let b of h){if(u=lt(u,b),!f){let x=S(a,b);await mt(r.fs,x).then(()=>!0).catch(()=>!1)&&await r.fs.rm(x)}g.push(`rm '${b}'`)}await de(s,u);let w=g.length>0?`${g.join(`
677
685
  `)}
678
- `:"";return await t?.hooks?.postRm?.({repo:s,removedPaths:h,cached:f}),{stdout:w,stderr:"",exitCode:0}}})}async function _g(e,t,n,r){let o=await J(e),s=new Map;if(o){let f=await j(e,o),l=await qe(e,f.tree);for(let d of l)s.set(d.path,d.hash)}let i=[],a=[],c=[];for(let f of n){let l=t.entries.find(h=>h.path===f&&h.stage===0);if(!l)continue;let m=s.get(f)!==l.hash,u=!1;if(e.workTree){let h=S(e.workTree,f),p=!1;try{await ut(e.fs,h),p=!0}catch{p=!1}p&&(u=await jn(e.fs,h)!==l.hash)}m&&u?i.push(f):m&&!r?a.push(f):u&&!r&&c.push(f)}if(i.length>0){let f=i.map(d=>` ${d}`).join(`
686
+ `:"";return await t?.hooks?.postRm?.({repo:s,removedPaths:h,cached:f}),{stdout:w,stderr:"",exitCode:0}}})}async function Qg(e,t,n,r){let o=await Z(e),s=new Map;if(o){let f=await j(e,o),l=await Ke(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 m=s.get(f)!==l.hash,u=!1;if(e.workTree){let h=S(e.workTree,f),p=!1;try{await mt(e.fs,h),p=!0}catch{p=!1}p&&(u=await Nn(e.fs,h)!==l.hash)}m&&u?i.push(f):m&&!r?a.push(f):u&&!r&&c.push(f)}if(i.length>0){let f=i.map(d=>` ${d}`).join(`
679
687
  `),l=i.length===1?"the following file has":"the following files have";return L(`error: ${l} staged content different from both the
680
688
  file and the HEAD:
681
689
  ${f}
@@ -688,87 +696,87 @@ ${f}
688
696
  `),l=c.length===1?"the following file has":"the following files have";return L(`error: ${l} local modifications:
689
697
  ${f}
690
698
  (use --cached to keep the file, or -f to force removal)
691
- `)}return null}oe();ie();wn();zs();ue();ve();var ga=new TextDecoder;function Ql(e,t){e.command("show",{description:"Show various types of objects",args:[z.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:Z.string().describe("Pretty-print format string"),pretty:Z.string().describe("Pretty-print format or preset name")},handler:async(n,r)=>{let o=await q(r.fs,r.cwd,t);if(M(o))return o;let s=o,a=n.object[0]??"HEAD",c=qs(a);if(c)return Fg(s,c.rev,c.path);if(a==="HEAD"){let p=await Qe(s);if(M(p))return p}let f=await pt(s,a,`bad object '${a}'`);if(M(f))return f;let l=await ye(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 m=n.format??n.pretty,u=null,h=null;if(m!==void 0){let p=Lo(m);u=p.formatStr,h=p.preset}switch(l.type){case"commit":{let p=await j(s,f);return{stdout:await ed(s,f,p,d,u,h),stderr:"",exitCode:0}}case"tag":{let p=await Cc(s,f);return{stdout:await Ug(s,p,d,u,h),stderr:"",exitCode:0}}case"tree":{let p=Gn(l.content);return{stdout:td(p),stderr:"",exitCode:0}}case"blob":return{stdout:ga.decode(l.content),stderr:"",exitCode:0}}}})}async function Fg(e,t,n){let r=await Ae(e,t);if(M(r))return r;let o=r.commit.tree,s=n.replace(/^\//,""),a=(await fe(e,o)).get(s);if(!a){let f=`path '${s}' does not exist in '${t}'`;if(e.workTree){let l=S(e.workTree,s);await e.fs.exists(l)&&(f=`path '${s}' exists on disk, but not in '${t}'`)}return I(f)}let c=await ye(e,a.hash);if(c.type==="blob")return{stdout:ga.decode(c.content),stderr:"",exitCode:0};if(c.type==="tree"){let f=Gn(c.content);return{stdout:td(f),stderr:"",exitCode:0}}return{stdout:ga.decode(c.content),stderr:"",exitCode:0}}async function ed(e,t,n,r="patch",o=null,s=null){let i;if(o!==null)i=Rs(o,{hash:t,commit:n});else if(s!==null)i=xs(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: ${Ft(n.author.timestamp,n.author.timezone)}`),c.push("");let f=n.message.replace(/\n$/,"");for(let l of f.split(`
699
+ `)}return null}ie();ce();sn();Vs();me();He();var ya=new TextDecoder;function md(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:V.string().describe("Pretty-print format string"),pretty:V.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=Ks(a);if(c)return ew(s,c.rev,c.path);if(a==="HEAD"){let p=await Qe(s);if(M(p))return p}let f=await wt(s,a,`bad object '${a}'`);if(M(f))return f;let l=await be(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 m=n.format??n.pretty,u=null,h=null;if(m!==void 0){let p=_o(m);u=p.formatStr,h=p.preset}switch(l.type){case"commit":{let p=await j(s,f);return{stdout:await hd(s,f,p,d,u,h),stderr:"",exitCode:0}}case"tag":{let p=await Ic(s,f);return{stdout:await tw(s,p,d,u,h),stderr:"",exitCode:0}}case"tree":{let p=_n(l.content);return{stdout:pd(p),stderr:"",exitCode:0}}case"blob":return{stdout:ya.decode(l.content),stderr:"",exitCode:0}}}})}async function ew(e,t,n){let r=await Me(e,t);if(M(r))return r;let o=r.commit.tree,s=n.replace(/^\//,""),a=(await le(e,o)).get(s);if(!a){let f=`path '${s}' does not exist in '${t}'`;if(e.workTree){let l=S(e.workTree,s);await e.fs.exists(l)&&(f=`path '${s}' exists on disk, but not in '${t}'`)}return I(f)}let c=await be(e,a.hash);if(c.type==="blob")return{stdout:ya.decode(c.content),stderr:"",exitCode:0};if(c.type==="tree"){let f=_n(c.content);return{stdout:pd(f),stderr:"",exitCode:0}}return{stdout:ya.decode(c.content),stderr:"",exitCode:0}}async function hd(e,t,n,r="patch",o=null,s=null){let i;if(o!==null)i=xs(o,{hash:t,commit:n});else if(s!==null)i=Cs(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: ${Cn(n.author.timestamp,n.author.timezone)}`),c.push("");let f=n.message.replace(/\n$/,"");for(let l of f.split(`
692
700
  `))c.push(` ${l}`);i=c.join(`
693
701
  `)}if(!r)return`${i}
694
- `;let a="";if(n.parents.length<=1){let c=n.parents.length===1?(await j(e,n.parents[0])).tree:null,f=await Ke(e,c,n.tree),{remaining:l,renames:d}=await ot(e,f);a=await Bg(e,l,d,r)}else r==="patch"&&(a=await Jg(e,n)??"");return a?`${i}
702
+ `;let a="";if(n.parents.length<=1){let c=n.parents.length===1?(await j(e,n.parents[0])).tree:null,f=await Ve(e,c,n.tree),{remaining:l,renames:d}=await it(e,f);a=await nw(e,l,d,r)}else r==="patch"&&(a=await dw(e,n)??"");return a?`${i}
695
703
 
696
704
  ${a.replace(/\n$/,"")}
697
705
  `:n.parents.length>=2?`${i}
698
706
 
699
707
  `:`${i}
700
- `}async function Ug(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: ${Ft(t.tagger.timestamp,t.tagger.timezone)}`),s.push("");let i=t.message.replace(/\n$/,"");for(let a of i.split(`
701
- `))s.push(` ${a}`);if(t.objectType==="commit"){let a=await j(e,t.object),c=await ed(e,t.object,a,n,r,o);s.push(""),s.push(c.replace(/\n$/,""))}return`${s.join(`
708
+ `}async function tw(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: ${Cn(t.tagger.timestamp,t.tagger.timezone)}`),s.push("");let i=t.message.replace(/\n$/,"");for(let a of i.split(`
709
+ `))s.push(` ${a}`);if(t.objectType==="commit"){let a=await j(e,t.object),c=await hd(e,t.object,a,n,r,o);s.push(""),s.push(c.replace(/\n$/,""))}return`${s.join(`
702
710
  `)}
703
- `}function td(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(`
711
+ `}function pd(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(`
704
712
  `)}
705
- `:""}async function Bg(e,t,n,r){switch(r){case"patch":return Zg(e,t,n);case"stat":return zg(e,t,n);case"shortstat":return Kg(e,t,n);case"numstat":return Vg(e,t,n);case"name-only":return Wg(t,n);case"name-status":return qg(t,n);default:return""}}function Wg(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(`
713
+ `:""}async function nw(e,t,n,r){switch(r){case"patch":return lw(e,t,n);case"stat":return ow(e,t,n);case"shortstat":return iw(e,t,n);case"numstat":return aw(e,t,n);case"name-only":return rw(t,n);case"name-status":return sw(t,n);default:return""}}function rw(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(`
706
714
  `)}
707
- `:""}function qg(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}
708
- `).join(""):""}async function zg(e,t,n){let{fileStats:r}=await Kn(e,t,n);return r.sort((o,s)=>o.sortKey<s.sortKey?-1:o.sortKey>s.sortKey?1:0),dr(r)}async function Kg(e,t,n){let{fileStats:r}=await Kn(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=zn(r.length,o,s);return i?`${i}
709
- `:""}async function Vg(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:fn(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 re(e,s.oldHash):"",a=s.newHash?await re(e,s.newHash):"";if($e(i)||$e(a))o+=`- - ${s.display}
710
- `;else{let c=Et(i),f=Et(a),l=at(c,f),d=0,m=0;for(let u of l)u.type==="insert"?d++:u.type==="delete"&&m++;o+=`${d} ${m} ${s.display}
711
- `}}return o}async function Yg(e,t){let n=t.oldHash?await re(e,t.oldHash):"",r=t.newHash?await re(e,t.newHash):"";return Ot({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash})}async function Xg(e,t){let n=t.oldHash?await re(e,t.oldHash):"",r=t.newHash?await re(e,t.newHash):"";return Ot({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 Zg(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 Xg(e,s.entry):o+=await Yg(e,s.entry);return o}async function Jg(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 fe(e,c.tree)})),r=await fe(e,t.tree),o=new Set;for(let a of n)for(let c of a.keys())o.add(c);for(let a of r.keys())o.add(a);let s=[];for(let a of o){let f=r.get(a)?.hash??null;n.every(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 Qg(e,a,n,r);return i}async function Qg(e,t,n,r){let o=r.get(t),s=n.map(m=>m.get(t)??null),i=o?.hash??null,a=o?.mode??null,c=s.map(m=>m?.hash??null),f=s.map(m=>m?.mode??null),l=await Promise.all(c.map(async m=>m?await re(e,m):"")),d=i?await re(e,i):"";return Ho({path:t,parentHashes:c,parentModes:f,parentContents:l,resultHash:i,resultMode:a,resultContent:d})}oe();Ce();ie();he();oe();On();Ce();ie();hn();ue();We();he();ve();an();st();var Zt="refs/stash";function ba(e,t){return Oe(e.replaceAll("/","\0"),t.replaceAll("/","\0"))}async function nd(e){let t=await et(e,Zt),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 jr(e,t){let n=await et(e,Zt);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 rd(e,t,n,r){if(!e.workTree)throw new Error("Cannot stash in a bare repository");let o=e.workTree,s=await J(e);if(!s)return null;let i=await j(e,s),a=await V(e),c=Me(a),f=await Ne(e,c),l=await Ke(e,i.tree,f),d=new Map(c.map(N=>[N.path,N])),m=await rt(e,o,"",{skipIgnore:!0}),u=!1;for(let N of m){let F=d.get(N);if(!F)continue;let K=S(o,N),de=await e.fs.readFileBuffer(K);if(await ht("blob",de)!==F.hash){u=!0;break}}if(!u)for(let[N]of d){let F=S(o,N);if(!await e.fs.exists(F)){u=!0;break}}let h=[];if(r?.includeUntracked){let N=await rt(e,o,"");for(let F of N)d.has(F)||h.push(F)}if(l.length===0&&!u&&h.length===0)return null;let p=await As(e,t),g=await Ur(e,t),w=await Q(e),y=w?.type==="symbolic"?xe(w.target):"(no branch)",x=Y(s),b=le(i.message),E=`index on ${y}: ${x} ${b}
712
- `,k=rn({type:"commit",tree:f,parents:[s],author:p,committer:g,message:E}),R=await Se(e,"commit",k),P=await fe(e,i.tree),C=[],H=new Set;for(let N of m){let F=d.get(N),K=P.get(N);if(!F&&!K)continue;let de=S(o,N),ke=await e.fs.readFileBuffer(de),He=await Se(e,"blob",ke),Fe=F?F.mode:parseInt(K?.mode??"100644",8);C.push({path:N,mode:Fe,hash:He,stage:0,stat:Ie()}),H.add(N)}for(let[N,F]of d)H.has(N)||P.has(N)||C.push({path:N,mode:F.mode,hash:F.hash,stage:0,stat:Ie()});let D=await Ne(e,C),O=null;if(r?.includeUntracked){let N=[];for(let ke of h){let He=S(o,ke),Fe=await e.fs.readFileBuffer(He),ae=await Se(e,"blob",Fe);N.push({path:ke,mode:33188,hash:ae,stage:0,stat:Ie()})}let F=await Ne(e,N),K=`untracked files on ${y}: ${x} ${b}
713
- `,de=rn({type:"commit",tree:F,parents:[],author:p,committer:g,message:K});O=await Se(e,"commit",de)}let A=n?`On ${y}: ${n}`:`WIP on ${y}: ${x} ${b}`,G=[s,R];O&&G.push(O);let v=rn({type:"commit",tree:D,parents:G,author:p,committer:g,message:A}),T=await Se(e,"commit",v),_=await jr(e,0)??te;await Ye(e,Zt,{oldHash:_,newHash:T,name:g.name,email:g.email,timestamp:g.timestamp,tz:g.timezone,message:A.trimEnd()}),await X(e,Zt,T);let B=await yn(e,i.tree,a);await ce(e,{version:2,entries:B.newEntries}),await Ge(e,B.worktreeOps),(await Q(e))?.type==="symbolic"&&await se(e,t,"HEAD",s,s,"reset: moving to HEAD");for(let N of["CHERRY_PICK_HEAD","MERGE_HEAD","ORIG_HEAD","REVERT_HEAD"])await me(e,N);for(let N of["MERGE_MSG","MERGE_MODE","SQUASH_MSG"]){let F=S(e.gitDir,N);await e.fs.exists(F)&&await e.fs.rm(F)}if(h.length>0)for(let N of h){if(P.has(N))continue;let F=S(o,N);await e.fs.exists(F)&&(await e.fs.rm(F),await rr(e.fs,Qt(F),o))}return T}async function wa(e,t){let n=e.workTree,r=await j(e,t),o=await qe(e,r.tree),s=[];for(let i of o){let a=S(n,i.path);await e.fs.exists(a)?s.push(i.path):await lt(e,i)}return s.length>0?(s.sort(ba),{ok:!1,stdout:"",stderr:`${s.map(i=>`${i} already exists, no checkout`).join(`
715
+ `:""}function sw(e,t){let n=[];for(let r of e){let o=r.status==="added"?"A":r.status==="deleted"?"D":"M";n.push({key:r.path,line:`${o} ${r.path}`})}for(let r of t){let o=String(r.similarity??100).padStart(3,"0");n.push({key:r.newPath,line:`R${o} ${r.oldPath} ${r.newPath}`})}return n.sort((r,o)=>r.key<o.key?-1:r.key>o.key?1:0),n.length>0?n.map(r=>`${r.line}
716
+ `).join(""):""}async function ow(e,t,n){let{fileStats:r}=await Zn(e,t,n);return r.sort((o,s)=>o.sortKey<s.sortKey?-1:o.sortKey>s.sortKey?1:0),hr(r)}async function iw(e,t,n){let{fileStats:r}=await Zn(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=Xn(r.length,o,s);return i?`${i}
717
+ `:""}async function aw(e,t,n){let r=[];for(let s of t)r.push({key:s.path,oldHash:s.oldHash,newHash:s.newHash,display:s.path});for(let s of n)r.push({key:s.newPath,oldHash:s.oldHash,newHash:s.newHash,display:dn(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(ve(i)||ve(a))o+=`- - ${s.display}
718
+ `;else{let c=Rt(i),f=Rt(a),l=ct(c,f),d=0,m=0;for(let u of l)u.type==="insert"?d++:u.type==="delete"&&m++;o+=`${d} ${m} ${s.display}
719
+ `}}return o}async function cw(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return It({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode,oldHash:t.oldHash,newHash:t.newHash})}async function fw(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return It({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 lw(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 fw(e,s.entry):o+=await cw(e,s.entry);return o}async function dw(e,t){if(t.parents.length<2)return"";let n=await Promise.all(t.parents.map(async a=>{let c=await j(e,a);return le(e,c.tree)})),r=await le(e,t.tree),o=new Set;for(let a of n)for(let c of a.keys())o.add(c);for(let a of r.keys())o.add(a);let s=[];for(let a of o){let f=r.get(a)?.hash??null;n.every(d=>(d.get(a)?.hash??null)!==f)&&s.push(a)}if(s.sort(),s.length===0)return"";let i="";for(let a of s)i+=await uw(e,a,n,r);return i}async function uw(e,t,n,r){let o=r.get(t),s=n.map(m=>m.get(t)??null),i=o?.hash??null,a=o?.mode??null,c=s.map(m=>m?.hash??null),f=s.map(m=>m?.mode??null),l=await Promise.all(c.map(async m=>m?await oe(e,m):"")),d=i?await oe(e,i):"";return Ao({path:t,parentHashes:c,parentModes:f,parentContents:l,resultHash:i,resultMode:a,resultContent:d})}ie();Ce();ce();ge();ie();vn();Ce();ce();gn();me();ze();ge();He();fn();tt();var Zt="refs/stash";function ka(e,t){return Ie(e.replaceAll("/","\0"),t.replaceAll("/","\0"))}async function gd(e){let t=await et(e,Zt),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 Nr(e,t){let n=await et(e,Zt);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 wd(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 z(e),c=Le(a),f=await Fe(e,c),l=await Ve(e,i.tree,f),d=new Map(c.map(N=>[N.path,N])),m=await ot(e,o,"",{skipIgnore:!0}),u=!1;for(let N of m){let K=d.get(N);if(!K)continue;let ne=S(o,N),J=await e.fs.readFileBuffer(ne);if(await pt("blob",J)!==K.hash){u=!0;break}}if(!u)for(let[N]of d){let K=S(o,N);if(!await e.fs.exists(K)){u=!0;break}}let h=[];if(r?.includeUntracked){let N=await ot(e,o,"");for(let K of N)d.has(K)||h.push(K)}if(l.length===0&&!u&&h.length===0)return null;let p=await Ds(e,t),g=await qr(e,t),w=await Q(e),b=w?.type==="symbolic"?Pe(w.target):"(no branch)",x=Y(s),y=ue(i.message),k=`index on ${b}: ${x} ${y}
720
+ `,E=rn({type:"commit",tree:f,parents:[s],author:p,committer:g,message:k}),R=await Ae(e,"commit",E),C=await le(e,i.tree),P=[],H=new Set;for(let N of m){let K=d.get(N),ne=C.get(N);if(!K&&!ne)continue;let J=S(o,N),re=await e.fs.readFileBuffer(J),ke=await Ae(e,"blob",re),je=K?K.mode:parseInt(ne?.mode??"100644",8);P.push({path:N,mode:je,hash:ke,stage:0,stat:Se()}),H.add(N)}for(let[N,K]of d)H.has(N)||C.has(N)||P.push({path:N,mode:K.mode,hash:K.hash,stage:0,stat:Se()});let D=await Fe(e,P),O=null;if(r?.includeUntracked){let N=[];for(let re of h){let ke=S(o,re),je=await e.fs.readFileBuffer(ke),ae=await Ae(e,"blob",je);N.push({path:re,mode:33188,hash:ae,stage:0,stat:Se()})}let K=await Fe(e,N),ne=`untracked files on ${b}: ${x} ${y}
721
+ `,J=rn({type:"commit",tree:K,parents:[],author:p,committer:g,message:ne});O=await Ae(e,"commit",J)}let A=n?`On ${b}: ${n}`:`WIP on ${b}: ${x} ${y}`,G=[s,R];O&&G.push(O);let v=rn({type:"commit",tree:D,parents:G,author:p,committer:g,message:A}),T=await Ae(e,"commit",v),F=await Nr(e,0)??te;await Ze(e,Zt,{oldHash:F,newHash:T,name:g.name,email:g.email,timestamp:g.timestamp,tz:g.timezone,message:A.trimEnd()}),await X(e,Zt,T);let _=await En(e,i.tree,a);await de(e,{version:2,entries:_.newEntries}),await Ne(e,_.worktreeOps),(await Q(e))?.type==="symbolic"&&await fe(e,t,"HEAD",s,s,"reset: moving to HEAD");for(let N of["CHERRY_PICK_HEAD","MERGE_HEAD","ORIG_HEAD","REVERT_HEAD"])await he(e,N);for(let N of["MERGE_MSG","MERGE_MODE","SQUASH_MSG"]){let K=S(e.gitDir,N);await e.fs.exists(K)&&await e.fs.rm(K)}if(h.length>0)for(let N of h){if(C.has(N))continue;let K=S(o,N);await e.fs.exists(K)&&(await e.fs.rm(K),await ir(e.fs,Qt(K),o))}return T}async function Ea(e,t){let n=e.workTree,r=await j(e,t),o=await Ke(e,r.tree),s=[];for(let i of o){let a=S(n,i.path);await e.fs.exists(a)?s.push(i.path):await dt(e,i)}return s.length>0?(s.sort(ka),{ok:!1,stdout:"",stderr:`${s.map(i=>`${i} already exists, no checkout`).join(`
714
722
  `)}
715
723
  error: could not restore untracked files from stash
716
- `,exitCode:1}):{ok:!0,hasConflicts:!1,messages:[]}}async function ya(e,t=0){if(!e.workTree)return{ok:!1,stdout:"",stderr:`fatal: this operation must be run in a work tree
717
- `,exitCode:128};let n=await jr(e,t);if(!n)return{ok:!1,stdout:"",stderr:`error: stash@{${t}} is not a valid reference
718
- `,exitCode:1};if(!await J(e))return{ok:!1,stdout:"",stderr:`error: your current branch does not have any commits yet
719
- `,exitCode:1};let o=await V(e),s=Wt(o).sort();if(s.length>0)return{ok:!1,stdout:`${s.map(P=>`${P}: needs merge`).join(`
724
+ `,exitCode:1}):{ok:!0,hasConflicts:!1,messages:[]}}async function Ra(e,t=0){if(!e.workTree)return{ok:!1,stdout:"",stderr:`fatal: this operation must be run in a work tree
725
+ `,exitCode:128};let n=await Nr(e,t);if(!n)return{ok:!1,stdout:"",stderr:`error: stash@{${t}} is not a valid reference
726
+ `,exitCode:1};if(!await Z(e))return{ok:!1,stdout:"",stderr:`error: your current branch does not have any commits yet
727
+ `,exitCode:1};let o=await z(e),s=Bt(o).sort();if(s.length>0)return{ok:!1,stdout:`${s.map(C=>`${C}: needs merge`).join(`
720
728
  `)}
721
729
  `,stderr:`error: could not write index
722
730
  `,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)
723
- `,exitCode:1};let c=await j(e,a),f=i.parents[2],l=Me(o),d=await Ne(e,l),m={a:"Updated upstream",b:"Stashed changes"};if(c.tree===i.tree){if(f){let R=await wa(e,f);if(!R.ok)return{...R,messages:["Already up to date."]}}return{ok:!0,hasConflicts:!1,messages:["Already up to date."]}}let u=await Bt(e,c.tree,d,i.tree,m),h=await fe(e,d),p=await fe(e,u.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=S(e.workTree,R.path);if(P){if(!await e.fs.exists(C))continue;let H=await e.fs.readFileBuffer(C);await ht("blob",H)!==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(ba),x.sort(ba);let R="";if(y.length>0&&(R+=`error: Your local changes to the following files would be overwritten by merge:
724
- ${y.map(P=>` ${P}`).join(`
731
+ `,exitCode:1};let c=await j(e,a),f=i.parents[2],l=Le(o),d=await Fe(e,l),m={a:"Updated upstream",b:"Stashed changes"};if(c.tree===i.tree){if(f){let R=await Ea(e,f);if(!R.ok)return{...R,messages:["Already up to date."]}}return{ok:!0,hasConflicts:!1,messages:["Already up to date."]}}let u=await Ut(e,c.tree,d,i.tree,m),h=await le(e,d),p=await le(e,u.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])),b=[],x=[];for(let R of g){let C=w.get(R.path),P=S(e.workTree,R.path);if(C){if(!await e.fs.exists(P))continue;let H=await e.fs.readFileBuffer(P);await pt("blob",H)!==C.hash&&b.push(R.path)}else R.type==="checkout"&&await e.fs.exists(P)&&x.push(R.path)}if(b.length>0||x.length>0){b.sort(ka),x.sort(ka);let R="";if(b.length>0&&(R+=`error: Your local changes to the following files would be overwritten by merge:
732
+ ${b.map(C=>` ${C}`).join(`
725
733
  `)}
726
734
  Please commit your changes or stash them before you merge.
727
735
  `),x.length>0&&(R+=`error: The following untracked working tree files would be overwritten by merge:
728
- ${x.map(P=>` ${P}`).join(`
736
+ ${x.map(C=>` ${C}`).join(`
729
737
  `)}
730
738
  Please move or remove them before you merge.
731
739
  `),R+=`Aborting
732
- `,f){let P=await wa(e,f);P.ok||(R+=P.stderr)}return{ok:!1,stdout:"",stderr:R,exitCode:1}}await Ge(e,g);let b=new Set(u.conflicts.map(R=>R.path)),E=new Set;for(let R of u.entries)R.stage>0&&E.add(R.path);let k=b.size>0;if(k){let R=[];for(let[P,C]of p){if(b.has(P)||E.has(P))continue;let H=w.get(P);R.push({path:P,mode:parseInt(C.mode,8),hash:C.hash,stage:0,stat:H?.stat??Ie()})}for(let P of u.entries)P.stage>0&&R.push(P);R.sort((P,C)=>Oe(P.path,C.path)||P.stage-C.stage),await ce(e,{version:2,entries:R})}else{let R=[...o.entries],P=new Set(R.map(C=>C.path));for(let[C,H]of p)h.has(C)||P.has(C)||R.push({path:C,mode:parseInt(H.mode,8),hash:H.hash,stage:0,stat:Ie()});R.sort((C,H)=>Oe(C.path,H.path)||C.stage-H.stage),await ce(e,{version:2,entries:R})}if(f){let R=await wa(e,f);if(!R.ok)return{...R,messages:u.messages}}return{ok:!0,hasConflicts:k,messages:u.messages}}async function Ea(e,t=0){let n=await et(e,Zt);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 me(e,Zt),await rs(e,Zt);else{await Mn(e,Zt,n);let o=n[n.length-1];o&&await X(e,Zt,o.newHash)}return null}async function sd(e){await me(e,Zt),await rs(e,Zt)}ve();function Fo(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 ew(e,t){let n=t.oldHash?await re(e,t.oldHash):"",r=t.newHash?await re(e,t.newHash):"";return Ot({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode})}async function Yn(e,t,n,r){return e?.hooks?.preStash?.({repo:t,action:n,ref:r})??null}async function Xn(e,t,n,r){await e?.hooks?.postStash?.({repo:t,action:n,ok:r})}function id(e,t){let n=e.command("stash",{description:"Stash the changes in a dirty working directory away",options:{message:Z.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 q(o.fs,o.cwd,t);if(M(s))return s;let i=await Yn(t,s,"push",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await od(s,o.env,r.message,r["include-untracked"]);return await Xn(t,s,"push",a.exitCode===0),a}});n.command("push",{description:"Save your local modifications to a new stash entry",options:{message:Z.string().alias("m").describe("Stash message"),"include-untracked":$().alias("u").describe("Also stash untracked files")},handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);if(M(s))return s;let i=await Yn(t,s,"push",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await od(s,o.env,r.message,r["include-untracked"]);return await Xn(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:[z.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);if(M(s))return s;let i=await Yn(t,s,"pop",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await tw(s,r.stash);return await Xn(t,s,"pop",a.exitCode===0),a}}),n.command("apply",{description:"Apply a stash entry on top of the current working tree",args:[z.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);if(M(s))return s;let i=await Yn(t,s,"apply",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await nw(s,r.stash);return await Xn(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 q(o.fs,o.cwd,t);if(M(s))return s;let i=await Yn(t,s,"list",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await rw(s);return await Xn(t,s,"list",a.exitCode===0),a}}),n.command("drop",{description:"Remove a single stash entry from the list of stash entries",args:[z.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);if(M(s))return s;let i=await Yn(t,s,"drop",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await sw(s,r.stash);return await Xn(t,s,"drop",a.exitCode===0),a}}),n.command("show",{description:"Show the changes recorded in a stash entry as a diff",options:{patch:$().alias("p").describe("Show full diff (default is --stat)")},args:[z.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);if(M(s))return s;let i=await Yn(t,s,"show",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await ow(s,r.stash,r.patch);return await Xn(t,s,"show",a.exitCode===0),a}}),n.command("clear",{description:"Remove all the stash entries",handler:async(r,o)=>{let s=await q(o.fs,o.cwd,t);if(M(s))return s;let i=await Yn(t,s,"clear",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await iw(s);return await Xn(t,s,"clear",a.exitCode===0),a}})}async function od(e,t,n,r){if(!await J(e))return L(`You do not have the initial commit yet
733
- `);let s=await V(e),i=Wt(s).sort();if(i.length>0)return{stdout:`${i.map(l=>`${l}: needs merge`).join(`
740
+ `,f){let C=await Ea(e,f);C.ok||(R+=C.stderr)}return{ok:!1,stdout:"",stderr:R,exitCode:1}}await Ne(e,g);let y=new Set(u.conflicts.map(R=>R.path)),k=new Set;for(let R of u.entries)R.stage>0&&k.add(R.path);let E=y.size>0;if(E){let R=[];for(let[C,P]of p){if(y.has(C)||k.has(C))continue;let H=w.get(C);R.push({path:C,mode:parseInt(P.mode,8),hash:P.hash,stage:0,stat:H?.stat??Se()})}for(let C of u.entries)C.stage>0&&R.push(C);R.sort((C,P)=>Ie(C.path,P.path)||C.stage-P.stage),await de(e,{version:2,entries:R})}else{let R=[...o.entries],C=new Set(R.map(P=>P.path));for(let[P,H]of p)h.has(P)||C.has(P)||R.push({path:P,mode:parseInt(H.mode,8),hash:H.hash,stage:0,stat:Se()});R.sort((P,H)=>Ie(P.path,H.path)||P.stage-H.stage),await de(e,{version:2,entries:R})}if(f){let R=await Ea(e,f);if(!R.ok)return{...R,messages:u.messages}}return{ok:!0,hasConflicts:E,messages:u.messages}}async function xa(e,t=0){let n=await et(e,Zt);if(n.length===0)return`error: stash@{${t}} is not a valid reference`;let r=n.length-1-t;if(r<0||r>=n.length)return`error: stash@{${t}} is not a valid reference`;if(n.splice(r,1),n.length===0)await he(e,Zt),await rs(e,Zt);else{await Ln(e,Zt,n);let o=n[n.length-1];o&&await X(e,Zt,o.newHash)}return null}async function bd(e){await he(e,Zt),await rs(e,Zt)}He();function Wo(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 mw(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return It({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode})}async function Qn(e,t,n,r){return e?.hooks?.preStash?.({repo:t,action:n,ref:r})??null}async function er(e,t,n,r){await e?.hooks?.postStash?.({repo:t,action:n,ok:r})}function Ed(e,t){let n=e.command("stash",{description:"Stash the changes in a dirty working directory away",options:{message:V.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 Qn(t,s,"push",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await yd(s,o.env,r.message,r["include-untracked"]);return await er(t,s,"push",a.exitCode===0),a}});n.command("push",{description:"Save your local modifications to a new stash entry",options:{message:V.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 Qn(t,s,"push",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await yd(s,o.env,r.message,r["include-untracked"]);return await er(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 Qn(t,s,"pop",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await hw(s,r.stash);return await er(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 Qn(t,s,"apply",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await pw(s,r.stash);return await er(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 Qn(t,s,"list",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await gw(s);return await er(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 Qn(t,s,"drop",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await ww(s,r.stash);return await er(t,s,"drop",a.exitCode===0),a}}),n.command("show",{description:"Show the changes recorded in a stash entry as a diff",options:{patch:$().alias("p").describe("Show full diff (default is --stat)")},args:[q.string().name("stash").describe("Stash reference (e.g. stash@{0})").optional()],handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=await Qn(t,s,"show",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await bw(s,r.stash,r.patch);return await er(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 Qn(t,s,"clear",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await yw(s);return await er(t,s,"clear",a.exitCode===0),a}})}async function yd(e,t,n,r){if(!await Z(e))return L(`You do not have the initial commit yet
741
+ `);let s=await z(e),i=Bt(s).sort();if(i.length>0)return{stdout:`${i.map(l=>`${l}: needs merge`).join(`
734
742
  `)}
735
743
  `,stderr:`error: could not write index
736
- `,exitCode:1};let a;try{a=await rd(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()}
744
+ `,exitCode:1};let a;try{a=await wd(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()}
737
745
  `,stderr:"",exitCode:0}:{stdout:`No local changes to save
738
- `,stderr:"",exitCode:0}}async function tw(e,t){let n=Fo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await jr(e,n);if(!r)return L(`error: stash@{${n}} is not a valid reference`);let o=await ya(e,n);if(!o.ok){let f=o.messages?.length?`${o.messages.join(`
746
+ `,stderr:"",exitCode:0}}async function hw(e,t){let n=Wo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await Nr(e,n);if(!r)return L(`error: stash@{${n}} is not a valid reference`);let o=await Ra(e,n);if(!o.ok){let f=o.messages?.length?`${o.messages.join(`
739
747
  `)}
740
748
  `:"";if(o.stdout)return{stdout:`${f}${o.stdout}The stash entry is kept in case you need it again.
741
- `,stderr:o.stderr,exitCode:o.exitCode};let l=await it(e);return{stdout:`${f}${l}The stash entry is kept in case you need it again.
749
+ `,stderr:o.stderr,exitCode:o.exitCode};let l=await at(e);return{stdout:`${f}${l}The stash entry is kept in case you need it again.
742
750
  `,stderr:o.stderr,exitCode:o.exitCode}}if(o.hasConflicts){let f=o.messages.length>0?`${o.messages.join(`
743
751
  `)}
744
- `:"",l=await it(e);return{stdout:`${f}${l}The stash entry is kept in case you need it again.
745
- `,stderr:"",exitCode:1}}let s=await Ea(e,n);if(s)return L(s);let i=o.messages.length>0?`${o.messages.join(`
752
+ `:"",l=await at(e);return{stdout:`${f}${l}The stash entry is kept in case you need it again.
753
+ `,stderr:"",exitCode:1}}let s=await xa(e,n);if(s)return L(s);let i=o.messages.length>0?`${o.messages.join(`
746
754
  `)}
747
- `:"",a=t?`stash@{${n}}`:`refs/stash@{${n}}`,c=await it(e);return{stdout:`${i}${c}Dropped ${a} (${r})
748
- `,stderr:"",exitCode:0}}async function nw(e,t){let n=Fo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await ya(e,n);if(!r.ok){let a=r.messages?.length?`${r.messages.join(`
755
+ `:"",a=t?`stash@{${n}}`:`refs/stash@{${n}}`,c=await at(e);return{stdout:`${i}${c}Dropped ${a} (${r})
756
+ `,stderr:"",exitCode:0}}async function pw(e,t){let n=Wo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await Ra(e,n);if(!r.ok){let a=r.messages?.length?`${r.messages.join(`
749
757
  `)}
750
- `:"",c=r.stdout;return c||(c=await it(e)),{stdout:`${a}${c}`,stderr:r.stderr,exitCode:r.exitCode}}let o=r.messages.length>0?`${r.messages.join(`
758
+ `:"",c=r.stdout;return c||(c=await at(e)),{stdout:`${a}${c}`,stderr:r.stderr,exitCode:r.exitCode}}let o=r.messages.length>0?`${r.messages.join(`
751
759
  `)}
752
- `:"",s=await it(e),i=r.hasConflicts?1:0;return{stdout:`${o}${s}`,stderr:"",exitCode:i}}async function rw(e){let t=await nd(e);return t.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${t.map(r=>`stash@{${r.index}}: ${r.message}`).join(`
760
+ `:"",s=await at(e),i=r.hasConflicts?1:0;return{stdout:`${o}${s}`,stderr:"",exitCode:i}}async function gw(e){let t=await gd(e);return t.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${t.map(r=>`stash@{${r.index}}: ${r.message}`).join(`
753
761
  `)}
754
- `,stderr:"",exitCode:0}}async function sw(e,t){let n=Fo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await jr(e,n);if(!r)return L(`error: stash@{${n}} is not a valid reference`);let o=await Ea(e,n);return o?L(o):{stdout:`Dropped ${t?`stash@{${n}}`:`refs/stash@{${n}}`} (${r})
755
- `,stderr:"",exitCode:0}}async function ow(e,t,n){let r=Fo(t);if(r<0)return L(`error: '${t}' is not a valid stash reference`);let o=await jr(e,r);if(!o)return L(`error: stash@{${r}} is not a valid reference`);let s=await j(e,o),i=s.parents[0];if(!i)return L("error: invalid stash commit (no parent)");let a=await j(e,i);if(n){let f=await Ke(e,a.tree,s.tree),l="";for(let d of f)l+=await ew(e,d);return{stdout:l,stderr:"",exitCode:0}}return{stdout:await dn(e,a.tree,s.tree),stderr:"",exitCode:0}}async function iw(e){return await sd(e),{stdout:"",stderr:"",exitCode:0}}oe();Ce();he();st();function ad(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 q(r.fs,r.cwd,t);if(M(o))return o;let s=o;if(!n.short&&!n.porcelain)return{stdout:await it(s),stderr:"",exitCode:0};let i=await Q(s),a=await J(s),c;i&&i.type==="symbolic"?c=xe(i.target):c="HEAD detached";let f=await V(s),l=Mi(f),d=await Di(s,a,f,l),m=await At(s,f),u=[],h=[];for(let y of m)y.status==="untracked"?h.push(y.path):u.push({path:y.path,status:y.status});u.sort((y,x)=>Oe(y.path,x.path));let p=new Set(f.entries.map(y=>y.path)),g=ji(h,p);return{stdout:lw(c,d,u,l,g,n.branch),stderr:"",exitCode:0}}})}var aw={"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 cw(e){switch(e){case"new file":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";default:return" "}}function fw(e){switch(e){case"modified":return"M";case"deleted":return"D";default:return" "}}function lw(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(m=>[m.path,m])),c=new Map(t.map(m=>[m.path,m])),f=new Map(n.map(m=>[m.path,m])),l=new Set;for(let m of r)l.add(m.path);for(let m of t)l.add(m.path);for(let m of n)l.add(m.path);let d=[...l].sort();for(let m of d){let u=a.get(m);if(u){let y=aw[u.status]??"UU";i.push(`${y} ${Cs(m)}`);continue}let h=c.get(m),p=f.get(m),g=h?cw(h.status):" ",w=p?fw(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} ${Cs(x)} -> ${Cs(b)}`)}else i.push(`${g}${w} ${Cs(m)}`)}for(let m of o)i.push(`?? ${Cs(m)}`);return i.length===0?"":`${i.join(`
762
+ `,stderr:"",exitCode:0}}async function ww(e,t){let n=Wo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await Nr(e,n);if(!r)return L(`error: stash@{${n}} is not a valid reference`);let o=await xa(e,n);return o?L(o):{stdout:`Dropped ${t?`stash@{${n}}`:`refs/stash@{${n}}`} (${r})
763
+ `,stderr:"",exitCode:0}}async function bw(e,t,n){let r=Wo(t);if(r<0)return L(`error: '${t}' is not a valid stash reference`);let o=await Nr(e,r);if(!o)return L(`error: stash@{${r}} is not a valid reference`);let s=await j(e,o),i=s.parents[0];if(!i)return L("error: invalid stash commit (no parent)");let a=await j(e,i);if(n){let f=await Ve(e,a.tree,s.tree),l="";for(let d of f)l+=await mw(e,d);return{stdout:l,stderr:"",exitCode:0}}return{stdout:await mn(e,a.tree,s.tree),stderr:"",exitCode:0}}async function yw(e){return await bd(e),{stdout:"",stderr:"",exitCode:0}}ie();Ce();ge();tt();function kd(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 at(s),stderr:"",exitCode:0};let i=await Q(s),a=await Z(s),c;i&&i.type==="symbolic"?c=Pe(i.target):c="HEAD detached";let f=await z(s),l=Ni(f),d=await Li(s,a,f,l),m=await gt(s,f),u=[],h=[];for(let b of m)b.status==="untracked"?h.push(b.path):u.push({path:b.path,status:b.status});u.sort((b,x)=>Ie(b.path,x.path));let p=new Set(f.entries.map(b=>b.path)),g=_i(h,p);return{stdout:xw(c,d,u,l,g,n.branch),stderr:"",exitCode:0}}})}var Ew={"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 kw(e){switch(e){case"new file":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";default:return" "}}function Rw(e){switch(e){case"modified":return"M";case"deleted":return"D";default:return" "}}function xw(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(m=>[m.path,m])),c=new Map(t.map(m=>[m.path,m])),f=new Map(n.map(m=>[m.path,m])),l=new Set;for(let m of r)l.add(m.path);for(let m of t)l.add(m.path);for(let m of n)l.add(m.path);let d=[...l].sort();for(let m of d){let u=a.get(m);if(u){let b=Ew[u.status]??"UU";i.push(`${b} ${Ps(m)}`);continue}let h=c.get(m),p=f.get(m),g=h?kw(h.status):" ",w=p?Rw(p.status):" ";if(h?.status==="renamed"&&h.displayPath){let b=h.displayPath.indexOf(" -> "),x=h.displayPath.slice(0,b),y=h.displayPath.slice(b+4);i.push(`${g}${w} ${Ps(x)} -> ${Ps(y)}`)}else i.push(`${g}${w} ${Ps(m)}`)}for(let m of o)i.push(`?? ${Ps(m)}`);return i.length===0?"":`${i.join(`
756
764
  `)}
757
- `}function Cs(e){return!/[ \t"\\]/.test(e)&&!/[^\x20-\x7E]/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}"`}oe();Be();Ce();ie();We();he();ve();an();function dw(e,t){return e?.type==="symbolic"?e.target.replace(/^refs\/heads\//,""):t??te}function fd(e,t){e.command("switch",{description:"Switch branches",args:[z.string().name("branch-or-start-point").describe("Branch to switch to, or start-point for -c/-C").optional()],options:{create:Z.string().alias("c").describe("Create and switch to a new branch"),forceCreate:Z.string().alias("C").describe("Create/reset and switch to a branch"),detach:$().alias("d").describe("Detach HEAD at named commit"),orphan:Z.string().describe("Create a new orphan branch"),guess:$().default(!0).describe("Guess branch from remote tracking")},handler:async(n,r,o)=>{let s=await q(r.fs,r.cwd,t);if(M(s))return s;let i=s,a=n["branch-or-start-point"];if(n.orphan)return n.create||n.forceCreate?I("--orphan and -c/-C are incompatible"):n.detach?I("--orphan and --detach are incompatible"):hw(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 Ae(i,l,`invalid reference: ${l}`);return M(d)?d:mw(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 cd(i,l,!!n.forceCreate,d,r.env,t)}if(!a)return I("missing branch or commit argument");if(a==="-")return uw(i,r.env,t);let c=`refs/heads/${a}`,f=await U(i,c);if(f)return ld(i,a,c,f,r.env,t);if(n.guess!==!1){let l=await go(i,a);if(l)return cd(i,a,!1,l.startPoint,r.env,t,l.trackingRef)}return I(`invalid reference: ${a}`)}})}async function Ps(e){return await Pe(e,"CHERRY_PICK_HEAD")?I(`cannot switch branch while cherry-picking
758
- Consider "git cherry-pick --quit" or "git worktree add".`):await Pe(e,"MERGE_HEAD")?I(`cannot switch branch while merging
759
- Consider "git merge --quit" or "git worktree add".`):await Pe(e,"REVERT_HEAD")?I(`cannot switch branch while reverting
765
+ `}function Ps(e){return!/[ \t"\\]/.test(e)&&!/[^\x20-\x7E]/.test(e)?e:`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\t/g,"\\t").replace(/\n/g,"\\n")}"`}ie();qe();Ce();ce();ze();ge();He();fn();function Cw(e,t){return e?.type==="symbolic"?e.target.replace(/^refs\/heads\//,""):t??te}function xd(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:V.string().alias("c").describe("Create and switch to a new branch"),forceCreate:V.string().alias("C").describe("Create/reset and switch to a branch"),detach:$().alias("d").describe("Detach HEAD at named commit"),orphan:V.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"):Ow(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 Me(i,l,`invalid reference: ${l}`);return M(d)?d:$w(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 Rd(i,l,!!n.forceCreate,d,r.env,t)}if(!a)return I("missing branch or commit argument");if(a==="-")return Pw(i,r.env,t);let c=`refs/heads/${a}`,f=await B(i,c);if(f)return Cd(i,a,c,f,r.env,t);if(n.guess!==!1){let l=await wo(i,a);if(l)return Rd(i,a,!1,l.startPoint,r.env,t,l.trackingRef)}return I(`invalid reference: ${a}`)}})}async function $s(e){return await Oe(e,"CHERRY_PICK_HEAD")?I(`cannot switch branch while cherry-picking
766
+ Consider "git cherry-pick --quit" or "git worktree add".`):await Oe(e,"MERGE_HEAD")?I(`cannot switch branch while merging
767
+ Consider "git merge --quit" or "git worktree add".`):await Oe(e,"REVERT_HEAD")?I(`cannot switch branch while reverting
760
768
  Consider "git revert --quit" or "git worktree add".`):await Nt(e)?I(`cannot switch branch while rebasing
761
- Consider "git rebase --quit" or "git worktree add".`):null}async function uw(e,t,n){let r=await Ps(e);if(r)return r;let o=await lo(e);return o?ld(e,o.name,o.refName,o.hash,t,n):I("no previous branch")}async function cd(e,t,n,r,o,s,i){if(!gn(t))return I(`'${t}' is not a valid branch name`);let a=`refs/heads/${t}`,c=await U(e,a);if(c&&!n)return I(`a branch named '${t}' already exists`);let f;if(r){let C=await Ae(e,r,`invalid reference: ${r}`);if(M(C))return C;f=C.hash}else{let C=await J(e);if(!C){let H=await Q(e),D=H?.type==="symbolic"?H.target.replace(/^refs\/heads\//,""):"";n&&c&&await me(e,a),await Ve(e,"HEAD",a),await wt(e);let O=await Rn(e);return await se(e,o,"HEAD",null,te,`checkout: moving from ${D} to ${t}`),{stdout:"",stderr:`Switched to a new branch '${t}'
762
- ${O}`,exitCode:0}}f=C}let l=await Ps(e);if(l)return l;let d=await J(e),m=await V(e);if(r){let C=Fn(m);if(C)return C}let u=await j(e,f);if(d&&d!==f){let C=await j(e,d);if(C.tree!==u.tree){let H=await Ln(e,C.tree,u.tree,m);if(!H.success)return H.errorOutput??L("error: checkout would overwrite local changes");m={version:2,entries:H.newEntries},await ce(e,m),await Ge(e,H.worktreeOps)}}let h=await Q(e),p="";h?.type==="direct"&&d&&(p=await ho(e,d,f));let g=dw(h,d);await X(e,a,f),await Ve(e,"HEAD",a),await wt(e);let w=await Rn(e),y=r??"HEAD";n&&c?c!==f&&await se(e,o,a,c,f,`branch: Reset to ${y}`):await se(e,o,a,null,f,`branch: Created from ${y}`),await se(e,o,"HEAD",d,f,`checkout: moving from ${g} to ${t}`);let x="";if(i){let C=i.replace(/^refs\/remotes\//,"").split("/"),H=C[0]??"",D=`refs/heads/${C.slice(1).join("/")}`,O=await pe(e);O[`branch "${t}"`]={...O[`branch "${t}"`],remote:H,merge:D},await Ze(e,O),x=`branch '${t}' set up to track '${H}/${C.slice(1).join("/")}'.
763
- `}else r&&(x=await po(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}'
769
+ Consider "git rebase --quit" or "git worktree add".`):null}async function Pw(e,t,n){let r=await $s(e);if(r)return r;let o=await uo(e);return o?Cd(e,o.name,o.refName,o.hash,t,n):I("no previous branch")}async function Rd(e,t,n,r,o,s,i){if(!wn(t))return I(`'${t}' is not a valid branch name`);let a=`refs/heads/${t}`,c=await B(e,a);if(c&&!n)return I(`a branch named '${t}' already exists`);let f;if(r){let P=await Me(e,r,`invalid reference: ${r}`);if(M(P))return P;f=P.hash}else{let P=await Z(e);if(!P){let H=await Q(e),D=H?.type==="symbolic"?H.target.replace(/^refs\/heads\//,""):"";n&&c&&await he(e,a),await Xe(e,"HEAD",a),await yt(e);let O=await xn(e);return await fe(e,o,"HEAD",null,te,`checkout: moving from ${D} to ${t}`),{stdout:"",stderr:`Switched to a new branch '${t}'
770
+ ${O}`,exitCode:0}}f=P}let l=await $s(e);if(l)return l;let d=await Z(e),m=await z(e);if(r){let P=qn(m);if(P)return P}let u=await j(e,f);if(d&&d!==f){let P=await j(e,d);if(P.tree!==u.tree){let H=await Fn(e,P.tree,u.tree,m);if(!H.success)return H.errorOutput??L("error: checkout would overwrite local changes");m={version:2,entries:H.newEntries},await de(e,m),await Ne(e,H.worktreeOps)}}let h=await Q(e),p="";h?.type==="direct"&&d&&(p=await po(e,d,f));let g=Cw(h,d);await X(e,a,f),await Xe(e,"HEAD",a),await yt(e);let w=await xn(e),b=r??"HEAD";n&&c?c!==f&&await fe(e,o,a,c,f,`branch: Reset to ${b}`):await fe(e,o,a,null,f,`branch: Created from ${b}`),await fe(e,o,"HEAD",d,f,`checkout: moving from ${g} to ${t}`);let x="";if(i){let P=i.replace(/^refs\/remotes\//,"").split("/"),H=P[0]??"",D=`refs/heads/${P.slice(1).join("/")}`,O=await we(e);O[`branch "${t}"`]={...O[`branch "${t}"`],remote:H,merge:D},await Je(e,O),x=`branch '${t}' set up to track '${H}/${P.slice(1).join("/")}'.
771
+ `}else r&&(x=await go(e,t,r));await s?.hooks?.postCheckout?.({repo:e,prevHead:d,newHead:f,isBranchCheckout:!0});let y=n&&c?`Switched to and reset branch '${t}'
764
772
  `:`Switched to a new branch '${t}'
765
- `,E=p+b+w+x,k="";r&&(k=await fr(e,u.tree,m));let R=await pe(e),P=await kn(e,R,t);return P&&(k+=cr(P)),{stdout:k,stderr:E,exitCode:0}}async function ld(e,t,n,r,o,s){let i=await Ps(e);return i||lr(e,t,n,r,o,s)}async function mw(e,t,n,r,o){let s=await Ps(e);return s||Un(e,n,r,o)}async function hw(e,t,n,r){if(!gn(t))return I(`'${t}' is not a valid branch name`);let o=await Ps(e);if(o)return o;let s=`refs/heads/${t}`;if(await U(e,s))return I(`a branch named '${t}' already exists`);let a=await V(e),c=Fn(a);if(c)return c;let f=await J(e),l=await Q(e),d="";if(l?.type==="direct"&&f&&(d=await Gi(e,f)),e.workTree){let u=f?(await j(e,f)).tree:null,h=await Ne(e,[]),p=await Ln(e,u,h,a);if(!p.success)return p.errorOutput??L("error: checkout would overwrite local changes");await Ge(e,p.worktreeOps),await ce(e,{version:2,entries:p.newEntries})}else await ce(e,qa());await Ve(e,"HEAD",s),await wt(e);let m=await Rn(e);return await r?.hooks?.postCheckout?.({repo:e,prevHead:f,newHead:te,isBranchCheckout:!0}),{stdout:"",stderr:`${d}Switched to a new branch '${t}'
766
- ${m}`,exitCode:0}}oe();ie();Qr();he();Ks();function ud(e,t){e.command("tag",{description:"Create, list, or delete tags",args:[z.string().name("name").describe("Tag name to create or delete").optional(),z.string().name("commit").describe("Commit to tag (defaults to HEAD)").optional()],options:{annotate:$().alias("a").describe("Make an annotated tag object"),message:Z.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 q(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 U(s,i);return a?(await me(s,i),{stdout:`Deleted tag '${n.name}' (was ${Y(a)})
773
+ `,k=p+y+w+x,E="";r&&(E=await ur(e,u.tree,m));let R=await we(e),C=await Rn(e,R,t);return C&&(E+=dr(C)),{stdout:E,stderr:k,exitCode:0}}async function Cd(e,t,n,r,o,s){let i=await $s(e);return i||mr(e,t,n,r,o,s)}async function $w(e,t,n,r,o){let s=await $s(e);return s||zn(e,n,r,o)}async function Ow(e,t,n,r){if(!wn(t))return I(`'${t}' is not a valid branch name`);let o=await $s(e);if(o)return o;let s=`refs/heads/${t}`;if(await B(e,s))return I(`a branch named '${t}' already exists`);let a=await z(e),c=qn(a);if(c)return c;let f=await Z(e),l=await Q(e),d="";if(l?.type==="direct"&&f&&(d=await Fi(e,f)),e.workTree){let u=f?(await j(e,f)).tree:null,h=await Fe(e,[]),p=await Fn(e,u,h,a);if(!p.success)return p.errorOutput??L("error: checkout would overwrite local changes");await Ne(e,p.worktreeOps),await de(e,{version:2,entries:p.newEntries})}else await de(e,Va());await Xe(e,"HEAD",s),await yt(e);let m=await xn(e);return await r?.hooks?.postCheckout?.({repo:e,prevHead:f,newHead:te,isBranchCheckout:!0}),{stdout:"",stderr:`${d}Switched to a new branch '${t}'
774
+ ${m}`,exitCode:0}}ie();ce();$r();ge();is();function $d(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:V.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 B(s,i);return a?(await he(s,i),{stdout:`Deleted tag '${n.name}' (was ${Y(a)})
767
775
  `,stderr:"",exitCode:0}):L(`error: tag '${n.name}' not found.
768
- `)}if(n.list)return dd(s,n.name||void 0);if(n.name){if(!$c(n.name))return I(`'${n.name}' is not a valid tag name`);let i=n.commit,a;if(i){let d=await pt(s,i,`Failed to resolve '${i}' as a valid ref.`);if(M(d))return d;a=d}else if(a=await J(s),!a)return I("Failed to resolve 'HEAD' as a valid ref.");let c=`refs/tags/${n.name}`;if(await U(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 tt(s,r.env);if(M(d))return d;let m=Mt(n.message),u=Rc({type:"tag",object:a,objectType:"commit",name:n.name,tagger:d,message:m}),h=await Se(s,"tag",u);await X(s,c,h)}else await X(s,c,a);return{stdout:"",stderr:"",exitCode:0}}return dd(s)}})}async function dd(e,t){let n=await we(e,"refs/tags");if(n.length===0)return{stdout:"",stderr:"",exitCode:0};let r=n.map(o=>o.name.replace("refs/tags/",""));return t&&(r=r.filter(o=>tr(t,o,0)===0)),r.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${r.join(`
776
+ `)}if(n.list)return Pd(s,n.name||void 0);if(n.name){if(!vc(n.name))return I(`'${n.name}' is not a valid tag name`);let i=n.commit,a;if(i){let d=await wt(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 B(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 nt(s,r.env);if(M(d))return d;let m=Mt(n.message),u=$c({type:"tag",object:a,objectType:"commit",name:n.name,tagger:d,message:m}),h=await Ae(s,"tag",u);await X(s,c,h)}else await X(s,c,a);return{stdout:"",stderr:"",exitCode:0}}return Pd(s)}})}async function Pd(e,t){let n=await pe(e,"refs/tags");if(n.length===0)return{stdout:"",stderr:"",exitCode:0};let r=n.map(o=>o.name.replace("refs/tags/",""));return t&&(r=r.filter(o=>on(t,o,0)===0)),r.length===0?{stdout:"",stderr:"",exitCode:0}:{stdout:`${r.join(`
769
777
  `)}
770
- `,stderr:"",exitCode:0}}var md=new Set(["am","annotate","apply","archive","bugreport","bundle","cat-file","check-ignore","check-mailmap","check-ref-format","checkout-index","cherry","commit-tree","count-objects","credential","daemon","describe","diff-files","diff-index","diff-tree","difftool","fast-export","fast-import","filter-branch","for-each-ref","format-patch","fsck","hash-object","instaweb","interpret-trailers","log--hierarchical","ls-remote","ls-tree","maintenance","merge-base","merge-tree","mergetool","multi-pack-index","name-rev","notes","pack-objects","pack-refs","patch-id","prune","range-diff","read-tree","receive-pack","replace","request-pull","rerere","rev-list","send-email","send-pack","shortlog","show-branch","show-ref","sparse-checkout","stash--helper","stripspace","submodule","symbolic-ref","unpack-objects","update-index","update-ref","upload-pack","var","verify-commit","verify-pack","verify-tag","whatchanged","worktree","write-tree"]),pw={init:e=>Sl(e),clone:(e,t)=>il(e,t),fetch:(e,t)=>Rl(e,t),pull:(e,t)=>Ul(e,t),push:(e,t)=>Bl(e,t),add:(e,t)=>zc(e,t),blame:(e,t)=>Of(e,t),commit:(e,t)=>al(e,t),status:(e,t)=>ad(e,t),log:(e,t)=>Al(e,t),branch:(e,t)=>Sf(e,t),tag:(e,t)=>ud(e,t),checkout:(e,t)=>Tf(e,t),diff:(e,t)=>wl(e,t),reset:(e,t)=>Kl(e,t),merge:(e,t)=>jl(e,t),"cherry-pick":(e,t)=>qf(e,t),revert:(e,t)=>Zl(e,t),rebase:(e,t)=>Fl(e,t),mv:(e,t)=>Gl(e,t),rm:(e,t)=>Jl(e,t),remote:(e,t)=>ql(e,t),config:(e,t)=>dl(e,t),show:(e,t)=>Ql(e,t),stash:(e,t)=>id(e,t),"rev-parse":(e,t)=>Xl(e,t),"ls-files":(e,t)=>Ml(e,t),clean:(e,t)=>zf(e,t),switch:(e,t)=>fd(e,t),restore:(e,t)=>Yl(e,t),reflog:(e,t)=>Wl(e,t),repack:(e,t)=>Pl(e,t),gc:(e,t)=>$l(e,t),bisect:(e,t)=>mf(e,t),grep:(e,t)=>Il(e,t)};function hd(e){let t=Ko("git",{description:"Git command"});for(let n of Object.values(pw))n(t,e);return t.command("help",{description:"Display help information",args:[z.string().name("command").describe("Command to get help for").optional()],handler:async n=>{let r=n.command;if(!r)return{stdout:br(t),stderr:"",exitCode:0};let o=t.children.get(r);return o?{stdout:br(o),stderr:"",exitCode:0}:{stdout:"",stderr:`git: no help available for '${r}'
771
- `,exitCode:1}}}),t}var gw="1.2.12";function ww(e,t){if(!e)return t;let n=e.locked?"locked":"defaults",r={"user.name":e.name,"user.email":e.email};return t?{...t,[n]:{...r,...t[n]}}:{[n]:r}}var Uo=class{name="git";defaultFs;defaultCwd;blocked;hooks;inner;locks=new WeakMap;async withLock(t,n){let r=this.locks.get(t)??Promise.resolve(),o,s=new Promise(i=>{o=i});this.locks.set(t,s),await r;try{return await n()}finally{o()}}constructor(t){this.defaultFs=t?.fs,this.defaultCwd=t?.cwd??"/",this.hooks=t?.hooks,this.blocked=t?.disabled?.length?new Set(t.disabled):null;let n=t?.network,r=ww(t?.identity,t?.config),o={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}:{},...r?{configOverrides:r}:{}};this.inner=hd(o).toCommand()}exec=async(t,n)=>{let r=n?.fs??this.defaultFs;if(!r)throw new Error("No filesystem: pass `fs` in exec() options or in createGit()");let o=n?.cwd??this.defaultCwd,s=bw(t),i=new Map;if(n?.env)for(let[a,c]of Object.entries(n.env))i.set(a,c);return this.execute(s,{fs:r,cwd:o,env:i,stdin:n?.stdin??""})};execute=(t,n)=>this.withLock(n.fs,async()=>{let r=t[0]??"";if(r==="--version"||r==="version")return{stdout:`just-git version ${gw} (virtual git implementation)
778
+ `,stderr:"",exitCode:0}}var Od=new Set(["am","annotate","apply","archive","bugreport","bundle","cat-file","check-ignore","check-mailmap","check-ref-format","checkout-index","cherry","commit-tree","count-objects","credential","daemon","diff-files","diff-index","diff-tree","difftool","fast-export","fast-import","filter-branch","for-each-ref","format-patch","fsck","hash-object","instaweb","interpret-trailers","log--hierarchical","ls-remote","ls-tree","maintenance","merge-base","merge-tree","mergetool","multi-pack-index","name-rev","notes","pack-objects","pack-refs","patch-id","prune","range-diff","read-tree","receive-pack","replace","request-pull","rerere","rev-list","send-email","send-pack","shortlog","show-branch","show-ref","sparse-checkout","stash--helper","stripspace","submodule","symbolic-ref","unpack-objects","update-index","update-ref","upload-pack","var","verify-commit","verify-pack","verify-tag","whatchanged","worktree","write-tree"]),Iw={init:(e,t)=>Gl(e,t),clone:(e,t)=>ll(e,t),describe:(e,t)=>ul(e,t),fetch:(e,t)=>Il(e,t),pull:(e,t)=>nd(e,t),push:(e,t)=>rd(e,t),add:(e,t)=>Xc(e,t),blame:(e,t)=>Tf(e,t),commit:(e,t)=>ml(e,t),status:(e,t)=>kd(e,t),log:(e,t)=>Kl(e,t),branch:(e,t)=>Af(e,t),tag:(e,t)=>$d(e,t),checkout:(e,t)=>Mf(e,t),diff:(e,t)=>xl(e,t),reset:(e,t)=>ad(e,t),merge:(e,t)=>Xl(e,t),"cherry-pick":(e,t)=>Yf(e,t),revert:(e,t)=>dd(e,t),rebase:(e,t)=>td(e,t),mv:(e,t)=>Zl(e,t),rm:(e,t)=>ud(e,t),remote:(e,t)=>od(e,t),config:(e,t)=>wl(e,t),show:(e,t)=>md(e,t),stash:(e,t)=>Ed(e,t),"rev-parse":(e,t)=>ld(e,t),"ls-files":(e,t)=>Yl(e,t),clean:(e,t)=>Xf(e,t),switch:(e,t)=>xd(e,t),restore:(e,t)=>fd(e,t),reflog:(e,t)=>sd(e,t),repack:(e,t)=>Tl(e,t),gc:(e,t)=>Hl(e,t),bisect:(e,t)=>wf(e,t),grep:(e,t)=>jl(e,t)};function Id(e){let t=Xo("git",{description:"Git command"});for(let n of Object.values(Iw))n(t,e);return t.command("help",{description:"Display help information",args:[q.string().name("command").describe("Command to get help for").optional()],handler:async n=>{let r=n.command;if(!r)return{stdout:Er(t),stderr:"",exitCode:0};let o=t.children.get(r);return o?{stdout:Er(o),stderr:"",exitCode:0}:{stdout:"",stderr:`git: no help available for '${r}'
779
+ `,exitCode:1}}}),t}var Sw="1.3.0";function vw(e,t){if(!e)return t;let n=e.locked?"locked":"defaults",r={"user.name":e.name,"user.email":e.email};return t?{...t,[n]:{...r,...t[n]}}:{[n]:r}}var qo=class{name="git";defaultFs;defaultCwd;blocked;hooks;inner;locks=new WeakMap;async withLock(t,n){let r=this.locks.get(t)??Promise.resolve(),o,s=new Promise(i=>{o=i});this.locks.set(t,s),await r;try{return await n()}finally{o()}}constructor(t){this.defaultFs=t?.fs,this.defaultCwd=t?.cwd??"/",this.hooks=t?.hooks,this.blocked=t?.disabled?.length?new Set(t.disabled):null;let n=t?.network,r=vw(t?.identity,t?.config),o={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?.gitDir?{gitDir:t.gitDir,workTree:this.defaultCwd}:{},...r?{configOverrides:r}:{}};this.inner=Id(o).toCommand()}exec=async(t,n)=>{let r=n?.fs??this.defaultFs;if(!r)throw new Error("No filesystem: pass `fs` in exec() options or in createGit()");let o=n?.cwd??this.defaultCwd,s=Tw(t),i=new Map;if(n?.env)for(let[a,c]of Object.entries(n.env))i.set(a,c);return this.execute(s,{fs:r,cwd:o,env:i,stdin:n?.stdin??""})};execute=(t,n)=>this.withLock(n.fs,async()=>{let r=t[0]??"";if(r==="--version"||r==="version")return{stdout:`just-git version ${Sw} (virtual git implementation)
772
780
  `,stderr:"",exitCode:0};if(this.blocked?.has(r))return{stdout:"",stderr:`git: '${r}' is not available in this environment
773
- `,exitCode:1};if(r&&md.has(r))return{stdout:"",stderr:`git: '${r}' is not implemented. Run 'git help' for available commands.
774
- `,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 bw(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 yw(e){return new Uo(e)}var pd=new TextEncoder,Ew=new TextDecoder;function un(e){let t=[];for(let n of e.split("/"))n==="."||n===""||(n===".."?t.pop():t.push(n));return"/"+t.join("/")}function Bo(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var ka=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=un(n);this.ensureParents(o),this.data.set(o,{type:"file",content:typeof r=="string"?pd.encode(r):r,mode:33188,mtime:new Date})}}ensureParents(t){let n=Bo(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 un(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("/")?un(a):un(Bo(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=un(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("/")?un(f):un(Bo(o)+"/"+f),a=this.data.get(o),c++}}return`${o}/${r[r.length-1]}`}async readFile(t){return Ew.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"?pd.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=un(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=Bo(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=un(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=un(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})}};Dn();export{Uo as Git,ka as MemoryFileSystem,bh as composeGitHooks,yw as createGit,Qn as findRepo,ee as isRejection};
781
+ `,exitCode:1};if(r&&Od.has(r))return{stdout:"",stderr:`git: '${r}' is not implemented. Run 'git help' for available commands.
782
+ `,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 Tw(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 Hw(e){return new qo(e)}var Sd=new TextEncoder,Aw=new TextDecoder;function hn(e){let t=[];for(let n of e.split("/"))n==="."||n===""||(n===".."?t.pop():t.push(n));return"/"+t.join("/")}function zo(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var Ca=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=hn(n);this.ensureParents(o),this.data.set(o,{type:"file",content:typeof r=="string"?Sd.encode(r):r,mode:33188,mtime:new Date})}}ensureParents(t){let n=zo(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 hn(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("/")?hn(a):hn(zo(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=hn(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("/")?hn(f):hn(zo(o)+"/"+f),a=this.data.get(o),c++}}return`${o}/${r[r.length-1]}`}async readFile(t){return Aw.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"?Sd.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=hn(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=zo(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=hn(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=hn(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})}};Gn();export{qo as Git,Ca as MemoryFileSystem,Th as composeGitHooks,Hw as createGit,rr as findRepo,ee as isRejection};