@gadgetinc/ggt 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +1 -0
  2. package/dist/{add-RDTHYTCK.js → add-DCE6CV2D.js} +2 -2
  3. package/dist/{chunk-M2OJZLL7.js → chunk-6FBP46EB.js} +6 -6
  4. package/dist/{chunk-M2OJZLL7.js.map → chunk-6FBP46EB.js.map} +2 -2
  5. package/dist/{chunk-NGTOMLDS.js → chunk-AB4I3BMD.js} +2 -2
  6. package/dist/{chunk-TRHAPK2F.js → chunk-BYMG3KOL.js} +2 -2
  7. package/dist/{chunk-JKDJXJKF.js → chunk-BZSAGSV3.js} +2 -2
  8. package/dist/{chunk-RYQWS5BH.js → chunk-CXYA3RFX.js} +2 -2
  9. package/dist/{chunk-LWW4E6P5.js → chunk-DVKNBG4P.js} +35 -28
  10. package/dist/chunk-DVKNBG4P.js.map +7 -0
  11. package/dist/{chunk-457GEPUN.js → chunk-EFU2JNKY.js} +3 -3
  12. package/dist/{chunk-CQLM5U6T.js → chunk-KGOVR5SK.js} +12 -12
  13. package/dist/{chunk-CQLM5U6T.js.map → chunk-KGOVR5SK.js.map} +4 -4
  14. package/dist/{chunk-FLXIAZND.js → chunk-KMCOZJPU.js} +2 -2
  15. package/dist/{chunk-VICN6LTV.js → chunk-OLKWG2EP.js} +3 -3
  16. package/dist/{chunk-5ONACLO6.js → chunk-THZRTDWW.js} +2 -2
  17. package/dist/{context-GN36UFJL.js → context-L5YSPF3X.js} +2 -2
  18. package/dist/deploy-PBJEUYGH.js +25 -0
  19. package/dist/deploy-PBJEUYGH.js.map +7 -0
  20. package/dist/{dev-5UFCKF4X.js → dev-OT7PEKUN.js} +2 -2
  21. package/dist/{list-WGRXHV2B.js → list-CC5PICEF.js} +2 -2
  22. package/dist/login-SE7XIHRW.js +2 -0
  23. package/dist/{logout-YXDH5ZZI.js → logout-B3YAZN6R.js} +2 -2
  24. package/dist/main.js +1 -1
  25. package/dist/{open-EOH3Q5KP.js → open-OVK3YL4O.js} +2 -2
  26. package/dist/{pull-UAKKKJJP.js → pull-SLPBOP6Z.js} +2 -2
  27. package/dist/push-3HGVWCKW.js +2 -0
  28. package/dist/{status-UJUGP24U.js → status-7GLNL7D5.js} +2 -2
  29. package/dist/user-C34J52UL.js +2 -0
  30. package/dist/{version-VE55GG37.js → version-AUI4NRDS.js} +2 -2
  31. package/dist/{whoami-OAH55L4M.js → whoami-TXO7VJXC.js} +2 -2
  32. package/package.json +1 -1
  33. package/dist/chunk-LWW4E6P5.js.map +0 -7
  34. package/dist/deploy-BAMMI3ZA.js +0 -24
  35. package/dist/deploy-BAMMI3ZA.js.map +0 -7
  36. package/dist/login-5YZOB4XB.js +0 -2
  37. package/dist/push-7X4P2364.js +0 -2
  38. package/dist/user-B2RIDVTH.js +0 -2
  39. /package/dist/{add-RDTHYTCK.js.map → add-DCE6CV2D.js.map} +0 -0
  40. /package/dist/{chunk-NGTOMLDS.js.map → chunk-AB4I3BMD.js.map} +0 -0
  41. /package/dist/{chunk-TRHAPK2F.js.map → chunk-BYMG3KOL.js.map} +0 -0
  42. /package/dist/{chunk-JKDJXJKF.js.map → chunk-BZSAGSV3.js.map} +0 -0
  43. /package/dist/{chunk-RYQWS5BH.js.map → chunk-CXYA3RFX.js.map} +0 -0
  44. /package/dist/{chunk-457GEPUN.js.map → chunk-EFU2JNKY.js.map} +0 -0
  45. /package/dist/{chunk-FLXIAZND.js.map → chunk-KMCOZJPU.js.map} +0 -0
  46. /package/dist/{chunk-VICN6LTV.js.map → chunk-OLKWG2EP.js.map} +0 -0
  47. /package/dist/{chunk-5ONACLO6.js.map → chunk-THZRTDWW.js.map} +0 -0
  48. /package/dist/{context-GN36UFJL.js.map → context-L5YSPF3X.js.map} +0 -0
  49. /package/dist/{dev-5UFCKF4X.js.map → dev-OT7PEKUN.js.map} +0 -0
  50. /package/dist/{list-WGRXHV2B.js.map → list-CC5PICEF.js.map} +0 -0
  51. /package/dist/{login-5YZOB4XB.js.map → login-SE7XIHRW.js.map} +0 -0
  52. /package/dist/{logout-YXDH5ZZI.js.map → logout-B3YAZN6R.js.map} +0 -0
  53. /package/dist/{open-EOH3Q5KP.js.map → open-OVK3YL4O.js.map} +0 -0
  54. /package/dist/{pull-UAKKKJJP.js.map → pull-SLPBOP6Z.js.map} +0 -0
  55. /package/dist/{push-7X4P2364.js.map → push-3HGVWCKW.js.map} +0 -0
  56. /package/dist/{status-UJUGP24U.js.map → status-7GLNL7D5.js.map} +0 -0
  57. /package/dist/{user-B2RIDVTH.js.map → user-C34J52UL.js.map} +0 -0
  58. /package/dist/{version-VE55GG37.js.map → version-AUI4NRDS.js.map} +0 -0
  59. /package/dist/{whoami-OAH55L4M.js.map → whoami-TXO7VJXC.js.map} +0 -0
@@ -1,6 +1,6 @@
1
- import{b as ht,e as bt,h as Et,j as xe,k as ee,l as At}from"./chunk-RYQWS5BH.js";import{a as dt,b as St}from"./chunk-5ONACLO6.js";import{a as nt,c as xt}from"./chunk-NGTOMLDS.js";import{b as $}from"./chunk-JKDJXJKF.js";import{g as be}from"./chunk-M2OJZLL7.js";import{h as Mt}from"./chunk-457GEPUN.js";import{b as mt,c as ft}from"./chunk-FLXIAZND.js";import{a as Ar,c as Mr,d as w,g as gt,m as Ee}from"./chunk-VICN6LTV.js";import{$ as R,A as he,B as ut,E as Ir,G as pt,H as Z,K as ct,Y as yt,Z as g,_ as N,b,g as rt,n as at,p as fe,q as ot,r as st,s as it,w as lt,x as k}from"./chunk-CQLM5U6T.js";import{a as v,c as x,e as F,g as l}from"./chunk-5WC5D4WL.js";var Vt=x((fs,Lt)=>{l();Lt.exports=Gt;Gt.sync=wr;var kt=v("fs");function Rr(e,t){var n=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!n||(n=n.split(";"),n.indexOf("")!==-1))return!0;for(var r=0;r<n.length;r++){var a=n[r].toLowerCase();if(a&&e.substr(-a.length).toLowerCase()===a)return!0}return!1}function Nt(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:Rr(t,n)}function Gt(e,t,n){kt.stat(e,function(r,a){n(r,r?!1:Nt(a,e,t))})}function wr(e,t){return Nt(kt.statSync(e),e,t)}});var Qt=x((bs,$t)=>{l();$t.exports=Ht;Ht.sync=Pr;var Dt=v("fs");function Ht(e,t,n){Dt.stat(e,function(r,a){n(r,r?!1:Ut(a,t))})}function Pr(e,t){return Ut(Dt.statSync(e),t)}function Ut(e,t){return e.isFile()&&Or(e,t)}function Or(e,t){var n=e.mode,r=e.uid,a=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),s=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),i=parseInt("100",8),u=parseInt("010",8),p=parseInt("001",8),c=i|u,y=n&p||n&u&&a===s||n&i&&r===o||n&c&&o===0;return y}});var Jt=x((As,jt)=>{l();var xs=v("fs"),re;process.platform==="win32"||global.TESTING_WINDOWS?re=Vt():re=Qt();jt.exports=Ie;Ie.sync=Br;function Ie(e,t,n){if(typeof t=="function"&&(n=t,t={}),!n){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,a){Ie(e,t||{},function(o,s){o?a(o):r(s)})})}re(e,t||{},function(r,a){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,a=!1),n(r,a)})}function Br(e,t){try{return re.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var Zt=x((Is,Xt)=>{l();var V=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Wt=v("path"),kr=V?";":":",qt=Jt(),Yt=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),zt=(e,t)=>{let n=t.colon||kr,r=e.match(/\//)||V&&e.match(/\\/)?[""]:[...V?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],a=V?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=V?a.split(n):[""];return V&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:r,pathExt:o,pathExtExe:a}},Kt=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:a,pathExtExe:o}=zt(e,t),s=[],i=p=>new Promise((c,y)=>{if(p===r.length)return t.all&&s.length?c(s):y(Yt(e));let d=r[p],S=/^".*"$/.test(d)?d.slice(1,-1):d,f=Wt.join(S,e),h=!S&&/^\.[\\\/]/.test(e)?e.slice(0,2)+f:f;c(u(h,p,0))}),u=(p,c,y)=>new Promise((d,S)=>{if(y===a.length)return d(i(c+1));let f=a[y];qt(p+f,{pathExt:o},(h,m)=>{if(!h&&m)if(t.all)s.push(p+f);else return d(p+f);return d(u(p,c,y+1))})});return n?i(0).then(p=>n(null,p),n):i(0)},Nr=(e,t)=>{t=t||{};let{pathEnv:n,pathExt:r,pathExtExe:a}=zt(e,t),o=[];for(let s=0;s<n.length;s++){let i=n[s],u=/^".*"$/.test(i)?i.slice(1,-1):i,p=Wt.join(u,e),c=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+p:p;for(let y=0;y<r.length;y++){let d=c+r[y];try{if(qt.sync(d,{pathExt:a}))if(t.all)o.push(d);else return d}catch{}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw Yt(e)};Xt.exports=Kt;Kt.sync=Nr});var tn=x((_s,Ce)=>{"use strict";l();var en=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};Ce.exports=en;Ce.exports.default=en});var on=x((vs,an)=>{"use strict";l();var nn=v("path"),Gr=Zt(),Lr=tn();function rn(e,t){let n=e.options.env||process.env,r=process.cwd(),a=e.options.cwd!=null,o=a&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let s;try{s=Gr.sync(e.command,{path:n[Lr({env:n})],pathExt:t?nn.delimiter:void 0})}catch{}finally{o&&process.chdir(r)}return s&&(s=nn.resolve(a?e.options.cwd:"",s)),s}function Vr(e){return rn(e)||rn(e,!0)}an.exports=Vr});var sn=x((Rs,Te)=>{"use strict";l();var _e=/([()\][%!^"`<>&|;, *?])/g;function Dr(e){return e=e.replace(_e,"^$1"),e}function Hr(e,t){return e=`${e}`,e=e.replace(/(\\*)"/g,'$1$1\\"'),e=e.replace(/(\\*)$/,"$1$1"),e=`"${e}"`,e=e.replace(_e,"^$1"),t&&(e=e.replace(_e,"^$1")),e}Te.exports.command=Dr;Te.exports.argument=Hr});var un=x((Ps,ln)=>{"use strict";l();ln.exports=/^#!(.*)/});var cn=x((Bs,pn)=>{"use strict";l();var Ur=un();pn.exports=(e="")=>{let t=e.match(Ur);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),a=n.split("/").pop();return a==="env"?r:r?`${a} ${r}`:a}});var dn=x((Ns,yn)=>{"use strict";l();var ve=v("fs"),$r=cn();function Qr(e){let n=Buffer.alloc(150),r;try{r=ve.openSync(e,"r"),ve.readSync(r,n,0,150,0),ve.closeSync(r)}catch{}return $r(n.toString())}yn.exports=Qr});var fn=x((Ls,mn)=>{"use strict";l();var jr=v("path"),Sn=on(),gn=sn(),Jr=dn(),Wr=process.platform==="win32",qr=/\.(?:com|exe)$/i,Yr=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function zr(e){e.file=Sn(e);let t=e.file&&Jr(e.file);return t?(e.args.unshift(e.file),e.command=t,Sn(e)):e.file}function Kr(e){if(!Wr)return e;let t=zr(e),n=!qr.test(t);if(e.options.forceShell||n){let r=Yr.test(t);e.command=jr.normalize(e.command),e.command=gn.command(e.command),e.args=e.args.map(o=>gn.argument(o,r));let a=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${a}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function Xr(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:Kr(r)}mn.exports=Xr});var En=x((Ds,bn)=>{"use strict";l();var Fe=process.platform==="win32";function Re(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function Zr(e,t){if(!Fe)return;let n=e.emit;e.emit=function(r,a){if(r==="exit"){let o=hn(a,t,"spawn");if(o)return n.call(e,"error",o)}return n.apply(e,arguments)}}function hn(e,t){return Fe&&e===1&&!t.file?Re(t.original,"spawn"):null}function ea(e,t){return Fe&&e===1&&!t.file?Re(t.original,"spawnSync"):null}bn.exports={hookChildProcess:Zr,verifyENOENT:hn,verifyENOENTSync:ea,notFoundError:Re}});var Mn=x((Us,D)=>{"use strict";l();var xn=v("child_process"),we=fn(),Pe=En();function An(e,t,n){let r=we(e,t,n),a=xn.spawn(r.command,r.args,r.options);return Pe.hookChildProcess(a,r),a}function ta(e,t,n){let r=we(e,t,n),a=xn.spawnSync(r.command,r.args,r.options);return a.error=a.error||Pe.verifyENOENTSync(a.status,r),a}D.exports=An;D.exports.spawn=An;D.exports.sync=ta;D.exports._parse=we;D.exports._enoent=Pe});var zn=x((ul,Yn)=>{"use strict";l();var{PassThrough:Ka}=v("stream");Yn.exports=function(){var e=[],t=new Ka({objectMode:!0});return t.setMaxListeners(0),t.add=n,t.isEmpty=r,t.on("unpipe",a),Array.prototype.slice.call(arguments).forEach(n),t;function n(o){return Array.isArray(o)?(o.forEach(n),this):(e.push(o),o.once("end",a.bind(null,o)),o.once("error",t.emit.bind(t,"error")),o.pipe(t,{end:!1}),this)}function r(){return e.length==0}function a(o){e=e.filter(function(s){return s!==o}),!e.length&&t.readable&&t.end()}}});var Sr=x((Yl,dr)=>{l();function M(e,t){typeof t=="boolean"&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}dr.exports=M;M.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};M.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};M.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.push(e),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),n=this._cachedTimeouts.slice(-1);else return!1;var r=this;return this._timer=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n),this._options.unref&&this._timer.unref(),!0};M.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};M.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)};M.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)};M.prototype.start=M.prototype.try;M.prototype.errors=function(){return this._errors};M.prototype.attempts=function(){return this._attempts};M.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var a=this._errors[r],o=a.message,s=(e[o]||0)+1;e[o]=s,s>=n&&(t=a,n=s)}return t}});var gr=x(B=>{l();var Ao=Sr();B.operation=function(e){var t=B.timeouts(e);return new Ao(t,{forever:e&&(e.forever||e.retries===1/0),unref:e&&e.unref,maxRetryTime:e&&e.maxRetryTime})};B.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var r=[],a=0;a<t.retries;a++)r.push(this.createTimeout(a,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(a,t)),r.sort(function(o,s){return o-s}),r};B.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*Math.max(t.minTimeout,1)*Math.pow(t.factor,e));return r=Math.min(r,t.maxTimeout),r};B.wrap=function(e,t,n){if(t instanceof Array&&(n=t,t=null),!n){n=[];for(var r in e)typeof e[r]=="function"&&n.push(r)}for(var a=0;a<n.length;a++){var o=n[a],s=e[o];e[o]=function(u){var p=B.operation(t),c=Array.prototype.slice.call(arguments,1),y=c.pop();c.push(function(d){p.retry(d)||(d&&(arguments[0]=p.mainError()),y.apply(this,arguments))}),p.attempt(function(){u.apply(e,c)})}.bind(e,s),e[o].options=t}}});var fr=x((Zl,mr)=>{l();mr.exports=gr()});l();var Q=F(nt(),1);var te=class extends Map{created=k(()=>Array.from(this.entries()).filter(([,t])=>t.type==="create").map(([t])=>t));updated=k(()=>Array.from(this.entries()).filter(([,t])=>t.type==="update").map(([t])=>t));deleted=k(()=>Array.from(this.entries()).filter(([,t])=>t.type==="delete").map(([t])=>t))},Cr=b.greenBright("+"),_r=b.blueBright("\xB1"),Tr=b.redBright("-"),It=b.yellowBright("\u2192"),j=(e,{changes:t,tense:n,limit:r=1/0,...a})=>{Z.logLevel<=ut.TRACE&&(r=1/0);let o=Array.from(t.entries()).filter(([d])=>!d.startsWith(".gadget/"));if(o.length===0)return"";let s=b.yellowBright(n==="past"?"renamed":"rename"),i=b.greenBright(n==="past"?"created":"create"),u=b.blueBright(n==="past"?"updated":"update"),p=b.redBright(n==="past"?"deleted":"delete"),c=o.sort((d,S)=>d[0].localeCompare(S[0])).slice(0,r).map(([d,S])=>{switch(!0){case(S.type==="create"&&rt(S.oldPath)):return[It,b.yellowBright(S.oldPath),s,It,b.yellowBright(d)];case S.type==="create":return[Cr,b.greenBright(d),i];case S.type==="update":return[_r,b.blueBright(d),u];case S.type==="delete":return[Tr,b.redBright(d),p];default:return at(S)}});o.length>r&&c.push([b.gray(w.ellipsis),g`{gray ${o.length-r} more}`,""]);let y;if(o.length>=5){let d=[],S=o.filter(([,m])=>m.type==="create").length;if(S>0){let m=n==="past"?`${S} created`:(0,Q.default)("create",S,!0);d.push(g`{greenBright ${m}}`)}let f=o.filter(([,m])=>m.type==="update").length;if(f>0){let m=n==="past"?`${f} updated`:(0,Q.default)("update",f,!0);d.push(g`{blueBright ${m}}`)}let h=o.filter(([,m])=>m.type==="delete").length;if(h>0){let m=n==="past"?`${h} deleted`:(0,Q.default)("delete",h,!0);d.push(g`{redBright ${m}}`)}y=N`
2
- ${(0,Q.default)("change",o.length,!0)} in total. ${d.join(", ")}.
3
- `}return dt({rows:c,footer:y,ensureEmptyLineAbove:!0,ensureEmptyLineAboveBody:!1,ensureEmptyLineAboveFooter:!0,indent:0,...a})},ne=(e,t)=>{let n=j(e,t);n&&R(n)};l();var Ct=g(`
1
+ import{b as ht,e as bt,h as Et,j as xe,k as ee,l as Mt}from"./chunk-CXYA3RFX.js";import{a as yt,b as St}from"./chunk-THZRTDWW.js";import{a as nt,c as xt}from"./chunk-AB4I3BMD.js";import{b as $}from"./chunk-BZSAGSV3.js";import{g as be}from"./chunk-6FBP46EB.js";import{h as At}from"./chunk-EFU2JNKY.js";import{b as gt,c as ft}from"./chunk-KMCOZJPU.js";import{a as Mr,c as Ar,d as w,g as mt,n as Ee}from"./chunk-OLKWG2EP.js";import{$ as R,A as he,B as ut,E as Ir,G as pt,H as Z,K as ct,Y as dt,Z as m,_ as N,b,g as rt,n as at,p as fe,q as ot,r as st,s as it,w as lt,x as k}from"./chunk-KGOVR5SK.js";import{a as F,c as x,e as v,g as l}from"./chunk-5WC5D4WL.js";var Lt=x((fs,Gt)=>{l();Gt.exports=Dt;Dt.sync=wr;var kt=F("fs");function Rr(e,t){var n=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!n||(n=n.split(";"),n.indexOf("")!==-1))return!0;for(var r=0;r<n.length;r++){var a=n[r].toLowerCase();if(a&&e.substr(-a.length).toLowerCase()===a)return!0}return!1}function Nt(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:Rr(t,n)}function Dt(e,t,n){kt.stat(e,function(r,a){n(r,r?!1:Nt(a,e,t))})}function wr(e,t){return Nt(kt.statSync(e),e,t)}});var Qt=x((bs,$t)=>{l();$t.exports=Ht;Ht.sync=Pr;var Vt=F("fs");function Ht(e,t,n){Vt.stat(e,function(r,a){n(r,r?!1:Ut(a,t))})}function Pr(e,t){return Ut(Vt.statSync(e),t)}function Ut(e,t){return e.isFile()&&Or(e,t)}function Or(e,t){var n=e.mode,r=e.uid,a=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),s=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),i=parseInt("100",8),u=parseInt("010",8),p=parseInt("001",8),c=i|u,d=n&p||n&u&&a===s||n&i&&r===o||n&c&&o===0;return d}});var Jt=x((Ms,jt)=>{l();var xs=F("fs"),re;process.platform==="win32"||global.TESTING_WINDOWS?re=Lt():re=Qt();jt.exports=Ie;Ie.sync=Br;function Ie(e,t,n){if(typeof t=="function"&&(n=t,t={}),!n){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,a){Ie(e,t||{},function(o,s){o?a(o):r(s)})})}re(e,t||{},function(r,a){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,a=!1),n(r,a)})}function Br(e,t){try{return re.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var Zt=x((Is,Xt)=>{l();var L=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Wt=F("path"),kr=L?";":":",qt=Jt(),Yt=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),zt=(e,t)=>{let n=t.colon||kr,r=e.match(/\//)||L&&e.match(/\\/)?[""]:[...L?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],a=L?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=L?a.split(n):[""];return L&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:r,pathExt:o,pathExtExe:a}},Kt=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:a,pathExtExe:o}=zt(e,t),s=[],i=p=>new Promise((c,d)=>{if(p===r.length)return t.all&&s.length?c(s):d(Yt(e));let y=r[p],S=/^".*"$/.test(y)?y.slice(1,-1):y,f=Wt.join(S,e),h=!S&&/^\.[\\\/]/.test(e)?e.slice(0,2)+f:f;c(u(h,p,0))}),u=(p,c,d)=>new Promise((y,S)=>{if(d===a.length)return y(i(c+1));let f=a[d];qt(p+f,{pathExt:o},(h,g)=>{if(!h&&g)if(t.all)s.push(p+f);else return y(p+f);return y(u(p,c,d+1))})});return n?i(0).then(p=>n(null,p),n):i(0)},Nr=(e,t)=>{t=t||{};let{pathEnv:n,pathExt:r,pathExtExe:a}=zt(e,t),o=[];for(let s=0;s<n.length;s++){let i=n[s],u=/^".*"$/.test(i)?i.slice(1,-1):i,p=Wt.join(u,e),c=!u&&/^\.[\\\/]/.test(e)?e.slice(0,2)+p:p;for(let d=0;d<r.length;d++){let y=c+r[d];try{if(qt.sync(y,{pathExt:a}))if(t.all)o.push(y);else return y}catch{}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw Yt(e)};Xt.exports=Kt;Kt.sync=Nr});var tn=x((Cs,_e)=>{"use strict";l();var en=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};_e.exports=en;_e.exports.default=en});var on=x((Fs,an)=>{"use strict";l();var nn=F("path"),Dr=Zt(),Gr=tn();function rn(e,t){let n=e.options.env||process.env,r=process.cwd(),a=e.options.cwd!=null,o=a&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let s;try{s=Dr.sync(e.command,{path:n[Gr({env:n})],pathExt:t?nn.delimiter:void 0})}catch{}finally{o&&process.chdir(r)}return s&&(s=nn.resolve(a?e.options.cwd:"",s)),s}function Lr(e){return rn(e)||rn(e,!0)}an.exports=Lr});var sn=x((Rs,Te)=>{"use strict";l();var Ce=/([()\][%!^"`<>&|;, *?])/g;function Vr(e){return e=e.replace(Ce,"^$1"),e}function Hr(e,t){return e=`${e}`,e=e.replace(/(\\*)"/g,'$1$1\\"'),e=e.replace(/(\\*)$/,"$1$1"),e=`"${e}"`,e=e.replace(Ce,"^$1"),t&&(e=e.replace(Ce,"^$1")),e}Te.exports.command=Vr;Te.exports.argument=Hr});var un=x((Ps,ln)=>{"use strict";l();ln.exports=/^#!(.*)/});var cn=x((Bs,pn)=>{"use strict";l();var Ur=un();pn.exports=(e="")=>{let t=e.match(Ur);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),a=n.split("/").pop();return a==="env"?r:r?`${a} ${r}`:a}});var yn=x((Ns,dn)=>{"use strict";l();var Fe=F("fs"),$r=cn();function Qr(e){let n=Buffer.alloc(150),r;try{r=Fe.openSync(e,"r"),Fe.readSync(r,n,0,150,0),Fe.closeSync(r)}catch{}return $r(n.toString())}dn.exports=Qr});var fn=x((Gs,gn)=>{"use strict";l();var jr=F("path"),Sn=on(),mn=sn(),Jr=yn(),Wr=process.platform==="win32",qr=/\.(?:com|exe)$/i,Yr=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function zr(e){e.file=Sn(e);let t=e.file&&Jr(e.file);return t?(e.args.unshift(e.file),e.command=t,Sn(e)):e.file}function Kr(e){if(!Wr)return e;let t=zr(e),n=!qr.test(t);if(e.options.forceShell||n){let r=Yr.test(t);e.command=jr.normalize(e.command),e.command=mn.command(e.command),e.args=e.args.map(o=>mn.argument(o,r));let a=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${a}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function Xr(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:Kr(r)}gn.exports=Xr});var En=x((Vs,bn)=>{"use strict";l();var ve=process.platform==="win32";function Re(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function Zr(e,t){if(!ve)return;let n=e.emit;e.emit=function(r,a){if(r==="exit"){let o=hn(a,t,"spawn");if(o)return n.call(e,"error",o)}return n.apply(e,arguments)}}function hn(e,t){return ve&&e===1&&!t.file?Re(t.original,"spawn"):null}function ea(e,t){return ve&&e===1&&!t.file?Re(t.original,"spawnSync"):null}bn.exports={hookChildProcess:Zr,verifyENOENT:hn,verifyENOENTSync:ea,notFoundError:Re}});var An=x((Us,V)=>{"use strict";l();var xn=F("child_process"),we=fn(),Pe=En();function Mn(e,t,n){let r=we(e,t,n),a=xn.spawn(r.command,r.args,r.options);return Pe.hookChildProcess(a,r),a}function ta(e,t,n){let r=we(e,t,n),a=xn.spawnSync(r.command,r.args,r.options);return a.error=a.error||Pe.verifyENOENTSync(a.status,r),a}V.exports=Mn;V.exports.spawn=Mn;V.exports.sync=ta;V.exports._parse=we;V.exports._enoent=Pe});var zn=x((ul,Yn)=>{"use strict";l();var{PassThrough:Ka}=F("stream");Yn.exports=function(){var e=[],t=new Ka({objectMode:!0});return t.setMaxListeners(0),t.add=n,t.isEmpty=r,t.on("unpipe",a),Array.prototype.slice.call(arguments).forEach(n),t;function n(o){return Array.isArray(o)?(o.forEach(n),this):(e.push(o),o.once("end",a.bind(null,o)),o.once("error",t.emit.bind(t,"error")),o.pipe(t,{end:!1}),this)}function r(){return e.length==0}function a(o){e=e.filter(function(s){return s!==o}),!e.length&&t.readable&&t.end()}}});var Sr=x((Yl,yr)=>{l();function A(e,t){typeof t=="boolean"&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}yr.exports=A;A.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)};A.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null};A.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.push(e),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(e);var n=this._timeouts.shift();if(n===void 0)if(this._cachedTimeouts)this._errors.splice(0,this._errors.length-1),n=this._cachedTimeouts.slice(-1);else return!1;var r=this;return this._timer=setTimeout(function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout(function(){r._operationTimeoutCb(r._attempts)},r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)},n),this._options.unref&&this._timer.unref(),!0};A.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var n=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){n._operationTimeoutCb()},n._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};A.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)};A.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)};A.prototype.start=A.prototype.try;A.prototype.errors=function(){return this._errors};A.prototype.attempts=function(){return this._attempts};A.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,n=0,r=0;r<this._errors.length;r++){var a=this._errors[r],o=a.message,s=(e[o]||0)+1;e[o]=s,s>=n&&(t=a,n=s)}return t}});var mr=x(B=>{l();var Mo=Sr();B.operation=function(e){var t=B.timeouts(e);return new Mo(t,{forever:e&&(e.forever||e.retries===1/0),unref:e&&e.unref,maxRetryTime:e&&e.maxRetryTime})};B.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var n in e)t[n]=e[n];if(t.minTimeout>t.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var r=[],a=0;a<t.retries;a++)r.push(this.createTimeout(a,t));return e&&e.forever&&!r.length&&r.push(this.createTimeout(a,t)),r.sort(function(o,s){return o-s}),r};B.createTimeout=function(e,t){var n=t.randomize?Math.random()+1:1,r=Math.round(n*Math.max(t.minTimeout,1)*Math.pow(t.factor,e));return r=Math.min(r,t.maxTimeout),r};B.wrap=function(e,t,n){if(t instanceof Array&&(n=t,t=null),!n){n=[];for(var r in e)typeof e[r]=="function"&&n.push(r)}for(var a=0;a<n.length;a++){var o=n[a],s=e[o];e[o]=function(u){var p=B.operation(t),c=Array.prototype.slice.call(arguments,1),d=c.pop();c.push(function(y){p.retry(y)||(y&&(arguments[0]=p.mainError()),d.apply(this,arguments))}),p.attempt(function(){u.apply(e,c)})}.bind(e,s),e[o].options=t}}});var fr=x((Zl,gr)=>{l();gr.exports=mr()});l();var Q=v(nt(),1);var te=class extends Map{created=k(()=>Array.from(this.entries()).filter(([,t])=>t.type==="create").map(([t])=>t));updated=k(()=>Array.from(this.entries()).filter(([,t])=>t.type==="update").map(([t])=>t));deleted=k(()=>Array.from(this.entries()).filter(([,t])=>t.type==="delete").map(([t])=>t))},_r=b.greenBright("+"),Cr=b.blueBright("\xB1"),Tr=b.redBright("-"),It=b.yellowBright("\u2192"),j=(e,{changes:t,tense:n,limit:r=1/0,...a})=>{Z.logLevel<=ut.TRACE&&(r=1/0);let o=Array.from(t.entries()).filter(([y])=>!y.startsWith(".gadget/"));if(o.length===0)return"";let s=b.yellowBright(n==="past"?"renamed":"rename"),i=b.greenBright(n==="past"?"created":"create"),u=b.blueBright(n==="past"?"updated":"update"),p=b.redBright(n==="past"?"deleted":"delete"),c=o.sort((y,S)=>y[0].localeCompare(S[0])).slice(0,r).map(([y,S])=>{switch(!0){case(S.type==="create"&&rt(S.oldPath)):return[It,b.yellowBright(S.oldPath),s,It,b.yellowBright(y)];case S.type==="create":return[_r,b.greenBright(y),i];case S.type==="update":return[Cr,b.blueBright(y),u];case S.type==="delete":return[Tr,b.redBright(y),p];default:return at(S)}});o.length>r&&c.push([b.gray(w.ellipsis),m`{gray ${o.length-r} more}`,""]);let d;if(o.length>=5){let y=[],S=o.filter(([,g])=>g.type==="create").length;if(S>0){let g=n==="past"?`${S} created`:(0,Q.default)("create",S,!0);y.push(m`{greenBright ${g}}`)}let f=o.filter(([,g])=>g.type==="update").length;if(f>0){let g=n==="past"?`${f} updated`:(0,Q.default)("update",f,!0);y.push(m`{blueBright ${g}}`)}let h=o.filter(([,g])=>g.type==="delete").length;if(h>0){let g=n==="past"?`${h} deleted`:(0,Q.default)("delete",h,!0);y.push(m`{redBright ${g}}`)}d=N`
2
+ ${(0,Q.default)("change",o.length,!0)} in total. ${y.join(", ")}.
3
+ `}return yt({rows:c,footer:d,ensureEmptyLineAbove:!0,ensureEmptyLineAboveBody:!1,ensureEmptyLineAboveFooter:!0,indent:0,...a})},ne=(e,t)=>{let n=j(e,t);n&&R(n)};l();var _t=m(`
4
4
  subscription RemoteFileSyncEvents($localFilesVersion: String!) {
5
5
  remoteFileSyncEvents(localFilesVersion: $localFilesVersion, encoding: base64) {
6
6
  remoteFilesVersion
@@ -15,11 +15,11 @@ import{b as ht,e as bt,h as Et,j as xe,k as ee,l as At}from"./chunk-RYQWS5BH.js"
15
15
  }
16
16
  }
17
17
  }
18
- `),Do=g(`
18
+ `),Vo=m(`
19
19
  query RemoteFilesVersion {
20
20
  remoteFilesVersion
21
21
  }
22
- `),_t=g(`
22
+ `),Ct=m(`
23
23
  mutation PublishFileSyncEvents($input: PublishFileSyncEventsInput!) {
24
24
  publishFileSyncEvents(input: $input) {
25
25
  remoteFilesVersion
@@ -31,7 +31,7 @@ import{b as ht,e as bt,h as Et,j as xe,k as ee,l as At}from"./chunk-RYQWS5BH.js"
31
31
  }
32
32
  }
33
33
  }
34
- `),Tt=g(`
34
+ `),Tt=m(`
35
35
  query FileSyncFiles($paths: [String!]!, $filesVersion: String, $encoding: FileSyncEncoding) {
36
36
  fileSyncFiles(paths: $paths, filesVersion: $filesVersion, encoding: $encoding) {
37
37
  filesVersion
@@ -43,14 +43,14 @@ import{b as ht,e as bt,h as Et,j as xe,k as ee,l as At}from"./chunk-RYQWS5BH.js"
43
43
  }
44
44
  }
45
45
  }
46
- `),vt=g(`
46
+ `),Ft=m(`
47
47
  query FileSyncHashes($filesVersion: String) {
48
48
  fileSyncHashes(filesVersion: $filesVersion) {
49
49
  filesVersion
50
50
  hashes
51
51
  }
52
52
  }
53
- `),Ft=g(`
53
+ `),vt=m(`
54
54
  query FileSyncComparisonHashes($filesVersion: String!) {
55
55
  fileSyncComparisonHashes(filesVersion: $filesVersion) {
56
56
  filesVersionHashes {
@@ -63,9 +63,9 @@ import{b as ht,e as bt,h as Et,j as xe,k as ee,l as At}from"./chunk-RYQWS5BH.js"
63
63
  }
64
64
  }
65
65
  }
66
- `),Ho=g(`
67
- subscription PublishStatus($localFilesVersion: String!, $force: Boolean, $allowCharges: Boolean) {
68
- publishStatus(localFilesVersion: $localFilesVersion, force: $force, allowCharges: $allowCharges) {
66
+ `),Ho=m(`
67
+ subscription PublishStatus($localFilesVersion: String!, $force: Boolean, $allowCharges: Boolean, $allowDeletedData: Boolean) {
68
+ publishStatus(localFilesVersion: $localFilesVersion, force: $force, allowCharges: $allowCharges, allowDeletedData: $allowDeletedData) {
69
69
  publishStarted
70
70
  remoteFilesVersion
71
71
  progress
@@ -86,6 +86,13 @@ import{b as ht,e as bt,h as Et,j as xe,k as ee,l as At}from"./chunk-RYQWS5BH.js"
86
86
  identifier
87
87
  }
88
88
  }
89
+ deletedModelsAndFields {
90
+ deletedModels
91
+ deletedModelFields {
92
+ modelIdentifier
93
+ fields
94
+ }
95
+ }
89
96
  status {
90
97
  code
91
98
  message
@@ -93,7 +100,7 @@ import{b as ht,e as bt,h as Et,j as xe,k as ee,l as At}from"./chunk-RYQWS5BH.js"
93
100
  }
94
101
  }
95
102
  }
96
- `),Uo=g(`
103
+ `),Uo=m(`
97
104
  mutation createModel($path: String!, $fields: [CreateModelFieldsInput!]) {
98
105
  createModel(path: $path, fields: $fields) {
99
106
  remoteFilesVersion
@@ -105,7 +112,7 @@ import{b as ht,e as bt,h as Et,j as xe,k as ee,l as At}from"./chunk-RYQWS5BH.js"
105
112
  }
106
113
  }
107
114
  }
108
- `),$o=g(`
115
+ `),$o=m(`
109
116
  mutation createAction($path: String!) {
110
117
  createAction(path: $path) {
111
118
  remoteFilesVersion
@@ -117,7 +124,7 @@ import{b as ht,e as bt,h as Et,j as xe,k as ee,l as At}from"./chunk-RYQWS5BH.js"
117
124
  }
118
125
  }
119
126
  }
120
- `),Qo=g(`
127
+ `),Qo=m(`
121
128
  mutation createRoute($method: String!, $path: String!) {
122
129
  createRoute(method: $method, path: $path) {
123
130
  remoteFilesVersion
@@ -129,7 +136,7 @@ import{b as ht,e as bt,h as Et,j as xe,k as ee,l as At}from"./chunk-RYQWS5BH.js"
129
136
  }
130
137
  }
131
138
  }
132
- `),jo=g(`
139
+ `),jo=m(`
133
140
  mutation createModelFields($path: String!, $fields: [CreateModelFieldsInput!]!) {
134
141
  createModelFields(path: $path, fields: $fields) {
135
142
  remoteFilesVersion
@@ -141,33 +148,33 @@ import{b as ht,e as bt,h as Et,j as xe,k as ee,l as At}from"./chunk-RYQWS5BH.js"
141
148
  }
142
149
  }
143
150
  }
144
- `);l();var wt=F(Mr(),1);l();var Rt=k(lt,e=>(e??="",["true","1"].includes(e.trim().toLowerCase())));var P=()=>!pt.testLike&&Rt(process.env.CI)?new Date().toISOString():b.gray((0,wt.default)().format("hh:mm:ss A"));l();l();import vr from"node:assert";var G=class extends Map{created(){return Array.from(this.entries()).filter(([,t])=>t.type==="create").map(([t])=>t)}updated(){return Array.from(this.entries()).filter(([,t])=>t.type==="update").map(([t])=>t)}deleted(){return Array.from(this.entries()).filter(([,t])=>t.type==="delete").map(([t])=>t)}},L=(e,{from:t,to:n,existing:r,ignore:a})=>{let o=new G,s=Object.keys(n);for(let[i,u]of Object.entries(t)){if(a?.some(c=>i.startsWith(c)))continue;let p=n[i];p?J(i,u,p)||(o.set(i,{type:"update",sourceHash:u,targetHash:p}),e.log.trace("file updated",{path:i,sourceHash:u,targetHash:p})):(!i.endsWith("/")||!s.some(c=>c.startsWith(i)))&&(o.set(i,{type:"delete",sourceHash:u}),e.log.trace("file deleted",{path:i,sourceHash:u}))}for(let i of s)if(!a?.some(u=>i.startsWith(u))&&!t[i]){let u=n[i];vr(u,"targetHash should exist"),o.set(i,{type:"create",targetHash:u}),e.log.trace("file created",{path:i,targetHash:u})}return r?Fr(e,{changes:o,existing:r}):o},Fr=(e,{changes:t,existing:n})=>{let r=new G;for(let[a,o]of t){let s=n[a];if(o.type==="delete"&&!s){e.log.trace("already deleted",{path:a});continue}if(o.type!=="delete"&&s&&J(a,o.targetHash,s)){e.log.trace("already created or updated",{path:a,existingHash:s,targetHash:o.targetHash});continue}r.set(a,o)}return r},J=(e,t,n)=>t.sha1===n.sha1,Pt=(e,t,n)=>{for(let[r,a]of Object.entries(t)){let o=n[r];if(!o||!J(r,a,o))return e.log.debug("hashes are not equal",{path:r,aHash:a,bHash:o}),!1}for(let r of Object.keys(n))if(!t[r])return e.log.debug("hashes are not equal",{path:r,aHash:void 0,bHash:n[r]}),!1;return!0};var Ae=class extends Map{},Ot=({localChanges:e,environmentChanges:t})=>{let n=new Ae;for(let[r,a]of e){let o=t.get(r);o&&(a.type==="delete"&&o.type==="delete"||"targetHash"in a&&"targetHash"in o&&J(r,a.targetHash,o.targetHash)||n.set(r,{localChange:a,gadgetChange:o}))}for(let r of n.keys())r.startsWith(".gadget/")&&n.delete(r);return n},Me=({conflicts:e,changes:t})=>{let n=new G(t);for(let[r]of n)e.has(r)&&n.delete(r);return n},Bt=({conflicts:e})=>{let t=b.greenBright("+ created"),n=b.blueBright("\xB1 updated"),r=b.redBright("- deleted");St({title:"These files have conflicting changes.",ensureEmptyLineAbove:!0,ensureEmptyLineAboveBody:!0,colAligns:["left","center","center"],headers:["","You","Environment"],rows:Array.from(e.entries()).sort((a,o)=>a[0].localeCompare(o[0])).map(([a,{localChange:o,gadgetChange:s}])=>{switch(!0){case(o.type==="create"&&s.type==="create"):return[a,t,t];case(o.type==="create"&&s.type==="update"):return[a,t,n];case(o.type==="create"&&s.type==="delete"):return[a,t,r];case(o.type==="update"&&s.type==="create"):return[a,n,t];case(o.type==="update"&&s.type==="update"):return[a,n,n];case(o.type==="update"&&s.type==="delete"):return[a,n,r];case(o.type==="delete"&&s.type==="create"):return[a,r,t];case(o.type==="delete"&&s.type==="update"):return[a,r,n];default:throw new Error(`Unexpected conflict: ${o.type} vs ${s.type}`)}})})};l();var ds=Object.freeze({CANCEL:"cancel",MERGE:"merge",PUSH:"push",PULL:"pull"}),O=Object.freeze({CANCEL:g`Cancel (Ctrl+C)`,LOCAL:g`Keep {underline local} conflicting changes`,ENVIRONMENT:g`Keep {underline environment}'s conflicting changes`}),Ss=(e,t)=>{if(["local","environment"].includes(e))return O[e.toUpperCase()];if(e==="gadget")return O.ENVIRONMENT;throw new gt(g`
151
+ `);l();var wt=v(Ar(),1);l();var Rt=k(lt,e=>(e??="",["true","1"].includes(e.trim().toLowerCase())));var P=()=>!pt.testLike&&Rt(process.env.CI)?new Date().toISOString():b.gray((0,wt.default)().format("hh:mm:ss A"));l();l();import Fr from"node:assert";var D=class extends Map{created(){return Array.from(this.entries()).filter(([,t])=>t.type==="create").map(([t])=>t)}updated(){return Array.from(this.entries()).filter(([,t])=>t.type==="update").map(([t])=>t)}deleted(){return Array.from(this.entries()).filter(([,t])=>t.type==="delete").map(([t])=>t)}},G=(e,{from:t,to:n,existing:r,ignore:a})=>{let o=new D,s=Object.keys(n);for(let[i,u]of Object.entries(t)){if(a?.some(c=>i.startsWith(c)))continue;let p=n[i];p?J(i,u,p)||(o.set(i,{type:"update",sourceHash:u,targetHash:p}),e.log.trace("file updated",{path:i,sourceHash:u,targetHash:p})):(!i.endsWith("/")||!s.some(c=>c.startsWith(i)))&&(o.set(i,{type:"delete",sourceHash:u}),e.log.trace("file deleted",{path:i,sourceHash:u}))}for(let i of s)if(!a?.some(u=>i.startsWith(u))&&!t[i]){let u=n[i];Fr(u,"targetHash should exist"),o.set(i,{type:"create",targetHash:u}),e.log.trace("file created",{path:i,targetHash:u})}return r?vr(e,{changes:o,existing:r}):o},vr=(e,{changes:t,existing:n})=>{let r=new D;for(let[a,o]of t){let s=n[a];if(o.type==="delete"&&!s){e.log.trace("already deleted",{path:a});continue}if(o.type!=="delete"&&s&&J(a,o.targetHash,s)){e.log.trace("already created or updated",{path:a,existingHash:s,targetHash:o.targetHash});continue}r.set(a,o)}return r},J=(e,t,n)=>t.sha1===n.sha1,Pt=(e,t,n)=>{for(let[r,a]of Object.entries(t)){let o=n[r];if(!o||!J(r,a,o))return e.log.debug("hashes are not equal",{path:r,aHash:a,bHash:o}),!1}for(let r of Object.keys(n))if(!t[r])return e.log.debug("hashes are not equal",{path:r,aHash:void 0,bHash:n[r]}),!1;return!0};var Me=class extends Map{},Ot=({localChanges:e,environmentChanges:t})=>{let n=new Me;for(let[r,a]of e){let o=t.get(r);o&&(a.type==="delete"&&o.type==="delete"||"targetHash"in a&&"targetHash"in o&&J(r,a.targetHash,o.targetHash)||n.set(r,{localChange:a,gadgetChange:o}))}for(let r of n.keys())r.startsWith(".gadget/")&&n.delete(r);return n},Ae=({conflicts:e,changes:t})=>{let n=new D(t);for(let[r]of n)e.has(r)&&n.delete(r);return n},Bt=({conflicts:e})=>{let t=b.greenBright("+ created"),n=b.blueBright("\xB1 updated"),r=b.redBright("- deleted");St({title:"These files have conflicting changes.",ensureEmptyLineAbove:!0,ensureEmptyLineAboveBody:!0,colAligns:["left","center","center"],headers:["","You","Environment"],rows:Array.from(e.entries()).sort((a,o)=>a[0].localeCompare(o[0])).map(([a,{localChange:o,gadgetChange:s}])=>{switch(!0){case(o.type==="create"&&s.type==="create"):return[a,t,t];case(o.type==="create"&&s.type==="update"):return[a,t,n];case(o.type==="create"&&s.type==="delete"):return[a,t,r];case(o.type==="update"&&s.type==="create"):return[a,n,t];case(o.type==="update"&&s.type==="update"):return[a,n,n];case(o.type==="update"&&s.type==="delete"):return[a,n,r];case(o.type==="delete"&&s.type==="create"):return[a,r,t];case(o.type==="delete"&&s.type==="update"):return[a,r,n];default:throw new Error(`Unexpected conflict: ${o.type} vs ${s.type}`)}})})};l();var ys=Object.freeze({CANCEL:"cancel",MERGE:"merge",PUSH:"push",PULL:"pull"}),O=Object.freeze({CANCEL:m`Cancel (Ctrl+C)`,LOCAL:m`Keep {underline local} conflicting changes`,ENVIRONMENT:m`Keep {underline environment}'s conflicting changes`}),Ss=(e,t)=>{if(["local","environment"].includes(e))return O[e.toUpperCase()];if(e==="gadget")return O.ENVIRONMENT;throw new mt(m`
145
152
  ${t} must be {bold local} or {bold environment}
146
153
 
147
154
  {bold EXAMPLES:}
148
155
  ${t}=local
149
156
  ${t}=environment
150
- `)};l();l();var ur=F(Mn(),1);import{Buffer as mo}from"node:buffer";import fo from"node:path";import ze from"node:child_process";import ge from"node:process";l();function Oe(e){let t=typeof e=="string"?`
151
- `:10,n=typeof e=="string"?"\r":13;return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===n&&(e=e.slice(0,-1)),e}l();import oe from"node:process";import W from"node:path";import{fileURLToPath as In}from"node:url";l();function ae(e={}){let{env:t=process.env,platform:n=process.platform}=e;return n!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"}var na=({cwd:e=oe.cwd(),path:t=oe.env[ae()],preferLocal:n=!0,execPath:r=oe.execPath,addExecPath:a=!0}={})=>{let o=e instanceof URL?In(e):e,s=W.resolve(o),i=[];return n&&ra(i,s),a&&aa(i,r,s),[...i,t].join(W.delimiter)},ra=(e,t)=>{let n;for(;n!==t;)e.push(W.join(t,"node_modules/.bin")),n=t,t=W.resolve(t,"..")},aa=(e,t,n)=>{let r=t instanceof URL?In(t):t;e.push(W.resolve(n,r,".."))},Cn=({env:e=oe.env,...t}={})=>{e={...e};let n=ae({env:e});return t.path=e[n],e[n]=na(t),e};l();l();var oa=(e,t,n,r)=>{if(n==="length"||n==="prototype"||n==="arguments"||n==="caller")return;let a=Object.getOwnPropertyDescriptor(e,n),o=Object.getOwnPropertyDescriptor(t,n);!sa(a,o)&&r||Object.defineProperty(e,n,o)},sa=function(e,t){return e===void 0||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value)},ia=(e,t)=>{let n=Object.getPrototypeOf(t);n!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,n)},la=(e,t)=>`/* Wrapped ${e}*/
152
- ${t}`,ua=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),pa=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),ca=(e,t,n)=>{let r=n===""?"":`with ${n.trim()}() `,a=la.bind(null,r,t.toString());Object.defineProperty(a,"name",pa),Object.defineProperty(e,"toString",{...ua,value:a})};function Be(e,t,{ignoreNonConfigurable:n=!1}={}){let{name:r}=e;for(let a of Reflect.ownKeys(t))oa(e,t,a,n);return ia(e,t),ca(e,t,r),e}var se=new WeakMap,_n=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let n,r=0,a=e.displayName||e.name||"<anonymous>",o=function(...s){if(se.set(o,++r),r===1)n=e.apply(this,s),e=null;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return n};return Be(o,e),se.set(o,r),o};_n.callCount=e=>{if(!se.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return se.get(e)};var Tn=_n;l();import xa from"node:process";l();import{constants as ga}from"node:os";l();var vn=()=>{let e=Rn-Fn+1;return Array.from({length:e},ya)},ya=(e,t)=>({name:`SIGRT${t+1}`,number:Fn+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),Fn=34,Rn=64;l();import{constants as da}from"node:os";l();var wn=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];var ke=()=>{let e=vn();return[...wn,...e].map(Sa)},Sa=({name:e,number:t,description:n,action:r,forced:a=!1,standard:o})=>{let{signals:{[e]:s}}=da,i=s!==void 0;return{name:e,number:i?s:t,description:n,supported:i,action:r,forced:a,standard:o}};var ma=()=>{let e=ke();return Object.fromEntries(e.map(fa))},fa=({name:e,number:t,description:n,supported:r,action:a,forced:o,standard:s})=>[e,{name:e,number:t,description:n,supported:r,action:a,forced:o,standard:s}],Pn=ma(),ha=()=>{let e=ke(),t=65,n=Array.from({length:t},(r,a)=>ba(a,e));return Object.assign({},...n)},ba=(e,t)=>{let n=Ea(e,t);if(n===void 0)return{};let{name:r,description:a,supported:o,action:s,forced:i,standard:u}=n;return{[e]:{name:r,number:e,description:a,supported:o,action:s,forced:i,standard:u}}},Ea=(e,t)=>{let n=t.find(({name:r})=>ga.signals[r]===e);return n!==void 0?n:t.find(r=>r.number===e)},mi=ha();var Aa=({timedOut:e,timeout:t,errorCode:n,signal:r,signalDescription:a,exitCode:o,isCanceled:s})=>e?`timed out after ${t} milliseconds`:s?"was canceled":n!==void 0?`failed with ${n}`:r!==void 0?`was killed with ${r} (${a})`:o!==void 0?`failed with exit code ${o}`:"failed",q=({stdout:e,stderr:t,all:n,error:r,signal:a,exitCode:o,command:s,escapedCommand:i,timedOut:u,isCanceled:p,killed:c,parsed:{options:{timeout:y,cwd:d=xa.cwd()}}})=>{o=o===null?void 0:o,a=a===null?void 0:a;let S=a===void 0?void 0:Pn[a].description,f=r&&r.code,m=`Command ${Aa({timedOut:u,timeout:y,errorCode:f,signal:a,signalDescription:S,exitCode:o,isCanceled:p})}: ${s}`,A=Object.prototype.toString.call(r)==="[object Error]",E=A?`${m}
153
- ${r.message}`:m,C=[E,t,e].filter(Boolean).join(`
154
- `);return A?(r.originalMessage=r.message,r.message=C):r=new Error(C),r.shortMessage=E,r.command=s,r.escapedCommand=i,r.exitCode=o,r.signal=a,r.signalDescription=S,r.stdout=e,r.stderr=t,r.cwd=d,n!==void 0&&(r.all=n),"bufferedData"in r&&delete r.bufferedData,r.failed=!0,r.timedOut=!!u,r.isCanceled=p,r.killed=c&&!u,r};l();var ie=["stdin","stdout","stderr"],Ma=e=>ie.some(t=>e[t]!==void 0),On=e=>{if(!e)return;let{stdio:t}=e;if(t===void 0)return ie.map(r=>e[r]);if(Ma(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${ie.map(r=>`\`${r}\``).join(", ")}`);if(typeof t=="string")return t;if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);let n=Math.max(t.length,ie.length);return Array.from({length:n},(r,a)=>t[a])};l();import Ia from"node:os";var Ca=1e3*5,Bn=(e,t="SIGTERM",n={})=>{let r=e(t);return _a(e,t,n,r),r},_a=(e,t,n,r)=>{if(!Ta(t,n,r))return;let a=Fa(n),o=setTimeout(()=>{e("SIGKILL")},a);o.unref&&o.unref()},Ta=(e,{forceKillAfterTimeout:t},n)=>va(e)&&t!==!1&&n,va=e=>e===Ia.constants.signals.SIGTERM||typeof e=="string"&&e.toUpperCase()==="SIGTERM",Fa=({forceKillAfterTimeout:e=!0})=>{if(e===!0)return Ca;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},kn=(e,t)=>{e.kill()&&(t.isCanceled=!0)},Ra=(e,t,n)=>{e.kill(t),n(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},Nn=(e,{timeout:t,killSignal:n="SIGTERM"},r)=>{if(t===0||t===void 0)return r;let a,o=new Promise((i,u)=>{a=setTimeout(()=>{Ra(e,n,u)},t)}),s=r.finally(()=>{clearTimeout(a)});return Promise.race([o,s])},Gn=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},Ln=async(e,{cleanup:t,detached:n},r)=>{if(!t||n)return r;let a=ct(()=>{e.kill()});return r.finally(()=>{a()})};l();import{createWriteStream as wa}from"node:fs";import{ChildProcess as Pa}from"node:child_process";l();function le(e){return e!==null&&typeof e=="object"&&typeof e.pipe=="function"}function Ne(e){return le(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object"}var Oa=e=>e instanceof Pa&&typeof e.then=="function",Ge=(e,t,n)=>{if(typeof n=="string")return e[t].pipe(wa(n)),e;if(Ne(n))return e[t].pipe(n),e;if(!Oa(n))throw new TypeError("The second argument must be a string, a stream or an Execa child process.");if(!Ne(n.stdin))throw new TypeError("The target child process's stdin must be available.");return e[t].pipe(n.stdin),n},Vn=e=>{e.stdout!==null&&(e.pipeStdout=Ge.bind(void 0,e,"stdout")),e.stderr!==null&&(e.pipeStderr=Ge.bind(void 0,e,"stderr")),e.all!==void 0&&(e.pipeAll=Ge.bind(void 0,e,"all"))};l();import{createReadStream as Xa,readFileSync as Za}from"node:fs";import{setTimeout as eo}from"node:timers/promises";l();l();l();var Y=async(e,{init:t,convertChunk:n,getSize:r,truncateChunk:a,addChunk:o,getFinalChunk:s,finalize:i},{maxBuffer:u=Number.POSITIVE_INFINITY}={})=>{if(!ka(e))throw new Error("The first argument must be a Readable, a ReadableStream, or an async iterable.");let p=t();p.length=0;try{for await(let c of e){let y=Na(c),d=n[y](c,p);Un({convertedChunk:d,state:p,getSize:r,truncateChunk:a,addChunk:o,maxBuffer:u})}return Ba({state:p,convertChunk:n,getSize:r,truncateChunk:a,addChunk:o,getFinalChunk:s,maxBuffer:u}),i(p)}catch(c){throw c.bufferedData=i(p),c}},Ba=({state:e,getSize:t,truncateChunk:n,addChunk:r,getFinalChunk:a,maxBuffer:o})=>{let s=a(e);s!==void 0&&Un({convertedChunk:s,state:e,getSize:t,truncateChunk:n,addChunk:r,maxBuffer:o})},Un=({convertedChunk:e,state:t,getSize:n,truncateChunk:r,addChunk:a,maxBuffer:o})=>{let s=n(e),i=t.length+s;if(i<=o){Dn(e,t,a,i);return}let u=r(e,o-t.length);throw u!==void 0&&Dn(u,t,a,o),new ue},Dn=(e,t,n,r)=>{t.contents=n(e,t,r),t.length=r},ka=e=>typeof e=="object"&&e!==null&&typeof e[Symbol.asyncIterator]=="function",Na=e=>{let t=typeof e;if(t==="string")return"string";if(t!=="object"||e===null)return"others";if(globalThis.Buffer?.isBuffer(e))return"buffer";let n=Hn.call(e);return n==="[object ArrayBuffer]"?"arrayBuffer":n==="[object DataView]"?"dataView":Number.isInteger(e.byteLength)&&Number.isInteger(e.byteOffset)&&Hn.call(e.buffer)==="[object ArrayBuffer]"?"typedArray":"others"},{toString:Hn}=Object.prototype,ue=class extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}};l();var Le=e=>e,Ve=()=>{},De=({contents:e})=>e,pe=e=>{throw new Error(`Streams in object mode are not supported: ${String(e)}`)},ce=e=>e.length;l();async function He(e,t){return Y(e,ja,t)}var Ga=()=>({contents:new ArrayBuffer(0)}),La=e=>Va.encode(e),Va=new TextEncoder,$n=e=>new Uint8Array(e),Qn=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),Da=(e,t)=>e.slice(0,t),Ha=(e,{contents:t,length:n},r)=>{let a=Wn()?$a(t,r):Ua(t,r);return new Uint8Array(a).set(e,n),a},Ua=(e,t)=>{if(t<=e.byteLength)return e;let n=new ArrayBuffer(Jn(t));return new Uint8Array(n).set(new Uint8Array(e),0),n},$a=(e,t)=>{if(t<=e.maxByteLength)return e.resize(t),e;let n=new ArrayBuffer(t,{maxByteLength:Jn(t)});return new Uint8Array(n).set(new Uint8Array(e),0),n},Jn=e=>jn**Math.ceil(Math.log(e)/Math.log(jn)),jn=2,Qa=({contents:e,length:t})=>Wn()?e:e.slice(0,t),Wn=()=>"resize"in ArrayBuffer.prototype,ja={init:Ga,convertChunk:{string:La,buffer:$n,arrayBuffer:$n,dataView:Qn,typedArray:Qn,others:pe},getSize:ce,truncateChunk:Da,addChunk:Ha,getFinalChunk:Ve,finalize:Qa};l();async function ye(e,t){if(!("Buffer"in globalThis))throw new Error("getStreamAsBuffer() is only supported in Node.js");try{return qn(await He(e,t))}catch(n){throw n.bufferedData!==void 0&&(n.bufferedData=qn(n.bufferedData)),n}}var qn=e=>globalThis.Buffer.from(e);l();async function Ue(e,t){return Y(e,za,t)}var Ja=()=>({contents:"",textDecoder:new TextDecoder}),de=(e,{textDecoder:t})=>t.decode(e,{stream:!0}),Wa=(e,{contents:t})=>t+e,qa=(e,t)=>e.slice(0,t),Ya=({textDecoder:e})=>{let t=e.decode();return t===""?void 0:t},za={init:Ja,convertChunk:{string:Le,buffer:de,arrayBuffer:de,dataView:de,typedArray:de,others:pe},getSize:ce,truncateChunk:qa,addChunk:Wa,getFinalChunk:Ya,finalize:De};var Kn=F(zn(),1),Xn=e=>{if(e!==void 0)throw new TypeError("The `input` and `inputFile` options cannot be both set.")},to=({input:e,inputFile:t})=>typeof t!="string"?e:(Xn(e),Za(t)),Zn=e=>{let t=to(e);if(le(t))throw new TypeError("The `input` option cannot be a stream in sync mode");return t},no=({input:e,inputFile:t})=>typeof t!="string"?e:(Xn(e),Xa(t)),er=(e,t)=>{let n=no(t);n!==void 0&&(le(n)?n.pipe(e.stdin):e.stdin.end(n))},tr=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let n=(0,Kn.default)();return e.stdout&&n.add(e.stdout),e.stderr&&n.add(e.stderr),n},$e=async(e,t)=>{if(!(!e||t===void 0)){await eo(0),e.destroy();try{return await t}catch(n){return n.bufferedData}}},Qe=(e,{encoding:t,buffer:n,maxBuffer:r})=>{if(!(!e||!n))return t==="utf8"||t==="utf-8"?Ue(e,{maxBuffer:r}):t===null||t==="buffer"?ye(e,{maxBuffer:r}):ro(e,r,t)},ro=async(e,t,n)=>(await ye(e,{maxBuffer:t})).toString(n),nr=async({stdout:e,stderr:t,all:n},{encoding:r,buffer:a,maxBuffer:o},s)=>{let i=Qe(e,{encoding:r,buffer:a,maxBuffer:o}),u=Qe(t,{encoding:r,buffer:a,maxBuffer:o}),p=Qe(n,{encoding:r,buffer:a,maxBuffer:o*2});try{return await Promise.all([s,i,u,p])}catch(c){return Promise.all([{error:c,signal:c.signal,timedOut:c.timedOut},$e(e,i),$e(t,u),$e(n,p)])}};l();var ao=(async()=>{})().constructor.prototype,oo=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(ao,e)]),je=(e,t)=>{for(let[n,r]of oo){let a=typeof t=="function"?(...o)=>Reflect.apply(r.value,t(),o):r.value.bind(t);Reflect.defineProperty(e,n,{...r,value:a})}},rr=e=>new Promise((t,n)=>{e.on("exit",(r,a)=>{t({exitCode:r,signal:a})}),e.on("error",r=>{n(r)}),e.stdin&&e.stdin.on("error",r=>{n(r)})});l();import{Buffer as so}from"node:buffer";import{ChildProcess as io}from"node:child_process";var sr=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],lo=/^[\w.-]+$/,uo=e=>typeof e!="string"||lo.test(e)?e:`"${e.replaceAll('"','\\"')}"`,Je=(e,t)=>sr(e,t).join(" "),We=(e,t)=>sr(e,t).map(n=>uo(n)).join(" "),po=/ +/g;var ar=e=>{let t=typeof e;if(t==="string")return e;if(t==="number")return String(e);if(t==="object"&&e!==null&&!(e instanceof io)&&"stdout"in e){let n=typeof e.stdout;if(n==="string")return e.stdout;if(so.isBuffer(e.stdout))return e.stdout.toString();throw new TypeError(`Unexpected "${n}" stdout in template expression`)}throw new TypeError(`Unexpected "${t}" in template expression`)},or=(e,t,n)=>n||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t[0]}`,...t.slice(1)],co=({templates:e,expressions:t,tokens:n,index:r,template:a})=>{let o=a??e.raw[r],s=o.split(po).filter(Boolean),i=or(n,s,o.startsWith(" "));if(r===t.length)return i;let u=t[r],p=Array.isArray(u)?u.map(c=>ar(c)):[ar(u)];return or(i,p,o.endsWith(" "))},qe=(e,t)=>{let n=[];for(let[r,a]of e.entries())n=co({templates:e,expressions:t,tokens:n,index:r,template:a});return n};l();import{debuglog as yo}from"node:util";import So from"node:process";var ir=yo("execa").enabled,Se=(e,t)=>String(e).padStart(t,"0"),go=()=>{let e=new Date;return`${Se(e.getHours(),2)}:${Se(e.getMinutes(),2)}:${Se(e.getSeconds(),2)}.${Se(e.getMilliseconds(),3)}`},Ye=(e,{verbose:t})=>{t&&So.stderr.write(`[${go()}] ${e}
155
- `)};var ho=1e3*1e3*100,bo=({env:e,extendEnv:t,preferLocal:n,localDir:r,execPath:a})=>{let o=t?{...ge.env,...e}:e;return n?Cn({env:o,cwd:r,execPath:a}):o},pr=(e,t,n={})=>{let r=ur.default._parse(e,t,n);return e=r.command,t=r.args,n=r.options,n={maxBuffer:ho,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:n.cwd||ge.cwd(),execPath:ge.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:ir,...n},n.env=bo(n),n.stdio=On(n),ge.platform==="win32"&&fo.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:n,parsed:r}},z=(e,t,n)=>typeof t!="string"&&!mo.isBuffer(t)?n===void 0?void 0:"":e.stripFinalNewline?Oe(t):t;function Ke(e,t,n){let r=pr(e,t,n),a=Je(e,t),o=We(e,t);Ye(o,r.options),Gn(r.options);let s;try{s=ze.spawn(r.file,r.args,r.options)}catch(S){let f=new ze.ChildProcess,h=Promise.reject(q({error:S,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:r,timedOut:!1,isCanceled:!1,killed:!1}));return je(f,h),f}let i=rr(s),u=Nn(s,r.options,i),p=Ln(s,r.options,u),c={isCanceled:!1};s.kill=Bn.bind(null,s.kill.bind(s)),s.cancel=kn.bind(null,s,c);let d=Tn(async()=>{let[{error:S,exitCode:f,signal:h,timedOut:m},A,E,C]=await nr(s,r.options,p),_=z(r.options,A),T=z(r.options,E),X=z(r.options,C);if(S||f!==0||h!==null){let tt=q({error:S,exitCode:f,signal:h,stdout:_,stderr:T,all:X,command:a,escapedCommand:o,parsed:r,timedOut:m,isCanceled:c.isCanceled||(r.options.signal?r.options.signal.aborted:!1),killed:s.killed});if(!r.options.reject)return tt;throw tt}return{command:a,escapedCommand:o,exitCode:0,stdout:_,stderr:T,all:X,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return er(s,r.options),s.all=tr(s,r.options),Vn(s),je(s,d),s}function Eo(e,t,n){let r=pr(e,t,n),a=Je(e,t),o=We(e,t);Ye(o,r.options);let s=Zn(r.options),i;try{i=ze.spawnSync(r.file,r.args,{...r.options,input:s})}catch(c){throw q({error:c,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:r,timedOut:!1,isCanceled:!1,killed:!1})}let u=z(r.options,i.stdout,i.error),p=z(r.options,i.stderr,i.error);if(i.error||i.status!==0||i.signal!==null){let c=q({stdout:u,stderr:p,error:i.error,signal:i.signal,exitCode:i.status,command:a,escapedCommand:o,parsed:r,timedOut:i.error&&i.error.code==="ETIMEDOUT",isCanceled:!1,killed:i.signal!==null});if(!r.options.reject)return c;throw c}return{command:a,escapedCommand:o,exitCode:0,stdout:u,stderr:p,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}}var xo=({input:e,inputFile:t,stdio:n})=>e===void 0&&t===void 0&&n===void 0?{stdin:"inherit"}:{},lr=(e={})=>({preferLocal:!0,...xo(e),...e});function cr(e){function t(n,...r){if(!Array.isArray(n))return cr({...e,...n});let[a,...o]=qe(n,r);return Ke(a,o,lr(e))}return t.sync=(n,...r)=>{if(!Array.isArray(n))throw new TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[a,...o]=qe(n,r);return Eo(a,o,lr(e))},t}var Ql=cr();var I=F(Ir(),1),xr=F(Ar(),1);import H from"node:assert";import me from"node:path";import _o from"node:process";l();async function K(e,t,{concurrency:n=Number.POSITIVE_INFINITY,stopOnError:r=!0,signal:a}={}){return new Promise((o,s)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!="function")throw new TypeError("Mapper function is required");if(!(Number.isSafeInteger(n)&&n>=1||n===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${n}\` (${typeof n})`);let i=[],u=[],p=new Map,c=!1,y=!1,d=!1,S=0,f=0,h=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),m=E=>{c=!0,y=!0,s(E)};a&&(a.aborted&&m(a.reason),a.addEventListener("abort",()=>{m(a.reason)}));let A=async()=>{if(y)return;let E=await h.next(),C=f;if(f++,E.done){if(d=!0,S===0&&!y){if(!r&&u.length>0){m(new AggregateError(u));return}if(y=!0,p.size===0){o(i);return}let _=[];for(let[T,X]of i.entries())p.get(T)!==yr&&_.push(X);o(_)}return}S++,(async()=>{try{let _=await E.value;if(y)return;let T=await t(_,C);T===yr&&p.set(C,T),i[C]=T,S--,await A()}catch(_){if(r)m(_);else{u.push(_),S--;try{await A()}catch(T){m(T)}}}})()};(async()=>{for(let E=0;E<n;E++){try{await A()}catch(C){m(C);break}if(d||c)break}})()})}var yr=Symbol("skip");l();var br=F(fr(),1);l();var Mo=Object.prototype.toString,Io=e=>Mo.call(e)==="[object Error]",Co=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Load failed","Network request failed","fetch failed","terminated"]);function Xe(e){return e&&Io(e)&&e.name==="TypeError"&&typeof e.message=="string"?e.message==="Load failed"?e.stack===void 0:Co.has(e.message):!1}var Ze=class extends Error{constructor(t){super(),t instanceof Error?(this.originalError=t,{message:t}=t):(this.originalError=new Error(t),this.originalError.stack=this.stack),this.name="AbortError",this.message=t}},hr=(e,t,n)=>{let r=n.retries-(t-1);return e.attemptNumber=t,e.retriesLeft=r,e};async function et(e,t){return new Promise((n,r)=>{t={onFailedAttempt(){},retries:10,shouldRetry:()=>!0,...t};let a=br.default.operation(t),o=()=>{a.stop(),r(t.signal?.reason)};t.signal&&!t.signal.aborted&&t.signal.addEventListener("abort",o,{once:!0});let s=()=>{t.signal?.removeEventListener("abort",o),a.stop()};a.attempt(async i=>{try{let u=await e(i);s(),n(u)}catch(u){try{if(!(u instanceof Error))throw new TypeError(`Non-error was thrown: "${u}". You should only throw errors.`);if(u instanceof Ze)throw u.originalError;if(u instanceof TypeError&&!Xe(u))throw u;if(hr(u,i,t),await t.shouldRetry(u)||(a.stop(),r(u)),await t.onFailedAttempt(u),!a.retry(u))throw a.mainError()}catch(p){hr(p,i,t),s(),r(p)}}})})}var U=F(nt(),1);l();var To=50*1024*1024,Er=class{constructor(t){this.syncJson=t}_syncOperations=new xt({concurrency:1});async hashes(t,n){let r=n?void 0:$({ensureEmptyLineAbove:!0,content:"Calculating file changes."});try{let[a,{localFilesVersionHashes:o,environmentHashes:s,environmentFilesVersion:i}]=await Promise.all([this.syncJson.directory.hashes(),(async()=>{let h,m,A;if(this.syncJson.filesVersion===0n){let{fileSyncHashes:E}=await this.syncJson.edit.query({query:vt});A=BigInt(E.filesVersion),m=E.hashes,h={}}else{let{fileSyncComparisonHashes:E}=await this.syncJson.edit.query({query:Ft,variables:{filesVersion:String(this.syncJson.filesVersion)}});h=E.filesVersionHashes.hashes,m=E.latestFilesVersionHashes.hashes,A=BigInt(E.latestFilesVersionHashes.filesVersion)}return{localFilesVersionHashes:h,environmentHashes:m,environmentFilesVersion:A}})()]),u=Pt(t,a,s),p=L(t,{from:o,to:a,existing:s,ignore:[".gadget/"]}),c=L(t,{from:o,to:s,existing:a});!u&&p.size===0&&c.size===0&&(c=L(t,{from:a,to:s}),H(c.size>0,"expected environmentChanges to have changes"),H(Array.from(c.keys()).every(h=>h.startsWith(".gadget/")),"expected all environmentChanges to be .gadget/ files")),H(u||p.size>0||c.size>0,"there must be changes if hashes don't match");let y=L(t,{from:s,to:a,ignore:[".gadget/"]}),d=L(t,{from:a,to:s}),S=d.size>0&&Array.from(d.keys()).every(h=>h.startsWith(".gadget/")),f=p.size>0&&c.size>0&&!S;return r&&(S?r.clear():u?r.succeed(`Your files are up to date. ${P()}`):r.succeed(`Calculated file changes. ${P()}`)),{inSync:u,localFilesVersionHashes:o,localHashes:a,localChanges:p,localChangesToPush:y,environmentHashes:s,environmentChanges:c,environmentChangesToPull:d,environmentFilesVersion:i,onlyDotGadgetFilesChanged:S,bothChanged:f}}catch(a){throw r&&r.fail(),a}}async print(t,{hashes:n}={}){let{inSync:r,localChanges:a,environmentChanges:o,onlyDotGadgetFilesChanged:s,bothChanged:i}=n??await this.hashes(t);r||(a.size>0?ne(t,{changes:a,tense:"past",title:g`Your local files {underline have} changed.`}):R({ensureEmptyLineAbove:!0,content:g`Your local files {underline have not} changed.`}),o.size>0&&!s?ne(t,{changes:o,tense:"past",title:g`Your environment's files {underline have}${i?" also":""} changed.`}):R({ensureEmptyLineAbove:!0,content:g`Your environment's files {underline have not} changed.`}))}async idle(){await this._syncOperations.onIdle()}async mergeChangesWithEnvironment(t,{changes:n,printLocalChangesOptions:r,printEnvironmentChangesOptions:a}){await this._syncOperations.add(async()=>{try{await this._sendChangesToEnvironment(t,{changes:n,printLocalChangesOptions:r})}catch(o){ee(t,o),await this.merge(t,{printEnvironmentChangesOptions:a})}})}subscribeToEnvironmentChanges(t,{beforeChanges:n=he,printEnvironmentChangesOptions:r,afterChanges:a=he,onError:o}){return this.syncJson.edit.subscribe({subscription:Ct,variables:()=>({localFilesVersion:String(this.syncJson.filesVersion)}),onError:o,onData:({remoteFileSyncEvents:{changed:s,deleted:i,remoteFilesVersion:u}})=>{this._syncOperations.add(async()=>{if(BigInt(u)<this.syncJson.filesVersion){t.log.warn("skipping received changes because files version is outdated",{filesVersion:u});return}t.log.debug("received files",{remoteFilesVersion:u,changed:s.map(y=>y.path),deleted:i.map(y=>y.path)});let p=y=>{let d=this.syncJson.directory.ignores(y.path);return d&&t.log.warn("skipping received change because file is ignored",{path:y.path}),!d};if(s=s.filter(p),i=i.filter(p),s.length===0&&i.length===0){await this.syncJson.save(u);return}await n({changed:s.map(y=>y.path),deleted:i.map(y=>y.path)});let c=await this.writeToLocalFilesystem(t,{filesVersion:u,files:s,delete:i.map(y=>y.path),printEnvironmentChangesOptions:{tense:"past",ensureEmptyLineAbove:!0,title:N`{greenBright ${w.tick}} Pulled ${(0,U.default)("file",s.length+i.length)}. ${P()}`,limit:5,...r}});await a({changes:c})}).catch(o)}})}async merge(t,{hashes:n,maxAttempts:r=10,printLocalChangesOptions:a,printEnvironmentChangesOptions:o,quietly:s}={}){let i=0;do{if(i===0?n??=await this.hashes(t,s):n=await this.hashes(t,s),n.inSync){this._syncOperations.clear(),t.log.info("filesystem in sync"),await this.syncJson.save(n.environmentFilesVersion);return}i+=1,t.log.info("merging",{attempt:i,...n});try{await this._merge(t,{hashes:n,printLocalChangesOptions:a,printEnvironmentChangesOptions:o})}catch(u){ee(t,u)}}while(i<r);throw new Et(r)}async push(t,{hashes:n,force:r,printLocalChangesOptions:a}={}){let{localChangesToPush:o,environmentChanges:s,environmentFilesVersion:i,onlyDotGadgetFilesChanged:u}=n??await this.hashes(t);H(o.size>0,"cannot push if there are no changes"),!(r??t.args["--force"])&&s.size>0&&!u&&await be({ensureEmptyLineAbove:!0,content:g`Are you sure you want to {underline discard} your environment's changes?`});try{await this._sendChangesToEnvironment(t,{changes:o,expectedFilesVersion:i,printLocalChangesOptions:a})}catch(p){throw ee(t,p),new Ee(g`
157
+ `)};l();l();var ur=v(An(),1);import{Buffer as go}from"node:buffer";import fo from"node:path";import ze from"node:child_process";import me from"node:process";l();function Oe(e){let t=typeof e=="string"?`
158
+ `:10,n=typeof e=="string"?"\r":13;return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===n&&(e=e.slice(0,-1)),e}l();import oe from"node:process";import W from"node:path";import{fileURLToPath as In}from"node:url";l();function ae(e={}){let{env:t=process.env,platform:n=process.platform}=e;return n!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"}var na=({cwd:e=oe.cwd(),path:t=oe.env[ae()],preferLocal:n=!0,execPath:r=oe.execPath,addExecPath:a=!0}={})=>{let o=e instanceof URL?In(e):e,s=W.resolve(o),i=[];return n&&ra(i,s),a&&aa(i,r,s),[...i,t].join(W.delimiter)},ra=(e,t)=>{let n;for(;n!==t;)e.push(W.join(t,"node_modules/.bin")),n=t,t=W.resolve(t,"..")},aa=(e,t,n)=>{let r=t instanceof URL?In(t):t;e.push(W.resolve(n,r,".."))},_n=({env:e=oe.env,...t}={})=>{e={...e};let n=ae({env:e});return t.path=e[n],e[n]=na(t),e};l();l();var oa=(e,t,n,r)=>{if(n==="length"||n==="prototype"||n==="arguments"||n==="caller")return;let a=Object.getOwnPropertyDescriptor(e,n),o=Object.getOwnPropertyDescriptor(t,n);!sa(a,o)&&r||Object.defineProperty(e,n,o)},sa=function(e,t){return e===void 0||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value)},ia=(e,t)=>{let n=Object.getPrototypeOf(t);n!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,n)},la=(e,t)=>`/* Wrapped ${e}*/
159
+ ${t}`,ua=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),pa=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),ca=(e,t,n)=>{let r=n===""?"":`with ${n.trim()}() `,a=la.bind(null,r,t.toString());Object.defineProperty(a,"name",pa),Object.defineProperty(e,"toString",{...ua,value:a})};function Be(e,t,{ignoreNonConfigurable:n=!1}={}){let{name:r}=e;for(let a of Reflect.ownKeys(t))oa(e,t,a,n);return ia(e,t),ca(e,t,r),e}var se=new WeakMap,Cn=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let n,r=0,a=e.displayName||e.name||"<anonymous>",o=function(...s){if(se.set(o,++r),r===1)n=e.apply(this,s),e=null;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return n};return Be(o,e),se.set(o,r),o};Cn.callCount=e=>{if(!se.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return se.get(e)};var Tn=Cn;l();import xa from"node:process";l();import{constants as ma}from"node:os";l();var Fn=()=>{let e=Rn-vn+1;return Array.from({length:e},da)},da=(e,t)=>({name:`SIGRT${t+1}`,number:vn+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),vn=34,Rn=64;l();import{constants as ya}from"node:os";l();var wn=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];var ke=()=>{let e=Fn();return[...wn,...e].map(Sa)},Sa=({name:e,number:t,description:n,action:r,forced:a=!1,standard:o})=>{let{signals:{[e]:s}}=ya,i=s!==void 0;return{name:e,number:i?s:t,description:n,supported:i,action:r,forced:a,standard:o}};var ga=()=>{let e=ke();return Object.fromEntries(e.map(fa))},fa=({name:e,number:t,description:n,supported:r,action:a,forced:o,standard:s})=>[e,{name:e,number:t,description:n,supported:r,action:a,forced:o,standard:s}],Pn=ga(),ha=()=>{let e=ke(),t=65,n=Array.from({length:t},(r,a)=>ba(a,e));return Object.assign({},...n)},ba=(e,t)=>{let n=Ea(e,t);if(n===void 0)return{};let{name:r,description:a,supported:o,action:s,forced:i,standard:u}=n;return{[e]:{name:r,number:e,description:a,supported:o,action:s,forced:i,standard:u}}},Ea=(e,t)=>{let n=t.find(({name:r})=>ma.signals[r]===e);return n!==void 0?n:t.find(r=>r.number===e)},gi=ha();var Ma=({timedOut:e,timeout:t,errorCode:n,signal:r,signalDescription:a,exitCode:o,isCanceled:s})=>e?`timed out after ${t} milliseconds`:s?"was canceled":n!==void 0?`failed with ${n}`:r!==void 0?`was killed with ${r} (${a})`:o!==void 0?`failed with exit code ${o}`:"failed",q=({stdout:e,stderr:t,all:n,error:r,signal:a,exitCode:o,command:s,escapedCommand:i,timedOut:u,isCanceled:p,killed:c,parsed:{options:{timeout:d,cwd:y=xa.cwd()}}})=>{o=o===null?void 0:o,a=a===null?void 0:a;let S=a===void 0?void 0:Pn[a].description,f=r&&r.code,g=`Command ${Ma({timedOut:u,timeout:d,errorCode:f,signal:a,signalDescription:S,exitCode:o,isCanceled:p})}: ${s}`,M=Object.prototype.toString.call(r)==="[object Error]",E=M?`${g}
160
+ ${r.message}`:g,_=[E,t,e].filter(Boolean).join(`
161
+ `);return M?(r.originalMessage=r.message,r.message=_):r=new Error(_),r.shortMessage=E,r.command=s,r.escapedCommand=i,r.exitCode=o,r.signal=a,r.signalDescription=S,r.stdout=e,r.stderr=t,r.cwd=y,n!==void 0&&(r.all=n),"bufferedData"in r&&delete r.bufferedData,r.failed=!0,r.timedOut=!!u,r.isCanceled=p,r.killed=c&&!u,r};l();var ie=["stdin","stdout","stderr"],Aa=e=>ie.some(t=>e[t]!==void 0),On=e=>{if(!e)return;let{stdio:t}=e;if(t===void 0)return ie.map(r=>e[r]);if(Aa(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${ie.map(r=>`\`${r}\``).join(", ")}`);if(typeof t=="string")return t;if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);let n=Math.max(t.length,ie.length);return Array.from({length:n},(r,a)=>t[a])};l();import Ia from"node:os";var _a=1e3*5,Bn=(e,t="SIGTERM",n={})=>{let r=e(t);return Ca(e,t,n,r),r},Ca=(e,t,n,r)=>{if(!Ta(t,n,r))return;let a=va(n),o=setTimeout(()=>{e("SIGKILL")},a);o.unref&&o.unref()},Ta=(e,{forceKillAfterTimeout:t},n)=>Fa(e)&&t!==!1&&n,Fa=e=>e===Ia.constants.signals.SIGTERM||typeof e=="string"&&e.toUpperCase()==="SIGTERM",va=({forceKillAfterTimeout:e=!0})=>{if(e===!0)return _a;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},kn=(e,t)=>{e.kill()&&(t.isCanceled=!0)},Ra=(e,t,n)=>{e.kill(t),n(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},Nn=(e,{timeout:t,killSignal:n="SIGTERM"},r)=>{if(t===0||t===void 0)return r;let a,o=new Promise((i,u)=>{a=setTimeout(()=>{Ra(e,n,u)},t)}),s=r.finally(()=>{clearTimeout(a)});return Promise.race([o,s])},Dn=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},Gn=async(e,{cleanup:t,detached:n},r)=>{if(!t||n)return r;let a=ct(()=>{e.kill()});return r.finally(()=>{a()})};l();import{createWriteStream as wa}from"node:fs";import{ChildProcess as Pa}from"node:child_process";l();function le(e){return e!==null&&typeof e=="object"&&typeof e.pipe=="function"}function Ne(e){return le(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object"}var Oa=e=>e instanceof Pa&&typeof e.then=="function",De=(e,t,n)=>{if(typeof n=="string")return e[t].pipe(wa(n)),e;if(Ne(n))return e[t].pipe(n),e;if(!Oa(n))throw new TypeError("The second argument must be a string, a stream or an Execa child process.");if(!Ne(n.stdin))throw new TypeError("The target child process's stdin must be available.");return e[t].pipe(n.stdin),n},Ln=e=>{e.stdout!==null&&(e.pipeStdout=De.bind(void 0,e,"stdout")),e.stderr!==null&&(e.pipeStderr=De.bind(void 0,e,"stderr")),e.all!==void 0&&(e.pipeAll=De.bind(void 0,e,"all"))};l();import{createReadStream as Xa,readFileSync as Za}from"node:fs";import{setTimeout as eo}from"node:timers/promises";l();l();l();var Y=async(e,{init:t,convertChunk:n,getSize:r,truncateChunk:a,addChunk:o,getFinalChunk:s,finalize:i},{maxBuffer:u=Number.POSITIVE_INFINITY}={})=>{if(!ka(e))throw new Error("The first argument must be a Readable, a ReadableStream, or an async iterable.");let p=t();p.length=0;try{for await(let c of e){let d=Na(c),y=n[d](c,p);Un({convertedChunk:y,state:p,getSize:r,truncateChunk:a,addChunk:o,maxBuffer:u})}return Ba({state:p,convertChunk:n,getSize:r,truncateChunk:a,addChunk:o,getFinalChunk:s,maxBuffer:u}),i(p)}catch(c){throw c.bufferedData=i(p),c}},Ba=({state:e,getSize:t,truncateChunk:n,addChunk:r,getFinalChunk:a,maxBuffer:o})=>{let s=a(e);s!==void 0&&Un({convertedChunk:s,state:e,getSize:t,truncateChunk:n,addChunk:r,maxBuffer:o})},Un=({convertedChunk:e,state:t,getSize:n,truncateChunk:r,addChunk:a,maxBuffer:o})=>{let s=n(e),i=t.length+s;if(i<=o){Vn(e,t,a,i);return}let u=r(e,o-t.length);throw u!==void 0&&Vn(u,t,a,o),new ue},Vn=(e,t,n,r)=>{t.contents=n(e,t,r),t.length=r},ka=e=>typeof e=="object"&&e!==null&&typeof e[Symbol.asyncIterator]=="function",Na=e=>{let t=typeof e;if(t==="string")return"string";if(t!=="object"||e===null)return"others";if(globalThis.Buffer?.isBuffer(e))return"buffer";let n=Hn.call(e);return n==="[object ArrayBuffer]"?"arrayBuffer":n==="[object DataView]"?"dataView":Number.isInteger(e.byteLength)&&Number.isInteger(e.byteOffset)&&Hn.call(e.buffer)==="[object ArrayBuffer]"?"typedArray":"others"},{toString:Hn}=Object.prototype,ue=class extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}};l();var Ge=e=>e,Le=()=>{},Ve=({contents:e})=>e,pe=e=>{throw new Error(`Streams in object mode are not supported: ${String(e)}`)},ce=e=>e.length;l();async function He(e,t){return Y(e,ja,t)}var Da=()=>({contents:new ArrayBuffer(0)}),Ga=e=>La.encode(e),La=new TextEncoder,$n=e=>new Uint8Array(e),Qn=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),Va=(e,t)=>e.slice(0,t),Ha=(e,{contents:t,length:n},r)=>{let a=Wn()?$a(t,r):Ua(t,r);return new Uint8Array(a).set(e,n),a},Ua=(e,t)=>{if(t<=e.byteLength)return e;let n=new ArrayBuffer(Jn(t));return new Uint8Array(n).set(new Uint8Array(e),0),n},$a=(e,t)=>{if(t<=e.maxByteLength)return e.resize(t),e;let n=new ArrayBuffer(t,{maxByteLength:Jn(t)});return new Uint8Array(n).set(new Uint8Array(e),0),n},Jn=e=>jn**Math.ceil(Math.log(e)/Math.log(jn)),jn=2,Qa=({contents:e,length:t})=>Wn()?e:e.slice(0,t),Wn=()=>"resize"in ArrayBuffer.prototype,ja={init:Da,convertChunk:{string:Ga,buffer:$n,arrayBuffer:$n,dataView:Qn,typedArray:Qn,others:pe},getSize:ce,truncateChunk:Va,addChunk:Ha,getFinalChunk:Le,finalize:Qa};l();async function de(e,t){if(!("Buffer"in globalThis))throw new Error("getStreamAsBuffer() is only supported in Node.js");try{return qn(await He(e,t))}catch(n){throw n.bufferedData!==void 0&&(n.bufferedData=qn(n.bufferedData)),n}}var qn=e=>globalThis.Buffer.from(e);l();async function Ue(e,t){return Y(e,za,t)}var Ja=()=>({contents:"",textDecoder:new TextDecoder}),ye=(e,{textDecoder:t})=>t.decode(e,{stream:!0}),Wa=(e,{contents:t})=>t+e,qa=(e,t)=>e.slice(0,t),Ya=({textDecoder:e})=>{let t=e.decode();return t===""?void 0:t},za={init:Ja,convertChunk:{string:Ge,buffer:ye,arrayBuffer:ye,dataView:ye,typedArray:ye,others:pe},getSize:ce,truncateChunk:qa,addChunk:Wa,getFinalChunk:Ya,finalize:Ve};var Kn=v(zn(),1),Xn=e=>{if(e!==void 0)throw new TypeError("The `input` and `inputFile` options cannot be both set.")},to=({input:e,inputFile:t})=>typeof t!="string"?e:(Xn(e),Za(t)),Zn=e=>{let t=to(e);if(le(t))throw new TypeError("The `input` option cannot be a stream in sync mode");return t},no=({input:e,inputFile:t})=>typeof t!="string"?e:(Xn(e),Xa(t)),er=(e,t)=>{let n=no(t);n!==void 0&&(le(n)?n.pipe(e.stdin):e.stdin.end(n))},tr=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let n=(0,Kn.default)();return e.stdout&&n.add(e.stdout),e.stderr&&n.add(e.stderr),n},$e=async(e,t)=>{if(!(!e||t===void 0)){await eo(0),e.destroy();try{return await t}catch(n){return n.bufferedData}}},Qe=(e,{encoding:t,buffer:n,maxBuffer:r})=>{if(!(!e||!n))return t==="utf8"||t==="utf-8"?Ue(e,{maxBuffer:r}):t===null||t==="buffer"?de(e,{maxBuffer:r}):ro(e,r,t)},ro=async(e,t,n)=>(await de(e,{maxBuffer:t})).toString(n),nr=async({stdout:e,stderr:t,all:n},{encoding:r,buffer:a,maxBuffer:o},s)=>{let i=Qe(e,{encoding:r,buffer:a,maxBuffer:o}),u=Qe(t,{encoding:r,buffer:a,maxBuffer:o}),p=Qe(n,{encoding:r,buffer:a,maxBuffer:o*2});try{return await Promise.all([s,i,u,p])}catch(c){return Promise.all([{error:c,signal:c.signal,timedOut:c.timedOut},$e(e,i),$e(t,u),$e(n,p)])}};l();var ao=(async()=>{})().constructor.prototype,oo=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(ao,e)]),je=(e,t)=>{for(let[n,r]of oo){let a=typeof t=="function"?(...o)=>Reflect.apply(r.value,t(),o):r.value.bind(t);Reflect.defineProperty(e,n,{...r,value:a})}},rr=e=>new Promise((t,n)=>{e.on("exit",(r,a)=>{t({exitCode:r,signal:a})}),e.on("error",r=>{n(r)}),e.stdin&&e.stdin.on("error",r=>{n(r)})});l();import{Buffer as so}from"node:buffer";import{ChildProcess as io}from"node:child_process";var sr=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],lo=/^[\w.-]+$/,uo=e=>typeof e!="string"||lo.test(e)?e:`"${e.replaceAll('"','\\"')}"`,Je=(e,t)=>sr(e,t).join(" "),We=(e,t)=>sr(e,t).map(n=>uo(n)).join(" "),po=/ +/g;var ar=e=>{let t=typeof e;if(t==="string")return e;if(t==="number")return String(e);if(t==="object"&&e!==null&&!(e instanceof io)&&"stdout"in e){let n=typeof e.stdout;if(n==="string")return e.stdout;if(so.isBuffer(e.stdout))return e.stdout.toString();throw new TypeError(`Unexpected "${n}" stdout in template expression`)}throw new TypeError(`Unexpected "${t}" in template expression`)},or=(e,t,n)=>n||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t[0]}`,...t.slice(1)],co=({templates:e,expressions:t,tokens:n,index:r,template:a})=>{let o=a??e.raw[r],s=o.split(po).filter(Boolean),i=or(n,s,o.startsWith(" "));if(r===t.length)return i;let u=t[r],p=Array.isArray(u)?u.map(c=>ar(c)):[ar(u)];return or(i,p,o.endsWith(" "))},qe=(e,t)=>{let n=[];for(let[r,a]of e.entries())n=co({templates:e,expressions:t,tokens:n,index:r,template:a});return n};l();import{debuglog as yo}from"node:util";import So from"node:process";var ir=yo("execa").enabled,Se=(e,t)=>String(e).padStart(t,"0"),mo=()=>{let e=new Date;return`${Se(e.getHours(),2)}:${Se(e.getMinutes(),2)}:${Se(e.getSeconds(),2)}.${Se(e.getMilliseconds(),3)}`},Ye=(e,{verbose:t})=>{t&&So.stderr.write(`[${mo()}] ${e}
162
+ `)};var ho=1e3*1e3*100,bo=({env:e,extendEnv:t,preferLocal:n,localDir:r,execPath:a})=>{let o=t?{...me.env,...e}:e;return n?_n({env:o,cwd:r,execPath:a}):o},pr=(e,t,n={})=>{let r=ur.default._parse(e,t,n);return e=r.command,t=r.args,n=r.options,n={maxBuffer:ho,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:n.cwd||me.cwd(),execPath:me.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:ir,...n},n.env=bo(n),n.stdio=On(n),me.platform==="win32"&&fo.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:n,parsed:r}},z=(e,t,n)=>typeof t!="string"&&!go.isBuffer(t)?n===void 0?void 0:"":e.stripFinalNewline?Oe(t):t;function Ke(e,t,n){let r=pr(e,t,n),a=Je(e,t),o=We(e,t);Ye(o,r.options),Dn(r.options);let s;try{s=ze.spawn(r.file,r.args,r.options)}catch(S){let f=new ze.ChildProcess,h=Promise.reject(q({error:S,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:r,timedOut:!1,isCanceled:!1,killed:!1}));return je(f,h),f}let i=rr(s),u=Nn(s,r.options,i),p=Gn(s,r.options,u),c={isCanceled:!1};s.kill=Bn.bind(null,s.kill.bind(s)),s.cancel=kn.bind(null,s,c);let y=Tn(async()=>{let[{error:S,exitCode:f,signal:h,timedOut:g},M,E,_]=await nr(s,r.options,p),C=z(r.options,M),T=z(r.options,E),X=z(r.options,_);if(S||f!==0||h!==null){let tt=q({error:S,exitCode:f,signal:h,stdout:C,stderr:T,all:X,command:a,escapedCommand:o,parsed:r,timedOut:g,isCanceled:c.isCanceled||(r.options.signal?r.options.signal.aborted:!1),killed:s.killed});if(!r.options.reject)return tt;throw tt}return{command:a,escapedCommand:o,exitCode:0,stdout:C,stderr:T,all:X,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return er(s,r.options),s.all=tr(s,r.options),Ln(s),je(s,y),s}function Eo(e,t,n){let r=pr(e,t,n),a=Je(e,t),o=We(e,t);Ye(o,r.options);let s=Zn(r.options),i;try{i=ze.spawnSync(r.file,r.args,{...r.options,input:s})}catch(c){throw q({error:c,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:r,timedOut:!1,isCanceled:!1,killed:!1})}let u=z(r.options,i.stdout,i.error),p=z(r.options,i.stderr,i.error);if(i.error||i.status!==0||i.signal!==null){let c=q({stdout:u,stderr:p,error:i.error,signal:i.signal,exitCode:i.status,command:a,escapedCommand:o,parsed:r,timedOut:i.error&&i.error.code==="ETIMEDOUT",isCanceled:!1,killed:i.signal!==null});if(!r.options.reject)return c;throw c}return{command:a,escapedCommand:o,exitCode:0,stdout:u,stderr:p,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}}var xo=({input:e,inputFile:t,stdio:n})=>e===void 0&&t===void 0&&n===void 0?{stdin:"inherit"}:{},lr=(e={})=>({preferLocal:!0,...xo(e),...e});function cr(e){function t(n,...r){if(!Array.isArray(n))return cr({...e,...n});let[a,...o]=qe(n,r);return Ke(a,o,lr(e))}return t.sync=(n,...r)=>{if(!Array.isArray(n))throw new TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[a,...o]=qe(n,r);return Eo(a,o,lr(e))},t}var Ql=cr();var I=v(Ir(),1),xr=v(Mr(),1);import H from"node:assert";import ge from"node:path";import Co from"node:process";l();async function K(e,t,{concurrency:n=Number.POSITIVE_INFINITY,stopOnError:r=!0,signal:a}={}){return new Promise((o,s)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!="function")throw new TypeError("Mapper function is required");if(!(Number.isSafeInteger(n)&&n>=1||n===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${n}\` (${typeof n})`);let i=[],u=[],p=new Map,c=!1,d=!1,y=!1,S=0,f=0,h=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),g=E=>{c=!0,d=!0,s(E)};a&&(a.aborted&&g(a.reason),a.addEventListener("abort",()=>{g(a.reason)}));let M=async()=>{if(d)return;let E=await h.next(),_=f;if(f++,E.done){if(y=!0,S===0&&!d){if(!r&&u.length>0){g(new AggregateError(u));return}if(d=!0,p.size===0){o(i);return}let C=[];for(let[T,X]of i.entries())p.get(T)!==dr&&C.push(X);o(C)}return}S++,(async()=>{try{let C=await E.value;if(d)return;let T=await t(C,_);T===dr&&p.set(_,T),i[_]=T,S--,await M()}catch(C){if(r)g(C);else{u.push(C),S--;try{await M()}catch(T){g(T)}}}})()};(async()=>{for(let E=0;E<n;E++){try{await M()}catch(_){g(_);break}if(y||c)break}})()})}var dr=Symbol("skip");l();var br=v(fr(),1);l();var Ao=Object.prototype.toString,Io=e=>Ao.call(e)==="[object Error]",_o=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Load failed","Network request failed","fetch failed","terminated"]);function Xe(e){return e&&Io(e)&&e.name==="TypeError"&&typeof e.message=="string"?e.message==="Load failed"?e.stack===void 0:_o.has(e.message):!1}var Ze=class extends Error{constructor(t){super(),t instanceof Error?(this.originalError=t,{message:t}=t):(this.originalError=new Error(t),this.originalError.stack=this.stack),this.name="AbortError",this.message=t}},hr=(e,t,n)=>{let r=n.retries-(t-1);return e.attemptNumber=t,e.retriesLeft=r,e};async function et(e,t){return new Promise((n,r)=>{t={onFailedAttempt(){},retries:10,shouldRetry:()=>!0,...t};let a=br.default.operation(t),o=()=>{a.stop(),r(t.signal?.reason)};t.signal&&!t.signal.aborted&&t.signal.addEventListener("abort",o,{once:!0});let s=()=>{t.signal?.removeEventListener("abort",o),a.stop()};a.attempt(async i=>{try{let u=await e(i);s(),n(u)}catch(u){try{if(!(u instanceof Error))throw new TypeError(`Non-error was thrown: "${u}". You should only throw errors.`);if(u instanceof Ze)throw u.originalError;if(u instanceof TypeError&&!Xe(u))throw u;if(hr(u,i,t),await t.shouldRetry(u)||(a.stop(),r(u)),await t.onFailedAttempt(u),!a.retry(u))throw a.mainError()}catch(p){hr(p,i,t),s(),r(p)}}})})}var U=v(nt(),1);l();var To=50*1024*1024,Er=class{constructor(t){this.syncJson=t}_syncOperations=new xt({concurrency:1});async hashes(t,n){let r=n?void 0:$({ensureEmptyLineAbove:!0,content:"Calculating file changes."});try{let[a,{localFilesVersionHashes:o,environmentHashes:s,environmentFilesVersion:i}]=await Promise.all([this.syncJson.directory.hashes(),(async()=>{let h,g,M;if(this.syncJson.filesVersion===0n){let{fileSyncHashes:E}=await this.syncJson.edit.query({query:Ft});M=BigInt(E.filesVersion),g=E.hashes,h={}}else{let{fileSyncComparisonHashes:E}=await this.syncJson.edit.query({query:vt,variables:{filesVersion:String(this.syncJson.filesVersion)}});h=E.filesVersionHashes.hashes,g=E.latestFilesVersionHashes.hashes,M=BigInt(E.latestFilesVersionHashes.filesVersion)}return{localFilesVersionHashes:h,environmentHashes:g,environmentFilesVersion:M}})()]),u=Pt(t,a,s),p=G(t,{from:o,to:a,existing:s,ignore:[".gadget/"]}),c=G(t,{from:o,to:s,existing:a});!u&&p.size===0&&c.size===0&&(c=G(t,{from:a,to:s}),H(c.size>0,"expected environmentChanges to have changes"),H(Array.from(c.keys()).every(h=>h.startsWith(".gadget/")),"expected all environmentChanges to be .gadget/ files")),H(u||p.size>0||c.size>0,"there must be changes if hashes don't match");let d=G(t,{from:s,to:a,ignore:[".gadget/"]}),y=G(t,{from:a,to:s}),S=y.size>0&&Array.from(y.keys()).every(h=>h.startsWith(".gadget/")),f=p.size>0&&c.size>0&&!S;return r&&(S?r.clear():u?r.succeed(`Your files are up to date. ${P()}`):r.succeed(`Calculated file changes. ${P()}`)),{inSync:u,localFilesVersionHashes:o,localHashes:a,localChanges:p,localChangesToPush:d,environmentHashes:s,environmentChanges:c,environmentChangesToPull:y,environmentFilesVersion:i,onlyDotGadgetFilesChanged:S,bothChanged:f}}catch(a){throw r&&r.fail(),a}}async print(t,{hashes:n}={}){let{inSync:r,localChanges:a,environmentChanges:o,onlyDotGadgetFilesChanged:s,bothChanged:i}=n??await this.hashes(t);r||(a.size>0?ne(t,{changes:a,tense:"past",title:m`Your local files {underline have} changed.`}):R({ensureEmptyLineAbove:!0,content:m`Your local files {underline have not} changed.`}),o.size>0&&!s?ne(t,{changes:o,tense:"past",title:m`Your environment's files {underline have}${i?" also":""} changed.`}):R({ensureEmptyLineAbove:!0,content:m`Your environment's files {underline have not} changed.`}))}async idle(){await this._syncOperations.onIdle()}async mergeChangesWithEnvironment(t,{changes:n,printLocalChangesOptions:r,printEnvironmentChangesOptions:a}){await this._syncOperations.add(async()=>{try{await this._sendChangesToEnvironment(t,{changes:n,printLocalChangesOptions:r})}catch(o){ee(t,o),await this.merge(t,{printEnvironmentChangesOptions:a})}})}subscribeToEnvironmentChanges(t,{beforeChanges:n=he,printEnvironmentChangesOptions:r,afterChanges:a=he,onError:o}){return this.syncJson.edit.subscribe({subscription:_t,variables:()=>({localFilesVersion:String(this.syncJson.filesVersion)}),onError:o,onData:({remoteFileSyncEvents:{changed:s,deleted:i,remoteFilesVersion:u}})=>{this._syncOperations.add(async()=>{if(BigInt(u)<this.syncJson.filesVersion){t.log.warn("skipping received changes because files version is outdated",{filesVersion:u});return}t.log.debug("received files",{remoteFilesVersion:u,changed:s.map(d=>d.path),deleted:i.map(d=>d.path)});let p=d=>{let y=this.syncJson.directory.ignores(d.path);return y&&t.log.warn("skipping received change because file is ignored",{path:d.path}),!y};if(s=s.filter(p),i=i.filter(p),s.length===0&&i.length===0){await this.syncJson.save(u);return}await n({changed:s.map(d=>d.path),deleted:i.map(d=>d.path)});let c=await this.writeToLocalFilesystem(t,{filesVersion:u,files:s,delete:i.map(d=>d.path),printEnvironmentChangesOptions:{tense:"past",ensureEmptyLineAbove:!0,title:N`{greenBright ${w.tick}} Pulled ${(0,U.default)("file",s.length+i.length)}. ${P()}`,limit:5,...r}});await a({changes:c})}).catch(o)}})}async merge(t,{hashes:n,maxAttempts:r=10,printLocalChangesOptions:a,printEnvironmentChangesOptions:o,quietly:s}={}){let i=0;do{if(i===0?n??=await this.hashes(t,s):n=await this.hashes(t,s),n.inSync){this._syncOperations.clear(),t.log.info("filesystem in sync"),await this.syncJson.save(n.environmentFilesVersion);return}i+=1,t.log.info("merging",{attempt:i,...n});try{await this._merge(t,{hashes:n,printLocalChangesOptions:a,printEnvironmentChangesOptions:o})}catch(u){ee(t,u)}}while(i<r);throw new Et(r)}async push(t,{hashes:n,force:r,printLocalChangesOptions:a}={}){let{localChangesToPush:o,environmentChanges:s,environmentFilesVersion:i,onlyDotGadgetFilesChanged:u}=n??await this.hashes(t);H(o.size>0,"cannot push if there are no changes"),!(r??t.args["--force"])&&s.size>0&&!u&&await be({ensureEmptyLineAbove:!0,content:m`Are you sure you want to {underline discard} your environment's changes?`});try{await this._sendChangesToEnvironment(t,{changes:o,expectedFilesVersion:i,printLocalChangesOptions:a})}catch(p){throw ee(t,p),new Ee(m`
156
163
  Your environment's files have changed since we last checked.
157
164
 
158
- Please re-run "ggt ${Mt(t)}" to see the changes and try again.
159
- `)}}async pull(t,{hashes:n,force:r,printEnvironmentChangesOptions:a}={}){let{localChanges:o,environmentChangesToPull:s,environmentFilesVersion:i}=n??await this.hashes(t);H(s.size>0,"cannot push if there are no changes"),o.size>0&&!(r??t.args["--force"])&&await be(g`
165
+ Please re-run "ggt ${At(t)}" to see the changes and try again.
166
+ `)}}async pull(t,{hashes:n,force:r,printEnvironmentChangesOptions:a}={}){let{localChanges:o,environmentChangesToPull:s,environmentFilesVersion:i}=n??await this.hashes(t);H(s.size>0,"cannot push if there are no changes"),o.size>0&&!(r??t.args["--force"])&&await be(m`
160
167
  Are you sure you want to {underline discard} your local changes?
161
- `),await this._getChangesFromEnvironment(t,{changes:s,filesVersion:i,printEnvironmentChangesOptions:a})}async writeToLocalFilesystem(t,n){let r=BigInt(n.filesVersion);H(r>=this.syncJson.filesVersion,"filesVersion must be greater than or equal to current filesVersion"),t.log.debug("writing to local filesystem",{filesVersion:r,files:n.files.map(s=>s.path),delete:n.delete});let a=new te,o=new Set;await K(n.delete,async s=>{let i=me.dirname(s);for(;i!==".";)o.add(this.syncJson.directory.normalize(i,!0)),i=me.dirname(i);let u=this.syncJson.directory.absolute(s),p=this.syncJson.directory.absolute(".gadget/backup",this.syncJson.directory.relative(s));await et(async()=>{try{await I.default.remove(p),await I.default.move(u,p),a.set(s,{type:"delete"})}catch(c){if(fe(c))return;if(st(c)||it(c)){let y=me.dirname(p);for(;y!==this.syncJson.directory.absolute(".gadget/backup");)(await I.default.stat(y)).isDirectory()||(t.log.debug("removing file in the way of backup path",{currentPath:u,backupPath:p,file:y}),await I.default.remove(y)),y=me.dirname(y)}throw c}},{retries:Z.windows?4:2,minTimeout:(0,xr.default)("100ms"),onFailedAttempt:c=>{t.log.warn("failed to move file to backup",{error:c,currentPath:u,backupPath:p})}})});for(let s of Array.from(o.values()).sort().reverse())if(!n.files.some(i=>i.path===s))try{await I.default.rmdir(this.syncJson.directory.absolute(s)),a.set(s,{type:"delete"})}catch(i){if(fe(i)||ot(i))continue;throw i}if(await K(n.files,async s=>{let i=this.syncJson.directory.absolute(s.path);await I.default.pathExists(i)?s.path.endsWith("/")||a.set(s.path,{type:"update"}):a.set(s.path,{type:"create"}),s.path.endsWith("/")?await I.default.ensureDir(i):await I.default.outputFile(i,Buffer.from(s.content,s.encoding)),mt&&await I.default.chmod(i,s.mode&511),i===this.syncJson.directory.absolute(".ignore")&&await this.syncJson.directory.loadIgnoreFile()}),await this.syncJson.save(String(r)),n.spinner?.clear(),ne(t,{changes:a,tense:"past",title:g`{greenBright ${w.arrowDown}} Pulled ${(0,U.default)("file",a.size)}. ${P()}`,...n.printEnvironmentChangesOptions}),a.has("yarn.lock")){let s=$({ensureEmptyLineAbove:!0,content:'Running "yarn install --check-files"'});try{await Ke("yarn",["install","--check-files"],{cwd:this.syncJson.directory.path}),s.succeed(`Ran "yarn install --check-files" ${P()}`)}catch(i){s.fail(),t.log.error("yarn install failed",{error:i});let u=yt(i).message;u&&R({ensureEmptyLineAbove:!0,indent:2,content:u})}}return a}async _merge(t,{hashes:{localChanges:n,environmentChanges:r,environmentFilesVersion:a},printLocalChangesOptions:o,printEnvironmentChangesOptions:s}){let i=Ot({localChanges:n,environmentChanges:r});if(i.size>0){t.log.debug("conflicts detected",{conflicts:i});let u=t.args["--prefer"];switch(u||(Bt({conflicts:i}),u=await At({choices:Object.values(O),content:b.bold("How should we resolve these conflicts?")})),u){case O.CANCEL:{_o.exit(0);break}case O.LOCAL:{r=Me({conflicts:i,changes:r});break}case O.ENVIRONMENT:{n=Me({conflicts:i,changes:n});break}}}r.size>0&&await this._getChangesFromEnvironment(t,{changes:r,filesVersion:a,printEnvironmentChangesOptions:s}),n.size>0&&await this._sendChangesToEnvironment(t,{changes:n,expectedFilesVersion:a,printLocalChangesOptions:o})}async _getChangesFromEnvironment(t,{filesVersion:n,changes:r,printEnvironmentChangesOptions:a}){t.log.debug("getting changes from gadget",{filesVersion:n,changes:r});let o=r.created(),s=r.updated(),i=$({ensureEmptyLineAbove:!0,content:j(t,{changes:r,tense:"present",title:g`Pulling ${(0,U.default)("file",r.size)}.`,...a})});try{let u=[];if(o.length>0||s.length>0){let{fileSyncFiles:p}=await this.syncJson.edit.query({query:Tt,variables:{paths:[...o,...s],filesVersion:String(n),encoding:"base64"}});u=p.files}await this.writeToLocalFilesystem(t,{filesVersion:n,files:u,delete:r.deleted(),spinner:i,printEnvironmentChangesOptions:a})}catch(u){throw i.fail(),u}}async _sendChangesToEnvironment(t,{changes:n,expectedFilesVersion:r=this.syncJson.filesVersion,printLocalChangesOptions:a}){t.log.debug("sending changes to gadget",{expectedFilesVersion:r,changes:n});let o=[],s=[];if(await K(n,async([p,c])=>{if(c.type==="delete"){s.push({path:p});return}let y=this.syncJson.directory.absolute(p),d;try{d=await I.default.stat(y)}catch(h){ft(h),t.log.debug("skipping change because file doesn't exist",{path:p});return}let S="";d.isFile()&&(S=await I.default.readFile(y,"base64"));let f;c.type==="create"&&c.oldPath&&(f=c.oldPath),o.push({content:S,oldPath:f,path:p,mode:d.mode,encoding:"base64"})}),o.length===0&&s.length===0){t.log.debug("skipping send because there are no changes");return}if(o.map(p=>p.content.length).reduce((p,c)=>p+c,0)>To)throw new Ee(g`
168
+ `),await this._getChangesFromEnvironment(t,{changes:s,filesVersion:i,printEnvironmentChangesOptions:a})}async writeToLocalFilesystem(t,n){let r=BigInt(n.filesVersion);H(r>=this.syncJson.filesVersion,"filesVersion must be greater than or equal to current filesVersion"),t.log.debug("writing to local filesystem",{filesVersion:r,files:n.files.map(s=>s.path),delete:n.delete});let a=new te,o=new Set;await K(n.delete,async s=>{let i=ge.dirname(s);for(;i!==".";)o.add(this.syncJson.directory.normalize(i,!0)),i=ge.dirname(i);let u=this.syncJson.directory.absolute(s),p=this.syncJson.directory.absolute(".gadget/backup",this.syncJson.directory.relative(s));await et(async()=>{try{await I.default.remove(p),await I.default.move(u,p),a.set(s,{type:"delete"})}catch(c){if(fe(c))return;if(st(c)||it(c)){let d=ge.dirname(p);for(;d!==this.syncJson.directory.absolute(".gadget/backup");)(await I.default.stat(d)).isDirectory()||(t.log.debug("removing file in the way of backup path",{currentPath:u,backupPath:p,file:d}),await I.default.remove(d)),d=ge.dirname(d)}throw c}},{retries:Z.windows?4:2,minTimeout:(0,xr.default)("100ms"),onFailedAttempt:c=>{t.log.warn("failed to move file to backup",{error:c,currentPath:u,backupPath:p})}})});for(let s of Array.from(o.values()).sort().reverse())if(!n.files.some(i=>i.path===s))try{await I.default.rmdir(this.syncJson.directory.absolute(s)),a.set(s,{type:"delete"})}catch(i){if(fe(i)||ot(i))continue;throw i}if(await K(n.files,async s=>{let i=this.syncJson.directory.absolute(s.path);await I.default.pathExists(i)?s.path.endsWith("/")||a.set(s.path,{type:"update"}):a.set(s.path,{type:"create"}),s.path.endsWith("/")?await I.default.ensureDir(i):await I.default.outputFile(i,Buffer.from(s.content,s.encoding)),gt&&await I.default.chmod(i,s.mode&511),i===this.syncJson.directory.absolute(".ignore")&&await this.syncJson.directory.loadIgnoreFile()}),await this.syncJson.save(String(r)),n.spinner?.clear(),ne(t,{changes:a,tense:"past",title:m`{greenBright ${w.arrowDown}} Pulled ${(0,U.default)("file",a.size)}. ${P()}`,...n.printEnvironmentChangesOptions}),a.has("yarn.lock")){let s=$({ensureEmptyLineAbove:!0,content:'Running "yarn install --check-files"'});try{await Ke("yarn",["install","--check-files"],{cwd:this.syncJson.directory.path}),s.succeed(`Ran "yarn install --check-files" ${P()}`)}catch(i){s.fail(),t.log.error("yarn install failed",{error:i});let u=dt(i).message;u&&R({ensureEmptyLineAbove:!0,indent:2,content:u})}}return a}async _merge(t,{hashes:{localChanges:n,environmentChanges:r,environmentFilesVersion:a},printLocalChangesOptions:o,printEnvironmentChangesOptions:s}){let i=Ot({localChanges:n,environmentChanges:r});if(i.size>0){t.log.debug("conflicts detected",{conflicts:i});let u=t.args["--prefer"];switch(u||(Bt({conflicts:i}),u=await Mt({choices:Object.values(O),content:b.bold("How should we resolve these conflicts?")})),u){case O.CANCEL:{Co.exit(0);break}case O.LOCAL:{r=Ae({conflicts:i,changes:r});break}case O.ENVIRONMENT:{n=Ae({conflicts:i,changes:n});break}}}r.size>0&&await this._getChangesFromEnvironment(t,{changes:r,filesVersion:a,printEnvironmentChangesOptions:s}),n.size>0&&await this._sendChangesToEnvironment(t,{changes:n,expectedFilesVersion:a,printLocalChangesOptions:o})}async _getChangesFromEnvironment(t,{filesVersion:n,changes:r,printEnvironmentChangesOptions:a}){t.log.debug("getting changes from gadget",{filesVersion:n,changes:r});let o=r.created(),s=r.updated(),i=$({ensureEmptyLineAbove:!0,content:j(t,{changes:r,tense:"present",title:m`Pulling ${(0,U.default)("file",r.size)}.`,...a})});try{let u=[];if(o.length>0||s.length>0){let{fileSyncFiles:p}=await this.syncJson.edit.query({query:Tt,variables:{paths:[...o,...s],filesVersion:String(n),encoding:"base64"}});u=p.files}await this.writeToLocalFilesystem(t,{filesVersion:n,files:u,delete:r.deleted(),spinner:i,printEnvironmentChangesOptions:a})}catch(u){throw i.fail(),u}}async _sendChangesToEnvironment(t,{changes:n,expectedFilesVersion:r=this.syncJson.filesVersion,printLocalChangesOptions:a}){t.log.debug("sending changes to gadget",{expectedFilesVersion:r,changes:n});let o=[],s=[];if(await K(n,async([p,c])=>{if(c.type==="delete"){s.push({path:p});return}let d=this.syncJson.directory.absolute(p),y;try{y=await I.default.stat(d)}catch(h){ft(h),t.log.debug("skipping change because file doesn't exist",{path:p});return}let S="";y.isFile()&&(S=await I.default.readFile(d,"base64"));let f;c.type==="create"&&c.oldPath&&(f=c.oldPath),o.push({content:S,oldPath:f,path:p,mode:y.mode,encoding:"base64"})}),o.length===0&&s.length===0){t.log.debug("skipping send because there are no changes");return}if(o.map(p=>p.content.length).reduce((p,c)=>p+c,0)>To)throw new Ee(m`
162
169
  {underline Your file changes are too large to push.}
163
170
 
164
171
  Run "ggt status" to see your changes and consider
165
172
  ignoring some files or pushing in smaller batches.
166
- `);let u=$({ensureEmptyLineAbove:!0,content:j(t,{changes:n,tense:"present",title:N`Pushing ${(0,U.default)("file",o.length+s.length)}. ${w.arrowRight}`,...a})});try{let{publishFileSyncEvents:{remoteFilesVersion:p,problems:c}}=await this.syncJson.edit.mutate({mutation:_t,variables:{input:{expectedRemoteFilesVersion:String(r),changed:o,deleted:s}},http:{retry:{methods:["POST"],calculateDelay:({error:y,computedValue:d})=>xe(y.response?.body)?0:d}}});if(BigInt(p)>r+1n)throw new Error("Files version mismatch");await this.syncJson.save(p),u.succeed(j(t,{changes:n,tense:"past",title:N`Pushed ${(0,U.default)("file",o.length+s.length)}. ${w.arrowRight} ${P()}`,...a})),c.length>0&&R({ensureEmptyLineAbove:!0,content:g`
173
+ `);let u=$({ensureEmptyLineAbove:!0,content:j(t,{changes:n,tense:"present",title:N`Pushing ${(0,U.default)("file",o.length+s.length)}. ${w.arrowRight}`,...a})});try{let{publishFileSyncEvents:{remoteFilesVersion:p,problems:c}}=await this.syncJson.edit.mutate({mutation:Ct,variables:{input:{expectedRemoteFilesVersion:String(r),changed:o,deleted:s}},http:{retry:{methods:["POST"],calculateDelay:({error:d,computedValue:y})=>xe(d.response?.body)?0:y}}});if(BigInt(p)>r+1n)throw new Error("Files version mismatch");await this.syncJson.save(p),u.succeed(j(t,{changes:n,tense:"past",title:N`Pushed ${(0,U.default)("file",o.length+s.length)}. ${w.arrowRight} ${P()}`,...a})),c.length>0&&R({ensureEmptyLineAbove:!0,content:m`
167
174
  {red Gadget has detected the following fatal errors with your files:}
168
175
 
169
176
  ${ht({problems:bt(c),showFileTypes:!1,indent:12})}
170
177
 
171
178
  {red Your app will not be operational until all fatal errors are fixed.}
172
- `})}catch(p){throw xe(p)?u.clear():u.fail(),p}}};export{te as a,Zt as b,Ho as c,Uo as d,$o as e,Qo as f,jo as g,P as h,Ot as i,Bt as j,ds as k,Ss as l,Er as m};
173
- //# sourceMappingURL=chunk-LWW4E6P5.js.map
179
+ `})}catch(p){throw xe(p)?u.clear():u.fail(),p}}};export{te as a,Cr as b,Tr as c,Zt as d,Ho as e,Uo as f,$o as g,Qo as h,jo as i,P as j,Ot as k,Bt as l,ys as m,Ss as n,Er as o};
180
+ //# sourceMappingURL=chunk-DVKNBG4P.js.map