@gadgetinc/ggt 1.0.3 → 1.0.5

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 (220) hide show
  1. package/dist/add-4ME2KTJQ.js +84 -0
  2. package/dist/add-4ME2KTJQ.js.map +7 -0
  3. package/dist/build-4BGA4IZE.js +3 -0
  4. package/dist/build-4BGA4IZE.js.map +7 -0
  5. package/dist/chunk-57XALM2W.js +2 -0
  6. package/dist/chunk-57XALM2W.js.map +7 -0
  7. package/dist/chunk-5DLLJX5F.js +11 -0
  8. package/dist/chunk-5DLLJX5F.js.map +7 -0
  9. package/dist/chunk-5WC5D4WL.js +2 -0
  10. package/dist/chunk-5WC5D4WL.js.map +7 -0
  11. package/dist/chunk-BSCZOMV4.js +2 -0
  12. package/dist/chunk-BSCZOMV4.js.map +7 -0
  13. package/dist/chunk-BZY2AIPV.js +57 -0
  14. package/dist/chunk-BZY2AIPV.js.map +7 -0
  15. package/dist/chunk-D2K5XPNJ.js +2 -0
  16. package/dist/chunk-D2K5XPNJ.js.map +7 -0
  17. package/dist/chunk-F3EZ4KS3.js +2 -0
  18. package/dist/chunk-F3EZ4KS3.js.map +7 -0
  19. package/dist/chunk-G3VNV5Z6.js +33 -0
  20. package/dist/chunk-G3VNV5Z6.js.map +7 -0
  21. package/dist/chunk-GA7AL463.js +24 -0
  22. package/dist/chunk-GA7AL463.js.map +7 -0
  23. package/dist/chunk-GOBNB5VT.js +2 -0
  24. package/dist/chunk-GOBNB5VT.js.map +7 -0
  25. package/dist/chunk-HKBXEZNF.js +2 -0
  26. package/dist/chunk-HKBXEZNF.js.map +7 -0
  27. package/{lib/commands/push.js → dist/chunk-IKJVXTZK.js} +7 -48
  28. package/dist/chunk-IKJVXTZK.js.map +7 -0
  29. package/dist/chunk-KGSSHEEC.js +17 -0
  30. package/dist/chunk-KGSSHEEC.js.map +7 -0
  31. package/dist/chunk-KXK37C5D.js +183 -0
  32. package/dist/chunk-KXK37C5D.js.map +7 -0
  33. package/dist/chunk-NJIDVM2C.js +27 -0
  34. package/dist/chunk-NJIDVM2C.js.map +7 -0
  35. package/dist/chunk-Q5N5L6H3.js +6 -0
  36. package/dist/chunk-Q5N5L6H3.js.map +7 -0
  37. package/dist/chunk-QEVWPU3D.js +8 -0
  38. package/dist/chunk-QEVWPU3D.js.map +7 -0
  39. package/dist/chunk-X36GM74C.js +2 -0
  40. package/dist/chunk-X36GM74C.js.map +7 -0
  41. package/dist/chunk-YRP2UZ2I.js +126 -0
  42. package/dist/chunk-YRP2UZ2I.js.map +7 -0
  43. package/dist/deploy-6HOBYPE6.js +30 -0
  44. package/dist/deploy-6HOBYPE6.js.map +7 -0
  45. package/dist/dev-M3WDGK4D.js +57 -0
  46. package/dist/dev-M3WDGK4D.js.map +7 -0
  47. package/dist/esm-BL3OM5UJ.js +33 -0
  48. package/dist/esm-BL3OM5UJ.js.map +7 -0
  49. package/dist/list-725RHWD5.js +11 -0
  50. package/dist/list-725RHWD5.js.map +7 -0
  51. package/dist/login-I4RGMDLE.js +2 -0
  52. package/dist/login-I4RGMDLE.js.map +7 -0
  53. package/dist/logout-UZBACOIX.js +7 -0
  54. package/dist/logout-UZBACOIX.js.map +7 -0
  55. package/dist/main.js +45 -0
  56. package/dist/main.js.map +7 -0
  57. package/dist/open-GWKGQQG3.js +74 -0
  58. package/dist/open-GWKGQQG3.js.map +7 -0
  59. package/{lib/commands/pull.js → dist/pull-7C5A65KB.js} +7 -48
  60. package/dist/pull-7C5A65KB.js.map +7 -0
  61. package/dist/push-LPUIR4EO.js +2 -0
  62. package/dist/push-LPUIR4EO.js.map +7 -0
  63. package/dist/status-DFKKSRVB.js +14 -0
  64. package/dist/status-DFKKSRVB.js.map +7 -0
  65. package/dist/version-JD42JXWY.js +11 -0
  66. package/dist/version-JD42JXWY.js.map +7 -0
  67. package/dist/whoami-I23R6HOG.js +7 -0
  68. package/dist/whoami-I23R6HOG.js.map +7 -0
  69. package/package.json +73 -75
  70. package/lib/__generated__/graphql.js +0 -78
  71. package/lib/__generated__/graphql.js.map +0 -1
  72. package/lib/commands/add.js +0 -385
  73. package/lib/commands/add.js.map +0 -1
  74. package/lib/commands/deploy.js +0 -287
  75. package/lib/commands/deploy.js.map +0 -1
  76. package/lib/commands/dev.js +0 -374
  77. package/lib/commands/dev.js.map +0 -1
  78. package/lib/commands/list.js +0 -47
  79. package/lib/commands/list.js.map +0 -1
  80. package/lib/commands/login.js +0 -93
  81. package/lib/commands/login.js.map +0 -1
  82. package/lib/commands/logout.js +0 -20
  83. package/lib/commands/logout.js.map +0 -1
  84. package/lib/commands/open.js +0 -159
  85. package/lib/commands/open.js.map +0 -1
  86. package/lib/commands/pull.js.map +0 -1
  87. package/lib/commands/push.js.map +0 -1
  88. package/lib/commands/root.js +0 -110
  89. package/lib/commands/root.js.map +0 -1
  90. package/lib/commands/status.js +0 -56
  91. package/lib/commands/status.js.map +0 -1
  92. package/lib/commands/version.js +0 -18
  93. package/lib/commands/version.js.map +0 -1
  94. package/lib/commands/whoami.js +0 -23
  95. package/lib/commands/whoami.js.map +0 -1
  96. package/lib/ggt.js +0 -65
  97. package/lib/ggt.js.map +0 -1
  98. package/lib/main.js +0 -5
  99. package/lib/main.js.map +0 -1
  100. package/lib/services/app/api/api.js +0 -191
  101. package/lib/services/app/api/api.js.map +0 -1
  102. package/lib/services/app/api/operation.js +0 -23
  103. package/lib/services/app/api/operation.js.map +0 -1
  104. package/lib/services/app/app.js +0 -95
  105. package/lib/services/app/app.js.map +0 -1
  106. package/lib/services/app/arg.js +0 -28
  107. package/lib/services/app/arg.js.map +0 -1
  108. package/lib/services/app/client.js +0 -182
  109. package/lib/services/app/client.js.map +0 -1
  110. package/lib/services/app/edit/edit.js +0 -191
  111. package/lib/services/app/edit/edit.js.map +0 -1
  112. package/lib/services/app/edit/operation.js +0 -155
  113. package/lib/services/app/edit/operation.js.map +0 -1
  114. package/lib/services/app/error.js +0 -65
  115. package/lib/services/app/error.js.map +0 -1
  116. package/lib/services/command/arg.js +0 -55
  117. package/lib/services/command/arg.js.map +0 -1
  118. package/lib/services/command/command.js +0 -47
  119. package/lib/services/command/command.js.map +0 -1
  120. package/lib/services/command/context.js +0 -209
  121. package/lib/services/command/context.js.map +0 -1
  122. package/lib/services/config/config.js +0 -133
  123. package/lib/services/config/config.js.map +0 -1
  124. package/lib/services/config/env.js +0 -22
  125. package/lib/services/config/env.js.map +0 -1
  126. package/lib/services/config/package-json.js +0 -9
  127. package/lib/services/config/package-json.js.map +0 -1
  128. package/lib/services/filesync/changes.js +0 -134
  129. package/lib/services/filesync/changes.js.map +0 -1
  130. package/lib/services/filesync/conflicts.js +0 -140
  131. package/lib/services/filesync/conflicts.js.map +0 -1
  132. package/lib/services/filesync/directory.js +0 -269
  133. package/lib/services/filesync/directory.js.map +0 -1
  134. package/lib/services/filesync/error.js +0 -137
  135. package/lib/services/filesync/error.js.map +0 -1
  136. package/lib/services/filesync/file.js +0 -3
  137. package/lib/services/filesync/file.js.map +0 -1
  138. package/lib/services/filesync/filesync.js +0 -791
  139. package/lib/services/filesync/filesync.js.map +0 -1
  140. package/lib/services/filesync/hashes.js +0 -172
  141. package/lib/services/filesync/hashes.js.map +0 -1
  142. package/lib/services/filesync/strategy.js +0 -59
  143. package/lib/services/filesync/strategy.js.map +0 -1
  144. package/lib/services/filesync/sync-json.js +0 -475
  145. package/lib/services/filesync/sync-json.js.map +0 -1
  146. package/lib/services/http/auth.js +0 -70
  147. package/lib/services/http/auth.js.map +0 -1
  148. package/lib/services/http/http.js +0 -136
  149. package/lib/services/http/http.js.map +0 -1
  150. package/lib/services/output/confirm.js +0 -149
  151. package/lib/services/output/confirm.js.map +0 -1
  152. package/lib/services/output/footer.js +0 -22
  153. package/lib/services/output/footer.js.map +0 -1
  154. package/lib/services/output/log/field.js +0 -3
  155. package/lib/services/output/log/field.js.map +0 -1
  156. package/lib/services/output/log/format/format.js +0 -8
  157. package/lib/services/output/log/format/format.js.map +0 -1
  158. package/lib/services/output/log/format/json.js +0 -37
  159. package/lib/services/output/log/format/json.js.map +0 -1
  160. package/lib/services/output/log/format/pretty.js +0 -158
  161. package/lib/services/output/log/format/pretty.js.map +0 -1
  162. package/lib/services/output/log/level.js +0 -41
  163. package/lib/services/output/log/level.js.map +0 -1
  164. package/lib/services/output/log/logger.js +0 -53
  165. package/lib/services/output/log/logger.js.map +0 -1
  166. package/lib/services/output/log/structured.js +0 -52
  167. package/lib/services/output/log/structured.js.map +0 -1
  168. package/lib/services/output/notify.js +0 -27
  169. package/lib/services/output/notify.js.map +0 -1
  170. package/lib/services/output/output.js +0 -197
  171. package/lib/services/output/output.js.map +0 -1
  172. package/lib/services/output/print.js +0 -31
  173. package/lib/services/output/print.js.map +0 -1
  174. package/lib/services/output/problems.js +0 -84
  175. package/lib/services/output/problems.js.map +0 -1
  176. package/lib/services/output/prompt.js +0 -185
  177. package/lib/services/output/prompt.js.map +0 -1
  178. package/lib/services/output/report.js +0 -190
  179. package/lib/services/output/report.js.map +0 -1
  180. package/lib/services/output/select.js +0 -198
  181. package/lib/services/output/select.js.map +0 -1
  182. package/lib/services/output/spinner.js +0 -141
  183. package/lib/services/output/spinner.js.map +0 -1
  184. package/lib/services/output/sprint.js +0 -44
  185. package/lib/services/output/sprint.js.map +0 -1
  186. package/lib/services/output/symbols.js +0 -23
  187. package/lib/services/output/symbols.js.map +0 -1
  188. package/lib/services/output/table.js +0 -98
  189. package/lib/services/output/table.js.map +0 -1
  190. package/lib/services/output/timestamp.js +0 -12
  191. package/lib/services/output/timestamp.js.map +0 -1
  192. package/lib/services/output/update.js +0 -99
  193. package/lib/services/output/update.js.map +0 -1
  194. package/lib/services/user/session.js +0 -54
  195. package/lib/services/user/session.js.map +0 -1
  196. package/lib/services/user/user.js +0 -76
  197. package/lib/services/user/user.js.map +0 -1
  198. package/lib/services/util/assert.js +0 -11
  199. package/lib/services/util/assert.js.map +0 -1
  200. package/lib/services/util/boolean.js +0 -15
  201. package/lib/services/util/boolean.js.map +0 -1
  202. package/lib/services/util/collection.js +0 -38
  203. package/lib/services/util/collection.js.map +0 -1
  204. package/lib/services/util/function.js +0 -153
  205. package/lib/services/util/function.js.map +0 -1
  206. package/lib/services/util/is.js +0 -97
  207. package/lib/services/util/is.js.map +0 -1
  208. package/lib/services/util/json.js +0 -33
  209. package/lib/services/util/json.js.map +0 -1
  210. package/lib/services/util/number.js +0 -27
  211. package/lib/services/util/number.js.map +0 -1
  212. package/lib/services/util/object.js +0 -104
  213. package/lib/services/util/object.js.map +0 -1
  214. package/lib/services/util/paths.js +0 -36
  215. package/lib/services/util/paths.js.map +0 -1
  216. package/lib/services/util/promise.js +0 -74
  217. package/lib/services/util/promise.js.map +0 -1
  218. package/lib/services/util/types.js +0 -5
  219. package/lib/services/util/types.js.map +0 -1
  220. package/npm-shrinkwrap.json +0 -29512
@@ -0,0 +1,183 @@
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