@gadgetinc/ggt 1.0.5 → 1.1.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 (89) hide show
  1. package/dist/add-RDTHYTCK.js +78 -0
  2. package/dist/add-RDTHYTCK.js.map +7 -0
  3. package/dist/chunk-3Q3GPB6Z.js +2 -0
  4. package/dist/chunk-3Q3GPB6Z.js.map +7 -0
  5. package/dist/chunk-457GEPUN.js +9 -0
  6. package/dist/chunk-457GEPUN.js.map +7 -0
  7. package/dist/{chunk-5DLLJX5F.js → chunk-5ONACLO6.js} +8 -8
  8. package/dist/{chunk-5DLLJX5F.js.map → chunk-5ONACLO6.js.map} +3 -3
  9. package/dist/chunk-CQLM5U6T.js +67 -0
  10. package/dist/chunk-CQLM5U6T.js.map +7 -0
  11. package/dist/chunk-FLXIAZND.js +12 -0
  12. package/dist/chunk-FLXIAZND.js.map +7 -0
  13. package/dist/chunk-JKDJXJKF.js +8 -0
  14. package/dist/{chunk-QEVWPU3D.js.map → chunk-JKDJXJKF.js.map} +3 -3
  15. package/dist/chunk-LWW4E6P5.js +173 -0
  16. package/dist/chunk-LWW4E6P5.js.map +7 -0
  17. package/dist/chunk-M2OJZLL7.js +18 -0
  18. package/dist/chunk-M2OJZLL7.js.map +7 -0
  19. package/dist/{chunk-Q5N5L6H3.js → chunk-M4PNFOA5.js} +2 -2
  20. package/dist/chunk-M4PNFOA5.js.map +7 -0
  21. package/dist/chunk-NGTOMLDS.js +33 -0
  22. package/dist/{chunk-G3VNV5Z6.js.map → chunk-NGTOMLDS.js.map} +3 -3
  23. package/dist/chunk-RYQWS5BH.js +117 -0
  24. package/dist/chunk-RYQWS5BH.js.map +7 -0
  25. package/dist/{chunk-IKJVXTZK.js → chunk-TRHAPK2F.js} +4 -6
  26. package/dist/{chunk-IKJVXTZK.js.map → chunk-TRHAPK2F.js.map} +2 -2
  27. package/dist/chunk-VICN6LTV.js +12 -0
  28. package/dist/chunk-VICN6LTV.js.map +7 -0
  29. package/dist/context-GN36UFJL.js +2 -0
  30. package/dist/deploy-BAMMI3ZA.js +24 -0
  31. package/dist/deploy-BAMMI3ZA.js.map +7 -0
  32. package/dist/{dev-M3WDGK4D.js → dev-5UFCKF4X.js} +9 -11
  33. package/dist/{dev-M3WDGK4D.js.map → dev-5UFCKF4X.js.map} +3 -3
  34. package/dist/esm-GJ7RK6IC.js +34 -0
  35. package/dist/esm-GJ7RK6IC.js.map +7 -0
  36. package/dist/list-WGRXHV2B.js +11 -0
  37. package/dist/list-WGRXHV2B.js.map +7 -0
  38. package/dist/login-5YZOB4XB.js +2 -0
  39. package/dist/logout-YXDH5ZZI.js +7 -0
  40. package/dist/{logout-UZBACOIX.js.map → logout-YXDH5ZZI.js.map} +3 -3
  41. package/dist/main.js +6 -8
  42. package/dist/main.js.map +3 -3
  43. package/dist/{open-GWKGQQG3.js → open-EOH3Q5KP.js} +3 -3
  44. package/dist/{open-GWKGQQG3.js.map → open-EOH3Q5KP.js.map} +2 -2
  45. package/dist/{pull-7C5A65KB.js → pull-UAKKKJJP.js} +3 -5
  46. package/dist/{pull-7C5A65KB.js.map → pull-UAKKKJJP.js.map} +2 -2
  47. package/dist/push-7X4P2364.js +2 -0
  48. package/dist/push-7X4P2364.js.map +7 -0
  49. package/dist/status-UJUGP24U.js +14 -0
  50. package/dist/{status-DFKKSRVB.js.map → status-UJUGP24U.js.map} +1 -1
  51. package/dist/user-B2RIDVTH.js +2 -0
  52. package/dist/user-B2RIDVTH.js.map +7 -0
  53. package/dist/{version-JD42JXWY.js → version-VE55GG37.js} +2 -2
  54. package/dist/whoami-OAH55L4M.js +7 -0
  55. package/dist/{whoami-I23R6HOG.js.map → whoami-OAH55L4M.js.map} +2 -2
  56. package/package.json +22 -22
  57. package/dist/add-4ME2KTJQ.js +0 -84
  58. package/dist/add-4ME2KTJQ.js.map +0 -7
  59. package/dist/chunk-BZY2AIPV.js +0 -57
  60. package/dist/chunk-BZY2AIPV.js.map +0 -7
  61. package/dist/chunk-G3VNV5Z6.js +0 -33
  62. package/dist/chunk-GA7AL463.js +0 -24
  63. package/dist/chunk-GA7AL463.js.map +0 -7
  64. package/dist/chunk-KGSSHEEC.js +0 -17
  65. package/dist/chunk-KGSSHEEC.js.map +0 -7
  66. package/dist/chunk-KXK37C5D.js +0 -183
  67. package/dist/chunk-KXK37C5D.js.map +0 -7
  68. package/dist/chunk-NJIDVM2C.js +0 -27
  69. package/dist/chunk-NJIDVM2C.js.map +0 -7
  70. package/dist/chunk-Q5N5L6H3.js.map +0 -7
  71. package/dist/chunk-QEVWPU3D.js +0 -8
  72. package/dist/chunk-X36GM74C.js +0 -2
  73. package/dist/chunk-X36GM74C.js.map +0 -7
  74. package/dist/chunk-YRP2UZ2I.js +0 -126
  75. package/dist/chunk-YRP2UZ2I.js.map +0 -7
  76. package/dist/deploy-6HOBYPE6.js +0 -30
  77. package/dist/deploy-6HOBYPE6.js.map +0 -7
  78. package/dist/esm-BL3OM5UJ.js +0 -33
  79. package/dist/esm-BL3OM5UJ.js.map +0 -7
  80. package/dist/list-725RHWD5.js +0 -11
  81. package/dist/list-725RHWD5.js.map +0 -7
  82. package/dist/login-I4RGMDLE.js +0 -2
  83. package/dist/logout-UZBACOIX.js +0 -7
  84. package/dist/push-LPUIR4EO.js +0 -2
  85. package/dist/status-DFKKSRVB.js +0 -14
  86. package/dist/whoami-I23R6HOG.js +0 -7
  87. /package/dist/{login-I4RGMDLE.js.map → context-GN36UFJL.js.map} +0 -0
  88. /package/dist/{push-LPUIR4EO.js.map → login-5YZOB4XB.js.map} +0 -0
  89. /package/dist/{version-JD42JXWY.js.map → version-VE55GG37.js.map} +0 -0
@@ -1,17 +0,0 @@
1
- import{a as ee,c as ae,d as ue,e as pe,f as ce,g as fe,i as de,j as I,k as D,l as me,m as ge,n as G,r as he,s as Ae,t as ye}from"./chunk-GA7AL463.js";import{H as se,I as N,T as oe,U as L,V as ie,b as te,f as re,o as ne}from"./chunk-BZY2AIPV.js";import{a as le}from"./chunk-F3EZ4KS3.js";import{a as Z,c as $,e as S,g as u}from"./chunk-5WC5D4WL.js";var Oe=$((ze,Te)=>{"use strict";u();var De=Z("os"),we=Z("tty"),d=le(),{env:p}=process,E;d("no-color")||d("no-colors")||d("color=false")||d("color=never")?E=0:(d("color")||d("colors")||d("color=true")||d("color=always"))&&(E=1);"FORCE_COLOR"in p&&(p.FORCE_COLOR==="true"?E=1:p.FORCE_COLOR==="false"?E=0:E=p.FORCE_COLOR.length===0?1:Math.min(parseInt(p.FORCE_COLOR,10),3));function F(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function q(t,e){if(E===0)return 0;if(d("color=16m")||d("color=full")||d("color=truecolor"))return 3;if(d("color=256"))return 2;if(t&&!e&&E===void 0)return 0;let r=E||0;if(p.TERM==="dumb")return r;if(process.platform==="win32"){let o=De.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in p)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(o=>o in p)||p.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in p)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(p.TEAMCITY_VERSION)?1:0;if(p.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in p){let o=parseInt((p.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(p.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(p.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(p.TERM)||"COLORTERM"in p?1:r}function Ge(t){let e=q(t,t&&t.isTTY);return F(e)}Te.exports={supportsColor:Ge,stdout:F(q(!0,we.isatty(1))),stderr:F(q(!0,we.isatty(2)))}});var be=$((Qe,Ce)=>{"use strict";u();var je=Oe(),b=le();function xe(t){if(/^\d{3,4}$/.test(t)){let r=/(\d{1,2})(\d{2})/.exec(t);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let e=(t||"").split(".").map(r=>parseInt(r,10));return{major:e[0],minor:e[1],patch:e[2]}}function U(t){let{env:e}=process;if("FORCE_HYPERLINK"in e)return!(e.FORCE_HYPERLINK.length>0&&parseInt(e.FORCE_HYPERLINK,10)===0);if(b("no-hyperlink")||b("no-hyperlinks")||b("hyperlink=false")||b("hyperlink=never"))return!1;if(b("hyperlink=true")||b("hyperlink=always")||"NETLIFY"in e)return!0;if(!je.supportsColor(t)||t&&!t.isTTY||process.platform==="win32"||"CI"in e||"TEAMCITY_VERSION"in e)return!1;if("TERM_PROGRAM"in e){let r=xe(e.TERM_PROGRAM_VERSION);switch(e.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in e){if(e.VTE_VERSION==="0.50.0")return!1;let r=xe(e.VTE_VERSION);return r.major>0||r.minor>=50}return!1}Ce.exports={supportsHyperlink:U,stdout:U(process.stdout),stderr:U(process.stderr)}});var _e=$((yt,ve)=>{u();var Y=Symbol("arg flag"),m=class t extends Error{constructor(e,r){super(e),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,t.prototype)}};function P(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:o=!1}={}){if(!t)throw new m("argument specification object is required","ARG_CONFIG_NO_SPEC");let n={_:[]},l={},A={};for(let a of Object.keys(t)){if(!a)throw new m("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(a[0]!=="-")throw new m(`argument key must start with '-' but found: '${a}'`,"ARG_CONFIG_NONOPT_KEY");if(a.length===1)throw new m(`argument key must have a name; singular '-' keys are not allowed: ${a}`,"ARG_CONFIG_NONAME_KEY");if(typeof t[a]=="string"){l[a]=t[a];continue}let g=t[a],f=!1;if(Array.isArray(g)&&g.length===1&&typeof g[0]=="function"){let[T]=g;g=(y,x,h=[])=>(h.push(T(y,x,h[h.length-1])),h),f=T===Boolean||T[Y]===!0}else if(typeof g=="function")f=g===Boolean||g[Y]===!0;else throw new m(`type missing or not a function or valid array type: ${a}`,"ARG_CONFIG_VAD_TYPE");if(a[1]!=="-"&&a.length>2)throw new m(`short argument keys (with a single hyphen) must have only one character: ${a}`,"ARG_CONFIG_SHORTOPT_TOOLONG");A[a]=[g,f]}for(let a=0,g=e.length;a<g;a++){let f=e[a];if(o&&n._.length>0){n._=n._.concat(e.slice(a));break}if(f==="--"){n._=n._.concat(e.slice(a+1));break}if(f.length>1&&f[0]==="-"){let T=f[1]==="-"||f.length===2?[f]:f.slice(1).split("").map(y=>`-${y}`);for(let y=0;y<T.length;y++){let x=T[y],[h,W]=x[1]==="-"?x.split(/=(.*)/,2):[x,void 0],c=h;for(;c in l;)c=l[c];if(!(c in A))if(r){n._.push(x);continue}else throw new m(`unknown or unexpected option: ${h}`,"ARG_UNKNOWN_OPTION");let[k,X]=A[c];if(!X&&y+1<T.length)throw new m(`option requires argument (but was followed by another short argument): ${h}`,"ARG_MISSING_REQUIRED_SHORTARG");if(X)n[c]=k(!0,c,n[c]);else if(W===void 0){if(e.length<a+2||e[a+1].length>1&&e[a+1][0]==="-"&&!(e[a+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(k===Number||typeof BigInt<"u"&&k===BigInt))){let Le=h===c?"":` (alias for ${c})`;throw new m(`option requires argument: ${h}${Le}`,"ARG_MISSING_REQUIRED_LONGARG")}n[c]=k(e[a+1],c,n[c]),++a}else n[c]=k(W,c,n[c])}}else n._.push(f)}return n}P.flag=t=>(t[Y]=!0,t);P.COUNT=P.flag((t,e,r)=>(r||0)+1);P.ArgError=m;ve.exports=P});u();u();var i="\x1B[",v="\x1B]",C="\x07",j=";",Ee=process.env.TERM_PROGRAM==="Apple_Terminal",s={};s.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?i+(t+1)+"G":i+(e+1)+";"+(t+1)+"H"};s.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=i+-t+"D":t>0&&(r+=i+t+"C"),e<0?r+=i+-e+"A":e>0&&(r+=i+e+"B"),r};s.cursorUp=(t=1)=>i+t+"A";s.cursorDown=(t=1)=>i+t+"B";s.cursorForward=(t=1)=>i+t+"C";s.cursorBackward=(t=1)=>i+t+"D";s.cursorLeft=i+"G";s.cursorSavePosition=Ee?"\x1B7":i+"s";s.cursorRestorePosition=Ee?"\x1B8":i+"u";s.cursorGetPosition=i+"6n";s.cursorNextLine=i+"E";s.cursorPrevLine=i+"F";s.cursorHide=i+"?25l";s.cursorShow=i+"?25h";s.eraseLines=t=>{let e="";for(let r=0;r<t;r++)e+=s.eraseLine+(r<t-1?s.cursorUp():"");return t&&(e+=s.cursorLeft),e};s.eraseEndLine=i+"K";s.eraseStartLine=i+"1K";s.eraseLine=i+"2K";s.eraseDown=i+"J";s.eraseUp=i+"1J";s.eraseScreen=i+"2J";s.scrollUp=i+"S";s.scrollDown=i+"T";s.clearScreen="\x1Bc";s.clearTerminal=process.platform==="win32"?`${s.eraseScreen}${i}0f`:`${s.eraseScreen}${i}3J${i}H`;s.beep=C;s.link=(t,e)=>[v,"8",j,j,e,C,t,v,"8",j,j,C].join("");s.image=(t,e={})=>{let r=`${v}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+C};s.iTerm={setCwd:(t=process.cwd())=>`${v}50;CurrentDir=${t}${C}`,annotation:(t,e={})=>{let r=`${v}1337;`,o=typeof e.x<"u",n=typeof e.y<"u";if((o||n)&&!(o&&n&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+C}};var Re=s;var B=S(be(),1);function R(t,e,{target:r="stdout",...o}={}){return B.default[r]?Re.link(t,e):o.fallback===!1?t:typeof o.fallback=="function"?o.fallback(t,e):`${t} (\u200B${e}\u200B)`}R.isSupported=B.default.stdout;R.stderr=(t,e,r={})=>R(t,e,{target:"stderr",...r});R.stderr.isSupported=B.default.stderr;u();import{randomUUID as Be}from"node:crypto";var He=async(t,e)=>{if(ne(e))return t.log.debug("aborting without reporting error",{error:e}),process.exit(1);t.log.error("reporting error and exiting",{error:e});try{let r=w.from(e);if(r.print(),r.isBug===O.NO)return;await ge(t,r)}finally{process.exit(1)}},ct=async t=>{t.log.debug("installing error handlers"),await me(t);let e=r=>void He(t,r);process.once("uncaughtException",e),process.once("unhandledRejection",e)},O=Object.freeze({YES:"yes",NO:"no",MAYBE:"maybe"}),w=class t extends Error{id=se.testLike?"00000000-0000-0000-0000-000000000000":Be();cause;stack;constructor(e){super(e),Error.captureStackTrace(this,this.constructor),this.stack=ue(this.stack,{pretty:!0,basePath:fe})}static from(e){return e instanceof t?e:new _(e)}sprint(){let e=this.render();if(this.isBug!==O.NO){e=L(e);let r=this.isBug===O.YES?"This is a bug":"If you think this is a bug",o=`https://github.com/gadget-inc/ggt/issues/new?template=bug_report.yml&error-id=${this.id}`;R.isSupported?e+=L({ensureEmptyLineAbove:!0})`
2
- ${r}, ${R("click here",o)} to create an issue on GitHub.
3
- `:e+=L({ensureEmptyLineAbove:!0})`
4
- ${r}, use the link below to create an issue on GitHub.
5
-
6
- ${o}
7
- `}return e}print(e){ie({ensureEmptyLineAbove:!0,...e})(this.sprint())}},_=class extends w{constructor(r){super("An unexpected error occurred");this.cause=r}isBug=O.YES;render(){let r=D(this.cause),o=r.stack||r.message||this.stack;return this.message+`.
8
-
9
- `+o}},ke=class extends w{constructor(r,o){super(r);this.cause=o}isBug=O.MAYBE;render(){return this.message}};u();var Ie=S(ee(),1);import{setTimeout as Me}from"node:timers/promises";var gt=(t,e)=>Me((0,Ie.default)(t),void 0,e),V=class{resolution;rejection;pendingPromise;constructor(e){this.pendingPromise=e,e.then(r=>(this.resolution=r,r)).catch(r=>{this.rejection=r}).finally(()=>{delete this.pendingPromise})}async unwrap(){if(this.pendingPromise)return await this.pendingPromise;if(this.rejection)throw this.rejection;return this.resolution}},H=class{[Symbol.toStringTag];resolve;reject;_promise;constructor(){this._promise=new V(new Promise((e,r)=>{this.resolve=e,this.reject=r})),this[Symbol.toStringTag]=String(this._promise.pendingPromise)}then(e,r){return this._promise.unwrap().then(e,r)}catch(e){return this._promise.unwrap().catch(e)}finally(e){return this._promise.unwrap().finally(e)}};u();var K=S(_e(),1);var J=(t,e)=>{let r={},o={};for(let[n,l]of Object.entries(t)){if(!("type"in l)){r[n]=l;continue}if(r[n]=l.type,o[n]=l.default,l.alias)for(let A of Array.isArray(l.alias)?l.alias:[l.alias])r[A]=n}try{let n=(0,K.default)(r,e);for(let[l,A]of Object.entries(o))re(n[l])&&(n[l]=A);return n}catch(n){throw n instanceof K.default.ArgError&&(n=new z(n.message)),n instanceof w?n:new _(n)}},z=class extends w{isBug=O.NO;render(){return`${te.redBright(ae.cross)} `+this.message}};u();var M=class t extends AbortController{args;done=new H;#t;#n=[];#e;#r;#s;#o;#i;constructor({parent:e,command:r,args:o,log:n}){super(),this.args=o,this.#t=n,this.#e=e,this.#r=r,this.abort=this.abort.bind(this),this.child=this.child.bind(this),this.onAbort=this.onAbort.bind(this),this.signal.addEventListener("abort",async()=>{let l;for(let A of this.#n.reverse())try{await A(this.signal.reason)}catch(a){l=a,this.log.error("error during abort",{error:l})}l?this.done.reject(l):this.done.resolve()})}get log(){return this.#t}get command(){return this.#r??this.#e?.command??"root"}get user(){return this.#s??this.#e?.user}set user(e){this.#s=e,this.#e&&(this.#e.user=e),this.#t=this.#t.child({fields:{user:{id:e.id}},devFields:{user:e}})}get app(){return this.#o??this.#e?.app}set app(e){this.#o=e,this.#e&&(this.#e.app=e),this.#t=this.#t.child({fields:{app:e}})}get env(){return this.#i??this.#e?.env}set env(e){this.#i=e,this.#e&&(this.#e.env=e),this.#t=this.#t.child({fields:{env:e}})}static init({parse:e,...r}){return new t({args:e?J(e,I(r,["argv","permissive","stopAtPositional"])):{},log:G(I(r,["name","fields","devFields"]))})}child({parse:e,command:r=this.#r,...o}){let n=new t({parent:this,command:r,args:{...this.args,...o.overwrite,...e?J(e,de(I(o,["argv","permissive","stopAtPositional"]),{argv:this.args._})):{}},log:this.log.child(I(o,["name","fields","devFields"]))});return this.onAbort(()=>n.abort()),n}onAbort(e){this.#n.push(e)}};u();var Pe=G({name:"auth"}),Se=t=>t.url instanceof URL&&t.url.host===N.domains.services,$e=()=>{let t=he();return t&&`session=${encodeURIComponent(t)};`},Gt=()=>{let t=$e();if(t)return Pe.trace("using cookie as auth header",{},{cookie:t}),{cookie:t};let e=ye();if(e)return Pe.trace("using token as auth header",{},{token:e}),{"x-platform-access-token":e}},Fe=t=>t instanceof pe&&t.response.statusCode===401,jt=(t,e)=>{if(Fe(e)){t.log.warn("swallowing unauthorized error",{error:e});return}throw e};u();var Ne=S(ee(),1);import qe from"node:assert";import{Agent as Ue}from"node:http";import{Agent as Ve}from"node:https";var Q=t=>(qe(t.context?.ctx instanceof M,oe(`
10
- ctx must be provided to http requests:
11
-
12
- const response = await http({
13
- context: { ctx },
14
- ...options,
15
- });
16
- `)),t.context.ctx),Qt=ce.extend({agent:{http:new Ue({keepAlive:!0}),https:new Ve({keepAlive:!0})},retry:{limit:10,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN","EADDRNOTAVAIL","EHOSTUNREACH"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t,backoffLimit:(0,Ne.default)("5s"),noise:100},hooks:{beforeRequest:[t=>{let e=Q(t);t.signal=e.signal,t.headers["user-agent"]=N.versionFull,e.log.debug("http request",{http:{request:{method:t.method,url:t.url?.toString()}}})}],beforeRetry:[(t,e)=>{Q(t.request?.options??t.options.context).log.warn("http request failed, retrying...",{http:{retryCount:e,error:D(t),request:t.request&&{method:t.request.options.method,url:t.request.options.url?.toString()},response:t.response&&{statusCode:t.response.statusCode,traceId:t.response.headers["x-trace-id"],durationMs:t.response.timings.phases.total}}})}],afterResponse:[t=>(Q(t.request.options).log.debug("http response",{http:{request:{method:t.request.options.method,url:t.request.options.url?.toString()},response:{statusCode:t.statusCode,traceId:t.headers["x-trace-id"],durationMs:t.timings.phases.total}}}),t.statusCode===401&&Se(t.request.options)&&Ae(void 0),t)]}});export{_e as a,R as b,He as c,ct as d,O as e,w as f,ke as g,gt as h,z as i,M as j,Gt as k,jt as l,Qt as m};
17
- //# sourceMappingURL=chunk-KGSSHEEC.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js", "../node_modules/.pnpm/supports-hyperlinks@2.3.0/node_modules/supports-hyperlinks/index.js", "../node_modules/.pnpm/arg@5.0.2/node_modules/arg/index.js", "../node_modules/.pnpm/terminal-link@3.0.0/node_modules/terminal-link/index.js", "../node_modules/.pnpm/ansi-escapes@5.0.0/node_modules/ansi-escapes/index.js", "../src/services/output/report.ts", "../src/services/util/promise.ts", "../src/services/command/arg.ts", "../src/services/command/context.ts", "../src/services/http/auth.ts", "../src/services/http/http.ts"],
4
- "sourcesContent": ["'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n", "'use strict';\nconst supportsColor = require('supports-color');\nconst hasFlag = require('has-flag');\n\nfunction parseVersion(versionString) {\n\tif (/^\\d{3,4}$/.test(versionString)) {\n\t\t// Env var doesn't always use dots. example: 4601 => 46.1.0\n\t\tconst m = /(\\d{1,2})(\\d{2})/.exec(versionString);\n\t\treturn {\n\t\t\tmajor: 0,\n\t\t\tminor: parseInt(m[1], 10),\n\t\t\tpatch: parseInt(m[2], 10)\n\t\t};\n\t}\n\n\tconst versions = (versionString || '').split('.').map(n => parseInt(n, 10));\n\treturn {\n\t\tmajor: versions[0],\n\t\tminor: versions[1],\n\t\tpatch: versions[2]\n\t};\n}\n\nfunction supportsHyperlink(stream) {\n\tconst {env} = process;\n\n\tif ('FORCE_HYPERLINK' in env) {\n\t\treturn !(env.FORCE_HYPERLINK.length > 0 && parseInt(env.FORCE_HYPERLINK, 10) === 0);\n\t}\n\n\tif (hasFlag('no-hyperlink') || hasFlag('no-hyperlinks') || hasFlag('hyperlink=false') || hasFlag('hyperlink=never')) {\n\t\treturn false;\n\t}\n\n\tif (hasFlag('hyperlink=true') || hasFlag('hyperlink=always')) {\n\t\treturn true;\n\t}\n\n\t// Netlify does not run a TTY, it does not need `supportsColor` check\n\tif ('NETLIFY' in env) {\n\t\treturn true;\n\t}\n\n\t// If they specify no colors, they probably don't want hyperlinks.\n\tif (!supportsColor.supportsColor(stream)) {\n\t\treturn false;\n\t}\n\n\tif (stream && !stream.isTTY) {\n\t\treturn false;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\treturn false;\n\t}\n\n\tif ('CI' in env) {\n\t\treturn false;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn false;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseVersion(env.TERM_PROGRAM_VERSION);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\tif (version.major === 3) {\n\t\t\t\t\treturn version.minor >= 1;\n\t\t\t\t}\n\n\t\t\t\treturn version.major > 3;\n\t\t\tcase 'WezTerm':\n\t\t\t\treturn version.major >= 20200620;\n\t\t\tcase 'vscode':\n\t\t\t\treturn version.major > 1 || version.major === 1 && version.minor >= 72;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif ('VTE_VERSION' in env) {\n\t\t// 0.50.0 was supposed to support hyperlinks, but throws a segfault\n\t\tif (env.VTE_VERSION === '0.50.0') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst version = parseVersion(env.VTE_VERSION);\n\t\treturn version.major > 0 || version.minor >= 50;\n\t}\n\n\treturn false;\n}\n\nmodule.exports = {\n\tsupportsHyperlink,\n\tstdout: supportsHyperlink(process.stdout),\n\tstderr: supportsHyperlink(process.stderr)\n};\n", "const flagSymbol = Symbol('arg flag');\n\nclass ArgError extends Error {\n\tconstructor(msg, code) {\n\t\tsuper(msg);\n\t\tthis.name = 'ArgError';\n\t\tthis.code = code;\n\n\t\tObject.setPrototypeOf(this, ArgError.prototype);\n\t}\n}\n\nfunction arg(\n\topts,\n\t{\n\t\targv = process.argv.slice(2),\n\t\tpermissive = false,\n\t\tstopAtPositional = false\n\t} = {}\n) {\n\tif (!opts) {\n\t\tthrow new ArgError(\n\t\t\t'argument specification object is required',\n\t\t\t'ARG_CONFIG_NO_SPEC'\n\t\t);\n\t}\n\n\tconst result = { _: [] };\n\n\tconst aliases = {};\n\tconst handlers = {};\n\n\tfor (const key of Object.keys(opts)) {\n\t\tif (!key) {\n\t\t\tthrow new ArgError(\n\t\t\t\t'argument key cannot be an empty string',\n\t\t\t\t'ARG_CONFIG_EMPTY_KEY'\n\t\t\t);\n\t\t}\n\n\t\tif (key[0] !== '-') {\n\t\t\tthrow new ArgError(\n\t\t\t\t`argument key must start with '-' but found: '${key}'`,\n\t\t\t\t'ARG_CONFIG_NONOPT_KEY'\n\t\t\t);\n\t\t}\n\n\t\tif (key.length === 1) {\n\t\t\tthrow new ArgError(\n\t\t\t\t`argument key must have a name; singular '-' keys are not allowed: ${key}`,\n\t\t\t\t'ARG_CONFIG_NONAME_KEY'\n\t\t\t);\n\t\t}\n\n\t\tif (typeof opts[key] === 'string') {\n\t\t\taliases[key] = opts[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet type = opts[key];\n\t\tlet isFlag = false;\n\n\t\tif (\n\t\t\tArray.isArray(type) &&\n\t\t\ttype.length === 1 &&\n\t\t\ttypeof type[0] === 'function'\n\t\t) {\n\t\t\tconst [fn] = type;\n\t\t\ttype = (value, name, prev = []) => {\n\t\t\t\tprev.push(fn(value, name, prev[prev.length - 1]));\n\t\t\t\treturn prev;\n\t\t\t};\n\t\t\tisFlag = fn === Boolean || fn[flagSymbol] === true;\n\t\t} else if (typeof type === 'function') {\n\t\t\tisFlag = type === Boolean || type[flagSymbol] === true;\n\t\t} else {\n\t\t\tthrow new ArgError(\n\t\t\t\t`type missing or not a function or valid array type: ${key}`,\n\t\t\t\t'ARG_CONFIG_VAD_TYPE'\n\t\t\t);\n\t\t}\n\n\t\tif (key[1] !== '-' && key.length > 2) {\n\t\t\tthrow new ArgError(\n\t\t\t\t`short argument keys (with a single hyphen) must have only one character: ${key}`,\n\t\t\t\t'ARG_CONFIG_SHORTOPT_TOOLONG'\n\t\t\t);\n\t\t}\n\n\t\thandlers[key] = [type, isFlag];\n\t}\n\n\tfor (let i = 0, len = argv.length; i < len; i++) {\n\t\tconst wholeArg = argv[i];\n\n\t\tif (stopAtPositional && result._.length > 0) {\n\t\t\tresult._ = result._.concat(argv.slice(i));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (wholeArg === '--') {\n\t\t\tresult._ = result._.concat(argv.slice(i + 1));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (wholeArg.length > 1 && wholeArg[0] === '-') {\n\t\t\t/* eslint-disable operator-linebreak */\n\t\t\tconst separatedArguments =\n\t\t\t\twholeArg[1] === '-' || wholeArg.length === 2\n\t\t\t\t\t? [wholeArg]\n\t\t\t\t\t: wholeArg\n\t\t\t\t\t\t\t.slice(1)\n\t\t\t\t\t\t\t.split('')\n\t\t\t\t\t\t\t.map((a) => `-${a}`);\n\t\t\t/* eslint-enable operator-linebreak */\n\n\t\t\tfor (let j = 0; j < separatedArguments.length; j++) {\n\t\t\t\tconst arg = separatedArguments[j];\n\t\t\t\tconst [originalArgName, argStr] =\n\t\t\t\t\targ[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined];\n\n\t\t\t\tlet argName = originalArgName;\n\t\t\t\twhile (argName in aliases) {\n\t\t\t\t\targName = aliases[argName];\n\t\t\t\t}\n\n\t\t\t\tif (!(argName in handlers)) {\n\t\t\t\t\tif (permissive) {\n\t\t\t\t\t\tresult._.push(arg);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new ArgError(\n\t\t\t\t\t\t\t`unknown or unexpected option: ${originalArgName}`,\n\t\t\t\t\t\t\t'ARG_UNKNOWN_OPTION'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst [type, isFlag] = handlers[argName];\n\n\t\t\t\tif (!isFlag && j + 1 < separatedArguments.length) {\n\t\t\t\t\tthrow new ArgError(\n\t\t\t\t\t\t`option requires argument (but was followed by another short argument): ${originalArgName}`,\n\t\t\t\t\t\t'ARG_MISSING_REQUIRED_SHORTARG'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (isFlag) {\n\t\t\t\t\tresult[argName] = type(true, argName, result[argName]);\n\t\t\t\t} else if (argStr === undefined) {\n\t\t\t\t\tif (\n\t\t\t\t\t\targv.length < i + 2 ||\n\t\t\t\t\t\t(argv[i + 1].length > 1 &&\n\t\t\t\t\t\t\targv[i + 1][0] === '-' &&\n\t\t\t\t\t\t\t!(\n\t\t\t\t\t\t\t\targv[i + 1].match(/^-?\\d*(\\.(?=\\d))?\\d*$/) &&\n\t\t\t\t\t\t\t\t(type === Number ||\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\t\t\t\t(typeof BigInt !== 'undefined' && type === BigInt))\n\t\t\t\t\t\t\t))\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst extended =\n\t\t\t\t\t\t\toriginalArgName === argName ? '' : ` (alias for ${argName})`;\n\t\t\t\t\t\tthrow new ArgError(\n\t\t\t\t\t\t\t`option requires argument: ${originalArgName}${extended}`,\n\t\t\t\t\t\t\t'ARG_MISSING_REQUIRED_LONGARG'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tresult[argName] = type(argv[i + 1], argName, result[argName]);\n\t\t\t\t\t++i;\n\t\t\t\t} else {\n\t\t\t\t\tresult[argName] = type(argStr, argName, result[argName]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tresult._.push(wholeArg);\n\t\t}\n\t}\n\n\treturn result;\n}\n\narg.flag = (fn) => {\n\tfn[flagSymbol] = true;\n\treturn fn;\n};\n\n// Utility types\narg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1);\n\n// Expose error class\narg.ArgError = ArgError;\n\nmodule.exports = arg;\n", "import ansiEscapes from 'ansi-escapes';\nimport supportsHyperlinks from 'supports-hyperlinks';\n\nexport default function terminalLink(text, url, {target = 'stdout', ...options} = {}) {\n\tif (!supportsHyperlinks[target]) {\n\t\t// If the fallback has been explicitly disabled, don't modify the text itself.\n\t\tif (options.fallback === false) {\n\t\t\treturn text;\n\t\t}\n\n\t\treturn typeof options.fallback === 'function' ? options.fallback(text, url) : `${text} (\\u200B${url}\\u200B)`;\n\t}\n\n\treturn ansiEscapes.link(text, url);\n}\n\nterminalLink.isSupported = supportsHyperlinks.stdout;\nterminalLink.stderr = (text, url, options = {}) => terminalLink(text, url, {target: 'stderr', ...options});\nterminalLink.stderr.isSupported = supportsHyperlinks.stderr;\n", "const ESC = '\\u001B[';\nconst OSC = '\\u001B]';\nconst BEL = '\\u0007';\nconst SEP = ';';\nconst isTerminalApp = process.env.TERM_PROGRAM === 'Apple_Terminal';\n\nconst ansiEscapes = {};\n\nansiEscapes.cursorTo = (x, y) => {\n\tif (typeof x !== 'number') {\n\t\tthrow new TypeError('The `x` argument is required');\n\t}\n\n\tif (typeof y !== 'number') {\n\t\treturn ESC + (x + 1) + 'G';\n\t}\n\n\treturn ESC + (y + 1) + ';' + (x + 1) + 'H';\n};\n\nansiEscapes.cursorMove = (x, y) => {\n\tif (typeof x !== 'number') {\n\t\tthrow new TypeError('The `x` argument is required');\n\t}\n\n\tlet returnValue = '';\n\n\tif (x < 0) {\n\t\treturnValue += ESC + (-x) + 'D';\n\t} else if (x > 0) {\n\t\treturnValue += ESC + x + 'C';\n\t}\n\n\tif (y < 0) {\n\t\treturnValue += ESC + (-y) + 'A';\n\t} else if (y > 0) {\n\t\treturnValue += ESC + y + 'B';\n\t}\n\n\treturn returnValue;\n};\n\nansiEscapes.cursorUp = (count = 1) => ESC + count + 'A';\nansiEscapes.cursorDown = (count = 1) => ESC + count + 'B';\nansiEscapes.cursorForward = (count = 1) => ESC + count + 'C';\nansiEscapes.cursorBackward = (count = 1) => ESC + count + 'D';\n\nansiEscapes.cursorLeft = ESC + 'G';\nansiEscapes.cursorSavePosition = isTerminalApp ? '\\u001B7' : ESC + 's';\nansiEscapes.cursorRestorePosition = isTerminalApp ? '\\u001B8' : ESC + 'u';\nansiEscapes.cursorGetPosition = ESC + '6n';\nansiEscapes.cursorNextLine = ESC + 'E';\nansiEscapes.cursorPrevLine = ESC + 'F';\nansiEscapes.cursorHide = ESC + '?25l';\nansiEscapes.cursorShow = ESC + '?25h';\n\nansiEscapes.eraseLines = count => {\n\tlet clear = '';\n\n\tfor (let i = 0; i < count; i++) {\n\t\tclear += ansiEscapes.eraseLine + (i < count - 1 ? ansiEscapes.cursorUp() : '');\n\t}\n\n\tif (count) {\n\t\tclear += ansiEscapes.cursorLeft;\n\t}\n\n\treturn clear;\n};\n\nansiEscapes.eraseEndLine = ESC + 'K';\nansiEscapes.eraseStartLine = ESC + '1K';\nansiEscapes.eraseLine = ESC + '2K';\nansiEscapes.eraseDown = ESC + 'J';\nansiEscapes.eraseUp = ESC + '1J';\nansiEscapes.eraseScreen = ESC + '2J';\nansiEscapes.scrollUp = ESC + 'S';\nansiEscapes.scrollDown = ESC + 'T';\n\nansiEscapes.clearScreen = '\\u001Bc';\n\nansiEscapes.clearTerminal = process.platform === 'win32' ?\n\t`${ansiEscapes.eraseScreen}${ESC}0f` :\n\t// 1. Erases the screen (Only done in case `2` is not supported)\n\t// 2. Erases the whole screen including scrollback buffer\n\t// 3. Moves cursor to the top-left position\n\t// More info: https://www.real-world-systems.com/docs/ANSIcode.html\n\t`${ansiEscapes.eraseScreen}${ESC}3J${ESC}H`;\n\nansiEscapes.beep = BEL;\n\nansiEscapes.link = (text, url) => {\n\treturn [\n\t\tOSC,\n\t\t'8',\n\t\tSEP,\n\t\tSEP,\n\t\turl,\n\t\tBEL,\n\t\ttext,\n\t\tOSC,\n\t\t'8',\n\t\tSEP,\n\t\tSEP,\n\t\tBEL\n\t].join('');\n};\n\nansiEscapes.image = (buffer, options = {}) => {\n\tlet returnValue = `${OSC}1337;File=inline=1`;\n\n\tif (options.width) {\n\t\treturnValue += `;width=${options.width}`;\n\t}\n\n\tif (options.height) {\n\t\treturnValue += `;height=${options.height}`;\n\t}\n\n\tif (options.preserveAspectRatio === false) {\n\t\treturnValue += ';preserveAspectRatio=0';\n\t}\n\n\treturn returnValue + ':' + buffer.toString('base64') + BEL;\n};\n\nansiEscapes.iTerm = {\n\tsetCwd: (cwd = process.cwd()) => `${OSC}50;CurrentDir=${cwd}${BEL}`,\n\n\tannotation: (message, options = {}) => {\n\t\tlet returnValue = `${OSC}1337;`;\n\n\t\tconst hasX = typeof options.x !== 'undefined';\n\t\tconst hasY = typeof options.y !== 'undefined';\n\t\tif ((hasX || hasY) && !(hasX && hasY && typeof options.length !== 'undefined')) {\n\t\t\tthrow new Error('`x`, `y` and `length` must be defined when `x` or `y` is defined');\n\t\t}\n\n\t\tmessage = message.replace(/\\|/g, '');\n\n\t\treturnValue += options.isHidden ? 'AddHiddenAnnotation=' : 'AddAnnotation=';\n\n\t\tif (options.length > 0) {\n\t\t\treturnValue +=\n\t\t\t\t\t(hasX ?\n\t\t\t\t\t\t[message, options.length, options.x, options.y] :\n\t\t\t\t\t\t[options.length, message]).join('|');\n\t\t} else {\n\t\t\treturnValue += message;\n\t\t}\n\n\t\treturn returnValue + BEL;\n\t}\n};\n\nexport default ansiEscapes;\n", "import cleanStack from \"clean-stack\";\nimport { randomUUID } from \"node:crypto\";\nimport terminalLink from \"terminal-link\";\nimport type { Context } from \"../command/context.js\";\nimport { env } from \"../config/env.js\";\nimport { isAbortError } from \"../util/is.js\";\nimport { serializeError } from \"../util/object.js\";\nimport { workspaceRoot } from \"../util/paths.js\";\nimport { println } from \"./print.js\";\nimport { initSentry, sendErrorToSentry } from \"./sentry.js\";\nimport { sprintln, type SprintOptions } from \"./sprint.js\";\n\nexport const reportErrorAndExit = async (ctx: Context, cause: unknown): Promise<never> => {\n if (isAbortError(cause)) {\n ctx.log.debug(\"aborting without reporting error\", { error: cause });\n return process.exit(1);\n }\n\n ctx.log.error(\"reporting error and exiting\", { error: cause });\n\n try {\n const error = GGTError.from(cause);\n error.print();\n\n if (error.isBug === IsBug.NO) {\n return undefined as never;\n }\n\n await sendErrorToSentry(ctx, error);\n } finally {\n process.exit(1);\n }\n};\n\nexport const installErrorHandlers = async (ctx: Context): Promise<void> => {\n ctx.log.debug(\"installing error handlers\");\n await initSentry(ctx);\n\n const handleError = (error: unknown) => void reportErrorAndExit(ctx, error);\n process.once(\"uncaughtException\", handleError);\n process.once(\"unhandledRejection\", handleError);\n};\n\nexport const IsBug = Object.freeze({\n YES: \"yes\",\n NO: \"no\",\n MAYBE: \"maybe\",\n});\n\nexport type IsBug = (typeof IsBug)[keyof typeof IsBug];\n\n/**\n * Base class for all errors.\n */\nexport abstract class GGTError extends Error {\n /**\n * The ID for this error.\n */\n id = env.testLike ? \"00000000-0000-0000-0000-000000000000\" : randomUUID();\n\n /**\n * The underlying *thing* that caused this error.\n */\n cause?: unknown;\n\n /**\n * Assume the stack trace exists.\n */\n override stack!: string;\n\n /**\n * Indicates whether this error is considered a bug or not.\n */\n abstract isBug: IsBug;\n\n constructor(message: string) {\n super(message);\n Error.captureStackTrace(this, this.constructor);\n this.stack = cleanStack(this.stack, { pretty: true, basePath: workspaceRoot });\n }\n\n /**\n * Constructs a GGTError from an unknown cause.\n *\n * @param cause - The cause of the error.\n */\n static from(cause: unknown): GGTError {\n if (cause instanceof GGTError) {\n return cause;\n }\n return new UnexpectedError(cause);\n }\n\n sprint(): string {\n let rendered = this.render();\n\n if (this.isBug !== IsBug.NO) {\n // ensure the rendered message ends with a newline\n rendered = sprintln(rendered);\n\n const thisIsABug = this.isBug === IsBug.YES ? \"This is a bug\" : \"If you think this is a bug\";\n const issueLink = `https://github.com/gadget-inc/ggt/issues/new?template=bug_report.yml&error-id=${this.id}`;\n\n if (terminalLink.isSupported) {\n rendered += sprintln({ ensureEmptyLineAbove: true })`\n ${thisIsABug}, ${terminalLink(\"click here\", issueLink)} to create an issue on GitHub.\n `;\n } else {\n rendered += sprintln({ ensureEmptyLineAbove: true })`\n ${thisIsABug}, use the link below to create an issue on GitHub.\n\n ${issueLink}\n `;\n }\n }\n\n return rendered;\n }\n\n print(options?: SprintOptions): void {\n println({ ensureEmptyLineAbove: true, ...options })(this.sprint());\n }\n\n /**\n * Turns this error into a user-friendly message that explains what\n * went wrong and how to fix it. A good write up of what an error\n * should look like can be found here:\n * {@link https://clig.dev/#errors}\n */\n protected abstract render(): string;\n}\n\n/**\n * Our \"catch all\" error.\n *\n * If this error is thrown, we almost certainly have a bug, and should\n * either fix it or add a more specific error so that we can provide\n * more useful information.\n */\nexport class UnexpectedError extends GGTError {\n isBug = IsBug.YES;\n\n constructor(override cause: unknown) {\n super(\"An unexpected error occurred\");\n }\n\n protected render(): string {\n const serialized = serializeError(this.cause);\n const body = serialized.stack || serialized.message || this.stack;\n return this.message + \".\\n\\n\" + body;\n }\n}\n\n/**\n * An error that is expected to happen sometimes.\n */\nexport class EdgeCaseError extends GGTError {\n isBug = IsBug.MAYBE;\n\n constructor(\n message: string,\n override cause?: unknown,\n ) {\n super(message);\n }\n\n protected render(): string {\n return this.message;\n }\n}\n", "import ms from \"ms\";\nimport type { TimerOptions } from \"node:timers\";\nimport { setTimeout } from \"node:timers/promises\";\n\nexport const delay = (duration: string, options?: TimerOptions): Promise<void> => setTimeout(ms(duration), undefined, options);\n\n/**\n * Long lived references to Promises stress the garbage collector in JS.\n *\n * Instead of caching resolved Promises, we cache these little data\n * objects instead which reference the resolution or rejection of the\n * Promise, allowing the Promise object to be free'd.\n */\nexport class PromiseWrapper<T> {\n resolution?: T;\n rejection?: unknown;\n pendingPromise?: Promise<T>;\n\n constructor(promise: Promise<T>) {\n this.pendingPromise = promise;\n\n promise\n .then((res) => {\n this.resolution = res;\n return res;\n })\n .catch((err: unknown) => {\n this.rejection = err;\n })\n .finally(() => {\n delete this.pendingPromise;\n });\n }\n\n async unwrap(): Promise<T> {\n if (this.pendingPromise) {\n return await this.pendingPromise;\n } else if (this.rejection) {\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw this.rejection;\n } else {\n return this.resolution as T;\n }\n }\n}\n\n/**\n * A promise that can be resolved or rejected from outside its callback.\n *\n * This is typically used when you want to await a promise that is\n * resolved or rejected from outside the current scope, such as from an\n * event handler.\n *\n * @example\n * const signal = new PromiseSignal();\n * process.on(\"SIGINT\", () => {\n * signal.resolve();\n * });\n * await signal;\n */\nexport class PromiseSignal<T = void> implements Promise<T> {\n readonly [Symbol.toStringTag]!: string;\n\n resolve!: (value: T | PromiseLike<T>) => void;\n reject!: (reason?: unknown) => void;\n\n private _promise: PromiseWrapper<T>;\n\n constructor() {\n this._promise = new PromiseWrapper<T>(\n new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n }),\n );\n\n this[Symbol.toStringTag] = String(this._promise.pendingPromise);\n }\n\n then<R = T, E = never>(\n onfulfilled?: (value: T) => R | PromiseLike<R>,\n onrejected?: (reason: unknown) => E | PromiseLike<E>,\n ): Promise<R | E> {\n return this._promise.unwrap().then(onfulfilled, onrejected);\n }\n\n catch<E = never>(onrejected?: (reason: unknown) => E | PromiseLike<E>): Promise<T | E> {\n return this._promise.unwrap().catch(onrejected);\n }\n\n finally(onfinally?: () => void): Promise<T> {\n return this._promise.unwrap().finally(onfinally);\n }\n}\n", "import arg from \"arg\";\nimport chalk from \"chalk\";\nimport type { Simplify } from \"type-fest\";\nimport { GGTError, IsBug, UnexpectedError } from \"../output/report.js\";\nimport { symbol } from \"../output/symbols.js\";\nimport { isNil } from \"../util/is.js\";\n\nexport type ArgsDefinition = Record<string, ArgDefinition>;\n\ntype ArgDefinition<Handler extends arg.Handler = arg.Handler> =\n | Handler\n | {\n type: Handler;\n alias?: string | string[];\n default?: ReturnType<Handler>;\n };\n\nexport type ParseArgsOptions = {\n /**\n * A list of arguments to parse.\n */\n argv?: string[];\n\n /**\n * When permissive set to `true`, arg will push any unknown arguments\n * onto the \"extra\" argument array (`ctx.args._`) instead of throwing\n * an error about an unknown flag.\n *\n * @default false\n */\n permissive?: boolean;\n\n /**\n * When stopAtPositional is set to true, context will stop parsing at\n * the first positional argument.\n *\n * @default false\n */\n stopAtPositional?: boolean;\n};\n\nexport const parseArgs = <Args extends ArgsDefinition>(args: Args, options?: arg.Options): ArgsDefinitionResult<Args> => {\n const spec: arg.Spec = {};\n const defaultValues: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(args)) {\n if (!(\"type\" in value)) {\n spec[key] = value;\n continue;\n }\n\n spec[key] = value.type;\n defaultValues[key] = value.default;\n\n if (value.alias) {\n for (const alias of Array.isArray(value.alias) ? value.alias : [value.alias]) {\n spec[alias] = key;\n }\n }\n }\n\n try {\n const parsed = arg(spec, options);\n for (const [key, value] of Object.entries(defaultValues)) {\n if (isNil(parsed[key])) {\n parsed[key] = value as never;\n }\n }\n return parsed as ArgsDefinitionResult<Args>;\n } catch (error: unknown) {\n if (error instanceof arg.ArgError) {\n // convert arg.ArgError to GGTError\n // eslint-disable-next-line no-ex-assign\n error = new ArgError(error.message);\n }\n if (error instanceof GGTError) {\n throw error;\n }\n throw new UnexpectedError(error);\n }\n};\n\nexport class ArgError extends GGTError {\n isBug = IsBug.NO;\n\n protected override render(): string {\n return `${chalk.redBright(symbol.cross)} ` + this.message;\n }\n}\n\n/**\n * Turns this:\n * ```ts\n * type Args = {\n * \"--string\": { type: String; alias: \"s\" };\n * \"--number\": { type: Number; default: 42 };\n * };\n * ```\n *\n * Into this:\n * ```ts\n * type Result = {\n * \"--string\": string | undefined;\n * \"--number\": number;\n * };\n * ```\n */\nexport type ArgsDefinitionResult<Args extends ArgsDefinition, Keys extends keyof Args = keyof Args> = Simplify<{\n [Key in Keys]: Args[Key] extends ArgDefinition<infer Handler>\n ? Args[Key] extends { default: unknown }\n ? NonNullable<ReturnType<Handler>>\n : ReturnType<Handler> | undefined\n : never;\n}> & { _: string[] };\n", "import type { EmptyObject } from \"type-fest\";\nimport type { RootArgs } from \"../../commands/root.js\";\nimport type { Application, Environment } from \"../app/app.js\";\nimport { createLogger, type Logger } from \"../output/log/logger.js\";\nimport type { StructuredLoggerOptions } from \"../output/log/structured.js\";\nimport type { User } from \"../user/user.js\";\nimport { defaults, pick } from \"../util/object.js\";\nimport { PromiseSignal } from \"../util/promise.js\";\nimport type { AnyVoid } from \"../util/types.js\";\nimport { parseArgs, type ArgsDefinition, type ArgsDefinitionResult, type ParseArgsOptions } from \"./arg.js\";\nimport type { Command } from \"./command.js\";\n\n/**\n * Represents the options that can be passed to {@linkcode Context.init}.\n */\nexport type ContextInit<Args extends ArgsDefinition> = ParseArgsOptions &\n StructuredLoggerOptions & {\n /**\n * The command that this context is running.\n */\n command?: Command;\n\n /**\n * The {@linkcode ArgsDefinition} to use to parse the arguments (`argv`).\n */\n parse?: Args;\n };\n\n/**\n * Represents the options that can be passed to {@linkcode Context.child}.\n *\n * @see {@linkcode Context.child}\n * @see {@linkcode ContextInit}\n */\nexport type ChildContextInit<Args extends ArgsDefinition, Parsed extends ArgsDefinitionResult<ArgsDefinition>> = Partial<\n ContextInit<Args>\n> & {\n /**\n * Replaces the parsed arguments of the parent context.\n */\n overwrite?: Partial<Omit<Parsed, \"_\">>;\n};\n\n/**\n * Represents the context of a command-line operation.\n */\nexport class Context<\n Args extends ArgsDefinition = EmptyObject,\n ParentArgs extends ArgsDefinition = RootArgs,\n ThisArgs extends ArgsDefinition = ParentArgs & Args,\n> extends AbortController {\n /**\n * The parsed command-line arguments for the current context and any\n * parent contexts.\n */\n readonly args: ArgsDefinitionResult<ThisArgs>;\n\n /**\n * A promise that resolves when the context is aborted and all the\n * registered onAbort callbacks have finished.\n */\n readonly done = new PromiseSignal<void>();\n\n /**\n * The logger for the current context.\n */\n #log: Logger;\n\n /**\n * The callbacks that will be called when this context is aborted.\n */\n #onAborts: OnAbort[] = [];\n\n /**\n * The parent context, if any.\n */\n #parent?: Context<ArgsDefinition, ParentArgs>;\n\n /**\n * The command that this context is running.\n */\n #command?: Command;\n\n /**\n * The user who is running this command, if any.\n */\n #user?: User;\n\n /**\n * The app this command is running against, if any.\n */\n #app?: Application;\n\n /**\n * The environment this command is running against, if any.\n */\n #env?: Environment;\n\n private constructor({\n parent,\n command,\n args,\n log,\n }: {\n parent?: Context<ArgsDefinition, ParentArgs>;\n command?: Command;\n args: ArgsDefinitionResult<ThisArgs>;\n log: Logger;\n }) {\n super();\n this.args = args;\n this.#log = log;\n this.#parent = parent;\n this.#command = command;\n\n // in case this context is ...spread into another object\n this.abort = this.abort.bind(this);\n this.child = this.child.bind(this);\n this.onAbort = this.onAbort.bind(this);\n\n // when the context is aborted, call all the registered callbacks\n this.signal.addEventListener(\n \"abort\",\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n async () => {\n let error: unknown;\n\n // call the callbacks in reverse order, like go's defer\n for (const callback of this.#onAborts.reverse()) {\n try {\n await callback(this.signal.reason);\n } catch (e: unknown) {\n error = e;\n this.log.error(\"error during abort\", { error });\n }\n }\n\n if (error) {\n this.done.reject(error);\n } else {\n this.done.resolve();\n }\n },\n );\n }\n\n /**\n * A {@linkcode Logger} that can print to stdout and log structured\n * messages to stderr.\n */\n get log(): Logger {\n return this.#log;\n }\n\n get command(): Command | \"root\" {\n return this.#command ?? this.#parent?.command ?? \"root\";\n }\n\n get user(): User | undefined {\n return this.#user ?? this.#parent?.user;\n }\n\n set user(user: User) {\n this.#user = user;\n if (this.#parent) {\n this.#parent.user = user;\n }\n\n this.#log = this.#log.child({\n fields: { user: { id: user.id } },\n devFields: { user },\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n get app(): Application | undefined {\n return this.#app ?? this.#parent?.app;\n }\n\n set app(app: Application) {\n this.#app = app;\n if (this.#parent) {\n this.#parent.app = app;\n }\n\n this.#log = this.#log.child({ fields: { app } });\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n get env(): Environment | undefined {\n return this.#env ?? this.#parent?.env;\n }\n\n set env(env: Environment) {\n this.#env = env;\n if (this.#parent) {\n this.#parent.env = env;\n }\n\n this.#log = this.#log.child({ fields: { env } });\n }\n\n /**\n * Initializes a new context.\n *\n * @see {@linkcode ContextInit}\n */\n static init<Args extends ArgsDefinition = EmptyObject>({ parse: spec, ...options }: ContextInit<Args>): Context<Args> {\n return new Context({\n args: spec ? parseArgs(spec, pick(options, [\"argv\", \"permissive\", \"stopAtPositional\"])) : ({} as ArgsDefinitionResult<Args>),\n log: createLogger(pick(options, [\"name\", \"fields\", \"devFields\"])),\n });\n }\n\n /**\n * Returns a new context that is a child of the current context.\n *\n * @see {@linkcode ChildContextInit}\n */\n child<ChildArgs extends ArgsDefinition = EmptyObject>({\n parse: spec,\n command = this.#command,\n ...options\n }: ChildContextInit<ChildArgs, ArgsDefinitionResult<ThisArgs>>): Context<ChildArgs, ThisArgs> {\n const ctx = new Context<ChildArgs, ThisArgs>({\n parent: this,\n command,\n args: {\n ...this.args,\n ...options.overwrite,\n ...(spec\n ? parseArgs(spec, defaults(pick(options, [\"argv\", \"permissive\", \"stopAtPositional\"]), { argv: this.args._ }))\n : ({} as ArgsDefinitionResult<ChildArgs>)),\n },\n log: this.log.child(pick(options, [\"name\", \"fields\", \"devFields\"])),\n });\n\n this.onAbort(() => ctx.abort());\n\n return ctx;\n }\n\n /**\n * Registers a callback that will be called when the context is\n * aborted (e.g. when the user presses Ctrl+C).\n *\n * @param callback - The callback to call when the context is aborted.\n */\n onAbort(callback: OnAbort): void {\n this.#onAborts.push(callback);\n }\n}\n\n/**\n * A callback that will be called when the context is aborted.\n */\nexport type OnAbort = (reason: unknown) => AnyVoid;\n", "import { HTTPError, type OptionsInit } from \"got\";\nimport type { Context } from \"../command/context.js\";\nimport { config } from \"../config/config.js\";\nimport { createLogger } from \"../output/log/logger.js\";\nimport { readSession, readToken } from \"../user/session.js\";\n\nconst log = createLogger({ name: \"auth\" });\n\n/**\n * Determines whether the given request options are for a Gadget\n * Services request.\n *\n * @param options - The request options to check.\n * @returns True if the request options are for a Gadget Services\n * request, false otherwise.\n */\nexport const isGadgetServicesRequest = (options: OptionsInit): boolean => {\n return options.url instanceof URL && options.url.host === config.domains.services;\n};\n\n/**\n * Loads the cookie from the session.\n *\n * @returns The cookie string or undefined if there is no session.\n */\nexport const loadCookie = (): string | undefined => {\n const token = readSession();\n return token && `session=${encodeURIComponent(token)};`;\n};\n\n/**\n * Loads the authentication headers.\n *\n * @returns The authentication headers as a record of key-value pairs, or undefined if no headers are available.\n */\nexport const loadAuthHeaders = (): Record<string, string> | undefined => {\n const cookie = loadCookie();\n if (cookie) {\n log.trace(\"using cookie as auth header\", {}, { cookie });\n return { cookie };\n }\n\n const token = readToken();\n if (token) {\n log.trace(\"using token as auth header\", {}, { token });\n return { \"x-platform-access-token\": token };\n }\n\n return undefined;\n};\n\nexport const isUnauthorizedError = (error: unknown): error is HTTPError => {\n return error instanceof HTTPError && error.response.statusCode === 401;\n};\n\n/**\n * Swallows unauthorized errors and logs a warning, rethrows all other\n * errors.\n *\n * @param ctx - The current context.\n * @param error - The error to handle.\n */\nexport const swallowUnauthorized = (ctx: Context, error: unknown): void => {\n if (isUnauthorizedError(error)) {\n ctx.log.warn(\"swallowing unauthorized error\", { error });\n return;\n }\n throw error;\n};\n", "import { got, type OptionsInit } from \"got\";\nimport ms from \"ms\";\nimport assert from \"node:assert\";\nimport { Agent as HttpAgent } from \"node:http\";\nimport { Agent as HttpsAgent } from \"node:https\";\nimport { Context } from \"../command/context.js\";\nimport { config } from \"../config/config.js\";\nimport { sprint } from \"../output/sprint.js\";\nimport { writeSession } from \"../user/session.js\";\nimport { serializeError } from \"../util/object.js\";\nimport { isGadgetServicesRequest } from \"./auth.js\";\n\nexport type HttpOptions = OptionsInit;\n\nconst getContext = (options: HttpOptions): Context => {\n assert(\n options.context?.[\"ctx\"] instanceof Context,\n sprint(`\n ctx must be provided to http requests:\n\n const response = await http({\n context: { ctx },\n ...options,\n });\n `),\n );\n\n return options.context[\"ctx\"] as Context;\n};\n\n/**\n * An instance of the `got` library with hooks for logging and handling\n * 401 errors. This should be used for all HTTP requests.\n */\nexport const http = got.extend({\n agent: {\n http: new HttpAgent({ keepAlive: true }),\n https: new HttpsAgent({ keepAlive: true }),\n },\n retry: {\n limit: 10,\n methods: [\"GET\", \"PUT\", \"HEAD\", \"DELETE\", \"OPTIONS\", \"TRACE\"],\n statusCodes: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],\n errorCodes: [\n \"ETIMEDOUT\",\n \"ECONNRESET\",\n \"EADDRINUSE\",\n \"ECONNREFUSED\",\n \"EPIPE\",\n \"ENOTFOUND\",\n \"ENETUNREACH\",\n \"EAI_AGAIN\",\n \"EADDRNOTAVAIL\",\n \"EHOSTUNREACH\",\n ],\n maxRetryAfter: undefined,\n calculateDelay: ({ computedValue }) => computedValue,\n backoffLimit: ms(\"5s\"),\n noise: 100,\n },\n hooks: {\n beforeRequest: [\n (options) => {\n const ctx = getContext(options);\n options.signal = ctx.signal;\n options.headers[\"user-agent\"] = config.versionFull;\n ctx.log.debug(\"http request\", {\n http: {\n request: {\n method: options.method,\n url: options.url?.toString(),\n },\n },\n });\n },\n ],\n beforeRetry: [\n (error, retryCount) => {\n const ctx = getContext(error.request?.options ?? error.options.context);\n\n ctx.log.warn(\"http request failed, retrying...\", {\n http: {\n retryCount,\n error: serializeError(error),\n request: error.request && {\n method: error.request.options.method,\n url: error.request.options.url?.toString(),\n },\n response: error.response && {\n statusCode: error.response.statusCode,\n traceId: error.response.headers[\"x-trace-id\"],\n durationMs: error.response.timings.phases.total,\n },\n },\n });\n },\n ],\n afterResponse: [\n (response) => {\n const ctx = getContext(response.request.options);\n ctx.log.debug(\"http response\", {\n http: {\n request: {\n method: response.request.options.method,\n url: response.request.options.url?.toString(),\n },\n response: {\n statusCode: response.statusCode,\n traceId: response.headers[\"x-trace-id\"],\n durationMs: response.timings.phases.total,\n },\n },\n });\n\n if (response.statusCode === 401 && isGadgetServicesRequest(response.request.options)) {\n // clear the session if the request was unauthorized\n writeSession(undefined);\n }\n\n return response;\n },\n ],\n },\n});\n"],
5
- "mappings": "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",
6
- "names": ["require_supports_color", "__commonJSMin", "exports", "module", "init_cjs", "os", "tty", "hasFlag", "env", "forceColor", "translateLevel", "level", "supportsColor", "haveStream", "streamIsTTY", "min", "osRelease", "sign", "version", "getSupportLevel", "stream", "require_supports_hyperlinks", "__commonJSMin", "exports", "module", "init_cjs", "supportsColor", "hasFlag", "parseVersion", "versionString", "m", "versions", "n", "supportsHyperlink", "stream", "env", "version", "require_arg", "__commonJSMin", "exports", "module", "init_cjs", "flagSymbol", "ArgError", "_ArgError", "msg", "code", "arg", "opts", "argv", "permissive", "stopAtPositional", "result", "aliases", "handlers", "key", "type", "isFlag", "fn", "value", "name", "prev", "i", "len", "wholeArg", "separatedArguments", "a", "j", "originalArgName", "argStr", "argName", "extended", "v", "existingCount", "init_cjs", "init_cjs", "ESC", "OSC", "BEL", "SEP", "isTerminalApp", "ansiEscapes", "x", "y", "returnValue", "count", "clear", "i", "text", "url", "buffer", "options", "cwd", "message", "hasX", "hasY", "ansi_escapes_default", "import_supports_hyperlinks", "terminalLink", "text", "url", "target", "options", "supportsHyperlinks", "ansi_escapes_default", "init_cjs", "randomUUID", "reportErrorAndExit", "ctx", "cause", "isAbortError", "error", "GGTError", "IsBug", "sendErrorToSentry", "installErrorHandlers", "initSentry", "handleError", "_GGTError", "env", "randomUUID", "message", "cleanStack", "workspaceRoot", "UnexpectedError", "rendered", "sprintln", "thisIsABug", "issueLink", "terminalLink", "options", "println", "serialized", "serializeError", "body", "EdgeCaseError", "init_cjs", "import_ms", "setTimeout", "delay", "duration", "options", "ms", "PromiseWrapper", "promise", "res", "err", "PromiseSignal", "resolve", "reject", "onfulfilled", "onrejected", "onfinally", "init_cjs", "import_arg", "parseArgs", "args", "options", "spec", "defaultValues", "key", "value", "alias", "parsed", "arg", "isNil", "error", "ArgError", "GGTError", "UnexpectedError", "IsBug", "source_default", "symbol", "init_cjs", "Context", "_Context", "PromiseSignal", "#log", "#onAborts", "#parent", "#command", "#user", "#app", "#env", "parent", "command", "args", "log", "error", "callback", "e", "user", "app", "env", "spec", "options", "parseArgs", "pick", "createLogger", "ctx", "defaults", "init_cjs", "log", "createLogger", "isGadgetServicesRequest", "options", "config", "loadCookie", "token", "readSession", "loadAuthHeaders", "cookie", "readToken", "isUnauthorizedError", "error", "HTTPError", "swallowUnauthorized", "ctx", "init_cjs", "import_ms", "assert", "HttpAgent", "HttpsAgent", "getContext", "options", "assert", "Context", "sprint", "http", "got", "HttpAgent", "HttpsAgent", "computedValue", "ms", "ctx", "config", "error", "retryCount", "serializeError", "response", "isGadgetServicesRequest", "writeSession"]
7
- }
@@ -1,183 +0,0 @@
1
- import{b as At,e as Mt,h as _t,j as Ae,k as te,l as Ft}from"./chunk-YRP2UZ2I.js";import{a as Et,b as xt}from"./chunk-5DLLJX5F.js";import{a as ct,c as Ct}from"./chunk-G3VNV5Z6.js";import{b as Q}from"./chunk-QEVWPU3D.js";import{c as Me}from"./chunk-NJIDVM2C.js";import{g as Ie,i as Tt}from"./chunk-KGSSHEEC.js";import{a as Fr,b as wr,c as w,k as It,p as vt,q as Rt}from"./chunk-GA7AL463.js";import{A as xe,B as ht,E as Pr,H as bt,I as ee,T as g,U as G,V as F,b,g as yt,n as dt,p as Ee,q as St,r as mt,s as gt,w as ft,x as N}from"./chunk-BZY2AIPV.js";import{a as v,c as x,e as R,g as l}from"./chunk-5WC5D4WL.js";var Jt=x((Ts,jt)=>{l();jt.exports=Qt;Qt.sync=Vr;var Ut=v("fs");function Lr(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 $t(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:Lr(t,n)}function Qt(e,t,n){Ut.stat(e,function(r,a){n(r,r?!1:$t(a,e,t))})}function Vr(e,t){return $t(Ut.statSync(e),e,t)}});var Kt=x((Rs,zt)=>{l();zt.exports=qt;qt.sync=Dr;var Wt=v("fs");function qt(e,t,n){Wt.stat(e,function(r,a){n(r,r?!1:Yt(a,t))})}function Dr(e,t){return Yt(Wt.statSync(e),t)}function Yt(e,t){return e.isFile()&&Hr(e,t)}function Hr(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 Zt=x((Ps,Xt)=>{l();var ws=v("fs"),ae;process.platform==="win32"||global.TESTING_WINDOWS?ae=Jt():ae=Kt();Xt.exports=Te;Te.sync=Ur;function Te(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){Te(e,t||{},function(o,s){o?a(o):r(s)})})}ae(e,t||{},function(r,a){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,a=!1),n(r,a)})}function Ur(e,t){try{return ae.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var sn=x((Bs,on)=>{l();var D=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",en=v("path"),$r=D?";":":",tn=Zt(),nn=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),rn=(e,t)=>{let n=t.colon||$r,r=e.match(/\//)||D&&e.match(/\\/)?[""]:[...D?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],a=D?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=D?a.split(n):[""];return D&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:r,pathExt:o,pathExtExe:a}},an=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:a,pathExtExe:o}=rn(e,t),s=[],i=p=>new Promise((c,y)=>{if(p===r.length)return t.all&&s.length?c(s):y(nn(e));let d=r[p],S=/^".*"$/.test(d)?d.slice(1,-1):d,f=en.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];tn(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)},Qr=(e,t)=>{t=t||{};let{pathEnv:n,pathExt:r,pathExtExe:a}=rn(e,t),o=[];for(let s=0;s<n.length;s++){let i=n[s],u=/^".*"$/.test(i)?i.slice(1,-1):i,p=en.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(tn.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 nn(e)};on.exports=an;an.sync=Qr});var un=x((Ns,ve)=>{"use strict";l();var ln=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};ve.exports=ln;ve.exports.default=ln});var dn=x((Ls,yn)=>{"use strict";l();var pn=v("path"),jr=sn(),Jr=un();function cn(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=jr.sync(e.command,{path:n[Jr({env:n})],pathExt:t?pn.delimiter:void 0})}catch{}finally{o&&process.chdir(r)}return s&&(s=pn.resolve(a?e.options.cwd:"",s)),s}function Wr(e){return cn(e)||cn(e,!0)}yn.exports=Wr});var Sn=x((Ds,Fe)=>{"use strict";l();var Re=/([()\][%!^"`<>&|;, *?])/g;function qr(e){return e=e.replace(Re,"^$1"),e}function Yr(e,t){return e=`${e}`,e=e.replace(/(\\*)"/g,'$1$1\\"'),e=e.replace(/(\\*)$/,"$1$1"),e=`"${e}"`,e=e.replace(Re,"^$1"),t&&(e=e.replace(Re,"^$1")),e}Fe.exports.command=qr;Fe.exports.argument=Yr});var gn=x((Us,mn)=>{"use strict";l();mn.exports=/^#!(.*)/});var hn=x((Qs,fn)=>{"use strict";l();var zr=gn();fn.exports=(e="")=>{let t=e.match(zr);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),a=n.split("/").pop();return a==="env"?r:r?`${a} ${r}`:a}});var En=x((Js,bn)=>{"use strict";l();var we=v("fs"),Kr=hn();function Xr(e){let n=Buffer.alloc(150),r;try{r=we.openSync(e,"r"),we.readSync(r,n,0,150,0),we.closeSync(r)}catch{}return Kr(n.toString())}bn.exports=Xr});var Mn=x((qs,An)=>{"use strict";l();var Zr=v("path"),xn=dn(),In=Sn(),ea=En(),ta=process.platform==="win32",na=/\.(?:com|exe)$/i,ra=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function aa(e){e.file=xn(e);let t=e.file&&ea(e.file);return t?(e.args.unshift(e.file),e.command=t,xn(e)):e.file}function oa(e){if(!ta)return e;let t=aa(e),n=!na.test(t);if(e.options.forceShell||n){let r=ra.test(t);e.command=Zr.normalize(e.command),e.command=In.command(e.command),e.args=e.args.map(o=>In.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 sa(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:oa(r)}An.exports=sa});var Tn=x((zs,Cn)=>{"use strict";l();var Pe=process.platform==="win32";function Oe(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 ia(e,t){if(!Pe)return;let n=e.emit;e.emit=function(r,a){if(r==="exit"){let o=_n(a,t,"spawn");if(o)return n.call(e,"error",o)}return n.apply(e,arguments)}}function _n(e,t){return Pe&&e===1&&!t.file?Oe(t.original,"spawn"):null}function la(e,t){return Pe&&e===1&&!t.file?Oe(t.original,"spawnSync"):null}Cn.exports={hookChildProcess:ia,verifyENOENT:_n,verifyENOENTSync:la,notFoundError:Oe}});var Fn=x((Xs,H)=>{"use strict";l();var vn=v("child_process"),Be=Mn(),ke=Tn();function Rn(e,t,n){let r=Be(e,t,n),a=vn.spawn(r.command,r.args,r.options);return ke.hookChildProcess(a,r),a}function ua(e,t,n){let r=Be(e,t,n),a=vn.spawnSync(r.command,r.args,r.options);return a.error=a.error||ke.verifyENOENTSync(a.status,r),a}H.exports=Rn;H.exports.spawn=Rn;H.exports.sync=ua;H.exports._parse=Be;H.exports._enoent=ke});var ar=x((Cl,rr)=>{"use strict";l();var{PassThrough:io}=v("stream");rr.exports=function(){var e=[],t=new io({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 Ir=x((yu,xr)=>{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))}xr.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 Ar=x(k=>{l();var Po=Ir();k.operation=function(e){var t=k.timeouts(e);return new Po(t,{forever:e&&(e.forever||e.retries===1/0),unref:e&&e.unref,maxRetryTime:e&&e.maxRetryTime})};k.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};k.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};k.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=k.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 _r=x((gu,Mr)=>{l();Mr.exports=Ar()});l();var j=R(ct(),1);var ne=class extends Map{created=N(()=>Array.from(this.entries()).filter(([,t])=>t.type==="create").map(([t])=>t));updated=N(()=>Array.from(this.entries()).filter(([,t])=>t.type==="update").map(([t])=>t));deleted=N(()=>Array.from(this.entries()).filter(([,t])=>t.type==="delete").map(([t])=>t))},Or=b.greenBright("+"),Br=b.blueBright("\xB1"),kr=b.redBright("-"),wt=b.yellowBright("\u2192"),J=(e,{changes:t,tense:n,limit:r=1/0,...a})=>{ee.logLevel<=ht.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"&&yt(S.oldPath)):return[wt,b.yellowBright(S.oldPath),s,wt,b.yellowBright(d)];case S.type==="create":return[Or,b.greenBright(d),i];case S.type==="update":return[Br,b.blueBright(d),u];case S.type==="delete":return[kr,b.redBright(d),p];default:return dt(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,j.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,j.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,j.default)("delete",h,!0);d.push(g`{redBright ${m}}`)}y=G`
2
- ${(0,j.default)("change",o.length,!0)} in total. ${d.join(", ")}.
3
- `}return Et({rows:c,footer:y,ensureEmptyLineAbove:!0,ensureEmptyLineAboveBody:!1,ensureEmptyLineAboveFooter:!0,indent:0,...a})},re=(e,t)=>{let n=J(e,t);n&&F(n)};l();var Pt=g(`
4
- subscription RemoteFileSyncEvents($localFilesVersion: String!) {
5
- remoteFileSyncEvents(localFilesVersion: $localFilesVersion, encoding: base64) {
6
- remoteFilesVersion
7
- changed {
8
- path
9
- mode
10
- content
11
- encoding
12
- }
13
- deleted {
14
- path
15
- }
16
- }
17
- }
18
- `),zo=g(`
19
- query RemoteFilesVersion {
20
- remoteFilesVersion
21
- }
22
- `),Ot=g(`
23
- mutation PublishFileSyncEvents($input: PublishFileSyncEventsInput!) {
24
- publishFileSyncEvents(input: $input) {
25
- remoteFilesVersion
26
- problems {
27
- level
28
- message
29
- path
30
- type
31
- }
32
- }
33
- }
34
- `),Bt=g(`
35
- query FileSyncFiles($paths: [String!]!, $filesVersion: String, $encoding: FileSyncEncoding) {
36
- fileSyncFiles(paths: $paths, filesVersion: $filesVersion, encoding: $encoding) {
37
- filesVersion
38
- files {
39
- path
40
- mode
41
- content
42
- encoding
43
- }
44
- }
45
- }
46
- `),kt=g(`
47
- query FileSyncHashes($filesVersion: String) {
48
- fileSyncHashes(filesVersion: $filesVersion) {
49
- filesVersion
50
- hashes
51
- }
52
- }
53
- `),Nt=g(`
54
- query FileSyncComparisonHashes($filesVersion: String!) {
55
- fileSyncComparisonHashes(filesVersion: $filesVersion) {
56
- filesVersionHashes {
57
- filesVersion
58
- hashes
59
- }
60
- latestFilesVersionHashes {
61
- filesVersion
62
- hashes
63
- }
64
- }
65
- }
66
- `),Ko=g(`
67
- subscription PublishStatus($localFilesVersion: String!, $force: Boolean, $allowCharges: Boolean) {
68
- publishStatus(localFilesVersion: $localFilesVersion, force: $force, allowCharges: $allowCharges) {
69
- publishStarted
70
- remoteFilesVersion
71
- progress
72
- issues {
73
- severity
74
- message
75
- node {
76
- type
77
- key
78
- apiIdentifier
79
- name
80
- fieldType
81
- parentKey
82
- parentApiIdentifier
83
- }
84
- nodeLabels {
85
- type
86
- identifier
87
- }
88
- }
89
- status {
90
- code
91
- message
92
- output
93
- }
94
- }
95
- }
96
- `),Xo=g(`
97
- mutation createModel($path: String!, $fields: [CreateModelFieldsInput!]) {
98
- createModel(path: $path, fields: $fields) {
99
- remoteFilesVersion
100
- changed {
101
- path
102
- mode
103
- content
104
- encoding
105
- }
106
- }
107
- }
108
- `),Zo=g(`
109
- mutation createAction($path: String!) {
110
- createAction(path: $path) {
111
- remoteFilesVersion
112
- changed {
113
- path
114
- mode
115
- content
116
- encoding
117
- }
118
- }
119
- }
120
- `),es=g(`
121
- mutation createRoute($method: String!, $path: String!) {
122
- createRoute(method: $method, path: $path) {
123
- remoteFilesVersion
124
- changed {
125
- path
126
- mode
127
- content
128
- encoding
129
- }
130
- }
131
- }
132
- `),ts=g(`
133
- mutation createModelFields($path: String!, $fields: [CreateModelFieldsInput!]!) {
134
- createModelFields(path: $path, fields: $fields) {
135
- remoteFilesVersion
136
- changed {
137
- path
138
- mode
139
- content
140
- encoding
141
- }
142
- }
143
- }
144
- `);l();var Lt=R(wr(),1);l();var Gt=N(ft,e=>(e??="",["true","1"].includes(e.trim().toLowerCase())));var P=()=>!bt.testLike&&Gt(process.env.CI)?new Date().toISOString():b.gray((0,Lt.default)().format("hh:mm:ss A"));l();l();import Nr from"node:assert";var L=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)}},V=(e,{from:t,to:n,existing:r,ignore:a})=>{let o=new L,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?W(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];Nr(u,"targetHash should exist"),o.set(i,{type:"create",targetHash:u}),e.log.trace("file created",{path:i,targetHash:u})}return r?Gr(e,{changes:o,existing:r}):o},Gr=(e,{changes:t,existing:n})=>{let r=new L;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&&W(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},W=(e,t,n)=>t.sha1===n.sha1,Vt=(e,t,n)=>{for(let[r,a]of Object.entries(t)){let o=n[r];if(!o||!W(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 _e=class extends Map{},Dt=({localChanges:e,environmentChanges:t})=>{let n=new _e;for(let[r,a]of e){let o=t.get(r);o&&(a.type==="delete"&&o.type==="delete"||"targetHash"in a&&"targetHash"in o&&W(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},Ce=({conflicts:e,changes:t})=>{let n=new L(t);for(let[r]of n)e.has(r)&&n.delete(r);return n},Ht=({conflicts:e})=>{let t=b.greenBright("+ created"),n=b.blueBright("\xB1 updated"),r=b.redBright("- deleted");xt({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 As=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`}),Ms=(e,t)=>{if(["local","environment"].includes(e))return O[e.toUpperCase()];if(e==="gadget")return O.ENVIRONMENT;throw new Tt(g`
145
- ${t} must be {bold local} or {bold environment}
146
-
147
- {bold EXAMPLES:}
148
- ${t}=local
149
- ${t}=environment
150
- `)};l();l();var fr=R(Fn(),1);import{Buffer as Co}from"node:buffer";import To from"node:path";import ot from"node:child_process";import he from"node:process";l();function Ne(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 se from"node:process";import q from"node:path";import{fileURLToPath as wn}from"node:url";l();function oe(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 pa=({cwd:e=se.cwd(),path:t=se.env[oe()],preferLocal:n=!0,execPath:r=se.execPath,addExecPath:a=!0}={})=>{let o=e instanceof URL?wn(e):e,s=q.resolve(o),i=[];return n&&ca(i,s),a&&ya(i,r,s),[...i,t].join(q.delimiter)},ca=(e,t)=>{let n;for(;n!==t;)e.push(q.join(t,"node_modules/.bin")),n=t,t=q.resolve(t,"..")},ya=(e,t,n)=>{let r=t instanceof URL?wn(t):t;e.push(q.resolve(n,r,".."))},Pn=({env:e=se.env,...t}={})=>{e={...e};let n=oe({env:e});return t.path=e[n],e[n]=pa(t),e};l();l();var da=(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)},ma=(e,t)=>{let n=Object.getPrototypeOf(t);n!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,n)},ga=(e,t)=>`/* Wrapped ${e}*/
152
- ${t}`,fa=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),ha=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),ba=(e,t,n)=>{let r=n===""?"":`with ${n.trim()}() `,a=ga.bind(null,r,t.toString());Object.defineProperty(a,"name",ha),Object.defineProperty(e,"toString",{...fa,value:a})};function Ge(e,t,{ignoreNonConfigurable:n=!1}={}){let{name:r}=e;for(let a of Reflect.ownKeys(t))da(e,t,a,n);return ma(e,t),ba(e,t,r),e}var ie=new WeakMap,On=(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(ie.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 Ge(o,e),ie.set(o,r),o};On.callCount=e=>{if(!ie.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return ie.get(e)};var Bn=On;l();import Ra from"node:process";l();import{constants as Aa}from"node:os";l();var kn=()=>{let e=Gn-Nn+1;return Array.from({length:e},Ea)},Ea=(e,t)=>({name:`SIGRT${t+1}`,number:Nn+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),Nn=34,Gn=64;l();import{constants as xa}from"node:os";l();var Ln=[{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 Le=()=>{let e=kn();return[...Ln,...e].map(Ia)},Ia=({name:e,number:t,description:n,action:r,forced:a=!1,standard:o})=>{let{signals:{[e]:s}}=xa,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=Le();return Object.fromEntries(e.map(_a))},_a=({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}],Vn=Ma(),Ca=()=>{let e=Le(),t=65,n=Array.from({length:t},(r,a)=>Ta(a,e));return Object.assign({},...n)},Ta=(e,t)=>{let n=va(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}}},va=(e,t)=>{let n=t.find(({name:r})=>Aa.signals[r]===e);return n!==void 0?n:t.find(r=>r.number===e)},Ci=Ca();var Fa=({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",Y=({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=Ra.cwd()}}})=>{o=o===null?void 0:o,a=a===null?void 0:a;let S=a===void 0?void 0:Vn[a].description,f=r&&r.code,m=`Command ${Fa({timedOut:u,timeout:y,errorCode:f,signal:a,signalDescription:S,exitCode:o,isCanceled:p})}: ${s}`,I=Object.prototype.toString.call(r)==="[object Error]",E=I?`${m}
153
- ${r.message}`:m,_=[E,t,e].filter(Boolean).join(`
154
- `);return I?(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=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 le=["stdin","stdout","stderr"],wa=e=>le.some(t=>e[t]!==void 0),Dn=e=>{if(!e)return;let{stdio:t}=e;if(t===void 0)return le.map(r=>e[r]);if(wa(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${le.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,le.length);return Array.from({length:n},(r,a)=>t[a])};l();import Ba from"node:os";l();l();var B=[];B.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&B.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&B.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var ue=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",Ve=Symbol.for("signal-exit emitter"),De=globalThis,Pa=Object.defineProperty.bind(Object),He=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(De[Ve])return De[Ve];Pa(De,Ve,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,n){this.listeners[t].push(n)}removeListener(t,n){let r=this.listeners[t],a=r.indexOf(n);a!==-1&&(a===0&&r.length===1?r.length=0:r.splice(a,1))}emit(t,n,r){if(this.emitted[t])return!1;this.emitted[t]=!0;let a=!1;for(let o of this.listeners[t])a=o(n,r)===!0||a;return t==="exit"&&(a=this.emit("afterExit",n,r)||a),a}},pe=class{},Oa=e=>({onExit(t,n){return e.onExit(t,n)},load(){return e.load()},unload(){return e.unload()}}),Ue=class extends pe{onExit(){return()=>{}}load(){}unload(){}},$e=class extends pe{#s=Qe.platform==="win32"?"SIGINT":"SIGHUP";#t=new He;#e;#a;#o;#r={};#n=!1;constructor(t){super(),this.#e=t,this.#r={};for(let n of B)this.#r[n]=()=>{let r=this.#e.listeners(n),{count:a}=this.#t,o=t;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(a+=o.__signal_exit_emitter__.count),r.length===a){this.unload();let s=this.#t.emit("exit",null,n),i=n==="SIGHUP"?this.#s:n;s||t.kill(t.pid,i)}};this.#o=t.reallyExit,this.#a=t.emit}onExit(t,n){if(!ue(this.#e))return()=>{};this.#n===!1&&this.load();let r=n?.alwaysLast?"afterExit":"exit";return this.#t.on(r,t),()=>{this.#t.removeListener(r,t),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#n){this.#n=!0,this.#t.count+=1;for(let t of B)try{let n=this.#r[t];n&&this.#e.on(t,n)}catch{}this.#e.emit=(t,...n)=>this.#l(t,...n),this.#e.reallyExit=t=>this.#i(t)}}unload(){this.#n&&(this.#n=!1,B.forEach(t=>{let n=this.#r[t];if(!n)throw new Error("Listener not defined for signal: "+t);try{this.#e.removeListener(t,n)}catch{}}),this.#e.emit=this.#a,this.#e.reallyExit=this.#o,this.#t.count-=1)}#i(t){return ue(this.#e)?(this.#e.exitCode=t||0,this.#t.emit("exit",this.#e.exitCode,null),this.#o.call(this.#e,this.#e.exitCode)):0}#l(t,...n){let r=this.#a;if(t==="exit"&&ue(this.#e)){typeof n[0]=="number"&&(this.#e.exitCode=n[0]);let a=r.call(this.#e,t,...n);return this.#t.emit("exit",this.#e.exitCode,null),a}else return r.call(this.#e,t,...n)}},Qe=globalThis.process,{onExit:Hn,load:Li,unload:Vi}=Oa(ue(Qe)?new $e(Qe):new Ue);var ka=1e3*5,Un=(e,t="SIGTERM",n={})=>{let r=e(t);return Na(e,t,n,r),r},Na=(e,t,n,r)=>{if(!Ga(t,n,r))return;let a=Va(n),o=setTimeout(()=>{e("SIGKILL")},a);o.unref&&o.unref()},Ga=(e,{forceKillAfterTimeout:t},n)=>La(e)&&t!==!1&&n,La=e=>e===Ba.constants.signals.SIGTERM||typeof e=="string"&&e.toUpperCase()==="SIGTERM",Va=({forceKillAfterTimeout:e=!0})=>{if(e===!0)return ka;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},$n=(e,t)=>{e.kill()&&(t.isCanceled=!0)},Da=(e,t,n)=>{e.kill(t),n(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},Qn=(e,{timeout:t,killSignal:n="SIGTERM"},r)=>{if(t===0||t===void 0)return r;let a,o=new Promise((i,u)=>{a=setTimeout(()=>{Da(e,n,u)},t)}),s=r.finally(()=>{clearTimeout(a)});return Promise.race([o,s])},jn=({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})`)},Jn=async(e,{cleanup:t,detached:n},r)=>{if(!t||n)return r;let a=Hn(()=>{e.kill()});return r.finally(()=>{a()})};l();import{createWriteStream as Ha}from"node:fs";import{ChildProcess as Ua}from"node:child_process";l();function ce(e){return e!==null&&typeof e=="object"&&typeof e.pipe=="function"}function je(e){return ce(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object"}var $a=e=>e instanceof Ua&&typeof e.then=="function",Je=(e,t,n)=>{if(typeof n=="string")return e[t].pipe(Ha(n)),e;if(je(n))return e[t].pipe(n),e;if(!$a(n))throw new TypeError("The second argument must be a string, a stream or an Execa child process.");if(!je(n.stdin))throw new TypeError("The target child process's stdin must be available.");return e[t].pipe(n.stdin),n},Wn=e=>{e.stdout!==null&&(e.pipeStdout=Je.bind(void 0,e,"stdout")),e.stderr!==null&&(e.pipeStderr=Je.bind(void 0,e,"stderr")),e.all!==void 0&&(e.pipeAll=Je.bind(void 0,e,"all"))};l();import{createReadStream as lo,readFileSync as uo}from"node:fs";import{setTimeout as po}from"node:timers/promises";l();l();l();var z=async(e,{init:t,convertChunk:n,getSize:r,truncateChunk:a,addChunk:o,getFinalChunk:s,finalize:i},{maxBuffer:u=Number.POSITIVE_INFINITY}={})=>{if(!ja(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=Ja(c),d=n[y](c,p);zn({convertedChunk:d,state:p,getSize:r,truncateChunk:a,addChunk:o,maxBuffer:u})}return Qa({state:p,convertChunk:n,getSize:r,truncateChunk:a,addChunk:o,getFinalChunk:s,maxBuffer:u}),i(p)}catch(c){throw c.bufferedData=i(p),c}},Qa=({state:e,getSize:t,truncateChunk:n,addChunk:r,getFinalChunk:a,maxBuffer:o})=>{let s=a(e);s!==void 0&&zn({convertedChunk:s,state:e,getSize:t,truncateChunk:n,addChunk:r,maxBuffer:o})},zn=({convertedChunk:e,state:t,getSize:n,truncateChunk:r,addChunk:a,maxBuffer:o})=>{let s=n(e),i=t.length+s;if(i<=o){qn(e,t,a,i);return}let u=r(e,o-t.length);throw u!==void 0&&qn(u,t,a,o),new ye},qn=(e,t,n,r)=>{t.contents=n(e,t,r),t.length=r},ja=e=>typeof e=="object"&&e!==null&&typeof e[Symbol.asyncIterator]=="function",Ja=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=Yn.call(e);return n==="[object ArrayBuffer]"?"arrayBuffer":n==="[object DataView]"?"dataView":Number.isInteger(e.byteLength)&&Number.isInteger(e.byteOffset)&&Yn.call(e.buffer)==="[object ArrayBuffer]"?"typedArray":"others"},{toString:Yn}=Object.prototype,ye=class extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}};l();var We=e=>e,qe=()=>{},Ye=({contents:e})=>e,de=e=>{throw new Error(`Streams in object mode are not supported: ${String(e)}`)},Se=e=>e.length;l();async function ze(e,t){return z(e,to,t)}var Wa=()=>({contents:new ArrayBuffer(0)}),qa=e=>Ya.encode(e),Ya=new TextEncoder,Kn=e=>new Uint8Array(e),Xn=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),za=(e,t)=>e.slice(0,t),Ka=(e,{contents:t,length:n},r)=>{let a=tr()?Za(t,r):Xa(t,r);return new Uint8Array(a).set(e,n),a},Xa=(e,t)=>{if(t<=e.byteLength)return e;let n=new ArrayBuffer(er(t));return new Uint8Array(n).set(new Uint8Array(e),0),n},Za=(e,t)=>{if(t<=e.maxByteLength)return e.resize(t),e;let n=new ArrayBuffer(t,{maxByteLength:er(t)});return new Uint8Array(n).set(new Uint8Array(e),0),n},er=e=>Zn**Math.ceil(Math.log(e)/Math.log(Zn)),Zn=2,eo=({contents:e,length:t})=>tr()?e:e.slice(0,t),tr=()=>"resize"in ArrayBuffer.prototype,to={init:Wa,convertChunk:{string:qa,buffer:Kn,arrayBuffer:Kn,dataView:Xn,typedArray:Xn,others:de},getSize:Se,truncateChunk:za,addChunk:Ka,getFinalChunk:qe,finalize:eo};l();async function me(e,t){if(!("Buffer"in globalThis))throw new Error("getStreamAsBuffer() is only supported in Node.js");try{return nr(await ze(e,t))}catch(n){throw n.bufferedData!==void 0&&(n.bufferedData=nr(n.bufferedData)),n}}var nr=e=>globalThis.Buffer.from(e);l();async function Ke(e,t){return z(e,so,t)}var no=()=>({contents:"",textDecoder:new TextDecoder}),ge=(e,{textDecoder:t})=>t.decode(e,{stream:!0}),ro=(e,{contents:t})=>t+e,ao=(e,t)=>e.slice(0,t),oo=({textDecoder:e})=>{let t=e.decode();return t===""?void 0:t},so={init:no,convertChunk:{string:We,buffer:ge,arrayBuffer:ge,dataView:ge,typedArray:ge,others:de},getSize:Se,truncateChunk:ao,addChunk:ro,getFinalChunk:oo,finalize:Ye};var or=R(ar(),1),sr=e=>{if(e!==void 0)throw new TypeError("The `input` and `inputFile` options cannot be both set.")},co=({input:e,inputFile:t})=>typeof t!="string"?e:(sr(e),uo(t)),ir=e=>{let t=co(e);if(ce(t))throw new TypeError("The `input` option cannot be a stream in sync mode");return t},yo=({input:e,inputFile:t})=>typeof t!="string"?e:(sr(e),lo(t)),lr=(e,t)=>{let n=yo(t);n!==void 0&&(ce(n)?n.pipe(e.stdin):e.stdin.end(n))},ur=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let n=(0,or.default)();return e.stdout&&n.add(e.stdout),e.stderr&&n.add(e.stderr),n},Xe=async(e,t)=>{if(!(!e||t===void 0)){await po(0),e.destroy();try{return await t}catch(n){return n.bufferedData}}},Ze=(e,{encoding:t,buffer:n,maxBuffer:r})=>{if(!(!e||!n))return t==="utf8"||t==="utf-8"?Ke(e,{maxBuffer:r}):t===null||t==="buffer"?me(e,{maxBuffer:r}):So(e,r,t)},So=async(e,t,n)=>(await me(e,{maxBuffer:t})).toString(n),pr=async({stdout:e,stderr:t,all:n},{encoding:r,buffer:a,maxBuffer:o},s)=>{let i=Ze(e,{encoding:r,buffer:a,maxBuffer:o}),u=Ze(t,{encoding:r,buffer:a,maxBuffer:o}),p=Ze(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},Xe(e,i),Xe(t,u),Xe(n,p)])}};l();var mo=(async()=>{})().constructor.prototype,go=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(mo,e)]),et=(e,t)=>{for(let[n,r]of go){let a=typeof t=="function"?(...o)=>Reflect.apply(r.value,t(),o):r.value.bind(t);Reflect.defineProperty(e,n,{...r,value:a})}},cr=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 fo}from"node:buffer";import{ChildProcess as ho}from"node:child_process";var Sr=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],bo=/^[\w.-]+$/,Eo=e=>typeof e!="string"||bo.test(e)?e:`"${e.replaceAll('"','\\"')}"`,tt=(e,t)=>Sr(e,t).join(" "),nt=(e,t)=>Sr(e,t).map(n=>Eo(n)).join(" "),xo=/ +/g;var yr=e=>{let t=typeof e;if(t==="string")return e;if(t==="number")return String(e);if(t==="object"&&e!==null&&!(e instanceof ho)&&"stdout"in e){let n=typeof e.stdout;if(n==="string")return e.stdout;if(fo.isBuffer(e.stdout))return e.stdout.toString();throw new TypeError(`Unexpected "${n}" stdout in template expression`)}throw new TypeError(`Unexpected "${t}" in template expression`)},dr=(e,t,n)=>n||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t[0]}`,...t.slice(1)],Io=({templates:e,expressions:t,tokens:n,index:r,template:a})=>{let o=a??e.raw[r],s=o.split(xo).filter(Boolean),i=dr(n,s,o.startsWith(" "));if(r===t.length)return i;let u=t[r],p=Array.isArray(u)?u.map(c=>yr(c)):[yr(u)];return dr(i,p,o.endsWith(" "))},rt=(e,t)=>{let n=[];for(let[r,a]of e.entries())n=Io({templates:e,expressions:t,tokens:n,index:r,template:a});return n};l();import{debuglog as Ao}from"node:util";import Mo from"node:process";var mr=Ao("execa").enabled,fe=(e,t)=>String(e).padStart(t,"0"),_o=()=>{let e=new Date;return`${fe(e.getHours(),2)}:${fe(e.getMinutes(),2)}:${fe(e.getSeconds(),2)}.${fe(e.getMilliseconds(),3)}`},at=(e,{verbose:t})=>{t&&Mo.stderr.write(`[${_o()}] ${e}
155
- `)};var vo=1e3*1e3*100,Ro=({env:e,extendEnv:t,preferLocal:n,localDir:r,execPath:a})=>{let o=t?{...he.env,...e}:e;return n?Pn({env:o,cwd:r,execPath:a}):o},hr=(e,t,n={})=>{let r=fr.default._parse(e,t,n);return e=r.command,t=r.args,n=r.options,n={maxBuffer:vo,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:n.cwd||he.cwd(),execPath:he.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:mr,...n},n.env=Ro(n),n.stdio=Dn(n),he.platform==="win32"&&To.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:n,parsed:r}},K=(e,t,n)=>typeof t!="string"&&!Co.isBuffer(t)?n===void 0?void 0:"":e.stripFinalNewline?Ne(t):t;function st(e,t,n){let r=hr(e,t,n),a=tt(e,t),o=nt(e,t);at(o,r.options),jn(r.options);let s;try{s=ot.spawn(r.file,r.args,r.options)}catch(S){let f=new ot.ChildProcess,h=Promise.reject(Y({error:S,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:r,timedOut:!1,isCanceled:!1,killed:!1}));return et(f,h),f}let i=cr(s),u=Qn(s,r.options,i),p=Jn(s,r.options,u),c={isCanceled:!1};s.kill=Un.bind(null,s.kill.bind(s)),s.cancel=$n.bind(null,s,c);let d=Bn(async()=>{let[{error:S,exitCode:f,signal:h,timedOut:m},I,E,_]=await pr(s,r.options,p),C=K(r.options,I),T=K(r.options,E),Z=K(r.options,_);if(S||f!==0||h!==null){let pt=Y({error:S,exitCode:f,signal:h,stdout:C,stderr:T,all:Z,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 pt;throw pt}return{command:a,escapedCommand:o,exitCode:0,stdout:C,stderr:T,all:Z,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return lr(s,r.options),s.all=ur(s,r.options),Wn(s),et(s,d),s}function Fo(e,t,n){let r=hr(e,t,n),a=tt(e,t),o=nt(e,t);at(o,r.options);let s=ir(r.options),i;try{i=ot.spawnSync(r.file,r.args,{...r.options,input:s})}catch(c){throw Y({error:c,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:r,timedOut:!1,isCanceled:!1,killed:!1})}let u=K(r.options,i.stdout,i.error),p=K(r.options,i.stderr,i.error);if(i.error||i.status!==0||i.signal!==null){let c=Y({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 wo=({input:e,inputFile:t,stdio:n})=>e===void 0&&t===void 0&&n===void 0?{stdin:"inherit"}:{},gr=(e={})=>({preferLocal:!0,...wo(e),...e});function br(e){function t(n,...r){if(!Array.isArray(n))return br({...e,...n});let[a,...o]=rt(n,r);return st(a,o,gr(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]=rt(n,r);return Fo(a,o,gr(e))},t}var iu=br();var M=R(Pr(),1),Rr=R(Fr(),1);import U from"node:assert";import be from"node:path";import No from"node:process";l();async function X(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 I=async()=>{if(y)return;let E=await h.next(),_=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 C=[];for(let[T,Z]of i.entries())p.get(T)!==Er&&C.push(Z);o(C)}return}S++,(async()=>{try{let C=await E.value;if(y)return;let T=await t(C,_);T===Er&&p.set(_,T),i[_]=T,S--,await I()}catch(C){if(r)m(C);else{u.push(C),S--;try{await I()}catch(T){m(T)}}}})()};(async()=>{for(let E=0;E<n;E++){try{await I()}catch(_){m(_);break}if(d||c)break}})()})}var Er=Symbol("skip");l();var Tr=R(_r(),1);l();var Oo=Object.prototype.toString,Bo=e=>Oo.call(e)==="[object Error]",ko=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 it(e){return e&&Bo(e)&&e.name==="TypeError"&&typeof e.message=="string"?e.message==="Load failed"?e.stack===void 0:ko.has(e.message):!1}var lt=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}},Cr=(e,t,n)=>{let r=n.retries-(t-1);return e.attemptNumber=t,e.retriesLeft=r,e};async function ut(e,t){return new Promise((n,r)=>{t={onFailedAttempt(){},retries:10,shouldRetry:()=>!0,...t};let a=Tr.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 lt)throw u.originalError;if(u instanceof TypeError&&!it(u))throw u;if(Cr(u,i,t),await t.shouldRetry(u)||(a.stop(),r(u)),await t.onFailedAttempt(u),!a.retry(u))throw a.mainError()}catch(p){Cr(p,i,t),s(),r(p)}}})})}var $=R(ct(),1);l();var Go=50*1024*1024,vr=class{constructor(t){this.syncJson=t}_syncOperations=new Ct({concurrency:1});async hashes(t,n){let r=n?void 0:Q({ensureEmptyLineAbove:!0})`
156
- Calculating file changes.
157
- `;try{let[a,{localFilesVersionHashes:o,environmentHashes:s,environmentFilesVersion:i}]=await Promise.all([this.syncJson.directory.hashes(),(async()=>{let h,m,I;if(this.syncJson.filesVersion===0n){let{fileSyncHashes:E}=await this.syncJson.edit.query({query:kt});I=BigInt(E.filesVersion),m=E.hashes,h={}}else{let{fileSyncComparisonHashes:E}=await this.syncJson.edit.query({query:Nt,variables:{filesVersion:String(this.syncJson.filesVersion)}});h=E.filesVersionHashes.hashes,m=E.latestFilesVersionHashes.hashes,I=BigInt(E.latestFilesVersionHashes.filesVersion)}return{localFilesVersionHashes:h,environmentHashes:m,environmentFilesVersion:I}})()]),u=Vt(t,a,s),p=V(t,{from:o,to:a,existing:s,ignore:[".gadget/"]}),c=V(t,{from:o,to:s,existing:a});!u&&p.size===0&&c.size===0&&(c=V(t,{from:a,to:s}),U(c.size>0,"expected environmentChanges to have changes"),U(Array.from(c.keys()).every(h=>h.startsWith(".gadget/")),"expected all environmentChanges to be .gadget/ files")),U(u||p.size>0||c.size>0,"there must be changes if hashes don't match");let y=V(t,{from:s,to:a,ignore:[".gadget/"]}),d=V(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?re(t,{changes:a,tense:"past",title:g`Your local files {underline have} changed.`}):F({ensureEmptyLineAbove:!0})`
158
- Your local files {underline have not} changed.
159
- `,o.size>0&&!s?re(t,{changes:o,tense:"past",title:g`Your environment's files {underline have}${i?" also":""} changed.`}):F({ensureEmptyLineAbove:!0})`
160
- Your environment's files {underline have not} changed.
161
- `)}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){te(t,o),await this.merge(t,{printEnvironmentChangesOptions:a})}})}subscribeToEnvironmentChanges(t,{beforeChanges:n=xe,printEnvironmentChangesOptions:r,afterChanges:a=xe,onError:o}){return this.syncJson.edit.subscribe({subscription:Pt,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:G`{greenBright ${w.tick}} Pulled ${(0,$.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){te(t,u)}}while(i<r);throw new _t(r)}async push(t,{hashes:n,force:r,printLocalChangesOptions:a}={}){let{localChangesToPush:o,environmentChanges:s,environmentFilesVersion:i,onlyDotGadgetFilesChanged:u}=n??await this.hashes(t);U(o.size>0,"cannot push if there are no changes"),!(r??t.args["--force"])&&s.size>0&&!u&&await Me({ensureEmptyLineAbove:!0})`
162
- Are you sure you want to {underline discard} your environment's changes?
163
- `;try{await this._sendChangesToEnvironment(t,{changes:o,expectedFilesVersion:i,printLocalChangesOptions:a})}catch(p){throw te(t,p),new Ie(g`
164
- Your environment's files have changed since we last checked.
165
-
166
- Please re-run "ggt ${t.command}" to see the changes and try again.
167
- `)}}async pull(t,{hashes:n,force:r,printEnvironmentChangesOptions:a}={}){let{localChanges:o,environmentChangesToPull:s,environmentFilesVersion:i}=n??await this.hashes(t);U(s.size>0,"cannot push if there are no changes"),o.size>0&&!(r??t.args["--force"])&&await Me`
168
- Are you sure you want to {underline discard} your local changes?
169
- `,await this._getChangesFromEnvironment(t,{changes:s,filesVersion:i,printEnvironmentChangesOptions:a})}async writeToLocalFilesystem(t,n){let r=BigInt(n.filesVersion);U(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 ne,o=new Set;await X(n.delete,async s=>{let i=be.dirname(s);for(;i!==".";)o.add(this.syncJson.directory.normalize(i,!0)),i=be.dirname(i);let u=this.syncJson.directory.absolute(s),p=this.syncJson.directory.absolute(".gadget/backup",this.syncJson.directory.relative(s));await ut(async()=>{try{await M.default.remove(p),await M.default.move(u,p),a.set(s,{type:"delete"})}catch(c){if(Ee(c))return;if(mt(c)||gt(c)){let y=be.dirname(p);for(;y!==this.syncJson.directory.absolute(".gadget/backup");)(await M.default.stat(y)).isDirectory()||(t.log.debug("removing file in the way of backup path",{currentPath:u,backupPath:p,file:y}),await M.default.remove(y)),y=be.dirname(y)}throw c}},{retries:ee.windows?4:2,minTimeout:(0,Rr.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 M.default.rmdir(this.syncJson.directory.absolute(s)),a.set(s,{type:"delete"})}catch(i){if(Ee(i)||St(i))continue;throw i}if(await X(n.files,async s=>{let i=this.syncJson.directory.absolute(s.path);await M.default.pathExists(i)?s.path.endsWith("/")||a.set(s.path,{type:"update"}):a.set(s.path,{type:"create"}),s.path.endsWith("/")?await M.default.ensureDir(i):await M.default.outputFile(i,Buffer.from(s.content,s.encoding)),vt&&await M.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(),re(t,{changes:a,tense:"past",title:g`{greenBright ${w.arrowDown}} Pulled ${(0,$.default)("file",a.size)}. ${P()}`,...n.printEnvironmentChangesOptions}),a.has("yarn.lock")){let s=Q({ensureEmptyLineAbove:!0})('Running "yarn install --check-files"');try{await st("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=It(i).message;u&&F({ensureEmptyLineAbove:!0,indent:2})(u)}}return a}async _merge(t,{hashes:{localChanges:n,environmentChanges:r,environmentFilesVersion:a},printLocalChangesOptions:o,printEnvironmentChangesOptions:s}){let i=Dt({localChanges:n,environmentChanges:r});if(i.size>0){t.log.debug("conflicts detected",{conflicts:i});let u=t.args["--prefer"];switch(u||(Ht({conflicts:i}),u=await Ft({choices:Object.values(O)})`
170
- {bold How should we resolve these conflicts?}
171
- `),u){case O.CANCEL:{No.exit(0);break}case O.LOCAL:{r=Ce({conflicts:i,changes:r});break}case O.ENVIRONMENT:{n=Ce({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=Q({ensureEmptyLineAbove:!0})(J(t,{changes:r,tense:"present",title:g`Pulling ${(0,$.default)("file",r.size)}.`,...a}));try{let u=[];if(o.length>0||s.length>0){let{fileSyncFiles:p}=await this.syncJson.edit.query({query:Bt,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 X(n,async([p,c])=>{if(c.type==="delete"){s.push({path:p});return}let y=this.syncJson.directory.absolute(p),d;try{d=await M.default.stat(y)}catch(h){Rt(h),t.log.debug("skipping change because file doesn't exist",{path:p});return}let S="";d.isFile()&&(S=await M.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)>Go)throw new Ie(g`
172
- {underline Your file changes are too large to push.}
173
-
174
- Run "ggt status" to see your changes and consider
175
- ignoring some files or pushing in smaller batches.
176
- `);let u=Q({ensureEmptyLineAbove:!0})(J(t,{changes:n,tense:"present",title:G`Pushing ${(0,$.default)("file",o.length+s.length)}. ${w.arrowRight}`,...a}));try{let{publishFileSyncEvents:{remoteFilesVersion:p,problems:c}}=await this.syncJson.edit.mutate({mutation:Ot,variables:{input:{expectedRemoteFilesVersion:String(r),changed:o,deleted:s}},http:{retry:{methods:["POST"],calculateDelay:({error:y,computedValue:d})=>Ae(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:G`Pushed ${(0,$.default)("file",o.length+s.length)}. ${w.arrowRight} ${P()}`,...a})),c.length>0&&F({ensureEmptyLineAbove:!0})`
177
- {red Gadget has detected the following fatal errors with your files:}
178
-
179
- ${At({problems:Mt(c),showFileTypes:!1,indent:10})}
180
-
181
- {red Your app will not be operational until all fatal errors are fixed.}
182
- `}catch(p){throw Ae(p)?u.clear():u.fail(),p}}};export{ne as a,sn as b,Ko as c,Xo as d,Zo as e,es as f,ts as g,P as h,Dt as i,Ht as j,As as k,Ms as l,vr as m};
183
- //# sourceMappingURL=chunk-KXK37C5D.js.map