just-git 1.2.13 → 1.3.1

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 Od=Object.defineProperty;var Os=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Re=(e,t)=>()=>(e&&(t=e(e=0)),t);var Sd=(e,t)=>{for(var n in t)Od(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 I(...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 Jt(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 rt(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 me=Re(()=>{"use strict"});function Xo(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 ja(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 Ad(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=Xo(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}=ja(l,r,o);a[f]=d,o+=m}continue}o++}return t}function Zo(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=Xo(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}=ja(l,r,o);f in a?a[f].push(d):a[f]=[d],o+=m}continue}o++}return t}function Jo(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 Qo(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} = ${Jo(s)}`)}return`${t.join(`
6
- `)}
7
- `}function ei(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=Xo(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 Dd(e,t,n,r){let o=e.split(`
8
- `),s=ei(o,t,n),i=` ${n} = ${Jo(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 Md(e,t,n){let r=e.split(`
10
- `),o=ei(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 ge(e){let t=I(e.gitDir,"config");if(!await e.fs.exists(t))return{};let n=await e.fs.readFile(t);return Ad(n)}async function Hs(e){let t=I(e.gitDir,"config");return await e.fs.exists(t)?e.fs.readFile(t):""}async function Ze(e,t){let n=I(e.gitDir,"config");await e.fs.writeFile(n,Qo(t))}async function xe(e,t){let n=e.configOverrides,r=n?.locked?.[t];if(r!==void 0)return r;let o=await ge(e),{section:s,key:i}=Fr(t),a=o[s]?.[i];return a!==void 0?a:n?.defaults?.[t]}async function ti(e,t,n){let r=await Hs(e),{section:o,key:s}=Fr(t),i=Dd(r,o,s,n),a=I(e.gitDir,"config");await e.fs.writeFile(a,i)}async function Ga(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=Zo(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 jd(e,t,n,r){let o=e.split(`
12
- `),s=ei(o,t,n),i=` ${n} = ${Jo(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 La(e,t,n){let r=await Hs(e),{section:o,key:s}=Fr(t),i=jd(r,o,s,n),a=I(e.gitDir,"config");await e.fs.writeFile(a,i)}async function Na(e,t){let n=await Hs(e),{section:r,key:o}=Fr(t),s=Md(n,r,o);if(!s.found)return!1;let i=I(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 We=Re(()=>{"use strict";me()});function As(e,t){return _a(e,t,"author")}function Ur(e,t){return _a(e,t,"committer")}async function _a(e,t,n){let r=Gd[n],o=e.identityOverride,{timestamp:s,timezone:i}=Ld(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
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 Qt(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 Ld(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:Nd(n)}}function Nd(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 Gd,Sn=Re(()=>{"use strict";We();Gd={author:{name:"GIT_AUTHOR_NAME",email:"GIT_AUTHOR_EMAIL",date:"GIT_AUTHOR_DATE"},committer:{name:"GIT_COMMITTER_NAME",email:"GIT_COMMITTER_EMAIL",date:"GIT_COMMITTER_DATE"}}});function In(e){let t="";for(let n=0;n<20;n++)t+=Fa[e[n]];return t}function Br(e,t){let n="";for(let r=0;r<20;r++)n+=Fa[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,Fa,ht=Re(()=>{"use strict";te="0000000000000000000000000000000000000000",Fa=(()=>{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 Ua(e){return e.length===4&&e.toLowerCase()===".git"}function Jn(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===".."||Ua(n))return!1;return!0}function Ds(e,t){return t===e?!1:e==="/"?t.startsWith("/")&&t.length>1:t.startsWith(e+"/")}function Ba(e){if(e.length===0||e.charCodeAt(0)===47)return!1;let t=e.split("/");for(let n of t)if(n===".."||Ua(n))return!1;return!0}var Ms=Re(()=>{"use strict"});function ni(e){return typeof e=="string"?_d.encode(e):e}function Fd(){if(typeof globalThis.Bun<"u")return()=>{let e=new Bun.CryptoHasher("sha1"),t={update(n){return e.update(ni(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(ni(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(ni(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 Tn(e){return Wa().update(e).hex()}var _d,Wa,vn,Qn=Re(()=>{"use strict";ht();_d=new TextEncoder;Wa=Fd(),vn=Wa});async function z(e){let t=I(e.gitDir,"index");if(!await e.fs.exists(t))return{version:ri,entries:[]};let n=await e.fs.readFileBuffer(t);return Ud(n)}async function le(e,t){let n=I(e.gitDir,"index"),r=await Bd(t);await e.fs.writeFile(n,r)}function xt(e,t){if(!Jn(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(si),{...e,entries:n}}function lt(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 Bt(e){return[...new Set(e.entries.filter(t=>t.stage>0).map(t=>t.path))]}function Ge(e){return e.entries.filter(t=>t.stage===0)}function za(){return{version:ri,entries:[]}}function Gs(e){let t=[...e].sort(si);return{version:ri,entries:t}}function Ie(){return{ctimeSeconds:0,ctimeNanoseconds:0,mtimeSeconds:0,mtimeNanoseconds:0,dev:0,ino:0,uid:0,gid:0,size:0}}function Ud(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=0,r=t.getUint32(n);if(n+=4,r!==qa)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 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 Bd(e){let t=new TextEncoder,n=[...e.entries].sort(si),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,qa),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),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 Tn(f),d=Tt(l);return i.set(d,c),i}function si(e,t){return e.path<t.path?-1:e.path>t.path?1:e.stage-t.stage}var qa,ri,$e=Re(()=>{"use strict";ht();Ms();me();Qn();qa=1145655875,ri=2});var Wd,Ls,Ka=Re(()=>{"use strict";Wd=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(!Wd.has(n.type))return;let r=n.content.byteLength;if(!(r>this.maxBytes/2)&&!this.map.has(t)){for(;this.currentBytes+r>this.maxBytes&&this.map.size>0;){let o=this.map.keys().next().value;this.currentBytes-=this.map.get(o).content.byteLength,this.map.delete(o)}this.map.set(t,n),this.currentBytes+=r}}get size(){return this.map.size}get bytes(){return this.currentBytes}clear(){this.map.clear(),this.currentBytes=0}}});function oi(e){let t=4294967295;for(let n=0;n<e.byteLength;n++)t=Va[(t^e[n])&255]^t>>>8;return(t^4294967295)>>>0}var Va,Ya=Re(()=>{"use strict";Va=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;Va[e]=t}});function sc(e){let t=rc(e);return nc(e.subarray(t,-4),{i:2})}function fi(e){let t=rc(e),n={i:2},r=nc(e.subarray(t),n),o=tc(n.p);return{result:r,bytesConsumed:t+o+4}}var qt,yr,qd,Xa,Za,zd,Ja,Qa,Kd,ci,Wr,qr,ec,Vd,Yd,ii,Wt,ai,tc,Xd,en,nc,rc,oc=Re(()=>{"use strict";qt=Uint8Array,yr=Uint16Array,qd=Int32Array,Xa=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]),Za=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]),Ja=(e,t)=>{let n=new yr(31);for(let o=0;o<31;++o)n[o]=t+=1<<e[o-1];let r=new qd(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:Qa}=Ja(Xa,2);Qa[28]=258;({b:Kd}=Ja(Za,0)),ci=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,ci[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[ci[d]>>c]=f}}else for(a=new yr(r),o=0;o<r;++o)e[o]&&(a[o]=ci[i[e[o]-1]++]>>15-e[o]);return a},qr=new qt(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;ec=new qt(32);for(let e=0;e<32;++e)ec[e]=5;Vd=Wr(qr,9,1),Yd=Wr(ec,5,1),ii=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},ai=(e,t)=>{let n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},tc=e=>(e+7)/8|0,Xd=(e,t,n)=>((t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new qt(e.subarray(t,n))),en=(e,t)=>{let n=["unexpected EOF","invalid block type","invalid length/literal","invalid distance"];throw new Error(t||n[e]||"unknown inflate error")},nc=(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 E=Wt(e,d+1,3);if(d+=3,E)if(E==1)u=Vd,h=Yd,p=9,g=5;else if(E==2){let k=Wt(e,d,31)+257,R=Wt(e,d+10,15)+4,C=k+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=ii(H),O=(1<<D)-1,A=Wr(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,k),v=P.subarray(k);p=ii(G),g=ii(v),u=Wr(G,p,1),h=Wr(v,g,1)}else en(1);else{let k=tc(d)+4,R=e[k-4]|e[k-3]<<8,C=k+R;if(C>o){c&&en(0);break}a&&f(m+R),n.set(e.subarray(k,C),m),t.b=m+=R,t.p=d=C*8,t.f=l;continue}if(d>w){c&&en(0);break}}a&&f(m+131072);let b=(1<<p)-1,x=(1<<g)-1,y=d;for(;;y=d){let E=u[ai(e,d)&b],k=E>>4;if(d+=E&15,d>w){c&&en(0);break}if(E||en(2),k<256)n[m++]=k;else if(k==256){y=d,u=null;break}else{let R=k-254;if(k>264){let O=k-257,A=Xa[O];R=Wt(e,d,(1<<A)-1)+Qa[O],d+=A}let C=h[ai(e,d)&x],P=C>>4;C||en(3),d+=C&15;let H=Kd[P];if(P>3){let O=Za[P];H+=ai(e,d)&(1<<O)-1,d+=O}if(d>w){c&&en(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&&en(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?Xd(n,0,m):n.subarray(0,m)},rc=e=>(((e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31)&&en(0,"invalid zlib data"),e[1]&32&&en(0,"zlib dictionaries are not supported"),2)});async function Zd(){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??fi}}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:sc,inflateWithConsumed:fi}}function li(){return Jd??=Zd()}async function zr(e){return await(await li()).deflateSync(e)}async function Er(e){return await(await li()).inflateSync(e)}async function ic(e,t){let n=await li(),{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 Jd,Ns=Re(()=>{"use strict";oc();Jd=null});async function pc(e,t){let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=n.getUint32(0);if(r!==ui)throw new Error(`Invalid pack signature: 0x${r.toString(16)} (expected 0x${ui.toString(16)})`);let o=n.getUint32(4);if(o!==lc)throw new Error(`Unsupported pack version: ${o}`);if(e.byteLength>=32){let f=Br(e,e.byteLength-20),l=vn();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 tu(e,a);i.push(l),a=l.nextOffset}return(await nu(i,t)).map((f,l)=>({...f,offset:i[l].headerOffset,nextOffset:i[l].nextOffset}))}async function tu(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===mi&&(c=Br(e,t),t+=20);let{result:f,bytesConsumed:l}=await ic(e.subarray(t),s);return{headerOffset:n,typeNum:o,inflated:f,baseOffset:a,baseHash:c,nextOffset:t+l}}async function nu(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>ac)throw new Error(`delta chain depth ${i} exceeds limit of ${ac}`);let a=r[s];if(a)return a;let c=e[s];if(c.typeNum!==Kr&&c.typeNum!==mi){let u=Qd[c.typeNum];if(!u)throw new Error(`Unknown object type: ${c.typeNum}`);let h={type:u,content:c.inflated,hash:await di(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 di(h.type,p)};return r[s]=g,g}let f=await ru(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 di(l.type,d)};return r[s]=m,m}for(let s=0;s<e.length;s++)await o(s);return r}async function ru(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!==mi&&(await r(o)).hash===n)return o}}function Vr(e,t){let n=0,{value:r,newPos:o}=fc(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}=fc(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,ui),o.setUint32(4,lc),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=cc(Kr,a.delta.byteLength),d=ou(s-f),m=await zr(a.delta);t.push(l,d,m),s+=l.byteLength+d.byteLength+m.byteLength}else{let l=eu[a.type],d=cc(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 su(t),entries:i}}async function su(e){let t=0;for(let i of e)t+=i.byteLength;t+=20;let n=new Uint8Array(t),r=0;for(let i of e)n.set(i,r),r+=i.byteLength;let o=vn();o.update(n.subarray(0,r));let s=await o.hex();return n.set(Tt(s),r),n}function ou(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 cc(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 fc(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 di(e,t){let n=iu.encode(`${e} ${t.byteLength}\0`),r=vn();return r.update(n),r.update(t),r.hex()}var ui,lc,dc,uc,mc,hc,Kr,mi,Qd,eu,ac,iu,Yr=Re(()=>{"use strict";ht();Qn();Ns();ui=1346454347,lc=2,dc=1,uc=2,mc=3,hc=4,Kr=6,mi=7,Qd={[dc]:"commit",[uc]:"tree",[mc]:"blob",[hc]:"tag"},eu={commit:dc,tree:uc,blob:mc,tag:hc};ac=50;iu=new TextEncoder});async function bc(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,gc),c+=4,a.setUint32(c,wc),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=vn();d.update(i.subarray(0,c));let m=await d.hex();return i.set(Tt(m),c),i}async function yc(e){let n=(await pc(e)).map(o=>({hash:o.hash,offset:o.offset,crc:oi(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return bc(n,r)}async function Ec(e,t){let n=t.map(o=>({hash:o.hash,offset:o.offset,crc:oi(e.subarray(o.offset,o.nextOffset))})),r=e.subarray(e.byteLength-20);return bc(n,r)}var gc,wc,zt,Fs=Re(()=>{"use strict";ht();Qn();Ya();Yr();gc=4285812579,wc=2,zt=class{fanout;hashes;offsets;largeOffsets;count;constructor(t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(n.getUint32(0)!==gc)throw new Error("Invalid pack index: bad magic");if(n.getUint32(4)!==wc)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 au,cu,fu,kc,Xr,Rc=Re(()=>{"use strict";ht();Fs();Yr();Ns();au=6,cu=7,fu={1:"commit",2:"tree",3:"blob",4:"tag"},kc=50,Xr=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>kc)throw new Error(`delta chain depth ${n} exceeds limit of ${kc}`);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===au){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===cu){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=fu[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 pi(e,t){let n=lu.encode(`${e} ${t.byteLength}\0`),r=new Uint8Array(n.byteLength+t.byteLength);return r.set(n),r.set(t,n.byteLength),r}function uu(e,t){let n=t.indexOf(0);if(n===-1)throw new Error(`Corrupt object ${e}: no null byte in header`);let r=du.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 hi(e,t){return I(e,"objects",t.slice(0,2),t.slice(2))}var lu,du,kr,gi=Re(()=>{"use strict";ht();Ka();Fs();Rc();Ns();me();Qn();lu=new TextEncoder,du=new TextDecoder;kr=class{constructor(t,n,r){this.fs=t;this.gitDir=n;this.cache=new Ls(r),this.packDir=I(n,"objects","pack")}packs=[];loadedPackNames=new Set;discoverPromise=null;cache;packDir;async write(t,n){let r=pi(t,n),o=await Tn(r),s=hi(this.gitDir,o);if(await this.fs.exists(s))return o;let i=I(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=hi(this.gitDir,t);if(await this.fs.exists(r)){let o=await this.fs.readFileBuffer(r),s=await Er(o),i=await Tn(s);if(i!==t)throw new Error(`corrupt loose object ${t}: SHA-1 mismatch (computed ${i})`);let a=uu(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(hi(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 Tn(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=I(this.packDir,`${f}.pack`);await this.fs.writeFile(l,t);let d=await yc(t),m=I(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 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=I(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=I(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=I(this.packDir,`${r}.pack`);if(!await this.fs.exists(o))continue;let s=await this.fs.readFileBuffer(I(this.packDir,n));this.loadedPackNames.add(r),this.packs.push({name:r,index:new zt(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 wi=Re(()=>{"use strict"});function tn(e){let t=hu.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 nn(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),mu.encode(t.join(`
25
- `))}var mu,hu,mn=Re(()=>{"use strict";wi();mu=new TextEncoder,hu=new TextDecoder});function hn(e){let t=gu.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 xc(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),pu.encode(t.join(`
29
- `))}var pu,gu,Qr=Re(()=>{"use strict";wi();pu=new TextEncoder,gu=new TextDecoder});async function pt(e,t){return Tn(pi(e,t))}async function Te(e,t,n){let r=await e.objectStore.write(t,n);return e.hooks?.onObjectWrite?.({repo:e,type:t,hash:r}),r}async function Ee(e,t){return e.objectStore.read(t)}async function Kt(e,t){return e.objectStore.exists(t)}async function Us(e,t){return e.objectStore.ingestPack(t)}async function Cc(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 Hn(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 Ee(e,t);if(n.type!=="blob")throw new Error(`Expected blob for ${t}, got ${n.type}`);return wu.decode(n.content)}async function Ct(e,t){let n=await Ee(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 Ee(e,t);if(n.type!=="commit")throw new Error(`Expected commit object for ${t}, got ${n.type}`);return tn(n.content)}async function Pc(e,t){let n=await Ee(e,t);if(n.type!=="tag")throw new Error(`Expected tag object for ${t}, got ${n.type}`);return hn(n.content)}async function Le(e,t){let n=t;for(let r=0;r<100;r++){let o=await Ee(e,n);if(o.type==="commit")return n;if(o.type==="tag"){n=hn(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 wu,fe=Re(()=>{"use strict";gi();mn();Qr();Qn();wu=new TextDecoder});function $c(e){return typeof e=="string"?{type:"direct",hash:e}:e}var es,bi=Re(()=>{"use strict";es={REGULAR:"100644",EXECUTABLE:"100755",SYMLINK:"120000",DIRECTORY:"040000",SUBMODULE:"160000"}});function yu(e,t,n){let r=0,o=!1,s=t;for(;s<e.length;s++){let a=e.charCodeAt(s);switch(a<128?bu[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>=yi.length&&e.slice(s-yi.length,s)===yi?{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}=yu(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 pn(e){return!e||e.startsWith("-")?!1:ts(`refs/heads/${e}`,0)}function Oc(e){return e?ts(`refs/tags/${e}`,0):!1}async function Ic(e,t){return e.refStore.readRef(t)}async function B(e,t){let n=t;for(let r=0;r<Sc;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 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 Ye(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 be(e,t="refs"){return e.refStore.listRefs(t)}function Ce(e){return e.replace("refs/heads/","")}async function Dn(e,t){let n=await Q(e);n&&n.type==="symbolic"?await X(e,n.target,t):await X(e,"HEAD",t)}async function vc(e){if(e.refStore&&!(e.refStore instanceof An))return;let t=await be(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 Ee(e,o.hash);if(s.type==="tag"){let i=hn(s.content).object;for(let a=0;a<100;a++){let c=await Ee(e,i);if(c.type!=="tag")break;i=hn(c.content).object}n.push(`^${i}`)}}catch{}await e.fs.writeFile(I(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=I(e.gitDir,o.name);await e.fs.exists(s)&&await e.fs.rm(s)}await Tc(e,I(e.gitDir,"refs"));let r=I(e.gitDir,"refs");await e.fs.mkdir(r,{recursive:!0}),await e.fs.mkdir(I(r,"heads"),{recursive:!0}),await e.fs.mkdir(I(r,"tags"),{recursive:!0})}async function Tc(e,t){if(e.refStore&&!(e.refStore instanceof An)||!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 Tc(e,I(t,s));(await e.fs.readdir(t)).length===0&&await e.fs.rm(t,{recursive:!0})}var yi,bu,Ei,Sc,An,pe=Re(()=>{"use strict";fe();Qr();me();qe();Mn();bi();yi=".lock",bu=[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];Ei="ref: ",Sc=10,An=class{constructor(t,n){this.fs=t;this.gitDir=n}casLocks=new Map;async readRef(t){let n=I(this.gitDir,t);if(await this.fs.exists(n)){let s=(await this.fs.readFile(n)).trim();return s.startsWith(Ei)?{type:"symbolic",target:s.slice(Ei.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=$c(n),o=I(this.gitDir,t);await ns(this.fs,o),r.type==="symbolic"?await this.fs.writeFile(o,`${Ei}${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=I(this.gitDir,t);await this.fs.exists(n)&&await this.fs.rm(n),await this.removePackedRef(t)}async listRefs(t="refs"){let n=[],r=I(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<Sc;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=I(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
- `)){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=I(this.gitDir,"packed-refs");if(!await this.fs.exists(n))return;let o=(await this.fs.readFile(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
+ `)){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=I(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 er(e,t){let n=t;for(;;){let r=I(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 An(e,r)};if(await Eu(e,n))return{fs:e,gitDir:n,workTree:null,objectStore:new kr(e,n),refStore:new An(e,n)};let o=ku(n);if(o===n)return null;n=o}}async function Eu(e,t){let n=I(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=I(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:I(t,".git"),i=r?null:t,a=I(s,"HEAD"),c=await e.exists(a);await e.mkdir(I(s,"objects"),{recursive:!0}),await e.mkdir(I(s,"refs","heads"),{recursive:!0}),await e.mkdir(I(s,"refs","tags"),{recursive:!0});let f={fs:e,gitDir:s,workTree:i,objectStore:new kr(e,s),refStore:new An(e,s)};if(!c){await Ye(f,"HEAD",`refs/heads/${o}`);let l={core:{repositoryformatversion:"0",filemode:"true",bare:r?"true":"false",...r?{}:{logallrefupdates:"true"}}};await e.writeFile(I(s,"config"),Qo(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 ku(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var Mn=Re(()=>{"use strict";We();gi();me();pe()});function Ws(e,t){return I(e.gitDir,"logs",t)}function Ru(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=Ru(s);i&&o.push(i)}return o}function Hc(e){return`${e.oldHash} ${e.newHash} ${e.name} <${e.email}> ${e.timestamp} ${e.tz} ${e.message}`}async function jn(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(Hc).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 Xe(e,t,n){let r=Ws(e,t);await ns(e.fs,r);let o=`${Hc(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 ae(e,t,n,r,o,s,i=!1){let a=await Qt(e,t),c={oldHash:r??te,newHash:o,...a,message:s};await Xe(e,n,c),i&&n!=="HEAD"&&await Xe(e,"HEAD",c)}var qe=Re(()=>{"use strict";ht();Sn();me();Mn();ht()});function xu(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 Cu(e,t){let n=await Cc(e,t);if(n.length===0)return null;if(n.length>1)throw new ki(t);return n[0]}async function Pu(e,t){if(t==="HEAD"||t==="@")return B(e,"HEAD");if(Ac.includes(t))return B(e,t);if(/^[0-9a-f]{40}$/.test(t))return await Kt(e,t)?t:null;if(/^[0-9a-f]{4,39}$/.test(t)){let s=await Cu(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 $u(e){if(e==="HEAD"||e==="@")return"HEAD";for(let t of Ac)if(e===t)return t;return e.startsWith("refs/")?e:`refs/heads/${e}`}async function Ou(e,t,n){let r=$u(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 Su(e,t,n){if(n===""||n==="commit")try{return await Le(e,t)}catch{return null}if(n==="tree"){let o;try{o=await Le(e,t)}catch{return null}return(await j(e,o)).tree}return(await Ee(e,t)).type!==n?null:t}async function Ke(e,t){let{base:n,reflogIndex:r,suffixes:o}=xu(t),s;if(r!==void 0?s=await Ou(e,n,r):s=await Pu(e,n),!s)return null;o.some(a=>a.type==="tilde"||a.type==="caret")&&(s=await Le(e,s));for(let a of o)if(a.type==="peel"){if(!s)return null;s=await Su(e,s,a.target)}else if(a.type==="tilde")for(let c=0;c<a.n;c++){if(!s)return null;let f=await j(e,s);if(f.parents.length===0||(s=f.parents[0]??null,!s))return null}else{if(a.n===0)continue;if(!s)return null;let c=await j(e,s);if(a.n>c.parents.length||(s=c.parents[a.n-1]??null,!s))return null}return s}function qs(e){let t=e.indexOf(":");return t<0?null:{rev:e.slice(0,t)||"HEAD",path:e.slice(t+1)}}var Ac,ki,gn=Re(()=>{"use strict";fe();qe();pe();Ac=["HEAD","FETCH_HEAD","ORIG_HEAD","MERGE_HEAD","CHERRY_PICK_HEAD","REBASE_HEAD"];ki=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 wn(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 Iu.encode(r)}return e.readFileBuffer(t)}async function Gn(e,t){let n=await ss(e,t);return pt("blob",n)}var Iu,tr=Re(()=>{"use strict";fe();Iu=new TextEncoder});function Hu(e){return e.length===4&&e.toLowerCase()===".git"}function Au(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(Hu(e))throw new Error(`invalid tree entry: '${e}'`);if(!Tu.has(t))throw new Error(`invalid tree entry mode: '${t}' for '${e}'`)}function Ln(e){let t=[],n=0;for(;n<e.byteLength;){let r=e.indexOf(32,n);if(r===-1)break;let o=Dc.decode(e.subarray(n,r)),s=e.indexOf(0,r+1);if(s===-1)break;let i=Dc.decode(e.subarray(r+1,s)),a=e.subarray(s+1,s+21),c=In(a),f=o.padStart(6,"0");Au(i,f),t.push({mode:f,name:i,hash:c}),n=s+21}return{type:"tree",entries:t}}function Mc(e){let t=[];for(let s of e.entries){let i=s.mode.replace(/^0+/,""),a=vu.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 vu,Dc,Tu,zs=Re(()=>{"use strict";ht();vu=new TextEncoder,Dc=new TextDecoder,Tu=new Set(["100644","100755","040000","120000","160000"])});async function Fe(e,t){return jc(e,t,"")}async function jc(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:Du(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 jc(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=Mc({type:"tree",entries:r});return Te(e,"tree",s)}async function ze(e,t,n=""){let r=await Ee(e,t);if(r.type!=="tree")throw new Error(`Expected tree object, got ${r.type}`);let o=Ln(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 ze(e,i.hash,a);s.push(...c)}else s.push({path:a,mode:i.mode,hash:i.hash})}return s}async function de(e,t){if(!t)return new Map;let n=await ze(e,t);return new Map(n.map(r=>[r.path,r]))}async function Ve(e,t,n){let r=await de(e,t),o=await de(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)=>Se(i.path,a.path))}function Du(e){return e.toString(8).padStart(6,"0")}var He=Re(()=>{"use strict";ce();fe();zs();bi()});function Gc(e){return/^[a-zA-Z0-9]$/.test(e)}function Mu(e){return/^[a-zA-Z]$/.test(e)}function ju(e){return e>="0"&&e<="9"}function Ri(e){return e>="A"&&e<="Z"}function xi(e){return e>="a"&&e<="z"}function Lc(e){return/^\s$/.test(e)}function Gu(e){return e===" "||e===" "}function Pi(e){let t=e.charCodeAt(0);return t>=32&&t<=126}function Lu(e){return Pi(e)&&!Lc(e)}function Nu(e){return Pi(e)&&!Gc(e)&&e!==" "}function _u(e){let t=e.charCodeAt(0);return t<32||t===127}function Fu(e){return/^[0-9a-fA-F]$/.test(e)}function os(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e===t}function Ci(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]==="/"&&Ci(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(!Uu(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=Ci(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(xi(c)){let g=c.toUpperCase();g>=h&&g<=p&&(l=!0)}else if(Ri(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);Bu(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 Uu(e){return e==="*"||e==="?"||e==="["||e==="\\"}function Bu(e,t,n){switch(e){case"alnum":return Gc(t);case"alpha":return Mu(t);case"blank":return Gu(t);case"cntrl":return _u(t);case"digit":return ju(t);case"graph":return Lu(t);case"lower":return xi(t)||n&&Ri(t);case"print":return Pi(t);case"punct":return Nu(t);case"space":return Lc(t);case"upper":return Ri(t)||n&&xi(t);case"xdigit":return Fu(t);default:return!1}}function nr(e,t,n=0){return Ci(e,0,t,0,n)===0?0:1}var Ks=Re(()=>{"use strict"});function Uc(e){for(let t=0;t<e.length;t++){let n=e[t];if(n==="\\"){t++;continue}if(n==="*"||n==="?"||n==="[")return t}return e.length}function Wu(e){return Uc(e)===e.length}function qu(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|=Fc);let i=!1;for(let c=0;c<s;c++)if(o[c]==="/"){i=!0;break}i||(r|=Nc);let a=Math.min(Uc(o),s);return o[0]==="*"&&Wu(o.slice(1))&&(r|=_c),{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=qu(o,t);s&&r.push(s)}return{patterns:r,src:n}}function zu(e,t){let{pattern:n,patternLen:r,nowildcardLen:o,flags:s}=t;if(o===r)return e===n;if(s&_c){let i=n.slice(1);return e.length>=i.length&&e.endsWith(i)}return nr(n,e,2)===0}function Ku(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 nr(r,a,2)===0}function $i(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&Fc&&!t)){if(s.flags&Nc){if(s.base&&!e.startsWith(`${s.base}/`))continue;if(zu(r,s))return s;continue}if(Ku(e,s))return s}}return null}function rn(e,t,n){for(let r=e.dirPatterns.length-1;r>=0;r--){let o=e.dirPatterns[r],s=$i(t,n,o);if(s)return s.flags&Vs?"not-ignored":"ignored"}if(e.excludeFile){let r=$i(t,n,e.excludeFile);if(r)return r.flags&Vs?"not-ignored":"ignored"}if(e.globalExclude){let r=$i(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=I(e.gitDir,"info","exclude");try{let r=await e.fs.readFile(n);t.excludeFile=is(r,"",n)}catch{}try{let r=await xe(e,"core.excludesFile");if(r)try{let o=await e.fs.readFile(r);t.globalExclude=is(o,"",r)}catch{}}catch{}return t}function rr(e,t,n,r){let s=is(t,n===""?"":n,r);return{...e,dirPatterns:[...e.dirPatterns,s]}}var Nc,_c,Fc,Vs,Xs=Re(()=>{"use strict";We();me();Ks();Nc=1,_c=4,Fc=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=I(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 Gn(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 st(e,e.workTree,"");for(let s of o)r.has(s)||n.push({path:s,status:"untracked"});return n.sort((s,i)=>Se(s.path,i.path))}async function dt(e,t){if(!e.workTree)throw new Error("Cannot checkout in a bare repository");if(!Jn(t.path))throw new Error(`refusing to check out unsafe path '${t.path}'`);let n=await Ee(e,t.hash);if(n.type!=="blob")throw new Error(`Expected blob for ${t.path}, got ${n.type}`);let r=I(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&&wn(t.mode)&&e.fs.symlink){let s=Yu.decode(n.content);if(!Ba(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 Bc(e,t){let n=await ze(e,t);for(let r of n)await dt(e,r)}async function sn(e,t,n){if(!e.workTree)throw new Error("Cannot stage in a bare repository");if(!Jn(n))throw new Error(`refusing to stage unsafe path '${n}'`);let r=I(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=Vu.encode(f),d=await Te(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 Te(e,"blob",s),a=o.mode!=null?Xu(o.mode):33188,c={path:n,mode:a,hash:i,stage:0,stat:{...Ie(),size:s.byteLength}};return{index:xt(t,c),hash:i}}async function st(e,t,n,r){let o=r?.skipIgnore??!1,s=null;if(!o){s=r?._ignore??await xr(e);let c=I(t,".gitignore");try{let f=await e.fs.readFile(c);s=rr(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=I(t,c),l=n?`${n}/${c}`:c,d=await mt(e.fs,f);if(d.isSymbolicLink){if(s&&rn(s,l,!1)==="ignored")continue;i.push(l)}else if(d.isDirectory){if(s&&rn(s,l,!0)==="ignored")continue;let m=await st(e,f,l,{skipIgnore:o,_ignore:s??void 0});i.push(...m)}else if(d.isFile){if(s&&rn(s,l,!1)==="ignored")continue;i.push(l)}}return i}function Xu(e){return e>511?e:e&73?33261:33188}async function sr(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 sr(e,Jt(t),n))}var Vu,Yu,ot=Re(()=>{"use strict";ce();Xs();$e();fe();Ms();me();tr();He();Vu=new TextEncoder,Yu=new TextDecoder});function Oi(e){return e.existsOnDisk&&e.indexHash===null}async function Zu(e,t,n){let r=await Promise.all(t.map(h=>de(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 st(e,e.workTree,"",{skipIgnore:!0})):new Set,a=null,c=async()=>(a===null&&(a=e.workTree?new Set(await st(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 E=o.get(h)?.hash??null,k=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=I(e.workTree,h);try{H=await Gn(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:P,getWorktreeHash:D,headMode:b,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 Ju(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 Qu(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=Ju(s,i);for(let c of s.requirements){if(n.allowStagedChanges&&c==="INDEX_MUST_MATCH_HEAD")continue;let f=await em(c,i,a);if(f){r.push({path:o,error:f});break}}if(n.stopAtFirstError&&r.length>0)break}return r}async function em(e,t,n,r){switch(e){case"INDEX_MUST_NOT_EXIST":return t.indexHash!==null?"WOULD_OVERWRITE":Oi(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 Oi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_OVERWRITTEN":null;case"NO_UNTRACKED_REMOVED":return Oi(t)?await t.isIgnoredOnDisk()?null:"WOULD_LOSE_UNTRACKED_REMOVED":null}}function tm(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)=>Se(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 nm){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 or(e,t,n,r){let o=await Zu(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 Qu(i,s,r);if(a.length>0)return{success:!1,newEntries:[],worktreeOps:[],errors:a,errorOutput:Qs(a,r)};let{newEntries:c,worktreeOps:f}=tm(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(!Jn(o.path))throw new Error(`refusing to apply worktree operation on unsafe path '${o.path}'`);let s=I(n,o.path);if(!Ds(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 sr(e.fs,Jt(o),n)}async function Nn(e,t,n,r){return or(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 Wc(e,t,n,r){return or(e,[{label:"HEAD",treeHash:t},{label:"target",treeHash:n}],r,{mergeFn:Js,updateWorktree:!0,reset:!1,errorExitCode:1,operationName:"merge"})}async function bn(e,t,n){return or(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:Ge(n)},i=await or(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 de(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 nm,on=Re(()=>{"use strict";ce();$e();Ms();me();tr();He();ot();nm=[{error:"WOULD_OVERWRITE",msg:e=>`error: Your local changes to the following files would be overwritten by ${e}:`,fix:e=>`Please commit your changes or stash them before you ${e}.`},{error:"NOT_UPTODATE_FILE",msg:e=>`error: Your local changes to the following files would be overwritten by ${e}:`,fix:e=>`Please commit your changes or stash them before you ${e}.`},{error:"WOULD_LOSE_UNTRACKED_OVERWRITTEN",msg:e=>`error: The following untracked working tree files would be overwritten by ${e}:`,fix:e=>`Please move or remove them before you ${e}.`},{error:"WOULD_LOSE_UNTRACKED_REMOVED",msg:e=>`error: The following untracked working tree files would be removed by ${e}:`,fix:e=>`Please move or remove them before you ${e}.`}]});function S(e){return{stdout:"",stderr:`fatal: ${e}
50
- `,exitCode:128}}function L(e,t=1){return{stdout:"",stderr:e,exitCode:t}}async function W(e,t,n){let r=await er(e,t);return r?n?{...r,...n}:r:rm}function M(e){return typeof e=="object"&&e!==null&&"exitCode"in e}function Je(e){return e.workTree?null:sm}async function Qe(e){let t=await Z(e);return t||S("your current branch does not have any commits yet")}function yn(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 gt(e,t,n){let r=await Ke(e,t);return r||S(n??`bad revision '${t}'`)}async function De(e,t,n){let r=await Ke(e,t);if(!r)return S(n??`bad revision '${t}'`);try{let o=await Le(e,r),s=await j(e,o);return{hash:o,commit:s}}catch{return S(n??`bad revision '${t}'`)}}async function tt(e,t){try{return await Ur(e,t)}catch(n){return S(n.message)}}async function an(e,t){try{return await As(e,t)}catch(n){return S(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 Se(e,t){return e<t?-1:e>t?1:0}function ut(e,t){return e.workTree?rt(e.workTree,t):""}function V(e){return e.slice(0,7)}function ue(e){let t=e.indexOf(`
55
- `);return t===-1?e:e.slice(0,t)}function Vt(e){return S(`ambiguous argument '${e}': unknown revision or path not in the working tree.
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
+ `);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)":""} ${V(t)}] ${ue(n)}`}async function _n(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 S(`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 eo(e,i.tree,a,n.origHeadAsTargetRev?o:void 0);if(!c.success)return c.errorOutput;if(await Dn(e,o),await le(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 ae(e,t,"HEAD",s,o,`reset: moving to ${d}`)}return await n.clearState(e),{stdout:"",stderr:"",exitCode:0}}async function wt(e,t,n,r,o,s){let i=nn({type:"commit",tree:t,parents:n,author:r,committer:o,message:s}),a=await Te(e,"commit",i);return await Dn(e,a),a}function Yt(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 rm,sm,ce=Re(()=>{"use strict";Sn();$e();fe();mn();me();qe();pe();Mn();gn();on();rm=S("not a git repository (or any of the parent directories): .git"),sm=S("this operation must be run in a work tree")});var Yc={};Sd(Yc,{CommitHeap:()=>Fn,countAheadBehind:()=>Ti,findOrphanedCommits:()=>Hi,walkCommits:()=>jt});async function*jt(e,t,n){if(n?.topoOrder){yield*lm(e,t,n);return}let r=await Vc(e,n?.exclude),o=new Set(r),s=new Fn,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*lm(e,t,n){let r=await Vc(e,n?.exclude),o=new Set(r),s=new Fn,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 Ti(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 Hi(e,t,n){let r=n?.maxCount??25,o=await be(e,"refs"),s=[];for(let l of o)try{s.push(await Le(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 Fn;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:ue(l.commit.message)});for(let d of l.commit.parents)c.has(d)||f.push(await Pr(e,d))}}return a}async function Vc(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 Fn,ar=Re(()=>{"use strict";ce();fe();pe();Fn=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 zo=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 Oa(e){return new zo({_kind:"arg",type:e,required:!0})}function Sa(){return Oa("string")}function Ia(){return Oa("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 Ko=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 va(e){return new Ko({_kind:"option",type:e})}function Ta(){return va("string")}function Ha(){return va("number")}var Y={string:Ta,number:Ha};function $(){return new Ss}var q={string:Sa,number:Ia};function Id(e){switch(e.type){case"unknown_option":{let t=`Unknown option "${e.name}".`;return e.suggestions.length>0&&(t+=` Did you mean ${e.suggestions.map(n=>`"${n}"`).join(" or ")}?`),t+=`
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 Vo(e){return e.map(Id).join(`
64
+ Run 'git help' for available commands.`,t}}}function Yo(e){return e.map(Dd).join(`
65
65
  `)+`
66
- `}function vd(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 Is(e,t,n){let r=n??Math.min(Math.max(1,Math.floor(e.length/2)),3);return t.map(s=>({candidate:s,distance:vd(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 Aa(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 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:Is(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=Lr(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=Lr(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=>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=Td(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 Td(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 Da(e){if(!e)return{};let t={};for(let[n,r]of Object.entries(e))t[n]=r._def;return t}function Ma(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,Da(n.options),Ma(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=Is(o,[...this.children.keys()]);return{stdout:"",stderr:Vo([{type:"unknown_command",path:`${this.fullPath} ${o}`,suggestions:s}]),exitCode:1}}if(Hd(t))return{stdout:br(this),stderr:"",exitCode:0};if(this.handler){let s=this.transformArgs?this.transformArgs([...t]):[...t],i=Aa(this.allOptions,this.args,s,r);if(!i.ok)return{stdout:"",stderr:Vo(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 Yo(e,t){return new vs(e,t.description,Da(t.options),Ma(t.args),t.examples??[],t.handler,t.transformArgs)}function Hd(e){return e.some(t=>t==="--help")}ce();Xs();$e();me();Ks();var no=1,Si=2,to=4,Ii=8,as=16,zc=new Set(["*","?","[","\\"]),im={glob:no,literal:Si,icase:to,top:Ii,exclude:as};function ir(e){for(let t=0;t<e.length;t++)if(zc.has(e[t]))return!0;return!1}function am(e){for(let t=0;t<e.length;t++)if(zc.has(e[t]))return t;return e.length}function qc(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=im[l.trim()];d!==void 0&&(n|=d)}}}else r.startsWith(":/")?(n|=Ii,r=r.slice(2)):(r.startsWith(":!")||r.startsWith(":^"))&&(n|=as,r=r.slice(2));n&Si&&n&no&&(n&=~no);let o;n&Ii||t===""?o=qc(r):o=qc(`${t}/${r}`);let s=!!(n&Si),i=s?!1:ir(o),a=s?o.length:am(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),nr(n,t,i)===0}function ye(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}ot();function Kc(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=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 z(s);return p=await vi(s,p,a,"",c),n["dry-run"]||await le(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)ir(p)?m.push(p):d.push(p);let u=[];for(let p of d){let g=vt(r.cwd,p),w=rt(a,g);if((w==="."||w==="")&&(w=""),w.startsWith(".."))return S(`'${p}' is outside repository at '${a}'`);if(await r.fs.exists(g)){if(!n.force&&w!==""){let y=l.entries.some(k=>k.path===w||k.path.startsWith(`${w}/`)),E=await fm(s,a,w,y);if(E){y&&((await r.fs.stat(g)).isDirectory?l=await vi(s,l,g,w,c):l=(await sn(s,l,w)).index),u.push(E);continue}}if((await r.fs.stat(g)).isDirectory)l=await vi(s,l,g,w,c);else{let y=l.entries.find(k=>k.path===w&&k.stage===0)?.hash,E=await sn(s,l,w);l=E.index,c.actions&&E.hash!==y&&c.actions.push(`add '${w}'
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
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 S(`pathspec '${p}' did not match any files`)}if(u.length>0)return n["dry-run"]||await le(s,l),L(`The following paths are ignored by one of your .gitignore files:
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 cm(s,r.cwd,l,m,c);if(p.error)return p.error;l=p.index}return n["dry-run"]||await le(s,l),{stdout:c.actions?c.actions.join(""):"",stderr:"",exitCode:0}}})}async function cm(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&&ro(a[m],d)&&(c[m]=!0)},l=[];for(let d of n.entries){if(d.stage>0||!ye(a,d.path))continue;f(d.path);let m=I(s,d.path);if(await e.fs.exists(m)){let u=await sn(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=lt(n,d);if(!o?.updateOnly){let d=new Set(n.entries.map(u=>u.path)),m=await st(e,s,"",{skipIgnore:o?.skipIgnore});for(let u of m){if(d.has(u)||!ye(a,u))continue;f(u),o?.actions&&o.actions.push(`add '${u}'
78
- `),n=(await sn(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:S(`pathspec '${m.original}' did not match any files`)}}return{index:n}}async function vi(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=I(i,f.path);if(await e.fs.exists(l)){let d=f.stage>0,m=await sn(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=lt(t,f);if(!o?.updateOnly){let f=new Set(t.entries.map(d=>d.path)),l=await st(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 sn(e,t,d)).index}}return t}async function fm(e,t,n,r){let o=await xr(e);try{let i=await e.fs.readFile(I(t,".gitignore"));o=rr(o,i,"",I(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=I(t,a);if(rn(o,a,!0)==="ignored")return a;try{let f=await e.fs.readFile(I(c,".gitignore"));o=rr(o,f,a,I(c,".gitignore"))}catch{}}if(!r){let i=await e.fs.stat(I(t,n)).then(a=>a.isDirectory).catch(()=>!1);if(rn(o,n,i)==="ignored")return n}return null}ce();ce();ar();fe();me();pe();async function Oe(e,t){let n=I(e.gitDir,t);return await e.fs.exists(n)?e.fs.readFile(n):null}async function Ae(e,t,n){await e.fs.writeFile(I(e.gitDir,t),n)}async function we(e,t){let n=I(e.gitDir,t);await e.fs.exists(n)&&await e.fs.rm(n)}async function cs(e){await he(e,"MERGE_HEAD"),await he(e,"ORIG_HEAD"),await we(e,"MERGE_MSG"),await we(e,"MERGE_MODE"),await we(e,"SQUASH_MSG")}async function Gt(e){await he(e,"CHERRY_PICK_HEAD"),await he(e,"ORIG_HEAD"),await we(e,"MERGE_MSG")}async function Lt(e){await he(e,"REVERT_HEAD"),await he(e,"ORIG_HEAD"),await we(e,"MERGE_MSG")}async function cr(e){for(let t of["CHERRY_PICK_HEAD","REVERT_HEAD","MERGE_HEAD","ORIG_HEAD"])await he(e,t);await we(e,"MERGE_MSG"),await we(e,"MERGE_MODE"),await we(e,"SQUASH_MSG")}var Ai="DETACH_POINT";async function Xc(e,t){await e.fs.writeFile(I(e.gitDir,Ai),t)}async function bt(e){let t=I(e.gitDir,Ai);await e.fs.exists(t)&&await e.fs.rm(t)}async function fs(e){let t=I(e.gitDir,Ai);return await e.fs.exists(t)?(await e.fs.readFile(t))?.trim()??null:null}me();pe();async function Pt(e){let t=await Oe(e,"BISECT_START");return t!=null&&t.trim().length>0}async function ls(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 so(e){let t=(await Oe(e,"BISECT_START"))?.trim()??"",{termBad:n,termGood:r}=await ls(e),o=await B(e,`refs/bisect/${n}`),s=[],i=[],a=await be(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(I(e.gitDir,"BISECT_HEAD")),f=await e.fs.exists(I(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 Oe(e,"BISECT_LOG")??"";await Ae(e,"BISECT_LOG",n+t+`
83
- `)}async function oo(e){let t=await be(e,"refs/bisect");for(let r of t)await he(e,r.name);await we(e,"BISECT_EXPECTED_REV"),await we(e,"BISECT_ANCESTORS_OK"),await we(e,"BISECT_LOG"),await we(e,"BISECT_TERMS"),await we(e,"BISECT_NAMES"),await we(e,"BISECT_FIRST_PARENT"),await we(e,"BISECT_HEAD"),await we(e,"BISECT_START");let n=I(e.gitDir,"refs","bisect");if(await e.fs.exists(n))try{await e.fs.rm(n,{recursive:!0})}catch{}}async function Zc(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 E=i.get(y);if(E)for(let k of E)!w.has(k)&&c.has(k)&&b.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,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=dm(a),p=um(a);return{hash:u.hash,subject:u.subject,remaining:h,steps:p,found:!1,onlySkippedLeft:m}}function dm(e){return Math.floor((e-1)/2)}function um(e){return e<=1?0:Math.ceil(Math.log2(e))}function Jc(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 Qc(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 ef(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
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}ce();ar();We();$e();fe();me();qe();pe();ce();ar();We();$e();fe();me();fe();mn();me();function $r(e){return I(e.gitDir,"rebase-merge")}async function Nt(e){return e.fs.exists($r(e))}async function yt(e){let t=$r(e);if(!await e.fs.exists(t))return null;let n=await e.fs.readFile(I(t,"head-name")),r=await e.fs.readFile(I(t,"orig-head")),o=await e.fs.readFile(I(t,"onto")),s=Number.parseInt(await e.fs.readFile(I(t,"msgnum")),10),i=Number.parseInt(await e.fs.readFile(I(t,"end")),10),a=await e.fs.exists(I(t,"git-rebase-todo"))?I(t,"git-rebase-todo"):I(t,"todo"),c=tf(await e.fs.readFile(a)),f=await e.fs.exists(I(t,"done"))?await e.fs.readFile(I(t,"done")):"",l=tf(f);return{headName:n.trim(),origHead:r.trim(),onto:o.trim(),todo:c,done:l,msgnum:s,end:i}}async function Di(e,t){let n=$r(e);await e.fs.mkdir(n,{recursive:!0}),await e.fs.writeFile(I(n,"head-name"),`${t.headName}
96
- `),await e.fs.writeFile(I(n,"orig-head"),`${t.origHead}
97
- `),await e.fs.writeFile(I(n,"onto"),`${t.onto}
98
- `),await e.fs.writeFile(I(n,"msgnum"),`${String(t.msgnum)}
99
- `),await e.fs.writeFile(I(n,"end"),`${String(t.end)}
100
- `),await e.fs.writeFile(I(n,"git-rebase-todo"),ao(t.todo)),await e.fs.writeFile(I(n,"done"),ao(t.done)),await e.fs.writeFile(I(n,"interactive"),"")}async function sf(e){let t=$r(e),n=await yt(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(I(t,"msgnum"),`${String(n.msgnum)}
101
- `),await e.fs.writeFile(I(t,"git-rebase-todo"),ao(n.todo)),await e.fs.writeFile(I(t,"done"),ao(n.done))}async function Mi(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(I(r,"author-script"),`GIT_AUTHOR_NAME='${n.name}'
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
+ `),await e.fs.writeFile(S(n,"orig-head"),`${t.origHead}
97
+ `),await e.fs.writeFile(S(n,"onto"),`${t.onto}
98
+ `),await e.fs.writeFile(S(n,"msgnum"),`${String(t.msgnum)}
99
+ `),await e.fs.writeFile(S(n,"end"),`${String(t.end)}
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
- `),await e.fs.writeFile(I(r,"stopped-sha"),`${t}
105
- `)}function tf(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(`
104
+ `),await e.fs.writeFile(S(r,"stopped-sha"),`${t}
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 of(e,t,n){let r=new Map,[o,s]=await Promise.all([nf(e,t,r),nf(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 rf(e,r,n,i),left:await rf(e,r,t,a)}}async function nf(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 rf(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 Ee(e,t);if(o.type!=="commit")throw new Error(`Expected commit object, got ${o.type}`);let s={hash:t,commit:tn(o.content)};return n.set(t,s),s}pe();fe();function Or(e){let t=e.lastIndexOf("/");return t>=0?e.slice(t+1):e}function mm(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 hm=50;async function it(e,t,n=hm){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=mm(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 pm(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 bm(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 pm(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=wm(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 af=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))%af;t.set(f,(t.get(f)??0)+n),n=0,r=0,o=0}if(n>0){let i=(r+Math.imul(o,97))%af;t.set(i,(t.get(i)??0)+n)}let s=[];for(let[i,a]of t)s.push({hash:i,count:a});return s.sort((i,a)=>i.hash-a.hash),s}function gm(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 wm(e,t){return e.length===0&&t.length===0?100:e.length===0||t.length===0?0:cf(e.length,fo(e),t.length,fo(t))}function cf(e,t,n,r){let o=Math.max(e,n),s=Math.min(e,n);if(s<o-s)return 0;let{srcCopied:i}=gm(t,r);return Math.floor(i*100/o)}async function bm(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=cf(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 cn(e,t){let n=e.length,r=t.length,o=0,s=0;for(;s<n&&s<r&&e[s]===t[s];)e[s]==="/"&&(o=s+1),s++;let i=o>0?1:0,a=0,c=n,f=r;for(;o-i<=c&&o-i<=f&&c>=0&&f>=0;){if(c===n&&f===r){c--,f--;continue}if(e[c]!==t[f])break;e[c]==="/"&&(a=n-c),c--,f--}let l=Math.max(0,n-o-a),d=Math.max(0,r-o-a),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();ot();async function at(e,t){let n=await Q(e),r=await Z(e),o,s=!1;n&&n.type==="symbolic"?o=Ce(n.target):(s=!0,o="HEAD detached");let i=t?.index??await z(e),a=Gi(i),c=t?.compareHash!==void 0?t.compareHash:r,f=t?.compareHash!==void 0?!t.compareHash:!r,l=await ji(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)=>Se(g.path,w.path));let h=new Set(i.entries.map(g=>g.path)),p=Li(u,h);return ym(e,r,s,o,i,l,m,a,p,{fromCommit:t?.fromCommit,noWarn:t?.noWarn,isInitial:f})}function ff(e,t){if(t.done.length>0){let n=t.done.length;e.push(`Last command${n===1?"":"s"} done (${n} command${n===1?"":"s"} done):`);for(let r of t.done.slice(-2))e.push(` pick ${V(r.hash)} # ${r.subject}`);n>2&&e.push(" (see more in file .git/rebase-merge/done)")}if(t.todo.length>0){let n=t.todo.length;e.push(`Next command${n===1?"":"s"} to do (${n} remaining command${n===1?"":"s"}):`);for(let r of t.todo.slice(0,2))e.push(` pick ${V(r.hash)} # ${r.subject}`);e.push(' (use "git rebase --edit-todo" to view and edit)')}else e.push("No commands remaining.")}async function ym(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 yt(e):null;if(n&&w){let C=V(w.onto);l.push(`interactive rebase in progress; onto ${C}`)}else if(n){let C=await fs(e);if(C){let P=t===C?"at":"from";l.push(`HEAD detached ${P} ${V(C)}`)}else l.push("Not currently on any branch.")}else l.push(`On branch ${r}`);if(!n&&!w){let C=await ge(e),P=await En(e,C,r);if(P){let H=fr(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)ff(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=Ht(o),P=await e.fs.exists(I(e.gitDir,"MERGE_MSG"));ff(l,w);let D=w.headName==="detached HEAD"?null:Ce(w.headName),O=V(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 ${V(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 ${V(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 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 E=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)',k=!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(` ${lf(C.status,C.path,C.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(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(` ${Em(P.status,P.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 C of i)l.push(` ${lf(C.status,C.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 C of c)l.push(` ${C}`);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)'):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(`
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 ji(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 de(e,s),a=new Map(Ge(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)=>Se(u.path,h.path))}function Gi(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)=>Se(r.path,o.path))}function Li(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 lf(e,t,n){return`${e}:`.padEnd(12)+(n??t)}function Em(e,t){return`${e}:`.padEnd(17)+t}async function En(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 Ti(e,f,c);return{upstream:a,ahead:l,behind:d,gone:!1}}function df(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 fr(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
- `}He();on();ot();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 B(e,i);if(a)return{name:s,refName:i,hash:a}}}return null}async function kn(e){let t="";return await B(e,"CHERRY_PICK_HEAD")&&(t=`warning: cancelling a cherry picking in progress
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
122
  `),await B(e,"REVERT_HEAD")&&(t+=`warning: cancelling a revert in progress
123
- `),await cr(e),t}function km(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(`
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 Un(e){return e.entries.some(t=>t.stage>0)?{stdout:km(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 S("this operation must be run in a work tree");if(r)return Rm(e,t,n,r);let o=await z(e),s=t.map(a=>Ue(a,n)),i=o.entries.filter(a=>a.stage===0&&ye(s,a.path));if(i.length===0)return o.entries.some(c=>c.stage>0&&ye(s,c.path))?L(`error: path '${t[0]}' is unmerged
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 dt(e,{path:a.path,hash:a.hash,mode:a.mode});return{stdout:"",stderr:"",exitCode:0}}async function Rm(e,t,n,r){let o=await de(e,r),s=await z(e),i=t.map(c=>Ue(c,n)),a=[];for(let[c]of o)ye(i,c)&&a.push(c);if(a.length===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
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=xt(s,{path:f.path,hash:f.hash,mode:parseInt(f.mode,8),stage:0,stat:Ie()}))}return await le(e,s),{stdout:"",stderr:"",exitCode:0}}async function mo(e,t,n,r,o){if(!e.workTree)return S("this operation must be run in a work tree");let s=o?.deleteOnMissing??!1,i=await z(e),a=t.map(f=>Ue(f,n)),c=new Set;for(let f of i.entries)ye(a,f.path)&&c.add(f.path);if(c.size===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
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=I(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 lr(e,t,n){if(!e.workTree)return"";let r=await ze(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=I(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(`
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 uf=5;function xm(e){let t=e.length,n=t===1?"commit":"commits",r=t===1?"it":"them",o=t>uf?uf-1:t,i=e.slice(0,o).map(c=>` ${V(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(`
@@ -139,12 +139,12 @@ ${i.join(`
139
139
  If you want to keep ${r} by creating a new branch, this may be a good time
140
140
  to do so with:
141
141
 
142
- git branch <new-branch-name> ${V(e[0].hash)}
142
+ git branch <new-branch-name> ${Y(e[0].hash)}
143
143
 
144
- `}async function Ni(e,t){let n=await j(e,t);return`Previous HEAD position was ${V(t)} ${ue(n.message)}
145
- `}async function ho(e,t,n){let r=await Hi(e,t,{targetHash:n});return r.length>0?xm(r):t!==n?Ni(e,t):""}async function dr(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=Un(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 Nn(e,m,d,a);if(!x.success)return x.errorOutput??L("error: checkout would overwrite local changes");a={version:2,entries:x.newEntries},await le(e,a),await Ne(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 Ye(e,"HEAD",n),await bt(e);let p=await kn(e);await ae(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 lr(e,d,a),w=await ge(e),b=await En(e,w,t);return b&&(g+=fr(b)),{stdout:g,stderr:`${u}Switched to branch '${t}'
147
- ${p}`,exitCode:0}}async function Bn(e,t,n,r,o){let s=await z(e),i=Un(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 Nn(e,l,f,s);if(!x.success)return x.errorOutput??L("error: checkout would overwrite local changes");s={version:2,entries:x.newEntries},await le(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 Xc(e,t);let x=d?.type==="symbolic"?d.target.replace(/^refs\/heads\//,""):a??te;await ae(e,n,"HEAD",a,t,`checkout: moving from ${x} to ${t}`)}let u=await kn(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:a,newHead:t,isBranchCheckout:!1});let h=V(t),p=ue(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 lr(e,f,s),stderr:w,exitCode:0}}async function Cm(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 po(e,t,n){let r=await Cm(e,n);if(!r||await xe(e,"branch.autoSetupMerge")==="false")return"";let s=await ge(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 be(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}fe();me();pe();gn();var mf=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 _i(e){let t=await Oe(e,"BISECT_HEAD");if(t?.trim())return t.trim();let n=await Z(e);return n||S("no current commit")}function hf(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:Sm(a,o.env,t,s,i)}});Pm(n,t),$m(n,t),Im(n,t),vm(n,t),Hm(n,t),Am(n,t),Mm(n,t),Gm(n,t),Lm(n,t)}function Pm(e,t){e.command("start",{description:"Start bisecting",args:[q.string().name("revs").describe("Bad and good revisions").optional().variadic()],options:{"term-new":Y.string().describe("Alternate term for new/bad"),"term-bad":Y.string().describe("Alternate term for new/bad"),"term-old":Y.string().describe("Alternate term for old/good"),"term-good":Y.string().describe("Alternate term for old/good"),"no-checkout":$().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=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 mf.has(a)?S(`'${a}' is not a valid term`):mf.has(c)?S(`'${c}' is not a valid term`):a===c?S("'bad' and 'good' terms must be different"):pf(s,r.env,t,n.revs??[],a,c,n["no-checkout"]??!1,n["first-parent"]??!1)}})}async function pf(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 Z(e)??"HEAD",await Ae(e,"BISECT_START",f+`
170
- `),await Ae(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 Ae(e,"BISECT_NAMES",`
173
- `),a&&await Ae(e,"BISECT_FIRST_PARENT",""),i){let m=await Z(e);m&&await Ae(e,"BISECT_HEAD",m)}if(r.length>0){let m=r[0],u=await gt(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}] ${ue(h.message)}`);for(let p=1;p<r.length;p++){let g=r[p],w=await gt(e,g);if(M(w))return w;await X(e,`refs/bisect/${s}-${w}`,w);let b=await j(e,w);await $t(e,`# ${s}: [${w}] ${ue(b.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 $m(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:Om(s,o.env,t,n,r.rev)}})}async function Om(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 Sm(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 gt(e,s);if(M(f))return f;i=f}else{let f=await _i(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 $t(e,`# ${r}: [${i}] ${c}`),await $t(e,`git bisect ${r} ${i}`),ms(e,t,n)}function Im(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 Pt(s))return us;let i=n.revs??[];if(i.length===0){let a=await _i(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 gt(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}] ${ue(f.message)}`),await $t(s,`git bisect skip ${c}`)}return ms(s,r.env,t)}})}function vm(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 Pt(s)?Tm(s,r.env,t,n.commit):{stdout:`We are not bisecting.
175
- `,stderr:"",exitCode:0}}})}async function Tm(e,t,n,r){let o=(await Oe(e,"BISECT_START"))?.trim()??"";if(await oo(e),r){let s=await gt(e,r);return M(s)?s:Bn(e,s,t,n)}if(o){let s=`refs/heads/${o}`,i=await B(e,s);if(i)return dr(e,o,s,i,t,n);let a=await Ke(e,o);if(a)return Bn(e,a,t,n)}return{stdout:"",stderr:"",exitCode:0}}function Hm(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 Pt(s)?{stdout:await Oe(s,"BISECT_LOG")??"",stderr:"",exitCode:0}:{stdout:"",stderr:`error: We are not bisecting.
176
- `,exitCode:1}}})}function Am(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:I(r.cwd,n.logfile);if(!await r.fs.exists(i))return S(`cannot open '${n.logfile}': No such file or directory`);let a=await r.fs.readFile(i);return Dm(s,r.env,t,a)}})}async function Dm(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 pf(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}] ${ue(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 Mm(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 Pt(s))return us;if(!r.exec)return S("bisect run requires shell execution support");let i=n.cmd.join(" ");return jm(s,r.env,t,i,r.exec,r.cwd)}})}async function jm(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 _i(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}] ${ue(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 Gm(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 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 Lm(e,t){for(let n of["visualize","view"])e.command(n,{description:"Show remaining suspects in git log",handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=s;if(!await 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(()=>(ar(),Yc)),f="";for await(let l of c(i,a.badHash,{exclude:a.goodHashes}))f+=`${V(l.hash)} ${ue(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:Jc(r),stderr:"",exitCode:0}:(await Ae(e,"BISECT_ANCESTORS_OK",""),Nm(e,t,n,r))}async function Nm(e,t,n,r){let o=await Zc(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 ef(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 Ae(e,"BISECT_HEAD",o.hash);else{let s=await Bn(e,o.hash,t,n);if(s.exitCode!==0)return s}return await Ae(e,"BISECT_EXPECTED_REV",o.hash+`
194
- `),{stdout:Qc(o),stderr:"",exitCode:0}}ce();fe();function _t(e){if(e.length===0)return[];let t=e.split(`
195
- `);return t[t.length-1]===""&&t.pop(),t}function kt(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 _m=4,gf=1024,wo=100,Eo=0,bo=1,Sr=2;function Ui(e){let t=1;for(;t*t<e;)t++;return t}function Fm(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 Um(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 wf(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===Sr)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===Sr)a++;else break}return i===0?!1:(i+=o,a+=s,a*_m<a+i)}function Bm(e,t,n,r,o,s,i,a,c,f){let l=new Uint8Array(t),d=new Uint8Array(r),m=Math.min(Ui(t),gf);for(let g=s;g<=i;g++){let w=o[e[g]].len2;w===0?l[g]=Eo:w>=m?l[g]=Sr:l[g]=bo}let u=Math.min(Ui(r),gf);for(let g=s;g<=a;g++){let w=o[n[g]].len1;w===0?d[g]=Eo:w>=u?d[g]=Sr:d[g]=bo}let h=[];for(let g=s;g<=i;g++)l[g]===bo||l[g]===Sr&&!wf(l,g,s,i)?h.push(g):c[g]=1;let p=[];for(let g=s;g<=a;g++)d[g]===bo||d[g]===Sr&&!wf(d,g,s,a)?p.push(g):f[g]=1;return{refIndex1:h,nreff1:h.length,refIndex2:p,nreff2:p.length}}var Wn=20,bf=4,Wm=256,qm=256,yo=2147483647;function Et(e,t){return e[t]??0}function zm(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 E=g;E>=p;E-=2){let k;Et(i,E-1)>=Et(i,E+1)?k=Et(i,E-1)+1:k=Et(i,E+1);let R=k,C=k-E;for(;k<n&&C<s&&e[k]===r[C];)k++,C++;if(k-R>Wn&&(y=!0),i[E]=k,h&&w<=E&&E<=b&&Et(a,E)<=k)return{i1:k,i2:C,minLo:!0,minHi:!0}}w>l?a[--w-1]=yo:++w,b<d?a[++b+1]=yo:--b;for(let E=b;E>=w;E-=2){let k;Et(a,E-1)<Et(a,E+1)?k=Et(a,E-1):k=Et(a,E+1)-1;let R=k,C=k-E;for(;k>t&&C>o&&e[k-1]===r[C-1];)k--,C--;if(R-k>Wn&&(y=!0),a[E]=k,!h&&p<=E&&E<=g&&k<=Et(i,E))return{i1:k,i2:C,minLo:!0,minHi:!0}}if(!c){if(y&&x>Wm){let E=0,k=null;for(let R=g;R>=p;R-=2){let C=R>m?R-m:m-R,P=Et(i,R),H=P-R,D=P-t+(H-o)-C;if(D>bf*x&&D>E&&t+Wn<=P&&P<n&&o+Wn<=H&&H<s){let O=!0;for(let A=1;A<=Wn;A++)if(e[P-A]!==r[H-A]){O=!1;break}O&&(E=D,k={i1:P,i2:H,minLo:!0,minHi:!1})}}if(k)return k;E=0,k=null;for(let R=b;R>=w;R-=2){let C=R>u?R-u:u-R,P=Et(a,R),H=P-R,D=n-P+(s-H)-C;if(D>bf*x&&D>E&&t<P&&P<=n-Wn&&o<H&&H<=s-Wn){let O=!0;for(let A=0;A<Wn;A++)if(e[P+A]!==r[H+A]){O=!1;break}O&&(E=D,k={i1:P,i2:H,minLo:!1,minHi:!0})}}if(k)return k}if(x>=f){let E=-1,k=-1;for(let P=g;P>=p;P-=2){let H=Math.min(Et(i,P),n),D=H-P;s<D&&(H=s+P,D=s),E<H+D&&(E=H+D,k=H)}let R=yo,C=yo;for(let P=b;P>=w;P-=2){let H=Math.max(t,Et(a,P)),D=H-P;D<o&&(H=o+P,D=o),H+D<R&&(R=H+D,C=H)}return n+s-R<E-(t+o)?{i1:k,i2:E-k,minLo:!0,minHi:!1}:{i1:C,i2:R-C,minLo:!1,minHi:!0}}}}}function Bi(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=zm(e,t,n,r,o,s,l,d,m,u);Bi(e,t,h.i1,r,o,h.i2,i,a,c,f,l,d,h.minLo,u),Bi(e,h.i1,n,r,h.i2,s,i,a,c,f,l,d,h.minHi,u)}}function Km(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 yf=200,Ef=20,kf=100,Vm=1,Ym=21,Xm=-30,Zm=6,Jm=-4,Qm=10,eh=24,th=17,nh=23,rh=17,sh=60;function Fi(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>=yf)return yf}return-1}function Rf(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=Fi(e[n]));for(let o=n-1;o>=0&&(r.preIndent=Fi(e[o]),r.preIndent===-1);o--)if(r.preBlank+=1,r.preBlank===Ef){r.preIndent=0;break}for(let o=n+1;o<t&&(r.postIndent=Fi(e[o]),r.postIndent===-1);o++)if(r.postBlank+=1,r.postBlank===Ef){r.postIndent=0;break}return r}function xf(e,t){e.preIndent===-1&&e.preBlank===0&&(t.penalty+=Vm),e.endOfFile&&(t.penalty+=Ym);let n=e.indent===-1?1+e.postBlank:0,r=e.preBlank+n;t.penalty+=Xm*r,t.penalty+=Zm*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?Qm:Jm:o===e.preIndent||(e.postIndent!==-1&&e.postIndent>o?t.penalty+=s?th:eh:t.penalty+=s?rh:nh))}function oh(e,t){let n=(e.effectiveIndent>t.effectiveIndent?1:0)-(e.effectiveIndent<t.effectiveIndent?1:0);return sh*n+(e.penalty-t.penalty)}function Cf(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-kf>g&&(g=a-kf);g<=a;g++){let w={effectiveIndent:0,penalty:0},b=Rf(n,r,g);xf(b,w);let x=Rf(n,r,g-d);xf(x,w),(h===-1||oh(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 Wi(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}=Fm(e,t),{dstart:f,dend1:l,dend2:d}=Um(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}=Bm(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 b={},x={},y=u+p+3,E=Math.max(qm,Ui(y));Bi(g,0,u,w,0,p,o,s,m,h,b,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;Cf(o,i,e,n,s,r),Cf(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}=Wi(e,t);return Km(e,t,o,s)}var ih=3;function ah(e,t=ih){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=>ch(e,a.start,a.end))}function ch(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:V(e):"0000000"}function Pf(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 fh(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(Pf(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=ve(n),d=ve(r);if(l||d)return fh(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 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=ah(x,e.contextLines);if(y.length===0&&!c)return"";let E=e.isNew??n==="",k=e.isDeleted??r==="",R=[];if(Pf(R,e,f,E,k,c),y.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 C=D=>D.includes(" ")?" ":"";E?(R.push("--- /dev/null"),R.push(`+++ b/${f}${C(f)}`)):k?(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(`
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
- `}fe();He();async function qn(e,t,n){return(await de(e,t)).get(n)?.hash??null}async function $f(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 lh(e,t,n,r,o,s){let i=await qn(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,zn(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]=zn(d,m,P.currentLine,s+P.finalIdx,o[P.finalIdx],p,!0,void 0);break}let g=await qn(e,p.tree,m),w=null,b=[];for(let P of p.parents){let H=await j(e,P),D=m,O=await qn(e,H.tree,D);if(!O){let A=await $f(e,H.tree,p.tree,m);A&&(D=A,O=await qn(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]=zn(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),E=_t(y),k=ct(E,u),R=new Map;for(let P of k)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]=zn(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=E}let h=new Map;for(let p of r)f[p.finalIdx]&&h.set(p.finalIdx,f[p.finalIdx]);return h}async function Of(e,t,n,r){let o=await j(e,t),s=await qn(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]=zn(u,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!0,void 0);break}let w=await qn(e,g.tree,h),b=[],x=null;for(let R of g.parents){let C=await j(e,R),P=h,H=await qn(e,C.tree,P);if(!H){let D=await $f(e,C.tree,g.tree,h);D&&(P=D,H=await qn(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]=zn(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]=zn(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 E=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=E.get(P);O||(O={info:H.info,lines:[]},E.set(P,O)),O.lines.push({finalIdx:R.finalIdx,currentLine:D}),C=!0;break}}C||(d[R.finalIdx]=zn(u,h,R.currentLine,c+R.finalIdx,l[R.finalIdx],g,!1,{hash:b[0].hash,path:b[0].path}))}let k=E.get(0);for(let[R,C]of E){if(R===0)continue;let P=await lh(e,C.info.hash,C.info.path,C.lines,l,c);for(let[H,D]of P)d[H]=D}if(k&&k.lines.length>0){m=k.lines,u=k.info.hash,h=k.info.path;let R=await oe(e,k.info.blobHash);p=_t(R)}else break}return d}function zn(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}}ce();fe();He();fe();me();function dh(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 uh(e,t){let n=dh(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 mh(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=uh(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 hh(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 ph(e,t,n){if(e.startsWith("/"))return rt(n,e);let r=rt(n,t);return r===""||r==="."?e:`${r}/${e}`}function Sf(e,t){e.command("blame",{description:"Show what revision and author last modified each line of a file",args:[q.string().name("args").variadic().optional()],options:{lineRange:Y.string().alias("L").describe("Annotate only the given line range (<start>,<end>)"),long:$().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 S("this operation must be run in a work tree");let a=await Qe(i);if(M(a))return a;let c=n.args??[],f=o.passthrough??[],l=null,d=null;if(f.length>0?(d=f[f.length-1],c.length>0&&(l=c[0])):c.length===2?(l=c[0],d=c[1]):c.length===1&&(d=c[0]),!d)return S("no file specified");let m=ph(d,r.cwd,i.workTree),u;if(l){let k=await gt(i,l);if(M(k))return k;u=await Le(i,k)}else u=a;let h=await j(i,u),p=await de(i,h.tree);if(!p.has(m))return S(`no such path ${m} in ${l??"HEAD"}`);let g=p.get(m).hash,w=await oe(i,g);if(ve(w))return S(`cannot blame binary file '${m}'`);let b,x;if(n.lineRange){let k=n.lineRange,R=k.match(/^(\d+),(\d+)$/);if(R)b=parseInt(R[1],10),x=parseInt(R[2],10);else return S(`invalid -L range: '${k}'`)}let y;try{y=await Of(i,u,m,{startLine:b,endLine:x})}catch(k){let R=k instanceof Error?k.message:String(k);return S(R)}let E;return n.porcelain||n.linePorcelain?E=hh(y,!!n.linePorcelain):E=mh(y,m,!!n.long,!!n.showEmail,!!n.suppress),{stdout:E,stderr:"",exitCode:0}}})}ce();We();Sn();ce();var gh=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wh=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Rn(e,t){let n=bh(t),r=new Date((e+n*60)*1e3),o=gh[r.getUTCDay()],s=wh[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 qi(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 bh(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)}fe();He();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 Kn(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 Vn(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);Hn(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);Hn(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(Hn(c)||Hn(f))r.push({path:a.path,sortKey:a.path,insertions:0,deletions:0,isBinary:!0,oldSize:c.byteLength,newSize:f.byteLength});else{let l=kt(Ro.decode(c)),d=kt(Ro.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=cn(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=kt(d),h=kt(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=cn(a.oldPath,a.newPath);i.push({sortKey:a.newPath,text:` rename ${c} (${a.similarity}%)`})}return i.sort((a,c)=>a.sortKey<c.sortKey?-1:a.sortKey>c.sortKey?1:0),{fileStats:r,modeLines:i.map(a=>a.text)}}async function fn(e,t,n,r,o,s=!1,i=!1){let a=[];if((r.name!==o.name||r.email!==o.email)&&a.push(` Author: ${r.name} <${r.email}>`),s&&a.push(` Date: ${Rn(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 Ve(e,t,n),{remaining:f,renames:l}=await it(e,c),{fileStats:d,modeLines:m}=await Vn(e,f,l),u=0,h=0;for(let g of d)u+=g.insertions,h+=g.deletions;let p=Kn(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 yh=80;function Eh(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 ur(e,t=yh){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=Eh(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 E="+".repeat(x)+"-".repeat(y),k=E?` ${E}`:"";l.push(` ${g} | ${b}${k}`)}let h=Kn(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 ln(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 Vn(e,o,s);i.sort((f,l)=>f.sortKey<l.sortKey?-1:f.sortKey>l.sortKey?1:0);let c=ur(i);for(let f of a)c+=`${f}
218
- `;return c}We();$e();fe();pe();on();async function kh(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 Ft(e,t,n){if(t===n)return[t];let r=await kh(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:Rh(e,t,n,c)}async function Rh(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),E=l[m];(y>u||y===u&&x.seq<E.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 mr(e,t,n){let r=await xe(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=V(t),i=V(n),a=`Updating ${s}..${i}
221
- `;if(e.workTree){let f=await z(e),l=await Wc(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 le(e,{version:2,entries:l.newEntries}),await Ne(e,l.worktreeOps)}await Dn(e,n);let c=await ln(e,r.tree,o.tree);return{stdout:`${a}Fast-forward
222
- ${c}`,stderr:"",exitCode:0}}fe();qe();pe();function vf(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:Y.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"?Ce(i.target):null,c=!!n.forceMove;if(n.move||c){let w,b;if(n.newName)w=n.name,b=n.newName;else if(n.name){if(!a)return S("not on any branch");w=a,b=n.name}else return S("branch name required");if(!pn(b))return S(`'${b}' is not a valid branch name`);let x=`refs/heads/${w}`,y=`refs/heads/${b}`,E=await B(s,x);if(!E)return S(`no branch named '${w}'`);if(await Nt(s)&&(await yt(s))?.headName===x)return S(`branch ${x} is being rebased at ${s.workTree}`);let k=await B(s,y);if(k&&!c)return S(`a branch named '${b}' already exists`);k&&await he(s,y);let R=await et(s,x);await X(s,y,E),await he(s,x),w===a&&await Ye(s,"HEAD",y),R.length>0&&await jn(s,y,R);let C=`Branch: renamed ${x} to ${y}`;if(await ae(s,r.env,y,E,E,C),w===a){let D=await Qt(s,r.env);await Xe(s,"HEAD",{oldHash:E,newHash:te,...D,message:C}),await Xe(s,"HEAD",{oldHash:te,newHash:E,...D,message:C})}let P=await ge(s),H=`branch "${w}"`;return P[H]&&(P[`branch "${b}"`]=P[H],delete P[H],await Ze(s,P)),{stdout:"",stderr:"",exitCode:0}}let f=n.forceDelete;if(n.delete||f){if(!n.name)return S("branch name required");let w=n.name===a;if(!w&&!a&&await Nt(s)&&(await yt(s))?.headName===`refs/heads/${n.name}`&&(w=!0),w)return L(`error: cannot delete branch '${n.name}' used by worktree at '${s.workTree}'
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
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 E=await Z(s),R=(await ge(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 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
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))||(y=`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 he(s,b),{stdout:`Deleted branch ${n.name} (was ${V(x)}).
235
- `,stderr:y,exitCode:0}}if(n.setUpstreamTo){let w=n.setUpstreamTo,b=n.name||a;if(!b)return S("could not set upstream of HEAD when it does not point to any branch.");if(!await B(s,`refs/heads/${b}`))return S(`branch '${b}' does not exist`);let y=w.indexOf("/");if(y<0)return S(`the requested upstream branch '${w}' does not exist`);let E=w.slice(0,y),k=w.slice(y+1);if(!await B(s,`refs/remotes/${w}`))return S(`the requested upstream branch '${w}' does not exist`);let C=await ge(s),P=`branch "${b}"`;return C[P]||(C[P]={}),C[P].remote=E,C[P].merge=`refs/heads/${k}`,await Ze(s,C),{stdout:"",stderr:`branch '${b}' set up to track '${w}'.
236
- `,exitCode:0}}if(n.name&&!n.remotes&&!n.all){if(!pn(n.name))return S(`'${n.name}' is not a valid branch name`);let w=n.newName,b;if(w){let R=await De(s,w,`not a valid object name: '${w}'`);if(M(R))return R;b=R.hash}else if(b=await Z(s),!b)return S("Not a valid object name: 'HEAD'.");let x=`refs/heads/${n.name}`;if(await B(s,x))return S(`a branch named '${n.name}' already exists`);await X(s,x,b);let E=w??"HEAD";await ae(s,r.env,x,null,b,`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 Z(s);if(w){let b=await Nt(s),x;if(b){let y=await yt(s);if(y?.headName){let E=Ce(y.headName);if(E==="detached HEAD"){let k=await fs(s);x=`(no branch, rebasing detached HEAD ${k?V(k):"(null)"})`}else x=`(no branch, rebasing ${E})`}else x="(no branch)"}else{let y=await fs(s);y?x=`(HEAD detached ${w===y?"at":"from"} ${V(y)})`:x="(no branch)"}u.push({displayName:x,hash:w,isCurrent:!0,branchName:null})}}if(d){let w=await be(s,"refs/heads");for(let b of w){let x=Ce(b.name);u.push({displayName:x,hash:b.hash,isCurrent:x===a,branchName:x})}}if(m){let w=await be(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(`
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 ge(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=V(w.hash),E="";try{let R=await j(s,w.hash);E=ue(R.message)}catch{}let k="";if(h&&w.branchName){let R=await En(s,h,w.branchName);if(R){let C=df(R,l>=2);C&&(k=` ${C}`)}}g.push(`${b}${x} ${y}${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 xh=["preCommit","preMergeCommit","preCheckout","prePush","preFetch","preClone","prePull","preRebase","preReset","preClean","preRm","preCherryPick","preRevert","preStash","beforeCommand"],Ch=["commitMsg","mergeMsg"],Ph=["postCommit","postMerge","postCheckout","postPush","postFetch","postClone","postPull","postReset","postClean","postRm","postCherryPick","postRevert","postStash","afterCommand"],$h=["onRefUpdate","onRefDelete","onObjectWrite"];function Oh(...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 xh){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 Ch){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)try{await i(s)}catch{}})}for(let r of $h){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}ce();We();$e();fe();qe();pe();gn();ot();function Hf(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 S("--ours and --theirs are incompatible");if(n.detach&&(n.branch||n.forceBranch||n.orphan))return S("'--detach' cannot be used with '-b/-B/--orphan'");if(o.passthrough.length>0){if(n.detach)return S(`git checkout: --detach does not take a path argument '${o.passthrough[0]}'`);let m=ut(i,r.cwd),u=o.passthrough,h=null;if(a){if(n.ours||n.theirs)return S("cannot specify both a revision and --ours/--theirs");let p=await De(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?S("--orphan and -b are incompatible"):n.ours||n.theirs?S("--orphan and --ours/--theirs are incompatible"):a?Ih(i,a,r.env,t):S("you must specify a branch to checkout");if(n.detach){let m=a??"HEAD",u=await De(i,m,`invalid reference: ${m}`);return M(u)?u:Tf(i,m,u.hash,r.env,t)}if(!a)return S("you must specify a branch to checkout");if(n.branch||n.forceBranch)return vh(i,a,r.env,t,!!n.forceBranch);if(a==="-")return Sh(i,r.env,t);let c=`refs/heads/${a}`,f=await B(i,c);if(f)return Af(i,a,c,f,r.env,t);let l=await go(i,a);if(l)return Th(i,a,l.trackingRef,r.env,t);let d=await Ke(i,a);if(d){let m=await Le(i,d);return Tf(i,a,m,r.env,t)}if(i.workTree){let m=await z(i),u=js(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 Sh(e,t,n){let r=await lo(e);return r?Af(e,r.name,r.refName,r.hash,t,n):S("no previous branch")}async function Ih(e,t,n,r){if(!pn(t))return S(`'${t}' is not a valid branch name`);let o=`refs/heads/${t}`;if(await B(e,o))return S(`a branch named '${t}' already exists`);let i=await z(e),a=Un(i);if(a)return a;let c=await Z(e),f=null;c&&(f=(await j(e,c)).tree),await Ye(e,"HEAD",o),await bt(e);let l=await kn(e);await r?.hooks?.postCheckout?.({repo:e,prevHead:c,newHead:te,isBranchCheckout:!0});let d="";return f&&(d=await lr(e,f,i)),{stdout:d,stderr:`Switched to a new branch '${t}'
242
- ${l}`,exitCode:0}}async function vh(e,t,n,r,o=!1){if(!pn(t))return S(`'${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 S(`a branch named '${t}' already exists`);if(o){let g=await z(e),w=Un(g);if(w)return w}a&&await X(e,c,a),await Ye(e,"HEAD",c),await bt(e);let l=await kn(e),d=i?.type==="symbolic"?i.target.replace(/^refs\/heads\//,""):a??te;a&&(f?f!==a&&await ae(e,n,c,f,a,"branch: Reset to HEAD"):await ae(e,n,c,null,a,"branch: Created from HEAD")),await ae(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 lr(e,w.tree,g)}let u=await ge(e),h=await En(e,u,t);h&&(m+=fr(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 Af(e,t,n,r,o,s){let i=await s?.hooks?.preCheckout?.({repo:e,target:t,mode:"switch"});return ee(i)?L(i.message??""):dr(e,t,n,r,o,s)}async function Th(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 S(`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 ge(e);d[`branch "${t}"`]={...d[`branch "${t}"`],remote:f,merge:l},await Ze(e,d),await ae(e,r,a,null,i,`branch: Created from ${n}`);let m=await dr(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 Tf(e,t,n,r,o){let s=await o?.hooks?.preCheckout?.({repo:e,target:t,mode:"detach"});return ee(s)?L(s.message??""):Bn(e,n,r,o,{detachAdviceTarget:t})}ce();We();$e();ce();function zi(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}=Wi(e,t);return Hh(o,n,s,r)}function Hh(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 Ah(e,t,n){let r=[];for(let c of zi(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 zi(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,E=y+w.abLength,k=m[w.ab];k.abMin=Math.min(y,k.abMin),k.abMax=Math.max(E,k.abMax),k.oMin=Math.min(b,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 Dh(e,t,n,r){let o=r?.excludeFalseConflicts??!0,s=Ah(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&&Mf(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"?Df(i):Df(Mh(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=Dh(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 Mh(e){let t=[];for(let n of e)n.type==="ok"?t.push(n):t.push(...jh(n));return t}function jh(e){let{a:t,b:n}=e;if(t.length===0||n.length===0)return[e];if(Mf(t,n))return[e];let r=zi(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 Df(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 hr(e,t,n,r){let o=hs(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(Ki);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
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 Ki(e){return e.endsWith("\0")?e.slice(0,-1):e}function Mf(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}$e();fe();mn();me();tr();He();ot();on();var Ir=new TextDecoder,Yn=new TextEncoder,jf={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 Lh(e,t,n,r),f=await _h(e,s,i,a,c,o);return Fh(e,s,o,f)}async function gs(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 qf(e,t,n,o,1);return{...await Ut(e,a,s.tree,i.tree,r),baseTree:a}}async function Lh(e,t,n,r){let o=await de(e,t),s=await de(e,n),i=await de(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 E={path:f,stages:[u,h,p],pathnames:[f,f,f],filemask:g,matchMask:y,merged:{result:null,clean:!1},pathConflict:!1};if(Nh(E)){c.set(f,E);continue}c.set(f,E)}return{paths:c,baseMap:o,oursMap:s,theirsMap:i}}function Nh(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 _h(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(Rt(T.newPath,U));else{let K=Vi(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 Wf(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(Rt(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 Uf(e,i,T.newPath,v,_,N,U,r,o,!1,s);else if(U.hash===_.hash&&N.hash===_.hash)i.entries.push(Rt(T.newPath,N));else if(U.hash===_.hash)i.entries.push(Rt(T.newPath,N));else if(N.hash===_.hash)i.entries.push(ft(T.newPath,N.mode,U.hash));else{let ne=Vi(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(Rt(T.newPath,N,2)),i.entries.push(Rt(T.newPath,ne,3));let J=await Co(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(Rt(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 Uf(e,i,F.newPath,v,_,U,N,r,o,!0,s);else if(U.hash===_.hash&&N.hash===_.hash)i.entries.push(Rt(F.newPath,N));else if(U.hash===_.hash)i.entries.push(Rt(F.newPath,N));else if(N.hash===_.hash)i.entries.push(ft(F.newPath,N.mode,U.hash));else{let ne=Vi(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(Rt(F.newPath,ne,2)),i.entries.push(Rt(F.newPath,N,3));let J=await Co(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(Rt(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=Gf(n,r),E=Gf(n,o),k=Lf(y,o,n),R=Lf(E,r,n),C=Nf(f.renames,k),P=Nf(l.renames,R),H=_f(C),D=_f(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=Ff(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=Ff(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 Gf(e,t){let n=new Set;for(let s of e.keys()){let i=It(s);for(;i;)n.add(i),i=It(i)}let r=new Set;for(let s of t.keys()){let i=It(s);for(;i;)r.add(i),i=It(i)}let o=new Set;for(let s of n)r.has(s)||o.add(s);return o}function Lf(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=It(o)??"";e.has(s)&&r.add(s)}for(let o of[...r]){let s=It(o);for(;s;)e.has(s)&&!r.has(s)&&r.add(s),s=It(s)}return r}function Nf(e,t){let n=new Map;for(let r of e){let o=It(r.oldPath),s=It(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=It(o),s=It(s)}}return n}function _f(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 Ff(e,t,n){let r=It(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=It(r)}let o=t.get("");return o!==void 0&&!n.has(o)?`${o}/${e}`:null}function It(e){let t=e.lastIndexOf("/");return t===-1?"":e.slice(0,t)}async function Uf(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 Wf(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(Rt(n,d,2)),t.entries.push(ft(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(ft(n,s.mode,h.hash,2)),t.entries.push(Rt(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 Wf(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(wn(t.mode)||wn(n.mode)||wn(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=hs(d,l,m,{conflictStyle:u});if(!h.conflict)return{hash:await Xi(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=hr(c,a,f,{a:w,b,markerSize:i??7,conflictStyle:u});return{hash:await Te(e,"blob",Yn.encode(x)),conflict:!0}}async function Co(e,t,n,r,o){let s=await oe(e,t),i=await oe(e,n),a=hr(s,"",i,{a:o?.a??"HEAD",b:o?.b??"theirs",conflictStyle:o?.conflictStyle});return Te(e,"blob",Yn.encode(a))}function Rt(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:Ie()}}async function Fh(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 Uh(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)=>Se(u.path,h.path));let m=await Fe(e,l);return{entries:o,conflicts:s,messages:f,resultTree:m}}async function Uh(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=hs(w,g,b,{conflictStyle:n?.conflictStyle});if(!x.conflict){let k=await Xi(e,x.result);r.push(_e(a,k,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=hr(h,"",p,{a:n?.a??"HEAD",b:n?.b??"theirs",conflictStyle:n?.conflictStyle}),E=await Te(e,"blob",Yn.encode(y));i.set(a,{hash:E,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),wn(c.mode)||wn(f.mode)||wn(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=hs(b,w,x,{conflictStyle:n?.conflictStyle});if(y.conflict){let E=t.pathnames[1],k=t.pathnames[2],R=E!==a||k!==a,C={path:a,reason:"content"};R&&(E!==a&&(C.oursOrigPath=E),k!==a&&(C.theirsOrigPath=k)),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"}:${E}`:n?.a??"HEAD",H=R?`${n?.b??"theirs"}:${k}`:n?.b??"theirs",D=hr(p,h,g,{a:P,b:H,conflictStyle:n?.conflictStyle}),O=await Te(e,"blob",Yn.encode(D));i.set(a,{hash:O,mode:f.mode})}else{let E=await Xi(e,y.result);r.push(_e(a,E,f.mode))}return}}var Bh=200;async function qf(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>=Bh)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 qf(e,c,d,g,o+1)}let h=await Ut(e,u,f,m);f=await Wh(e,h,o);let p=nn({type:"commit",tree:f,parents:[c,d],author:jf,committer:jf,message:"merged common ancestors"});c=await Te(e,"commit",p)}return f}async function Wh(e,t,n){let r=t.entries.filter(a=>a.stage===0),o=new Map;for(let a of t.entries)a.stage>0&&o.set(`${a.path}\0${a.stage}`,a);let s=(a,c)=>o.get(`${a}\0${c}`),i={a:"Temporary merge branch 1",b:"Temporary merge branch 2",markerSize:7+n*2};for(let a of t.conflicts){if(a.reason==="delete-modify"||a.reason==="rename-delete"){let l=s(a.path,1);if(l){r.push({...l,stage:0});continue}}if(a.reason==="rename-rename"){let l=a.oursPath??a.path,d=a.theirsPath??a.path,m=s(a.path,1),u=s(l,2),h=s(d,3);if(u&&h){let p=Ir.decode((await Ee(e,u.hash)).content),g=Ir.decode((await Ee(e,h.hash)).content),w=m?Ir.decode((await Ee(e,m.hash)).content):"",b=8+n*2,x=i.a??"Temporary merge branch 1",y=i.b??"Temporary merge branch 2",E=hr(p,w,g,{a:`${x}:${l}`,o:i.o,b:`${y}:${d}`,markerSize:b}),k=await Te(e,"blob",Yn.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=Ir.decode((await Ee(e,c.hash)).content),d=Ir.decode((await Ee(e,f.hash)).content),m=a.reason==="content"?s(a.path,1):null,u=m?Ir.decode((await Ee(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=hr(l,u,d,{a:w,o:i.o,b,markerSize:i.markerSize}),y=await Te(e,"blob",Yn.encode(x));r.push({path:a.path,mode:c.mode,hash:y,stage:0,stat:Ie()})}else c?r.push({...c,stage:0}):f&&r.push({...f,stage:0})}return r.sort((a,c)=>Se(a.path,c.path)),Fe(e,r)}async function Xi(e,t){let n=t.map(Ki);if(n.length===0)return Te(e,"blob",Yn.encode(""));let s=(t[t.length-1]??"").endsWith("\0")?n.join(`
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 Te(e,"blob",Yn.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:Ie()}}function Vi(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 Bf(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,13 +274,13 @@ ${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 z(e),s=await de(e,n);if(!r.skipStagedChangeCheck&&e.workTree){let h=new Map(Ge(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 Yi(e,o,s);let w=r.operationName??"merge",b=r.callerCommand??"merge";return{ok:!1,stdout:"",stderr:ps(g,w,b,"local","staged"),exitCode:r.errorExitCode??2,failureKind:"staged"}}}if(e.workTree&&r.preflightOnewayCheck){let h=await or(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 Yi(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=Bf(w,b,p,g):b.length>0?x=ps(b,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 or(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 Yi(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(),b=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")),b.length>0&&x.push(ps(b,p,g,"untracked","worktree"));let y;return x.length>1?y=Bf(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)=>Se(h.path,p.path)||h.stage-p.stage);let d={version:2,entries:l};await le(e,d);let m=l.filter(h=>h.stage===0),u=await Fe(e,m);return{ok:!0,finalIndex:d,mergedTreeHash:u}}async function Yi(e,t,n){if(e.workTree)for(let r of t.entries){if(r.stage!==0||n.has(r.path))continue;let o=I(e.workTree,r.path);await e.fs.exists(o)||await dt(e,{path:r.path,hash:r.hash,mode:r.mode})}}fe();qe();pe();He();on();function zf(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:Y.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 zh(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 Kh(s,r.env);return U.exitCode===0&&await t?.hooks?.postCherryPick?.({repo:s,mode:"continue",commitHash:null,hadConflicts:!1}),U}if(n.skip)return qh(s,r.env);let i=n.commit;if(!i)return S("you must specify a commit to cherry-pick");let a=await t?.hooks?.preCherryPick?.({repo:s,mode:"pick",commit:i});if(ee(a))return{stdout:"",stderr:a.message??"",exitCode:1};let c=await De(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(`
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
278
  `),ne=_.length>10?`
279
279
  ...`:"";return L(`${K}${ne}
280
280
  error: your index file is unmerged.
281
281
  fatal: cherry-pick failed
282
- `,128)}}else{let _=yn(m,"Cherry-picking",`fatal: cherry-pick failed
283
- `);if(_)return _}let u=await j(s,d),p=!!n["record-origin"]?Vh(l.message,f):l.message;if(s.workTree&&!n.noCommit){let _=await de(s,u.tree);if(Cr(m,_))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.
@@ -289,7 +289,7 @@ fatal: cherry-pick failed
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 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=V(f),b=ue(l.message),x=await xe(s,"merge.conflictstyle")??"merge",y={a:"HEAD",b:b?`${w} (${b})`:w,conflictStyle:x},E=await Ut(s,g,u.tree,l.tree,y);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 Ae(s,"MERGE_MSG",p);let _=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
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:
@@ -297,13 +297,13 @@ If you wish to commit it anyway, use:
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:y,errorExitCode:128,operationName:"merge",callerCommand:"cherry-pick",skipStagedChangeCheck:!0,preflightOnewayCheck:!!n.noCommit});if(!k.ok)return k;if(E.conflicts.length>0){let _=E.messages.join(`
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
301
  `);return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:null,hadConflicts:!0}),n.noCommit?{stdout:_?`${_}
302
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 Ae(s,"MERGE_MSG",p),{stdout:_?`${_}
306
+ `,exitCode:1}:(await X(s,"CHERRY_PICK_HEAD",f),await X(s,"ORIG_HEAD",d),await De(s,"MERGE_MSG",p),{stdout:_?`${_}
307
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
@@ -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 C=await tt(s,r.env);if(M(C))return C;let P=await wt(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 ae(s,r.env,O,d,P,`cherry-pick: ${D}`,H?.type==="symbolic");let A=H?.type==="symbolic"?Ce(H.target):"detached HEAD",G=u.tree,v=await fn(s,G,R,l.author,C,!0),T=Dt(A,P,p),F=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
318
  `:"";return await t?.hooks?.postCherryPick?.({repo:s,mode:"pick",commitHash:P,hadConflicts:!1}),{stdout:`${F}${T}
319
- ${v}`,stderr:"",exitCode:0}}})}async function qh(e,t){if(!await B(e,"CHERRY_PICK_HEAD"))return L(`error: no cherry-pick in progress
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 Z(e);if(!r)return S("unable to resolve HEAD");let o=await j(e,r),s=await z(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 le(e,{version:2,entries:i.newEntries}),await Ne(e,i.worktreeOps),await ae(e,t,"HEAD",r,r,`reset: moving to ${r}`),await Gt(e),{stdout:"",stderr:"",exitCode:0}}async function zh(e,t){return await B(e,"CHERRY_PICK_HEAD")?_n(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 B(e,"REVERT_HEAD")?_n(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 Kh(e,t){let n=await B(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 z(e),o=yn(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=Yt(i);let c=Ge(r),f=await Fe(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 wt(e,f,[l],s.author,u,h);await Gt(e),await Lt(e),await we(e,"SQUASH_MSG");let g=await Q(e),w=ue(h),b=g?.type==="symbolic"?g.target:"HEAD";await ae(e,t,b,l,p,`commit (cherry-pick): ${w}`,g?.type==="symbolic");let x=g?.type==="symbolic"?Ce(g.target):"detached HEAD",y=await fn(e,m,f,s.author,u,!0);return{stdout:`${Dt(x,p,i)}
333
- ${y}`,stderr:"",exitCode:0}}function Vh(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
- `}ce();We();Xs();$e();me();function Kf(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:Y.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=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 xe(s,"clean.requireForce")!=="false")return S("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 Vf(s,a,"",{trackedPaths:p,removeDirs:l,removeIgnored:d,onlyIgnored:m,extraExcludes:x}),E;b?E=y.filter(C=>ye(b,C.path)):E=y,E.sort((C,P)=>C.path<P.path?-1:C.path>P.path?1:0);let k=[];if(c)for(let C of E){let P=C.isDir?`Would remove ${C.path}/`:`Would remove ${C.path}`;k.push(P)}else for(let C of E){let P=I(a,C.path);C.isDir?(await r.fs.rm(P,{recursive:!0}),k.push(`Removing ${C.path}/`)):(await r.fs.rm(P),k.push(`Removing ${C.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(C=>C.path),dryRun:c}),{stdout:R,stderr:"",exitCode:0}}})}async function Vf(e,t,n,r){let o=[],s=!r.removeIgnored,i=null;if(s||r.onlyIgnored){i=r._ignore??await xr(e);let c=I(t,".gitignore");try{let f=await e.fs.readFile(c);i=rr(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=I(t,c),l=n?`${n}/${c}`:c,d=await e.fs.stat(f);if(d.isDirectory){let m=i&&rn(i,l,!0)==="ignored",u=Yh(r.trackedPaths,l),h=()=>Vf(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&&rn(i,l,!1)==="ignored";r.onlyIgnored?m&&o.push({path:l,isDir:!1}):m&&s||o.push({path:l,isDir:!1})}}return o}function Yh(e,t){let n=`${t}/`;for(let r of e)if(r.startsWith(n))return!0;return!1}ce();We();Sn();$e();fe();me();qe();pe();Mn();fe();me();var ws=2147483647;async function vr(e){let t=I(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 Xh(e,t){let n=I(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 Xh(e,r)}async function Yf(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 Kt(e,f)&&(o.set(f,1),s.push({hash:f,level:1}));let i=new Set,a=0;for(;a<s.length;){let{hash:f,level:l}=s[a++];if(l>=n){i.add(f);continue}let d;try{d=await j(e,f)}catch{continue}for(let m of d.parents)!o.has(m)&&await Kt(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}}We();Mn();ht();fe();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]),Zh=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,Jh=4,Zi=4096,Xf=65536,Qh=127;function ep(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=np(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 tp(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=Jf(i,a,r),a=Jf(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<Zi){f^=Zh[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 b=g;b<w;b++){let x=e.entries[b];if(x.val!==f)continue;let y=x.ptr,E=s.byteLength-y,k=o-m;if(E>k&&(E=k),E<=h)break;let R=0;for(;R<E&&s[y+R]===t[m+R];)R++;if(R>h&&(h=R,u=y,h>=Zi))break}}if(h<Jh)c(2),l===0&&a++,i[a++]=t[m++],l++,l===Qh&&(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>Xf?h-Xf: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<Zi){f=0;for(let b=-16;b<0;b++)f=(f<<8|t[m+b])^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 Zf={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=Zf[f.type]??99,m=Zf[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 E=tp(x,l.content,y);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(ep(l.content)),c.push(l.hash)}return i}function np(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 Jf(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();pe();fe();mn();Qr();zs();async function rp(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:sp(c)}}async function Hr(e,t,n,r,o){let{count:s,objects:i}=await rp(e,t,n,r,o);return{count:s,objects:op(e,i)}}async function*sp(e){for(let t of e)yield t}async function*op(e,t){for await(let n of t){let r=await Ee(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 Kt(e,t)))return;let o=await Ee(e,t);switch(o.type){case"commit":{let s=tn(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=Ln(o.content);for(let i of s.entries)await bs(e,i.hash,n,r);break}case"tag":{let s=hn(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 Ee(e,t);switch(o.push({hash:t,type:i.type}),i.type){case"commit":{let a=tn(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=Ln(i.content);for(let c of a.entries)await ys(e,c.hash,n,r,o,s);break}case"tag":{let a=hn(i.content);await ys(e,a.object,n,r,o,s);break}case"blob":break}}var ip=new TextEncoder,Io=new TextDecoder,Qf=65520,ap=new Uint8Array([48,48,48,48]);function Pn(e){let t=typeof e=="string"?ip.encode(e):e,n=4+t.byteLength;if(n>Qf)throw new Error(`pkt-line too long: ${n} bytes (max ${Qf})`);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 Ji(){return ap.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=Io.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=Io.decode(e.data);return t.endsWith(`
346
- `)?t.slice(0,-1):t}var cp=1,fp=2,lp=3;function Qi(e){let t=[],n=[],r=[],o=0;for(let a of e){if(a.type==="flush"||a.data.byteLength===0)continue;let c=a.data[0];if(c===void 0)continue;let f=a.data.subarray(1);switch(c){case cp:t.push(f),o+=f.byteLength;break;case fp:n.push(Io.decode(f));break;case lp:r.push(Io.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 ea(e){return e?e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:{Authorization:`Basic ${btoa(`${e.username}:${e.password}`)}`}:{}}async function ta(e,t,n,r=globalThis.fetch){let o=e.replace(/\/+$/,""),s=await r(`${o}/info/refs?service=${t}`,{headers:{...ea(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 dp(f,t)}function dp(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 up=["multi_ack_detailed","no-done","side-band-64k","ofs-delta","include-tag","shallow"];async function el(e,t,n,r,o,s=globalThis.fetch,i){if(t.length===0)throw new Error("fetchPack requires at least one want");let a=nl(r,up),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(Ji());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",...ea(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 mp(m,a.includes("side-band-64k"))}function mp(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}=Qi(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 hp=["report-status","side-band-64k","ofs-delta","delete-refs"];async function tl(e,t,n,r,o,s=globalThis.fetch){if(t.length===0)throw new Error("pushPack requires at least one command");let i=nl(r,hp),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(Ji());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",...ea(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")?pp(u,i.includes("side-band-64k")):{unpackOk:!0,refResults:[],progress:[]}}function pp(e,t){let n,r=[];if(t){let a=Dr(e),{packData:c,progress:f,errors:l}=Qi(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 nl(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 be(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 Yf(this.remote,t,r.depth,l);i=d,s=new Set(d.shallow),l.size>0&&(a=l)}let c=await na(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 na(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 ta(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 ta(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 el(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 na(this.local,o,s)??null);let c=await tl(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 na(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=So(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 gp(e,t){let r=(await ge(e))[`remote "${t}"`];return r?.url?{name:t,url:r.url,fetchRefspec:r.fetch??"+refs/heads/*:refs/remotes/origin/*"}:null}function ra(e){return e.startsWith("http://")||e.startsWith("https://")}function rl(e){return e.startsWith("ssh://")||e.startsWith("git@")||e.startsWith("git+ssh://")}function sl(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(ra(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 wp(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 ol(e,t,n){if(e.credentialProvider){let r=await e.credentialProvider(t);if(r)return r}return wp(n)}async function il(e,t,n,r){if(ra(t)){let o=sl(t,e.networkPolicy);if(o)throw new Error(o);let s=await ol(e,t,n);return new ks(e,t,s,e.fetchFn)}if(!r&&e.resolveRemote&&(r=await e.resolveRemote(t)??void 0),!r)throw rl(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 gp(e,t);if(!r)return null;if(ra(r.url)){let s=sl(r.url,e.networkPolicy);if(s)throw new Error(s);let i=n?await ol(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 er(e.fs,r.url);if(!o){if(rl(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}}He();ot();function al(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:Y.string().alias("b").describe("Checkout this branch instead of HEAD"),depth:Y.number().describe("Create a shallow clone with history truncated to N commits")},handler:async(n,r)=>{let o=n.repository;if(!o)return S("You must specify a repository to clone.");let s=o.startsWith("http://")||o.startsWith("https://"),i=n.branch,a=null,c=o;if(s)c=o;else if(t?.resolveRemote&&(a=await t.resolveRemote(o)),a||(c=vt(r.cwd,o),a=await er(r.fs,c)),!a)return S(`repository '${o}' does not exist`);let f=n.directory;if(!f){let O;s||o.includes("://")?O=o.split("/").pop()??o:O=_r(c),O.endsWith(".git")&&(O=O.slice(0,-4)),f=O}let l=vt(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 S(`destination path '${f}' already exists and is not an empty directory.`)}catch{return S(`destination path '${f}' already exists and is not an empty directory.`)}await r.fs.mkdir(l,{recursive:!0});let{ctx:m}=await Bs(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 ge(u);h['remote "origin"']={url:c,fetch:"+refs/heads/*:refs/remotes/origin/*"},await Ze(u,h);let p;try{p=await il(u,c,r.env,a??void 0)}catch(O){let A=O instanceof Error?O.message:"";return A.startsWith("network")?S(A):S(`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}'...
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=[],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 Tr(u,O.shallowUpdates)}let E=g.find(O=>O.name==="HEAD"),k=null,R=null,C=await Qt(u,r.env),P=`clone: from ${c}`,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 Xe(u,G,{oldHash:te,newHash:O.hash,name:C.name,email:C.email,timestamp:C.timestamp,tz:C.tz,message:P}),!k&&E&&O.hash===E.hash&&(k=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 S(`Remote branch '${i}' not found in upstream origin`);k=i,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 Ye(u,"HEAD",`refs/heads/${k}`),await t?.hooks?.postClone?.({repo:u,repository:o,targetPath:l,bare:n.bare,branch:k}),{stdout:"",stderr:`Cloning into bare repository '${f}'...
357
- `,exitCode:0};if(k&&await Ye(u,"refs/remotes/origin/HEAD",`refs/remotes/origin/${k}`),k&&R){await X(u,`refs/heads/${k}`,R),await Ye(u,"HEAD",`refs/heads/${k}`);let O={oldHash:te,newHash:R,name:C.name,email:C.email,timestamp:C.timestamp,tz:C.tz,message:P};await Xe(u,`refs/heads/${k}`,O),await Xe(u,"HEAD",O);let A=await ge(u);A[`branch "${k}"`]={remote:"origin",merge:`refs/heads/${k}`},await Ze(u,A);let G=await j(u,R);await Bc(u,G.tree);let v=await ze(u,G.tree),T=Gs(v.map(F=>({path:F.path,mode:parseInt(F.mode,8),hash:F.hash,stage:0,stat:Ie()})));await le(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:k}),D}})}ce();$e();fe();mn();me();qe();pe();He();ot();function cl(e,t){e.command("commit",{description:"Record changes to the repository",options:{message:Y.string().alias("m").repeatable().describe("Commit message"),file:Y.string().alias("F").describe("Read commit message from file ('-' for stdin)"),allowEmpty:$().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 S("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 ie=Je(i);if(ie)return ie;let Pe=await At(i,a);for(let Be of Pe)Be.status==="modified"?a=(await sn(i,a,Be.path)).index:Be.status==="deleted"&&(a=lt(a,Be.path));let nt=new Set(Ge(a).map(Be=>Be.path)),On=new Set(a.entries.filter(Be=>Be.stage>0&&!nt.has(Be.path)).map(Be=>Be.path));for(let Be of On){let wr=I(i.workTree,Be);await r.fs.exists(wr)?a=(await sn(i,a,Be)).index:a=lt(a,Be)}}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 S("You have nothing yet to amend.");if(c)return S("You are in the middle of a merge -- cannot amend.");if(f)return S("You are in the middle of a cherry-pick -- cannot amend.")}if(Ht(a)){let ie=new Set,Pe=[];for(let nt of a.entries)nt.stage>0&&!ie.has(nt.path)&&(ie.add(nt.path),Pe.push(`U ${nt.path}`));return Pe.sort(),{stdout:Pe.length>0?`${Pe.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>'
@@ -363,9 +370,9 @@ hint: as appropriate to mark resolution and make a commit.
363
370
  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
- `):void 0;if(g!==void 0&&(g=Yt(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 ie=n.file.startsWith("/")?n.file:I(r.cwd,n.file);if(!await r.fs.exists(ie))return S(`could not read log file '${n.file}': No such file or directory`);let Pe=await r.fs.readFile(ie);g=typeof Pe=="string"?Pe:new TextDecoder().decode(Pe)}if(g=Yt(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 ie=await Oe(i,"SQUASH_MSG");if(ie)g=Yt(ie);else{let Pe=await Oe(i,"MERGE_MSG");Pe!==null&&(g=Yt(Pe))}}if(!g)return L("error: must provide a commit message with -m or -F");let w=Ge(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,E=null;if(u&&p){let ie=p.parents[0];ie?E=(await j(i,ie)).tree:E=await pt("tree",new Uint8Array(0))}else h&&(E=(await j(i,h)).tree);let k=u&&p&&p.parents.length>1;if(!y&&!c&&!k){if(!h&&!u&&w.length===0)return{stdout:await at(i,{fromCommit:!0,index:a}),stderr:"",exitCode:1};if(E!==null&&E===b){if(u){let ie=p?.parents[0]??null;return{stdout:`${await at(i,{fromCommit:!0,compareHash:ie,noWarn:!0,index:a})}No changes
373
+ `):void 0;if(g!==void 0&&(g=Xt(g),!g))return{stdout:`Aborting commit due to empty commit message.
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^".
@@ -375,83 +382,83 @@ If you wish to commit it anyway, use:
375
382
  git commit --allow-empty
376
383
 
377
384
  Otherwise, please use 'git cherry-pick --skip'
378
- `,exitCode:1}:{stdout:await at(i,{fromCommit:!0,index:a}),stderr:"",exitCode:1}}}let R=await an(i,r.env);if(M(R))return R;let C=await tt(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=nn({type:"commit",tree:b,parents:O,author:R,committer:C,message:P}),G=await Te(i,"commit",A);await le(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 ae(i,r.env,U,h,G,_,v?.type==="symbolic"),c&&await cs(i),f&&await Gt(i),l&&await Lt(i),m&&await we(i,"MERGE_MSG"),await we(i,"SQUASH_MSG"),await t?.hooks?.postCommit?.({repo:i,hash:G,message:P,branch:v?.type==="symbolic"?Ce(v.target):null,parents:O,author:R});let N=v?.type==="symbolic"?v.target:null,K=N?Ce(N):"detached HEAD",ne;if(u&&p){let ie=p.parents[0];ne=ie?(await j(i,ie)).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 fn(i,ne,b,R,C,J,re);return{stdout:`${Dt(K,G,g,O.length===0&&!u)}
379
- ${ke}`,stderr:"",exitCode:0}}})}ce();We();me();function $n(e){let t=e.split(".");return t.length===2||t.length===3}function bp(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 ul(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 dl(s);if(n.get){let f=a;return f?$n(f)?sa(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(n["get-all"]){let f=a;return f?$n(f)?fl(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 La(s,f,l),{stdout:"",stderr:"",exitCode:0}):L(`error: invalid key: ${f}`,2)}if(n.unset){let f=a;return f?$n(f)?ll(s,f):L(`error: invalid key: ${f}`,2):L("error: missing key",2)}if(a==="list")return dl(s);if(a==="get"){let f=i[1];return f?$n(f)?sa(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)?fl(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 ti(s,f,l),{stdout:"",stderr:"",exitCode:0}):L(`error: invalid key: ${f}`,2)}if(a==="unset"){let f=i[1];return f?$n(f)?ll(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 ti(s,a,c),{stdout:"",stderr:"",exitCode:0}):sa(s,a)}})}async function sa(e,t){let n=await xe(e,t);return n===void 0?L(""):{stdout:`${n}
380
- `,stderr:"",exitCode:0}}async function fl(e,t){let n=await Ga(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 ll(e,t){return await Na(e,t)?{stdout:"",stderr:"",exitCode:0}:L("",5)}async function dl(e){let t=I(e.gitDir,"config"),n="";await e.fs.exists(t)&&(n=await e.fs.readFile(t));let r=Zo(n),o=bp(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}}ce();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(b=>b?V(b):"0000000"),c=o?V(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(E=>E||"000000"),x=s||"000000";b.some(E=>E!==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(`
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(b=>b.length>0?_t(b):[]),h=e.resultContent.length>0?_t(e.resultContent):[],p=u.map(b=>ct(b,h)),g=yp(u,h,p),w=kp(g,u.length,h);if(w.length===0)return"";for(let b of w)i.push(b);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 yp(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=Ep(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 Ep(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 kp(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 E=d.filter(k=>(k.parentLineNos[y]??0)>0||k.columns[y]==="-");if(E.length===0)m.push({start:1,count:0});else{let R=E.find(C=>(C.parentLineNos[y]??0)>0)?.parentLineNos[y]??1;m.push({start:R,count:E.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 E=n[y];if(E&&/^[a-zA-Z$_]/.test(E)){w=` ${E.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}ce();$e();fe();me();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}tr();pe();He();ot();var oa=new TextDecoder;function gl(e){return"exitCode"in e}function pr(e){return e.toString(8).padStart(6,"0")}function wl(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 bl(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:Y.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?Ao(c[0]):null;if(u){if(a)return S("too many arguments");u.type==="three-dot"?m=await Pp(i,u.left,u.right,l):m=await pl(i,u.left,u.right,l)}else if(c.length===2)m=await pl(i,c[0],c[1],l);else{if(c.length>2)return S("too many arguments");a?m=await Cp(i,c.length===1?c[0]:null,l):c.length===1?m=await $p(i,c[0],l):m=await Rp(i,l)}if(gl(m))return m;let h=n.unified,p=await Op(i,m.items,d,h);return m.stderr&&(p.stderr=m.stderr),p}})}async function Rp(e,t){let n=Je(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 At(e,r);c.sort((l,d)=>Se(l.path,d.path));let f=[];for(let l of c){if(l.status==="untracked"||t&&!ye(t,l.path)||o.has(l.path))continue;let d=s.get(l.path);if(!d)continue;let m=pr(d.mode),u;if(l.status==="modified"&&e.workTree){let h=I(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&&!ye(t,l))continue;let d=i.get(l),m=a.get(l);await xp(f,e,l,d,m)}return f.sort((l,d)=>{let m=Se(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 xp(e,t,n,r,o){let s=t.workTree;if(s&&r&&o){let i=pr(r.mode),a=pr(o.mode),{exists:c,hash:f}=await ml(t.fs,s,n);e.push({path:n,status:"U",newHash:f,newMode:i,newFromWorkTree:c,combinedParentHashes:[r.hash,o.hash],combinedParentModes:[i,a]}),hl(e,n,r.hash,i,c,f);return}if(e.push({path:n,status:"U"}),s&&r){let i=pr(r.mode),{exists:a,hash:c}=await ml(t.fs,s,n);hl(e,n,r.hash,i,a,c)}}async function ml(e,t,n){let r=I(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 hl(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 Cp(e,t,n){let r=null;if(t){let m=await De(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 de(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(Ge(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:pr(u.mode)}):c.push({path:m,status:"added",newHash:u.hash,newMode:pr(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=wl(f,l);for(let m of i)d.push({path:m,status:"U"});return d.sort((m,u)=>Se(m.path,u.path)),n?{items:d.filter(m=>ye(n,m.path))}:{items:d}}async function pl(e,t,n,r){let o=await De(e,t);if(M(o))return o;let s=await De(e,n);if(M(s))return s;let i=await Ve(e,o.commit.tree,s.commit.tree);return yl(e,i,r)}async function Pp(e,t,n,r){let o=await De(e,t);if(M(o))return o;let s=await De(e,n);if(M(s))return s;let i=await Ft(e,o.hash,s.hash);if(i.length===0)return S(`${t}...${n}: no merge base`);let a;i.length>1&&(a=`warning: ${t}...${n}: multiple merge bases, using ${i[0]}
389
- `);let c=i[0],f=await j(e,c),l=await Ve(e,f.tree,s.commit.tree),d=await yl(e,l,r);return gl(d)||a&&(d.stderr=a),d}async function yl(e,t,n){let{remaining:r,renames:o}=await it(e,t),s=wl(r,o);return s.sort((i,a)=>Se(i.path,a.path)),n?{items:s.filter(i=>ye(n,i.path))}:{items:s}}async function $p(e,t,n){let r=Je(e);if(r)return r;let o=await De(e,t);if(M(o))return o;let s=e.workTree,i=await de(e,o.commit.tree),a=await z(e),c=new Map(Ge(a).map(l=>[l.path,l])),f=[];for(let[l,d]of i){if(n&&!ye(n,l))continue;let m=I(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&&!ye(n,l))continue;let m=I(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:pr(d.mode),newFromWorkTree:!0})}return f.sort((l,d)=>Se(l.path,d.path)),{items:f}}async function Op(e,t,n,r){let o;switch(n){case"stat":o=await Ap(e,t);break;case"shortstat":o=await Dp(e,t);break;case"numstat":o=await Hp(e,t);break;case"name-only":o=vp(t);break;case"name-status":o=Tp(t);break;default:o=await Sp(e,t,r);break}return{stdout:o,stderr:"",exitCode:0}}async function Sp(e,t,n){let r="",o=new Set,s=await Ip(e,t);for(let i of t)if(i.status==="U")if(i.combinedParentHashes){let a=await Promise.all(i.combinedParentHashes.map(async l=>l?await oe(e,l):"")),c=await ia(e,i);if(a.some(l=>ve(l))||ve(c)){let l=i.combinedParentHashes.map(d=>d?V(d):"0000000");r+=`diff --cc ${i.path}
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}
390
397
  index ${l.join(",")}..0000000
391
398
  Binary files differ
392
- `,o.add(i.path)}else{let l=Ho({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}
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}
393
400
  `}}else r+=`* Unmerged path ${i.path}
394
- `;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 ia(e,i);i.status==="R"&&i.oldPath?r+=Ot({path:i.oldPath,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:Do(i.oldHash,s),newHash:Do(i.newHash,s),renameTo:i.path,similarity:i.similarity,contextLines:n}):r+=Ot({path:i.path,oldContent:a,newContent:c,oldMode:i.oldMode,newMode:i.newMode,oldHash:Do(i.oldHash,s),newHash:Do(i.newHash,s),isNew:i.status==="A",isDeleted:i.status==="D",contextLines:n})}return r}async function Ip(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=I(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)??V(e)}function vp(e){let t="";for(let n of e)t+=`${n.path}
395
- `;return t}function Tp(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}
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 Hp(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 oe(e,r.oldHash):"",s=await ia(e,r),i=ve(o)||ve(s),a,c;if(i)a="-",c="-";else{let{ins:f,del:l}=El(o,s);a=String(f),c=String(l)}if(r.status==="R"&&r.oldPath){let f=cn(r.oldPath,r.path);n+=`${a} ${c} ${f}
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 Ap(e,t){let n=await kl(e,t);return ur(n)}async function Dp(e,t){let n=await kl(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=Kn(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 ia(e,t){if(!t.newHash)return"";if(t.newFromWorkTree&&e.workTree){let n=I(e.workTree,t.path),r=await ss(e.fs,n);return oa.decode(r)}return oe(e,t.newHash)}async function Mp(e,t){if(!t.newHash)return new Uint8Array(0);if(t.newFromWorkTree&&e.workTree){let n=I(e.workTree,t.path);return ss(e.fs,n)}return Ct(e,t.newHash)}function El(e,t){let n=kt(e),r=kt(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 kl(e,t){let n=[];for(let r of t){if(r.status==="U"){n.push({path:r.path,sortKey:r.path,insertions:0,deletions:0,isUnmerged:!0});continue}let o=r.status==="R"&&r.oldPath?cn(r.oldPath,r.path):r.path,s=r.oldHash?await Ct(e,r.oldHash):new Uint8Array(0),i=await Mp(e,r);if(Hn(s)||Hn(i))n.push({path:o,sortKey:r.path,insertions:0,deletions:0,isBinary:!0,oldSize:s.byteLength,newSize:i.byteLength});else{let a=oa.decode(s),c=oa.decode(i),{ins:f,del:l}=El(a,c);n.push({path:o,sortKey:r.path,insertions:f,deletions:l})}}return n}ce();We();Sn();me();qe();pe();function gr(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 jp(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(!jp(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 xl(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:Y.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 S("--depth and --unshallow cannot be used together");if(n.unshallow&&!await Po(s))return S("--unshallow on a complete repository does not make sense");let i=n.depth;if(n.unshallow&&(i=ws),n.all){if(n.remote)return S("fetch --all does not take a remote argument");let c=await ge(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 Rl(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 Rl(s,a,n.refspec,n.prune,n.tags,r.env,t,i)}})}async function Rl(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 S(G);throw A}if(!c)return S(`'${t}' does not appear to be a git repository`);let{transport:f,config:l}=c,d;n&&n.length>0?d=n.map(gr):d=[gr(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 be(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=Mo(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),E=w.filter(A=>!y.has(A)),k,R=a!==void 0?await vr(e):void 0;a!==void 0&&(k={depth:a,existingShallows:R});let C=E.length>0?E:k?w:[];if(C.length>0){let A=await f.fetch(C,p,k);A.shallowUpdates&&await Tr(e,A.shallowUpdates,R)}let P=await Qt(e,s),H=[];H.push(`From ${l.url}
403
- `);for(let A of x){let G=await B(e,A.localRef);await X(e,A.localRef,A.remote.hash),await Xe(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=jo(A.remote.name),T=jo(A.localRef);if(G){if(G!==A.remote.hash){let F=V(G),_=V(A.remote.hash);H.push(` ${F}..${_} ${v} -> ${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}
404
411
  `)}}else{let _=A.remote.name.startsWith("refs/tags/")?" * [new tag]":" * [new branch]";H.push(`${_} ${v} -> ${T}
405
- `)}}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 Xe(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] ${jo(A.name)} -> ${jo(A.name)}
406
- `))}if(r){let A=`refs/remotes/${t}`,G=await be(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
- `))}}let D=u.find(A=>A.name==="HEAD");if(D){let A=I(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}ce();$e();fe();me();qe();pe();ce();$e();fe();me();qe();pe();async function Cl(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await be(e,"refs");for(let a of r)t.add(a.hash);let o=I(e.gitDir,"logs");await e.fs.exists(o)&&await Pl(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 Kt(e,a)&&i.push(a);return i}async function Pl(e,t,n,r){let o=await e.fs.readdir(t);for(let s of o){let i=I(t,s),a=await e.fs.stat(i);if(a.isDirectory)await Pl(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();me();async function Gp(e,t){let n=new Set,r=I(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(I(r,i)),c=new zt(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 aa(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 Gp(t,r);if(a.length===0)return null;let c=a.length,f=So(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 Ec(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=I(t.gitDir,"objects","pack");await n.mkdir(w,{recursive:!0});let b=`pack-${g}`,x=I(w,`${b}.pack`),y=I(w,`${b}.idx`);await n.writeFile(x,m),await n.writeFile(y,h);let E=new Set(f.map(k=>k.hash));if(t.objectStore.invalidatePacks?.(),o){let k=await n.readdir(w);for(let P of k){if(!P.endsWith(".idx"))continue;let H=P.slice(0,-4);if(H===b)continue;let D=I(w,`${H}.idx`),O=!0;try{let A=await n.readFileBuffer(D),G=new zt(A);for(let v of G.allHashes())if(!E.has(v)){O=!1;break}}catch{O=!1}if(O){try{await n.rm(I(w,`${H}.pack`))}catch{}try{await n.rm(D)}catch{}}}let R=I(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=I(R,P),D;try{D=await n.readdir(H)}catch{continue}for(let O of D){let A=`${P}${O}`;E.has(A)&&await n.rm(I(H,O))}try{(await n.readdir(H)).length===0&&await n.rm(H,{recursive:!0})}catch{}}}return{totalCount:c,deltaCount:l,packHash:g}}function ca(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 $l(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 Cl(s),a=await aa({gitCtx:s,fs:r.fs,tips:i,cleanup:n.delete,all:n.all});return a?{stdout:"",stderr:`${ca(a.totalCount,a.deltaCount)}
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}
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}
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 Ol(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 vc(s),await bt(s);let i=await Np(s);if(i.length>0){let a=n.aggressive?250:10,c=n.aggressive?250:50,f=await aa({gitCtx:s,fs:r.fs,tips:i,window:a,depth:c,cleanup:!0,all:!0});if(await _p(s.gitDir,r.fs),f)return{stdout:"",stderr:`${ca(f.totalCount,f.deltaCount,!0)}
412
- `,exitCode:0}}return{stdout:"",stderr:"",exitCode:0}}})}var Lp=2160*60*60;async function Np(e){let t=new Set,n=await Z(e);n&&t.add(n);let r=await be(e,"refs");for(let f of r)t.add(f.hash);let s=Math.floor(Date.now()/1e3)-Lp,i=I(e.gitDir,"logs");await e.fs.exists(i)&&await Sl(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 Kt(e,f)&&c.push(f);return c}async function Sl(e,t,n,r,o){let s=await e.fs.readdir(t);for(let i of s){let a=I(t,i),c=await e.fs.stat(a);if(c.isDirectory){await Sl(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 jn(e,f,d);for(let m of d)m.newHash!==te&&o.add(m.newHash)}}}async function _p(e,t){let n=I(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(I(n,o),{recursive:!0})}catch{}}ce();function Fp(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 Il(e,t,n,r){if(Fp(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 Up(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function vl(e,t){let n=t?.fixed?Up(e):e;t?.wordRegexp&&(n=`\\b${n}\\b`);let r=t?.ignoreCase?"i":"";try{return new RegExp(n,r)}catch{return null}}$e();fe();me();He();async function Bp(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=I(e.workTree,o.path);r.push({path:o.path,getContent:async()=>{try{return await e.fs.readFile(s)}catch{return""}}})}return r}async function Wp(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 qp(e,t){return(await ze(e,t)).filter(r=>!r.mode.startsWith("120")).map(r=>({path:r.path,getContent:()=>oe(e,r.hash)}))}function zp(e){let t=0;for(let n=0;n<e.length;n++)e[n]==="/"&&t++;return t}function Kp(e,t,n){return n||t===""?e:rt(t,e)}function Tl(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:Y.number().describe("Descend at most <n> levels of directories"),maxCount:Y.number().alias("m").describe("Maximum number of matches per file"),afterContext:Y.number().alias("A").describe("Show <n> lines after match"),beforeContext:Y.number().alias("B").describe("Show <n> lines before match"),context:Y.number().alias("C").describe("Show <n> lines before and after match"),heading:$().describe("Show filename above matches"),break:$().describe("Print empty line between results from different files"),pattern:Y.string().alias("e").repeatable().describe("Match <pattern>")},handler:async(n,r,o)=>{let s=await 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 S("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=vl(U,{fixed:!!n.fixedStrings,ignoreCase:!!n.ignoreCase,wordRegexp:!!n.wordRegexp});if(!N)return S(`command line, '${U}': invalid regular expression`);m.push(N)}let u=[];if(l.length>0)for(let U of l){let N=await gt(i,U);if(M(N))return N;let K;try{K=await Le(i,N)}catch{return S(`bad revision '${U}'`)}let ne=await j(i,K),J=await qp(i,ne.tree);u.push({prefix:`${U}:`,files:J})}else if(n.cached)u.push({prefix:"",files:await Wp(i)});else{if(!i.workTree)return S("this operation must be run in a work tree");u.push({prefix:"",files:await Bp(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,E=!!n.count,k=!!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&&!ye(p,K.path)||g!==void 0&&zp(K.path)>g)continue;let ne=await K.getContent(),J=Il(ne,m,D,H),re=Kp(K.path,h,!!n.fullName),ke=U.prefix;if(J.binary){if(T=!0,k)return{stdout:"",stderr:"",exitCode:0};x?v.push(`${ke}${re}`):!y&&!E&&v.push(`Binary file ${ke}${re} matches`);continue}if(J.matches.length===0){y&&v.push(`${ke}${re}`);continue}if(T=!0,k)return{stdout:"",stderr:"",exitCode:0};if(y)continue;if(x){v.push(`${ke}${re}`);continue}if(E){let ie=w!==void 0?Math.min(J.matches.length,w):J.matches.length;v.push(`${ke}${re}:${ie}`);continue}let Me=J.matches;if(w!==void 0&&(Me=Me.slice(0,w)),G)Vp(v,ne,Me,ke,re,P,A,O,R,C,F);else if(R){!F&&C&&v.push(""),v.push(`${ke}${re}`);for(let ie of Me)b?v.push(`${ie.lineNo}:${ie.line}`):v.push(ie.line)}else{!F&&C&&v.push("");for(let ie of Me){let Pe=P?"":`${ke}${re}:`;b?v.push(`${Pe}${ie.lineNo}:${ie.line}`):v.push(`${Pe}${ie.line}`)}}F=!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 Vp(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),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],k=m.has(x)?":":"-";c?e.push(`${x}${k}${y}`):e.push(`${p}${k}${x}${k}${y}`)}}}me();Mn();function Hl(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:Y.string().alias("b").describe("Name for the initial branch")},examples:["git init","git init --bare","git init my-project"],handler:async(n,r)=>{let o=n.initialBranch??t?.configOverrides?.locked?.["init.defaultBranch"]??t?.configOverrides?.defaults?.["init.defaultBranch"],s=n.directory?vt(r.cwd,n.directory):r.cwd;n.directory&&await r.fs.mkdir(s,{recursive:!0});let{ctx:i,reinit:a}=await Bs(r.fs,s,{bare:n.bare,...o?{initialBranch:o}:{}}),c="";a&&o&&(c=`warning: re-init: ignored --initial-branch=${o}
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}
417
424
  `);let f=n.bare?"bare ":"";return{stdout:`${a?"Reinitialized existing":"Initialized empty"} ${f}Git repository in ${i.gitDir}/
418
- `,stderr:c,exitCode:0}}})}ce();ar();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:Al(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,Al(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 Al(e,t){return e.length>=t?e:e+" ".repeat(t-e.length)}ce();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+=jl(c.timestamp,c.timezone),s+=3;continue;case"i":o+=Gl(c.timestamp,c.timezone),s+=3;continue;case"d":o+=Lo(c.timestamp,c.timezone,t.dateMode),s+=3;continue;case"D":o+=Nl(c.timestamp,c.timezone),s+=3;continue;case"r":o+=Ll(c.timestamp),s+=3;continue}}switch(i){case"H":o+=n,s+=2;continue;case"h":o+=V(n),s+=2;continue;case"T":o+=r.tree,s+=2;continue;case"t":o+=V(r.tree),s+=2;continue;case"P":o+=r.parents.join(" "),s+=2;continue;case"p":o+=r.parents.map(V).join(" "),s+=2;continue;case"s":o+=fa(r.message),s+=2;continue;case"b":o+=Yp(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 fa=ue;function Yp(e){let t=e.indexOf(`
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 No(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?V(o):o,c=fa(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(V).join(" ")}`),a.push(`Author: ${s.author.name} <${s.author.email}>`),a.push(""),a.push(` ${fa(s.message)}`),a.join(`
422
- `)}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(V).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(`
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(`
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(V).join(" ")}`),a.push(`Author: ${s.author.name} <${s.author.email}>`),a.push(`AuthorDate: ${Lo(s.author.timestamp,s.author.timezone,t.dateMode)}`),a.push(`Commit: ${s.committer.name} <${s.committer.email}>`),a.push(`CommitDate: ${Lo(s.committer.timestamp,s.committer.timezone,t.dateMode)}`),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 Xp(t,n);default:return Zp(t,n)}}function Xp(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 Zp(e,t){let{hash:n,commit:r}=e,o=e.decorations?e.decorations(n):"",s=[];t||s.push(""),s.push(o?`commit ${n} ${o}`:`commit ${n}`),r.parents.length>=2&&s.push(`Merge: ${r.parents.map(V).join(" ")}`),s.push(`Author: ${r.author.name} <${r.author.email}>`),s.push(`Date: ${Lo(r.author.timestamp,r.author.timezone,e.dateMode)}`),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 Dl=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Ml=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Jp(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 _o(e,t){let n=Jp(t);return new Date((e+n*60)*1e3)}function Qp(e){return`${e.slice(0,3)}:${e.slice(3)}`}function jl(e,t){let n=_o(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":Qp(t);return`${r}-${o}-${s}T${i}:${a}:${c}${f}`}function Gl(e,t){let n=_o(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 Ll(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 eg(e,t){let n=_o(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 tg(e,t){return`${e} ${t}`}function ng(e){return e.toString()}function rg(e,t){let n=new Date(e*1e3),r=Dl[n.getDay()]?.slice(0,3),o=Ml[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 Lo(e,t,n){switch(n){case"short":return eg(e,t);case"iso":return Gl(e,t);case"iso-strict":return jl(e,t);case"relative":case"human":return Ll(e);case"rfc":return Nl(e,t);case"raw":return tg(e,t);case"unix":return ng(e);case"local":return rg(e,t);default:return Rn(e,t)}}function Nl(e,t){let n=_o(e,t),r=Dl[n.getUTCDay()]?.slice(0,3),o=Ml[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}`}fe();pe();gn();He();function Ul(e,t){e.command("log",{description:"Show commit logs",transformArgs:n=>n.map(r=>/^-(\d+)$/.test(r)?`-n${r.slice(1)}`:r),args:[q.string().name("revisions").variadic().optional()],options:{maxCount:Y.number().alias("n").describe("Limit the number of commits to output"),oneline:$().describe("Condense each commit to a single line"),all:$().describe("Walk all refs, not just HEAD"),author:Y.string().describe("Filter by author (regex or substring)"),grep:Y.string().describe("Filter by commit message (regex or substring)"),since:Y.string().describe("Show commits after date"),after:Y.string().describe("Synonym for --since"),until:Y.string().describe("Show commits before date"),before:Y.string().describe("Synonym for --until"),decorate:$().describe("Show ref names next to commit hashes"),reverse:$().describe("Output commits in reverse order"),format:Y.string().describe("Pretty-print format string"),pretty:Y.string().describe("Pretty-print format or preset name"),patch:$().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:Y.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?Ao(f[0]):null;if(l){let J=async Pe=>{let nt=await Ke(i,Pe);if(!nt)return Vt(Pe);try{return await Le(i,nt)}catch{return Vt(Pe)}},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 Me=re,ie=ke;if(l.type==="two-dot")a=[ie],c=[Me];else{a=[Me,ie];let Pe=await Ft(i,Me,ie);c=Pe.length>0?Pe:void 0}if(n.all){let Pe=await be(i);for(let On of Pe)try{let Be=await Le(i,On.hash);a.includes(Be)||a.push(Be)}catch{}let nt=await Z(i);nt&&!a.includes(nt)&&a.push(nt)}}else if(n.all){let J=await be(i),re=new Set;for(let Me of J)try{re.add(await Le(i,Me.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 Ke(i,re);if(!ke)return Vt(re);try{J.push(await Le(i,ke))}catch{return Vt(re)}}a=J}else{let J=await Qe(i);if(M(J))return J;a=[J]}if(a.length===0)return S("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?_l(n.author):null,u=n.grep?_l(n.grep):null,h=n.since??n.after,p=n.until??n.before,g=h?qi(h):null,w=p?qi(p):null,b=n.format??n.pretty,x=null,y=null,E=!1;if(n.oneline)y="oneline",E=!0;else if(b!==void 0){let J=No(b);x=J.formatStr,y=J.preset}let k=new Set(["default","short","iso","iso-strict","relative","rfc","raw","unix","local","human"]);if(n.date&&!k.has(n.date))return{stdout:"",stderr:`fatal: unknown date format ${n.date}
431
- `,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 S("options '--graph' and '--reverse' cannot be used together");let D=n.decorate||x!=null&&(x.includes("%d")||x.includes("%D"))?await ig(i):null,O=D?J=>Fl(D,J):void 0,A=D?J=>{let re=Fl(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?og(i,a,d,c?await sg(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 ag(U,i,x,y,E,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},Me=Rs(x,ke),ie=await la(i,re.commit,C);ie&&(Me+=`
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+=`
432
439
 
433
- ${ie.replace(/\n$/,"")}`),J.push(Me)}return{stdout:J.length>0?`${J.join(`
440
+ ${ae.replace(/\n$/,"")}`),J.push(je)}return{stdout:J.length>0?`${J.join(`
434
441
  `)}
435
- `:"",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},Me=xs(N,ke,J===0,E),ie=await la(i,re.commit,C);ie&&(Me+=`${K?`
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?`
436
443
  `:`
437
444
 
438
- `}${ie.replace(/\n$/,"")}`),ne.push(Me)}return{stdout:ne.length>0?`${ne.join(`
439
- `)}
440
- `:"",stderr:"",exitCode:0}}})}async function sg(e,t){let n=new Set;for await(let r of jt(e,t))n.add(r.hash);return n}function _l(e){try{let t=new RegExp(e);return n=>t.test(n)}catch{return t=>t.includes(e)}}async function*og(e,t,n,r,o){let s=new Set(r),i=new Fn,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=>ye(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=>ye(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=>ye(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 ig(e){let t=await Q(e),n=t?.type==="symbolic"?Ce(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 be(e,"refs/heads");for(let f of i)s(f.hash,Ce(f.name),f.name);let a=await be(e,"refs/remotes");for(let f of a)s(f.hash,f.name.replace("refs/remotes/",""),f.name);let c=await be(e,"refs/tags");for(let f of c){let l=f.hash;try{l=await Le(e,f.hash)}catch{}s(l,`tag: ${f.name.replace("refs/tags/","")}`,f.name)}return{headTarget:n,headHash:r,byHash:o}}function Fl(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 ag(e,t,n,r,o,s,i,a,c){let f=new Go,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=Rs(n,p):g=xs(l,p,!0,o),f.update(h.hash,h.commit.parents),u>0&&!d&&n===null&&m.push(f.paddingPrefix());let w=g.split(`
441
- `),b=0;for(;;){let{prefix:E,isCommitLine:k}=f.nextLine();if(k){m.push(E+(w[b++]??""));break}m.push(E)}for(;b<w.length;){let{prefix:E}=f.nextLine();m.push(E+w[b++])}for(;!f.isFinished();){let{prefix:E}=f.nextLine();m.push(E)}let x=80-f.width,y=await la(t,h.commit,s,x);if(y){let E=y.replace(/\n$/,"").split(`
442
- `);if(d||n!==null)for(let k of E)m.push(f.paddingPrefix()+k);else{m.push(f.paddingPrefix());for(let k of E)m.push(f.paddingPrefix()+k)}}}return{stdout:m.length>0?`${m.join(`
443
- `)}
444
- `:"",stderr:"",exitCode:0}}async function la(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 cg(i,a);case"name-status":return fg(i,a);case"stat":return lg(e,i,a,r);case"shortstat":return dg(e,i,a);case"numstat":return ug(e,i,a);case"patch":return mg(e,i,a)}}function cg(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}
445
- `).join("")}function fg(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}
446
- `).join("")}async function lg(e,t,n,r){let{fileStats:o}=await Vn(e,t,n);return o.sort((s,i)=>s.sortKey<i.sortKey?-1:s.sortKey>i.sortKey?1:0),ur(o,r)}async function dg(e,t,n){let{fileStats:r}=await Vn(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=Kn(r.length,o,s);return i?`${i}
447
- `:""}async function ug(e,t,n){let r=[];for(let s of t)r.push({key:s.path,oldHash:s.oldHash,newHash:s.newHash,display:s.path});for(let s of n)r.push({key:s.newPath,oldHash:s.oldHash,newHash:s.newHash,display:cn(s.oldPath,s.newPath)});r.sort((s,i)=>s.key<i.key?-1:s.key>i.key?1:0);let o="";for(let s of r){let i=s.oldHash?await oe(e,s.oldHash):"",a=s.newHash?await oe(e,s.newHash):"";if(ve(i)||ve(a))o+=`- - ${s.display}
448
- `;else{let c=kt(i),f=kt(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}
449
- `}}return o}async function mg(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+=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 oe(e,i.oldHash):"",c=i.newHash?await oe(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}ce();$e();me();tr();ot();function Wl(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=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 z(i),y=g?"\0":`
450
- `,E=o.passthrough.length>0?o.passthrough.map(C=>{let P=r.cwd!==c?hg(c,r.cwd):"";return Ue(C,P)}):null,k=[];if(f)for(let C of x.entries){if(E&&!ye(E,C.path))continue;let P=w?C.stage>0?"M":"H":null;k.push(Bl(C,h,P))}if(u&&!f)for(let C of x.entries)C.stage!==0&&(E&&!ye(E,C.path)||k.push(Bl(C,!0,w?"M":null)));if(l||d){let C=await pg(i,c,x);for(let{path:P,status:H}of C){if(H==="modified"&&!l||H==="deleted"&&!d||E&&!ye(E,P))continue;let D=w?H==="deleted"?"R":"C":null;k.push(D?`${D} ${P}`:P)}}if(m){let C=await gg(i,c,x,p);for(let P of C)E&&!ye(E,P)||k.push(w?`? ${P}`:P)}return{stdout:k.length>0?k.join(y)+y:"",stderr:"",exitCode:0}}})}function Bl(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 hg(e,t){return t===e?"":t.startsWith(`${e}/`)?t.slice(e.length+1):""}async function pg(e,t,n){let r=[];for(let o of n.entries){if(o.stage!==0)continue;let s=I(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 Gn(e.fs,s)!==o.hash&&r.push({path:o.path,status:"modified"})}return r}async function gg(e,t,n,r){let o=new Set(n.entries.map(i=>i.path));return(await st(e,t,"",{skipIgnore:!r})).filter(i=>!o.has(i))}ce();ar();We();$e();fe();qe();pe();gn();He();function ql(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:Y.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 kg(s,r.env);if(n.continue)return Eg(s,r.env,t);let i=n.branch;if(!i)return S("you must specify a branch to merge");let a=await Qe(s);if(M(a))return a;let c=await z(s),f=yn(c,"Merging");if(f)return f;if(await B(s,"MERGE_HEAD"))return S(`You have not concluded your merge (MERGE_HEAD exists).
451
- Please, commit your changes before you merge.`);if(await B(s,"CHERRY_PICK_HEAD"))return S(`You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).
452
- Please, commit your changes before you merge.`);let m=await Ke(s,i);if(!m)return L(`merge: ${i} - not something we can merge
453
- `);let u=await Le(s,m),h=await Ft(s,a,u),p=h[0]??null;if(h.length===0)return S("refusing to merge unrelated histories");if(p===u)return await we(s,"MERGE_MSG"),{stdout:`Already up to date.${n.squash?" (nothing to squash)":""}
454
- `,stderr:"",exitCode:0};let g=!!n.noFf,w=!!n.ffOnly;if(!n.noFf&&!n.ffOnly){let E=await xe(s,"merge.ff");E==="false"?g=!0:E==="only"&&(w=!0)}if(g&&w)return S("--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:
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:
455
462
  hint:
456
463
  hint: git merge --no-ff
457
464
  hint:
@@ -461,44 +468,44 @@ hint: git rebase
461
468
  hint:
462
469
  hint: Disable this message with "git config set advice.diverging false"
463
470
  fatal: Not possible to fast-forward, aborting.
464
- `,128);if(await B(s,"REVERT_HEAD")&&await Lt(s),b&&!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 we(s,"MERGE_MSG");let R=E?.type==="symbolic"?E.target:"HEAD";await ae(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,y=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(`
465
472
  `)?x:`${x}
466
- `:void 0;return n.squash?yg(s,a,u,i,r.env,t,y):wg(s,a,u,i,r.env,g,t,y)}})}async function wg(e,t,n,r,o,s=!1,i,a){let c=await j(e,t),f=await Q(e),l=f?.type==="symbolic"?Ce(f.target):"HEAD",d=await xe(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 we(e,"MERGE_MSG"),h.failureKind==="staged"&&f?.type==="symbolic"&&await ae(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 mr(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+=`
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+=`
467
474
  # Conflicts:
468
475
  ${A.map(v=>`# ${v}`).join(`
469
476
  `)}
470
- `,await Ae(e,"MERGE_MSG",H),await Ae(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(`
471
478
  `)}
472
- `,stderr:"",exitCode:1}}await we(e,"MERGE_MSG");let p=h.mergedTreeHash,g=await an(e,o);if(M(g))return g;let w=await tt(e,o);if(M(w))return w;let b=a??await mr(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 E=await i?.hooks?.preMergeCommit?.({repo:e,mergeMessage:b,treeHash:p,headHash:t,theirsHash:n});if(ee(E))return{stdout:"",stderr:E.message??"",exitCode:1};let k=await wt(e,p,[t,n],g,w,b),R=f?.type==="symbolic"?f.target:"HEAD";await ae(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 C=await ln(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(`
473
480
  `)}
474
481
  `:""}Merge made by the 'ort' strategy.
475
- ${C}`,stderr:"",exitCode:0}}async function bg(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: ${Rn(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(`
476
483
  `))r.push(` ${i}`);r.push("")}return r.join(`
477
- `)}async function yg(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 ${V(t)}..${V(n)}
478
- `:"",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 we(e,"MERGE_MSG"),!m&&p.failureKind==="staged"&&c?.type==="symbolic"&&await ae(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:
479
486
 
480
487
  ${i}`:g=`Squashed commit of the following:
481
488
 
482
- ${await bg(e,t,n)}`,await Ae(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=`
483
490
  # Conflicts:
484
491
  ${Bt({version:2,entries:h.entries}).sort().map(P=>`# ${P}`).join(`
485
492
  `)}
486
- `,R=await Oe(e,"MERGE_MSG");return await Ae(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(`
487
494
  `)}
488
- `,stderr:"",exitCode:1}}let w=p.mergedTreeHash,b=await ln(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(`
489
496
  `)}
490
497
  `:"";return{stdout:`${m?`${u}Fast-forward
491
498
  `:""}${x}Squash commit -- not updating HEAD
492
499
  ${m?b:""}`,stderr:m?"":`Automatic merge went well; stopped before committing as requested
493
- `,exitCode:0}}async function Eg(e,t,n){let r=await B(e,"MERGE_HEAD");if(!r)return S("There is no merge in progress (MERGE_HEAD missing).");let o=await z(e),s=yn(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=Yt(c);else{let C=await Q(e),P=C?.type==="symbolic"?Ce(C.target):"HEAD";c=await mr(e,"unknown",P)}let f=Ge(o),l=await Fe(e,f),d=await an(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 wt(e,l,[i,r],d,m,u);await cs(e);let b=await Q(e),x=ue(u),y=b?.type==="symbolic"?b.target:"HEAD";await ae(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 E=await ln(e,a.tree,l),k=b?.type==="symbolic"?Ce(b.target):"detached HEAD";return{stdout:`${Dt(k,w,c)}
494
- ${E}`,stderr:"",exitCode:0}}async function kg(e,t){return _n(e,t,{operationRef:"MERGE_HEAD",noOpError:S("There is no merge to abort (MERGE_HEAD missing)."),operationName:"merge",clearState:cs})}ce();$e();me();ot();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=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>
495
- `);let f=c[c.length-1],l=c.slice(0,-1),d=vt(r.cwd,f),m=rt(a,d);if(m.startsWith(".."))return S(`'${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 S(h?`destination '${f}' is not a directory`:`destination directory '${f}' does not exist`);let g=[];for(let w of l){let b=vt(r.cwd,w),x=rt(a,b);if(x.startsWith("..")){if(n.skip)continue;return S(`'${w}' is outside repository at '${a}'`)}if(!await r.fs.exists(b)){if(n.skip)continue;return S(`bad source, source=${x}, destination=${m}`)}let k=(await r.fs.stat(b)).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 S(O?`conflicted, source=${x}, destination=${m}`:`not under version control, source=${x}, destination=${m}`)}let C,P;if(p){let O=_r(x);C=m===""||m==="."?O:`${m}/${O}`,P=I(d,O)}else C=m,P=d;if(await r.fs.exists(P)&&!n.force)if((await r.fs.stat(P)).isDirectory){let A=_r(x);C=`${C}/${A}`,P=I(P,A)}else{if(n.skip)continue;return S(`destination exists, source=${x}, destination=${C}`)}if(x===C){if(n.skip)continue;return S(`can not move directory into itself, source=${x}, destination=${C}`)}let D=Jt(P);if(!await r.fs.exists(D)){if(n.skip)continue;return S(`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=C+v,F=P+v;g.push({srcRel:G.path,dstRel:T,srcAbs:I(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=Jt(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=js(u,w.srcRel,0);if(y){u=lt(u,w.srcRel);let E={...y,path:w.dstRel};u=xt(u,E)}}for(let w of g)await sr(r.fs,Jt(w.srcAbs),a);return await le(s,u),{stdout:"",stderr:"",exitCode:0}}})}ce();We();Sn();$e();fe();me();ht();qe();pe();ce();We();$e();fe();ce();fe();mn();Qn();He();async function da(e,t){let n=await Ee(e,t);if(n.type!=="commit")return null;let r=tn(n.content),o=null;if(r.parents.length>0&&r.parents[0]){let f=await Ee(e,r.parents[0]);f.type==="commit"&&(o=tn(f.content).tree)}let s=await Ve(e,o,r.tree);if(s.length===0)return null;let i=vn(),a=!1,c=[...s].sort((f,l)=>Se(f.path,l.path));for(let f of c){let l="",d="";if(f.oldHash)try{let u=await Ee(e,f.oldHash);l=new TextDecoder().decode(u.content)}catch{}if(f.newHash)try{let u=await Ee(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(`
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(`
496
503
  `)){if(!u||u.startsWith("index "))continue;let p=(u.startsWith("@@")?u.replace(/^@@ [^@]* @@/,"@@ @@"):u).replace(/[ \t\r]/g,"");p&&(i.update(p),i.update(`
497
- `),a=!0)}}return a?i.hex():null}qe();pe();He();on();ot();async function Rg(e){let t=await Q(e);return t?.type==="symbolic"?Ce(t.target):"detached HEAD"}function Kl(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.
498
505
  `:`Current branch ${e} is up to date.
499
- `}async function xg(e,t,n){if(!e.workTree)return null;let r=await de(e,t),o=new Map(Ge(n).map(a=>[a.path,a])),s=new Set(await st(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
500
- `)}return null}async function Cg(e,t,n,r){if(!e.workTree)return null;let o=await de(e,t),s=new Set(n.entries.map(c=>c.path)),i=new Set(await st(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}
501
- `,exitCode:128}:null}async function Vl(e,t,n){if(!e.workTree)return null;let r=new Map(Ge(t).map(i=>[i.path,i])),o=new Set(await st(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 Yl(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:
502
509
  ${e.map(r=>` ${r}`).join(`
503
510
  `)}
504
511
  Please move or remove them before you merge.
@@ -512,20 +519,20 @@ hint: edit the todo list first:
512
519
  hint:
513
520
  hint: git rebase --edit-todo
514
521
  hint: git rebase --continue
515
- `}async function ua(e,t,n,r,o,s){await ae(e,t,"HEAD",n,r,`rebase (start): checkout ${s}`),o!=="detached HEAD"&&(await ae(e,t,o,n,r,`rebase (finish): ${o} onto ${r}`),await ae(e,t,"HEAD",r,r,`rebase (finish): returning to ${o}`))}async function Fo(e,t,n,r){let o=await j(e,t),s=await xg(e,o.tree,n);if(s)return s;let i=await bn(e,o.tree,n);return i.success&&(await le(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 ma(e,t,n,r,o,s,i,a){let c=r.startsWith("refs/heads/")?Ce(r):"HEAD",f=await z(e),l=Bt(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
516
523
  `).join(""),stderr:`error: cannot rebase: You have unstaged changes.
517
524
  error: additionally, your index contains uncommitted changes.
518
525
  error: Please commit or stash them.
519
- `,exitCode:1};let d=await j(e,n),m=await de(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(`
520
527
  `)}
521
- `)}}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 of(e,o,n),p=h.right;if(p.length===0){if(s!==n){let O=await Fo(e,s,f,r);return O||(await ua(e,t,n,s,r,i),{stdout:"",stderr:`Successfully rebased and updated ${r}.
522
- `,exitCode:0})}return{stdout:Kl(c),stderr:"",exitCode:0}}let g=[],w=h.left,b=new Set;for(let O of w){let A=await da(e,O.hash);A&&b.add(A)}let x=[];if(b.size>0)for(let O of p){let A=await da(e,O.hash);A&&b.has(A)?g.push(`warning: skipped previously applied commit ${V(O.hash)}`):x.push(O)}else x.push(...p);let y="";if(g.length>0&&(y=`${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(`
523
530
  `)}
524
531
  hint: use --reapply-cherry-picks to include skipped commits
525
532
  hint: Disable this message with "git config set advice.skippedCherryPicks false"
526
- `),x.length===0){if(s!==n){let O=await Fo(e,s,f,r);if(O)return O.stderr=y+O.stderr,O;await ua(e,t,n,s,r,i)}return{stdout:"",stderr:`${y}Successfully rebased and updated ${r}.
527
- `,exitCode:0}}let E=x.map(O=>({hash:O.hash,subject:ue(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 C=E.splice(0,R);if(E.length===0){if(k===n)return{stdout:Kl(c),stderr:y,exitCode:0};let O=await Fo(e,k,f,r);return O?(O.stderr=y+O.stderr,O):(await ua(e,t,n,k,r,i),{stdout:"",stderr:`${y}Successfully rebased and updated ${r}.
528
- `,exitCode:0})}let P=await Fo(e,k,f,"detached HEAD");if(P)return P.stderr=y+P.stderr,P;await he(e,"CHERRY_PICK_HEAD"),await he(e,"REVERT_HEAD"),await we(e,"MERGE_MSG"),await we(e,"MERGE_MODE"),await ae(e,t,"HEAD",n,k,`rebase (start): checkout ${i}`);let H={headName:r,origHead:n,onto:s,todo:E,done:C,msgnum:R,end:R+E.length};await Di(e,H),await X(e,"ORIG_HEAD",n);let D=await ha(e,t);return y&&(D.stderr=y+D.stderr),D}function Xl(e,t){e.command("rebase",{description:"Reapply commits on top of another base tip",args:[q.string().name("upstream").describe("Upstream branch to rebase onto").optional()],options:{onto:Y.string().describe("Starting point at which to create new commits"),abort:$().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 Og(s,r.env);if(n.continue)return Sg(s,r.env);if(n.skip)return Ig(s,r.env);let i=n.upstream;if(!i)return S("no upstream configured and no upstream argument given");if(await Nt(s))return S(`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
529
536
  I wonder if you are in the middle of another rebase. If that is the
530
537
  case, please try
531
538
  git rebase (--continue | --abort | --skip)
@@ -533,9 +540,9 @@ If that is not the case, please
533
540
  rm -fr ".git/rebase-merge"
534
541
  and run me again. I am stopping in case you still have something
535
542
  valuable there.
536
- `);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 De(s,i,`invalid upstream '${i}'`);if(M(l))return l;let d=l.hash,m,u=n.onto;if(u){let h=await De(s,u,`Does not point to a valid commit: '${u}'`);if(M(h))return h;m=h.hash}else m=d;return ma(s,r.env,a,f,d,m,i,t)}})}async function ha(e,t){let n=[],r=[];for(;;){let o=await yt(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 sf(e);let i=await Pg(e,s,t);if(i.conflict){if(i.rescheduleCurrent){let a=await yt(e);a&&(a.todo=[s,...a.todo],await Di(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 $g(e,n,t)}async function Pg(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
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
537
544
  `};if(s&&s===a){let G=await z(e);if(!i)return{conflict:!0,stdout:"",stderr:`fatal: missing parent commit during rebase
538
- `};let v=await ze(e,i.tree),T=await ze(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 Vl(e,G,_);if(U)return await X(e,"REBASE_HEAD",r),await co(e,r,o.author),{conflict:!0,stdout:"",stderr:Yl(U,t),rescheduleCurrent:!0};let N=await bn(e,o.tree,G);return N.success&&(await le(e,{version:2,entries:N.newEntries}),await Ne(e,N.worktreeOps)),await Dn(e,r),await ae(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=V(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([ze(e,c.tree),f?ze(e,f):Promise.resolve([]),ze(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)),E=[...h.entries,...y];E.sort((G,v)=>Se(G.path,v.path)||G.stage-v.stage);let k={version:2,entries:E},R=E.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 Vl(e,p,H);if(D)return await X(e,"REBASE_HEAD",r),await co(e,r,o.author),{conflict:!0,stdout:"",stderr:Yl(D,t),rescheduleCurrent:!0};if(await le(e,k),e.workTree){let G=await Nn(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 co(e,r,o.author),await Ae(e,"MERGE_MSG",o.message),await Ae(e,"rebase-merge/message",o.message);let G=h.messages.join(`
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(`
539
546
  `);return{conflict:!0,stdout:G?`${G}
540
547
  `:"",stderr:`error: could not apply ${l}... ${t.subject}
541
548
  hint: Resolve all conflicts manually, mark them as resolved with
@@ -545,12 +552,12 @@ hint: To abort and get back to the state before "git rebase", run "git rebase --
545
552
  hint: Disable this message with "git config set advice.mergeConflict false"
546
553
  Could not apply ${l}... # ${t.subject}
547
554
  `}}if(C===c.tree)return{conflict:!1,stdout:"",stderr:`dropping ${r} ${t.subject} -- patch contents already upstream
548
- `};let O=await tt(e,n);if(M(O))return{conflict:!0,stdout:"",stderr:O.stderr};let A=await wt(e,C,[a],o.author,O,o.message);return await ae(e,n,"HEAD",a,A,`rebase (pick): ${t.subject}`),{conflict:!1,stdout:"",stderr:""}}async function $g(e,t,n){let r=await yt(e);if(!r)return S("no rebase in progress");let o=await Z(e);if(!o)return S("no HEAD during rebase finish");r.headName!=="detached HEAD"&&(await X(e,r.headName,o),await Ye(e,"HEAD",r.headName),await bt(e),await ae(e,n,r.headName,r.origHead,o,`rebase (finish): ${r.headName} onto ${r.onto}`),await ae(e,n,"HEAD",o,o,`rebase (finish): returning to ${r.headName}`));let i=`Successfully rebased and updated ${r.headName}.
549
- `;return await he(e,"REBASE_HEAD"),await cr(e),await Mi(e),{stdout:"",stderr:t.join("")+i,exitCode:0}}async function Og(e,t){let n=await yt(e);if(!n)return S("no rebase in progress");let r=await Z(e),o=n.origHead,s=await j(e,o),i=await z(e),a=await Cg(e,s.tree,i,o);if(a)return a;let c=await bn(e,s.tree,i);c.success&&(await le(e,{version:2,entries:c.newEntries}),await Ne(e,c.worktreeOps)),n.headName!=="detached HEAD"?(await X(e,n.headName,o),await Ye(e,"HEAD",n.headName),await bt(e)):await Dn(e,o);let f=n.headName==="detached HEAD"?o:n.headName;return await ae(e,t,"HEAD",r,o,`rebase (abort): returning to ${f}`),await he(e,"REBASE_HEAD"),await cr(e),await Mi(e),{stdout:"",stderr:"",exitCode:0}}async function Sg(e,t){let n="";if(!await yt(e))return S("no rebase in progress");let o=await z(e);if(Ht(o))return L(`error: Committing is not possible because you have unmerged files.
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.
550
557
  hint: Fix them up in the work tree, and then use 'git add <file>'
551
558
  hint: as appropriate to mark resolution and make a commit.
552
559
  fatal: Exiting because of an unresolved conflict.
553
- `,128);let s=await B(e,"REBASE_HEAD");if(s){let a=await Z(e);if(!a)return S("Cannot read HEAD");let c=await j(e,a),f=Ge(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
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
554
561
  If these changes are meant to be squashed into the previous commit, run:
555
562
 
556
563
  git commit --amend
@@ -563,37 +570,37 @@ In both cases, once you're done, continue with:
563
570
 
564
571
  git rebase --continue
565
572
 
566
- `);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=Yt(g)),g||(g=u.message);let w=await tt(e,t);if(M(w))return w;let b=Mt(g),x=[a],y=await B(e,"MERGE_HEAD");y&&x.push(y);let E=await wt(e,l,x,p.author,w,b);y&&(await he(e,"MERGE_HEAD"),await we(e,"MERGE_MODE"));let k=ue(b);await ae(e,t,"HEAD",a,E,`rebase (continue): ${k}`);let R=await Rg(e),C=p.author.timestamp!==w.timestamp||p.author.timezone!==w.timezone,P=await fn(e,c.tree,l,p.author,w,C);n=`${Dt(R,E,b)}
567
- ${P}`}await he(e,"REBASE_HEAD"),await he(e,"CHERRY_PICK_HEAD"),await he(e,"REVERT_HEAD"),await we(e,"MERGE_MSG"),await we(e,"rebase-merge/message")}let i=await ha(e,t);return n&&(i.stdout=n+i.stdout),i}async function Ig(e,t){if(!await yt(e))return S("no rebase in progress");let r=await Z(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
568
575
  fatal: could not discard worktree changes
569
- `,exitCode:128};let o=await j(e,r),s=await z(e),i=await bn(e,o.tree,s);return i.success&&(await le(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 we(e,"MERGE_MSG"),await we(e,"MERGE_MODE"),await we(e,"rebase-merge/message"),ha(e,t)}function Zl(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:Y.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 S("--depth and --unshallow cannot be used together");if(n.unshallow&&!await Po(s))return S("--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 z(s);if(Ht(c))return L(`error: Pulling is not possible because you have unmerged files.
570
- `,128);let f=n.remote,l=n.branch;if(!f){let se=await Q(s);if(se?.type==="symbolic"){let je=se.target.startsWith("refs/heads/")?se.target.slice(11):se.target,Zt=(await ge(s))[`branch "${je}"`];Zt&&(f=Zt.remote||"origin",!l&&Zt.merge&&(l=Zt.merge.startsWith("refs/heads/")?Zt.merge.slice(11):Zt.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 je=se.target.startsWith("refs/heads/")?se.target.slice(11):se.target,un=await xe(s,`branch.${je}.rebase`);(un==="true"||un!=="false"&&await xe(s,"pull.rebase")==="true")&&(d=!0)}else await xe(s,"pull.rebase")==="true"&&(d=!0)}let m;try{m=await Mr(s,f,r.env)}catch(se){let je=se instanceof Error?se.message:"";if(je.startsWith("network"))return S(je);throw se}if(!m)return S(`'${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=gr(h.fetchRefspec),b=await u.advertiseRefs();if(b.length===0)return S("Couldn't find remote ref HEAD");let y=(await be(s)).map(se=>se.hash),E=await B(s,"HEAD");E&&y.push(E);let k=[],R=new Set,C=[];for(let se of b){if(se.name==="HEAD")continue;let je=Mo(w,se.name);je!==null&&(C.push({remote:se,localRef:je}),R.has(se.hash)||(R.add(se.hash),k.push(se.hash)))}let P=new Set(y),H=k.filter(se=>!P.has(se)),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 se=await u.fetch(A,y,D);se.shallowUpdates&&await Tr(s,se.shallowUpdates,O)}let G=await Qt(s,r.env);for(let se of C){let je=await B(s,se.localRef);await X(s,se.localRef,se.remote.hash),await Xe(s,se.localRef,{oldHash:je??te,newHash:se.remote.hash,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:je?"pull":"pull: storing head"})}let v=null;if(l){let se=b.find(je=>je.name===`refs/heads/${l}`);if(se)v=se.hash;else return S(`Couldn't find remote ref refs/heads/${l}`)}else{let se=b.find(je=>je.name==="HEAD");se&&(v=se.hash)}if(v&&await r.fs.writeFile(I(s.gitDir,"FETCH_HEAD"),`${v} ${h.url}
571
- `),!v)return S("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.
572
- `,stderr:"",exitCode:0};if(d){let se=await Q(s),je=se?.type==="symbolic"?se.target:"detached HEAD",un=l?`${f}/${l}`:f,Zt=await ma(s,r.env,a,je,T,T,un,t);return Zt.exitCode===0&&await t?.hooks?.postPull?.({repo:s,remote:f,branch:p,strategy:"rebase",commitHash:null}),Zt}let F=await Ft(s,a,T),_=F[0]??null;if(F.length===0)return S("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.
573
- `,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 S("Not possible to fast-forward, aborting.");if(K&&!U){let se=await xo(s,a,T),je=await Q(s),un=je?.type==="symbolic"?je.target:"HEAD";return await Xe(s,un,{oldHash:a,newHash:T,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:"pull: Fast-forward"}),je?.type==="symbolic"&&await Xe(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"?Ce(ne.target):"HEAD",re=l||f||"FETCH_HEAD",ke=await xe(s,"merge.conflictstyle")??"merge",Me={a:"HEAD",b:re,conflictStyle:ke},ie=await gs(s,a,T,Me),Pe=await j(s,a),nt=await Cn(s,ie,Pe.tree,{labels:Me,errorExitCode:2,operationName:"merge"});if(!nt.ok)return nt;if(ie.conflicts.length>0){await X(s,"MERGE_HEAD",T),await X(s,"ORIG_HEAD",a);let se=await mr(s,re,J),je=Bt({version:2,entries:ie.entries}).sort();return se+=`
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}
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.
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+=`
574
581
  # Conflicts:
575
- ${je.map(un=>`# ${un}`).join(`
582
+ ${Ge.map(pn=>`# ${pn}`).join(`
576
583
  `)}
577
- `,await Ae(s,"MERGE_MSG",se),{stdout:`${[...ie.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(`
578
585
  `)}
579
- `,stderr:"",exitCode:1}}let On=nt.mergedTreeHash,Be=await an(s,r.env);if(M(Be))return Be;let wr=await tt(s,r.env);if(M(wr))return wr;let Gr=await mr(s,re,J),xa={repo:s,message:Gr,treeHash:On,headHash:a,theirsHash:T},Ca=await t?.hooks?.mergeMsg?.(xa);if(ee(Ca))return{stdout:"",stderr:Ca.message??"",exitCode:1};Gr=xa.message;let Pa=await t?.hooks?.preMergeCommit?.({repo:s,mergeMessage:Gr,treeHash:On,headHash:a,theirsHash:T});if(ee(Pa))return{stdout:"",stderr:Pa.message??"",exitCode:1};let $s=await wt(s,On,[a,T],Be,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 Pd=ne?.type==="symbolic"?ne.target:"HEAD",$a="pull: Merge made by the 'ort' strategy.";await Xe(s,Pd,{oldHash:a,newHash:$s,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:$a}),ne?.type==="symbolic"&&await Xe(s,"HEAD",{oldHash:a,newHash:$s,name:G.name,email:G.email,timestamp:G.timestamp,tz:G.tz,message:$a});let $d=await ln(s,Pe.tree,On);return{stdout:`${ie.messages.length>0?`${ie.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(`
580
587
  `)}
581
588
  `:""}Merge made by the 'ort' strategy.
582
- ${$d}`,stderr:"",exitCode:0}}})}ce();We();ht();pe();function Jl(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 Mr(s,i,r.env)}catch(y){let E=y instanceof Error?y.message:"";if(E.startsWith("network"))return S(E);throw y}if(!a)return S(`'${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);let u=[],h=n.refspec;if(n.delete){let y=h&&h.length>0?h:[];if(y.length===0)return S("--delete requires a ref argument");for(let E of y){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
583
- `);u.push({name:k,oldHash:R,newHash:te,ok:l})}}else if(n.all){let y=await be(s,"refs/heads");for(let E of y){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 y=await be(s,"refs/tags");for(let E of y){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 y of h){let E=gr(y),k=await Tg(s,E.src);if(!k)return L(`error: src refspec '${E.src}' does not match any
584
- `);let R=E.dst.startsWith("refs/")?E.dst:`refs/heads/${E.dst}`,C=m.get(R)??null;u.push({name:R,oldHash:C,newHash:k,ok:l||E.force})}else{let y=await Q(s);if(!y||y.type!=="symbolic")return S("You are not currently on a branch.");let E=y.target,k=E.startsWith("refs/heads/")?E.slice(11):E,R=await Z(s);if(!R)return L(`error: src refspec does not match any
585
- `);let C=(await xe(s,"push.default"))?.toLowerCase()??"simple",P=await vg(s,C,E,k,R,i,m,l);if("exitCode"in P)return P;u.push(P)}if(u.length===0)return{stdout:`Everything up-to-date
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
586
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}
587
- `);let b=!1;for(let y of g.updates){let E=y.name.startsWith("refs/heads/")?y.name.slice(11):y.name;if(!y.ok)w.push(` ! [rejected] ${E} -> ${E} (${y.error??"failed"})
588
- `),b=!0;else if(!y.oldHash)w.push(` * [new branch] ${E} -> ${E}
589
- `);else if(y.newHash===te)w.push(` - [deleted] ${E}
590
- `);else{let k=V(y.oldHash),R=V(y.newHash);w.push(` ${k}..${R} ${E} -> ${E}
591
- `)}}if(n["set-upstream"]&&!b){let y=await Q(s);if(y?.type==="symbolic"){let E=y.target.startsWith("refs/heads/")?y.target.slice(11):y.target,k=await ge(s);k[`branch "${E}"`]={remote:i,merge:`refs/heads/${E}`},await Ze(s,k),w.push(`branch '${E}' set up to track '${i}/${E}'.
592
- `)}}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 vg(e,t,n,r,o,s,i,a){if(t==="nothing")return S(`You didn't specify any refspecs to push, and push.default is "nothing".`);if(t==="current")return{name:n,oldHash:i.get(n)??null,newHash:o,ok:a};if(t==="upstream"){let d=(await ge(e))[`branch "${r}"`];if(!d?.remote||!d?.merge)return S(`The current branch ${r} has no upstream branch.
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.
593
600
  To push the current branch and set the remote as upstream, use
594
601
 
595
602
  git push --set-upstream ${s} ${r}
596
- `);let m=d.merge;return{name:m,oldHash:i.get(m)??null,newHash:o,ok:a}}let f=(await ge(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?S(`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
597
604
  the name of your current branch. To push to the upstream branch
598
605
  on the remote, use
599
606
 
@@ -602,42 +609,42 @@ on the remote, use
602
609
  To push to the branch of the same name on the remote, use
603
610
 
604
611
  git push ${s} HEAD
605
- `):{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 Tg(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)}ce();me();qe();pe();function Hg(e,t,n,r){return`${V(n)} ${e}@{${t}}: ${r}`}async function Uo(e,t,n){let r=t==="HEAD"?"HEAD":`refs/heads/${t}`;if(!await B(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.
606
613
  Use '--' to separate paths from revisions, like this:
607
614
  'git <command> [<revision>...] -- [<file>...]'
608
- `,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(Hg(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(`
609
616
  `)}
610
- `:"",stderr:"",exitCode:0}}function Ql(e,t){return e.command("reflog",{description:"Manage reflog information",args:[q.string().name("args").variadic().optional()],options:{maxCount:Y.number().alias("n").describe("Limit the number of entries to output")},handler:async(r,o)=>{let s=await W(o.fs,o.cwd,t);if(M(s))return s;let i=s,a=r.args;if(a.length===0)return Uo(i,"HEAD",r.maxCount);let c=a[0];if(!c)return Uo(i,"HEAD",r.maxCount);if(c==="show"){let f=a[1]??"HEAD";return Uo(i,f,r.maxCount)}if(c==="exists"){let f=a[1];if(!f)return{stdout:"",stderr:`fatal: reflog exists requires a ref argument
611
- `,exitCode:128};let l=I(i.gitDir,"logs",f);return{stdout:"",stderr:"",exitCode:await i.fs.exists(l)?0:1}}return Uo(i,c,r.maxCount)}})}ce();We();qe();pe();function Ag(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 ed(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 ge(a),f=Ag(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(`
612
619
  `)}
613
620
  `,stderr:"",exitCode:0}}return{stdout:`${f.join(`
614
621
  `)}
615
- `,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 S(`'${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 ge(a),f=`remote "${s.name}"`;return f in c?L(`error: remote ${s.name} already exists.
616
- `,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 W(i.fs,i.cwd,t);if(M(a))return a;let c=await ge(a),f=`remote "${s.name}"`;return f in c?(delete c[f],Mg(c,s.name),await Ze(a,c),await jg(a,s.name),{stdout:"",stderr:"",exitCode:0}):L(`error: No such remote: '${s.name}'
617
- `,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 ge(a);return Dg(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 ge(a),f=`remote "${s.name}"`;if(!(f in c))return L(`error: No such remote '${s.name}'
618
- `,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:[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 ge(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??""}
619
626
  `,stderr:"",exitCode:0}:L(`error: No such remote '${s.name}'
620
- `,2)}})}async function Dg(e,t,n,r){if(!ts(`refs/remotes/${r}`,0))return S(`'${r}' is not a valid remote name`);let o=`remote "${n}"`;if(!(o in t))return L(`error: No such remote: '${n}'
621
- `,2);let s=`remote "${r}"`;if(s in t)return S(`remote ${r} already exists.`);let i={...t[o]};i.fetch&&(i.fetch=i.fetch.replace(`refs/remotes/${n}/`,`refs/remotes/${r}/`)),t[s]=i,delete t[o];for(let f of Object.keys(t))f.match(/^branch "(.+)"$/)&&t[f]?.remote===n&&(t[f].remote=r);await Ze(e,t);let a=`refs/remotes/${n}`,c=await be(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 jn(e,l,d)}return{stdout:"",stderr:"",exitCode:0}}function Mg(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 jg(e,t){let n=`refs/remotes/${t}`,r=await be(e,n);for(let o of r)await he(e,o.name)}ce();$e();fe();me();qe();pe();gn();He();on();ot();function nd(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 S("--soft, --mixed, and --hard are mutually exclusive");let f=n.soft||n.mixed||n.hard,l=ut(i,r.cwd);if(o.passthrough.length>0){let u=a.length>0?a[0]:void 0;return pa(i,o.passthrough,l,u,t)}if(!f&&a.length>0){let u=a[0],h=await Ke(i,u);return a.length===1&&h?td(i,u,"mixed",r.env,t):h?pa(i,a.slice(1),l,u,t):pa(i,a,l,void 0,t)}let d=n.soft?"soft":n.hard?"hard":"mixed",m=a.length>0?a[0]:"HEAD";return td(i,m,d,r.env,t)}})}async function pa(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 Ke(e,r);if(!d)return Vt(r);let m=await Le(e,d);i=(await j(e,m)).tree}else{let d=await Z(e);d&&(i=(await j(e,d)).tree)}let a=await de(e,i??null),c=await z(e);if(t.some(ir)){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(!ye(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=lt(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=lt(c,d);else if(!(e.workTree&&await e.fs.exists(I(e.workTree,d))))return Vt(d)}await le(e,c);let l={stdout:await rd(e,c),stderr:"",exitCode:0};return await o?.hooks?.postReset?.({repo:e,mode:"paths",targetHash:null}),l}async function rd(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(`
622
629
  `)}
623
- `}async function td(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 Ke(e,t);if(!i)return Vt(t);let a=await Le(e,i),c=await j(e,a);if(n==="soft"){let u=await B(e,"MERGE_HEAD"),h=await z(e);if(u||Ht(h))return S("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 ae(e,r,l.target,f,a,d,!0):(l?.type==="symbolic"||f!==a)&&await ae(e,r,"HEAD",f,a,d),await cr(e),n==="mixed"){let u=await ze(e,c.tree),h=Gs(u.map(g=>({path:g.path,mode:parseInt(g.mode,8),hash:g.hash,stage:0,stat:Ie()})));await le(e,h);let p=await rd(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 z(e),p=await bn(e,c.tree,h);await le(e,{version:2,entries:p.newEntries}),await Ne(e,p.worktreeOps)}let m=n==="hard"?`HEAD is now at ${V(a)} ${ue(c.message)}
624
- `:"";return await o?.hooks?.postReset?.({repo:e,mode:n,targetHash:a}),{stdout:m,stderr:"",exitCode:0}}ce();$e();fe();pe();He();ot();function sd(e,t){e.command("restore",{description:"Restore working tree files",args:[q.string().name("pathspec").variadic().optional()],options:{source:Y.string().alias("s").describe("Restore from tree-ish"),staged:$().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 S("you must specify path(s) to restore");if(n.ours&&n.theirs)return S("--ours and --theirs are incompatible");let c=!!n.staged,f=n.worktree!==void 0?!!n.worktree:!c,l=ut(i,r.cwd);if(n.ours||n.theirs)return n.source?S("cannot specify both --source and --ours/--theirs"):c?S("cannot use --ours/--theirs with --staged"):mo(i,a,l,n.theirs?3:2,{deleteOnMissing:!0});let d=null;if(n.source){let m=await De(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?Ng(i,a,l,d):c?Gg(i,a,l,d):d?Lg(i,a,l,d):uo(i,a,l)}})}async function Gg(e,t,n,r){let o=await de(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(!ye(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
625
- `,exitCode:1};s=lt(s,f)}}return c?(await le(e,s),{stdout:"",stderr:"",exitCode:0}):L(`error: pathspec '${t[0]}' did not match any file(s) known to git
626
- `)}async function Lg(e,t,n,r){if(!e.workTree)return S("this operation must be run in a work tree");let o=await de(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(ye(s,f)){if(!o.has(f)&&a.entries.some(d=>d.path===f&&d.stage!==0))return{stdout:"",stderr:`error: path '${f}' is unmerged
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
627
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
628
- `);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 Ng(e,t,n,r){if(!e.workTree)return S("this operation must be run in a work tree");let o=await de(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)ye(i,f)&&a.push(f);if(a.length===0)return L(`error: pathspec '${t[0]}' did not match any file(s) known to git
629
- `);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 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
630
- `,exitCode:1};s=lt(s,f);let m=`${e.workTree}/${f}`;await e.fs.exists(m)&&await e.fs.rm(m)}}return await le(e,s),{stdout:"",stderr:"",exitCode:0}}ce();fe();me();pe();gn();He();function od(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 S("this operation must be run in a work tree");b.push(w.workTree)}if(l&&b.push(w.gitDir),d&&b.push(w.workTree?"true":"false"),m&&b.push(w.workTree?"false":"true"),u){if(!w.workTree)return S("this operation must be run in a work tree");let y=rt(w.workTree,r.cwd);b.push(y===""?"":`${y}/`)}if(h){if(!w.workTree)return S("this operation must be run in a work tree");let y=rt(r.cwd,w.workTree);b.push(y===""?"":`${y}/`)}if(p&&o.length===0)return{stdout:b.map(E=>`${E}
631
- `).join(""),stderr:"",exitCode:0};if(s&&o.length!==1)return S("Needed a single revision");for(let y of o){if(a){let R=await _g(w,y);if(R===null)return ga(y,s);b.push(R);continue}if(c){let R=await Fg(w,y);if(R===null)return ga(y,s);b.push(R);continue}let E=qs(y);if(E){let R=await Ug(w,E.rev,E.path);if(R===null){let C=E.path.replace(/^\//,"");return S(`path '${C}' does not exist in '${E.rev}'`)}b.push(i?V(R):R);continue}let k=await Ke(w,y);if(!k)return ga(y,s);b.push(i?V(k):k)}return{stdout:b.map(y=>`${y}
632
- `).join(""),stderr:"",exitCode:0}}})}function ga(e,t){return t?S("Needed a single revision"):Vt(e)}async function _g(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 Ke(e,t)?t:null}async function Fg(e,t){if(t==="HEAD"||t==="@"){let r=await Q(e);return r?r.type==="symbolic"?r.target:"HEAD":null}if(!await Ke(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 Ug(e,t,n){let r=await Ke(e,t);if(!r)return null;let o=await j(e,r),s=n.replace(/^\//,"");return s===""?o.tree:(await de(e,o.tree)).get(s)?.hash??null}ce();We();$e();fe();qe();pe();He();function id(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:Y.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 Bg(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 Wg(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 S("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 De(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=yn(m,"Reverting",`fatal: revert failed
633
- `);if(u)return u;let h=await j(s,d);if(s.workTree){let U=await de(s,h.tree);if(Cr(m,U))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.
634
641
  hint: commit your changes or stash them to proceed.
635
642
  fatal: revert failed
636
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.
637
644
  fatal: revert failed
638
645
  `,128);if(p<1||p>l.parents.length)return L(`error: commit ${f} does not have parent ${p}
639
646
  fatal: revert failed
640
- `,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=V(f),b=ue(l.message),x=qg(l,f,p),y=await xe(s,"merge.conflictstyle")??"merge",E={a:"HEAD",b:b?`parent of ${w} (${b})`:`parent of ${w}`,conflictStyle:y},k=await Ut(s,l.tree,h.tree,g,E);if(k.conflicts.length===0&&k.resultTree===h.tree){let U=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(`
641
648
  `)}
642
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.
643
650
  If you wish to commit it anyway, use:
@@ -645,7 +652,7 @@ If you wish to commit it anyway, use:
645
652
  git commit --allow-empty
646
653
 
647
654
  Otherwise, please use 'git cherry-pick --skip'
648
- `:"",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 Ae(s,"MERGE_MSG",x);let U=k.messages.join(`
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(`
649
656
  `);return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:null,hadConflicts:!0}),{stdout:U?`${U}
650
657
  `:"",stderr:`error: could not revert ${w}... ${ue(l.message)}
651
658
  hint: After resolving the conflicts, mark them with
@@ -655,28 +662,28 @@ hint: You can instead skip this commit with "git revert --skip".
655
662
  hint: To abort and get back to the state before "git revert",
656
663
  hint: run "git revert --abort".
657
664
  hint: Disable this message with "git config set advice.mergeConflict false"
658
- `,exitCode:1}}if(n["no-commit"])return await X(s,"REVERT_HEAD",f),await Ae(s,"MERGE_MSG",x),{stdout:"",stderr:"",exitCode:0};let C=R.mergedTreeHash,P=await an(s,r.env);if(M(P))return P;let H=await tt(s,r.env);if(M(H))return H;let D=await wt(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 ae(s,r.env,G,d,D,`revert: ${A}`,O?.type==="symbolic");let v=O?.type==="symbolic"?Ce(O.target):"detached HEAD",T=await fn(s,h.tree,C,P,H,P.timestamp!==H.timestamp||P.timezone!==H.timezone),F=Dt(v,D,x),_=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(`
659
666
  `)}
660
667
  `:"";return await t?.hooks?.postRevert?.({repo:s,mode:"revert",commitHash:D,hadConflicts:!1}),{stdout:`${_}${F}
661
- ${T}`,stderr:"",exitCode:0}}})}async function Bg(e,t){return await B(e,"REVERT_HEAD")?_n(e,t,{operationRef:"REVERT_HEAD",noOpError:L(`error: no cherry-pick or revert in progress
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
662
669
  fatal: revert failed
663
- `,128),operationName:"revert",clearState:async o=>{await Lt(o),await Gt(o)},origHeadAsTargetRev:!0}):await B(e,"CHERRY_PICK_HEAD")?_n(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
664
671
  fatal: revert failed
665
672
  `,128),operationName:"revert",clearState:Gt,origHeadAsTargetRev:!0}):L(`error: no cherry-pick or revert in progress
666
673
  fatal: revert failed
667
- `,128)}async function Wg(e,t){if(!await B(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
668
675
  fatal: revert failed
669
- `,128);let r=await z(e),o=yn(r,"Committing");if(o)return o;let s=await Oe(e,"MERGE_MSG");if(!s)return L(`Aborting commit due to empty commit message.
670
- `,1);let i=Ge(r),a=await Fe(e,i),c=await Qe(e);if(M(c))return c;let f=await j(e,c),l=await an(e,t);if(M(l))return l;let d=await tt(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 wt(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 ae(e,t,w,c,h,`commit: ${g}`,p?.type==="symbolic");let b=p?.type==="symbolic"?Ce(p.target):"detached HEAD",x=await fn(e,f.tree,a,l,d,l.timestamp!==d.timestamp||l.timezone!==d.timezone);return{stdout:`${Dt(b,h,s)}
671
- ${x}`,stderr:"",exitCode:0}}function qg(e,t,n){let r=ue(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}"`}
672
679
 
673
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
674
681
  changes made to ${c}`}return a+=`.
675
- `,a}ce();$e();fe();me();pe();tr();He();function ad(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=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 z(s),h=[],p=ut(s,r.cwd);for(let b of c){if(ir(b)){let k=[Ue(b,p)],R=u.entries.filter(C=>ye(k,C.path));if(R.length===0)return S(`pathspec '${b}' did not match any files`);for(let C of R)h.push(C.path);continue}let x=vt(r.cwd,b),y=rt(a,x);if((y==="."||y==="")&&(y=""),y.startsWith(".."))return S(`'${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 S(`not removing '${y}' recursively without -r`);let k=y===""?"":`${y}/`,R=u.entries.filter(C=>k===""||C.path.startsWith(k));if(R.length===0)return S(`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 S(`pathspec '${b}' did not match any files`);h.push(y)}}if(!d){let b=await zg(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(`
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(`
676
683
  `)}
677
- `:"",stderr:"",exitCode:0}}let g=[];for(let b of h){if(u=lt(u,b),!f){let x=I(a,b);await mt(r.fs,x).then(()=>!0).catch(()=>!1)&&await r.fs.rm(x)}g.push(`rm '${b}'`)}await le(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(`
678
685
  `)}
679
- `:"";return await t?.hooks?.postRm?.({repo:s,removedPaths:h,cached:f}),{stdout:w,stderr:"",exitCode:0}}})}async function zg(e,t,n,r){let o=await Z(e),s=new Map;if(o){let f=await j(e,o),l=await ze(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=I(e.workTree,f),p=!1;try{await mt(e.fs,h),p=!0}catch{p=!1}p&&(u=await Gn(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(`
680
687
  `),l=i.length===1?"the following file has":"the following files have";return L(`error: ${l} staged content different from both the
681
688
  file and the HEAD:
682
689
  ${f}
@@ -689,39 +696,39 @@ ${f}
689
696
  `),l=c.length===1?"the following file has":"the following files have";return L(`error: ${l} local modifications:
690
697
  ${f}
691
698
  (use --cached to keep the file, or -f to force removal)
692
- `)}return null}ce();fe();gn();zs();me();He();var wa=new TextDecoder;function cd(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:Y.string().describe("Pretty-print format string"),pretty:Y.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=qs(a);if(c)return Kg(s,c.rev,c.path);if(a==="HEAD"){let p=await Qe(s);if(M(p))return p}let f=await gt(s,a,`bad object '${a}'`);if(M(f))return f;let l=await Ee(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=No(m);u=p.formatStr,h=p.preset}switch(l.type){case"commit":{let p=await j(s,f);return{stdout:await fd(s,f,p,d,u,h),stderr:"",exitCode:0}}case"tag":{let p=await Pc(s,f);return{stdout:await Vg(s,p,d,u,h),stderr:"",exitCode:0}}case"tree":{let p=Ln(l.content);return{stdout:ld(p),stderr:"",exitCode:0}}case"blob":return{stdout:wa.decode(l.content),stderr:"",exitCode:0}}}})}async function Kg(e,t,n){let r=await De(e,t);if(M(r))return r;let o=r.commit.tree,s=n.replace(/^\//,""),a=(await de(e,o)).get(s);if(!a){let f=`path '${s}' does not exist in '${t}'`;if(e.workTree){let l=I(e.workTree,s);await e.fs.exists(l)&&(f=`path '${s}' exists on disk, but not in '${t}'`)}return S(f)}let c=await Ee(e,a.hash);if(c.type==="blob")return{stdout:wa.decode(c.content),stderr:"",exitCode:0};if(c.type==="tree"){let f=Ln(c.content);return{stdout:ld(f),stderr:"",exitCode:0}}return{stdout:wa.decode(c.content),stderr:"",exitCode:0}}async function fd(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=>V(d)).join(" ");c.push(`Merge: ${l}`)}c.push(`Author: ${n.author.name} <${n.author.email}>`),c.push(`Date: ${Rn(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(`
693
700
  `))c.push(` ${l}`);i=c.join(`
694
701
  `)}if(!r)return`${i}
695
- `;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 Yg(e,l,d,r)}else r==="patch"&&(a=await sw(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}
696
703
 
697
704
  ${a.replace(/\n$/,"")}
698
705
  `:n.parents.length>=2?`${i}
699
706
 
700
707
  `:`${i}
701
- `}async function Vg(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: ${Rn(t.tagger.timestamp,t.tagger.timezone)}`),s.push("");let i=t.message.replace(/\n$/,"");for(let a of i.split(`
702
- `))s.push(` ${a}`);if(t.objectType==="commit"){let a=await j(e,t.object),c=await fd(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(`
703
710
  `)}
704
- `}function ld(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(`
705
712
  `)}
706
- `:""}async function Yg(e,t,n,r){switch(r){case"patch":return rw(e,t,n);case"stat":return Jg(e,t,n);case"shortstat":return Qg(e,t,n);case"numstat":return ew(e,t,n);case"name-only":return Xg(t,n);case"name-status":return Zg(t,n);default:return""}}function Xg(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(`
707
714
  `)}
708
- `:""}function Zg(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}
709
- `).join(""):""}async function Jg(e,t,n){let{fileStats:r}=await Vn(e,t,n);return r.sort((o,s)=>o.sortKey<s.sortKey?-1:o.sortKey>s.sortKey?1:0),ur(r)}async function Qg(e,t,n){let{fileStats:r}=await Vn(e,t,n),o=0,s=0;for(let a of r)o+=a.insertions,s+=a.deletions;let i=Kn(r.length,o,s);return i?`${i}
710
- `:""}async function ew(e,t,n){let r=[];for(let s of t)r.push({key:s.path,oldHash:s.oldHash,newHash:s.newHash,display:s.path});for(let s of n)r.push({key:s.newPath,oldHash:s.oldHash,newHash:s.newHash,display:cn(s.oldPath,s.newPath)});r.sort((s,i)=>s.key<i.key?-1:s.key>i.key?1:0);let o="";for(let s of r){let i=s.oldHash?await oe(e,s.oldHash):"",a=s.newHash?await oe(e,s.newHash):"";if(ve(i)||ve(a))o+=`- - ${s.display}
711
- `;else{let c=kt(i),f=kt(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}
712
- `}}return o}async function tw(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(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 nw(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(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 rw(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 nw(e,s.entry):o+=await tw(e,s.entry);return o}async function sw(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 de(e,c.tree)})),r=await de(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 ow(e,a,n,r);return i}async function ow(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 Ho({path:t,parentHashes:c,parentModes:f,parentContents:l,resultHash:i,resultMode:a,resultContent:d})}ce();$e();fe();pe();ce();Sn();$e();fe();mn();me();qe();pe();He();on();ot();var Xt="refs/stash";function ya(e,t){return Se(e.replaceAll("/","\0"),t.replaceAll("/","\0"))}async function dd(e){let t=await et(e,Xt),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,Xt);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 ud(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=Ge(a),f=await Fe(e,c),l=await Ve(e,i.tree,f),d=new Map(c.map(N=>[N.path,N])),m=await st(e,o,"",{skipIgnore:!0}),u=!1;for(let N of m){let K=d.get(N);if(!K)continue;let ne=I(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=I(o,N);if(!await e.fs.exists(K)){u=!0;break}}let h=[];if(r?.includeUntracked){let N=await st(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 As(e,t),g=await Ur(e,t),w=await Q(e),b=w?.type==="symbolic"?Ce(w.target):"(no branch)",x=V(s),y=ue(i.message),E=`index on ${b}: ${x} ${y}
713
- `,k=nn({type:"commit",tree:f,parents:[s],author:p,committer:g,message:E}),R=await Te(e,"commit",k),C=await de(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=I(o,N),re=await e.fs.readFileBuffer(J),ke=await Te(e,"blob",re),Me=K?K.mode:parseInt(ne?.mode??"100644",8);P.push({path:N,mode:Me,hash:ke,stage:0,stat:Ie()}),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:Ie()});let D=await Fe(e,P),O=null;if(r?.includeUntracked){let N=[];for(let re of h){let ke=I(o,re),Me=await e.fs.readFileBuffer(ke),ie=await Te(e,"blob",Me);N.push({path:re,mode:33188,hash:ie,stage:0,stat:Ie()})}let K=await Fe(e,N),ne=`untracked files on ${b}: ${x} ${y}
714
- `,J=nn({type:"commit",tree:K,parents:[],author:p,committer:g,message:ne});O=await Te(e,"commit",J)}let A=n?`On ${b}: ${n}`:`WIP on ${b}: ${x} ${y}`,G=[s,R];O&&G.push(O);let v=nn({type:"commit",tree:D,parents:G,author:p,committer:g,message:A}),T=await Te(e,"commit",v),F=await jr(e,0)??te;await Xe(e,Xt,{oldHash:F,newHash:T,name:g.name,email:g.email,timestamp:g.timestamp,tz:g.timezone,message:A.trimEnd()}),await X(e,Xt,T);let _=await bn(e,i.tree,a);await le(e,{version:2,entries:_.newEntries}),await Ne(e,_.worktreeOps),(await Q(e))?.type==="symbolic"&&await ae(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=I(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=I(o,N);await e.fs.exists(K)&&(await e.fs.rm(K),await sr(e.fs,Jt(K),o))}return T}async function ba(e,t){let n=e.workTree,r=await j(e,t),o=await ze(e,r.tree),s=[];for(let i of o){let a=I(n,i.path);await e.fs.exists(a)?s.push(i.path):await dt(e,i)}return s.length>0?(s.sort(ya),{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(`
715
722
  `)}
716
723
  error: could not restore untracked files from stash
717
- `,exitCode:1}):{ok:!0,hasConflicts:!1,messages:[]}}async function Ea(e,t=0){if(!e.workTree)return{ok:!1,stdout:"",stderr:`fatal: this operation must be run in a work tree
718
- `,exitCode:128};let n=await jr(e,t);if(!n)return{ok:!1,stdout:"",stderr:`error: stash@{${t}} is not a valid reference
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
719
726
  `,exitCode:1};if(!await Z(e))return{ok:!1,stdout:"",stderr:`error: your current branch does not have any commits yet
720
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(`
721
728
  `)}
722
729
  `,stderr:`error: could not write index
723
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)
724
- `,exitCode:1};let c=await j(e,a),f=i.parents[2],l=Ge(o),d=await Fe(e,l),m={a:"Updated upstream",b:"Stashed changes"};if(c.tree===i.tree){if(f){let R=await ba(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 de(e,d),p=await de(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=I(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(ya),x.sort(ya);let R="";if(b.length>0&&(R+=`error: Your local changes to the following files would be overwritten by merge:
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:
725
732
  ${b.map(C=>` ${C}`).join(`
726
733
  `)}
727
734
  Please commit your changes or stash them before you merge.
@@ -730,46 +737,46 @@ ${x.map(C=>` ${C}`).join(`
730
737
  `)}
731
738
  Please move or remove them before you merge.
732
739
  `),R+=`Aborting
733
- `,f){let C=await ba(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)),E=new Set;for(let R of u.entries)R.stage>0&&E.add(R.path);let k=y.size>0;if(k){let R=[];for(let[C,P]of p){if(y.has(C)||E.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??Ie()})}for(let C of u.entries)C.stage>0&&R.push(C);R.sort((C,P)=>Se(C.path,P.path)||C.stage-P.stage),await le(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:Ie()});R.sort((P,H)=>Se(P.path,H.path)||P.stage-H.stage),await le(e,{version:2,entries:R})}if(f){let R=await ba(e,f);if(!R.ok)return{...R,messages:u.messages}}return{ok:!0,hasConflicts:k,messages:u.messages}}async function ka(e,t=0){let n=await et(e,Xt);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,Xt),await rs(e,Xt);else{await jn(e,Xt,n);let o=n[n.length-1];o&&await X(e,Xt,o.newHash)}return null}async function md(e){await he(e,Xt),await rs(e,Xt)}He();function Bo(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 iw(e,t){let n=t.oldHash?await oe(e,t.oldHash):"",r=t.newHash?await oe(e,t.newHash):"";return Ot({path:t.path,oldContent:n,newContent:r,oldMode:t.oldMode,newMode:t.newMode})}async function Xn(e,t,n,r){return e?.hooks?.preStash?.({repo:t,action:n,ref:r})??null}async function Zn(e,t,n,r){await e?.hooks?.postStash?.({repo:t,action:n,ok:r})}function pd(e,t){let n=e.command("stash",{description:"Stash the changes in a dirty working directory away",options:{message:Y.string().alias("m").describe("Stash message"),"include-untracked":$().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 Xn(t,s,"push",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await hd(s,o.env,r.message,r["include-untracked"]);return await Zn(t,s,"push",a.exitCode===0),a}});n.command("push",{description:"Save your local modifications to a new stash entry",options:{message:Y.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 Xn(t,s,"push",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await hd(s,o.env,r.message,r["include-untracked"]);return await Zn(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 Xn(t,s,"pop",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await aw(s,r.stash);return await Zn(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 Xn(t,s,"apply",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await cw(s,r.stash);return await Zn(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 Xn(t,s,"list",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await fw(s);return await Zn(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 Xn(t,s,"drop",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await lw(s,r.stash);return await Zn(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 Xn(t,s,"show",r.stash??null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await dw(s,r.stash,r.patch);return await Zn(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 Xn(t,s,"clear",null);if(ee(i))return{stdout:"",stderr:i.message??"",exitCode:1};let a=await uw(s);return await Zn(t,s,"clear",a.exitCode===0),a}})}async function hd(e,t,n,r){if(!await Z(e))return L(`You do not have the initial commit yet
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
734
741
  `);let s=await z(e),i=Bt(s).sort();if(i.length>0)return{stdout:`${i.map(l=>`${l}: needs merge`).join(`
735
742
  `)}
736
743
  `,stderr:`error: could not write index
737
- `,exitCode:1};let a;try{a=await ud(e,t,n,{includeUntracked:r})}catch(l){return S(l.message)}return a?{stdout:`Saved working directory and index state ${(await j(e,a)).message.trim()}
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()}
738
745
  `,stderr:"",exitCode:0}:{stdout:`No local changes to save
739
- `,stderr:"",exitCode:0}}async function aw(e,t){let n=Bo(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);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(`
740
747
  `)}
741
748
  `:"";if(o.stdout)return{stdout:`${f}${o.stdout}The stash entry is kept in case you need it again.
742
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.
743
750
  `,stderr:o.stderr,exitCode:o.exitCode}}if(o.hasConflicts){let f=o.messages.length>0?`${o.messages.join(`
744
751
  `)}
745
752
  `:"",l=await at(e);return{stdout:`${f}${l}The stash entry is kept in case you need it again.
746
- `,stderr:"",exitCode:1}}let s=await ka(e,n);if(s)return L(s);let i=o.messages.length>0?`${o.messages.join(`
753
+ `,stderr:"",exitCode:1}}let s=await xa(e,n);if(s)return L(s);let i=o.messages.length>0?`${o.messages.join(`
747
754
  `)}
748
755
  `:"",a=t?`stash@{${n}}`:`refs/stash@{${n}}`,c=await at(e);return{stdout:`${i}${c}Dropped ${a} (${r})
749
- `,stderr:"",exitCode:0}}async function cw(e,t){let n=Bo(t);if(n<0)return L(`error: '${t}' is not a valid stash reference`);let r=await Ea(e,n);if(!r.ok){let a=r.messages?.length?`${r.messages.join(`
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(`
750
757
  `)}
751
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(`
752
759
  `)}
753
- `:"",s=await at(e),i=r.hasConflicts?1:0;return{stdout:`${o}${s}`,stderr:"",exitCode:i}}async function fw(e){let t=await dd(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(`
754
761
  `)}
755
- `,stderr:"",exitCode:0}}async function lw(e,t){let n=Bo(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 ka(e,n);return o?L(o):{stdout:`Dropped ${t?`stash@{${n}}`:`refs/stash@{${n}}`} (${r})
756
- `,stderr:"",exitCode:0}}async function dw(e,t,n){let r=Bo(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 Ve(e,a.tree,s.tree),l="";for(let d of f)l+=await iw(e,d);return{stdout:l,stderr:"",exitCode:0}}return{stdout:await ln(e,a.tree,s.tree),stderr:"",exitCode:0}}async function uw(e){return await md(e),{stdout:"",stderr:"",exitCode:0}}ce();$e();pe();ot();function gd(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=Ce(i.target):c="HEAD detached";let f=await z(s),l=Gi(f),d=await ji(s,a,f,l),m=await At(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)=>Se(b.path,x.path));let p=new Set(f.entries.map(b=>b.path)),g=Li(h,p);return{stdout:gw(c,d,u,l,g,n.branch),stderr:"",exitCode:0}}})}var mw={"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 hw(e){switch(e){case"new file":return"A";case"modified":return"M";case"deleted":return"D";case"renamed":return"R";default:return" "}}function pw(e){switch(e){case"modified":return"M";case"deleted":return"D";default:return" "}}function gw(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=mw[u.status]??"UU";i.push(`${b} ${Cs(m)}`);continue}let h=c.get(m),p=f.get(m),g=h?hw(h.status):" ",w=p?pw(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} ${Cs(x)} -> ${Cs(y)}`)}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(`
757
764
  `)}
758
- `}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")}"`}ce();We();$e();fe();qe();pe();He();on();function ww(e,t){return e?.type==="symbolic"?e.target.replace(/^refs\/heads\//,""):t??te}function bd(e,t){e.command("switch",{description:"Switch branches",args:[q.string().name("branch-or-start-point").describe("Branch to switch to, or start-point for -c/-C").optional()],options:{create:Y.string().alias("c").describe("Create and switch to a new branch"),forceCreate:Y.string().alias("C").describe("Create/reset and switch to a branch"),detach:$().alias("d").describe("Detach HEAD at named commit"),orphan:Y.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?S("--orphan and -c/-C are incompatible"):n.detach?S("--orphan and --detach are incompatible"):Ew(i,n.orphan,r.env,t);if(n.detach){if(n.create||n.forceCreate)return S("--detach and -c/-C are incompatible");let l=a??"HEAD",d=await De(i,l,`invalid reference: ${l}`);return M(d)?d:yw(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 wd(i,l,!!n.forceCreate,d,r.env,t)}if(!a)return S("missing branch or commit argument");if(a==="-")return bw(i,r.env,t);let c=`refs/heads/${a}`,f=await B(i,c);if(f)return yd(i,a,c,f,r.env,t);if(n.guess!==!1){let l=await go(i,a);if(l)return wd(i,a,!1,l.startPoint,r.env,t,l.trackingRef)}return S(`invalid reference: ${a}`)}})}async function Ps(e){return await Oe(e,"CHERRY_PICK_HEAD")?S(`cannot switch branch while cherry-picking
759
- Consider "git cherry-pick --quit" or "git worktree add".`):await Oe(e,"MERGE_HEAD")?S(`cannot switch branch while merging
760
- Consider "git merge --quit" or "git worktree add".`):await Oe(e,"REVERT_HEAD")?S(`cannot switch branch while reverting
761
- Consider "git revert --quit" or "git worktree add".`):await Nt(e)?S(`cannot switch branch while rebasing
762
- Consider "git rebase --quit" or "git worktree add".`):null}async function bw(e,t,n){let r=await Ps(e);if(r)return r;let o=await lo(e);return o?yd(e,o.name,o.refName,o.hash,t,n):S("no previous branch")}async function wd(e,t,n,r,o,s,i){if(!pn(t))return S(`'${t}' is not a valid branch name`);let a=`refs/heads/${t}`,c=await B(e,a);if(c&&!n)return S(`a branch named '${t}' already exists`);let f;if(r){let P=await De(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 Ye(e,"HEAD",a),await bt(e);let O=await kn(e);return await ae(e,o,"HEAD",null,te,`checkout: moving from ${D} to ${t}`),{stdout:"",stderr:`Switched to a new branch '${t}'
763
- ${O}`,exitCode:0}}f=P}let l=await Ps(e);if(l)return l;let d=await Z(e),m=await z(e);if(r){let P=Un(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 Nn(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 le(e,m),await Ne(e,H.worktreeOps)}}let h=await Q(e),p="";h?.type==="direct"&&d&&(p=await ho(e,d,f));let g=ww(h,d);await X(e,a,f),await Ye(e,"HEAD",a),await bt(e);let w=await kn(e),b=r??"HEAD";n&&c?c!==f&&await ae(e,o,a,c,f,`branch: Reset to ${b}`):await ae(e,o,a,null,f,`branch: Created from ${b}`),await ae(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 ge(e);O[`branch "${t}"`]={...O[`branch "${t}"`],remote:H,merge:D},await Ze(e,O),x=`branch '${t}' set up to track '${H}/${P.slice(1).join("/")}'.
764
- `}else r&&(x=await po(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}'
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
768
+ Consider "git revert --quit" or "git worktree add".`):await Nt(e)?I(`cannot switch branch while rebasing
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}'
765
772
  `:`Switched to a new branch '${t}'
766
- `,E=p+y+w+x,k="";r&&(k=await lr(e,u.tree,m));let R=await ge(e),C=await En(e,R,t);return C&&(k+=fr(C)),{stdout:k,stderr:E,exitCode:0}}async function yd(e,t,n,r,o,s){let i=await Ps(e);return i||dr(e,t,n,r,o,s)}async function yw(e,t,n,r,o){let s=await Ps(e);return s||Bn(e,n,r,o)}async function Ew(e,t,n,r){if(!pn(t))return S(`'${t}' is not a valid branch name`);let o=await Ps(e);if(o)return o;let s=`refs/heads/${t}`;if(await B(e,s))return S(`a branch named '${t}' already exists`);let a=await z(e),c=Un(a);if(c)return c;let f=await Z(e),l=await Q(e),d="";if(l?.type==="direct"&&f&&(d=await Ni(e,f)),e.workTree){let u=f?(await j(e,f)).tree:null,h=await Fe(e,[]),p=await Nn(e,u,h,a);if(!p.success)return p.errorOutput??L("error: checkout would overwrite local changes");await Ne(e,p.worktreeOps),await le(e,{version:2,entries:p.newEntries})}else await le(e,za());await Ye(e,"HEAD",s),await bt(e);let m=await kn(e);return await r?.hooks?.postCheckout?.({repo:e,prevHead:f,newHead:te,isBranchCheckout:!0}),{stdout:"",stderr:`${d}Switched to a new branch '${t}'
767
- ${m}`,exitCode:0}}ce();fe();Qr();pe();Ks();function kd(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:Y.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 S("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 ${V(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)})
768
775
  `,stderr:"",exitCode:0}):L(`error: tag '${n.name}' not found.
769
- `)}if(n.list)return Ed(s,n.name||void 0);if(n.name){if(!Oc(n.name))return S(`'${n.name}' is not a valid tag name`);let i=n.commit,a;if(i){let d=await gt(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 S("Failed to resolve 'HEAD' as a valid ref.");let c=`refs/tags/${n.name}`;if(await B(s,c)&&!n.force)return S(`tag '${n.name}' already exists`);if(n.annotate||n.message){if(!n.message)return S("no tag message specified (use -m)");let d=await tt(s,r.env);if(M(d))return d;let m=Mt(n.message),u=xc({type:"tag",object:a,objectType:"commit",name:n.name,tagger:d,message:m}),h=await Te(s,"tag",u);await X(s,c,h)}else await X(s,c,a);return{stdout:"",stderr:"",exitCode:0}}return Ed(s)}})}async function Ed(e,t){let n=await be(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=>nr(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(`
770
777
  `)}
771
- `,stderr:"",exitCode:0}}var Rd=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"]),kw={init:(e,t)=>Hl(e,t),clone:(e,t)=>al(e,t),fetch:(e,t)=>xl(e,t),pull:(e,t)=>Zl(e,t),push:(e,t)=>Jl(e,t),add:(e,t)=>Kc(e,t),blame:(e,t)=>Sf(e,t),commit:(e,t)=>cl(e,t),status:(e,t)=>gd(e,t),log:(e,t)=>Ul(e,t),branch:(e,t)=>vf(e,t),tag:(e,t)=>kd(e,t),checkout:(e,t)=>Hf(e,t),diff:(e,t)=>bl(e,t),reset:(e,t)=>nd(e,t),merge:(e,t)=>ql(e,t),"cherry-pick":(e,t)=>zf(e,t),revert:(e,t)=>id(e,t),rebase:(e,t)=>Xl(e,t),mv:(e,t)=>zl(e,t),rm:(e,t)=>ad(e,t),remote:(e,t)=>ed(e,t),config:(e,t)=>ul(e,t),show:(e,t)=>cd(e,t),stash:(e,t)=>pd(e,t),"rev-parse":(e,t)=>od(e,t),"ls-files":(e,t)=>Wl(e,t),clean:(e,t)=>Kf(e,t),switch:(e,t)=>bd(e,t),restore:(e,t)=>sd(e,t),reflog:(e,t)=>Ql(e,t),repack:(e,t)=>$l(e,t),gc:(e,t)=>Ol(e,t),bisect:(e,t)=>hf(e,t),grep:(e,t)=>Tl(e,t)};function xd(e){let t=Yo("git",{description:"Git command"});for(let n of Object.values(kw))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: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}'
772
- `,exitCode:1}}}),t}var Rw="1.2.13";function xw(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 Wo=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=xw(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=xd(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=Cw(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 ${Rw} (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.1";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)
773
780
  `,stderr:"",exitCode:0};if(this.blocked?.has(r))return{stdout:"",stderr:`git: '${r}' is not available in this environment
774
- `,exitCode:1};if(r&&Rd.has(r))return{stdout:"",stderr:`git: '${r}' is not implemented. Run 'git help' for available commands.
775
- `,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 Cw(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 Pw(e){return new Wo(e)}var Cd=new TextEncoder,$w=new TextDecoder;function dn(e){let t=[];for(let n of e.split("/"))n==="."||n===""||(n===".."?t.pop():t.push(n));return"/"+t.join("/")}function qo(e){let t=e.lastIndexOf("/");return t<=0?"/":e.slice(0,t)}var Ra=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=dn(n);this.ensureParents(o),this.data.set(o,{type:"file",content:typeof r=="string"?Cd.encode(r):r,mode:33188,mtime:new Date})}}ensureParents(t){let n=qo(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 dn(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("/")?dn(a):dn(qo(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=dn(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("/")?dn(f):dn(qo(o)+"/"+f),a=this.data.get(o),c++}}return`${o}/${r[r.length-1]}`}async readFile(t){return $w.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"?Cd.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=dn(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=qo(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=dn(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=dn(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})}};Mn();export{Wo as Git,Ra as MemoryFileSystem,Oh as composeGitHooks,Pw as createGit,er 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};