351 lines
667 KiB
JavaScript
351 lines
667 KiB
JavaScript
|
/*
|
||
|
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||
|
if you want to view the source visit the plugins github repository (https://github.com/denolehov/obsidian-git)
|
||
|
*/
|
||
|
|
||
|
var xk=Object.create;var ka=Object.defineProperty;var _k=Object.getOwnPropertyDescriptor;var Sk=Object.getOwnPropertyNames;var Ek=Object.getPrototypeOf,kk=Object.prototype.hasOwnProperty;var Ak=(t,e,n)=>e in t?ka(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Tk=(t,e)=>()=>(t&&(e=t(t=0)),e);var L=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Ck=(t,e)=>{for(var n in e)ka(t,n,{get:e[n],enumerable:!0})},Gp=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Sk(e))!kk.call(t,i)&&i!==n&&ka(t,i,{get:()=>e[i],enumerable:!(r=_k(e,i))||r.enumerable});return t};var Ve=(t,e,n)=>(n=t!=null?xk(Ek(t)):{},Gp(e||!t||!t.__esModule?ka(n,"default",{value:t,enumerable:!0}):n,t)),Fk=t=>Gp(ka({},"__esModule",{value:!0}),t);var ot=(t,e,n)=>Ak(t,typeof e!="symbol"?e+"":e,n);var qp=L(so=>{"use strict";v();so.byteLength=Ok;so.toByteArray=Pk;so.fromByteArray=jk;var mn=[],Yt=[],Mk=typeof Uint8Array!="undefined"?Uint8Array:Array,ru="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(Tr=0,Vp=ru.length;Tr<Vp;++Tr)mn[Tr]=ru[Tr],Yt[ru.charCodeAt(Tr)]=Tr;var Tr,Vp;Yt[45]=62;Yt[95]=63;function Wp(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var r=n===e?0:4-n%4;return[n,r]}function Ok(t){var e=Wp(t),n=e[0],r=e[1];return(n+r)*3/4-r}function Ik(t,e,n){return(e+n)*3/4-n}function Pk(t){var e,n=Wp(t),r=n[0],i=n[1],a=new Mk(Ik(t,r,i)),s=0,o=i>0?r-4:r,l;for(l=0;l<o;l+=4)e=Yt[t.charCodeAt(l)]<<18|Yt[t.charCodeAt(l+1)]<<12|Yt[t.charCodeAt(l+2)]<<6|Yt[t.charCodeAt(l+3)],a[s++]=e>>16&255,a[s++]=e>>8&255,a[s++]=e&255;return i===2&&(e=Yt[t.charCodeAt(l)]<<2|Yt[t.charCodeAt(l+1)]>>4,a[s++]=e&255),i===1&&(e=Yt[t.charCodeAt(l)]<<10|Yt[t.charCodeAt(l+1)]<<4|Yt[t.charCodeAt(l+2)]>>2,a[s++]=e>>8&255,a[s++]=e&255),a}function Rk(t){return mn[t>>18&63]+mn[t>>12&63]+mn[t>>6&63]+mn[t&63]}function Lk(t,e,n){for(var r,i=[],a=e;a<n;a+=3)r=(t[a]<<16&16711680)+(t[a+1]<<8&65280)+(t[a+2]&255),i.push(Rk(r));return i.join("")}function jk(t){for(var e,n=t.length,r=n%3,i=[],a=16383,s=0,o=n-r;s<o;s+=a)i.push(Lk(t,s,s+a>o?o:s+a));return r===1?(e=t[n-1],i.push(mn[e>>2]+mn[e<<4&63]+"==")):r===2&&(e=(t[n-2]<<8)+t[n-1],i.push(mn[e>>10]+mn[e>>4&63]+mn[e<<2&63]+"=")),i.join("")}});var Xp=L(iu=>{v();iu.read=function(t,e,n,r,i){var a,s,o=i*8-r-1,l=(1<<o)-1,c=l>>1,u=-7,f=n?i-1:0,d=n?-1:1,h=t[e+f];for(f+=d,a=h&(1<<-u)-1,h>>=-u,u+=o;u>0;a=a*256+t[e+f],f+=d,u-=8);for(s=a&(1<<-u)-1,a>>=-u,u+=r;u>0;s=s*256+t[e+f],f+=d,u-=8);if(a===0)a=1-c;else{if(a===l)return s?NaN:(h?-1:1)*(1/0);s=s+Math.pow(2,r),a=a-c}return(h?-1:1)*s*Math.pow(2,a-r)};iu.write=function(t,e,n,r,i,a){var s,o,l,c=a*8-i-1,u=(1<<c)-1,f=u>>1,d=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:a-1,p=r?1:-1,m=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,s=u):(s=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-s))<1&&(s--,l*=2),s+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(s++,l/=2),s+f>=u?(o=0,s=u):s+f>=1?(o=(e*l-1)*Math.pow(2,i),s=s+f):(o=e*Math.pow(2,f-1)*Math.pow(2,i),s=0));i>=8;t[n+h]=o&255,h+=p,o/=256,i-=8);for(s=s<<i|o,c+=i;c>0;t[n+h]=s&255,h+=p,s/=256,c-=8);t[n+h-p]|=m*128}});var hu=L(ci=>{"use strict";v();var au=qp(),oi=Xp(),Yp=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;ci.Buffer=I;ci.SlowBuffer=Uk;ci.INSPECT_MAX_BYTES=50;var oo=2147483647;ci.kMaxLength=oo;I.TYPED_ARRAY_SUPPORT=Dk();!I.TYPED_ARRAY_SUPPORT&&typeof console!="undefined"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function Dk(){try{let t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),t.foo()===42}catch(t){return!1}}Object.defineProperty(I.prototype,"parent",{enumerable:!0,get:function(){if(I.isBuffer(this))return this.buffer}});Object.defineProperty(I.prototype,"offset",{enumerable:!0,get:function(){if(I.isBuffer(
|
||
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function eM(t,e){if(t){if(typeof t=="string")return _2(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _2(t,e)}}function _2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function tM(t,e){if(!(typeof Symbol=="undefined"||!(Symbol.iterator in Object(t)))){var n=[],r=!0,i=!1,a=void 0;try{for(var s=t[Symbol.iterator](),o;!(r=(o=s.next()).done)&&(n.push(o.value),!(e&&n.length===e));r=!0);}catch(l){i=!0,a=l}finally{try{!r&&s.return!=null&&s.return()}finally{if(i)throw a}}return n}}function nM(t){if(Array.isArray(t))return t}var E2=/^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})?$/,k2=/^#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])?$/,A2=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*(0|1|0?\.\d+|\d+%))?\s*\)$/,T2=/^rgba?\(\s*(\d+)\s+(\d+)\s+(\d+)(?:\s*\/\s*(0|1|0?\.\d+|\d+%))?\s*\)$/,C2=/^rgba?\(\s*(\d+%)\s*,\s*(\d+%)\s*,\s*(\d+%)(?:\s*,\s*(0|1|0?\.\d+|\d+%))?\s*\)$/,F2=/^rgba?\(\s*(\d+%)\s+(\d+%)\s+(\d+%)(?:\s*\/\s*(0|1|0?\.\d+|\d+%))?\s*\)$/,M2=/^hsla?\(\s*(\d+)(deg|rad|grad|turn)?\s*,\s*(\d+)%\s*,\s*(\d+)%(?:\s*,\s*(0|1|0?\.\d+|\d+%))?\s*\)$/;function Es(t,e){return t.indexOf(e)>-1}function rM(t,e,n){var r=t/255,i=e/255,a=n/255,s=Math.max(r,i,a),o=Math.min(r,i,a),l=s-o,c=(s+o)/2;if(l===0)return[0,0,c*100];var u=l/(1-Math.abs(2*c-1)),f=function(){switch(s){case r:return(i-a)/l%6;case i:return(a-r)/l+2;default:return(r-i)/l+4}}();return[f*60,u*100,c*100]}function iM(t,e,n){var r=t/60,i=e/100,a=n/100,s=(1-Math.abs(2*a-1))*i,o=s*(1-Math.abs(r%2-1)),l=a-s/2,c=function(){return r<1?[s,o,0]:r<2?[o,s,0]:r<3?[0,s,o]:r<4?[0,o,s]:r<5?[o,0,s]:[s,0,o]}(),u=Ct(c,3),f=u[0],d=u[1],h=u[2];return[(f+l)*255,(d+l)*255,(h+l)*255]}var aM=function(){function t(e){var n=Ct(e,4),r=n[0],i=n[1],a=n[2],s=n[3];KF(this,t),this.values=[Math.max(Math.min(parseInt(r,10),255),0),Math.max(Math.min(parseInt(i,10),255),0),Math.max(Math.min(parseInt(a,10),255),0),s==null?1:Math.max(Math.min(parseFloat(s),255),0)]}return QF(t,[{key:"toRgbString",value:function(){var n=Ct(this.values,4),r=n[0],i=n[1],a=n[2],s=n[3];return s===1?"rgb(".concat(r,", ").concat(i,", ").concat(a,")"):"rgba(".concat(r,", ").concat(i,", ").concat(a,", ").concat(s,")")}},{key:"toHslString",value:function(){var n=this.toHslaArray(),r=Ct(n,4),i=r[0],a=r[1],s=r[2],o=r[3];return o===1?"hsl(".concat(i,", ").concat(a,"%, ").concat(s,"%)"):"hsla(".concat(i,", ").concat(a,"%, ").concat(s,"%, ").concat(o,")")}},{key:"toHexString",value:function(){var n=Ct(this.values,4),r=n[0],i=n[1],a=n[2],s=n[3];return r=Number(r).toString(16).padStart(2,"0"),i=Number(i).toString(16).padStart(2,"0"),a=Number(a).toString(16).padStart(2,"0"),s=s<1?parseInt(s*255,10).toString(16).padStart(2,"0"):"","#".concat(r).concat(i).concat(a).concat(s)}},{key:"toRgbaArray",value:function(){return this.values}},{key:"toHslaArray",value:function(){var n=Ct(this.values,4),r=n[0],i=n[1],a=n[2],s=n[3],o=rM(r,i,a),l=Ct(o,3),c=l[0],u=l[1],f=l[2];return[c,u,f,s]}}]),t}();function Wi(t){var e=Ct(t,4),n=e[0],r=e[1],i=e[2],a=e[3];return new aM([n,r,i,a])}function Ad(t){var e=Ct(t,3),n=e[0],r=e[1],i=e[2];return Wi([n,r,i,1])}function wl(t){var e=Ct(t,4),n=e[0],r=e[1],i=e[2],a=e[3],s=iM(n,r,i),o=Ct(s,3),l=o[0],c=o[1],u=o[2];return Wi([l,c,u,a])}function O2(t){var e=Ct(t,3),n=e[0],r=e[1],i=e[2];return wl([n,r,i,1])}function sM(t){var e=E2.exec(t)||k2.exec(t),n=Ct(e,5),r=n[1],i=n[2],a=n[3],s=n[4];return r=parseInt(r.length<2?r.repeat(2):r,16),i=parseInt(i.length<2?i.repeat(2):i,16),a=parseInt(a.length<2?a.repeat(2):a,16),s=s&&(parseInt(s.length<2?s.repeat(2):s,16)/255).toPrecision(1)||1,Wi([r,i,a,s])}function oM(t){var e=A2.exec(t)||C2.exec(t)||T2.exec(t)||F2.exec(t),n=Ct(e,5),r=n[1],i=n[2],a=n[3],s=n[4];return r=Es(r,"%")?parseInt(r,10)*255/100:parseInt(r,10),i=Es(i,"%")?parseInt(i,10)*255/100:pa
|
||
|
`)>=0)return!1;return!0}function uI(t,e){var n;if(t.indent===" ")n=" ";else if(typeof t.indent=="number"&&t.indent>0)n=Tn.call(Array(t.indent+1)," ");else return null;return{base:n,prev:Tn.call(Array(e+1),n)}}function Qd(t,e){if(t.length===0)return"";var n=`
|
||
|
`+e.prev+e.base;return n+Tn.call(t,","+n)+`
|
||
|
`+e.prev}function jl(t,e){var n=Kd(t),r=[];if(n){r.length=t.length;for(var i=0;i<t.length;i++)r[i]=mr(t,i)?e(t[i],t):""}var a=typeof Wd=="function"?Wd(t):[],s;if(Qi){s={};for(var o=0;o<a.length;o++)s["$"+a[o]]=a[o]}for(var l in t)mr(t,l)&&(n&&String(Number(l))===l&&l<t.length||Qi&&s["$"+l]instanceof Symbol||(Pb.call(/[^\w$]/,l)?r.push(e(l,t)+": "+e(t[l],t)):r.push(l+": "+e(t[l],t))));if(typeof Wd=="function")for(var c=0;c<a.length;c++)Rb.call(t,a[c])&&r.push("["+e(a[c])+"]: "+e(t[a[c]],t));return r}});var rh=L((K9,Ub)=>{"use strict";v();var Hb=dn(),Ji=Wt(),fI=$b(),dI=Gn(),Nl=Hb("%WeakMap%",!0),$l=Hb("%Map%",!0),hI=Ji("WeakMap.prototype.get",!0),pI=Ji("WeakMap.prototype.set",!0),mI=Ji("WeakMap.prototype.has",!0),gI=Ji("Map.prototype.get",!0),yI=Ji("Map.prototype.set",!0),vI=Ji("Map.prototype.has",!0),nh=function(t,e){for(var n=t,r;(r=n.next)!==null;n=r)if(r.key===e)return n.next=r.next,r.next=t.next,t.next=r,r},wI=function(t,e){var n=nh(t,e);return n&&n.value},bI=function(t,e,n){var r=nh(t,e);r?r.value=n:t.next={key:e,next:t.next,value:n}},xI=function(t,e){return!!nh(t,e)};Ub.exports=function(){var e,n,r,i={assert:function(a){if(!i.has(a))throw new dI("Side channel does not contain "+fI(a))},get:function(a){if(Nl&&a&&(typeof a=="object"||typeof a=="function")){if(e)return hI(e,a)}else if($l){if(n)return gI(n,a)}else if(r)return wI(r,a)},has:function(a){if(Nl&&a&&(typeof a=="object"||typeof a=="function")){if(e)return mI(e,a)}else if($l){if(n)return vI(n,a)}else if(r)return xI(r,a);return!1},set:function(a,s){Nl&&a&&(typeof a=="object"||typeof a=="function")?(e||(e=new Nl),pI(e,a,s)):$l?(n||(n=new $l),yI(n,a,s)):(r||(r={key:{},next:null}),bI(r,a,s))}};return i}});var Gb=L((J9,zb)=>{"use strict";v();var _I=Id(),Rs=rh()(),Vn=Gn(),ih={assert:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Vn("`O` is not an object");if(typeof e!="string")throw new Vn("`slot` must be a string");if(Rs.assert(t),!ih.has(t,e))throw new Vn("`"+e+"` is not present on `O`")},get:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Vn("`O` is not an object");if(typeof e!="string")throw new Vn("`slot` must be a string");var n=Rs.get(t);return n&&n["$"+e]},has:function(t,e){if(!t||typeof t!="object"&&typeof t!="function")throw new Vn("`O` is not an object");if(typeof e!="string")throw new Vn("`slot` must be a string");var n=Rs.get(t);return!!n&&_I(n,"$"+e)},set:function(t,e,n){if(!t||typeof t!="object"&&typeof t!="function")throw new Vn("`O` is not an object");if(typeof e!="string")throw new Vn("`slot` must be a string");var r=Rs.get(t);r||(r={},Rs.set(t,r)),r["$"+e]=n}};Object.freeze&&Object.freeze(ih);zb.exports=ih});var qb=L((tB,Wb)=>{"use strict";v();var Ls=Gb(),SI=SyntaxError,Vb=typeof StopIteration=="object"?StopIteration:null;Wb.exports=function(e){if(!Vb)throw new SI("this environment lacks StopIteration");Ls.set(e,"[[Done]]",!1);var n={next:function(){var i=Ls.get(this,"[[Iterator]]"),a=Ls.get(i,"[[Done]]");try{return{done:a,value:a?void 0:i.next()}}catch(s){if(Ls.set(i,"[[Done]]",!0),s!==Vb)throw s;return{done:!0,value:void 0}}}};return Ls.set(n,"[[Iterator]]",e),n}});var ah=L((rB,Xb)=>{v();var EI={}.toString;Xb.exports=Array.isArray||function(t){return EI.call(t)=="[object Array]"}});var sh=L((aB,Yb)=>{"use strict";v();var kI=String.prototype.valueOf,AI=function(e){try{return kI.call(e),!0}catch(n){return!1}},TI=Object.prototype.toString,CI="[object String]",FI=pr()();Yb.exports=function(e){return typeof e=="string"?!0:typeof e!="object"?!1:FI?AI(e):TI.call(e)===CI}});var lh=L((oB,Qb)=>{"use strict";v();var oh=typeof Map=="function"&&Map.prototype?Map:null,MI=typeof Set=="function"&&Set.prototype?Set:null,Hl;oh||(Hl=function(e){return!1});var Kb=oh?Map.prototype.has:null,Zb=MI?Set.prototype.has:null;!Hl&&!Kb&&(Hl=function(e){return!1});Qb.exports=Hl||function(e){if(!e||typeof e!="object")return!1;try{if(Kb.call(e),Zb)try{Zb.call(e)}catch(n){return!0}return e instanceof oh}catch(n){}return!1}});var uh=L((cB,tx)=>{"use strict";v();var OI=typeof Map=="function"&&Map.prototype?Map:null,ch=typeof Set=="f
|
||
|
`});Ae=!1,H=re.length}function X(Te,Be){var Je="="+D,Re=Te.indexOf(Je,Be),V=c(Te.substring(Te.indexOf("=",Be)+1,Re)).split(" ");return U=V[0],D=V[V.length-1],Re+Je.length-1}for(k&&(k=k.split(" "),U=k[0],D=k[1]),he=0;he<C;he++)j==M?u(U,S,he)?(--he,se(),j=P):S.charAt(he)==`
|
||
|
`?mt(Ae):de+=S.charAt(he):j==P?(he+=U.length-1,le=t.tags[S.charAt(he+1)],Q=le?S.charAt(he+1):"_v",Q=="="?(he=X(S,he),j=M):(le&&he++,j=$),Ae=he):u(D,S,he)?(re.push({tag:Q,n:c(de),otag:U,ctag:D,i:Q=="/"?Ae-U.length:he+D.length}),de="",he+=D.length-1,j=M,Q=="{"&&(D=="}}"?he++:l(re[re.length-1]))):de+=S.charAt(he);return mt(Ae,!0),re};function l(y){y.n.substr(y.n.length-1)==="}"&&(y.n=y.n.substring(0,y.n.length-1))}function c(y){return y.trim?y.trim():y.replace(/^\s*|\s*$/g,"")}function u(y,S,k){if(S.charAt(k)!=y.charAt(0))return!1;for(var C=1,M=y.length;C<M;C++)if(S.charAt(k+C)!=y.charAt(C))return!1;return!0}var f={_t:!0,"\n":!0,$:!0,"/":!0};function d(y,S,k,C){var M=[],P=null,$=null,j=null;for($=k[k.length-1];y.length>0;){if(j=y.shift(),$&&$.tag=="<"&&!(j.tag in f))throw new Error("Illegal content in < super tag.");if(t.tags[j.tag]<=t.tags.$||h(j,C))k.push(j),j.nodes=d(y,j.tag,k,C);else if(j.tag=="/"){if(k.length===0)throw new Error("Closing tag without opener: /"+j.n);if(P=k.pop(),j.n!=P.n&&!p(j.n,P.n,C))throw new Error("Nesting error: "+P.n+" vs. "+j.n);return P.end=j.i,M}else j.tag==`
|
||
|
`&&(j.last=y.length==0||y[0].tag==`
|
||
|
`);M.push(j)}if(k.length>0)throw new Error("missing closing tag: "+k.pop().n);return M}function h(y,S){for(var k=0,C=S.length;k<C;k++)if(S[k].o==y.n)return y.tag="#",!0}function p(y,S,k){for(var C=0,M=k.length;C<M;C++)if(k[C].c==y&&k[C].o==S)return!0}function m(y){var S=[];for(var k in y)S.push('"'+b(k)+'": function(c,p,t,i) {'+y[k]+"}");return"{ "+S.join(",")+" }"}function g(y){var S=[];for(var k in y.partials)S.push('"'+b(k)+'":{name:"'+b(y.partials[k].name)+'", '+g(y.partials[k])+"}");return"partials: {"+S.join(",")+"}, subs: "+m(y.subs)}t.stringify=function(y,S,k){return"{code: function (c,p,i) { "+t.wrapMain(y.code)+" },"+g(y)+"}"};var w=0;t.generate=function(y,S,k){w=0;var C={code:"",subs:{},partials:{}};return t.walk(y,C),k.asString?this.stringify(C,S,k):this.makeTemplate(C,S,k)},t.wrapMain=function(y){return'var t=this;t.b(i=i||"");'+y+"return t.fl();"},t.template=t.Template,t.makeTemplate=function(y,S,k){var C=this.makePartials(y);return C.code=new Function("c","p","i",this.wrapMain(y.code)),new this.template(C,S,this,k)},t.makePartials=function(y){var S,k={subs:{},partials:y.partials,name:y.name};for(S in k.partials)k.partials[S]=this.makePartials(k.partials[S]);for(S in y.subs)k.subs[S]=new Function("c","p","t","i",y.subs[S]);return k};function b(y){return y.replace(a,"\\\\").replace(n,'\\"').replace(r,"\\n").replace(i,"\\r").replace(s,"\\u2028").replace(o,"\\u2029")}function x(y){return~y.indexOf(".")?"d":"f"}function E(y,S){var k="<"+(S.prefix||""),C=k+y.n+w++;return S.partials[C]={name:y.n,partials:{}},S.code+='t.b(t.rp("'+b(C)+'",c,p,"'+(y.indent||"")+'"));',C}t.codegen={"#":function(y,S){S.code+="if(t.s(t."+x(y.n)+'("'+b(y.n)+'",c,p,1),c,p,0,'+y.i+","+y.end+',"'+y.otag+" "+y.ctag+'")){t.rs(c,p,function(c,p,t){',t.walk(y.nodes,S),S.code+="});c.pop();}"},"^":function(y,S){S.code+="if(!t.s(t."+x(y.n)+'("'+b(y.n)+'",c,p,1),c,p,1,0,0,"")){',t.walk(y.nodes,S),S.code+="};"},">":E,"<":function(y,S){var k={partials:{},code:"",subs:{},inPartial:!0};t.walk(y.nodes,k);var C=S.partials[E(y,S)];C.subs=k.subs,C.partials=k.partials},$:function(y,S){var k={subs:{},code:"",partials:S.partials,prefix:y.n};t.walk(y.nodes,k),S.subs[y.n]=k.code,S.inPartial||(S.code+='t.sub("'+b(y.n)+'",c,p,i);')},"\n":function(y,S){S.code+=T('"\\n"'+(y.last?"":" + i"))},_v:function(y,S){S.code+="t.b(t.v(t."+x(y.n)+'("'+b(y.n)+'",c,p,0)));'},_t:function(y,S){S.code+=T('"'+b(y.text)+'"')},"{":_,"&":_};function _(y,S){S.code+="t.b(t.t(t."+x(y.n)+'("'+b(y.n)+'",c,p,0)));'}function T(y){return"t.b("+y+");"}t.walk=function(y,S){for(var k,C=0,M=y.length;C<M;C++)k=t.codegen[y[C].tag],k&&k(y[C],S);return S},t.parse=function(y,S,k){return k=k||{},d(y,"",[],k.sectionTags||[])},t.cache={},t.cacheKey=function(y,S){return[y,!!S.asString,!!S.disableLambda,S.delimiters,!!S.modelGet].join("||")},t.compile=function(y,S){S=S||{};var k=t.cacheKey(y,S),C=this.cache[k];if(C){var M=C.partials;for(var P in M)delete M[P].instance;return C}return C=this.generate(this.parse(this.scan(y,S.delimiters),y,S),y,S),this.cache[k]=C}})(typeof _p!="undefined"?_p:Hogan)});var mE=L(Sp=>{v();var sL={};(function(t){t.Template=function(d,h,p,m){d=d||{},this.r=d.code||this.r,this.c=p,this.options=m||{},this.text=h||"",this.partials=d.partials||{},this.subs=d.subs||{},this.buf=""},t.Template.prototype={r:function(d,h,p){return""},v:u,t:c,render:function(h,p,m){return this.ri([h],p||{},m)},ri:function(d,h,p){return this.r(d,h,p)},ep:function(d,h){var p=this.partials[d],m=h[p.name];if(p.instance&&p.base==m)return p.instance;if(typeof m=="string"){if(!this.c)throw new Error("No compiler available.");m=this.c.compile(m,this.options)}if(!m)return null;if(this.partials[d].base=m,p.subs){h.stackText||(h.stackText={});for(key in p.subs)h.stackText[key]||(h.stackText[key]=this.activeSub!==void 0&&h.stackText[this.activeSub]?h.stackText[this.activeSub]:this.text);m=n(m,p.subs,p.partials,this.stackSubs,this.stackPartials,h.stackText)}return this.partials[d].instance=m,m},rp:function(d,h,p,m){var g=this.ep(d,p);return g?g.ri(h,p,m):""},rs:function(d,h,p){var m=d[d.length-1];if(!f(m)){p(d,h,this);
|
||
|
`)}static async _entryToBuffer(e){let n=Buffer.from(e.path),r=Math.ceil((62+n.length+1)/8)*8,i=Buffer.alloc(r),a=new Jt(i),s=Si(e);return a.writeUInt32BE(s.ctimeSeconds),a.writeUInt32BE(s.ctimeNanoseconds),a.writeUInt32BE(s.mtimeSeconds),a.writeUInt32BE(s.mtimeNanoseconds),a.writeUInt32BE(s.dev),a.writeUInt32BE(s.ino),a.writeUInt32BE(s.mode),a.writeUInt32BE(s.uid),a.writeUInt32BE(s.gid),a.writeUInt32BE(s.size),a.write(e.oid,20,"hex"),a.writeUInt16BE(LT(e)),a.write(e.path,n.length,"utf8"),i}async toObject(){let e=Buffer.alloc(12),n=new Jt(e);n.write("DIRC",4,"utf8"),n.writeUInt32BE(2),n.writeUInt32BE(this.entriesFlat.length);let r=[];for(let o of this.entries)if(r.push(t._entryToBuffer(o)),o.stages.length>1)for(let l of o.stages)l&&l!==o&&r.push(t._entryToBuffer(l));r=await Promise.all(r);let i=Buffer.concat(r),a=Buffer.concat([e,i]),s=await $n(a);return Buffer.concat([a,Buffer.from(s,"hex")])}};function Io(t,e,n=!0,r=!0){let i=Si(t),a=Si(e);return n&&i.mode!==a.mode||i.mtimeSeconds!==a.mtimeSeconds||i.ctimeSeconds!==a.ctimeSeconds||i.uid!==a.uid||i.gid!==a.gid||r&&i.ino!==a.ino||i.size!==a.size}var of=null,bi=Symbol("IndexCache");function jT(){return{map:new Map,stats:new Map}}async function DT(t,e,n){let r=await t.lstat(e),i=await t.read(e),a=await gf.from(i);n.map.set(e,a),n.stats.set(e,r)}async function BT(t,e,n){let r=n.stats.get(e);if(r===void 0)return!0;let i=await t.lstat(e);return r===null||i===null?!1:Io(r,i)}var it=class{static async acquire({fs:e,gitdir:n,cache:r,allowUnmerged:i=!0},a){r[bi]||(r[bi]=jT());let s=`${n}/index`;of===null&&(of=new Va.default({maxPending:1/0}));let o,l=[];return await of.acquire(s,async()=>{await BT(e,s,r[bi])&&await DT(e,s,r[bi]);let c=r[bi].map.get(s);if(l=c.unmergedPaths,l.length&&!i)throw new Wa(l);if(o=await a(c),c._dirty){let u=await c.toObject();await e.write(s,u),r[bi].stats.set(s,await e.lstat(s)),c._dirty=!1}}),o}};function Po(t){let e=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return e>-1&&(t=t.slice(e+1)),t}function Ei(t){let e=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return e===-1?".":e===0?"/":t.slice(0,e)}function o1(t){let e=new Map,n=function(i){if(!e.has(i)){let a={type:"tree",fullpath:i,basename:Po(i),metadata:{},children:[]};e.set(i,a),a.parent=n(Ei(i)),a.parent&&a.parent!==a&&a.parent.children.push(a)}return e.get(i)},r=function(i,a){if(!e.has(i)){let s={type:"blob",fullpath:i,basename:Po(i),metadata:a,parent:n(Ei(i)),children:[]};s.parent&&s.parent.children.push(s),e.set(i,s)}return e.get(i)};n(".");for(let i of t)r(i.path,i);return e}function NT(t){switch(t){case 16384:return"tree";case 33188:return"blob";case 33261:return"blob";case 40960:return"blob";case 57344:return"commit"}throw new ce(`Unexpected GitTree entry mode: ${t.toString(8)}`)}var yf=class{constructor({fs:e,gitdir:n,cache:r}){this.treePromise=it.acquire({fs:e,gitdir:n,cache:r},async function(a){return o1(a.entries)});let i=this;this.ConstructEntry=class{constructor(s){this._fullpath=s,this._type=!1,this._mode=!1,this._stat=!1,this._oid=!1}async type(){return i.type(this)}async mode(){return i.mode(this)}async stat(){return i.stat(this)}async content(){return i.content(this)}async oid(){return i.oid(this)}}}async readdir(e){let n=e._fullpath,i=(await this.treePromise).get(n);if(!i||i.type==="blob")return null;if(i.type!=="tree")throw new Error(`ENOTDIR: not a directory, scandir '${n}'`);let a=i.children.map(s=>s.fullpath);return a.sort(zo),a}async type(e){return e._type===!1&&await e.stat(),e._type}async mode(e){return e._mode===!1&&await e.stat(),e._mode}async stat(e){if(e._stat===!1){let r=(await this.treePromise).get(e._fullpath);if(!r)throw new Error(`ENOENT: no such file or directory, lstat '${e._fullpath}'`);let i=r.type==="tree"?{}:Si(r.metadata);e._type=r.type==="tree"?"tree":NT(i.mode),e._mode=i.mode,r.type==="tree"?e._stat=void 0:e._stat=i}return e._stat}async content(e){}async oid(e){if(e._oid===!1){let r=(await this.treePromise).get(e._fullpath);e._oid=r.metadata.oid}return e._oid}},Go=Symbol("GitWalkSymbol");function Vo(){let t=Object.create(null);return Object.definePr
|
||
|
[remote "${e}"]
|
||
|
fetch = +refs/heads/*:refs/remotes/origin/*
|
||
|
`),this.code=this.name=t.code,this.data={remote:e}}};qa.code="NoRefspecError";var Ro=class t{constructor(e){if(this.refs=new Map,this.parsedConfig=[],e){let n=null;this.parsedConfig=e.trim().split(`
|
||
|
`).map(r=>{if(/^\s*#/.test(r))return{line:r,comment:!0};let i=r.indexOf(" ");if(r.startsWith("^")){let a=r.slice(1);return this.refs.set(n+"^{}",a),{line:r,ref:n,peeled:a}}else{let a=r.slice(0,i);return n=r.slice(i+1),this.refs.set(n,a),{line:r,ref:n,oid:a}}})}return this}static from(e){return new t(e)}delete(e){this.parsedConfig=this.parsedConfig.filter(n=>n.ref!==e),this.refs.delete(e)}toString(){return this.parsedConfig.map(({line:e})=>e).join(`
|
||
|
`)+`
|
||
|
`}},Lo=class t{constructor({remotePath:e,localPath:n,force:r,matchPrefix:i}){Object.assign(this,{remotePath:e,localPath:n,force:r,matchPrefix:i})}static from(e){let[n,r,i,a,s]=e.match(/^(\+?)(.*?)(\*?):(.*?)(\*?)$/).slice(1),o=n==="+",l=i==="*";if(l!==(s==="*"))throw new ce("Invalid refspec");return new t({remotePath:r,localPath:a,force:o,matchPrefix:l})}translate(e){if(this.matchPrefix){if(e.startsWith(this.remotePath))return this.localPath+e.replace(this.remotePath,"")}else if(e===this.remotePath)return this.localPath;return null}reverseTranslate(e){if(this.matchPrefix){if(e.startsWith(this.localPath))return this.remotePath+e.replace(this.localPath,"")}else if(e===this.localPath)return this.remotePath;return null}},vf=class t{constructor(e=[]){this.rules=e}static from(e){let n=[];for(let r of e)n.push(Lo.from(r));return new t(n)}add(e){let n=Lo.from(e);this.rules.push(n)}translate(e){let n=[];for(let r of this.rules)for(let i of e){let a=r.translate(i);a&&n.push([i,a])}return n}translateOne(e){let n=null;for(let r of this.rules){let i=r.translate(e);i&&(n=i)}return n}localNamespaces(){return this.rules.filter(e=>e.matchPrefix).map(e=>e.localPath.replace(/\/$/,""))}};function $T(t,e){let n=t.replace(/\^\{\}$/,""),r=e.replace(/\^\{\}$/,""),i=-(n<r)||+(n>r);return i===0?t.endsWith("^{}")?1:-1:i}var R0=new Map;function L0(t){let e=R0.get(t);return e||(e=HT(t),R0.set(t,e)),e}function HT(t){return t=t.split("/./").join("/").replace(/\/{2,}/g,"/"),t==="/."?"/":t==="./"||(t.startsWith("./")&&(t=t.slice(2)),t.endsWith("/.")&&(t=t.slice(0,-2)),t.length>1&&t.endsWith("/")&&(t=t.slice(0,-1)),t==="")?".":t}function B(...t){return L0(t.map(L0).join("/"))}var UT=t=>{t=t.toLowerCase();let e=parseInt(t);return t.endsWith("k")&&(e*=1024),t.endsWith("m")&&(e*=1024*1024),t.endsWith("g")&&(e*=1024*1024*1024),e},Ga=t=>{if(t=t.trim().toLowerCase(),t==="true"||t==="yes"||t==="on")return!0;if(t==="false"||t==="no"||t==="off")return!1;throw Error(`Expected 'true', 'false', 'yes', 'no', 'on', or 'off', but got ${t}`)},j0={core:{filemode:Ga,bare:Ga,logallrefupdates:Ga,symlinks:Ga,ignorecase:Ga,bigFileThreshold:UT}},zT=/^\[([A-Za-z0-9-.]+)(?: "(.*)")?\]$/,GT=/^[A-Za-z0-9-.]+$/,VT=/^([A-Za-z][A-Za-z-]*)(?: *= *(.*))?$/,WT=/^[A-Za-z][A-Za-z-]*$/,qT=/^(.*?)( *[#;].*)$/,XT=t=>{let e=zT.exec(t);if(e!=null){let[n,r]=e.slice(1);return[n,r]}return null},YT=t=>{let e=VT.exec(t);if(e!=null){let[n,r="true"]=e.slice(1),i=ZT(r),a=KT(i);return[n,a]}return null},ZT=t=>{let e=qT.exec(t);if(e==null)return t;let[n,r]=e.slice(1);return D0(n)&&D0(r)?`${n}${r}`:n},D0=t=>(t.match(/(?:^|[^\\])"/g)||[]).length%2!==0,KT=t=>t.split("").reduce((e,n,r,i)=>{let a=n==='"'&&i[r-1]!=="\\",s=n==="\\"&&i[r+1]==='"';return a||s?e:e+n},""),B0=t=>t!=null?t.toLowerCase():null,wf=(t,e,n)=>[B0(t),e,B0(n)].filter(r=>r!=null).join("."),N0=t=>{let e=t.split("."),n=e.shift(),r=e.pop(),i=e.length?e.join("."):void 0;return{section:n,subsection:i,name:r,path:wf(n,i,r),sectionPath:wf(n,i,null)}},QT=(t,e)=>t.reduce((n,r,i)=>e(r)?i:n,-1),bf=class t{constructor(e){let n=null,r=null;this.parsedConfig=e?e.split(`
|
||
|
`).map(i=>{let a=null,s=null,o=i.trim(),l=XT(o),c=l!=null;if(c)[n,r]=l;else{let f=YT(o);f!=null&&([a,s]=f)}let u=wf(n,r,a);return{line:i,isSection:c,section:n,subsection:r,name:a,value:s,path:u}}):[]}static from(e){return new t(e)}async get(e,n=!1){let r=N0(e).path,i=this.parsedConfig.filter(a=>a.path===r).map(({section:a,name:s,value:o})=>{let l=j0[a]&&j0[a][s];return l?l(o):o});return n?i:i.pop()}async getall(e){return this.get(e,!0)}async getSubsections(e){return this.parsedConfig.filter(n=>n.section===e&&n.isSection).map(n=>n.subsection)}async deleteSection(e,n){this.parsedConfig=this.parsedConfig.filter(r=>!(r.section===e&&r.subsection===n))}async append(e,n){return this.set(e,n,!0)}async set(e,n,r=!1){let{section:i,subsection:a,name:s,path:o,sectionPath:l}=N0(e),c=QT(this.parsedConfig,u=>u.path===o);if(n==null)c!==-1&&this.parsedConfig.splice(c,1);else if(c!==-1){let u=this.parsedConfig[c],f=Object.assign({},u,{name:s,value:n,modified:!0});r?this.parsedConfig.splice(c+1,0,f):this.parsedConfig[c]=f}else{let u=this.parsedConfig.findIndex(d=>d.path===l),f={section:i,subsection:a,name:s,value:n,modified:!0,path:o};if(GT.test(i)&&WT.test(s))if(u>=0)this.parsedConfig.splice(u+1,0,f);else{let d={section:i,subsection:a,modified:!0,path:l};this.parsedConfig.push(d,f)}}}toString(){return this.parsedConfig.map(({line:e,section:n,subsection:r,name:i,value:a,modified:s=!1})=>s?i!=null&&a!=null?typeof a=="string"&&/[#;]/.test(a)?` ${i} = "${a}"`:` ${i} = ${a}`:r!=null?`[${n} "${r}"]`:`[${n}]`:e).join(`
|
||
|
`)}},$e=class{static async get({fs:e,gitdir:n}){let r=await e.read(`${n}/config`,{encoding:"utf8"});return bf.from(r)}static async save({fs:e,gitdir:n,config:r}){await e.write(`${n}/config`,r.toString(),{encoding:"utf8"})}},Fo=t=>[`${t}`,`refs/${t}`,`refs/tags/${t}`,`refs/heads/${t}`,`refs/remotes/${t}`,`refs/remotes/${t}/HEAD`],JT=["config","description","index","shallow","commondir"],lf;async function ir(t,e){return lf===void 0&&(lf=new Va.default),lf.acquire(t,e)}var W=class t{static async updateRemoteRefs({fs:e,gitdir:n,remote:r,refs:i,symrefs:a,tags:s,refspecs:o=void 0,prune:l=!1,pruneTags:c=!1}){for(let g of i.values())if(!g.match(/[0-9a-f]{40}/))throw new or(g);let u=await $e.get({fs:e,gitdir:n});if(!o){if(o=await u.getall(`remote.${r}.fetch`),o.length===0)throw new qa(r);o.unshift(`+HEAD:refs/remotes/${r}/HEAD`)}let f=vf.from(o),d=new Map;if(c){let g=await t.listRefs({fs:e,gitdir:n,filepath:"refs/tags"});await t.deleteRefs({fs:e,gitdir:n,refs:g.map(w=>`refs/tags/${w}`)})}if(s){for(let g of i.keys())if(g.startsWith("refs/tags")&&!g.endsWith("^{}")&&!await t.exists({fs:e,gitdir:n,ref:g})){let w=i.get(g);d.set(g,w)}}let h=f.translate([...i.keys()]);for(let[g,w]of h){let b=i.get(g);d.set(w,b)}let p=f.translate([...a.keys()]);for(let[g,w]of p){let b=a.get(g),x=f.translateOne(b);x&&d.set(w,`ref: ${x}`)}let m=[];if(l){for(let g of f.localNamespaces()){let w=(await t.listRefs({fs:e,gitdir:n,filepath:g})).map(b=>`${g}/${b}`);for(let b of w)d.has(b)||m.push(b)}m.length>0&&await t.deleteRefs({fs:e,gitdir:n,refs:m})}for(let[g,w]of d)await ir(g,async()=>e.write(B(n,g),`${w.trim()}
|
||
|
`,"utf8"));return{pruned:m}}static async writeRef({fs:e,gitdir:n,ref:r,value:i}){if(!i.match(/[0-9a-f]{40}/))throw new or(i);await ir(r,async()=>e.write(B(n,r),`${i.trim()}
|
||
|
`,"utf8"))}static async writeSymbolicRef({fs:e,gitdir:n,ref:r,value:i}){await ir(r,async()=>e.write(B(n,r),`ref: ${i.trim()}
|
||
|
`,"utf8"))}static async deleteRef({fs:e,gitdir:n,ref:r}){return t.deleteRefs({fs:e,gitdir:n,refs:[r]})}static async deleteRefs({fs:e,gitdir:n,refs:r}){await Promise.all(r.map(o=>e.rm(B(n,o))));let i=await ir("packed-refs",async()=>e.read(`${n}/packed-refs`,{encoding:"utf8"})),a=Ro.from(i),s=a.refs.size;for(let o of r)a.refs.has(o)&&a.delete(o);a.refs.size<s&&(i=a.toString(),await ir("packed-refs",async()=>e.write(`${n}/packed-refs`,i,{encoding:"utf8"})))}static async resolve({fs:e,gitdir:n,ref:r,depth:i=void 0}){if(i!==void 0&&(i--,i===-1))return r;if(r.startsWith("ref: "))return r=r.slice(5),t.resolve({fs:e,gitdir:n,ref:r,depth:i});if(r.length===40&&/[0-9a-f]{40}/.test(r))return r;let a=await t.packedRefs({fs:e,gitdir:n}),s=Fo(r).filter(o=>!JT.includes(o));for(let o of s){let l=await ir(o,async()=>await e.read(`${n}/${o}`,{encoding:"utf8"})||a.get(o));if(l)return t.resolve({fs:e,gitdir:n,ref:l.trim(),depth:i})}throw new Me(r)}static async exists({fs:e,gitdir:n,ref:r}){try{return await t.expand({fs:e,gitdir:n,ref:r}),!0}catch(i){return!1}}static async expand({fs:e,gitdir:n,ref:r}){if(r.length===40&&/[0-9a-f]{40}/.test(r))return r;let i=await t.packedRefs({fs:e,gitdir:n}),a=Fo(r);for(let s of a)if(await ir(s,async()=>e.exists(`${n}/${s}`))||i.has(s))return s;throw new Me(r)}static async expandAgainstMap({ref:e,map:n}){let r=Fo(e);for(let i of r)if(await n.has(i))return i;throw new Me(e)}static resolveAgainstMap({ref:e,fullref:n=e,depth:r=void 0,map:i}){if(r!==void 0&&(r--,r===-1))return{fullref:n,oid:e};if(e.startsWith("ref: "))return e=e.slice(5),t.resolveAgainstMap({ref:e,fullref:n,depth:r,map:i});if(e.length===40&&/[0-9a-f]{40}/.test(e))return{fullref:n,oid:e};let a=Fo(e);for(let s of a){let o=i.get(s);if(o)return t.resolveAgainstMap({ref:o.trim(),fullref:s,depth:r,map:i})}throw new Me(e)}static async packedRefs({fs:e,gitdir:n}){let r=await ir("packed-refs",async()=>e.read(`${n}/packed-refs`,{encoding:"utf8"}));return Ro.from(r).refs}static async listRefs({fs:e,gitdir:n,filepath:r}){let i=t.packedRefs({fs:e,gitdir:n}),a=null;try{a=await e.readdirDeep(`${n}/${r}`),a=a.map(s=>s.replace(`${n}/${r}/`,""))}catch(s){a=[]}for(let s of(await i).keys())s.startsWith(r)&&(s=s.replace(r+"/",""),a.includes(s)||a.push(s));return a.sort($T),a}static async listBranches({fs:e,gitdir:n,remote:r}){return r?t.listRefs({fs:e,gitdir:n,filepath:`refs/remotes/${r}`}):t.listRefs({fs:e,gitdir:n,filepath:"refs/heads"})}static async listTags({fs:e,gitdir:n}){return(await t.listRefs({fs:e,gitdir:n,filepath:"refs/tags"})).filter(i=>!i.endsWith("^{}"))}};function e5(t,e){return zo($0(t),$0(e))}function $0(t){return t.mode==="040000"?t.path+"/":t.path}function l1(t){switch(t){case"040000":return"tree";case"100644":return"blob";case"100755":return"blob";case"120000":return"blob";case"160000":return"commit"}throw new ce(`Unexpected GitTree entry mode: ${t}`)}function t5(t){let e=[],n=0;for(;n<t.length;){let r=t.indexOf(32,n);if(r===-1)throw new ce(`GitTree: Error parsing buffer at byte location ${n}: Could not find the next space character.`);let i=t.indexOf(0,n);if(i===-1)throw new ce(`GitTree: Error parsing buffer at byte location ${n}: Could not find the next null character.`);let a=t.slice(n,r).toString("utf8");a==="40000"&&(a="040000");let s=l1(a),o=t.slice(r+1,i).toString("utf8");if(o.includes("\\")||o.includes("/"))throw new _i(o);let l=t.slice(i+1,i+21).toString("hex");n=i+21,e.push({mode:a,path:o,oid:l,type:s})}return e}function n5(t){if(typeof t=="number"&&(t=t.toString(8)),t.match(/^0?4.*/))return"040000";if(t.match(/^1006.*/))return"100644";if(t.match(/^1007.*/))return"100755";if(t.match(/^120.*/))return"120000";if(t.match(/^160.*/))return"160000";throw new ce(`Could not understand file mode: ${t}`)}function r5(t){return!t.oid&&t.sha&&(t.oid=t.sha),t.mode=n5(t.mode),t.type||(t.type=l1(t.mode)),t}var It=class t{constructor(e){if(Buffer.isBuffer(e))this._entries=t5(e);else if(Array.isArray(e))this._entries=e.map(r5);else throw new ce("invalid type passed to GitTree constructor");this._entries.sort(i1)}static from(e){return new t(e)}render(){
|
||
|
`)}toObject(){let e=[...this._entries];return e.sort(e5),Buffer.concat(e.map(n=>{let r=Buffer.from(n.mode.replace(/^0/,"")),i=Buffer.from(" "),a=Buffer.from(n.path,"utf8"),s=Buffer.from([0]),o=Buffer.from(n.oid,"hex");return Buffer.concat([r,i,a,s,o])}))}entries(){return this._entries}*[Symbol.iterator](){for(let e of this._entries)yield e}},lr=class{static wrap({type:e,object:n}){return Buffer.concat([Buffer.from(`${e} ${n.byteLength.toString()}\0`),Buffer.from(n)])}static unwrap(e){let n=e.indexOf(32),r=e.indexOf(0),i=e.slice(0,n).toString("utf8"),a=e.slice(n+1,r).toString("utf8"),s=e.length-(r+1);if(parseInt(a)!==s)throw new ce(`Length mismatch: expected ${a} bytes but got ${s} instead.`);return{type:i,object:Buffer.from(e.slice(r+1))}}};async function i5({fs:t,gitdir:e,oid:n}){let r=`objects/${n.slice(0,2)}/${n.slice(2)}`,i=await t.read(`${e}/${r}`);return i?{object:i,format:"deflated",source:r}:null}function a5(t,e){let n=new Jt(t),r=H0(n);if(r!==e.byteLength)throw new ce(`applyDelta expected source buffer to be ${r} bytes but the provided buffer was ${e.length} bytes`);let i=H0(n),a,s=z0(n,e);if(s.byteLength===i)a=s;else{a=Buffer.alloc(i);let o=new Jt(a);for(o.copy(s);!n.eof();)o.copy(z0(n,e));let l=o.tell();if(i!==l)throw new ce(`applyDelta expected target buffer to be ${i} bytes but the resulting buffer was ${l} bytes`)}return a}function H0(t){let e=0,n=0,r=null;do r=t.readUInt8(),e|=(r&127)<<n,n+=7;while(r&128);return e}function U0(t,e,n){let r=0,i=0;for(;n--;)e&1&&(r|=t.readUInt8()<<i),e>>=1,i+=8;return r}function z0(t,e){let n=t.readUInt8(),r=128,i=15,a=112;if(n&r){let s=U0(t,n&i,4),o=U0(t,(n&a)>>4,3);return o===0&&(o=65536),e.slice(s,s+o)}else return t.slice(n)}function s5(t){let e=[t];return{next(){return Promise.resolve({done:e.length===0,value:e.pop()})},return(){return e=[],{}},[Symbol.asyncIterator](){return this}}}function c1(t){return t[Symbol.asyncIterator]?t[Symbol.asyncIterator]():t[Symbol.iterator]?t[Symbol.iterator]():t.next?t:s5(t)}var jo=class{constructor(e){if(typeof Buffer=="undefined")throw new Error("Missing Buffer dependency");this.stream=c1(e),this.buffer=null,this.cursor=0,this.undoCursor=0,this.started=!1,this._ended=!1,this._discardedBytes=0}eof(){return this._ended&&this.cursor===this.buffer.length}tell(){return this._discardedBytes+this.cursor}async byte(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(1),this.buffer[this.undoCursor]}async chunk(){if(!this.eof()&&(this.started||await this._init(),!(this.cursor===this.buffer.length&&(await this._loadnext(),this._ended))))return this._moveCursor(this.buffer.length),this.buffer.slice(this.undoCursor,this.cursor)}async read(e){if(!this.eof())return this.started||await this._init(),this.cursor+e>this.buffer.length&&(this._trim(),await this._accumulate(e)),this._moveCursor(e),this.buffer.slice(this.undoCursor,this.cursor)}async skip(e){this.eof()||(this.started||await this._init(),this.cursor+e>this.buffer.length&&(this._trim(),await this._accumulate(e)),this._moveCursor(e))}async undo(){this.cursor=this.undoCursor}async _next(){this.started=!0;let{done:e,value:n}=await this.stream.next();return e&&(this._ended=!0,!n)?Buffer.alloc(0):(n&&(n=Buffer.from(n)),n)}_trim(){this.buffer=this.buffer.slice(this.undoCursor),this.cursor-=this.undoCursor,this._discardedBytes+=this.undoCursor,this.undoCursor=0}_moveCursor(e){this.undoCursor=this.cursor,this.cursor+=e,this.cursor>this.buffer.length&&(this.cursor=this.buffer.length)}async _accumulate(e){if(this._ended)return;let n=[this.buffer];for(;this.cursor+e>o5(n);){let r=await this._next();if(this._ended)break;n.push(r)}this.buffer=Buffer.concat(n)}async _loadnext(){this._discardedBytes+=this.buffer.length,this.undoCursor=0,this.cursor=0,this.buffer=await this._next()}async _init(){this.buffer=await this._next()}};function o5(t){return t.reduce((e,n)=>e+n.length,0)}async function l5(t,e){let n=new jo(t),r=await n.read(4);if(r=r.toString("utf8"),r!=="PACK")throw new ce(`Invalid PACK header '${r}'`);l
|
||
|
`,t}function Do(t){let[,e,n,r,i]=t.match(/^(.*) <(.*)> (.*) (.*)$/);return{name:e,email:n,timestamp:Number(r),timezoneOffset:w5(i)}}function w5(t){let[,e,n,r]=t.match(/(\+|-)(\d\d)(\d\d)/);return r=(e==="+"?1:-1)*(Number(n)*60+Number(r)),b5(r)}function b5(t){return t===0?t:-t}var Nt=class t{constructor(e){if(typeof e=="string")this._tag=e;else if(Buffer.isBuffer(e))this._tag=e.toString("utf8");else if(typeof e=="object")this._tag=t.render(e);else throw new ce("invalid type passed to GitAnnotatedTag constructor")}static from(e){return new t(e)}static render(e){return`object ${e.object}
|
||
|
type ${e.type}
|
||
|
tag ${e.tag}
|
||
|
tagger ${xf(e.tagger)}
|
||
|
|
||
|
${e.message}
|
||
|
${e.gpgsig?e.gpgsig:""}`}justHeaders(){return this._tag.slice(0,this._tag.indexOf(`
|
||
|
|
||
|
`))}message(){let e=this.withoutSignature();return e.slice(e.indexOf(`
|
||
|
|
||
|
`)+2)}parse(){return Object.assign(this.headers(),{message:this.message(),gpgsig:this.gpgsig()})}render(){return this._tag}headers(){let e=this.justHeaders().split(`
|
||
|
`),n=[];for(let i of e)i[0]===" "?n[n.length-1]+=`
|
||
|
`+i.slice(1):n.push(i);let r={};for(let i of n){let a=i.slice(0,i.indexOf(" ")),s=i.slice(i.indexOf(" ")+1);Array.isArray(r[a])?r[a].push(s):r[a]=s}return r.tagger&&(r.tagger=Do(r.tagger)),r.committer&&(r.committer=Do(r.committer)),r}withoutSignature(){let e=Nn(this._tag);return e.indexOf(`
|
||
|
-----BEGIN PGP SIGNATURE-----`)===-1?e:e.slice(0,e.lastIndexOf(`
|
||
|
-----BEGIN PGP SIGNATURE-----`))}gpgsig(){if(this._tag.indexOf(`
|
||
|
-----BEGIN PGP SIGNATURE-----`)===-1)return;let e=this._tag.slice(this._tag.indexOf("-----BEGIN PGP SIGNATURE-----"),this._tag.indexOf("-----END PGP SIGNATURE-----")+27);return Nn(e)}payload(){return this.withoutSignature()+`
|
||
|
`}toObject(){return Buffer.from(this._tag,"utf8")}static async sign(e,n,r){let i=e.payload(),{signature:a}=await n({payload:i,secretKey:r});a=Nn(a);let s=i+a;return t.from(s)}};function uf(t){return t.trim().split(`
|
||
|
`).map(e=>" "+e).join(`
|
||
|
`)+`
|
||
|
`}function x5(t){return t.split(`
|
||
|
`).map(e=>e.replace(/^ /,"")).join(`
|
||
|
`)}var Pt=class t{constructor(e){if(typeof e=="string")this._commit=e;else if(Buffer.isBuffer(e))this._commit=e.toString("utf8");else if(typeof e=="object")this._commit=t.render(e);else throw new ce("invalid type passed to GitCommit constructor")}static fromPayloadSignature({payload:e,signature:n}){let r=t.justHeaders(e),i=t.justMessage(e),a=Nn(r+`
|
||
|
gpgsig`+uf(n)+`
|
||
|
`+i);return new t(a)}static from(e){return new t(e)}toObject(){return Buffer.from(this._commit,"utf8")}headers(){return this.parseHeaders()}message(){return t.justMessage(this._commit)}parse(){return Object.assign({message:this.message()},this.headers())}static justMessage(e){return Nn(e.slice(e.indexOf(`
|
||
|
|
||
|
`)+2))}static justHeaders(e){return e.slice(0,e.indexOf(`
|
||
|
|
||
|
`))}parseHeaders(){let e=t.justHeaders(this._commit).split(`
|
||
|
`),n=[];for(let i of e)i[0]===" "?n[n.length-1]+=`
|
||
|
`+i.slice(1):n.push(i);let r={parent:[]};for(let i of n){let a=i.slice(0,i.indexOf(" ")),s=i.slice(i.indexOf(" ")+1);Array.isArray(r[a])?r[a].push(s):r[a]=s}return r.author&&(r.author=Do(r.author)),r.committer&&(r.committer=Do(r.committer)),r}static renderHeaders(e){let n="";if(e.tree?n+=`tree ${e.tree}
|
||
|
`:n+=`tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
|
||
|
`,e.parent){if(e.parent.length===void 0)throw new ce("commit 'parent' property should be an array");for(let a of e.parent)n+=`parent ${a}
|
||
|
`}let r=e.author;n+=`author ${xf(r)}
|
||
|
`;let i=e.committer||e.author;return n+=`committer ${xf(i)}
|
||
|
`,e.gpgsig&&(n+="gpgsig"+uf(e.gpgsig)),n}static render(e){return t.renderHeaders(e)+`
|
||
|
`+Nn(e.message)}render(){return this._commit}withoutSignature(){let e=Nn(this._commit);if(e.indexOf(`
|
||
|
gpgsig`)===-1)return e;let n=e.slice(0,e.indexOf(`
|
||
|
gpgsig`)),r=e.slice(e.indexOf(`-----END PGP SIGNATURE-----
|
||
|
`)+28);return Nn(n+`
|
||
|
`+r)}isolateSignature(){let e=this._commit.slice(this._commit.indexOf("-----BEGIN PGP SIGNATURE-----"),this._commit.indexOf("-----END PGP SIGNATURE-----")+27);return x5(e)}static async sign(e,n,r){let i=e.withoutSignature(),a=t.justMessage(e._commit),{signature:s}=await n({payload:i,secretKey:r});s=Nn(s);let l=t.justHeaders(e._commit)+`
|
||
|
gpgsig`+uf(s)+`
|
||
|
`+a;return t.from(l)}};async function Mi({fs:t,cache:e,gitdir:n,oid:r}){if(r==="4b825dc642cb6eb9a060e54bf8d69288fbee4904")return{tree:It.from([]),oid:r};let{type:i,object:a}=await He({fs:t,cache:e,gitdir:n,oid:r});if(i==="tag")return r=Nt.from(a).parse().object,Mi({fs:t,cache:e,gitdir:n,oid:r});if(i==="commit")return r=Pt.from(a).parse().tree,Mi({fs:t,cache:e,gitdir:n,oid:r});if(i!=="tree")throw new kt(r,i,"tree");return{tree:It.from(a),oid:r}}var _f=class{constructor({fs:e,gitdir:n,ref:r,cache:i}){this.fs=e,this.cache=i,this.gitdir=n,this.mapPromise=(async()=>{let s=new Map,o;try{o=await W.resolve({fs:e,gitdir:n,ref:r})}catch(c){c instanceof Me&&(o="4b825dc642cb6eb9a060e54bf8d69288fbee4904")}let l=await Mi({fs:e,cache:this.cache,gitdir:n,oid:o});return l.type="tree",l.mode="40000",s.set(".",l),s})();let a=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return a.type(this)}async mode(){return a.mode(this)}async stat(){return a.stat(this)}async content(){return a.content(this)}async oid(){return a.oid(this)}}}async readdir(e){let n=e._fullpath,{fs:r,cache:i,gitdir:a}=this,s=await this.mapPromise,o=s.get(n);if(!o)throw new Error(`No obj for ${n}`);let l=o.oid;if(!l)throw new Error(`No oid for obj ${JSON.stringify(o)}`);if(o.type!=="tree")return null;let{type:c,object:u}=await He({fs:r,cache:i,gitdir:a,oid:l});if(c!==o.type)throw new kt(l,c,o.type);let f=It.from(u);for(let d of f)s.set(B(n,d.path),d);return f.entries().map(d=>B(n,d.path))}async type(e){if(e._type===!1){let n=await this.mapPromise,{type:r}=n.get(e._fullpath);e._type=r}return e._type}async mode(e){if(e._mode===!1){let n=await this.mapPromise,{mode:r}=n.get(e._fullpath);e._mode=a1(parseInt(r,8))}return e._mode}async stat(e){}async content(e){if(e._content===!1){let n=await this.mapPromise,{fs:r,cache:i,gitdir:a}=this,o=n.get(e._fullpath).oid,{type:l,object:c}=await He({fs:r,cache:i,gitdir:a,oid:o});l!=="blob"?e._content=void 0:e._content=new Uint8Array(c)}return e._content}async oid(e){if(e._oid===!1){let r=(await this.mapPromise).get(e._fullpath);e._oid=r.oid}return e._oid}};function sr({ref:t="HEAD"}={}){let e=Object.create(null);return Object.defineProperty(e,Go,{value:function({fs:n,gitdir:r,cache:i}){return new _f({fs:n,gitdir:r,ref:t,cache:i})}}),Object.freeze(e),e}var Sf=class{constructor({fs:e,dir:n,gitdir:r,cache:i}){this.fs=e,this.cache=i,this.dir=n,this.gitdir=r;let a=this;this.ConstructEntry=class{constructor(o){this._fullpath=o,this._type=!1,this._mode=!1,this._stat=!1,this._content=!1,this._oid=!1}async type(){return a.type(this)}async mode(){return a.mode(this)}async stat(){return a.stat(this)}async content(){return a.content(this)}async oid(){return a.oid(this)}}}async readdir(e){let n=e._fullpath,{fs:r,dir:i}=this,a=await r.readdir(B(i,n));return a===null?null:a.map(s=>B(n,s))}async type(e){return e._type===!1&&await e.stat(),e._type}async mode(e){return e._mode===!1&&await e.stat(),e._mode}async stat(e){if(e._stat===!1){let{fs:n,dir:r}=this,i=await n.lstat(`${r}/${e._fullpath}`);if(!i)throw new Error(`ENOENT: no such file or directory, lstat '${e._fullpath}'`);let a=i.isDirectory()?"tree":"blob";a==="blob"&&!i.isFile()&&!i.isSymbolicLink()&&(a="special"),e._type=a,i=Si(i),e._mode=i.mode,i.size===-1&&e._actualSize&&(i.size=e._actualSize),e._stat=i}return e._stat}async content(e){if(e._content===!1){let{fs:n,dir:r,gitdir:i}=this;if(await e.type()==="tree")e._content=void 0;else{let s=await(await $e.get({fs:n,gitdir:i})).get("core.autocrlf"),o=await n.read(`${r}/${e._fullpath}`,{autocrlf:s});e._actualSize=o.length,e._stat&&e._stat.size===-1&&(e._stat.size=e._actualSize),e._content=new Uint8Array(o)}}return e._content}async oid(e){if(e._oid===!1){let{fs:n,gitdir:r,cache:i}=this,a;await it.acquire({fs:n,gitdir:r,cache:i},async function(s){let o=s.entriesMap.get(e._fullpath),l=await e.stat(),u=await(await $e.get({fs:n,gitdir:r})).get("core.filemode"),f=typeof process!="undefined"?process.platform!=="win32":!0;!o||Io(l,o,u,f)?await e.content()===void
|
||
|
`),r=new TextEncoder().encode(r)}catch(i){}return typeof r!="string"&&(r=Buffer.from(r)),r}catch(r){return null}}async write(e,n,r={}){try{await this._writeFile(e,n,r);return}catch(i){await this.mkdir(Ei(e)),await this._writeFile(e,n,r)}}async mkdir(e,n=!1){try{await this._mkdir(e);return}catch(r){if(r===null||r.code==="EEXIST")return;if(n)throw r;if(r.code==="ENOENT"){let i=Ei(e);if(i==="."||i==="/"||i===e)throw r;await this.mkdir(i),await this.mkdir(e,!0)}}}async rm(e){try{await this._unlink(e)}catch(n){if(n.code!=="ENOENT")throw n}}async rmdir(e,n){try{n&&n.recursive?await this._rm(e,n):await this._rmdir(e)}catch(r){if(r.code!=="ENOENT")throw r}}async readdir(e){try{let n=await this._readdir(e);return n.sort(zo),n}catch(n){return n.code==="ENOTDIR"?null:[]}}async readdirDeep(e){let n=await this._readdir(e);return(await Promise.all(n.map(async i=>{let a=e+"/"+i;return(await this._stat(a)).isDirectory()?this.readdirDeep(a):a}))).reduce((i,a)=>i.concat(a),[])}async lstat(e){try{return await this._lstat(e)}catch(n){if(n.code==="ENOENT")return null;throw n}}async readlink(e,n={encoding:"buffer"}){try{let r=await this._readlink(e,n);return Buffer.isBuffer(r)?r:Buffer.from(r)}catch(r){if(r.code==="ENOENT")return null;throw r}}async writelink(e,n){return this._symlink(n.toString("utf8"),e)}};function F(t,e){if(e===void 0)throw new Ot(t)}async function Bo(t,e){return!t&&!e?!1:t&&!e||!t&&e?!0:!(await t.type()==="tree"&&await e.type()==="tree"||await t.type()===await e.type()&&await t.mode()===await e.mode()&&await t.oid()===await e.oid())}async function A5({fs:t,dir:e,gitdir:n=B(e,".git"),commit:r="HEAD",cache:i={}}){try{F("fs",t),F("dir",e),F("gitdir",n);let a=new ee(t),s=[sr({ref:r}),Wo(),Vo()],o=[];await it.acquire({fs:a,gitdir:n,cache:i},async function(c){o=c.unmergedPaths});let l=await Oi({fs:a,cache:i,dir:e,gitdir:n,trees:s,map:async function(c,[u,f,d]){let h=!await Bo(f,d),p=o.includes(c),m=!await Bo(d,u);if(h||p)return u?{path:c,mode:await u.mode(),oid:await u.oid(),type:await u.type(),content:await u.content()}:void 0;if(m)return!1;throw new ss(c)}});await it.acquire({fs:a,gitdir:n,cache:i},async function(c){for(let u of l)if(u!==!1){if(!u){await a.rmdir(`${e}/${u.path}`,{recursive:!0}),c.delete({filepath:u.path});continue}if(u.type==="blob"){let f=new TextDecoder().decode(u.content);await a.write(`${e}/${u.path}`,f,{mode:u.mode}),c.insert({filepath:u.path,oid:u.oid,stage:0})}}})}catch(a){throw a.caller="git.abortMerge",a}}var Ii=class{static async isIgnored({fs:e,dir:n,gitdir:r=B(n,".git"),filepath:i}){if(Po(i)===".git")return!0;if(i===".")return!1;let a="",s=B(r,"info","exclude");await e.exists(s)&&(a=await e.read(s,"utf8"));let o=[{gitignore:B(n,".gitignore"),filepath:i}],l=i.split("/").filter(Boolean);for(let u=1;u<l.length;u++){let f=l.slice(0,u).join("/"),d=l.slice(u).join("/");o.push({gitignore:B(n,f,".gitignore"),filepath:d})}let c=!1;for(let u of o){let f;try{f=await e.read(u.gitignore,"utf8")}catch(p){if(p.code==="NOENT")continue}let d=(0,n1.default)().add(a);d.add(f);let h=Ei(u.filepath);if(h!=="."&&d.ignores(h))return!0;c?c=!d.test(u.filepath).unignored:c=d.test(u.filepath).ignored}return c}};async function T5({fs:t,gitdir:e,object:n,format:r,oid:i}){if(r!=="deflated")throw new ce("GitObjectStoreLoose expects objects to write to be in deflated format");let a=`objects/${i.slice(0,2)}/${i.slice(2)}`,s=`${e}/${a}`;await t.exists(s)||await t.write(s,n)}var ff=null;async function d1(t){return ff===null&&(ff=F5()),ff?C5(t):Uo.default.deflate(t)}async function C5(t){let e=new CompressionStream("deflate"),n=new Blob([t]).stream().pipeThrough(e);return new Uint8Array(await new Response(n).arrayBuffer())}function F5(){try{return new CompressionStream("deflate").writable.close(),new Blob([]).stream().cancel(),!0}catch(t){return!1}}async function $t({fs:t,gitdir:e,type:n,object:r,format:i="content",oid:a=void 0,dryRun:s=!1}){return i!=="deflated"&&(i!=="wrapped"&&(r=lr.wrap({type:n,object:r})),a=await $n(r),r=Buffer.from(await d1(r))),s||await T5({fs:t,gitdir:e,object:r,format:"deflated",oid:a}),a}function M5(t){let e
|
||
|
`,author:l,committer:c,signingKey:u})}async function P5({fs:t,onSign:e,dir:n,gitdir:r=B(n,".git"),ref:i="refs/notes/commits",oid:a,note:s,force:o,author:l,committer:c,signingKey:u,cache:f={}}){try{F("fs",t),F("gitdir",r),F("oid",a),F("note",s),u&&F("onSign",e);let d=new ee(t),h=await Hr({fs:d,gitdir:r,author:l});if(!h)throw new At("author");let p=await Pi({fs:d,gitdir:r,author:h,committer:c});if(!p)throw new At("committer");return await I5({fs:new ee(d),cache:f,onSign:e,gitdir:r,ref:i,oid:a,note:s,force:o,author:h,committer:p,signingKey:u})}catch(d){throw d.caller="git.addNote",d}}async function y1({fs:t,gitdir:e,remote:n,url:r,force:i}){if(n!==cn.default.clean(n))throw new Hn(n,cn.default.clean(n));let a=await $e.get({fs:t,gitdir:e});if(!i&&(await a.getSubsections("remote")).includes(n)&&r!==await a.get(`remote.${n}.url`))throw new un("remote",n);await a.set(`remote.${n}.url`,r),await a.set(`remote.${n}.fetch`,`+refs/heads/*:refs/remotes/${n}/*`),await $e.save({fs:t,gitdir:e,config:a})}async function R5({fs:t,dir:e,gitdir:n=B(e,".git"),remote:r,url:i,force:a=!1}){try{return F("fs",t),F("gitdir",n),F("remote",r),F("url",i),await y1({fs:new ee(t),gitdir:n,remote:r,url:i,force:a})}catch(s){throw s.caller="git.addRemote",s}}async function L5({fs:t,cache:e,onSign:n,gitdir:r,ref:i,tagger:a,message:s=i,gpgsig:o,object:l,signingKey:c,force:u=!1}){if(i=i.startsWith("refs/tags/")?i:`refs/tags/${i}`,!u&&await W.exists({fs:t,gitdir:r,ref:i}))throw new un("tag",i);let f=await W.resolve({fs:t,gitdir:r,ref:l||"HEAD"}),{type:d}=await He({fs:t,cache:e,gitdir:r,oid:f}),h=Nt.from({object:f,type:d,tag:i.replace("refs/tags/",""),tagger:a,message:s,gpgsig:o});c&&(h=await Nt.sign(h,n,c));let p=await $t({fs:t,gitdir:r,type:"tag",object:h.toObject()});await W.writeRef({fs:t,gitdir:r,ref:i,value:p})}async function j5({fs:t,onSign:e,dir:n,gitdir:r=B(n,".git"),ref:i,tagger:a,message:s=i,gpgsig:o,object:l,signingKey:c,force:u=!1,cache:f={}}){try{F("fs",t),F("gitdir",r),F("ref",i),c&&F("onSign",e);let d=new ee(t),h=await Hr({fs:d,gitdir:r,author:a});if(!h)throw new At("tagger");return await L5({fs:d,cache:f,onSign:e,gitdir:r,ref:i,tagger:h,message:s,gpgsig:o,object:l,signingKey:c,force:u})}catch(d){throw d.caller="git.annotatedTag",d}}async function D5({fs:t,gitdir:e,ref:n,object:r,checkout:i=!1,force:a=!1}){if(n!==cn.default.clean(n))throw new Hn(n,cn.default.clean(n));let s=`refs/heads/${n}`;if(!a&&await W.exists({fs:t,gitdir:e,ref:s}))throw new un("branch",n,!1);let o;try{o=await W.resolve({fs:t,gitdir:e,ref:r||"HEAD"})}catch(l){}o&&await W.writeRef({fs:t,gitdir:e,ref:s,value:o}),i&&await W.writeSymbolicRef({fs:t,gitdir:e,ref:"HEAD",value:s})}async function B5({fs:t,dir:e,gitdir:n=B(e,".git"),ref:r,object:i,checkout:a=!1,force:s=!1}){try{return F("fs",t),F("gitdir",n),F("ref",r),await D5({fs:new ee(t),gitdir:n,ref:r,object:i,checkout:a,force:s})}catch(o){throw o.caller="git.branch",o}}var v1=(t,e)=>t==="."||e==null||e.length===0||e==="."?!0:e.length>=t.length?e.startsWith(t):t.startsWith(e);async function Of({fs:t,cache:e,onProgress:n,onPostCheckout:r,dir:i,gitdir:a,remote:s,ref:o,filepaths:l,noCheckout:c,noUpdateHead:u,dryRun:f,force:d,track:h=!0}){let p;if(r)try{p=await W.resolve({fs:t,gitdir:a,ref:"HEAD"})}catch(g){p="0000000000000000000000000000000000000000"}let m;try{m=await W.resolve({fs:t,gitdir:a,ref:o})}catch(g){if(o==="HEAD")throw g;let w=`${s}/${o}`;if(m=await W.resolve({fs:t,gitdir:a,ref:w}),h){let b=await $e.get({fs:t,gitdir:a});await b.set(`branch.${o}.remote`,s),await b.set(`branch.${o}.merge`,`refs/heads/${o}`),await $e.save({fs:t,gitdir:a,config:b})}await W.writeRef({fs:t,gitdir:a,ref:`refs/heads/${o}`,value:m})}if(!c){let g;try{g=await N5({fs:t,cache:e,onProgress:n,dir:i,gitdir:a,ref:o,force:d,filepaths:l})}catch(_){throw _ instanceof Me&&_.data.what===m?new Ka(o,m):_}let w=g.filter(([_])=>_==="conflict").map(([_,T])=>T);if(w.length>0)throw new Za(w);let b=g.filter(([_])=>_==="error").map(([_,T])=>T);if(b.length>0)throw new ce(b.join(", "));if(f){r&&await r({previousHead:p,newHead:m,type:l!=null&&l.length>0?"file":"branch"});re
|
||
|
`).map(s=>i.add(s))}),i}static async write({fs:e,gitdir:n,oids:r}){Br===null&&(Br=new Va.default);let i=B(n,"shallow");if(r.size>0){let a=[...r].join(`
|
||
|
`)+`
|
||
|
`;await Br.acquire(i,async function(){await e.write(i,a,{encoding:"utf8"})})}else await Br.acquire(i,async function(){await e.rm(i)})}};async function G5({fs:t,gitdir:e,oid:n}){let r=`objects/${n.slice(0,2)}/${n.slice(2)}`;return t.exists(`${e}/${r}`)}async function V5({fs:t,cache:e,gitdir:n,oid:r,getExternalRefDelta:i}){let a=await t.readdir(B(n,"objects/pack"));a=a.filter(s=>s.endsWith(".idx"));for(let s of a){let o=`${n}/objects/pack/${s}`,l=await Ff({fs:t,cache:e,filename:o,getExternalRefDelta:i});if(l.error)throw new ce(l.error);if(l.offsets.has(r))return!0}return!1}async function J0({fs:t,cache:e,gitdir:n,oid:r,format:i="content"}){let a=o=>He({fs:t,cache:e,gitdir:n,oid:o}),s=await G5({fs:t,gitdir:n,oid:r});return s||(s=await V5({fs:t,cache:e,gitdir:n,oid:r,getExternalRefDelta:a})),s}function W5(t){let i="5041434b"+"00000002"+"00000000";return t.slice(0,12).toString("hex")===i}function b1(t,e){let n=t.map(r=>r.split("=",1)[0]);return e.filter(r=>{let i=r.split("=",1)[0];return n.includes(i)})}var Xo={name:"isomorphic-git",version:"1.27.1",agent:"git/isomorphic-git@1.27.1"},xi=class{constructor(){this._queue=[]}write(e){if(this._ended)throw Error("You cannot write to a FIFO that has already been ended!");if(this._waiting){let n=this._waiting;this._waiting=null,n({value:e})}else this._queue.push(e)}end(){if(this._ended=!0,this._waiting){let e=this._waiting;this._waiting=null,e({done:!0})}}destroy(e){this.error=e,this.end()}async next(){if(this._queue.length>0)return{value:this._queue.shift()};if(this._ended)return{done:!0};if(this._waiting)throw Error("You cannot call read until the previous call to read has returned!");return new Promise(e=>{this._waiting=e})}};function q5(t){let e=t.indexOf("\r"),n=t.indexOf(`
|
||
|
`);return e===-1&&n===-1?-1:e===-1?n+1:n===-1?e+1:n===e+1?n+1:Math.min(e,n)+1}function x1(t){let e=new xi,n="";return(async()=>(await fs(t,r=>{for(r=r.toString("utf8"),n+=r;;){let i=q5(n);if(i===-1)break;e.write(n.slice(0,i)),n=n.slice(i)}}),n.length>0&&e.write(n),e.end()))(),e}var Ho=class{static demux(e){let n=Ne.streamReader(e),r=new xi,i=new xi,a=new xi,s=async function(){let o=await n();if(o===null)return s();if(o===!0){r.end(),a.end(),e.error?i.destroy(e.error):i.end();return}switch(o[0]){case 1:{i.write(o.slice(1));break}case 2:{a.write(o.slice(1));break}case 3:{let l=o.slice(1);a.write(l),r.end(),a.end(),i.destroy(new Error(l.toString("utf8")));return}default:r.write(o)}s()};return s(),{packetlines:r,packfile:i,progress:a}}};async function X5(t){let{packetlines:e,packfile:n,progress:r}=Ho.demux(t),i=[],a=[],s=[],o=!1,l=!1;return new Promise((c,u)=>{fs(e,f=>{let d=f.toString("utf8").trim();if(d.startsWith("shallow")){let h=d.slice(-41).trim();h.length!==40&&u(new or(h)),i.push(h)}else if(d.startsWith("unshallow")){let h=d.slice(-41).trim();h.length!==40&&u(new or(h)),a.push(h)}else if(d.startsWith("ACK")){let[,h,p]=d.split(" ");s.push({oid:h,status:p}),p||(l=!0)}else d.startsWith("NAK")?(o=!0,l=!0):(l=!0,o=!0);l&&(t.error?u(t.error):c({shallows:i,unshallows:a,acks:s,nak:o,packfile:n,progress:r}))}).finally(()=>{l||(t.error?u(t.error):c({shallows:i,unshallows:a,acks:s,nak:o,packfile:n,progress:r}))})})}function Y5({capabilities:t=[],wants:e=[],haves:n=[],shallows:r=[],depth:i=null,since:a=null,exclude:s=[]}){let o=[];e=[...new Set(e)];let l=` ${t.join(" ")}`;for(let c of e)o.push(Ne.encode(`want ${c}${l}
|
||
|
`)),l="";for(let c of r)o.push(Ne.encode(`shallow ${c}
|
||
|
`));i!==null&&o.push(Ne.encode(`deepen ${i}
|
||
|
`)),a!==null&&o.push(Ne.encode(`deepen-since ${Math.floor(a.valueOf()/1e3)}
|
||
|
`));for(let c of s)o.push(Ne.encode(`deepen-not ${c}
|
||
|
`));o.push(Ne.flush());for(let c of n)o.push(Ne.encode(`have ${c}
|
||
|
`));return o.push(Ne.encode(`done
|
||
|
`)),o}async function If({fs:t,cache:e,http:n,onProgress:r,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,gitdir:l,ref:c,remoteRef:u,remote:f,url:d,corsProxy:h,depth:p=null,since:m=null,exclude:g=[],relative:w=!1,tags:b=!1,singleBranch:x=!1,headers:E={},prune:_=!1,pruneTags:T=!1}){let y=c||await zr({fs:t,gitdir:l,test:!0}),S=await $e.get({fs:t,gitdir:l}),k=f||y&&await S.get(`branch.${y}.remote`)||"origin",C=d||await S.get(`remote.${k}.url`);if(typeof C=="undefined")throw new Ot("remote OR url");let M=u||y&&await S.get(`branch.${y}.merge`)||c||"HEAD";h===void 0&&(h=await S.get("http.corsProxy"));let P=Li.getRemoteHelperFor({url:C}),$=await P.discover({http:n,onAuth:a,onAuthSuccess:s,onAuthFailure:o,corsProxy:h,service:"git-upload-pack",url:C,headers:E,protocolVersion:1}),j=$.auth,Q=$.refs;if(Q.size===0)return{defaultBranch:null,fetchHead:null,fetchHeadDescription:null};if(p!==null&&!$.capabilities.has("shallow"))throw new ar("shallow","depth");if(m!==null&&!$.capabilities.has("deepen-since"))throw new ar("deepen-since","since");if(g.length>0&&!$.capabilities.has("deepen-not"))throw new ar("deepen-not","exclude");if(w===!0&&!$.capabilities.has("deepen-relative"))throw new ar("deepen-relative","relative");let{oid:le,fullref:de}=W.resolveAgainstMap({ref:M,map:Q});for(let V of Q.keys())V===de||V==="HEAD"||V.startsWith("refs/heads/")||b&&V.startsWith("refs/tags/")||Q.delete(V);let re=b1([...$.capabilities],["multi_ack_detailed","no-done","side-band-64k","ofs-delta",`agent=${Xo.agent}`]);w&&re.push("deepen-relative");let Ae=x?[le]:Q.values(),he=x?[y]:await W.listRefs({fs:t,gitdir:l,filepath:"refs"}),H=[];for(let V of he)try{V=await W.expand({fs:t,gitdir:l,ref:V});let et=await W.resolve({fs:t,gitdir:l,ref:V});await J0({fs:t,cache:e,gitdir:l,oid:et})&&H.push(et)}catch(et){}H=[...new Set(H)];let U=await Ur.read({fs:t,gitdir:l}),D=$.capabilities.has("shallow")?[...U]:[],se=Y5({capabilities:re,wants:Ae,haves:H,shallows:D,depth:p,since:m,exclude:g}),_e=Buffer.from(await $o(se)),mt=await P.connect({http:n,onProgress:r,corsProxy:h,service:"git-upload-pack",url:C,auth:j,body:[_e],headers:E}),X=await X5(mt.body);mt.headers&&(X.headers=mt.headers);for(let V of X.shallows)if(!U.has(V))try{let{object:et}=await He({fs:t,cache:e,gitdir:l,oid:V}),N=new Pt(et),Y=await Promise.all(N.headers().parent.map(Ge=>J0({fs:t,cache:e,gitdir:l,oid:Ge})));Y.length===0||Y.every(Ge=>Ge)||U.add(V)}catch(et){U.add(V)}for(let V of X.unshallows)U.delete(V);if(await Ur.write({fs:t,gitdir:l,oids:U}),x){let V=new Map([[de,le]]),et=new Map,N=10,Y=de;for(;N--;){let _t=$.symrefs.get(Y);if(_t===void 0)break;et.set(Y,_t),Y=_t}let ye=Q.get(Y);ye&&V.set(Y,ye);let{pruned:Ge}=await W.updateRemoteRefs({fs:t,gitdir:l,remote:k,refs:V,symrefs:et,tags:b,prune:_});_&&(X.pruned=Ge)}else{let{pruned:V}=await W.updateRemoteRefs({fs:t,gitdir:l,remote:k,refs:Q,symrefs:$.symrefs,tags:b,prune:_,pruneTags:T});_&&(X.pruned=V)}if(X.HEAD=$.symrefs.get("HEAD"),X.HEAD===void 0){let{oid:V}=W.resolveAgainstMap({ref:"HEAD",map:Q});for(let[et,N]of Q.entries())if(et!=="HEAD"&&N===V){X.HEAD=et;break}}let Te=de.startsWith("refs/tags")?"tag":"branch";if(X.FETCH_HEAD={oid:le,description:`${Te} '${Nr(de)}' of ${C}`},r||i){let V=x1(X.progress);fs(V,async et=>{if(i&&await i(et),r){let N=et.match(/([^:]*).*\((\d+?)\/(\d+?)\)/);N&&await r({phase:N[1].trim(),loaded:parseInt(N[2],10),total:parseInt(N[3],10)})}})}let Be=Buffer.from(await $o(X.packfile));if(mt.body.error)throw mt.body.error;let Je=Be.slice(-20).toString("hex"),Re={defaultBranch:X.HEAD,fetchHead:X.FETCH_HEAD.oid,fetchHeadDescription:X.FETCH_HEAD.description};if(X.headers&&(Re.headers=X.headers),_&&(Re.pruned=X.pruned),Je!==""&&!W5(Be)){Re.packfile=`objects/pack/pack-${Je}.pack`;let V=B(l,Re.packfile);await t.write(V,Be);let et=Y=>He({fs:t,cache:e,gitdir:l,oid:Y}),N=await Xa.fromPack({pack:Be,getExternalRefDelta:et,onProgress:r});await t.write(V.replace(/\.pack$/,".idx"),await N.toBuffer())}return Re}async function _1({fs:t,bare:e=!1,dir:n,gitdir:r=e?n:B(n,".git"),defaultBranch:i="master"}){if(await t.exists(r+"/config"))return;let a=["hooks
|
||
|
repositoryformatversion = 0
|
||
|
filemode = false
|
||
|
bare = ${e}
|
||
|
`+(e?"":` logallrefupdates = true
|
||
|
`)+` symlinks = false
|
||
|
ignorecase = true
|
||
|
`),await t.write(r+"/HEAD",`ref: refs/heads/${i}
|
||
|
`)}async function Z5({fs:t,cache:e,http:n,onProgress:r,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,onPostCheckout:l,dir:c,gitdir:u,url:f,corsProxy:d,ref:h,remote:p,depth:m,since:g,exclude:w,relative:b,singleBranch:x,noCheckout:E,noTags:_,headers:T}){try{if(await _1({fs:t,gitdir:u}),await y1({fs:t,gitdir:u,remote:p,url:f,force:!1}),d){let k=await $e.get({fs:t,gitdir:u});await k.set("http.corsProxy",d),await $e.save({fs:t,gitdir:u,config:k})}let{defaultBranch:y,fetchHead:S}=await If({fs:t,cache:e,http:n,onProgress:r,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,gitdir:u,ref:h,remote:p,corsProxy:d,depth:m,since:g,exclude:w,relative:b,singleBranch:x,headers:T,tags:!_});if(S===null)return;h=h||y,h=h.replace("refs/heads/",""),await Of({fs:t,cache:e,onProgress:r,onPostCheckout:l,dir:c,gitdir:u,ref:h,remote:p,noCheckout:E})}catch(y){throw await t.rmdir(u,{recursive:!0,maxRetries:10}).catch(()=>{}),y}}async function K5({fs:t,http:e,onProgress:n,onMessage:r,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPostCheckout:o,dir:l,gitdir:c=B(l,".git"),url:u,corsProxy:f=void 0,ref:d=void 0,remote:h="origin",depth:p=void 0,since:m=void 0,exclude:g=[],relative:w=!1,singleBranch:b=!1,noCheckout:x=!1,noTags:E=!1,headers:_={},cache:T={}}){try{return F("fs",t),F("http",e),F("gitdir",c),x||F("dir",l),F("url",u),await Z5({fs:new ee(t),cache:T,http:e,onProgress:n,onMessage:r,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPostCheckout:o,dir:l,gitdir:c,url:u,corsProxy:f,ref:d,remote:h,depth:p,since:m,exclude:g,relative:w,singleBranch:b,noCheckout:x,noTags:E,headers:_})}catch(y){throw y.caller="git.clone",y}}async function Q5({fs:t,onSign:e,dir:n,gitdir:r=B(n,".git"),message:i,author:a,committer:s,signingKey:o,amend:l=!1,dryRun:c=!1,noUpdateBranch:u=!1,ref:f,parent:d,tree:h,cache:p={}}){try{F("fs",t),l||F("message",i),o&&F("onSign",e);let m=new ee(t);return await qo({fs:m,cache:p,onSign:e,gitdir:r,message:i,author:a,committer:s,signingKey:o,amend:l,dryRun:c,noUpdateBranch:u,ref:f,parent:d,tree:h})}catch(m){throw m.caller="git.commit",m}}async function J5({fs:t,dir:e,gitdir:n=B(e,".git"),fullname:r=!1,test:i=!1}){try{return F("fs",t),F("gitdir",n),await zr({fs:new ee(t),gitdir:n,fullname:r,test:i})}catch(a){throw a.caller="git.currentBranch",a}}async function eC({fs:t,gitdir:e,ref:n}){if(n=n.startsWith("refs/heads/")?n:`refs/heads/${n}`,!await W.exists({fs:t,gitdir:e,ref:n}))throw new Me(n);let i=await W.expand({fs:t,gitdir:e,ref:n}),a=await zr({fs:t,gitdir:e,fullname:!0});if(i===a){let l=await W.resolve({fs:t,gitdir:e,ref:i});await W.writeRef({fs:t,gitdir:e,ref:"HEAD",value:l})}await W.deleteRef({fs:t,gitdir:e,ref:i});let s=Nr(n),o=await $e.get({fs:t,gitdir:e});await o.deleteSection("branch",s),await $e.save({fs:t,gitdir:e,config:o})}async function tC({fs:t,dir:e,gitdir:n=B(e,".git"),ref:r}){try{return F("fs",t),F("ref",r),await eC({fs:new ee(t),gitdir:n,ref:r})}catch(i){throw i.caller="git.deleteBranch",i}}async function nC({fs:t,dir:e,gitdir:n=B(e,".git"),ref:r}){try{F("fs",t),F("ref",r),await W.deleteRef({fs:new ee(t),gitdir:n,ref:r})}catch(i){throw i.caller="git.deleteRef",i}}async function rC({fs:t,gitdir:e,remote:n}){let r=await $e.get({fs:t,gitdir:e});await r.deleteSection("remote",n),await $e.save({fs:t,gitdir:e,config:r})}async function iC({fs:t,dir:e,gitdir:n=B(e,".git"),remote:r}){try{return F("fs",t),F("remote",r),await rC({fs:new ee(t),gitdir:n,remote:r})}catch(i){throw i.caller="git.deleteRemote",i}}async function aC({fs:t,gitdir:e,ref:n}){n=n.startsWith("refs/tags/")?n:`refs/tags/${n}`,await W.deleteRef({fs:t,gitdir:e,ref:n})}async function sC({fs:t,dir:e,gitdir:n=B(e,".git"),ref:r}){try{return F("fs",t),F("ref",r),await aC({fs:new ee(t),gitdir:n,ref:r})}catch(i){throw i.caller="git.deleteTag",i}}async function oC({fs:t,gitdir:e,oid:n}){let r=n.slice(0,2);return(await t.readdir(`${e}/objects/${r}`)).map(a=>`${r}${a}`).filter(a=>a.startsWith(n))}async function lC({fs:t,cache:e,gitdir:n,oid:r,getExternalRefDelta:i}){let a=[],s=await t.readdir(B(n,"objects/pack"));s=s.filter(o=>o.endsWith(".idx"));for(let o of s){let l=`${n}/obje
|
||
|
`,d+=p.conflict.a.join(""),d+=`${"=".repeat(f)}
|
||
|
`,d+=p.conflict.b.join(""),d+=`${">".repeat(f)} ${r}
|
||
|
`);return{cleanMerge:h,mergedText:d}}async function hC({fs:t,cache:e,dir:n,gitdir:r=B(n,".git"),index:i,ourOid:a,baseOid:s,theirOid:o,ourName:l="ours",baseName:c="base",theirName:u="theirs",dryRun:f=!1,abortOnConflict:d=!0,mergeDriver:h}){let p=sr({ref:a}),m=sr({ref:s}),g=sr({ref:o}),w=[],b=[],x=[],E=[],_=await Oi({fs:t,cache:e,dir:n,gitdir:r,trees:[p,m,g],map:async function(T,[y,S,k]){let C=Po(T),M=await Bo(y,S),P=await Bo(k,S);switch(`${M}-${P}`){case"false-false":return{mode:await S.mode(),path:C,oid:await S.oid(),type:await S.type()};case"false-true":return k?{mode:await k.mode(),path:C,oid:await k.oid(),type:await k.type()}:void 0;case"true-false":return y?{mode:await y.mode(),path:C,oid:await y.oid(),type:await y.type()}:void 0;case"true-true":{if(y&&S&&k&&await y.type()==="blob"&&await S.type()==="blob"&&await k.type()==="blob")return pC({fs:t,gitdir:r,path:C,ours:y,base:S,theirs:k,ourName:l,baseName:c,theirName:u,mergeDriver:h}).then(async $=>{if($.cleanMerge)d||i.insert({filepath:T,oid:$.mergeResult.oid,stage:0});else if(w.push(T),b.push(T),!d){let j=await S.oid(),Q=await y.oid(),le=await k.oid();i.delete({filepath:T}),i.insert({filepath:T,oid:j,stage:1}),i.insert({filepath:T,oid:Q,stage:2}),i.insert({filepath:T,oid:le,stage:3})}return $.mergeResult});if(S&&!y&&k&&await S.type()==="blob"&&await k.type()==="blob"){if(w.push(T),x.push(T),!d){let $=await S.oid(),j=await k.oid();i.delete({filepath:T}),i.insert({filepath:T,oid:$,stage:1}),i.insert({filepath:T,oid:j,stage:3})}return{mode:await k.mode(),oid:await k.oid(),type:"blob",path:C}}if(S&&y&&!k&&await S.type()==="blob"&&await y.type()==="blob"){if(w.push(T),E.push(T),!d){let $=await S.oid(),j=await y.oid();i.delete({filepath:T}),i.insert({filepath:T,oid:$,stage:1}),i.insert({filepath:T,oid:j,stage:2})}return{mode:await y.mode(),oid:await y.oid(),type:"blob",path:C}}if(S&&!y&&!k&&await S.type()==="blob")return;throw new Ai}}},reduce:w.length!==0&&(!n||d)?void 0:async(T,y)=>{let S=y.filter(Boolean);if(T&&!(T&&T.type==="tree"&&S.length===0)){if(S.length>0){let C=new It(S).toObject(),M=await $t({fs:t,gitdir:r,type:"tree",object:C,dryRun:f});T.oid=M}return T}}});return w.length!==0?(n&&!d&&await Oi({fs:t,cache:e,dir:n,gitdir:r,trees:[sr({ref:_.oid})],map:async function(T,[y]){let S=`${n}/${T}`;if(await y.type()==="blob"){let k=await y.mode(),C=new TextDecoder().decode(await y.content());await t.write(S,C,{mode:k})}return!0}}),new Ti(w,b,x,E)):_.oid}async function pC({fs:t,gitdir:e,path:n,ours:r,base:i,theirs:a,ourName:s,theirName:o,baseName:l,dryRun:c,mergeDriver:u=dC}){let f="blob",d=await i.mode()===await r.mode()?await a.mode():await r.mode();if(await r.oid()===await a.oid())return{cleanMerge:!0,mergeResult:{mode:d,path:n,oid:await r.oid(),type:f}};if(await r.oid()===await i.oid())return{cleanMerge:!0,mergeResult:{mode:d,path:n,oid:await a.oid(),type:f}};if(await a.oid()===await i.oid())return{cleanMerge:!0,mergeResult:{mode:d,path:n,oid:await r.oid(),type:f}};let h=Buffer.from(await r.content()).toString("utf8"),p=Buffer.from(await i.content()).toString("utf8"),m=Buffer.from(await a.content()).toString("utf8"),{mergedText:g,cleanMerge:w}=await u({branches:[l,s,o],contents:[p,h,m],path:n}),b=await $t({fs:t,gitdir:e,type:"blob",object:Buffer.from(g,"utf8"),dryRun:c});return{cleanMerge:w,mergeResult:{mode:d,path:n,oid:b,type:f}}}async function S1({fs:t,cache:e,dir:n,gitdir:r,ours:i,theirs:a,fastForward:s=!0,fastForwardOnly:o=!1,dryRun:l=!1,noUpdateBranch:c=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:p,onSign:m,mergeDriver:g}){i===void 0&&(i=await zr({fs:t,gitdir:r,fullname:!0})),i=await W.expand({fs:t,gitdir:r,ref:i}),a=await W.expand({fs:t,gitdir:r,ref:a});let w=await W.resolve({fs:t,gitdir:r,ref:i}),b=await W.resolve({fs:t,gitdir:r,ref:a}),x=await Pf({fs:t,cache:e,gitdir:r,oids:[w,b]});if(x.length!==1)throw new Ai;let E=x[0];if(E===b)return{oid:w,alreadyMerged:!0};if(s&&E===w)return!l&&!c&&await W.writeRef({fs:t,gitdir:r,ref:i,value:b}),{oid:b,fastForward:!0};{if(o)throw new Ja;let _=await it.acquire({fs:t,gitdir:r,cache:e,allowUnmerged:!1}
|
||
|
`)),r.push(Ne.encode(`agent=${Xo.agent}
|
||
|
`)),(n||e||t)&&r.push(Ne.delim()),n&&r.push(Ne.encode("peel")),e&&r.push(Ne.encode("symrefs")),t&&r.push(Ne.encode(`ref-prefix ${t}`)),r.push(Ne.flush()),r}async function $C({http:t,onAuth:e,onAuthSuccess:n,onAuthFailure:r,corsProxy:i,url:a,headers:s={},forPush:o=!1,protocolVersion:l=2,prefix:c,symrefs:u,peelTags:f}){try{F("http",t),F("url",a);let d=await Ri.discover({http:t,onAuth:e,onAuthSuccess:n,onAuthFailure:r,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,headers:s,protocolVersion:l});if(d.protocolVersion===1)return A1(d,c,u,f);let h=await NC({prefix:c,symrefs:u,peelTags:f}),p=await Ri.connect({http:t,auth:d.auth,headers:s,corsProxy:i,service:o?"git-receive-pack":"git-upload-pack",url:a,body:h});return BC(p.body)}catch(d){throw d.caller="git.listServerRefs",d}}async function HC({fs:t,dir:e,gitdir:n=B(e,".git")}){try{return F("fs",t),F("gitdir",n),W.listTags({fs:new ee(t),gitdir:n})}catch(r){throw r.caller="git.listTags",r}}function UC(t,e){return t.committer.timestamp-e.committer.timestamp}var zC="e69de29bb2d1d6434b8b29ae775ad8c2e48c5391";async function e1({fs:t,cache:e,gitdir:n,oid:r,fileId:i}){if(i===zC)return;let a=r,s,o=await Mi({fs:t,cache:e,gitdir:n,oid:r}),l=o.tree;return i===o.oid?s=o.path:(s=await F1({fs:t,cache:e,gitdir:n,tree:l,fileId:i,oid:a}),Array.isArray(s)&&(s.length===0?s=void 0:s.length===1&&(s=s[0]))),s}async function F1({fs:t,cache:e,gitdir:n,tree:r,fileId:i,oid:a,filepaths:s=[],parentPath:o=""}){let l=r.entries().map(function(c){let u;return c.oid===i?(u=B(o,c.path),s.push(u)):c.type==="tree"&&(u=He({fs:t,cache:e,gitdir:n,oid:c.oid}).then(function({object:f}){return F1({fs:t,cache:e,gitdir:n,tree:It.from(f),fileId:i,oid:a,filepaths:s,parentPath:B(o,c.path)})})),u});return await Promise.all(l),s}async function GC({fs:t,cache:e,gitdir:n,filepath:r,ref:i,depth:a,since:s,force:o,follow:l}){let c=typeof s=="undefined"?void 0:Math.floor(s.valueOf()/1e3),u=[],f=await Ur.read({fs:t,gitdir:n}),d=await W.resolve({fs:t,gitdir:n,ref:i}),h=[await No({fs:t,cache:e,gitdir:n,oid:d})],p,m,g;function w(b){g&&r&&u.push(b)}for(;h.length>0;){let b=h.pop();if(c!==void 0&&b.commit.committer.timestamp<=c)break;if(r){let x;try{x=await us({fs:t,cache:e,gitdir:n,oid:b.commit.tree,filepath:r}),m&&p!==x&&u.push(m),p=x,m=b,g=!0}catch(E){if(E instanceof Me){let _=l&&p;if(_&&(_=await e1({fs:t,cache:e,gitdir:n,oid:b.commit.tree,fileId:p}),_))if(Array.isArray(_)){if(m){let T=await e1({fs:t,cache:e,gitdir:n,oid:m.commit.tree,fileId:p});if(Array.isArray(T))if(_=_.filter(y=>T.indexOf(y)===-1),_.length===1)_=_[0],r=_,m&&u.push(m);else{_=!1,m&&u.push(m);break}}}else r=_,m&&u.push(m);if(!_){if(g&&p&&(u.push(m),!o))break;if(!o&&!l)throw E}m=b,g=!1}else throw E}}else u.push(b);if(a!==void 0&&u.length===a){w(b);break}if(!f.has(b.oid))for(let x of b.commit.parent){let E=await No({fs:t,cache:e,gitdir:n,oid:x});h.map(_=>_.oid).includes(E.oid)||h.push(E)}h.length===0&&w(b),h.sort((x,E)=>UC(x.commit,E.commit))}return u}async function VC({fs:t,dir:e,gitdir:n=B(e,".git"),filepath:r,ref:i="HEAD",depth:a,since:s,force:o,follow:l,cache:c={}}){try{return F("fs",t),F("gitdir",n),F("ref",i),await GC({fs:new ee(t),cache:c,gitdir:n,filepath:r,ref:i,depth:a,since:s,force:o,follow:l})}catch(u){throw u.caller="git.log",u}}async function WC({fs:t,onSign:e,dir:n,gitdir:r=B(n,".git"),ours:i,theirs:a,fastForward:s=!0,fastForwardOnly:o=!1,dryRun:l=!1,noUpdateBranch:c=!1,abortOnConflict:u=!0,message:f,author:d,committer:h,signingKey:p,cache:m={},mergeDriver:g}){try{F("fs",t),p&&F("onSign",e);let w=new ee(t),b=await Hr({fs:w,gitdir:r,author:d});if(!b&&(!o||!s))throw new At("author");let x=await Pi({fs:w,gitdir:r,author:b,committer:h});if(!x&&(!o||!s))throw new At("committer");return await S1({fs:w,cache:m,dir:n,gitdir:r,ours:i,theirs:a,fastForward:s,fastForwardOnly:o,dryRun:l,noUpdateBranch:c,abortOnConflict:u,message:f,author:b,committer:x,signingKey:p,onSign:e,mergeDriver:g})}catch(w){throw w.caller="git.merge",w}}var qC={commit:16,tree:32,blob:48,tag:64,ofs_delta:96,ref_delta:112};async function M1({fs:t,cache:e,dir:n,gitdir:r=B(n,".git"),
|
||
|
`),i=await r();let a=n.toString("utf8").split(`
|
||
|
`);if(i=a.shift(),!i.startsWith("unpack "))throw new $r('unpack ok" or "unpack [error message]',i);e.ok=i==="unpack ok",e.ok||(e.error=i.slice(7)),e.refs={};for(let s of a){if(s.trim()==="")continue;let o=s.slice(0,2),l=s.slice(3),c=l.indexOf(" ");c===-1&&(c=l.length);let u=l.slice(0,c),f=l.slice(c+1);e.refs[u]={ok:o==="ok",error:f}}return e}async function JC({capabilities:t=[],triplets:e=[]}){let n=[],r=`\0 ${t.join(" ")}`;for(let i of e)n.push(Ne.encode(`${i.oldoid} ${i.oid} ${i.fullRef}${r}
|
||
|
`)),r="";return n.push(Ne.flush()),n}async function e6({fs:t,cache:e,http:n,onProgress:r,onMessage:i,onAuth:a,onAuthSuccess:s,onAuthFailure:o,onPrePush:l,gitdir:c,ref:u,remoteRef:f,remote:d,url:h,force:p=!1,delete:m=!1,corsProxy:g,headers:w={}}){let b=u||await zr({fs:t,gitdir:c});if(typeof b=="undefined")throw new Ot("ref");let x=await $e.get({fs:t,gitdir:c});d=d||await x.get(`branch.${b}.pushRemote`)||await x.get("remote.pushDefault")||await x.get(`branch.${b}.remote`)||"origin";let E=h||await x.get(`remote.${d}.pushurl`)||await x.get(`remote.${d}.url`);if(typeof E=="undefined")throw new Ot("remote OR url");let _=f||await x.get(`branch.${b}.merge`);if(typeof E=="undefined")throw new Ot("remoteRef");g===void 0&&(g=await x.get("http.corsProxy"));let T=await W.expand({fs:t,gitdir:c,ref:b}),y=m?"0000000000000000000000000000000000000000":await W.resolve({fs:t,gitdir:c,ref:T}),S=Li.getRemoteHelperFor({url:E}),k=await S.discover({http:n,onAuth:a,onAuthSuccess:s,onAuthFailure:o,corsProxy:g,service:"git-receive-pack",url:E,headers:w,protocolVersion:1}),C=k.auth,M;if(!_)M=T;else try{M=await W.expandAgainstMap({ref:_,map:k.refs})}catch(U){if(U instanceof Me)M=_.startsWith("refs/")?_:`refs/heads/${_}`;else throw U}let P=k.refs.get(M)||"0000000000000000000000000000000000000000";if(l&&!await l({remote:d,url:E,localRef:{ref:m?"(delete)":T,oid:y},remoteRef:{ref:M,oid:P}}))throw new Fi;let $=!k.capabilities.has("no-thin"),j=new Set;if(!m){let U=[...k.refs.values()],D=new Set;if(P!=="0000000000000000000000000000000000000000"){let se=await Pf({fs:t,cache:e,gitdir:c,oids:[y,P]});for(let _e of se)U.push(_e);$&&(D=await mf({fs:t,cache:e,gitdir:c,oids:se}))}if(!U.includes(y)){let se=await KC({fs:t,cache:e,gitdir:c,start:[y],finish:U});j=await mf({fs:t,cache:e,gitdir:c,oids:se})}if($){try{let se=await W.resolve({fs:t,gitdir:c,ref:`refs/remotes/${d}/HEAD`,depth:2}),{oid:_e}=await W.resolveAgainstMap({ref:se.replace(`refs/remotes/${d}/`,""),fullref:se,map:k.refs}),mt=[_e];for(let X of await mf({fs:t,cache:e,gitdir:c,oids:mt}))D.add(X)}catch(se){}for(let se of D)j.delete(se)}if(y===P&&(p=!0),!p){if(T.startsWith("refs/tags")&&P!=="0000000000000000000000000000000000000000")throw new Ci("tag-exists");if(y!=="0000000000000000000000000000000000000000"&&P!=="0000000000000000000000000000000000000000"&&!await T1({fs:t,cache:e,gitdir:c,oid:y,ancestor:P,depth:-1}))throw new Ci("not-fast-forward")}}let Q=b1([...k.capabilities],["report-status","side-band-64k",`agent=${Xo.agent}`]),le=await JC({capabilities:Q,triplets:[{oldoid:P,oid:y,fullRef:M}]}),de=m?[]:await M1({fs:t,cache:e,gitdir:c,oids:[...j]}),re=await S.connect({http:n,onProgress:r,corsProxy:g,service:"git-receive-pack",url:E,auth:C,headers:w,body:[...le,...de]}),{packfile:Ae,progress:he}=await Ho.demux(re.body);if(i){let U=x1(he);fs(U,async D=>{await i(D)})}let H=await QC(Ae);if(re.headers&&(H.headers=re.headers),d&&H.ok&&H.refs[M].ok&&!T.startsWith("refs/tags")){let U=`refs/remotes/${d}/${M.replace("refs/heads","")}`;m?await W.deleteRef({fs:t,gitdir:c,ref:U}):await W.writeRef({fs:t,gitdir:c,ref:U,value:y})}if(H.ok&&Object.values(H.refs).every(U=>U.ok))return H;{let U=Object.entries(H.refs).filter(([D,se])=>!se.ok).map(([D,se])=>`
|
||
|
- ${D}: ${se.error}`).join("");throw new es(U,H)}}async function t6({fs:t,http:e,onProgress:n,onMessage:r,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPrePush:o,dir:l,gitdir:c=B(l,".git"),ref:u,remoteRef:f,remote:d="origin",url:h,force:p=!1,delete:m=!1,corsProxy:g,headers:w={},cache:b={}}){try{return F("fs",t),F("http",e),F("gitdir",c),await e6({fs:new ee(t),cache:b,http:e,onProgress:n,onMessage:r,onAuth:i,onAuthSuccess:a,onAuthFailure:s,onPrePush:o,gitdir:c,ref:u,remoteRef:f,remote:d,url:h,force:p,delete:m,corsProxy:g,headers:w})}catch(x){throw x.caller="git.push",x}}async function O1({fs:t,cache:e,gitdir:n,oid:r}){let{type:i,object:a}=await He({fs:t,cache:e,gitdir:n,oid:r});if(i==="tag")return r=Nt.from(a).parse().object,O1({fs:t,cache:e,gitdir:n,oid:r});if(i!=="blob")throw new kt(r,i,"blob");return{oid:r,blob:new Uint8Array(a)}}async function I1({fs:t,cache:e,gitdir:n,oid:r,filepath:i=void 0}){return i!==void 0&&(r=await us({fs:t,cache:e,gitdir:n,oid:r,filepath:i})),await O1({fs:t,cache:e,gitdir:n,oid:r})}async function ds({fs:t,dir:e,gitdir:n=B(e,".git"),oid:r,filepath:i,cache:a={}}){try{return F("fs",t),F("gitdir",n),F("oid",r),await I1({fs:new ee(t),cache:a,gitdir:n,oid:r,filepath:i})}catch(s){throw s.caller="git.readBlob",s}}async function n6({fs:t,dir:e,gitdir:n=B(e,".git"),oid:r,cache:i={}}){try{return F("fs",t),F("gitdir",n),F("oid",r),await No({fs:new ee(t),cache:i,gitdir:n,oid:r})}catch(a){throw a.caller="git.readCommit",a}}async function r6({fs:t,cache:e,gitdir:n,ref:r="refs/notes/commits",oid:i}){let a=await W.resolve({gitdir:n,fs:t,ref:r}),{blob:s}=await I1({fs:t,cache:e,gitdir:n,oid:a,filepath:i});return s}async function i6({fs:t,dir:e,gitdir:n=B(e,".git"),ref:r="refs/notes/commits",oid:i,cache:a={}}){try{return F("fs",t),F("gitdir",n),F("ref",r),F("oid",i),await r6({fs:new ee(t),cache:a,gitdir:n,ref:r,oid:i})}catch(s){throw s.caller="git.readNote",s}}async function a6({fs:t,dir:e,gitdir:n=B(e,".git"),oid:r,format:i="parsed",filepath:a=void 0,encoding:s=void 0,cache:o={}}){try{F("fs",t),F("gitdir",n),F("oid",r);let l=new ee(t);a!==void 0&&(r=await us({fs:l,cache:o,gitdir:n,oid:r,filepath:a}));let u=await He({fs:l,cache:o,gitdir:n,oid:r,format:i==="parsed"?"content":i});if(u.oid=r,i==="parsed")switch(u.format="parsed",u.type){case"commit":u.object=Pt.from(u.object).parse();break;case"tree":u.object=It.from(u.object).entries();break;case"blob":s?u.object=u.object.toString(s):(u.object=new Uint8Array(u.object),u.format="content");break;case"tag":u.object=Nt.from(u.object).parse();break;default:throw new kt(u.oid,u.type,"blob|commit|tag|tree")}else(u.format==="deflated"||u.format==="wrapped")&&(u.type=u.format);return u}catch(l){throw l.caller="git.readObject",l}}async function s6({fs:t,cache:e,gitdir:n,oid:r}){let{type:i,object:a}=await He({fs:t,cache:e,gitdir:n,oid:r,format:"content"});if(i!=="tag")throw new kt(r,i,"tag");let s=Nt.from(a);return{oid:r,tag:s.parse(),payload:s.payload()}}async function o6({fs:t,dir:e,gitdir:n=B(e,".git"),oid:r,cache:i={}}){try{return F("fs",t),F("gitdir",n),F("oid",r),await s6({fs:new ee(t),cache:i,gitdir:n,oid:r})}catch(a){throw a.caller="git.readTag",a}}async function l6({fs:t,dir:e,gitdir:n=B(e,".git"),oid:r,filepath:i=void 0,cache:a={}}){try{return F("fs",t),F("gitdir",n),F("oid",r),await ji({fs:new ee(t),cache:a,gitdir:n,oid:r,filepath:i})}catch(s){throw s.caller="git.readTree",s}}async function c6({fs:t,dir:e,gitdir:n=B(e,".git"),filepath:r,cache:i={}}){try{F("fs",t),F("gitdir",n),F("filepath",r),await it.acquire({fs:new ee(t),gitdir:n,cache:i},async function(a){a.delete({filepath:r})})}catch(a){throw a.caller="git.remove",a}}async function u6({fs:t,cache:e,onSign:n,gitdir:r,ref:i="refs/notes/commits",oid:a,author:s,committer:o,signingKey:l}){let c;try{c=await W.resolve({gitdir:r,fs:t,ref:i})}catch(p){if(!(p instanceof Me))throw p}let f=(await ji({fs:t,gitdir:r,oid:c||"4b825dc642cb6eb9a060e54bf8d69288fbee4904"})).tree;f=f.filter(p=>p.path!==a);let d=await Mf({fs:t,gitdir:r,tree:f});return await qo({fs:t,cache:e,onSign:n,gitdir:r,ref:i,tree:d,parent:c&&[c],message:`Note
|
||
|
`,author:s,committer:o,signingKey:l})}async function f6({fs:t,onSign:e,dir:n,gitdir:r=B(n,".git"),ref:i="refs/notes/commits",oid:a,author:s,committer:o,signingKey:l,cache:c={}}){try{F("fs",t),F("gitdir",r),F("oid",a);let u=new ee(t),f=await Hr({fs:u,gitdir:r,author:s});if(!f)throw new At("author");let d=await Pi({fs:u,gitdir:r,author:f,committer:o});if(!d)throw new At("committer");return await u6({fs:u,cache:c,onSign:e,gitdir:r,ref:i,oid:a,author:f,committer:d,signingKey:l})}catch(u){throw u.caller="git.removeNote",u}}async function d6({fs:t,gitdir:e,oldref:n,ref:r,checkout:i=!1}){if(r!==cn.default.clean(r))throw new Hn(r,cn.default.clean(r));if(n!==cn.default.clean(n))throw new Hn(n,cn.default.clean(n));let a=`refs/heads/${n}`,s=`refs/heads/${r}`;if(await W.exists({fs:t,gitdir:e,ref:s}))throw new un("branch",r,!1);let l=await W.resolve({fs:t,gitdir:e,ref:a,depth:1});await W.writeRef({fs:t,gitdir:e,ref:s,value:l}),await W.deleteRef({fs:t,gitdir:e,ref:a});let u=await zr({fs:t,gitdir:e,fullname:!0})===a;(i||u)&&await W.writeSymbolicRef({fs:t,gitdir:e,ref:"HEAD",value:s})}async function h6({fs:t,dir:e,gitdir:n=B(e,".git"),ref:r,oldref:i,checkout:a=!1}){try{return F("fs",t),F("gitdir",n),F("ref",r),F("oldref",i),await d6({fs:new ee(t),gitdir:n,ref:r,oldref:i,checkout:a})}catch(s){throw s.caller="git.renameBranch",s}}async function P1({gitdir:t,type:e,object:n}){return $n(lr.wrap({type:e,object:n}))}async function p6({fs:t,dir:e,gitdir:n=B(e,".git"),filepath:r,ref:i,cache:a={}}){try{F("fs",t),F("gitdir",n),F("filepath",r);let s=new ee(t),o,l;try{o=await W.resolve({fs:s,gitdir:n,ref:i||"HEAD"})}catch(f){if(i)throw f}if(o)try{o=await us({fs:s,cache:a,gitdir:n,oid:o,filepath:r})}catch(f){o=null}let c={ctime:new Date(0),mtime:new Date(0),dev:0,ino:0,mode:0,uid:0,gid:0,size:0},u=e&&await s.read(B(e,r));u&&(l=await P1({gitdir:n,type:"blob",object:u}),o===l&&(c=await s.lstat(B(e,r)))),await it.acquire({fs:s,gitdir:n,cache:a},async function(f){f.delete({filepath:r}),o&&f.insert({filepath:r,stats:c,oid:o})})}catch(s){throw s.caller="git.reset",s}}async function m6({fs:t,dir:e,gitdir:n=B(e,".git"),ref:r,depth:i}){try{return F("fs",t),F("gitdir",n),F("ref",r),await W.resolve({fs:new ee(t),gitdir:n,ref:r,depth:i})}catch(a){throw a.caller="git.resolveRef",a}}async function g6({fs:t,dir:e,gitdir:n=B(e,".git"),path:r,value:i,append:a=!1}){try{F("fs",t),F("gitdir",n),F("path",r);let s=new ee(t),o=await $e.get({fs:s,gitdir:n});a?await o.append(r,i):await o.set(r,i),await $e.save({fs:s,gitdir:n,config:o})}catch(s){throw s.caller="git.setConfig",s}}async function y6({fs:t,dir:e,gitdir:n=B(e,".git"),filepath:r,cache:i={}}){try{F("fs",t),F("gitdir",n),F("filepath",r);let a=new ee(t);if(await Ii.isIgnored({fs:a,gitdir:n,dir:e,filepath:r}))return"ignored";let o=await v6({fs:a,cache:i,gitdir:n}),l=await R1({fs:a,cache:i,gitdir:n,tree:o,path:r}),c=await it.acquire({fs:a,gitdir:n,cache:i},async function(m){for(let g of m)if(g.path===r)return g;return null}),u=await a.lstat(B(e,r)),f=l!==null,d=c!==null,h=u!==null,p=async()=>{if(d&&!Io(c,u))return c.oid;{let m=await a.read(B(e,r)),g=await P1({gitdir:n,type:"blob",object:m});return d&&c.oid===g&&u.size!==-1&&it.acquire({fs:a,gitdir:n,cache:i},async function(w){w.insert({filepath:r,stats:u,oid:g})}),g}};if(!f&&!h&&!d)return"absent";if(!f&&!h&&d)return"*absent";if(!f&&h&&!d)return"*added";if(!f&&h&&d)return await p()===c.oid?"added":"*added";if(f&&!h&&!d)return"deleted";if(f&&!h&&d)return l===c.oid,"*deleted";if(f&&h&&!d)return await p()===l?"*undeleted":"*undeletemodified";if(f&&h&&d){let m=await p();return m===l?m===c.oid?"unmodified":"*unmodified":m===c.oid?"modified":"*modified"}}catch(a){throw a.caller="git.status",a}}async function R1({fs:t,cache:e,gitdir:n,tree:r,path:i}){typeof i=="string"&&(i=i.split("/"));let a=i.shift();for(let s of r)if(s.path===a){if(i.length===0)return s.oid;let{type:o,object:l}=await He({fs:t,cache:e,gitdir:n,oid:s.oid});if(o==="tree"){let c=It.from(l);return R1({fs:t,cache:e,gitdir:n,tree:c,path:i})}if(o==="blob")throw new kt(s.oid,o,"blob",i.join("/"))}return null}async
|
||
|
`){return t.split(n).reduce((r,i)=>{let a=e?i.trim():i;return a&&r.push(a),r},[])}function ed(t,e){return bs(t,!0).map(n=>e(n))}function td(t){return(0,cl.exists)(t,cl.FOLDER)}function we(t,e){return Array.isArray(t)?t.includes(e)||t.push(e):t.add(e),e}function ky(t,e){return Array.isArray(t)&&!t.includes(e)&&t.push(e),t}function ul(t,e){if(Array.isArray(t)){let n=t.indexOf(e);n>=0&&t.splice(n,1)}else t.delete(e);return e}function fr(t){return Array.isArray(t)?t:[t]}function Ay(t){return fr(t).map(String)}function je(t,e=0){if(t==null)return e;let n=parseInt(t,10);return isNaN(n)?e:n}function gs(t,e){let n=[];for(let r=0,i=t.length;r<i;r++)n.push(e,t[r]);return n}function ys(t){return(Array.isArray(t)?Buffer.concat(t):t).toString("utf-8")}function Ty(t,e){return Object.assign({},...e.map(n=>n in t?{[n]:t[n]}:{}))}function Hf(t=0){return new Promise(e=>setTimeout(e,t))}var zi,Xr,xs,fl=q({"src/lib/utils/util.ts"(){zi="\0",Xr=()=>{},xs=Object.prototype.toString.call.bind(Object.prototype.toString)}});function kn(t,e,n){return e(t)?t:arguments.length>2?n:void 0}function nd(t,e){return/number|string|boolean/.test(typeof t)&&(!e||!e.includes(typeof t))}function rd(t){return!!t&&xs(t)==="[object Object]"}function Cy(t){return typeof t=="function"}var _s,gt,Fy,al,id,My=q({"src/lib/utils/argument-filters.ts"(){fl(),_s=t=>Array.isArray(t),gt=t=>typeof t=="string",Fy=t=>Array.isArray(t)&&t.every(gt),al=t=>gt(t)||Array.isArray(t)&&t.every(gt),id=t=>t==null||"number|boolean|function".includes(typeof t)?!1:Array.isArray(t)||typeof t=="string"||typeof t.length=="number"}}),Uf,i8=q({"src/lib/utils/exit-codes.ts"(){Uf=(t=>(t[t.SUCCESS=0]="SUCCESS",t[t.ERROR=1]="ERROR",t[t.NOT_FOUND=-2]="NOT_FOUND",t[t.UNCLEAN=128]="UNCLEAN",t))(Uf||{})}}),vs,a8=q({"src/lib/utils/git-output-streams.ts"(){vs=class{constructor(t,e){this.stdOut=t,this.stdErr=e}asStrings(){return new vs(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}}),ue,ur,s8=q({"src/lib/utils/line-parser.ts"(){ue=class{constructor(t,e){this.matches=[],this.parse=(n,r)=>(this.resetMatches(),this._regExp.every((i,a)=>this.addMatch(i,a,n(a)))?this.useMatches(r,this.prepareMatches())!==!1:!1),this._regExp=Array.isArray(t)?t:[t],e&&(this.useMatches=e)}useMatches(t,e){throw new Error("LineParser:useMatches not implemented")}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(t,e,n){let r=n&&t.exec(n);return r&&this.pushMatch(e,r),!!r}pushMatch(t,e){this.matches.push(...e.slice(1))}},ur=class extends ue{addMatch(t,e,n){return/^remote:\s/.test(String(n))&&super.addMatch(t,e,n)}pushMatch(t,e){(t>0||e.length>1)&&super.pushMatch(t,e)}}}});function Oy(...t){let e=process.cwd(),n=Object.assign(tn({baseDir:e},Iy),...t.filter(r=>typeof r=="object"&&r));return n.baseDir=n.baseDir||e,n.trimmed=n.trimmed===!0,n}var Iy,o8=q({"src/lib/utils/simple-git-options.ts"(){Iy={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function ad(t,e=[]){return rd(t)?Object.keys(t).reduce((n,r)=>{let i=t[r];return nd(i,["boolean"])?n.push(r+"="+i):n.push(r),n},e):e}function en(t,e=0,n=!1){let r=[];for(let i=0,a=e<0?t.length:e;i<a;i++)"string|number".includes(typeof t[i])&&r.push(String(t[i]));return ad(sd(t),r),n||r.push(...l8(t)),r}function l8(t){let e=typeof qr(t)=="function";return kn(qr(t,e?1:0),_s,[])}function sd(t){let e=Cy(qr(t));return kn(qr(t,e?1:0),rd)}function at(t,e=!0){let n=by(qr(t));return e||xy(n)?n:void 0}var c8=q({"src/lib/utils/task-options.ts"(){My(),fl()}});function zf(t,e){return t(e.stdOut,e.stdErr)}function Vt(t,e,n,r=!0){return fr(n).forEach(i=>{for(let a=bs(i,r),s=0,o=a.length;s<o;s++){let l=(c=0)=>{if(!(s+c>=o))return a[s+c]};e.some(({parse:c})=>c(l,t))}}),t}var u8=q({"src/lib/utils/task-parser.ts"(){fl()}}),Py={};qe(Py,{ExitCodes:()=>Uf,GitOutputStreams:()=>vs,LineParser:()=>ue,NOOP:()=>Xr,NULL:()=>zi,RemoteLineParser:()=>ur,append:()=>we,appendTaskOptions:()=>ad,asArray:()=>fr,asFunction:()=>by,asNumber:()=>je,asStringArray:()=>Ay,bufferToString:()=>ys,callTaskParser:()=>zf,createInstanceConfig:()=>Oy,delay:()=>Hf,filterArray:()=>_s,filter
|
||
|
`)){let l=_y(s,`
|
||
|
`);o=l[0],s=l[1]}yield{file:a,key:o,value:s}}}var Yy,k8=q({"src/lib/responses/ConfigList.ts"(){fe(),Yy=class{constructor(){this.files=[],this.values=Object.create(null)}get all(){return this._all||(this._all=this.files.reduce((t,e)=>Object.assign(t,this.values[e]),{})),this._all}addFile(t){if(!(t in this.values)){let e=qr(this.files);this.values[t]=e?Object.create(this.values[e]):{},this.files.push(t)}return this.values[t]}addValue(t,e,n){let r=this.addFile(t);r.hasOwnProperty(e)?Array.isArray(r[e])?r[e].push(n):r[e]=[r[e],n]:r[e]=n,this._all=void 0}}}});function jf(t,e){return typeof t=="string"&&Wf.hasOwnProperty(t)?t:e}function A8(t,e,n,r){let i=["config",`--${r}`];return n&&i.push("--add"),i.push(t,e),{commands:i,format:"utf-8",parser(a){return a}}}function T8(t,e){let n=["config","--null","--show-origin","--get-all",t];return e&&n.splice(1,0,`--${e}`),{commands:n,format:"utf-8",parser(r){return S8(r,t)}}}function C8(t){let e=["config","--list","--show-origin","--null"];return t&&e.push(`--${t}`),{commands:e,format:"utf-8",parser(n){return _8(n)}}}function F8(){return{addConfig(t,e,...n){return this._runTask(A8(t,e,n[0]===!0,jf(n[1],"local")),at(arguments))},getConfig(t,e){return this._runTask(T8(t,jf(e,void 0)),at(arguments))},listConfig(...t){return this._runTask(C8(jf(t[0],void 0)),at(arguments))}}}var Wf,Zy=q({"src/lib/tasks/config.ts"(){k8(),fe(),Wf=(t=>(t.system="system",t.global="global",t.local="local",t.worktree="worktree",t))(Wf||{})}});function M8(...t){return new Qy().param(...t)}function O8(t){let e=new Set,n={};return ed(t,r=>{let[i,a,s]=r.split(zi);e.add(i),(n[i]=n[i]||[]).push({line:je(a),path:i,preview:s})}),{paths:e,results:n}}function I8(){return{grep(t){let e=at(arguments),n=en(arguments);for(let i of Ky)if(n.includes(i))return this._runTask(Rt(`git.grep: use of "${i}" is not supported.`),e);typeof t=="string"&&(t=M8().param(t));let r=["grep","--null","-n","--full-name",...n,...t];return this._runTask({commands:r,format:"utf-8",parser(i){return O8(i)}},e)}}}var Ky,hs,z1,Qy,Jy=q({"src/lib/tasks/grep.ts"(){fe(),st(),Ky=["-h"],hs=Symbol("grepQuery"),Qy=class{constructor(){this[z1]=[]}*[(z1=hs,Symbol.iterator)](){for(let t of this[hs])yield t}and(...t){return t.length&&this[hs].push("--and","(",...gs(t,"-e"),")"),this}param(...t){return this[hs].push(...gs(t,"-e")),this}}}}),ev={};qe(ev,{ResetMode:()=>nl,getResetMode:()=>R8,resetTask:()=>P8});function P8(t,e){let n=["reset"];return tv(t)&&n.push(`--${t}`),n.push(...e),Gt(n)}function R8(t){if(tv(t))return t;switch(typeof t){case"string":case"undefined":return"soft"}}function tv(t){return nv.includes(t)}var nl,nv,rv=q({"src/lib/tasks/reset.ts"(){st(),nl=(t=>(t.MIXED="mixed",t.SOFT="soft",t.HARD="hard",t.MERGE="merge",t.KEEP="keep",t))(nl||{}),nv=Array.from(Object.values(nl))}});function L8(){return(0,sl.default)("simple-git")}function G1(t,e,n){return!e||!String(e).replace(/\s*/,"")?n?(r,...i)=>{t(r,...i),n(r,...i)}:t:(r,...i)=>{t(`%s ${r}`,e,...i),n&&n(r,...i)}}function j8(t,e,{namespace:n}){if(typeof t=="string")return t;let r=e&&e.namespace||"";return r.startsWith(n)?r.substr(n.length+1):r||n}function dd(t,e,n,r=L8()){let i=t&&`[${t}]`||"",a=[],s=typeof e=="string"?r.extend(e):e,o=j8(kn(e,gt),s,r);return c(n);function l(u,f){return we(a,dd(t,o.replace(/^[^:]+/,u),f,r))}function c(u){let f=u&&`[${u}]`||"",d=s&&G1(s,f)||Xr,h=G1(r,`${i} ${f}`,d);return Object.assign(s?d:h,{label:t,sibling:l,info:h,step:c})}}var iv=q({"src/lib/git-logger.ts"(){fe(),sl.default.formatters.L=t=>String(id(t)?t.length:"-"),sl.default.formatters.B=t=>Buffer.isBuffer(t)?t.toString("utf8"):xs(t)}}),Jo,qf,D8=q({"src/lib/runners/tasks-pending-queue.ts"(){dr(),iv(),Jo=class{constructor(t="GitExecutor"){this.logLabel=t,this._queue=new Map}withProgress(t){return this._queue.get(t)}createProgress(t){let e=Jo.getName(t.commands[0]),n=dd(this.logLabel,e);return{task:t,logger:n,name:e}}push(t){let e=this.createProgress(t);return e.logger("Adding task to the queue, commands = %o",t.commands),this._queue.set(t,e),e}fatal(t){for(let[e,{logger:n}]of Array.from(this._queue.entries()))e===t.t
|
||
|
`).map(kF).filter(Boolean);e||n.sort(function(i,a){let s=i.split("."),o=a.split(".");if(s.length===1||o.length===1)return EF(el(s[0]),el(o[0]));for(let l=0,c=Math.max(s.length,o.length);l<c;l++){let u=u2(el(s[l]),el(o[l]));if(u)return u}return 0});let r=e?n[0]:[...n].reverse().find(i=>i.indexOf(".")>=0);return new py(n,r)}}}),d2={};qe(d2,{addAnnotatedTagTask:()=>FF,addTagTask:()=>CF,tagListTask:()=>TF});function TF(t=[]){let e=t.some(n=>/^--sort=/.test(n));return{format:"utf-8",commands:["tag","-l",...t],parser(n){return f2(n,e)}}}function CF(t){return{format:"utf-8",commands:["tag",t],parser(){return{name:t}}}}function FF(t,e){return{format:"utf-8",commands:["tag","-a","-m",e,t],parser(){return{name:t}}}}var MF=q({"src/lib/tasks/tag.ts"(){AF()}}),OF=n8({"src/git.js"(t,e){var{GitExecutor:n}=($8(),Ue(sv)),{SimpleGitApi:r}=(O4(),Ue(Nv)),{Scheduler:i}=(I4(),Ue($v)),{configurationErrorTask:a}=(st(),Ue(Vf)),{asArray:s,filterArray:o,filterPrimitives:l,filterString:c,filterStringOrStringArray:u,filterType:f,getTrailingOptions:d,trailingFunctionArgument:h,trailingOptionsArgument:p}=(fe(),Ue(Py)),{applyPatchTask:m}=(R4(),Ue(zv)),{branchTask:g,branchLocalTask:w,deleteBranchesTask:b,deleteBranchTask:x}=(V4(),Ue(Yv)),{checkIgnoreTask:E}=(X4(),Ue(Qv)),{checkIsRepoTask:_}=(Dy(),Ue(Ry)),{cloneTask:T,cloneMirrorTask:y}=(K4(),Ue(Jv)),{cleanWithOptionsTask:S,isCleanOptionsArray:k}=(qy(),Ue(Vy)),{diffSummaryTask:C}=(wd(),Ue(vv)),{fetchTask:M}=(nF(),Ue(n2)),{moveTask:P}=(sF(),Ue(i2)),{pullTask:$}=(lF(),Ue(a2)),{pushTagsTask:j}=(Pv(),Ue(Iv)),{addRemoteTask:Q,getRemotesTask:le,listRemotesTask:de,remoteTask:re,removeRemoteTask:Ae}=(yF(),Ue(o2)),{getResetMode:he,resetTask:H}=(rv(),Ue(ev)),{stashListTask:U}=(wF(),Ue(l2)),{addSubModuleTask:D,initSubModuleTask:se,subModuleTask:_e,updateSubModuleTask:mt}=(SF(),Ue(c2)),{addAnnotatedTagTask:X,addTagTask:Te,tagListTask:Be}=(MF(),Ue(d2)),{straightThroughBufferTask:Je,straightThroughStringTask:Re}=(st(),Ue(Vf));function V(N,Y){this._executor=new n(N.binary,N.baseDir,new i(N.maxConcurrentProcesses),Y),this._trimmed=N.trimmed}(V.prototype=Object.create(r.prototype)).constructor=V,V.prototype.customBinary=function(N){return this._executor.binary=N,this},V.prototype.env=function(N,Y){return arguments.length===1&&typeof N=="object"?this._executor.env=N:(this._executor.env=this._executor.env||{})[N]=Y,this},V.prototype.stashList=function(N){return this._runTask(U(p(arguments)||{},o(N)&&N||[]),h(arguments))};function et(N,Y,ye,Ge){return typeof ye!="string"?a(`git.${N}() requires a string 'repoPath'`):Y(ye,f(Ge,c),d(arguments))}V.prototype.clone=function(){return this._runTask(et("clone",T,...arguments),h(arguments))},V.prototype.mirror=function(){return this._runTask(et("mirror",y,...arguments),h(arguments))},V.prototype.mv=function(N,Y){return this._runTask(P(N,Y),h(arguments))},V.prototype.checkoutLatestTag=function(N){var Y=this;return this.pull(function(){Y.tags(function(ye,Ge){Y.checkout(Ge.latest,N)})})},V.prototype.pull=function(N,Y,ye,Ge){return this._runTask($(f(N,c),f(Y,c),d(arguments)),h(arguments))},V.prototype.fetch=function(N,Y){return this._runTask(M(f(N,c),f(Y,c),d(arguments)),h(arguments))},V.prototype.silent=function(N){return console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"),this},V.prototype.tags=function(N,Y){return this._runTask(Be(d(arguments)),h(arguments))},V.prototype.rebase=function(){return this._runTask(Re(["rebase",...d(arguments)]),h(arguments))},V.prototype.reset=function(N){return this._runTask(H(he(N),d(arguments)),h(arguments))},V.prototype.revert=function(N){let Y=h(arguments);return typeof N!="string"?this._runTask(a("Commit must be a string"),Y):this._runTask(Re(["revert",...d(arguments,0,!0),N]),Y)},V.prototype.addTag=function(N){let Y=typeof N=="string"?Te(N):a("Git.addTag requires a tag name");return this._runTask(Y,h(arguments))},V.prototype.addAnnotatedTag=function(N,Y){return this._runTask(X(N,Y),h(arguments))},V.prototype.deleteLocalBr
|
||
|
`):a="Too many files to list",e=e+`
|
||
|
|
||
|
Affected files:
|
||
|
`+a}return e}};var Oe=class extends ra{constructor(e){super(e)}async setGitInstance(e=!1){if(this.isGitInstalled()){let n=this.app.vault.adapter,r=n.getBasePath(),i=r;this.plugin.settings.basePath&&(await n.exists((0,Qr.normalizePath)(this.plugin.settings.basePath))?i=vt.join(r,this.plugin.settings.basePath):e||new Qr.Notice("ObsidianGit: Base path does not exist")),this.absoluteRepoPath=i,this.git=h2({baseDir:i,binary:this.plugin.localStorage.getGitPath()||void 0,config:["core.quotepath=off"]});let a=this.plugin.localStorage.getPATHPaths(),s=this.plugin.localStorage.getEnvVars(),o=this.plugin.settings.gitDir;if(a.length>0){let l=process.env.PATH+":"+a.join(":");process.env.PATH=l}o&&(process.env.GIT_DIR=o);for(let l of s){let[c,u]=l.split("=");process.env[c]=u}if(lS.default.enable("simple-git"),await this.git.checkIsRepo()){let l=await this.git.revparse("--show-cdup"),c=(0,Ds.resolve)(i+Ds.sep+l);this.absoluteRepoPath=c,await this.git.cwd(c)}}}getRelativeVaultPath(e){let r=this.app.vault.adapter.getBasePath(),i=vt.join(this.absoluteRepoPath,e),a=vt.relative(r,i);return Qr.Platform.isWin&&(a=a.replace(/\\/g,"/")),a}getRelativeRepoPath(e,n=!0){if(n){let i=this.plugin.app.vault.adapter.getBasePath(),a=this.absoluteRepoPath,s=vt.join(i,e),o=vt.relative(a,s);return Qr.Platform.isWin&&(o=o.replace(/\\/g,"/")),o}return e}async status(){this.plugin.setState(1);let e=await this.git.status(r=>this.onError(r));this.plugin.setState(0);let n=e.files.map(r=>{let i=this.formatPath(r);return{path:i.path,from:i.from,index:r.index==="?"?"U":r.index,working_dir:r.working_dir==="?"?"U":r.working_dir,vault_path:this.getRelativeVaultPath(i.path)}});return{all:n,changed:n.filter(r=>r.working_dir!==" "),staged:n.filter(r=>r.index!==" "&&r.index!="U"),conflicted:e.conflicted.map(r=>this.formatPath({path:r}).path)}}async submoduleAwareHeadRevisonInContainingDirectory(e){let n=this.getRelativeRepoPath(e),i=["-C",vt.dirname(n),"rev-parse","HEAD"],a=this.git.raw(i);return a.catch(s=>console.warn("obsidian-git: rev-parse error:",s)),a}async getSubmodulePaths(){return new Promise(async e=>{this.git.outputHandler(async(n,r,i,a)=>{if(!(a.contains("submodule")&&a.contains("foreach")))return;let s="",o=this.app.vault.adapter.getBasePath()+(this.plugin.settings.basePath?"/"+this.plugin.settings.basePath:"");r.on("data",l=>{s+=l.toString("utf8")}),r.on("end",async()=>{let c=s.split(`
|
||
|
`).map(u=>{let f=u.match(/'([^']*)'/);if(f!=null)return o+"/"+f[1]+Ds.sep}).filter(u=>!!u);c.reverse(),e(c)})}),await this.git.subModule(["foreach","--recursive",""]),this.git.outputHandler(()=>{})})}formatPath(e,n=!1){function r(i){if(i!=null)return i.startsWith('"')&&i.endsWith('"')?i.substring(1,i.length-1):i}return n?{from:r(e.from),path:r(e.path)}:{path:r(e.path)}}async blame(e,n,r){if(e=this.getRelativeRepoPath(e),!await this.isTracked(e))return"untracked";let i=await this.getSubmoduleOfFile(e),a=i?["-C",i.submodule]:[],s=i?i.relativeFilepath:e;a.push("blame","--porcelain"),r&&a.push("-w");let o=`-C${vl}`;switch(n){case"inactive":break;case"same-commit":a.push("-C",o);break;case"all-commits":a.push("-C","-C",o);break;default:vr(n)}a.push("--",s);let l=await this.git.raw(a,c=>c&&console.warn("git-blame",c));return KP(l)}async isTracked(e){let n=await this.getSubmoduleOfFile(e),r=n?["-C",n.submodule]:[],i=n?n.relativeFilepath:e;return r.push("ls-files","--",i),this.git.raw(r,a=>a&&console.warn("ls-files",a)).then(a=>a.trim()!=="")}async commitAll({message:e}){if(this.plugin.settings.updateSubmodules){this.plugin.setState(4);let r=await this.getSubmodulePaths();for(let i of r)await this.git.cwd({path:i,root:!1}).add("-A",a=>this.onError(a)),await this.git.cwd({path:i,root:!1}).commit(await this.formatCommitMessage(e),a=>this.onError(a))}this.plugin.setState(3),await this.git.add("-A",r=>this.onError(r)),this.plugin.setState(4);let n=await this.git.commit(await this.formatCommitMessage(e),r=>this.onError(r));return dispatchEvent(new CustomEvent("git-head-update")),n.summary.changes}async commit({message:e,amend:n}){this.plugin.setState(4);let r=(await this.git.commit(await this.formatCommitMessage(e),n?["--amend"]:[],i=>this.onError(i))).summary.changes;return dispatchEvent(new CustomEvent("git-head-update")),this.plugin.setState(0),r}async stage(e,n){this.plugin.setState(3),e=this.getRelativeRepoPath(e,n),await this.git.add(["--",e],r=>this.onError(r)),this.plugin.setState(0)}async stageAll({dir:e}){this.plugin.setState(3),await this.git.add(e!=null?e:"-A",n=>this.onError(n)),this.plugin.setState(0)}async unstageAll({dir:e}){this.plugin.setState(3),await this.git.reset(e!=null?["--",e]:[],n=>this.onError(n)),this.plugin.setState(0)}async unstage(e,n){this.plugin.setState(3),e=this.getRelativeRepoPath(e,n),await this.git.reset(["--",e],r=>this.onError(r)),this.plugin.setState(0)}async discard(e){this.plugin.setState(3),await this.isTracked(e)?await this.git.checkout(["--",e],n=>this.onError(n)):await this.app.vault.adapter.rmdir(this.getRelativeVaultPath(e),!0),this.plugin.setState(0)}async hashObject(e){e=this.getRelativeRepoPath(e);let n=await this.getSubmoduleOfFile(e),r=n?["-C",n.submodule]:[],i=n?n.relativeFilepath:e;r.push("hash-object","--",i);let a=this.git.raw(r);return a.catch(s=>s&&console.warn("obsidian-git. hash-object failed:",s==null?void 0:s.message)),a}async discardAll({dir:e}){return this.discard(e!=null?e:".")}async pull(){this.plugin.setState(2),this.plugin.settings.updateSubmodules&&await this.git.subModule(["update","--remote","--merge","--recursive"],i=>this.onError(i));let e=await this.branchInfo(),n=await this.git.revparse([e.current],i=>this.onError(i));if(!e.tracking&&this.plugin.settings.updateSubmodules){this.plugin.log("No tracking branch found. Ignoring pull of main repo and updating submodules only.");return}await this.git.fetch(i=>this.onError(i));let r=await this.git.revparse([e.tracking],i=>this.onError(i));if(n!==r){if(this.plugin.settings.syncMethod==="merge"||this.plugin.settings.syncMethod==="rebase")try{switch(this.plugin.settings.syncMethod){case"merge":await this.git.merge([e.tracking]);break;case"rebase":await this.git.rebase([e.tracking])}}catch(s){this.plugin.displayError(`Pull failed (${this.plugin.settings.syncMethod}): ${s.message}`);return}else if(this.plugin.settings.syncMethod==="reset")try{await this.git.raw(["update-ref",`refs/heads/${e.current}`,r],s=>this.onError(s)),await this.unstageAll({})}catch(s){this.plugin.displayError(`Sync failed (${this.plugin.settings.s
|
||
|
`):[]}async removeRemote(e){await this.git.removeRemote(e)}async updateUpstreamBranch(e){try{await this.git.branch(["--set-upstream-to",e])}catch(n){console.error(n);try{await this.git.branch(["--set-upstream",e])}catch(r){console.error(r),await this.git.push(["--set-upstream",...wr(e)],i=>this.onError(i))}}}updateGitPath(e){this.setGitInstance()}updateBasePath(e){this.setGitInstance(!0)}async getDiffString(e,n=!1,r){return n?await this.git.diff(["--cached","--",e]):r?await this.git.show([`${r}`,"--",e]):await this.git.diff(["--",e])}async diff(e,n,r){return await this.git.diff([`${n}..${r}`,"--",e])}async getSubmoduleOfFile(e){if(!await this.app.vault.adapter.exists(vt.dirname(e)))return;let n=await this.git.raw(["-C",vt.dirname(e),"rev-parse","--show-toplevel"],o=>o&&console.warn("get-submodule-of-file",o==null?void 0:o.message));if(n=n.trim(),(await this.git.raw(["-C",vt.dirname(e),"rev-parse","--show-superproject-working-tree"],o=>o&&console.warn("get-submodule-of-file",o==null?void 0:o.message))).trim()==="")return;let a=this.app.vault.adapter.getFullPath(vt.normalize(e)),s=vt.relative(n,a);return{submodule:n,relativeFilepath:s}}async getLastCommitTime(){let e=await this.git.log({n:1},n=>this.onError(n));if(e!=null&&e.latest!=null)return new Date(e.latest.date)}isGitInstalled(){let e=(0,oS.spawnSync)(this.plugin.localStorage.getGitPath()||"git",["--version"],{stdio:"ignore"});return e.error?(console.error(e.error),!1):!0}onError(e){if(e){let n=e.message.contains("Could not resolve host")||e.message.match(/ssh: connect to host .*? port .*?: Operation timed out/)||e.message.match(/ssh: connect to host .*? port .*?: Network is unreachable/);n?this.plugin.offlineMode||this.plugin.displayError("Git: Going into offline mode. Future network errors will no longer be displayed.",2e3):(this.plugin.displayError(e.message),this.plugin.setState(0)),n&&(this.plugin.offlineMode=!0,this.plugin.setState(0))}}},cS={hash:"000000",isZeroCommit:!0,summary:""};function KP(t){let n=t.replace(`\r
|
||
|
`,`
|
||
|
`).split(`
|
||
|
`),r={commits:new Map,hashPerLine:[void 0],originalFileLineNrPerLine:[void 0],finalFileLineNrPerLine:[void 0],groupSizePerStartingLine:new Map},i=1;for(let a=0;a<n.length;){if(aS(n[a])){let s=n[a].split(" "),o=QP(s,i,r);for(a++;aS(n[a]);a++){let l=n[a].split(" ");JP(l,r,i)}eR(r.commits.get(o)),i+=1}else if(!(n[a]===""&&a===n.length-1))throw Error(`Expected non-whitespace line or EOF, but found: ${n[a]}`);a++}return r}function QP(t,e,n){let r=t[0];if(n.hashPerLine.push(r),n.originalFileLineNrPerLine.push(parseInt(t[1])),n.finalFileLineNrPerLine.push(parseInt(t[2])),t.length>=4&&n.groupSizePerStartingLine.set(e,parseInt(t[3])),parseInt(t[2])!==e)throw Error(`git-blame output is out of order: ${e} vs ${t[2]}`);return r}function JP(t,e,n){let r=t[0],i=t.slice(1).join(" "),a=e.hashPerLine[n],s=e.commits.get(a)||{hash:a,author:{},committer:{},previous:{}};switch(r){case"summary":s.summary=i;break;case"author":s.author.name=i;break;case"author-mail":s.author.email=sS(i);break;case"author-time":s.author.epochSeconds=parseInt(i);break;case"author-tz":s.author.tz=i;break;case"committer":s.committer.name=i;break;case"committer-mail":s.committer.email=sS(i);break;case"committer-time":s.committer.epochSeconds=parseInt(i);break;case"committer-tz":s.committer.tz=i;break;case"previous":s.previous.commitHash=i;break;case"filename":s.previous.filename=i;break}e.commits.set(a,s)}function eR(t){if(t.summary===void 0)throw Error(`Summary not provided for commit: ${t.hash}`);Xh(t.author)&&(t.author=void 0),Xh(t.committer)&&(t.committer=void 0),Xh(t.previous)&&(t.previous=void 0),t.isZeroCommit=!!t.hash.match(/^0*$/)}function Xh(t){return!t||Object.keys(t).length===0}function aS(t){return t.length>0&&t[0].trim()===t[0]}function sS(t){let e=t.startsWith("<")?t.substring(1):t;return e.endsWith(">")?e.substring(0,e.length-1):e}v();var HS=require("@codemirror/state");v();var bS=require("@codemirror/state"),mc=require("obsidian");v();var Yh=class{constructor(){this.eventsPerFilepath=new Map;this.startRemoveStalesSubscribersInterval()}ifFilepathDefinedTransformSubscribers(e,n){if(e)return this.ensureInitialized(e),n(this.eventsPerFilepath.get(e))}forEachSubscriber(e){this.eventsPerFilepath.forEach(n=>n.forEach(e))}ensureInitialized(e){this.eventsPerFilepath.get(e)||this.eventsPerFilepath.set(e,new Set)}startRemoveStalesSubscribersInterval(){this.removeStalesSubscribersTimer=window.setInterval(()=>this==null?void 0:this.forEachSubscriber(e=>e==null?void 0:e.removeIfStale()),6e4)}clear(){window.clearInterval(this.removeStalesSubscribersTimer),this.eventsPerFilepath.clear()}},ia=new Yh;v();var dc=require("@codemirror/state"),mS=Ve(Zh());v();var z=require("obsidian");v();v();function Wn(){}Wn.prototype={diff:function(e,n){var r,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=i.callback;typeof i=="function"&&(a=i,i={}),this.options=i;var s=this;function o(E){return a?(setTimeout(function(){a(void 0,E)},0),!0):E}e=this.castInput(e),n=this.castInput(n),e=this.removeEmpty(this.tokenize(e)),n=this.removeEmpty(this.tokenize(n));var l=n.length,c=e.length,u=1,f=l+c;i.maxEditLength&&(f=Math.min(f,i.maxEditLength));var d=(r=i.timeout)!==null&&r!==void 0?r:1/0,h=Date.now()+d,p=[{oldPos:-1,lastComponent:void 0}],m=this.extractCommon(p[0],n,e,0);if(p[0].oldPos+1>=c&&m+1>=l)return o([{value:this.join(n),count:n.length}]);var g=-1/0,w=1/0;function b(){for(var E=Math.max(g,-u);E<=Math.min(w,u);E+=2){var _=void 0,T=p[E-1],y=p[E+1];T&&(p[E-1]=void 0);var S=!1;if(y){var k=y.oldPos-E;S=y&&0<=k&&k<l}var C=T&&T.oldPos+1<c;if(!S&&!C){p[E]=void 0;continue}if(!C||S&&T.oldPos+1<y.oldPos?_=s.addToPath(y,!0,void 0,0):_=s.addToPath(T,void 0,!0,1),m=s.extractCommon(_,n,e,E),_.oldPos+1>=c&&m+1>=l)return o(tR(s,_.lastComponent,n,e,s.useLongestToken));p[E]=_,_.oldPos+1>=c&&(w=Math.min(w,E-1)),m+1>=l&&(g=Math.max(g,E+1))}u++}if(a)(function E(){setTimeout(function(){if(u>f||Date.now()>h)return a();b()||E()},0)})();else for(;u<=f&&Date.now()<=h;){var x=b();if(x)return x}},addToPath:function(e,n,r,i){var a=e.lastComponent;return a&&a.added===n&&a.removed===r?{oldPos:e.oldPos
|
||
|
`));var e=[],n=t.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var r=0;r<n.length;r++){var i=n[r];r%2&&!this.options.newlineIsToken?e[e.length-1]+=i:(this.options.ignoreWhitespace&&(i=i.trim()),e.push(i))}return e};function nR(t,e,n){return tp.diff(t,e,n)}var rR=new Wn;rR.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};var iR=new Wn;iR.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};function oc(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?oc=function(e){return typeof e}:oc=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},oc(t)}function Kh(t){return aR(t)||sR(t)||oR(t)||lR()}function aR(t){if(Array.isArray(t))return Qh(t)}function sR(t){if(typeof Symbol!="undefined"&&Symbol.iterator in Object(t))return Array.from(t)}function oR(t,e){if(t){if(typeof t=="string")return Qh(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Qh(t,e)}}function Qh(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function lR(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
||
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var cR=Object.prototype.toString,Ns=new Wn;Ns.useLongestToken=!0;Ns.tokenize=tp.tokenize;Ns.castInput=function(t){var e=this.options,n=e.undefinedReplacement,r=e.stringifyReplacer,i=r===void 0?function(a,s){return typeof s=="undefined"?n:s}:r;return typeof t=="string"?t:JSON.stringify(Jh(t,null,null,i),i," ")};Ns.equals=function(t,e){return Wn.prototype.equals.call(Ns,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function Jh(t,e,n,r,i){e=e||[],n=n||[],r&&(t=r(i,t));var a;for(a=0;a<e.length;a+=1)if(e[a]===t)return n[a];var s;if(cR.call(t)==="[object Array]"){for(e.push(t),s=new Array(t.length),n.push(s),a=0;a<t.length;a+=1)s[a]=Jh(t[a],e,n,r,i);return e.pop(),n.pop(),s}if(t&&t.toJSON&&(t=t.toJSON()),oc(t)==="object"&&t!==null){e.push(t),s={},n.push(s);var o=[],l;for(l in t)t.hasOwnProperty(l)&&o.push(l);for(o.sort(),a=0;a<o.length;a+=1)l=o[a],s[l]=Jh(t[l],e,n,r,l);e.pop(),n.pop()}else s=t;return s}var ep=new Wn;ep.tokenize=function(t){return t.slice()};ep.join=ep.removeEmpty=function(t){return t};function uR(t,e,n,r,i,a,s){s||(s={}),typeof s.context=="undefined"&&(s.context=4);var o=nR(n,r,s);if(!o)return;o.push({value:"",lines:[]});function l(w){return w.map(function(b){return" "+b})}for(var c=[],u=0,f=0,d=[],h=1,p=1,m=function(b){var x=o[b],E=x.lines||x.value.replace(/\n$/,"").split(`
|
||
|
`);if(x.lines=E,x.added||x.removed){var _;if(!u){var T=o[b-1];u=h,f=p,T&&(d=s.context>0?l(T.lines.slice(-s.context)):[],u-=d.length,f-=d.length)}(_=d).push.apply(_,Kh(E.map(function(j){return(x.added?"+":"-")+j}))),x.added?p+=E.length:h+=E.length}else{if(u)if(E.length<=s.context*2&&b<o.length-2){var y;(y=d).push.apply(y,Kh(l(E)))}else{var S,k=Math.min(E.length,s.context);(S=d).push.apply(S,Kh(l(E.slice(0,k))));var C={oldStart:u,oldLines:h-u+k,newStart:f,newLines:p-f+k,lines:d};if(b>=o.length-2&&E.length<=s.context){var M=/\n$/.test(n),P=/\n$/.test(r),$=E.length==0&&d.length>C.oldLines;!M&&$&&n.length>0&&d.splice(C.oldLines,0,"\\ No newline at end of file"),(!M&&!$||!P)&&d.push("\\ No newline at end of file")}c.push(C),u=0,f=0,d=[]}h+=E.length,p+=E.length}},g=0;g<o.length;g++)m(g);return{oldFileName:t,newFileName:e,oldHeader:i,newHeader:a,hunks:c}}function hS(t){if(Array.isArray(t))return t.map(hS).join(`
|
||
|
`);var e=[];t.oldFileName==t.newFileName&&e.push("Index: "+t.oldFileName),e.push("==================================================================="),e.push("--- "+t.oldFileName+(typeof t.oldHeader=="undefined"?"":" "+t.oldHeader)),e.push("+++ "+t.newFileName+(typeof t.newHeader=="undefined"?"":" "+t.newHeader));for(var n=0;n<t.hunks.length;n++){var r=t.hunks[n];r.oldLines===0&&(r.oldStart-=1),r.newLines===0&&(r.newStart-=1),e.push("@@ -"+r.oldStart+","+r.oldLines+" +"+r.newStart+","+r.newLines+" @@"),e.push.apply(e,r.lines)}return e.join(`
|
||
|
`)+`
|
||
|
`}function fR(t,e,n,r,i,a,s){return hS(uR(t,e,n,r,i,a,s))}function lc(t,e,n,r,i,a){return fR(t,t,e,n,r,i,a)}var Jr=require("obsidian");v();var pS=require("obsidian"),dR={options:[],placeholder:"",allowEmpty:!1,onlySelection:!1,initialValue:void 0},ze=class extends pS.SuggestModal{constructor(e){super(app),this.config={...dR,...e},this.setPlaceholder(this.config.placeholder)}open(){return super.open(),this.config.initialValue!=null&&(this.inputEl.value=this.config.initialValue,this.inputEl.dispatchEvent(new Event("input"))),new Promise(e=>{this.resolve=e})}selectSuggestion(e,n){if(this.resolve){let r;this.config.allowEmpty&&e===" "?r="":e==="..."?r=void 0:r=e,this.resolve(r)}super.selectSuggestion(e,n)}onClose(){this.resolve&&this.resolve(void 0)}getSuggestions(e){return this.config.onlySelection?this.config.options:this.config.allowEmpty?[e.length>0?e:" ",...this.config.options]:[e.length>0?e:"...",...this.config.options]}renderSuggestion(e,n){n.setText(e)}onChooseSuggestion(e,n){}};v();var br=require("obsidian"),cc=class{constructor(e,n){this.plugin=n;this.promises={};this.adapter=e.adapter,this.vault=e,this.lastBasePath=this.plugin.settings.basePath,this.promises.readFile=this.readFile.bind(this),this.promises.writeFile=this.writeFile.bind(this),this.promises.readdir=this.readdir.bind(this),this.promises.mkdir=this.mkdir.bind(this),this.promises.rmdir=this.rmdir.bind(this),this.promises.stat=this.stat.bind(this),this.promises.unlink=this.unlink.bind(this),this.promises.lstat=this.lstat.bind(this),this.promises.readlink=this.readlink.bind(this),this.promises.symlink=this.symlink.bind(this)}async readFile(e,n){var r;if(this.maybeLog("Read: "+e+JSON.stringify(n)),n=="utf8"||n.encoding=="utf8"){let i=this.vault.getAbstractFileByPath(e);return i instanceof br.TFile?(this.maybeLog("Reuse"),this.vault.read(i)):this.adapter.read(e)}else{if(e.endsWith(this.gitDir+"/index"))return this.plugin.settings.basePath!=this.lastBasePath?(this.clearIndex(),this.lastBasePath=this.plugin.settings.basePath,this.adapter.readBinary(e)):(r=this.index)!=null?r:this.adapter.readBinary(e);let i=this.vault.getAbstractFileByPath(e);return i instanceof br.TFile?(this.maybeLog("Reuse"),this.vault.readBinary(i)):this.adapter.readBinary(e)}}async writeFile(e,n){if(this.maybeLog("Write: "+e),typeof n=="string"){let r=this.vault.getAbstractFileByPath(e);return r instanceof br.TFile?this.vault.modify(r,n):this.adapter.write(e,n)}else if(e.endsWith(this.gitDir+"/index"))this.index=n,this.indexmtime=Date.now();else{let r=this.vault.getAbstractFileByPath(e);return r instanceof br.TFile?this.vault.modifyBinary(r,n):this.adapter.writeBinary(e,n)}}async readdir(e){e==="."&&(e="/");let n=await this.adapter.list(e),r=[...n.files,...n.folders],i;return e!=="/"?i=r.map(a=>(0,br.normalizePath)(a.substring(e.length))):i=r,i}async mkdir(e){return this.adapter.mkdir(e)}async rmdir(e,n){var r,i;return this.adapter.rmdir(e,(i=(r=n==null?void 0:n.options)==null?void 0:r.recursive)!=null?i:!1)}async stat(e){if(e.endsWith(this.gitDir+"/index")){if(this.index!==void 0&&this.indexctime!=null&&this.indexmtime!=null)return{isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1,size:this.index.length,type:"file",ctimeMs:this.indexctime,mtimeMs:this.indexmtime};{let r=await this.adapter.stat(e);if(r==null)throw{code:"ENOENT"};return this.indexctime=r.ctime,this.indexmtime=r.mtime,{ctimeMs:r.ctime,mtimeMs:r.mtime,size:r.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1}}}e==="."&&(e="/");let n=this.vault.getAbstractFileByPath(e);if(this.maybeLog("Stat: "+e),n instanceof br.TFile)return this.maybeLog("Reuse stat"),{ctimeMs:n.stat.ctime,mtimeMs:n.stat.mtime,size:n.stat.size,type:"file",isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1};{let r=await this.adapter.stat(e);if(r)return{ctimeMs:r.ctime,mtimeMs:r.mtime,size:r.size,type:r.type==="folder"?"directory":r.type,isFile:()=>r.type==="file",isDirectory:()=>r.type==="folder",isSymbolicLink:()=>!1};throw{code:"ENOENT"}}}async unlink(e){return this.adapter.remove(e)}async lstat(e){return this.stat(e)}async
|
||
|
|
||
|
`);return{message:o[0],author:{name:s.commit.author.name,email:s.commit.author.email},body:o.slice(1).join(`
|
||
|
|
||
|
`),date:new Date(s.commit.committer.timestamp).toDateString(),diff:{changed:0,files:(await this.getFileChangesCount(s.commit.parent.first(),s.oid)).map(l=>({path:l.path,status:l.type,vault_path:this.getRelativeVaultPath(l.path),hash:s.oid,binary:void 0}))},hash:s.oid,refs:[]}}))}updateBasePath(n){this.getRepo().dir=n}async updateUpstreamBranch(n){let[r,i]=wr(n),a=await this.branchInfo();await this.setConfig(`branch.${a.current}.merge`,`refs/heads/${i}`),await this.setConfig(`branch.${i}.remote`,r)}updateGitPath(n){}async getFileChangesCount(n,r){return this.walkDifference({walkers:[ie.TREE({ref:n}),ie.TREE({ref:r})]})}async walkDifference({walkers:n,dir:r}){return await this.wrapFS(ie.walk({...this.getRepo(),trees:n,map:async function(a,[s,o]){if(!Vh(a,r))return null;if(await(s==null?void 0:s.type())==="tree"||await(o==null?void 0:o.type())==="tree")return;let l=await(s==null?void 0:s.oid()),c=await(o==null?void 0:o.oid()),u="equal";if(l!==c&&(u="M"),l===void 0&&(u="A"),c===void 0&&(u="D"),l===void 0&&c===void 0&&(console.log("Something weird happened:"),console.log(s),console.log(o)),u!=="equal")return{path:a,type:u}}}))}async getStagedFiles(n="."){return(await this.walkDifference({walkers:[ie.TREE({ref:"HEAD"}),ie.STAGE()],dir:n})).map(i=>({vault_path:this.getRelativeVaultPath(i.path),filepath:i.path}))}async getUnstagedFiles(n="."){let r,i=window.setTimeout(function(){r=new Jr.Notice("This takes longer: Getting status",this.noticeLength)},2e4);try{let a=this.getRepo(),s=await this.wrapFS(ie.walk({...a,trees:[ie.WORKDIR(),ie.STAGE()],map:async function(o,[l,c]){if(!c&&l&&await ie.isIgnored({...a,filepath:o})||!Vh(o,n))return null;let[u,f]=await Promise.all([l&&l.type(),c&&c.type()]),d=[u,f].includes("blob");if((u==="tree"||u==="special")&&!d)return;if(f==="commit")return null;if((f==="tree"||f==="special")&&!d)return;let h=f==="blob"?await c.oid():void 0,p;return u==="blob"&&f!=="blob"?p="42":u==="blob"&&(p=await l.oid()),p?p!==h?{filepath:o,deleted:!1}:null:{filepath:o,deleted:!0}}}));return window.clearTimeout(i),r==null||r.hide(),s}catch(a){throw window.clearTimeout(i),r==null||r.hide(),this.plugin.displayError(a),a}}async getDiffString(n,r=!1,i){let a=this.getRelativeVaultPath(n),s=async(c,[u])=>{if(n==c){let f=await u.oid();return(await ie.readBlob({...this.getRepo(),oid:f})).blob}};if(i){let c=await ds({...this.getRepo(),filepath:n,oid:i}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof ie.Errors.NotFoundError))throw h}),u=await ie.readCommit({...this.getRepo(),oid:i}),f=await ds({...this.getRepo(),filepath:n,oid:u.commit.parent.first()}).then(h=>new TextDecoder().decode(h.blob)).catch(h=>{if(!(h instanceof ie.Errors.NotFoundError))throw h});return lc(a,f!=null?f:"",c!=null?c:"")}let o=(await ie.walk({...this.getRepo(),trees:[ie.STAGE()],map:s})).first(),l=new TextDecoder().decode(o);if(r){let c=await this.resolveRef("HEAD").then(f=>ds({...this.getRepo(),filepath:n,oid:f})).then(f=>new TextDecoder().decode(f.blob)).catch(f=>{if(!(f instanceof ie.Errors.NotFoundError))throw f});return lc(a,c!=null?c:"",l)}else{let c;return await this.app.vault.adapter.exists(a)?c=await this.app.vault.adapter.read(a):c="",lc(a,l,c)}}async getLastCommitTime(){let n=this.getRepo(),r=await this.resolveRef("HEAD"),a=(await ie.readCommit({...n,oid:r})).commit.committer.timestamp;return new Date(a*1e3)}getFileStatusResult(n){let r=this.status_mapping[`${n[this.HEAD]}${n[this.WORKDIR]}${n[this.STAGE]}`];return{index:r[0]=="?"?"U":r[0],working_dir:r[1]=="?"?"U":r[1],path:n[this.FILE],vault_path:this.getRelativeVaultPath(n[this.FILE])}}async checkAuthorInfo(){let n=await this.getConfig("user.name"),r=await this.getConfig("user.email");if(!n||!r)throw"Git author information is not set. Please set it in the settings."}showNotice(n,r=!0){if(!this.plugin.settings.disablePopups)return new Jr.Notice(n,r?this.noticeLength:void 0)}};function hR(t){let e=[t];return{next(){return Promise.resolve({done:e.length===0,value:e.pop()})},return(){return e=[],{}},[Symbol.asyncIterator](){return this}}}function pR(t){return t[Symbol.asy
|
||
|
If turned on, do auto ${i} every ${js(r.settings.autoSaveInterval)} after stopping file edits.
|
||
|
This also prevents auto ${i} while editing a file. If turned off, it's independent from the last file edit.`).addToggle(u=>u.setValue(r.settings.autoBackupAfterFileChange).onChange(f=>{r.settings.autoBackupAfterFileChange=f,this.display(),r.saveSettings(),r.automaticsManager.reload("commit")})),this.mayDisableSetting(s,r.settings.setLastSaveToLastCommit),s=new z.Setting(n).setName(`Auto ${i} after latest commit`).setDesc(`If turned on, sets last auto ${i} timestamp to the latest commit timestamp. This reduces the frequency of auto ${i} when doing manual commits.`).addToggle(u=>u.setValue(r.settings.setLastSaveToLastCommit).onChange(async f=>{r.settings.setLastSaveToLastCommit=f,r.saveSettings(),r.automaticsManager.reload("commit"),this.display()})),this.mayDisableSetting(s,r.settings.autoBackupAfterFileChange),s=new z.Setting(n).setName("Auto push interval (minutes)").setDesc("Push commits every X minutes. Set to 0 (default) to disable.").addText(u=>u.setValue(String(r.settings.autoPushInterval)).onChange(f=>{isNaN(Number(f))?new z.Notice("Please specify a valid number."):(r.settings.autoPushInterval=Number(f),r.saveSettings(),r.settings.autoPushInterval>0?(r.automaticsManager.reload("push"),new z.Notice(`Automatic push enabled! Every ${js(r.settings.autoPushInterval)}.`)):r.settings.autoPushInterval<=0&&new z.Notice("Automatic push disabled!"))})),this.mayDisableSetting(s,!r.settings.differentIntervalCommitAndPush),new z.Setting(n).setName("Auto pull interval (minutes)").setDesc("Pull changes every X minutes. Set to 0 (default) to disable.").addText(u=>u.setValue(String(r.settings.autoPullInterval)).onChange(f=>{isNaN(Number(f))?new z.Notice("Please specify a valid number."):(r.settings.autoPullInterval=Number(f),r.saveSettings(),r.settings.autoPullInterval>0?(r.automaticsManager.reload("pull"),new z.Notice(`Automatic pull enabled! Every ${js(r.settings.autoPullInterval)}.`)):r.settings.autoPullInterval<=0&&new z.Notice("Automatic pull disabled!"))})),new z.Setting(n).setName(`Specify custom commit message on auto ${i}`).setDesc("You will get a pop up to specify your message.").addToggle(u=>u.setValue(r.settings.customMessageOnAutoBackup).onChange(f=>{r.settings.customMessageOnAutoBackup=f,r.saveSettings(),this.display()})),s=new z.Setting(n).setName(`Commit message on auto ${i}`).setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message).").addTextArea(u=>u.setPlaceholder("vault backup: {{date}}").setValue(r.settings.autoCommitMessage).onChange(f=>{r.settings.autoCommitMessage=f,r.saveSettings()})),this.mayDisableSetting(s,r.settings.customMessageOnAutoBackup),new z.Setting(n).setName("Commit message").setHeading(),new z.Setting(n).setName("Commit message on manual commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message).").addTextArea(u=>u.setPlaceholder("vault backup: {{date}}").setValue(r.settings.commitMessage?r.settings.commitMessage:"").onChange(f=>{r.settings.commitMessage=f,r.saveSettings()}));let c=new z.Setting(n).setName("{{date}} placeholder format").addMomentFormat(u=>u.setDefaultFormat(r.settings.commitDateFormat).setValue(r.settings.commitDateFormat).onChange(async f=>{r.settings.commitDateFormat=f,await r.saveSettings()}));c.descEl.innerHTML=`
|
||
|
Specify custom date format. E.g. "${Ed}. See <a href="https://momentjs.com">Moment.js</a> for more formats.`,new z.Setting(n).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device.").addText(u=>{var f;return u.setValue((f=r.localStorage.getHostname())!=null?f:"").onChange(async d=>{r.localStorage.setHostname(d)})}),new z.Setting(n).setName("Preview commit message").addButton(u=>u.setButtonText("Preview").onClick(async()=>{let f=await r.gitManager.formatCommitMessage(r.settings.commitMessage);new z.Notice(`${f}`)})),new z.Setting(n).setName("List filenames affected by commit in the commit body").addToggle(u=>u.setValue(r.settings.listChangedFilesInMessageBody).onChange(f=>{r.settings.listChangedFilesInMessageBody=f,r.saveSettings()})),new z.Setting(n).setName("Pull").setHeading(),r.gitManager instanceof Oe&&new z.Setting(n).setName("Merge strategy").setDesc("Decide how to integrate commits from your remote branch into your local branch.").addDropdown(u=>{let f={merge:"Merge",rebase:"Rebase",reset:"Other sync service (Only updates the HEAD without touching the working directory)"};u.addOptions(f),u.setValue(r.settings.syncMethod),u.onChange(async d=>{r.settings.syncMethod=d,r.saveSettings()})}),new z.Setting(n).setName("Pull on startup").setDesc("Automatically pull commits when Obsidian starts.").addToggle(u=>u.setValue(r.settings.autoPullOnBoot).onChange(f=>{r.settings.autoPullOnBoot=f,r.saveSettings()})),new z.Setting(n).setName("Commit-and-sync").setDesc("Commit-and-sync with default settings means staging everything -> committing -> pulling -> pushing. Ideally this is a single action that you do regularly to keep your local and remote repository in sync.").setHeading(),s=new z.Setting(n).setName("Push on commit-and-sync").setDesc("Most of the time you want to push after committing. Turning this off turns a commit-and-sync action into commit only. It will still be called commit-and-sync.").addToggle(u=>u.setValue(!r.settings.disablePush).onChange(f=>{r.settings.disablePush=!f,r.saveSettings()})),new z.Setting(n).setName("Pull on commit-and-sync").setDesc("On commit-and-sync, pull commits before pushing. Turning this off turns a commit-and-sync action into commit and push only.").addToggle(u=>u.setValue(r.settings.pullBeforePush).onChange(f=>{r.settings.pullBeforePush=f,r.saveSettings()})),r.gitManager instanceof Oe&&(new z.Setting(n).setName("Line author information").setHeading(),this.addLineAuthorInfoSettings())}new z.Setting(n).setName("History view").setHeading(),new z.Setting(n).setName("Show Author").setDesc("Show the author of the commit in the history view.").addDropdown(c=>{let u={hide:"Hide",full:"Full",initials:"Initials"};c.addOptions(u),c.setValue(r.settings.authorInHistoryView),c.onChange(async f=>{r.settings.authorInHistoryView=f,r.saveSettings(),r.refresh()})}),new z.Setting(n).setName("Show Date").setDesc("Show the date of the commit in the history view. The {{date}} placeholder format is used to display the date.").addToggle(c=>c.setValue(r.settings.dateInHistoryView).onChange(u=>{r.settings.dateInHistoryView=u,r.saveSettings(),r.refresh()})),new z.Setting(n).setName("Source control view").setHeading(),new z.Setting(n).setName("Automatically refresh source control view on file changes").setDesc("On slower machines this may cause lags. If so, just disable this option.").addToggle(c=>c.setValue(r.settings.refreshSourceControl).onChange(u=>{r.settings.refreshSourceControl=u,r.saveSettings()})),new z.Setting(n).setName("Source control view refresh interval").setDesc("Milliseconds to wait after file change before refreshing the Source Control View.").addText(c=>c.setValue(r.settings.refreshSourceControlTimer.toString()).setPlaceholder("7000").onChange(u=>{r.settings.refreshSourceControlTimer=Math.max(parseInt(u),500),r.saveSettings(),r.setRefreshDebouncer()})),new z.Setting(n).setName("Miscellaneous").setHeading(),new z.Setting(n).setName("Disable notifications").setDesc("Disable notifications for git operations to minimize distraction (refer to statu
|
||
|
`)),c.onChange(u=>{r.localStorage.setEnvVars(u.split(`
|
||
|
`))})}),r.gitManager instanceof Oe&&new z.Setting(n).setName("Additional PATH environment variable paths").setDesc("Use each line for one path").addTextArea(c=>{c.setValue(r.localStorage.getPATHPaths().join(`
|
||
|
`)),c.onChange(u=>{r.localStorage.setPATHPaths(u.split(`
|
||
|
`))})}),r.gitManager instanceof Oe&&new z.Setting(n).setName("Reload with new environment variables").setDesc("Removing previously added environment variables will not take effect until Obsidian is restarted.").addButton(c=>{c.setButtonText("Reload"),c.setCta(),c.onClick(()=>{r.gitManager.setGitInstance()})}),new z.Setting(n).setName("Custom base path (Git repository path)").setDesc(`
|
||
|
Sets the relative path to the vault from which the Git binary should be executed.
|
||
|
Mostly used to set the path to the Git repository, which is only required if the Git repository is below the vault root directory. Use "\\" instead of "/" on Windows.
|
||
|
`).addText(c=>{c.setValue(r.settings.basePath),c.setPlaceholder("directory/directory-with-git-repo"),c.onChange(u=>{r.settings.basePath=u,r.saveSettings(),r.gitManager.updateBasePath(u||"")})}),new z.Setting(n).setName("Custom Git directory path (Instead of '.git')").setDesc('Requires restart of Obsidian to take effect. Use "\\" instead of "/" on Windows.').addText(c=>{c.setValue(r.settings.gitDir),c.setPlaceholder(".git"),c.onChange(u=>{r.settings.gitDir=u,r.saveSettings()})}),new z.Setting(n).setName("Disable on this device").setDesc("Disables the plugin on this device. This setting is not synced.").addToggle(c=>c.setValue(r.localStorage.getPluginDisabled()).onChange(u=>{r.localStorage.setPluginDisabled(u),u?r.unloadPlugin():r.loadPlugin(),new z.Notice("Obsidian must be restarted for the changes to take affect.")})),new z.Setting(n).setName("Support").setHeading(),new z.Setting(n).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development.").addButton(c=>{c.buttonEl.outerHTML="<a href='https://ko-fi.com/F1F195IQ5' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi3.png?v=3' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>"});let o=n.createDiv();o.setAttr("align","center"),o.setAttr("style","margin: var(--size-4-2)");let l=o.createEl("button");if(l.setText("Copy Debug Information"),l.onclick=()=>{window.navigator.clipboard.writeText(JSON.stringify({settings:this.plugin.settings,pluginVersion:this.plugin.manifest.version},null,4)),new z.Notice("Debug information copied to clipboard. May contain sensitive information!")},z.Platform.isDesktopApp){let c=n.createDiv();c.setAttr("align","center"),c.setText(`Debugging and logging:
|
||
|
You can always see the logs of this and every other plugin by opening the console with`);let u=n.createDiv();u.setAttr("align","center"),u.addClass("obsidian-git-shortcuts"),z.Platform.isMacOS===!0?u.createEl("kbd",{text:"CMD (\u2318) + OPTION (\u2325) + I"}):u.createEl("kbd",{text:"CTRL + SHIFT + I"})}}mayDisableSetting(n,r){r&&(n.setDisabled(r),n.setClass("obsidian-git-disabled"))}configureLineAuthorShowStatus(n){this.settings.lineAuthor.show=n,this.plugin.saveSettings(),n?this.plugin.lineAuthoringFeature.activateFeature():this.plugin.lineAuthoringFeature.deactivateFeature()}lineAuthorSettingHandler(n,r){this.settings.lineAuthor[n]=r,this.plugin.saveSettings(),this.plugin.lineAuthoringFeature.refreshLineAuthorViews()}beforeSaveSettings(){let n=this.settings.lineAuthor;n.authorDisplay!=="hide"&&(n.lastShownAuthorDisplay=n.authorDisplay),n.dateTimeFormatOptions!=="hide"&&(n.lastShownDateTimeFormatOptions=n.dateTimeFormatOptions)}addLineAuthorInfoSettings(){let n=new z.Setting(this.containerEl).setName("Show commit authoring information next to each line");if(this.plugin.lineAuthoringFeature.isAvailableOnCurrentPlatform()||n.setDesc("Only available on desktop currently.").setDisabled(!0),n.descEl.innerHTML=`
|
||
|
<a href="${vR}">Feature guide and quick examples</a></br>
|
||
|
The commit hash, author name and authoring date can all be individually toggled.</br>Hide everything, to only show the age-colored sidebar.`,n.addToggle(r=>r.setValue(this.settings.lineAuthor.show).onChange(i=>{this.configureLineAuthorShowStatus(i),this.display()})),this.settings.lineAuthor.show){let r=new z.Setting(this.containerEl).setName("Follow movement and copies across files and commits").setDesc("").addDropdown(a=>{a.addOptions({inactive:"Do not follow (default)","same-commit":"Follow within same commit","all-commits":"Follow within all commits (maybe slow)"}),a.setValue(this.settings.lineAuthor.followMovement),a.onChange(s=>this.lineAuthorSettingHandler("followMovement",s))});if(r.descEl.innerHTML=`
|
||
|
By default (deactivated), each line only shows the newest commit where it was changed.
|
||
|
<br/>
|
||
|
With <i>same commit</i>, cut-copy-paste-ing of text is followed within the same commit and the original commit of authoring will be shown.
|
||
|
<br/>
|
||
|
With <i>all commits</i>, cut-copy-paste-ing text inbetween multiple commits will be detected.
|
||
|
<br/>
|
||
|
It uses <a href="https://git-scm.com/docs/git-blame">git-blame</a> and
|
||
|
for matches (at least ${vl} characters) within the same (or all) commit(s), <em>the originating</em> commit's information is shown.`,new z.Setting(this.containerEl).setName("Show commit hash").addToggle(a=>{a.setValue(this.settings.lineAuthor.showCommitHash),a.onChange(async s=>this.lineAuthorSettingHandler("showCommitHash",s))}),new z.Setting(this.containerEl).setName("Author name display").setDesc("If and how the author is displayed").addDropdown(a=>{let s={hide:"Hide",initials:"Initials (default)","first name":"First name","last name":"Last name",full:"Full name"};a.addOptions(s),a.setValue(this.settings.lineAuthor.authorDisplay),a.onChange(async o=>this.lineAuthorSettingHandler("authorDisplay",o))}),new z.Setting(this.containerEl).setName("Authoring date display").setDesc("If and how the date and time of authoring the line is displayed").addDropdown(a=>{let s={hide:"Hide",date:"Date (default)",datetime:"Date and time","natural language":"Natural language",custom:"Custom"};a.addOptions(s),a.setValue(this.settings.lineAuthor.dateTimeFormatOptions),a.onChange(async o=>{this.lineAuthorSettingHandler("dateTimeFormatOptions",o),this.display()})}),this.settings.lineAuthor.dateTimeFormatOptions==="custom"){let a=new z.Setting(this.containerEl);a.setName("Custom authoring date format").addText(s=>{s.setValue(this.settings.lineAuthor.dateTimeFormatCustomString),s.setPlaceholder("YYYY-MM-DD HH:mm"),s.onChange(o=>{this.lineAuthorSettingHandler("dateTimeFormatCustomString",o),a.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(o)})}),a.descEl.innerHTML=this.previewCustomDateTimeDescriptionHtml(this.settings.lineAuthor.dateTimeFormatCustomString)}new z.Setting(this.containerEl).setName("Authoring date display timezone").addDropdown(a=>{let s={"viewer-local":"My local (default)","author-local":"Author's local",utc0000:"UTC+0000/Z"};a.addOptions(s),a.setValue(this.settings.lineAuthor.dateTimeTimezone),a.onChange(async o=>this.lineAuthorSettingHandler("dateTimeTimezone",o))}).descEl.innerHTML=`
|
||
|
The time-zone in which the authoring date should be shown.
|
||
|
Either your local time-zone (default),
|
||
|
the author's time-zone during commit creation or
|
||
|
<a href="https://en.wikipedia.org/wiki/UTC%C2%B100:00">UTC\xB100:00</a>.
|
||
|
`;let i=new z.Setting(this.containerEl).setName("Oldest age in coloring");i.descEl.innerHTML=this.previewOldestAgeDescriptionHtml(this.settings.lineAuthor.coloringMaxAge)[0],i.addText(a=>{a.setPlaceholder("1y"),a.setValue(this.settings.lineAuthor.coloringMaxAge),a.onChange(s=>{let[o,l]=this.previewOldestAgeDescriptionHtml(s);i.descEl.innerHTML=o,l&&(this.lineAuthorSettingHandler("coloringMaxAge",s),this.refreshColorSettingsName("oldest"))})}),this.createColorSetting("newest"),this.createColorSetting("oldest"),new z.Setting(this.containerEl).setName("Text color").addText(a=>{a.setValue(this.settings.lineAuthor.textColorCss),a.onChange(s=>{this.lineAuthorSettingHandler("textColorCss",s)})}).descEl.innerHTML=`
|
||
|
The CSS color of the gutter text.<br/>
|
||
|
|
||
|
It is higly recommended to use
|
||
|
<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties">
|
||
|
CSS variables</a>
|
||
|
defined by themes
|
||
|
(e.g. <pre style="display:inline">var(--text-muted)</pre> or
|
||
|
<pre style="display:inline">var(--text-on-accent)</pre>,
|
||
|
because they automatically adapt to theme changes.<br/>
|
||
|
|
||
|
See: <a href="https://github.com/obsidian-community/obsidian-theme-template/blob/main/obsidian.css">
|
||
|
List of available CSS variables in Obsidian
|
||
|
<a/>
|
||
|
`,new z.Setting(this.containerEl).setName("Ignore whitespace and newlines in changes").addToggle(a=>{a.setValue(this.settings.lineAuthor.ignoreWhitespace),a.onChange(s=>this.lineAuthorSettingHandler("ignoreWhitespace",s))}).descEl.innerHTML=`
|
||
|
Whitespace and newlines are interpreted as
|
||
|
part of the document and in changes
|
||
|
by default (hence not ignored).
|
||
|
This makes the last line being shown as 'changed'
|
||
|
when a new subsequent line is added,
|
||
|
even if the previously last line's text is the same.
|
||
|
<br>
|
||
|
If you don't care about purely-whitespace changes
|
||
|
(e.g. list nesting / quote indentation changes),
|
||
|
then activating this will provide more meaningful change detection.
|
||
|
`}}createColorSetting(n){let r=new z.Setting(this.containerEl).setName("").addText(i=>{let a=np(n,this.settings.lineAuthor),s=np(n,An.lineAuthor);i.setPlaceholder(Wh(s)),i.setValue(Wh(a)),i.onChange(o=>{let l=J_(o);if(l!==void 0){let c=n==="newest"?"colorNew":"colorOld";this.lineAuthorSettingHandler(c,l)}this.refreshColorSettingsDesc(n,l)})});this.lineAuthorColorSettings.set(n,r),this.refreshColorSettingsName(n),this.refreshColorSettingsDesc(n,np(n,this.settings.lineAuthor))}refreshColorSettingsName(n){let r=this.lineAuthorColorSettings.get(n);if(r){let i=n==="oldest"?`oldest (${this.settings.lineAuthor.coloringMaxAge} or older)`:"newest";r.nameEl.innerText=`Color for ${i} commits`}}refreshColorSettingsDesc(n,r){let i=this.lineAuthorColorSettings.get(n);i&&(i.descEl.innerHTML=this.colorSettingPreviewDescHtml(n,this.settings.lineAuthor,r!==void 0))}colorSettingPreviewDescHtml(n,r,i){let a=i?rp(n,r):"rgba(127,127,127,0.3)",s=z.moment.unix(z.moment.now()/1e3).format("YYYY-MM-DD"),o=i?`abcdef Author Name ${s}`:"invalid color";return`Supports 'rgb(r,g,b)', 'hsl(h,s,l)', hex (#) and
|
||
|
named colors (e.g. 'black', 'purple'). Color preview: ${`<div
|
||
|
class="line-author-settings-preview"
|
||
|
style="background-color: ${a}; width: 30ch;"
|
||
|
>${o}</div>`}`}previewCustomDateTimeDescriptionHtml(n){let r=(0,z.moment)().format(n);return`<a href="${yR}">Format string</a> to display the authoring date.</br>Currently: ${r}`}previewOldestAgeDescriptionHtml(n){let r=fc(n);return[`The oldest age in the line author coloring. Everything older will have the same color.
|
||
|
</br>Smallest valid age is "1d". Currently: ${r!==void 0?`${r.asDays()} days`:"invalid!"}`,r]}};function np(t,e){return t==="oldest"?e.colorOld:e.colorNew}function fc(t){let e=z.moment.duration("P"+t.toUpperCase());return e.isValid()&&e.asDays()&&e.asDays()>=1?e:void 0}function gS(t,e,n){if(!(t===void 0||e===void 0||n===void 0))return`head${t}-obj${e}-path${n}`}var yS=dc.Annotation.define();function vS(t,e,n){return n.update({annotations:yS.of({key:t,la:e,lineOffsetsFromUnsavedChanges:new Map})})}function wR(t){return t.annotation(yS)}var aa=dc.StateField.define({create:t=>{},update:(t,e)=>{var n;return(n=wR(e))!=null?n:bR(e,t)},compare:(t,e)=>(t==null?void 0:t.key)===(e==null?void 0:e.key)});function hc(t){var a;let e=mS.sha256.create();if(!t)return e;let{la:n,key:r,lineOffsetsFromUnsavedChanges:i}=t;e.update(n==="untracked"?"t":"f"),e.update(r);for(let[s,o]of(a=i.entries())!=null?a:[])e.update([s,o]);return e}var rn={get:void 0,save:void 0};function wS(t,e){rn.get=t,rn.save=e}function pc(t){var e,n;return(n=(e=fc(t.coloringMaxAge))==null?void 0:e.asDays())!=null?n:fc(An.lineAuthor.coloringMaxAge).asDays()}function bR(t,e){if(e)return t.changes.empty||t.changes.iterChanges((n,r,i,a)=>{var p;let s=t.startState.doc,{newDoc:o}=t,l=s.lineAt(n).number,c=s.lineAt(r).number,u=o.lineAt(i).number,f=o.lineAt(a).number,d=c-l+1,h=f-u+1;for(let m=u;m<=f;m++){let g=(p=e.lineOffsetsFromUnsavedChanges.get(m))!=null?p:0,w=f===m,b=h-d;w&&(g+=b),e.lineOffsetsFromUnsavedChanges.set(m,g)}}),e}var ip=class{constructor(e){this.state=e;this.subscribeMe()}async notifyLineAuthoring(e,n){if(this.view===void 0){console.warn(`Git: View is not defined for editor cache key. Unforeseen situation. id: ${e}`);return}let r=this.view.state,i=vS(e,n,r);this.view.dispatch(i)}updateToNewState(e){let n=this.lastSeenPath&&this.filepath!=this.lastSeenPath;return this.state=e,n&&(this.unsubscribeMe(this.lastSeenPath),this.subscribeMe()),this}removeIfStale(){this.view.destroyed&&this.unsubscribeMe(this.lastSeenPath)}subscribeMe(){this.filepath!==void 0&&(ia.ifFilepathDefinedTransformSubscribers(this.filepath,e=>e.add(this)),this.lastSeenPath=this.filepath)}unsubscribeMe(e){ia.ifFilepathDefinedTransformSubscribers(e,n=>n.delete(this))}get filepath(){var e,n;return(n=(e=this.state.field(mc.editorViewField))==null?void 0:e.file)==null?void 0:n.path}get view(){return this.state.field(mc.editorEditorField)}},xS=bS.StateField.define({create:t=>new ip(t),update:(t,e)=>t.updateToNewState(e.state),compare:(t,e)=>t===e});v();function _S(){sa=void 0,ap=[],gc=0,vc.clear(),wc.clear(),oa.clear()}var sa,yc=()=>sa;function SS(t,e){var i;let n=e.length;if(n<((i=sa==null?void 0:sa.length)!=null?i:0))return;sa={gutter:t,length:n,text:e};let r=rn.get();n!==r.gutterSpacingFallbackLength&&(r.gutterSpacingFallbackLength=n,rn.save(r))}var ap=[],xR=15,gc=0;function ES(t){ap[gc]=t,gc=(gc+1)%xR}function kS(){return tS(ap)}var vc=new Map,wc=new Map,oa=new Set;v();var BS=require("@codemirror/state"),NS=require("@codemirror/view");v();var cp=require("@codemirror/view"),RS=Ve(Zh()),_c=require("obsidian");v();v();var bc={x:-10,y:-10};function AS(){bc.x===-10&&window.addEventListener("mousedown",t=>{bc.x=t.clientX,bc.y=t.clientY})}function TS(){for(let t of oa)if(_R(t,bc))return t}function _R(t,e){let{x:n,y:r,width:i,height:a}=t.getBoundingClientRect();return n<=e.x&&e.x<=n+i&&r<=e.y&&e.y<=r+a}v();var $s={};var CS="data-commit";function FS(t,e,n){if(e.hasFocus())return;let r=TS();if(!r)return;let i=ER(r);i&&(!i.isZeroCommit&&!i.isWaitingGutter&&SR(i,t),sp("showCommitHash",t),sp("authorDisplay",t),sp("dateTimeFormatOptions",t))}function SR(t,e){e.addItem(n=>n.setTitle("Copy commit hash").setIcon("copy").setSection("obs-git-line-author-copy").onClick(r=>navigator.clipboard.writeText(t.hash)))}function sp(t,e){var l,c;let n,r,i=$s.plugin.settings.lineAuthor,a=i[t],s=typeof a=="boolean"?a:a!=="hide",o=An.lineAuthor[t];if(t==="showCommitHash")n="Show commit hash",r=!a;else if(t==="authorDisplay"){let u=(l=i.lastShownAuthorDisplay)!=null?l:o;n="Show author "+(s?a:u),r=s?"hide":u}else if(t
|
||
|
(${this.unPushedCommits} unpushed commits)`)}else this.statusBarEl.ariaLabel=this.plugin.offlineMode?"Git is offline":"Git is ready";this.plugin.offlineMode?(0,Mn.setIcon)(this.iconEl,"globe"):(0,Mn.setIcon)(this.iconEl,"check"),this.plugin.settings.changedFilesInStatusBar&&this.plugin.cachedStatus&&this.textEl.setText(this.plugin.cachedStatus.changed.length.toString()),this.statusBarEl.addClass(this.base+"idle")}async refreshCommitTimestamp(){this.lastCommitTimestamp=await this.plugin.gitManager.getLastCommitTime(),this.unPushedCommits=await this.plugin.gitManager.getUnpushedCommits()}};v();var zS=require("obsidian"),Tc=class extends zS.SuggestModal{constructor(n,r){super(n.app);this.fromAutoBackup=r;this.resolve=null;this.plugin=n,this.setPlaceholder("Type your message and select optional the version with the added date.")}open(){return super.open(),new Promise(n=>{this.resolve=n})}onClose(){this.resolve&&this.resolve(void 0)}selectSuggestion(n,r){this.resolve&&this.resolve(n),super.selectSuggestion(n,r)}getSuggestions(n){let r=window.moment().format(this.plugin.settings.commitDateFormat);return n==""&&(n="..."),[n,`${r}: ${n}`,`${n}: ${r}`]}renderSuggestion(n,r){r.innerText=n}onChooseSuggestion(n,r){}};v();var GS=require("obsidian"),Us=class{constructor(e){this.plugin=e}saveLastAuto(e,n){n==="backup"?this.plugin.localStorage.setLastAutoBackup(e.toString()):n==="pull"?this.plugin.localStorage.setLastAutoPull(e.toString()):n==="push"&&this.plugin.localStorage.setLastAutoPush(e.toString())}loadLastAuto(){var e,n,r;return{backup:new Date((e=this.plugin.localStorage.getLastAutoBackup())!=null?e:""),pull:new Date((n=this.plugin.localStorage.getLastAutoPull())!=null?n:""),push:new Date((r=this.plugin.localStorage.getLastAutoPush())!=null?r:"")}}async init(){this.setUpAutoCommitAndSync();let e=this.loadLastAuto();if(this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0){let n=new Date,r=this.plugin.settings.autoPushInterval-Math.round((n.getTime()-e.push.getTime())/1e3/60);this.startAutoPush(r<=0?0:r)}if(this.plugin.settings.autoPullInterval>0){let n=new Date,r=this.plugin.settings.autoPullInterval-Math.round((n.getTime()-e.pull.getTime())/1e3/60);this.startAutoPull(r<=0?0:r)}}unload(){this.clearAutoPull(),this.clearAutoPush(),this.clearAutoCommitAndSync()}reload(...e){e.contains("commit")&&(this.clearAutoCommitAndSync(),this.plugin.settings.autoSaveInterval>0&&this.startAutoCommitAndSync(this.plugin.settings.autoSaveInterval)),e.contains("push")&&(this.clearAutoPush(),this.plugin.settings.differentIntervalCommitAndPush&&this.plugin.settings.autoPushInterval>0&&this.startAutoPush(this.plugin.settings.autoPushInterval)),e.contains("pull")&&(this.clearAutoPull(),this.plugin.settings.autoPullInterval>0&&this.startAutoPull(this.plugin.settings.autoPullInterval))}async setUpAutoCommitAndSync(){if(this.plugin.settings.setLastSaveToLastCommit){this.clearAutoCommitAndSync();let e=await this.plugin.gitManager.getLastCommitTime();e&&this.plugin.localStorage.setLastAutoBackup(e.toString())}if(!this.timeoutIDCommitAndSync&&!this.plugin.autoCommitDebouncer){let e=this.loadLastAuto();if(this.plugin.settings.autoSaveInterval>0){let n=new Date,r=this.plugin.settings.autoSaveInterval-Math.round((n.getTime()-e.backup.getTime())/1e3/60);this.startAutoCommitAndSync(r<=0?0:r)}}}startAutoCommitAndSync(e){let n=(e!=null?e:this.plugin.settings.autoSaveInterval)*6e4;this.plugin.settings.autoBackupAfterFileChange?e===0?this.doAutoCommitAndSync():this.plugin.autoCommitDebouncer=(0,GS.debounce)(()=>this.doAutoCommitAndSync(),n,!0):(n>2147483647&&(n=2147483647),this.timeoutIDCommitAndSync=window.setTimeout(()=>this.doAutoCommitAndSync(),n))}doAutoCommitAndSync(){this.plugin.promiseQueue.addTask(()=>this.plugin.settings.differentIntervalCommitAndPush?this.plugin.commit({fromAuto:!0}):this.plugin.commitAndSync(!0)),this.saveLastAuto(new Date,"backup"),this.plugin.saveSettings(),this.startAutoCommitAndSync()}startAutoPull(e){let n=(e!=null?e:this.plugin.settings.autoPullInterval)*6e4;n>2147483647&&(n=2147483647),this.
|
||
|
`).split(`
|
||
|
`);function Q(){i!==null&&r!==null&&(r.blocks.push(i),i=null)}function le(){r!==null&&(!r.oldName&&l!==null&&(r.oldName=l),!r.newName&&c!==null&&(r.newName=c),r.newName&&(n.push(r),r=null)),l=null,c=null}function de(){Q(),le(),r={blocks:[],deletedLines:0,addedLines:0}}function re(H){Q();let U;r!==null&&((U=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(H))?(r.isCombined=!1,a=parseInt(U[1],10),o=parseInt(U[2],10)):(U=/^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(H))?(r.isCombined=!0,a=parseInt(U[1],10),s=parseInt(U[2],10),o=parseInt(U[3],10)):(H.startsWith(d)&&console.error("Failed to parse lines, starting in 0!"),a=0,o=0,r.isCombined=!1)),i={lines:[],oldStartLine:a,oldStartLine2:s,newStartLine:o,header:H}}function Ae(H){if(r===null||i===null||a===null||o===null)return;let U={content:H},D=r.isCombined?["+ "," +","++"]:["+"],se=r.isCombined?["- "," -","--"]:["-"];rE(H,D)?(r.addedLines++,U.type=De.INSERT,U.oldNumber=void 0,U.newNumber=o++):rE(H,se)?(r.deletedLines++,U.type=De.DELETE,U.oldNumber=a++,U.newNumber=void 0):(U.type=De.CONTEXT,U.oldNumber=a++,U.newNumber=o++),i.lines.push(U)}function he(H,U){let D=U;for(;D<j.length-3;){if(H.startsWith("diff"))return!1;if(j[D].startsWith(u)&&j[D+1].startsWith(f)&&j[D+2].startsWith(d))return!0;D++}return!1}return j.forEach((H,U)=>{if(!H||H.startsWith("*"))return;let D,se=j[U-1],_e=j[U+1],mt=j[U+2];if(H.startsWith("diff --git")||H.startsWith("diff --combined")){if(de(),(D=/^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/.exec(H))&&(l=xr(D[1],void 0,e.dstPrefix),c=xr(D[2],void 0,e.srcPrefix)),r===null)throw new Error("Where is my file !!!");r.isGitDiff=!0;return}if(H.startsWith("Binary files")&&!(r!=null&&r.isGitDiff)){if(de(),(D=/^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/.exec(H))&&(l=xr(D[1],void 0,e.dstPrefix),c=xr(D[2],void 0,e.srcPrefix)),r===null)throw new Error("Where is my file !!!");r.isBinary=!0;return}if((!r||!r.isGitDiff&&r&&H.startsWith(u)&&_e.startsWith(f)&&mt.startsWith(d))&&de(),r!=null&&r.isTooBig)return;if(r&&(typeof e.diffMaxChanges=="number"&&r.addedLines+r.deletedLines>e.diffMaxChanges||typeof e.diffMaxLineLength=="number"&&H.length>e.diffMaxLineLength)){r.isTooBig=!0,r.addedLines=0,r.deletedLines=0,r.blocks=[],i=null;let Te=typeof e.diffTooBigMessage=="function"?e.diffTooBigMessage(n.length):"Diff too big to be displayed";re(Te);return}if(H.startsWith(u)&&_e.startsWith(f)||H.startsWith(f)&&se.startsWith(u)){if(r&&!r.oldName&&H.startsWith("--- ")&&(D=BR(H,e.srcPrefix))){r.oldName=D,r.language=nE(r.oldName,r.language);return}if(r&&!r.newName&&H.startsWith("+++ ")&&(D=NR(H,e.dstPrefix))){r.newName=D,r.language=nE(r.newName,r.language);return}}if(r&&(H.startsWith(d)||r.isGitDiff&&r.oldName&&r.newName&&!i)){re(H);return}if(i&&(H.startsWith("+")||H.startsWith("-")||H.startsWith(" "))){Ae(H);return}let X=!he(H,U);if(r===null)throw new Error("Where is my file !!!");(D=h.exec(H))?r.oldMode=D[1]:(D=p.exec(H))?r.newMode=D[1]:(D=m.exec(H))?(r.deletedFileMode=D[1],r.isDeleted=!0):(D=g.exec(H))?(r.newFileMode=D[1],r.isNew=!0):(D=w.exec(H))?(X&&(r.oldName=D[1]),r.isCopy=!0):(D=b.exec(H))?(X&&(r.newName=D[1]),r.isCopy=!0):(D=x.exec(H))?(X&&(r.oldName=D[1]),r.isRename=!0):(D=E.exec(H))?(X&&(r.newName=D[1]),r.isRename=!0):(D=S.exec(H))?(r.isBinary=!0,r.oldName=xr(D[1],void 0,e.srcPrefix),r.newName=xr(D[2],void 0,e.dstPrefix),re("Binary file")):k.test(H)?(r.isBinary=!0,re(H)):(D=_.exec(H))?r.unchangedPercentage=parseInt(D[1],10):(D=T.exec(H))?r.changedPercentage=parseInt(D[1],10):(D=y.exec(H))?(r.checksumBefore=D[1],r.checksumAfter=D[2],D[3]&&(r.mode=D[3])):(D=C.exec(H))?(r.checksumBefore=[D[2],D[3]],r.checksumAfter=D[1]):(D=M.exec(H))?(r.oldMode=[D[2],D[3]],r.newMode=D[1]):(D=P.exec(H))?(r.newFileMode=D[1],r.isNew=!0):(D=$.exec(H))&&(r.deletedFileMode=D[1],r.isDeleted=!0)}),Q(),le(),n}v();v();v();function qn(){}qn.prototype={diff:function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=r.callback;typeof r=="function"&&(i=r,r={}),this.options=r;var a=this;function s(m){return i?(setTimeout(function(){i(void 0,m)}
|
||
|
`);return this.hoganUtils.render(dE,"wrapper",{colorScheme:da(this.config.colorScheme),filesNumber:e.length,files:n})}};v();var bp=Object.assign(Object.assign({},ni),{renderNothingWhenEmpty:!1,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200}),Ws="generic",hE="line-by-line",tL="icon",nL="tag",qs=class{constructor(e,n={}){this.hoganUtils=e,this.config=Object.assign(Object.assign({},bp),n)}render(e){let n=e.map(r=>{let i;return r.blocks.length?i=this.generateFileHtml(r):i=this.generateEmptyDiff(),this.makeFileDiffHtml(r,i)}).join(`
|
||
|
`);return this.hoganUtils.render(Ws,"wrapper",{colorScheme:da(this.config.colorScheme),content:n})}makeFileDiffHtml(e,n){if(this.config.renderNothingWhenEmpty&&Array.isArray(e.blocks)&&e.blocks.length===0)return"";let r=this.hoganUtils.template(hE,"file-diff"),i=this.hoganUtils.template(Ws,"file-path"),a=this.hoganUtils.template(tL,"file"),s=this.hoganUtils.template(nL,pa(e));return r.render({file:e,fileHtmlId:ha(e),diffs:n,filePath:i.render({fileDiffName:ri(e)},{fileIcon:a,fileTag:s})})}generateEmptyDiff(){return this.hoganUtils.render(Ws,"empty-diff",{contentClass:"d2h-code-line",CSSLineClass:pt})}generateFileHtml(e){let n=ua(ca(r=>an(r.content,e.isCombined).content));return e.blocks.map(r=>{let i=this.hoganUtils.render(Ws,"block-header",{CSSLineClass:pt,blockHeader:e.isTooBig?r.header:_r(r.header),lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line"});return this.applyLineGroupping(r).forEach(([a,s,o])=>{if(s.length&&o.length&&!a.length)this.applyRematchMatching(s,o,n).map(([l,c])=>{let{left:u,right:f}=this.processChangedLines(e,e.isCombined,l,c);i+=u,i+=f});else if(a.length)a.forEach(l=>{let{prefix:c,content:u}=an(l.content,e.isCombined);i+=this.generateSingleLineHtml(e,{type:pt.CONTEXT,prefix:c,content:u,oldNumber:l.oldNumber,newNumber:l.newNumber})});else if(s.length||o.length){let{left:l,right:c}=this.processChangedLines(e,e.isCombined,s,o);i+=l,i+=c}else console.error("Unknown state reached while processing groups of lines",a,s,o)}),i}).join(`
|
||
|
`)}applyLineGroupping(e){let n=[],r=[],i=[];for(let a=0;a<e.lines.length;a++){let s=e.lines[a];(s.type!==De.INSERT&&i.length||s.type===De.CONTEXT&&r.length>0)&&(n.push([[],r,i]),r=[],i=[]),s.type===De.CONTEXT?n.push([[s],[],[]]):s.type===De.INSERT&&r.length===0?n.push([[],[],[s]]):s.type===De.INSERT&&r.length>0?i.push(s):s.type===De.DELETE&&r.push(s)}return(r.length||i.length)&&(n.push([[],r,i]),r=[],i=[]),n}applyRematchMatching(e,n,r){let i=e.length*n.length,a=Math.max.apply(null,[0].concat(e.concat(n).map(o=>o.content.length)));return i<this.config.matchingMaxComparisons&&a<this.config.maxLineSizeInBlockForComparison&&(this.config.matching==="lines"||this.config.matching==="words")?r(e,n):[[e,n]]}processChangedLines(e,n,r,i){let a={right:"",left:""},s=Math.max(r.length,i.length);for(let o=0;o<s;o++){let l=r[o],c=i[o],u=l!==void 0&&c!==void 0?Ic(l.content,c.content,n,this.config):void 0,f=l!==void 0&&l.oldNumber!==void 0?Object.assign(Object.assign({},u!==void 0?{prefix:u.oldLine.prefix,content:u.oldLine.content,type:pt.DELETE_CHANGES}:Object.assign(Object.assign({},an(l.content,n)),{type:fa(l.type)})),{oldNumber:l.oldNumber,newNumber:l.newNumber}):void 0,d=c!==void 0&&c.newNumber!==void 0?Object.assign(Object.assign({},u!==void 0?{prefix:u.newLine.prefix,content:u.newLine.content,type:pt.INSERT_CHANGES}:Object.assign(Object.assign({},an(c.content,n)),{type:fa(c.type)})),{oldNumber:c.oldNumber,newNumber:c.newNumber}):void 0,{left:h,right:p}=this.generateLineHtml(e,f,d);a.left+=h,a.right+=p}return a}generateLineHtml(e,n,r){return{left:this.generateSingleLineHtml(e,n),right:this.generateSingleLineHtml(e,r)}}generateSingleLineHtml(e,n){if(n===void 0)return"";let r=this.hoganUtils.render(hE,"numbers",{oldNumber:n.oldNumber||"",newNumber:n.newNumber||""});return this.hoganUtils.render(Ws,"line",{type:n.type,lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line",prefix:n.prefix===" "?" ":n.prefix,content:n.content,lineNumber:r,line:n,file:e})}};v();var xp=Object.assign(Object.assign({},ni),{renderNothingWhenEmpty:!1,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200}),Xs="generic",rL="side-by-side",iL="icon",aL="tag",Ys=class{constructor(e,n={}){this.hoganUtils=e,this.config=Object.assign(Object.assign({},xp),n)}render(e){let n=e.map(r=>{let i;return r.blocks.length?i=this.generateFileHtml(r):i=this.generateEmptyDiff(),this.makeFileDiffHtml(r,i)}).join(`
|
||
|
`);return this.hoganUtils.render(Xs,"wrapper",{colorScheme:da(this.config.colorScheme),content:n})}makeFileDiffHtml(e,n){if(this.config.renderNothingWhenEmpty&&Array.isArray(e.blocks)&&e.blocks.length===0)return"";let r=this.hoganUtils.template(rL,"file-diff"),i=this.hoganUtils.template(Xs,"file-path"),a=this.hoganUtils.template(iL,"file"),s=this.hoganUtils.template(aL,pa(e));return r.render({file:e,fileHtmlId:ha(e),diffs:n,filePath:i.render({fileDiffName:ri(e)},{fileIcon:a,fileTag:s})})}generateEmptyDiff(){return{right:"",left:this.hoganUtils.render(Xs,"empty-diff",{contentClass:"d2h-code-side-line",CSSLineClass:pt})}}generateFileHtml(e){let n=ua(ca(r=>an(r.content,e.isCombined).content));return e.blocks.map(r=>{let i={left:this.makeHeaderHtml(r.header,e),right:this.makeHeaderHtml("")};return this.applyLineGroupping(r).forEach(([a,s,o])=>{if(s.length&&o.length&&!a.length)this.applyRematchMatching(s,o,n).map(([l,c])=>{let{left:u,right:f}=this.processChangedLines(e.isCombined,l,c);i.left+=u,i.right+=f});else if(a.length)a.forEach(l=>{let{prefix:c,content:u}=an(l.content,e.isCombined),{left:f,right:d}=this.generateLineHtml({type:pt.CONTEXT,prefix:c,content:u,number:l.oldNumber},{type:pt.CONTEXT,prefix:c,content:u,number:l.newNumber});i.left+=f,i.right+=d});else if(s.length||o.length){let{left:l,right:c}=this.processChangedLines(e.isCombined,s,o);i.left+=l,i.right+=c}else console.error("Unknown state reached while processing groups of lines",a,s,o)}),i}).reduce((r,i)=>({left:r.left+i.left,right:r.right+i.right}),{left:"",right:""})}applyLineGroupping(e){let n=[],r=[],i=[];for(let a=0;a<e.lines.length;a++){let s=e.lines[a];(s.type!==De.INSERT&&i.length||s.type===De.CONTEXT&&r.length>0)&&(n.push([[],r,i]),r=[],i=[]),s.type===De.CONTEXT?n.push([[s],[],[]]):s.type===De.INSERT&&r.length===0?n.push([[],[],[s]]):s.type===De.INSERT&&r.length>0?i.push(s):s.type===De.DELETE&&r.push(s)}return(r.length||i.length)&&(n.push([[],r,i]),r=[],i=[]),n}applyRematchMatching(e,n,r){let i=e.length*n.length,a=Math.max.apply(null,[0].concat(e.concat(n).map(o=>o.content.length)));return i<this.config.matchingMaxComparisons&&a<this.config.maxLineSizeInBlockForComparison&&(this.config.matching==="lines"||this.config.matching==="words")?r(e,n):[[e,n]]}makeHeaderHtml(e,n){return this.hoganUtils.render(Xs,"block-header",{CSSLineClass:pt,blockHeader:n!=null&&n.isTooBig?e:_r(e),lineClass:"d2h-code-side-linenumber",contentClass:"d2h-code-side-line"})}processChangedLines(e,n,r){let i={right:"",left:""},a=Math.max(n.length,r.length);for(let s=0;s<a;s++){let o=n[s],l=r[s],c=o!==void 0&&l!==void 0?Ic(o.content,l.content,e,this.config):void 0,u=o!==void 0&&o.oldNumber!==void 0?Object.assign(Object.assign({},c!==void 0?{prefix:c.oldLine.prefix,content:c.oldLine.content,type:pt.DELETE_CHANGES}:Object.assign(Object.assign({},an(o.content,e)),{type:fa(o.type)})),{number:o.oldNumber}):void 0,f=l!==void 0&&l.newNumber!==void 0?Object.assign(Object.assign({},c!==void 0?{prefix:c.newLine.prefix,content:c.newLine.content,type:pt.INSERT_CHANGES}:Object.assign(Object.assign({},an(l.content,e)),{type:fa(l.type)})),{number:l.newNumber}):void 0,{left:d,right:h}=this.generateLineHtml(u,f);i.left+=d,i.right+=h}return i}generateLineHtml(e,n){return{left:this.generateSingleHtml(e),right:this.generateSingleHtml(n)}}generateSingleHtml(e){let n="d2h-code-side-linenumber",r="d2h-code-side-line";return this.hoganUtils.render(Xs,"line",{type:(e==null?void 0:e.type)||`${pt.CONTEXT} d2h-emptyplaceholder`,lineClass:e!==void 0?n:`${n} d2h-code-side-emptyplaceholder`,contentClass:e!==void 0?r:`${r} d2h-code-side-emptyplaceholder`,prefix:(e==null?void 0:e.prefix)===" "?" ":e==null?void 0:e.prefix,content:e==null?void 0:e.content,lineNumber:e==null?void 0:e.number})}};v();var kp=Ve(Ep());v();var tt=Ve(Ep()),Xe={};Xe["file-summary-line"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<li class="d2h-file-list-line">'),r.b(`
|
||
|
`+n),r.b(' <span class="d2h-file-name-wrapper">'),r.b(`
|
||
|
`+n),r.b(r.rp("<fileIcon0",t,e," ")),r.b(' <a href="#'),r.b(r.v(r.f("fileHtmlId",t,e,0))),r.b('" class="d2h-file-name">'),r.b(r.v(r.f("fileName",t,e,0))),r.b("</a>"),r.b(`
|
||
|
`+n),r.b(' <span class="d2h-file-stats">'),r.b(`
|
||
|
`+n),r.b(' <span class="d2h-lines-added">'),r.b(r.v(r.f("addedLines",t,e,0))),r.b("</span>"),r.b(`
|
||
|
`+n),r.b(' <span class="d2h-lines-deleted">'),r.b(r.v(r.f("deletedLines",t,e,0))),r.b("</span>"),r.b(`
|
||
|
`+n),r.b(" </span>"),r.b(`
|
||
|
`+n),r.b(" </span>"),r.b(`
|
||
|
`+n),r.b("</li>"),r.fl()},partials:{"<fileIcon0":{name:"fileIcon",partials:{},subs:{}}},subs:{}});Xe["file-summary-wrapper"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<div class="d2h-file-list-wrapper '),r.b(r.v(r.f("colorScheme",t,e,0))),r.b('">'),r.b(`
|
||
|
`+n),r.b(' <div class="d2h-file-list-header">'),r.b(`
|
||
|
`+n),r.b(' <span class="d2h-file-list-title">Files changed ('),r.b(r.v(r.f("filesNumber",t,e,0))),r.b(")</span>"),r.b(`
|
||
|
`+n),r.b(' <a class="d2h-file-switch d2h-hide">hide</a>'),r.b(`
|
||
|
`+n),r.b(' <a class="d2h-file-switch d2h-show">show</a>'),r.b(`
|
||
|
`+n),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b(' <ol class="d2h-file-list">'),r.b(`
|
||
|
`+n),r.b(" "),r.b(r.t(r.f("files",t,e,0))),r.b(`
|
||
|
`+n),r.b(" </ol>"),r.b(`
|
||
|
`+n),r.b("</div>"),r.fl()},partials:{},subs:{}});Xe["generic-block-header"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b("<tr>"),r.b(`
|
||
|
`+n),r.b(' <td class="'),r.b(r.v(r.f("lineClass",t,e,0))),r.b(" "),r.b(r.v(r.d("CSSLineClass.INFO",t,e,0))),r.b('"></td>'),r.b(`
|
||
|
`+n),r.b(' <td class="'),r.b(r.v(r.d("CSSLineClass.INFO",t,e,0))),r.b('">'),r.b(`
|
||
|
`+n),r.b(' <div class="'),r.b(r.v(r.f("contentClass",t,e,0))),r.b('">'),r.s(r.f("blockHeader",t,e,1),t,e,0,156,173,"{{ }}")&&(r.rs(t,e,function(i,a,s){s.b(s.t(s.f("blockHeader",i,a,0)))}),t.pop()),r.s(r.f("blockHeader",t,e,1),t,e,1,0,0,"")||r.b(" "),r.b("</div>"),r.b(`
|
||
|
`+n),r.b(" </td>"),r.b(`
|
||
|
`+n),r.b("</tr>"),r.fl()},partials:{},subs:{}});Xe["generic-empty-diff"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b("<tr>"),r.b(`
|
||
|
`+n),r.b(' <td class="'),r.b(r.v(r.d("CSSLineClass.INFO",t,e,0))),r.b('">'),r.b(`
|
||
|
`+n),r.b(' <div class="'),r.b(r.v(r.f("contentClass",t,e,0))),r.b('">'),r.b(`
|
||
|
`+n),r.b(" File without changes"),r.b(`
|
||
|
`+n),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b(" </td>"),r.b(`
|
||
|
`+n),r.b("</tr>"),r.fl()},partials:{},subs:{}});Xe["generic-file-path"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<span class="d2h-file-name-wrapper">'),r.b(`
|
||
|
`+n),r.b(r.rp("<fileIcon0",t,e," ")),r.b(' <span class="d2h-file-name">'),r.b(r.v(r.f("fileDiffName",t,e,0))),r.b("</span>"),r.b(`
|
||
|
`+n),r.b(r.rp("<fileTag1",t,e," ")),r.b("</span>"),r.b(`
|
||
|
`+n),r.b('<label class="d2h-file-collapse">'),r.b(`
|
||
|
`+n),r.b(' <input class="d2h-file-collapse-input" type="checkbox" name="viewed" value="viewed">'),r.b(`
|
||
|
`+n),r.b(" Viewed"),r.b(`
|
||
|
`+n),r.b("</label>"),r.fl()},partials:{"<fileIcon0":{name:"fileIcon",partials:{},subs:{}},"<fileTag1":{name:"fileTag",partials:{},subs:{}}},subs:{}});Xe["generic-line"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b("<tr>"),r.b(`
|
||
|
`+n),r.b(' <td class="'),r.b(r.v(r.f("lineClass",t,e,0))),r.b(" "),r.b(r.v(r.f("type",t,e,0))),r.b('">'),r.b(`
|
||
|
`+n),r.b(" "),r.b(r.t(r.f("lineNumber",t,e,0))),r.b(`
|
||
|
`+n),r.b(" </td>"),r.b(`
|
||
|
`+n),r.b(' <td class="'),r.b(r.v(r.f("type",t,e,0))),r.b('">'),r.b(`
|
||
|
`+n),r.b(' <div class="'),r.b(r.v(r.f("contentClass",t,e,0))),r.b('">'),r.b(`
|
||
|
`+n),r.s(r.f("prefix",t,e,1),t,e,0,162,238,"{{ }}")&&(r.rs(t,e,function(i,a,s){s.b(' <span class="d2h-code-line-prefix">'),s.b(s.t(s.f("prefix",i,a,0))),s.b("</span>"),s.b(`
|
||
|
`+n)}),t.pop()),r.s(r.f("prefix",t,e,1),t,e,1,0,0,"")||(r.b(' <span class="d2h-code-line-prefix"> </span>'),r.b(`
|
||
|
`+n)),r.s(r.f("content",t,e,1),t,e,0,371,445,"{{ }}")&&(r.rs(t,e,function(i,a,s){s.b(' <span class="d2h-code-line-ctn">'),s.b(s.t(s.f("content",i,a,0))),s.b("</span>"),s.b(`
|
||
|
`+n)}),t.pop()),r.s(r.f("content",t,e,1),t,e,1,0,0,"")||(r.b(' <span class="d2h-code-line-ctn"><br></span>'),r.b(`
|
||
|
`+n)),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b(" </td>"),r.b(`
|
||
|
`+n),r.b("</tr>"),r.fl()},partials:{},subs:{}});Xe["generic-wrapper"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<div class="d2h-wrapper '),r.b(r.v(r.f("colorScheme",t,e,0))),r.b('">'),r.b(`
|
||
|
`+n),r.b(" "),r.b(r.t(r.f("content",t,e,0))),r.b(`
|
||
|
`+n),r.b("</div>"),r.fl()},partials:{},subs:{}});Xe["icon-file-added"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<svg aria-hidden="true" class="d2h-icon d2h-added" height="16" title="added" version="1.1" viewBox="0 0 14 16"'),r.b(`
|
||
|
`+n),r.b(' width="14">'),r.b(`
|
||
|
`+n),r.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM6 9H3V7h3V4h2v3h3v2H8v3H6V9z"></path>'),r.b(`
|
||
|
`+n),r.b("</svg>"),r.fl()},partials:{},subs:{}});Xe["icon-file-changed"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<svg aria-hidden="true" class="d2h-icon d2h-changed" height="16" title="modified" version="1.1"'),r.b(`
|
||
|
`+n),r.b(' viewBox="0 0 14 16" width="14">'),r.b(`
|
||
|
`+n),r.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM4 8c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3-3-1.34-3-3z"></path>'),r.b(`
|
||
|
`+n),r.b("</svg>"),r.fl()},partials:{},subs:{}});Xe["icon-file-deleted"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<svg aria-hidden="true" class="d2h-icon d2h-deleted" height="16" title="removed" version="1.1"'),r.b(`
|
||
|
`+n),r.b(' viewBox="0 0 14 16" width="14">'),r.b(`
|
||
|
`+n),r.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM11 9H3V7h8v2z"></path>'),r.b(`
|
||
|
`+n),r.b("</svg>"),r.fl()},partials:{},subs:{}});Xe["icon-file-renamed"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<svg aria-hidden="true" class="d2h-icon d2h-moved" height="16" title="renamed" version="1.1"'),r.b(`
|
||
|
`+n),r.b(' viewBox="0 0 14 16" width="14">'),r.b(`
|
||
|
`+n),r.b(' <path d="M6 9H3V7h3V4l5 4-5 4V9z m8-7v12c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h12c0.55 0 1 0.45 1 1z m-1 0H1v12h12V2z"></path>'),r.b(`
|
||
|
`+n),r.b("</svg>"),r.fl()},partials:{},subs:{}});Xe["icon-file"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<svg aria-hidden="true" class="d2h-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12">'),r.b(`
|
||
|
`+n),r.b(' <path d="M6 5H2v-1h4v1zM2 8h7v-1H2v1z m0 2h7v-1H2v1z m0 2h7v-1H2v1z m10-7.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h7.5l3.5 3.5z m-1 0.5L8 2H1v12h10V5z"></path>'),r.b(`
|
||
|
`+n),r.b("</svg>"),r.fl()},partials:{},subs:{}});Xe["line-by-line-file-diff"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<div id="'),r.b(r.v(r.f("fileHtmlId",t,e,0))),r.b('" class="d2h-file-wrapper" data-lang="'),r.b(r.v(r.d("file.language",t,e,0))),r.b('">'),r.b(`
|
||
|
`+n),r.b(' <div class="d2h-file-header">'),r.b(`
|
||
|
`+n),r.b(" "),r.b(r.t(r.f("filePath",t,e,0))),r.b(`
|
||
|
`+n),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b(' <div class="d2h-file-diff">'),r.b(`
|
||
|
`+n),r.b(' <div class="d2h-code-wrapper">'),r.b(`
|
||
|
`+n),r.b(' <table class="d2h-diff-table">'),r.b(`
|
||
|
`+n),r.b(' <tbody class="d2h-diff-tbody">'),r.b(`
|
||
|
`+n),r.b(" "),r.b(r.t(r.f("diffs",t,e,0))),r.b(`
|
||
|
`+n),r.b(" </tbody>"),r.b(`
|
||
|
`+n),r.b(" </table>"),r.b(`
|
||
|
`+n),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b("</div>"),r.fl()},partials:{},subs:{}});Xe["line-by-line-numbers"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<div class="line-num1">'),r.b(r.v(r.f("oldNumber",t,e,0))),r.b("</div>"),r.b(`
|
||
|
`+n),r.b('<div class="line-num2">'),r.b(r.v(r.f("newNumber",t,e,0))),r.b("</div>"),r.fl()},partials:{},subs:{}});Xe["side-by-side-file-diff"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<div id="'),r.b(r.v(r.f("fileHtmlId",t,e,0))),r.b('" class="d2h-file-wrapper" data-lang="'),r.b(r.v(r.d("file.language",t,e,0))),r.b('">'),r.b(`
|
||
|
`+n),r.b(' <div class="d2h-file-header">'),r.b(`
|
||
|
`+n),r.b(" "),r.b(r.t(r.f("filePath",t,e,0))),r.b(`
|
||
|
`+n),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b(' <div class="d2h-files-diff">'),r.b(`
|
||
|
`+n),r.b(' <div class="d2h-file-side-diff">'),r.b(`
|
||
|
`+n),r.b(' <div class="d2h-code-wrapper">'),r.b(`
|
||
|
`+n),r.b(' <table class="d2h-diff-table">'),r.b(`
|
||
|
`+n),r.b(' <tbody class="d2h-diff-tbody">'),r.b(`
|
||
|
`+n),r.b(" "),r.b(r.t(r.d("diffs.left",t,e,0))),r.b(`
|
||
|
`+n),r.b(" </tbody>"),r.b(`
|
||
|
`+n),r.b(" </table>"),r.b(`
|
||
|
`+n),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b(' <div class="d2h-file-side-diff">'),r.b(`
|
||
|
`+n),r.b(' <div class="d2h-code-wrapper">'),r.b(`
|
||
|
`+n),r.b(' <table class="d2h-diff-table">'),r.b(`
|
||
|
`+n),r.b(' <tbody class="d2h-diff-tbody">'),r.b(`
|
||
|
`+n),r.b(" "),r.b(r.t(r.d("diffs.right",t,e,0))),r.b(`
|
||
|
`+n),r.b(" </tbody>"),r.b(`
|
||
|
`+n),r.b(" </table>"),r.b(`
|
||
|
`+n),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b(" </div>"),r.b(`
|
||
|
`+n),r.b("</div>"),r.fl()},partials:{},subs:{}});Xe["tag-file-added"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<span class="d2h-tag d2h-added d2h-added-tag">ADDED</span>'),r.fl()},partials:{},subs:{}});Xe["tag-file-changed"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<span class="d2h-tag d2h-changed d2h-changed-tag">CHANGED</span>'),r.fl()},partials:{},subs:{}});Xe["tag-file-deleted"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<span class="d2h-tag d2h-deleted d2h-deleted-tag">DELETED</span>'),r.fl()},partials:{},subs:{}});Xe["tag-file-renamed"]=new tt.Template({code:function(t,e,n){var r=this;return r.b(n=n||""),r.b('<span class="d2h-tag d2h-moved d2h-moved-tag">RENAMED</span>'),r.fl()},partials:{},subs:{}});var Zs=class{constructor({compiledTemplates:e={},rawTemplates:n={}}){let r=Object.entries(n).reduce((i,[a,s])=>{let o=kp.compile(s,{asString:!1});return Object.assign(Object.assign({},i),{[a]:o})},{});this.preCompiledTemplates=Object.assign(Object.assign(Object.assign({},Xe),e),r)}static compile(e){return kp.compile(e,{asString:!1})}render(e,n,r,i,a){let s=this.templateKey(e,n);try{return this.preCompiledTemplates[s].render(r,i,a)}catch(o){throw new Error(`Could not find template to render '${s}'`)}}template(e,n){return this.preCompiledTemplates[this.templateKey(e,n)]}templateKey(e,n){return`${e}-${n}`}};var oL=Object.assign(Object.assign(Object.assign({},bp),xp),{outputFormat:KS.LINE_BY_LINE,drawFileList:!0});function yE(t,e={}){let n=Object.assign(Object.assign({},oL),e),r=typeof t=="string"?aE(t,n):t,i=new Zs(n),{colorScheme:a}=n,s={colorScheme:a},o=n.drawFileList?new Pc(i,s).render(r):"",l=n.outputFormat==="side-by-side"?new Ys(i,n).render(r):new qs(i,n).render(r);return o+l}var Lc=require("obsidian");var ma=class extends Lc.ItemView{constructor(n,r){super(n);this.plugin=r;this.gettingDiff=!1;this.gitRefreshBind=this.refresh.bind(this);this.gitViewRefreshBind=this.refresh.bind(this);this.parser=new DOMParser,this.navigation=!0,addEventListener("git-refresh",this.gitRefreshBind),addEventListener("git-view-refresh",this.gitViewRefreshBind)}getViewType(){return Tt.type}getDisplayText(){var n;if(((n=this.state)==null?void 0:n.file)!=null){let r=this.state.file.split("/").last();return r!=null&&r.endsWith(".md")&&(r=r.slice(0,-3)),Tt.name+` (${r})`}return Tt.name}getIcon(){return Tt.icon}async setState(n,r){this.state=n,Lc.Platform.isMobile&&(this.leaf.view.titleEl.textContent=this.getDisplayText()),await this.refresh()}getState(){return this.state}onClose(){return removeEventListener("git-refresh",this.gitRefreshBind),removeEventListener("git-view-refresh",this.gitViewRefreshBind),super.onClose()}onOpen(){return this.refresh(),super.onOpen()}async refresh(){var n;if((n=this.state)!=null&&n.file&&!this.gettingDiff&&this.plugin.gitManager){this.gettingDiff=!0;try{let r=await this.plugin.gitManager.getDiffString(this.state.file,this.state.staged,this.state.hash);this.contentEl.empty();let i=this.plugin.gitManager.getRelativeVaultPath(this.state.file);if(!r){if(this.plugin.gitManager instanceof Oe&&await this.plugin.gitManager.isTracked(this.state.file))r=[`--- ${this.state.file}`,`+++ ${this.state.file}`,""].join(`
|
||
|
`);else if(await this.app.vault.adapter.exists(i)){let a=await this.app.vault.adapter.read(i);r=[...`--- /dev/null
|
||
|
+++ ${this.state.file}
|
||
|
@@ -0,0 +1,${a.split(`
|
||
|
`).length} @@`.split(`
|
||
|
`),...a.split(`
|
||
|
`).map(o=>`+${o}`)].join(`
|
||
|
`)}}if(r){let a=this.parser.parseFromString(yE(r),"text/html").querySelector(".d2h-file-diff");this.contentEl.append(a)}else{let a=this.contentEl.createDiv({cls:"obsidian-git-center"});a.createSpan({text:"\u26A0\uFE0F",attr:{style:"font-size: 2em"}}),a.createEl("br"),a.createSpan({text:"File not found: "+this.state.file})}}finally{this.gettingDiff=!1}}}};v();var ZE=require("obsidian");v();v();v();v();function Fe(){}var Ks=t=>t;function Ap(t){return t()}function jc(){return Object.create(null)}function Se(t){t.forEach(Ap)}function ga(t){return typeof t=="function"}function ut(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}function vE(t){return Object.keys(t).length===0}v();var wE=typeof window!="undefined",Tp=wE?()=>window.performance.now():()=>Date.now(),Qs=wE?t=>requestAnimationFrame(t):Fe;v();var ya=new Set;function bE(t){ya.forEach(e=>{e.c(t)||(ya.delete(e),e.f())}),ya.size!==0&&Qs(bE)}function Cp(t){let e;return ya.size===0&&Qs(bE),{promise:new Promise(n=>{ya.add(e={c:t,f:n})}),abort(){ya.delete(e)}}}v();v();v();v();var Fp=typeof window!="undefined"?window:typeof globalThis!="undefined"?globalThis:global;var Dc=class t{constructor(e){ot(this,"_listeners","WeakMap"in Fp?new WeakMap:void 0);ot(this,"_observer");ot(this,"options");this.options=e}observe(e,n){return this._listeners.set(e,n),this._getObserver().observe(e,this.options),()=>{this._listeners.delete(e),this._observer.unobserve(e)}}_getObserver(){var e;return(e=this._observer)!=null?e:this._observer=new ResizeObserver(n=>{var r;for(let i of n)t.entries.set(i.target,i),(r=this._listeners.get(i.target))==null||r(i)})}};Dc.entries="WeakMap"in Fp?new WeakMap:void 0;var xE=!1;function _E(){xE=!0}function SE(){xE=!1}function O(t,e){t.appendChild(e)}function jt(t,e,n){let r=Bc(t);if(!r.getElementById(e)){let i=R("style");i.id=e,i.textContent=n,kE(r,i)}}function Bc(t){if(!t)return document;let e=t.getRootNode?t.getRootNode():t.ownerDocument;return e&&e.host?e:t.ownerDocument}function EE(t){let e=R("style");return e.textContent="/* empty */",kE(Bc(t),e),e.sheet}function kE(t,e){return O(t.head||t,e),e.sheet}function ae(t,e,n){t.insertBefore(e,n||null)}function ne(t){t.parentNode&&t.parentNode.removeChild(t)}function sn(t,e){for(let n=0;n<t.length;n+=1)t[n]&&t[n].d(e)}function R(t){return document.createElement(t)}function Ce(t){return document.createTextNode(t)}function J(){return Ce(" ")}function In(){return Ce("")}function te(t,e,n,r){return t.addEventListener(e,n,r),()=>t.removeEventListener(e,n,r)}function be(t){return function(e){return e.stopPropagation(),t.call(this,e)}}function A(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function AE(t){return Array.from(t.childNodes)}function Ie(t,e){e=""+e,t.data!==e&&(t.data=e)}function Mp(t,e){t.value=e==null?"":e}function Xt(t,e,n,r){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,r?"important":"")}function oe(t,e,n){t.classList.toggle(e,!!n)}function Nc(t,e,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(t,{detail:e,bubbles:n,cancelable:r})}function TE(t){let e={};return t.childNodes.forEach(n=>{e[n.slot||"default"]=!0}),e}var $c=new Map,Hc=0;function cL(t){let e=5381,n=t.length;for(;n--;)e=(e<<5)-e^t.charCodeAt(n);return e>>>0}function uL(t,e){let n={stylesheet:EE(e),rules:{}};return $c.set(t,n),n}function Uc(t,e,n,r,i,a,s,o=0){let l=16.666/r,c=`{
|
||
|
`;for(let g=0;g<=1;g+=l){let w=e+(n-e)*a(g);c+=g*100+`%{${s(w,1-w)}}
|
||
|
`}let u=c+`100% {${s(n,1-n)}}
|
||
|
}`,f=`__svelte_${cL(u)}_${o}`,d=Bc(t),{stylesheet:h,rules:p}=$c.get(d)||uL(d,t);p[f]||(p[f]=!0,h.insertRule(`@keyframes ${f} ${u}`,h.cssRules.length));let m=t.style.animation||"";return t.style.animation=`${m?`${m}, `:""}${f} ${r}ms linear ${i}ms 1 both`,Hc+=1,f}function Op(t,e){let n=(t.style.animation||"").split(", "),r=n.filter(e?a=>a.indexOf(e)<0:a=>a.indexOf("__svelte")===-1),i=n.length-r.length;i&&(t.style.animation=r.join(", "),Hc-=i,Hc||fL())}function fL(){Qs(()=>{Hc||($c.forEach(t=>{let{ownerNode:e}=t.stylesheet;e&&ne(e)}),$c.clear())})}v();v();v();v();var Sr;function Xn(t){Sr=t}function CE(){if(!Sr)throw new Error("Function called outside component initialization");return Sr}function Js(t){CE().$$.on_destroy.push(t)}function Er(t,e){let n=t.$$.callbacks[e.type];n&&n.slice().forEach(r=>r.call(this,e))}var ii=[];var Pe=[],wa=[],FE=[],dL=Promise.resolve(),Pp=!1;function ME(){Pp||(Pp=!0,dL.then(zc))}function wt(t){wa.push(t)}var Ip=new Set,va=0;function zc(){if(va!==0)return;let t=Sr;do{try{for(;va<ii.length;){let e=ii[va];va++,Xn(e),hL(e.$$)}}catch(e){throw ii.length=0,va=0,e}for(Xn(null),ii.length=0,va=0;Pe.length;)Pe.pop()();for(let e=0;e<wa.length;e+=1){let n=wa[e];Ip.has(n)||(Ip.add(n),n())}wa.length=0}while(ii.length);for(;FE.length;)FE.pop()();Pp=!1,Ip.clear(),Xn(t)}function hL(t){if(t.fragment!==null){t.update(),Se(t.before_update);let e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(wt)}}function OE(t){let e=[],n=[];wa.forEach(r=>t.indexOf(r)===-1?e.push(r):n.push(r)),n.forEach(r=>r()),wa=e}var eo;function pL(){return eo||(eo=Promise.resolve(),eo.then(()=>{eo=null})),eo}function Rp(t,e,n){t.dispatchEvent(Nc(`${e?"intro":"outro"}${n}`))}var Gc=new Set,Yn;function Ee(){Yn={r:0,c:[],p:Yn}}function ke(){Yn.r||Se(Yn.c),Yn=Yn.p}function G(t,e){t&&t.i&&(Gc.delete(t),t.i(e))}function Z(t,e,n,r){if(t&&t.o){if(Gc.has(t))return;Gc.add(t),Yn.c.push(()=>{Gc.delete(t),r&&(n&&t.d(1),r())}),t.o(e)}else r&&r()}var mL={duration:0};function bt(t,e,n,r){let a=e(t,n,{direction:"both"}),s=r?0:1,o=null,l=null,c=null,u;function f(){c&&Op(t,c)}function d(p,m){let g=p.b-s;return m*=Math.abs(g),{a:s,b:p.b,d:g,duration:m,start:p.start,end:p.start+m,group:p.group}}function h(p){let{delay:m=0,duration:g=300,easing:w=Ks,tick:b=Fe,css:x}=a||mL,E={start:Tp()+m,b:p};p||(E.group=Yn,Yn.r+=1),"inert"in t&&(p?u!==void 0&&(t.inert=u):(u=t.inert,t.inert=!0)),o||l?l=E:(x&&(f(),c=Uc(t,s,p,g,m,w,x)),p&&b(0,1),o=d(E,g),wt(()=>Rp(t,p,"start")),Cp(_=>{if(l&&_>l.start&&(o=d(l,g),l=null,Rp(t,o.b,"start"),x&&(f(),c=Uc(t,s,o.b,o.duration,0,w,a.css))),o){if(_>=o.end)b(s=o.b,1-s),Rp(t,o.b,"end"),l||(o.b?f():--o.group.r||Se(o.group.c)),o=null;else if(_>=o.start){let T=_-o.start;s=o.a+o.d*w(T/o.duration),b(s,1-s)}}return!!(o||l)}))}return{run(p){ga(a)?pL().then(()=>{a=a({direction:p?"in":"out"}),h(p)}):h(p)},end(){f(),o=l=null}}}v();function Ye(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}v();v();v();var gL=["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],yL=new Set([...gL]);v();v();function nt(t){t&&t.c()}function Ke(t,e,n){let{fragment:r,after_update:i}=t.$$;r&&r.m(e,n),wt(()=>{let a=t.$$.on_mount.map(Ap).filter(ga);t.$$.on_destroy?t.$$.on_destroy.push(...a):Se(a),t.$$.on_mount=[]}),i.forEach(wt)}function Qe(t,e){let n=t.$$;n.fragment!==null&&(OE(n.after_update),Se(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function wL(t,e){t.$$.dirty[0]===-1&&(ii.push(t),ME(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function ft(t,e,n,r,i,a,s=null,o=[-1]){let l=Sr;Xn(t);let c=t.$$={fragment:null,ctx:[],props:a,update:Fe,not_equal:i,bound:jc(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(l?l.$$.context:[])),callbacks:jc(),dirty:o,skip_bound:!1,root:e.target||l.$$.root};s&&s(c.root);let u=!1;if(c.ctx=
|
||
|
`:""}${(y=t[0].author)==null?void 0:y.name}
|
||
|
${(0,to.moment)(t[0].date).format(t[3].settings.commitDateFormat)}
|
||
|
${t[0].message}`),A(r,"data-tooltip-position",t[5]),A(n,"class","tree-item nav-folder"),oe(n,"is-collapsed",t[4])},m(y,S){ae(y,e,S),O(e,n),O(n,r),O(r,i),O(r,a),O(r,s),b&&b.m(s,null),O(s,o),x&&x.m(s,null),O(s,l),E&&E.m(s,null),O(s,c),O(s,u),O(u,d),O(n,p),_&&_.m(n,null),m=!0,g||(w=te(r,"click",t[8]),g=!0)},p(y,[S]){var k,C;(!m||S&16)&&oe(i,"is-collapsed",y[4]),y[0].refs.length>0?b?b.p(y,S):(b=$E(y),b.c(),b.m(s,o)):b&&(b.d(1),b=null),y[3].settings.authorInHistoryView!="hide"&&((k=y[0].author)!=null&&k.name)?x?x.p(y,S):(x=HE(y),x.c(),x.m(s,l)):x&&(x.d(1),x=null),y[3].settings.dateInHistoryView?E?E.p(y,S):(E=UE(y),E.c(),E.m(s,c)):E&&(E.d(1),E=null),(!m||S&1)&&f!==(f=y[0].message+"")&&Ie(d,f),(!m||S&9&&h!==(h=`${y[0].refs.length>0?y[0].refs.join(", ")+`
|
||
|
`:""}${(C=y[0].author)==null?void 0:C.name}
|
||
|
${(0,to.moment)(y[0].date).format(y[3].settings.commitDateFormat)}
|
||
|
${y[0].message}`))&&A(r,"aria-label",h),(!m||S&32)&&A(r,"data-tooltip-position",y[5]),y[4]?_&&(Ee(),Z(_,1,1,()=>{_=null}),ke()):_?(_.p(y,S),S&16&&G(_,1)):(_=zE(y),_.c(),G(_,1),_.m(n,null)),(!m||S&16)&&oe(n,"is-collapsed",y[4])},i(y){m||(G(_),m=!0)},o(y){Z(_),m=!1},d(y){y&&ne(e),b&&b.d(),x&&x.d(),E&&E.d(),_&&_.d(),g=!1,w()}}}function IL(t,e,n){let r,i,{log:a}=e,{view:s}=e,{showTree:o}=e,{plugin:l}=e,c=!0;function u(d){let h=d.author.name;if(l.settings.authorInHistoryView=="full")return h;if(l.settings.authorInHistoryView=="initials")return h.split(" ").filter(m=>m.length>0).map(m=>m[0].toUpperCase()).join("")}let f=()=>n(4,c=!c);return t.$$set=d=>{"log"in d&&n(0,a=d.log),"view"in d&&n(1,s=d.view),"showTree"in d&&n(2,o=d.showTree),"plugin"in d&&n(3,l=d.plugin)},t.$$.update=()=>{t.$$.dirty&9&&n(6,r={title:"",path:"",vaultPath:"",children:l.gitManager.getTreeStructure(a.diff.files)}),t.$$.dirty&2&&n(5,i=s.leaf.getRoot().side=="left"?"right":"left")},[a,s,o,l,c,i,r,u,f]}var Dp=class extends Ze{constructor(e){super(),ft(this,e,IL,OL,ut,{log:0,view:1,showTree:2,plugin:3})}},VE=Dp;function WE(t,e,n){let r=t.slice();return r[11]=e[n],r}function qE(t){let e,n,r=Ye(t[6]),i=[];for(let s=0;s<r.length;s+=1)i[s]=XE(WE(t,r,s));let a=s=>Z(i[s],1,1,()=>{i[s]=null});return{c(){e=R("div");for(let s=0;s<i.length;s+=1)i[s].c();A(e,"class","tree-item nav-folder mod-root")},m(s,o){ae(s,e,o);for(let l=0;l<i.length;l+=1)i[l]&&i[l].m(e,null);n=!0},p(s,o){if(o&71){r=Ye(s[6]);let l;for(l=0;l<r.length;l+=1){let c=WE(s,r,l);i[l]?(i[l].p(c,o),G(i[l],1)):(i[l]=XE(c),i[l].c(),G(i[l],1),i[l].m(e,null))}for(Ee(),l=r.length;l<i.length;l+=1)a(l);ke()}},i(s){if(!n){for(let o=0;o<r.length;o+=1)G(i[o]);n=!0}},o(s){i=i.filter(Boolean);for(let o=0;o<i.length;o+=1)Z(i[o]);n=!1},d(s){s&&ne(e),sn(i,s)}}}function XE(t){let e,n;return e=new VE({props:{view:t[1],showTree:t[2],log:t[11],plugin:t[0]}}),{c(){nt(e.$$.fragment)},m(r,i){Ke(e,r,i),n=!0},p(r,i){let a={};i&2&&(a.view=r[1]),i&4&&(a.showTree=r[2]),i&64&&(a.log=r[11]),i&1&&(a.plugin=r[0]),e.$set(a)},i(r){n||(G(e.$$.fragment,r),n=!0)},o(r){Z(e.$$.fragment,r),n=!1},d(r){Qe(e,r)}}}function PL(t){let e,n,r,i,a,s,o,l,c,u,f,d=t[6]&&qE(t);return{c(){e=R("main"),n=R("div"),r=R("div"),i=R("div"),a=J(),s=R("div"),o=J(),l=R("div"),d&&d.c(),A(i,"id","layoutChange"),A(i,"class","clickable-icon nav-action-button"),A(i,"aria-label","Change Layout"),A(s,"id","refresh"),A(s,"class","clickable-icon nav-action-button"),A(s,"data-icon","refresh-cw"),A(s,"aria-label","Refresh"),Xt(s,"margin","1px"),oe(s,"loading",t[4]),A(r,"class","nav-buttons-container"),A(n,"class","nav-header"),A(l,"class","nav-files-container"),Xt(l,"position","relative")},m(h,p){ae(h,e,p),O(e,n),O(n,r),O(r,i),t[7](i),O(r,a),O(r,s),t[9](s),O(e,o),O(e,l),d&&d.m(l,null),c=!0,u||(f=[te(i,"click",t[8]),te(s,"click",RL)],u=!0)},p(h,[p]){(!c||p&16)&&oe(s,"loading",h[4]),h[6]?d?(d.p(h,p),p&64&&G(d,1)):(d=qE(h),d.c(),G(d,1),d.m(l,null)):d&&(Ee(),Z(d,1,1,()=>{d=null}),ke())},i(h){c||(G(d),c=!0)},o(h){Z(d),c=!1},d(h){h&&ne(e),t[7](null),t[9](null),d&&d.d(),u=!1,Se(f)}}}function RL(){dispatchEvent(new CustomEvent("git-refresh"))}function LL(t,e,n){let{plugin:r}=e,{view:i}=e,a,s=[],o,l=r.settings.treeStructure,c;addEventListener("git-view-refresh",u),u(),r.app.workspace.onLayoutReady(()=>{window.setTimeout(()=>{s.forEach(p=>(0,qc.setIcon)(p,p.getAttr("data-icon"))),(0,qc.setIcon)(c,l?"list":"folder")},0)}),Js(()=>{removeEventListener("git-view-refresh",u)});function u(){return ba(this,void 0,void 0,function*(){if(!r.gitReady){n(6,o=void 0);return}n(4,a=!0);let p=r.gitManager instanceof Oe;n(6,o=yield r.gitManager.log(void 0,!1,p?50:10)),n(4,a=!1)})}function f(p){Pe[p?"unshift":"push"](()=>{c=p,n(3,c)})}let d=()=>{n(2,l=!l),n(0,r.settings.treeStructure=l,r),r.saveSettings()};function h(p){Pe[p?"unshift":"push"](()=>{s[6]=p,n(5,s)})}return t.$$set=p=>{"plugin"in p&&n(0,r=p.plugin),"view"in p&&n(1,i=p.view)},t.$$.update=()=>{t.$$.dirty&12&&c&&(c.empty(),(0,qc.setIcon)(c,l?"list":"folder"))},[r,i,l,c,a,s,o,f,d,h]}var Bp=class extends Ze{constructor(e){super(),ft(this,e,LL,PL,ut,
|
||
|
`+this.gitManager.getRelativeRepoPath(n.path,!0)),this.refresh()}handleFileMenu(n,r,i){this.gitReady&&this.settings.showFileMenu&&r&&(this.settings.showFileMenu&&i=="file-explorer-context-menu"&&(n.addItem(a=>{a.setTitle("Git: Stage").setIcon("plus-circle").setSection("action").onClick(s=>{this.promiseQueue.addTask(async()=>{r instanceof xe.TFile?await this.gitManager.stage(r.path,!0):await this.gitManager.stageAll({dir:this.gitManager.getRelativeRepoPath(r.path,!0)}),this.displayMessage(`Staged ${r.path}`)})})}),n.addItem(a=>{a.setTitle("Git: Unstage").setIcon("minus-circle").setSection("action").onClick(s=>{this.promiseQueue.addTask(async()=>{r instanceof xe.TFile?await this.gitManager.unstage(r.path,!0):await this.gitManager.unstageAll({dir:this.gitManager.getRelativeRepoPath(r.path,!0)}),this.displayMessage(`Unstaged ${r.path}`)})})}),n.addItem(a=>{a.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(s=>{this.addFileToGitignore(r)})})),i=="git-source-control"&&n.addItem(a=>{a.setTitle("Git: Add to .gitignore").setIcon("file-x").setSection("action").onClick(s=>{this.addFileToGitignore(r)})}))}async migrateSettings(){this.settings.mergeOnPull!=null&&(this.settings.syncMethod=this.settings.mergeOnPull?"merge":"rebase",this.settings.mergeOnPull=void 0,await this.saveSettings()),this.settings.autoCommitMessage===void 0&&(this.settings.autoCommitMessage=this.settings.commitMessage,await this.saveSettings()),this.settings.gitPath!=null&&(this.localStorage.setGitPath(this.settings.gitPath),this.settings.gitPath=void 0,await this.saveSettings()),this.settings.username!=null&&(this.localStorage.setPassword(this.settings.username),this.settings.username=void 0,await this.saveSettings())}unloadPlugin(){this.gitReady=!1,dispatchEvent(new CustomEvent("git-refresh")),this.lineAuthoringFeature.deactivateFeature(),this.automaticsManager.unload(),removeEventListener("git-refresh",this.refresh.bind(this)),removeEventListener("git-head-update",this.refreshUpdatedHead.bind(this)),this.app.workspace.offref(this.openEvent),this.app.metadataCache.offref(this.modifyEvent),this.app.metadataCache.offref(this.deleteEvent),this.app.metadataCache.offref(this.createEvent),this.app.metadataCache.offref(this.renameEvent),this.debRefresh.cancel()}async onunload(){this.app.workspace.unregisterHoverLinkSource(ht.type),this.unloadPlugin(),console.log("unloading "+this.manifest.name+" plugin")}async loadSettings(){let n=await this.loadData();n==null&&(n={showedMobileNotice:!0}),this.settings=m2(An,n)}async saveSettings(){var n;(n=this.settingsTab)==null||n.beforeSaveSettings(),await this.saveData(this.settings)}get useSimpleGit(){return xe.Platform.isDesktopApp}async init(){var n;try{this.useSimpleGit?(this.gitManager=new Oe(this),await this.gitManager.setGitInstance()):this.gitManager=new pn(this);let r=await this.gitManager.checkRequirements();switch(r){case"missing-git":this.displayError(`Cannot run git command. Trying to run: '${this.localStorage.getGitPath()||"git"}' .`);break;case"missing-repo":new xe.Notice("Can't find a valid git repository. Please create one via the given command or clone an existing repo.",1e4);break;case"valid":this.gitReady=!0,this.setState(0),this.openEvent=this.app.workspace.on("active-leaf-change",i=>this.handleViewActiveState(i)),this.modifyEvent=this.app.vault.on("modify",()=>{var i;this.debRefresh(),(i=this.autoCommitDebouncer)==null||i.call(this)}),this.deleteEvent=this.app.vault.on("delete",()=>{var i;this.debRefresh(),(i=this.autoCommitDebouncer)==null||i.call(this)}),this.createEvent=this.app.vault.on("create",()=>{var i;this.debRefresh(),(i=this.autoCommitDebouncer)==null||i.call(this)}),this.renameEvent=this.app.vault.on("rename",()=>{var i;this.debRefresh(),(i=this.autoCommitDebouncer)==null||i.call(this)}),this.registerEvent(this.modifyEvent),this.registerEvent(this.deleteEvent),this.registerEvent(this.createEvent),this.registerEvent(this.renameEvent),(n=this.branchBar)==null||n.display(),this.lineAuthoringFeature.conditionallyActivateBySettings(),dispatchEvent(new CustomEvent("gi
|
||
|
# Additional Instructions
|
||
|
I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text.
|
||
|
|
||
|
\`\`\`diff
|
||
|
<<<<<<< HEAD
|
||
|
File changes in local repository
|
||
|
=======
|
||
|
File changes in remote repository
|
||
|
>>>>>>> origin/main
|
||
|
\`\`\``]),this.tools.writeAndOpenFile(r==null?void 0:r.join(`
|
||
|
`))}async editRemotes(){if(!await this.isAllInitialized())return;let n=await this.gitManager.getRemotes(),i=await new ze({options:n,placeholder:"Select or create a new remote by typing its name and selecting it"}).open();if(i){let a=await this.gitManager.getRemoteUrl(i),o=await new ze({initialValue:a}).open();if(o)return await this.gitManager.setRemote(i,o),i}}async selectRemoteBranch(){let n=await this.gitManager.getRemotes(),r;n.length===0&&(r=await this.editRemotes(),r==null&&(n=await this.gitManager.getRemotes()));let i=new ze({options:n,placeholder:"Select or create a new remote by typing its name and selecting it"}),a=r!=null?r:await i.open();if(a){this.displayMessage("Fetching remote branches"),await this.gitManager.fetch(a);let s=await this.gitManager.getRemoteBranches(a);return await new ze({options:s,placeholder:"Select or create a new remote branch by typing its name and selecting it"}).open()}}async removeRemote(){if(!await this.isAllInitialized())return;let n=await this.gitManager.getRemotes(),i=await new ze({options:n,placeholder:"Select a remote"}).open();i&&this.gitManager.removeRemote(i)}handleViewActiveState(n){var a,s;if(!(n!=null&&n.view.getState().file))return;let r=this.app.workspace.getLeavesOfType(ht.type).first(),i=this.app.workspace.getLeavesOfType(fn.type).first();if((a=r==null?void 0:r.view.containerEl.querySelector("div.nav-file-title.is-active"))==null||a.removeClass("is-active"),(s=i==null?void 0:i.view.containerEl.querySelector("div.nav-file-title.is-active"))==null||s.removeClass("is-active"),(n==null?void 0:n.view)instanceof ma){let o=n.view.state.file;this.lastDiffViewState=n.view.getState();let l;r&&n.view.state.staged?l=r.view.containerEl.querySelector(`div.staged div.nav-file-title[data-path='${o}']`):r&&n.view.state.staged===!1&&!n.view.state.hash?l=r.view.containerEl.querySelector(`div.changes div.nav-file-title[data-path='${o}']`):i&&n.view.state.hash&&(l=i.view.containerEl.querySelector(`div.nav-file-title[data-path='${o}']`)),l==null||l.addClass("is-active")}else this.lastDiffViewState=void 0}displayMessage(n,r=4*1e3){var i;(i=this.statusBar)==null||i.displayMessage(n.toLowerCase(),r),this.settings.disablePopups||(!this.settings.disablePopupsForNoChanges||!n.startsWith("No changes"))&&new xe.Notice(n,5*1e3),this.log(n)}displayError(n,r=10*1e3){var i;if(n instanceof cs.UserCanceledError){new xe.Notice("Aborted");return}n=n.toString(),new xe.Notice(n,r),this.log(`error: ${n}`),(i=this.statusBar)==null||i.displayMessage(n.toLowerCase(),r)}log(...n){console.log(`${this.manifest.id}:`,...n)}};
|
||
|
/*! Bundled license information:
|
||
|
|
||
|
ieee754/index.js:
|
||
|
(*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)
|
||
|
|
||
|
buffer/index.js:
|
||
|
(*!
|
||
|
* The buffer module from node.js, for the browser.
|
||
|
*
|
||
|
* @author Feross Aboukhadijeh <https://feross.org>
|
||
|
* @license MIT
|
||
|
*)
|
||
|
|
||
|
safe-buffer/index.js:
|
||
|
(*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
|
||
|
|
||
|
crc-32/crc32.js:
|
||
|
(*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com *)
|
||
|
|
||
|
js-sha256/src/sha256.js:
|
||
|
(**
|
||
|
* [js-sha256]{@link https://github.com/emn178/js-sha256}
|
||
|
*
|
||
|
* @version 0.9.0
|
||
|
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
||
|
* @copyright Chen, Yi-Cyuan 2014-2017
|
||
|
* @license MIT
|
||
|
*)
|
||
|
|
||
|
feather-icons/dist/feather.js:
|
||
|
(*!
|
||
|
Copyright (c) 2016 Jed Watson.
|
||
|
Licensed under the MIT License (MIT), see
|
||
|
http://jedwatson.github.io/classnames
|
||
|
*)
|
||
|
*/
|