@gadgetinc/ggt 1.7.2 → 1.7.4

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 (55) hide show
  1. package/README.md +1 -0
  2. package/dist/{add-BIKODQCS.js → add-KJLV4API.js} +5 -5
  3. package/dist/add-KJLV4API.js.map +7 -0
  4. package/dist/{chunk-FGUWID6B.js → chunk-J2OYMAMD.js} +2 -2
  5. package/dist/{chunk-XQWSZW7K.js → chunk-L5H5T2T6.js} +2 -2
  6. package/dist/chunk-M6L2X3GX.js +194 -0
  7. package/dist/chunk-M6L2X3GX.js.map +7 -0
  8. package/dist/{chunk-ILB6CSBN.js → chunk-MHTXRD5G.js} +2 -2
  9. package/dist/{chunk-KMNQ3LJT.js → chunk-OIVNACS7.js} +2 -2
  10. package/dist/{chunk-KMNQ3LJT.js.map → chunk-OIVNACS7.js.map} +2 -2
  11. package/dist/{chunk-DYAWQS24.js → chunk-X47UA3VR.js} +2 -2
  12. package/dist/{chunk-MBWB2XUY.js → chunk-XKYYKHP4.js} +4 -4
  13. package/dist/chunk-XKYYKHP4.js.map +7 -0
  14. package/dist/chunk-YU6P3ESA.js +121 -0
  15. package/dist/chunk-YU6P3ESA.js.map +7 -0
  16. package/dist/{configure-LD5XC2MR.js → configure-CXY6JQB7.js} +2 -2
  17. package/dist/deploy-XFZBJJWP.js +25 -0
  18. package/dist/deploy-XFZBJJWP.js.map +7 -0
  19. package/dist/{dev-O5KGPP2V.js → dev-GG6TU3DJ.js} +4 -3
  20. package/dist/{dev-O5KGPP2V.js.map → dev-GG6TU3DJ.js.map} +2 -2
  21. package/dist/{list-O5JTZNKN.js → list-3QZTSHQV.js} +2 -2
  22. package/dist/login-HKGCVIWO.js +2 -0
  23. package/dist/{logout-ACRXIJEF.js → logout-SWWGI27Q.js} +2 -2
  24. package/dist/{logs-SS34WQ2K.js → logs-DW4PH3U6.js} +2 -2
  25. package/dist/main.js +1 -1
  26. package/dist/{open-JQTW6XFM.js → open-J2ZVNVJ6.js} +2 -2
  27. package/dist/{pull-5HLV3C74.js → pull-ORNQFSFG.js} +2 -2
  28. package/dist/push-KMZZ6JJL.js +2 -0
  29. package/dist/{status-PL7MJVN7.js → status-JAREJZ4X.js} +2 -2
  30. package/dist/{whoami-3RPUP2PK.js → whoami-MIJFO4MW.js} +2 -2
  31. package/package.json +1 -1
  32. package/dist/add-BIKODQCS.js.map +0 -7
  33. package/dist/chunk-D2R4J557.js +0 -116
  34. package/dist/chunk-D2R4J557.js.map +0 -7
  35. package/dist/chunk-MBWB2XUY.js.map +0 -7
  36. package/dist/chunk-VJTDX5WL.js +0 -194
  37. package/dist/chunk-VJTDX5WL.js.map +0 -7
  38. package/dist/deploy-3H3W42UM.js +0 -25
  39. package/dist/deploy-3H3W42UM.js.map +0 -7
  40. package/dist/login-6MLYS6A4.js +0 -2
  41. package/dist/push-62ZJ6D3R.js +0 -2
  42. /package/dist/{chunk-FGUWID6B.js.map → chunk-J2OYMAMD.js.map} +0 -0
  43. /package/dist/{chunk-XQWSZW7K.js.map → chunk-L5H5T2T6.js.map} +0 -0
  44. /package/dist/{chunk-ILB6CSBN.js.map → chunk-MHTXRD5G.js.map} +0 -0
  45. /package/dist/{chunk-DYAWQS24.js.map → chunk-X47UA3VR.js.map} +0 -0
  46. /package/dist/{configure-LD5XC2MR.js.map → configure-CXY6JQB7.js.map} +0 -0
  47. /package/dist/{list-O5JTZNKN.js.map → list-3QZTSHQV.js.map} +0 -0
  48. /package/dist/{login-6MLYS6A4.js.map → login-HKGCVIWO.js.map} +0 -0
  49. /package/dist/{logout-ACRXIJEF.js.map → logout-SWWGI27Q.js.map} +0 -0
  50. /package/dist/{logs-SS34WQ2K.js.map → logs-DW4PH3U6.js.map} +0 -0
  51. /package/dist/{open-JQTW6XFM.js.map → open-J2ZVNVJ6.js.map} +0 -0
  52. /package/dist/{pull-5HLV3C74.js.map → pull-ORNQFSFG.js.map} +0 -0
  53. /package/dist/{push-62ZJ6D3R.js.map → push-KMZZ6JJL.js.map} +0 -0
  54. /package/dist/{status-PL7MJVN7.js.map → status-JAREJZ4X.js.map} +0 -0
  55. /package/dist/{whoami-3RPUP2PK.js.map → whoami-MIJFO4MW.js.map} +0 -0
@@ -1,4 +1,4 @@
1
- import{b as g}from"./chunk-JSGXXXFU.js";import{A as f,w as u,z as c}from"./chunk-XQWSZW7K.js";import"./chunk-DYAWQS24.js";import"./chunk-XGQQOMPO.js";import"./chunk-KMNQ3LJT.js";import{ca as m,ha as i,ia as l,ja as o}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a,h as p}from"./chunk-7DYQUG5M.js";p();var U=a(()=>i`
1
+ import{b as g}from"./chunk-JSGXXXFU.js";import{A as f,w as u,z as c}from"./chunk-L5H5T2T6.js";import"./chunk-X47UA3VR.js";import"./chunk-XGQQOMPO.js";import"./chunk-OIVNACS7.js";import{ca as m,ha as i,ia as l,ja as o}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a,h as p}from"./chunk-7DYQUG5M.js";p();var U=a(()=>i`
2
2
  List the apps available to the currently logged-in user.
3
3
 
4
4
  {bold Usage}
@@ -8,4 +8,4 @@ import{b as g}from"./chunk-JSGXXXFU.js";import{A as f,w as u,z as c}from"./chunk
8
8
 
9
9
  Visit https://gadget.new to create one!
10
10
  `;return}if(m.isInteractive)for(let[r,t]of f(e))o(i`{grey ${r}}`),g({json:t,headers:["Name","Domain"],rows:t.map(n=>[n.slug,n.primaryDomain])}),o("");else{let r="";for(let t of e)r+=l`${t.slug}\t${t.primaryDomain}`;o({json:e,content:r})}},"run");export{j as run,U as usage};
11
- //# sourceMappingURL=list-O5JTZNKN.js.map
11
+ //# sourceMappingURL=list-3QZTSHQV.js.map
@@ -0,0 +1,2 @@
1
+ import{r as a,s as b,t as c}from"./chunk-L5H5T2T6.js";import"./chunk-X47UA3VR.js";import"./chunk-XGQQOMPO.js";import"./chunk-OIVNACS7.js";import"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import"./chunk-7DYQUG5M.js";export{c as login,b as run,a as usage};
2
+ //# sourceMappingURL=login-HKGCVIWO.js.map
@@ -1,7 +1,7 @@
1
- import{a as s,b as i}from"./chunk-DYAWQS24.js";import"./chunk-KMNQ3LJT.js";import{ha as r,ja as e}from"./chunk-24OT7GHO.js";import{a as o,h as t}from"./chunk-7DYQUG5M.js";t();var p=o(()=>r`
1
+ import{a as s,b as i}from"./chunk-X47UA3VR.js";import"./chunk-OIVNACS7.js";import{ha as r,ja as e}from"./chunk-24OT7GHO.js";import{a as o,h as t}from"./chunk-7DYQUG5M.js";t();var p=o(()=>r`
2
2
  Log out of your account.
3
3
 
4
4
  {bold Usage}
5
5
  ggt logout
6
6
  `,"usage"),d=o(n=>{s(n)?(i(n,void 0),e("Goodbye")):e("You are not logged in")},"run");export{d as run,p as usage};
7
- //# sourceMappingURL=logout-ACRXIJEF.js.map
7
+ //# sourceMappingURL=logout-SWWGI27Q.js.map
@@ -1,4 +1,4 @@
1
- import{p as m}from"./chunk-VJTDX5WL.js";import{l as a,m as l,n as p}from"./chunk-D2R4J557.js";import"./chunk-JSGXXXFU.js";import"./chunk-WNAYBYSG.js";import{c as g}from"./chunk-FGUWID6B.js";import"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import{E as i}from"./chunk-XQWSZW7K.js";import"./chunk-DYAWQS24.js";import"./chunk-XGQQOMPO.js";import"./chunk-KMNQ3LJT.js";import{ha as r}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as n,h as s}from"./chunk-7DYQUG5M.js";s();var b={...a,...i},w=n(o=>r`
1
+ import{p as m}from"./chunk-M6L2X3GX.js";import{m as a,n as l,o as p}from"./chunk-YU6P3ESA.js";import"./chunk-JSGXXXFU.js";import"./chunk-WNAYBYSG.js";import{c as g}from"./chunk-J2OYMAMD.js";import"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import{E as i}from"./chunk-L5H5T2T6.js";import"./chunk-X47UA3VR.js";import"./chunk-XGQQOMPO.js";import"./chunk-OIVNACS7.js";import{ha as r}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as n,h as s}from"./chunk-7DYQUG5M.js";s();var b={...a,...i},w=n(o=>r`
2
2
  Streams the logs for an application to.
3
3
 
4
4
  {gray Usage}
@@ -25,4 +25,4 @@ import{p as m}from"./chunk-VJTDX5WL.js";import{l as a,m as l,n as p}from"./chunk
25
25
 
26
26
  Run "ggt logs -h" for more information.
27
27
  `);let c=await p(process.cwd()),u=await l.loadOrInit(o,{command:"pull",args:t,directory:c}),f=new m(u).subscribeToEnvironmentLogs(t,{onError:n(e=>{o.abort(e)},"onError")});o.onAbort(e=>{o.log.info("stopping",{reason:e}),f.unsubscribe()})},"run");export{b as args,D as run,w as usage};
28
- //# sourceMappingURL=logs-SS34WQ2K.js.map
28
+ //# sourceMappingURL=logs-DW4PH3U6.js.map
package/dist/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{b as J}from"./chunk-ILB6CSBN.js";import{a as z}from"./chunk-QXWICGG6.js";import{a as T,b as E}from"./chunk-WNAYBYSG.js";import{a as V,b as f,d as j,e as D,f as P}from"./chunk-FGUWID6B.js";import"./chunk-JBY5A44K.js";import{H as C,I as R,c as u,d as x,i as H,m as A}from"./chunk-XQWSZW7K.js";import"./chunk-DYAWQS24.js";import"./chunk-XGQQOMPO.js";import"./chunk-KMNQ3LJT.js";import{A as K,K as a,Y as N,Z as d,b as S,ca as y,e as c,ea as w,f as O,ha as g,ja as p}from"./chunk-24OT7GHO.js";import{a as b}from"./chunk-GFQYFEEH.js";import{a as i,f as m,h as n}from"./chunk-7DYQUG5M.js";n();n();var L=m(b(),1);n();var B=m(V(),1);n();var G=m(H(),1),h=m(K(),1),v=m(b(),1),M=m(z(),1);import q from"node:assert";import I from"node:path";var Q=(0,v.default)("12 hours"),Y=c.object({name:c.literal("ggt"),"dist-tags":c.object({latest:c.string(),experimental:c.string()})}),W=i(async o=>{let t=await R({context:{ctx:o},method:"GET",url:"https://registry.npmjs.org/ggt",responseType:"json",resolveBodyOnly:!0,timeout:{request:(0,v.default)("5s")}});return Y.parse(t)["dist-tags"]},"getDistTags"),X=i(async o=>{try{let t=Number(await h.default.readFile(I.join(d.cacheDir,"last-update-check"),"utf8"));return q(!Number.isNaN(t)),(0,G.default)().isAfter(t+Q)}catch(t){return o.log.trace("failed to check for updates",{error:t}),!0}},"shouldCheckForUpdate"),k=i(async o=>{try{if(!await X(o))return;await h.default.outputFile(I.join(d.cacheDir,"last-update-check"),String(Date.now()));let r=await W(o),e,s,l;a.version.includes("experimental")?(e=r.experimental,s=a.version!==e,l=g`
2
+ import{b as J}from"./chunk-MHTXRD5G.js";import{a as z}from"./chunk-QXWICGG6.js";import{a as T,b as E}from"./chunk-WNAYBYSG.js";import{a as V,b as f,d as j,e as D,f as P}from"./chunk-J2OYMAMD.js";import"./chunk-JBY5A44K.js";import{H as C,I as R,c as u,d as x,i as H,m as A}from"./chunk-L5H5T2T6.js";import"./chunk-X47UA3VR.js";import"./chunk-XGQQOMPO.js";import"./chunk-OIVNACS7.js";import{A as K,K as a,Y as N,Z as d,b as S,ca as y,e as c,ea as w,f as O,ha as g,ja as p}from"./chunk-24OT7GHO.js";import{a as b}from"./chunk-GFQYFEEH.js";import{a as i,f as m,h as n}from"./chunk-7DYQUG5M.js";n();n();var L=m(b(),1);n();var B=m(V(),1);n();var G=m(H(),1),h=m(K(),1),v=m(b(),1),M=m(z(),1);import q from"node:assert";import I from"node:path";var Q=(0,v.default)("12 hours"),Y=c.object({name:c.literal("ggt"),"dist-tags":c.object({latest:c.string(),experimental:c.string()})}),W=i(async o=>{let t=await R({context:{ctx:o},method:"GET",url:"https://registry.npmjs.org/ggt",responseType:"json",resolveBodyOnly:!0,timeout:{request:(0,v.default)("5s")}});return Y.parse(t)["dist-tags"]},"getDistTags"),X=i(async o=>{try{let t=Number(await h.default.readFile(I.join(d.cacheDir,"last-update-check"),"utf8"));return q(!Number.isNaN(t)),(0,G.default)().isAfter(t+Q)}catch(t){return o.log.trace("failed to check for updates",{error:t}),!0}},"shouldCheckForUpdate"),k=i(async o=>{try{if(!await X(o))return;await h.default.outputFile(I.join(d.cacheDir,"last-update-check"),String(Date.now()));let r=await W(o),e,s,l;a.version.includes("experimental")?(e=r.experimental,s=a.version!==e,l=g`
3
3
  Update available! {red ${a.version}} → {green ${e}}
4
4
  Run "npm install -g ${a.name}@experimental" to update.
5
5
  `):(e=r.latest,s=M.default.lt(a.version,e),l=g`
@@ -1,4 +1,4 @@
1
- import{g as w,l as $,m as O,n as B}from"./chunk-D2R4J557.js";import{c as p}from"./chunk-FGUWID6B.js";import{a as u}from"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import{B as v,m as d,q as r}from"./chunk-XQWSZW7K.js";import"./chunk-DYAWQS24.js";import"./chunk-XGQQOMPO.js";import"./chunk-KMNQ3LJT.js";import{ha as i,ja as s,o as f}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as g,h as y}from"./chunk-7DYQUG5M.js";y();var J={...$,"--show-all":{type:Boolean}},j=g(m=>i`
1
+ import{g as w,m as $,n as O,o as B}from"./chunk-YU6P3ESA.js";import{c as p}from"./chunk-J2OYMAMD.js";import{a as u}from"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import{B as v,m as d,q as r}from"./chunk-L5H5T2T6.js";import"./chunk-X47UA3VR.js";import"./chunk-XGQQOMPO.js";import"./chunk-OIVNACS7.js";import{ha as i,ja as s,o as f}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as g,h as y}from"./chunk-7DYQUG5M.js";y();var J={...$,"--show-all":{type:Boolean}},j=g(m=>i`
2
2
  This command opens a specific Gadget page in your browser, allowing you to directly access
3
3
  various parts of your application's interface such as logs, permissions, data views, or
4
4
  schemas.
@@ -71,4 +71,4 @@ import{g as w,l as $,m as O,n as B}from"./chunk-D2R4J557.js";import{c as p}from"
71
71
  `)}await r(`https://${e.environment.application.primaryDomain}/edit/${e.environment.name}/model/${n}/${o}`),s`
72
72
  Opened ${o} viewer for environment {cyanBright ${e.environment.name}} for model {cyanBright ${n}}.
73
73
  `;break}default:f(a)}},"run"),b=["logs","permissions","data","schema"];export{J as args,E as run,j as usage};
74
- //# sourceMappingURL=open-JQTW6XFM.js.map
74
+ //# sourceMappingURL=open-J2ZVNVJ6.js.map
@@ -1,4 +1,4 @@
1
- import{p as m}from"./chunk-VJTDX5WL.js";import{l as c,m as p,n as g}from"./chunk-D2R4J557.js";import"./chunk-JSGXXXFU.js";import"./chunk-WNAYBYSG.js";import{c as l}from"./chunk-FGUWID6B.js";import"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import"./chunk-XQWSZW7K.js";import"./chunk-DYAWQS24.js";import"./chunk-XGQQOMPO.js";import"./chunk-KMNQ3LJT.js";import{ha as s,ja as i}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as r,h as a}from"./chunk-7DYQUG5M.js";a();var P={...c,"--env":{type:String,alias:["-e","--environment","--from"]},"--force":{type:Boolean,alias:"-f"}},A=r(e=>s`
1
+ import{p as m}from"./chunk-M6L2X3GX.js";import{m as c,n as p,o as g}from"./chunk-YU6P3ESA.js";import"./chunk-JSGXXXFU.js";import"./chunk-WNAYBYSG.js";import{c as l}from"./chunk-J2OYMAMD.js";import"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import"./chunk-L5H5T2T6.js";import"./chunk-X47UA3VR.js";import"./chunk-XGQQOMPO.js";import"./chunk-OIVNACS7.js";import{ha as s,ja as i}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as r,h as a}from"./chunk-7DYQUG5M.js";a();var P={...c,"--env":{type:String,alias:["-e","--environment","--from"]},"--force":{type:Boolean,alias:"-f"}},A=r(e=>s`
2
2
  Pulls your environment files to your local directory.
3
3
 
4
4
  This command first tracks changes in your local directory since the last sync. If changes are
@@ -25,4 +25,4 @@ import{p as m}from"./chunk-VJTDX5WL.js";import{l as c,m as p,n as g}from"./chunk
25
25
 
26
26
  Run "ggt pull -h" for more information.
27
27
  `);let y=await g(process.cwd()),f=await p.loadOrInit(e,{command:"pull",args:o,directory:y}),t=new m(f),n=await t.hashes(e);if(n.environmentChangesToPull.size===0){i({ensureEmptyLineAbove:!0,content:"Nothing to pull."});return}n.localChangesToPush.size>0&&await t.print(e,{hashes:n}),await t.pull(e,{hashes:n,force:o["--force"]})},"run");export{P as args,S as run,A as usage};
28
- //# sourceMappingURL=pull-5HLV3C74.js.map
28
+ //# sourceMappingURL=pull-ORNQFSFG.js.map
@@ -0,0 +1,2 @@
1
+ import{a,b,c}from"./chunk-XKYYKHP4.js";import"./chunk-M6L2X3GX.js";import"./chunk-YU6P3ESA.js";import"./chunk-JSGXXXFU.js";import"./chunk-WNAYBYSG.js";import"./chunk-J2OYMAMD.js";import"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import"./chunk-L5H5T2T6.js";import"./chunk-X47UA3VR.js";import"./chunk-XGQQOMPO.js";import"./chunk-OIVNACS7.js";import"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import"./chunk-7DYQUG5M.js";export{a as args,c as run,b as usage};
2
+ //# sourceMappingURL=push-KMZZ6JJL.js.map
@@ -1,4 +1,4 @@
1
- import{l as p,m as f,p as h}from"./chunk-VJTDX5WL.js";import{g as u,l as y,m as l,n as d}from"./chunk-D2R4J557.js";import"./chunk-JSGXXXFU.js";import"./chunk-WNAYBYSG.js";import{c as m}from"./chunk-FGUWID6B.js";import"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import"./chunk-XQWSZW7K.js";import"./chunk-DYAWQS24.js";import"./chunk-XGQQOMPO.js";import"./chunk-KMNQ3LJT.js";import{ha as a}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as r,h as g}from"./chunk-7DYQUG5M.js";g();var D=y,J=r(()=>a`
1
+ import{l as p,m as f,p as h}from"./chunk-M6L2X3GX.js";import{g as u,m as y,n as l,o as d}from"./chunk-YU6P3ESA.js";import"./chunk-JSGXXXFU.js";import"./chunk-WNAYBYSG.js";import{c as m}from"./chunk-J2OYMAMD.js";import"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import"./chunk-L5H5T2T6.js";import"./chunk-X47UA3VR.js";import"./chunk-XGQQOMPO.js";import"./chunk-OIVNACS7.js";import{ha as a}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as r,h as g}from"./chunk-7DYQUG5M.js";g();var D=y,J=r(()=>a`
2
2
  Shows file changes since last sync (e.g. $ggt dev, push, deploy etc.)
3
3
 
4
4
  {gray Usage}
@@ -11,4 +11,4 @@ import{l as p,m as f,p as h}from"./chunk-VJTDX5WL.js";import{g as u,l as y,m as
11
11
 
12
12
  Run "ggt status -h" for more information.
13
13
  `);let i=await d(process.cwd()),o=await l.load(t,{command:"status",args:s,directory:i});if(!o)throw new u({command:"status",args:s,directory:i});o.print();let c=new h(o),n=await c.hashes(t);await c.print(t,{hashes:n});let e=p({localChanges:n.localChanges,environmentChanges:n.environmentChanges});e.size>0&&(t.log.debug("conflicts detected",{conflicts:e}),f({conflicts:e}))},"run");export{D as args,U as run,J as usage};
14
- //# sourceMappingURL=status-PL7MJVN7.js.map
14
+ //# sourceMappingURL=status-JAREJZ4X.js.map
@@ -1,7 +1,7 @@
1
- import{v as s}from"./chunk-XQWSZW7K.js";import"./chunk-DYAWQS24.js";import"./chunk-XGQQOMPO.js";import"./chunk-KMNQ3LJT.js";import{ha as n,ja as o}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as r,h as a}from"./chunk-7DYQUG5M.js";a();var u=r(()=>n`
1
+ import{v as s}from"./chunk-L5H5T2T6.js";import"./chunk-X47UA3VR.js";import"./chunk-XGQQOMPO.js";import"./chunk-OIVNACS7.js";import{ha as n,ja as o}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as r,h as a}from"./chunk-7DYQUG5M.js";a();var u=r(()=>n`
2
2
  Show the name and email address of the currently logged in user.
3
3
 
4
4
  {gray Usage}
5
5
  ggt whoami
6
6
  `,"usage"),l=r(async t=>{let e=await s(t);if(!e){o("You are not logged in");return}e.name?o(`You are logged in as ${e.name} (${e.email})`):o(`You are logged in as ${e.email}`)},"run");export{l as run,u as usage};
7
- //# sourceMappingURL=whoami-3RPUP2PK.js.map
7
+ //# sourceMappingURL=whoami-MIJFO4MW.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gadgetinc/ggt",
3
- "version": "1.7.2",
3
+ "version": "1.7.4",
4
4
  "description": "The command-line interface for Gadget",
5
5
  "homepage": "https://github.com/gadget-inc/ggt",
6
6
  "bugs": {
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/commands/add.ts"],
4
- "sourcesContent": ["/* eslint-disable no-case-declarations */\nimport chalk from \"chalk\";\nimport terminalLink from \"terminal-link\";\nimport { getGlobalActions, getModels } from \"../services/app/app.js\";\nimport {\n CREATE_ACTION_MUTATION,\n CREATE_ENVIRONMENT_MUTATION,\n CREATE_MODEL_FIELDS_MUTATION,\n CREATE_MODEL_MUTATION,\n CREATE_ROUTE_MUTATION,\n} from \"../services/app/edit/operation.js\";\nimport { ClientError } from \"../services/app/error.js\";\nimport { ArgError, type ArgsDefinitionResult } from \"../services/command/arg.js\";\nimport type { Run, Usage } from \"../services/command/command.js\";\nimport type { Context } from \"../services/command/context.js\";\nimport { UnknownDirectoryError } from \"../services/filesync/error.js\";\nimport { FileSync } from \"../services/filesync/filesync.js\";\nimport { SyncJson, SyncJsonArgs, loadSyncJsonDirectory } from \"../services/filesync/sync-json.js\";\nimport { println } from \"../services/output/print.js\";\nimport { GGTError, IsBug } from \"../services/output/report.js\";\nimport { select } from \"../services/output/select.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { symbol } from \"../services/output/symbols.js\";\nimport { ts } from \"../services/output/timestamp.js\";\nimport { uniq } from \"../services/util/collection.js\";\nimport { isGraphQLErrors } from \"../services/util/is.js\";\n\nexport class AddClientError extends GGTError {\n isBug = IsBug.NO;\n\n constructor(error: ClientError) {\n let template = \"\";\n\n if (isGraphQLErrors(error.cause)) {\n const errors = uniq(error.cause.map((x) => x.message));\n\n template = sprint` \u2022 ${errors.map((e) => e.split(\"\\n\").join(\"\\n\u200E \u2022 \")).join(\"\\n\")}`; // Why in gods name do I have to put an empty character for the tab to work?\n } else {\n template = sprint`${error.cause}`;\n }\n\n super(template);\n }\n\n protected override render(): string {\n return `${chalk.redBright(symbol.cross)} Failed to add:\\n ` + this.message;\n }\n}\n\nexport type AddArgs = typeof args;\nexport type AddArgsResult = ArgsDefinitionResult<AddArgs>;\n\nexport const args = { ...SyncJsonArgs };\n\nexport const usage: Usage = () => {\n return sprint`\n Adds models, fields, actions and routes to your app.\n\n This command first performs a sync to ensure that your local and environment directories match, changes are tracked since last sync.\n If any conflicts are detected, they must be resolved before adding models, fields, actions or routes.\n\n {gray Usage}\n ggt add model <model_name> [field_name:field_type ...]\n\n ggt add action [CONTEXT]/<action_name>\n CONTEXT:Specifies the kind of action. Use \"model\" for model actions otherwise use \"action\".\n\n ggt add route <HTTP_METHOD> <route_path>\n\n ggt add field <model_path>/<field_name>:<field_type>\n\n {gray Options}\n -e, --env <env_name> Selects the environment to add to. Default set on \".gadget/sync.json\"\n\n {gray Examples}\n Add a new model 'post' with out fields:\n {cyanBright $ ggt add model modelA}\n\n Add a new model 'post' with 2 new 'string' type fields 'title' and 'body':\n {cyanBright $ ggt add model post title:string body:string}\n\n Add a new 'boolean' type field 'published' to an existing model\n {cyanBright ggt add field post/published:boolean}\n\n Add new action 'publish' to the 'post' model:\n {cyanBright ggt add action model/post/publish}\n\n Add a new action 'audit'\n {cyanBright ggt add action action/audit}\n\n Add a new route 'howdy'\n {cyanBright ggt add route GET howdy}\n\n Clone the \\`development\\` environment into a new \\`staging\\` environment\n {cyanBright ggt add environment staging --environment development}\n `;\n};\n\nexport const run: Run<AddArgs> = async (ctx, args) => {\n const directory = await loadSyncJsonDirectory(process.cwd());\n const syncJson = await SyncJson.load(ctx, { command: \"add\", args, directory });\n if (!syncJson) {\n throw new UnknownDirectoryError({ command: \"add\", args, directory });\n }\n\n const filesync = new FileSync(syncJson);\n const hashes = await filesync.hashes(ctx, true);\n\n if (!hashes.inSync) {\n await filesync.merge(ctx, {\n hashes,\n printEnvironmentChangesOptions: { limit: 5 },\n printLocalChangesOptions: { limit: 5 },\n quietly: true,\n });\n }\n\n println({ ensureEmptyLineAbove: true, content: `${chalk.greenBright(symbol.tick)} Sync completed ${ts()}` });\n\n switch (args._[0]) {\n case \"model\":\n await modelSubCommand(ctx, { args, filesync });\n break;\n case \"action\":\n await actionSubCommand(ctx, { args, filesync });\n break;\n case \"route\":\n await routeSubCommand(ctx, { args, filesync });\n break;\n case \"field\":\n await fieldSubCommand(ctx, { args, filesync });\n break;\n case \"environment\":\n case \"env\":\n await envSubCommand(ctx, { args, filesync });\n break;\n default:\n println(usage(ctx));\n return;\n }\n};\n\nconst parseFieldValues = (fields: string[]): [{ name: string; fieldType: string }[], problems: string[]] => {\n const problems: string[] = [];\n const modelFields: { name: string; fieldType: string }[] = [];\n\n fields.forEach((field) => {\n const matches = /^(.*):+(.*)$/.exec(field);\n if (!matches || matches.length !== 3 || !matches[1] || !matches[2]) {\n problems.push(sprint`${field} is not a valid field definition`);\n } else {\n modelFields.push({ name: matches[1].replace(/:+/g, \"\"), fieldType: matches[2] });\n }\n });\n\n return [modelFields, problems];\n};\n\nconst modelSubCommand = async (ctx: Context, { args, filesync }: { args: AddArgsResult; filesync: FileSync }): Promise<void> => {\n const syncJson = filesync.syncJson;\n const modelApiIdentifier = args._[1];\n\n if (!modelApiIdentifier) {\n throw new ArgError(sprint`Failed to add model, missing model path\n\n {gray Usage}\n {cyanBright ggt add model <model_name> [field_name:field_type ...]}`);\n }\n\n const modelFieldsList: { name: string; fieldType: string }[] = [];\n if (args._.length > 2) {\n const [modelFields, problems] = parseFieldValues(args._.slice(2));\n\n if (problems.length > 0) {\n throw new ArgError(sprint`\n Failed to add model:\n \u2022 ${problems.join(\"\\n \u2022 \")}\n\n {gray Usage}\n {cyanBright ggt add model ${modelApiIdentifier} [field_name:field_type ...]}`);\n }\n\n modelFieldsList.push(...modelFields);\n }\n\n let result;\n\n try {\n result = (\n await syncJson.edit.mutate({\n mutation: CREATE_MODEL_MUTATION,\n variables: {\n path: modelApiIdentifier,\n fields: modelFieldsList.map((fields) => ({ name: fields.name, fieldType: fields.fieldType })),\n },\n })\n ).createModel;\n } catch (error) {\n if (error instanceof ClientError) {\n throw new AddClientError(error);\n } else {\n throw error;\n }\n }\n\n println({ ensureEmptyLineAbove: true, content: chalk.gray(\"New model created in environment.\") });\n\n await filesync.writeToLocalFilesystem(ctx, { filesVersion: result.remoteFilesVersion, files: result.changed, delete: [] });\n\n const modelPrintout = terminalLink.isSupported\n ? terminalLink(\n modelApiIdentifier,\n `https://${syncJson.environment.application.primaryDomain}/edit/${syncJson.environment.name}/model/${modelApiIdentifier}/schema`,\n )\n : modelApiIdentifier;\n\n println({\n ensureEmptyLineAbove: true,\n content: `${chalk.greenBright(symbol.tick)} Model ${chalk.cyanBright(modelPrintout)} added successfully.`,\n });\n};\n\nconst actionSubCommand = async (ctx: Context, { args, filesync }: { args: AddArgsResult; filesync: FileSync }): Promise<void> => {\n const syncJson = filesync.syncJson;\n const path = args._[1];\n\n if (!path) {\n throw new ArgError(sprint`Failed to add action, missing action path\n\n {gray Usage}\n {cyanBright ggt add action [CONTEXT]/<action_name>\n CONTEXT:Specifies the kind of action. Use \"model\" for model actions otherwise use \"action\".}`);\n }\n\n const models = await getModels(ctx, syncJson.environment);\n const globalActions = await getGlobalActions(ctx, syncJson.environment);\n const splitPath = path.split(\"/\");\n\n let overrideContextAction: \"models\" | \"actions\" | undefined;\n\n const parsedPaths = splitPath.length > 1 ? splitPath.slice(0, splitPath.length - 1) : splitPath;\n const parsedAction = splitPath[splitPath.length - 1];\n\n const conflictingModel = models.find((model) => {\n const modelName = parsedPaths[parsedPaths.length - 1];\n\n return (\n model.apiIdentifier.toUpperCase() === modelName?.toUpperCase() &&\n model.namespace?.join(\"/\") === parsedPaths.slice(0, parsedPaths.length - 1).join(\"/\")\n );\n });\n\n const conflictingActionNamespace = globalActions.find((action) => {\n return action.namespace?.join(\"/\") === parsedPaths.join(\"/\");\n });\n\n if (conflictingModel && conflictingActionNamespace) {\n const joinedParsedPaths = parsedPaths.join(\"/\");\n overrideContextAction = await select({\n choices: [\"models\", \"actions\"] as const,\n content: sprint`\n {bold Namespace Conflict:} The action '${parsedAction}.js' cannot be automatically added due to a namespace conflict.\n\n How would you like to proceed?:\n `,\n formatChoice: (choice) => {\n switch (choice) {\n case \"models\": {\n return `As a Model action in ${chalk.gray(`models/${joinedParsedPaths}/${parsedAction}.js`)}`;\n }\n case \"actions\": {\n return `As an Action in ${chalk.gray(`actions/${joinedParsedPaths}/${parsedAction}.js`)}`;\n }\n }\n },\n });\n\n println({\n ensureEmptyLineAbove: true,\n content: sprint`${chalk.yellowBright(symbol.info)} You can override the context of the action by specifying the context in the path. For example: {gray ggt add action ${overrideContextAction}/${path}}`,\n });\n }\n\n try {\n const result = (\n await syncJson.edit.mutate({\n mutation: CREATE_ACTION_MUTATION,\n variables: { path: overrideContextAction ? `${overrideContextAction}/` + path : path },\n })\n ).createAction;\n\n await filesync.writeToLocalFilesystem(ctx, { filesVersion: result.remoteFilesVersion, files: result.changed, delete: [] });\n } catch (error) {\n if (error instanceof ClientError) {\n throw new AddClientError(error);\n } else {\n throw error;\n }\n }\n\n println({ ensureEmptyLineAbove: true, content: `Action ${chalk.cyanBright(path)} added successfully.` });\n};\n\nconst routeSubCommand = async (ctx: Context, { args, filesync }: { args: AddArgsResult; filesync: FileSync }): Promise<void> => {\n const syncJson = filesync.syncJson;\n const routeMethod = args._[1];\n const routePath = args._[2];\n\n if (!routeMethod) {\n throw new ArgError(sprint`Failed to add route, missing route method\n\n {gray Usage}\n {cyanBright ggt add route <HTTP_METHOD> <route_path>}`);\n }\n\n if (!routePath) {\n throw new ArgError(sprint`Failed to add route, missing route path\n\n {gray Usage}\n {cyanBright ggt add route ${routeMethod} <route_path>}`);\n }\n\n try {\n const result = (await syncJson.edit.mutate({ mutation: CREATE_ROUTE_MUTATION, variables: { method: routeMethod, path: routePath } }))\n .createRoute;\n\n await filesync.writeToLocalFilesystem(ctx, { filesVersion: result.remoteFilesVersion, files: result.changed, delete: [] });\n } catch (error) {\n if (error instanceof ClientError) {\n throw new AddClientError(error);\n } else {\n throw error;\n }\n }\n\n println({ ensureEmptyLineAbove: true, content: `Route ${chalk.cyanBright(routePath)} added successfully.` });\n};\n\nconst fieldSubCommand = async (ctx: Context, { args, filesync }: { args: AddArgsResult; filesync: FileSync }): Promise<void> => {\n const syncJson = filesync.syncJson;\n\n const splitPathAndField = args._[1]?.split(\"/\");\n\n if (!splitPathAndField) {\n throw new ArgError(sprint`Failed to add field, invalid field path definition\n\n {gray Usage}\n {cyanBright ggt add field <model_path>/<field_name>:<field_type>}`);\n }\n\n const modelFieldsList: { name: string; fieldType: string }[] = [];\n\n if (splitPathAndField[1]) {\n const [modelFields, problems] = parseFieldValues([splitPathAndField[1]]);\n\n if (problems.length > 0) {\n throw new ArgError(sprint`\n Failed to add field:\n \u2022 ${problems.join(\"\\n \u2022\")}\n\n {gray Usage}\n {cyanBright ggt add field ${splitPathAndField[0]}/<field_name>:<field_type>}`);\n }\n\n modelFieldsList.push(...modelFields);\n } else {\n throw new ArgError(sprint`Failed to add field, invalid field definition\n\n {gray Usage}\n {cyanBright ggt add field ${splitPathAndField[0]}/<field_name>:<field_type>}`);\n }\n\n try {\n const result = (\n await syncJson.edit.mutate({\n mutation: CREATE_MODEL_FIELDS_MUTATION,\n variables: {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n path: splitPathAndField[0]!,\n fields: modelFieldsList.map((field) => ({ name: field.name, fieldType: field.fieldType })),\n },\n })\n ).createModelFields;\n\n await filesync.writeToLocalFilesystem(ctx, { filesVersion: result.remoteFilesVersion, files: result.changed, delete: [] });\n } catch (error) {\n if (error instanceof ClientError) {\n throw new AddClientError(error);\n } else {\n throw error;\n }\n }\n\n println({ ensureEmptyLineAbove: true, content: `Field ${chalk.cyanBright(modelFieldsList[0]?.name)} added successfully.` });\n};\n\nconst envSubCommand = async (ctx: Context, { args, filesync }: { args: AddArgsResult; filesync: FileSync }): Promise<void> => {\n const syncJson = filesync.syncJson;\n const newEnvName = args._[1] ?? makeDefaultEnvName();\n\n try {\n await syncJson.edit.mutate({\n mutation: CREATE_ENVIRONMENT_MUTATION,\n variables: { environment: { slug: newEnvName, sourceSlug: syncJson.environment.name } },\n });\n } catch (error) {\n if (error instanceof ClientError) {\n throw new AddClientError(error);\n } else {\n throw error;\n }\n }\n\n println({ ensureEmptyLineAbove: true, content: `Environment ${chalk.cyanBright(newEnvName)} added successfully.` });\n\n // Try to switch to newly made env\n const pullFromNewEnvSyncJson = await SyncJson.load(ctx, {\n command: \"pull\",\n args: { _: [], \"--app\": undefined, \"--allow-unknown-directory\": undefined, \"--allow-different-app\": undefined, \"--env\": newEnvName },\n directory: await loadSyncJsonDirectory(process.cwd()),\n });\n if (pullFromNewEnvSyncJson) {\n const filesync = new FileSync(syncJson);\n const hashes = await filesync.hashes(ctx);\n if (hashes.environmentChangesToPull.size === 0) {\n println({ ensureEmptyLineAbove: true, content: \"Nothing to pull.\" });\n return;\n }\n if (hashes.localChangesToPush.size > 0) {\n // show them the local changes they will discard\n await filesync.print(ctx, { hashes });\n }\n await filesync.pull(ctx, { hashes, force: true });\n }\n};\n\n/**\n * Creates a default environment name based on the current date and time.\n */\nconst makeDefaultEnvName = (): string => {\n const currentDate = new Date();\n return `env-${currentDate.toISOString().slice(0, 10).replace(/-/g, \"\")}-${currentDate.toLocaleTimeString(\"en-US\", { hour12: false }).replace(/:/g, \"\")}`;\n};\n"],
5
- "mappings": "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",
6
- "names": ["init_cjs", "AddClientError", "GGTError", "__name", "IsBug", "error", "template", "isGraphQLErrors", "errors", "uniq", "x", "sprint", "source_default", "symbol", "args", "SyncJsonArgs", "usage", "run", "ctx", "directory", "loadSyncJsonDirectory", "syncJson", "SyncJson", "UnknownDirectoryError", "filesync", "FileSync", "hashes", "println", "ts", "modelSubCommand", "actionSubCommand", "routeSubCommand", "fieldSubCommand", "envSubCommand", "parseFieldValues", "fields", "problems", "modelFields", "field", "matches", "modelApiIdentifier", "ArgError", "modelFieldsList", "result", "CREATE_MODEL_MUTATION", "ClientError", "modelPrintout", "terminalLink", "path", "models", "getModels", "globalActions", "getGlobalActions", "splitPath", "overrideContextAction", "parsedPaths", "parsedAction", "conflictingModel", "model", "modelName", "conflictingActionNamespace", "action", "joinedParsedPaths", "select", "choice", "CREATE_ACTION_MUTATION", "routeMethod", "routePath", "CREATE_ROUTE_MUTATION", "splitPathAndField", "CREATE_MODEL_FIELDS_MUTATION", "newEnvName", "makeDefaultEnvName", "CREATE_ENVIRONMENT_MUTATION", "currentDate"]
7
- }
@@ -1,116 +0,0 @@
1
- import{c as K}from"./chunk-FGUWID6B.js";import{a as be}from"./chunk-JBY5A44K.js";import{a as no,b as so}from"./chunk-HN3YKQ3C.js";import{A as Lr,D as kt,a as ft,b as Rr,e as wt,f as _t,j as io,k as Ar,m as ge,n as X,o as Fr,w as jr,x as Dr,y as ye,z as ve}from"./chunk-XQWSZW7K.js";import{a as $r}from"./chunk-KMNQ3LJT.js";import{$ as Or,A as ro,N as Pr,U as vt,Z as he,b as st,e as J,g as br,h as wr,ha as C,i as _r,ia as $,ja as bt,m as kr,n as Tr,u as Sr,v as Cr,w as xr,z as Er}from"./chunk-24OT7GHO.js";import{a as eo}from"./chunk-GFQYFEEH.js";import{a as n,b as de,d as nt,f as pt,h as T}from"./chunk-7DYQUG5M.js";var Gr=nt(N=>{"use strict";T();var uo=N&&N.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(N,"__esModule",{value:!0});var co=de("fs"),lo=uo(so()),mt=lo.default("@kwsites/file-exists");function po(t,e,r){mt("checking %s",t);try{let s=co.statSync(t);return s.isFile()&&e?(mt("[OK] path represents a file"),!0):s.isDirectory()&&r?(mt("[OK] path represents a directory"),!0):(mt("[FAIL] path represents something other than a file or directory"),!1)}catch(s){if(s.code==="ENOENT")return mt("[FAIL] path is not accessible: %o",s),!1;throw mt("[FATAL] %o",s),s}}n(po,"check");function fo(t,e=N.READABLE){return po(t,(e&N.FILE)>0,(e&N.FOLDER)>0)}n(fo,"exists");N.exists=fo;N.FILE=1;N.FOLDER=2;N.READABLE=N.FILE+N.FOLDER});var Ur=nt(Bt=>{"use strict";T();function mo(t){for(var e in t)Bt.hasOwnProperty(e)||(Bt[e]=t[e])}n(mo,"__export");Object.defineProperty(Bt,"__esModule",{value:!0});mo(Gr())});var _e=nt((kl,qr)=>{T();function ho(t){r.debug=r,r.default=r,r.coerce=c,r.disable=o,r.enable=i,r.enabled=a,r.humanize=eo(),r.destroy=d,Object.keys(t).forEach(p=>{r[p]=t[p]}),r.names=[],r.skips=[],r.formatters={};function e(p){let m=0;for(let h=0;h<p.length;h++)m=(m<<5)-m+p.charCodeAt(h),m|=0;return r.colors[Math.abs(m)%r.colors.length]}n(e,"selectColor"),r.selectColor=e;function r(p){let m,h=null,g,I;function q(...D){if(!q.enabled)return;let Y=q,ct=Number(new Date),le=ct-(m||ct);Y.diff=le,Y.prev=m,Y.curr=ct,m=ct,D[0]=r.coerce(D[0]),typeof D[0]!="string"&&D.unshift("%O");let lt=0;D[0]=D[0].replace(/%([a-zA-Z%])/g,(yt,pe)=>{if(yt==="%%")return"%";lt++;let Lt=r.formatters[pe];if(typeof Lt=="function"){let fe=D[lt];yt=Lt.call(Y,fe),D.splice(lt,1),lt--}return yt}),r.formatArgs.call(Y,D),(Y.log||r.log).apply(Y,D)}return n(q,"debug"),q.namespace=p,q.useColors=r.useColors(),q.color=r.selectColor(p),q.extend=s,q.destroy=r.destroy,Object.defineProperty(q,"enabled",{enumerable:!0,configurable:!1,get:n(()=>h!==null?h:(g!==r.namespaces&&(g=r.namespaces,I=r.enabled(p)),I),"get"),set:n(D=>{h=D},"set")}),typeof r.init=="function"&&r.init(q),q}n(r,"createDebug");function s(p,m){let h=r(this.namespace+(typeof m>"u"?":":m)+p);return h.log=this.log,h}n(s,"extend");function i(p){r.save(p),r.namespaces=p,r.names=[],r.skips=[];let m,h=(typeof p=="string"?p:"").split(/[\s,]+/),g=h.length;for(m=0;m<g;m++)h[m]&&(p=h[m].replace(/\*/g,".*?"),p[0]==="-"?r.skips.push(new RegExp("^"+p.slice(1)+"$")):r.names.push(new RegExp("^"+p+"$")))}n(i,"enable");function o(){let p=[...r.names.map(u),...r.skips.map(u).map(m=>"-"+m)].join(",");return r.enable(""),p}n(o,"disable");function a(p){if(p[p.length-1]==="*")return!0;let m,h;for(m=0,h=r.skips.length;m<h;m++)if(r.skips[m].test(p))return!1;for(m=0,h=r.names.length;m<h;m++)if(r.names[m].test(p))return!0;return!1}n(a,"enabled");function u(p){return p.toString().substring(2,p.toString().length-2).replace(/\.\*\?$/,"*")}n(u,"toNamespace");function c(p){return p instanceof Error?p.stack||p.message:p}n(c,"coerce");function d(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n(d,"destroy"),r.enable(r.load()),r}n(ho,"setup");qr.exports=ho});var Jr=nt((G,It)=>{T();G.formatArgs=yo;G.save=vo;G.load=bo;G.useColors=go;G.storage=wo();G.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();G.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function go(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let t;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(t=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(t[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}n(go,"useColors");function yo(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+It.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,s=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(s=r))}),t.splice(s,0,e)}n(yo,"formatArgs");G.log=console.debug||console.log||(()=>{});function vo(t){try{t?G.storage.setItem("debug",t):G.storage.removeItem("debug")}catch{}}n(vo,"save");function bo(){let t;try{t=G.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}n(bo,"load");function wo(){try{return localStorage}catch{}}n(wo,"localstorage");It.exports=_e()(G);var{formatters:_o}=It.exports;_o.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Vr=nt((R,Gt)=>{T();var ko=de("tty"),Nt=de("util");R.init=Oo;R.log=xo;R.formatArgs=So;R.save=Eo;R.load=Po;R.useColors=To;R.destroy=Nt.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");R.colors=[6,2,3,4,5,1];try{let t=no();t&&(t.stderr||t).level>=2&&(R.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}R.inspectOpts=Object.keys(process.env).filter(t=>/^debug_/i.test(t)).reduce((t,e)=>{let r=e.substring(6).toLowerCase().replace(/_([a-z])/g,(i,o)=>o.toUpperCase()),s=process.env[e];return/^(yes|on|true|enabled)$/i.test(s)?s=!0:/^(no|off|false|disabled)$/i.test(s)?s=!1:s==="null"?s=null:s=Number(s),t[r]=s,t},{});function To(){return"colors"in R.inspectOpts?!!R.inspectOpts.colors:ko.isatty(process.stderr.fd)}n(To,"useColors");function So(t){let{namespace:e,useColors:r}=this;if(r){let s=this.color,i="\x1B[3"+(s<8?s:"8;5;"+s),o=` ${i};1m${e} \x1B[0m`;t[0]=o+t[0].split(`
2
- `).join(`
3
- `+o),t.push(i+"m+"+Gt.exports.humanize(this.diff)+"\x1B[0m")}else t[0]=Co()+e+" "+t[0]}n(So,"formatArgs");function Co(){return R.inspectOpts.hideDate?"":new Date().toISOString()+" "}n(Co,"getDate");function xo(...t){return process.stderr.write(Nt.formatWithOptions(R.inspectOpts,...t)+`
4
- `)}n(xo,"log");function Eo(t){t?process.env.DEBUG=t:delete process.env.DEBUG}n(Eo,"save");function Po(){return process.env.DEBUG}n(Po,"load");function Oo(t){t.inspectOpts={};let e=Object.keys(R.inspectOpts);for(let r=0;r<e.length;r++)t.inspectOpts[e[r]]=R.inspectOpts[e[r]]}n(Oo,"init");Gt.exports=_e()(R);var{formatters:zr}=Gt.exports;zr.o=function(t){return this.inspectOpts.colors=this.useColors,Nt.inspect(t,this.inspectOpts).split(`
5
- `).map(e=>e.trim()).join(" ")};zr.O=function(t){return this.inspectOpts.colors=this.useColors,Nt.inspect(t,this.inspectOpts)}});var Qr=nt((Ol,ke)=>{T();typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?ke.exports=Jr():ke.exports=Vr()});var Se=nt(it=>{"use strict";T();Object.defineProperty(it,"__esModule",{value:!0});it.createDeferred=it.deferred=void 0;function Te(){let t,e,r="pending";return{promise:new Promise((i,o)=>{t=i,e=o}),done(i){r==="pending"&&(r="resolved",t(i))},fail(i){r==="pending"&&(r="rejected",e(i))},get fulfilled(){return r!=="pending"},get status(){return r}}}n(Te,"deferred");it.deferred=Te;it.createDeferred=Te;it.default=Te});T();var Mr=pt(io(),1);var Xc=Object.freeze({Fatal:"Fatal",Error:"Error",Warning:"Warning",Info:"Info"}),we=n(({problems:t,showFileTypes:e,...r})=>{let s="";for(let[i,o]of Object.entries(t)){s+=$(""),s+=$`• {cyan ${i}} {redBright ${(0,Mr.default)("problem",o.length,!0)}}`;for(let a of o){let[u,...c]=a.message.split(`
6
- `);s+=C` {red ✖} `,(e??a.type==="SourceFile")&&(s+=C`${oo(i)} `),s+=C(u);for(let d of c)s+=$(""),s+=C` ${d}`;for(let d of a.labels)s+=C` {dim ${d}}`;s+=$("")}}return $({...r,content:s})},"sprintProblems"),Zc=n(t=>{bt(we(t))},"printProblems"),oo=n(t=>{switch(!0){case Sr(t):return st.yellowBright("JavaScript");case Cr(t):return st.blue("TypeScript");case xr(t):return st.magenta("Gelly");default:return st.gray("File")}},"filetype"),tl=n(t=>{let e={};for(let r of t){let s=r.node?.apiIdentifier??r.node?.name??"Other";e[s]??=[],e[s].push({type:r.node?.type??"Unknown",severity:r.severity,message:r.message,labels:Ar(r.nodeLabels?.map(i=>i?.identifier)??[])})}return e},"publishIssuesToProblems"),el=n(t=>{let e={};for(let r of t)e[r.path]??=[],e[r.path].push({type:r.type,severity:r.level,message:r.message,labels:[]});return e},"filesyncProblemsToProblems");T();var Br=class extends _t{static{n(this,"YarnNotFoundError")}isBug=wt.NO;constructor(){super("Yarn not found")}render(){return C`
7
- Yarn must be installed to sync your application. You can install it by running:
8
-
9
- $ npm install --global yarn
10
-
11
- For more information, see: https://classic.yarnpkg.com/en/docs/install
12
- `}},Mt=class extends _t{constructor(r){super('The ".gadget/sync.json" file was invalid or not found');this.details=r}static{n(this,"UnknownDirectoryError")}isBug=wt.NO;render(){let r=this.details.directory.path;switch(this.details.command){case"add":case"open":case"status":return C`
13
- A ".gadget/sync.json" file is missing in this directory:
14
-
15
- ${r}
16
-
17
- In order to use "ggt ${this.details.command}", you must run it within a directory
18
- that has already been initialized with "ggt dev".
19
- `;case"dev":return C`
20
- A ".gadget/sync.json" file is missing in this directory:
21
-
22
- ${r}
23
-
24
- If you're running "ggt dev" for the first time, we recommend
25
- using a gadget specific directory like this:
26
-
27
- ggt dev ~/gadget/${this.details.args["--app"]??"<name>"}
28
-
29
- To use a non-empty directory without a ".gadget/sync.json" file,
30
- run "ggt dev" again with the "--allow-unknown-directory" flag:
31
-
32
- ggt dev ${r} --allow-unknown-directory
33
- `;default:return C`
34
- A ".gadget/sync.json" file is missing in this directory:
35
-
36
- ${r}
37
-
38
- If you're certain you want to use this directory, you can run
39
- "ggt ${this.details.command}" again with the "--allow-unknown-directory" flag:
40
-
41
- ggt ${this.details.command} --allow-unknown-directory
42
- `}}},Ir=class extends _t{constructor(r){super(`Failed to synchronize files after ${r} attempts.`);this.attempts=r}static{n(this,"TooManyMergeAttemptsError")}isBug=wt.MAYBE;render(){return C`
43
- We merged your local files with your environment's files ${this.attempts} times,
44
- but your local and environment's files still don't match.
45
-
46
- Make sure no one else is editing files on your environment, and try again.
47
- `}},Nr=class extends _t{constructor(r){super("This application is not allowed to be deployed due to fatal errors.");this.fatalErrors=r}static{n(this,"DeployDisallowedError")}isBug=wt.MAYBE;render(){let r=$`{red Gadget has detected the following fatal errors with your files:}`;return r+=we({ensureEmptyLineAbove:!0,problems:this.fatalErrors,showFileTypes:!1}),r+=$({ensureEmptyLineAbove:!0,content:st.red("Please fix these errors and try again.")}),r}},ao=n(t=>(t instanceof X&&(t=t.cause),kr(t)&&(t=t.errors),Tr(t)&&(t=t[0]),wr(t)&&"message"in t&&br(t.message)&&t.message.includes("Files version mismatch")),"isFilesVersionMismatchError"),fl=n((t,e)=>{if(ao(e)){t.log.debug("swallowing files version mismatch",{error:e});return}throw e},"swallowFilesVersionMismatch");T();var ce=pt(ro(),1);import hr from"node:assert";import Ri from"node:path";T();var te=pt(Ur(),1),Yt=pt(Qr(),1),ri=pt(Se(),1),dt=pt(Se(),1);import{spawn as ya}from"child_process";import{EventEmitter as $c}from"node:events";var Xt=Object.defineProperty,Ro=Object.defineProperties,Ao=Object.getOwnPropertyDescriptor,Fo=Object.getOwnPropertyDescriptors,Je=Object.getOwnPropertyNames,Wr=Object.getOwnPropertySymbols,Pn=Object.prototype.hasOwnProperty,$o=Object.prototype.propertyIsEnumerable,Hr=n((t,e,r)=>e in t?Xt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,"__defNormalProp"),z=n((t,e)=>{for(var r in e||(e={}))Pn.call(e,r)&&Hr(t,r,e[r]);if(Wr)for(var r of Wr(e))$o.call(e,r)&&Hr(t,r,e[r]);return t},"__spreadValues"),Ct=n((t,e)=>Ro(t,Fo(e)),"__spreadProps"),f=n((t,e)=>n(function(){return t&&(e=(0,t[Je(t)[0]])(t=0)),e},"__init"),"__esm"),jo=n((t,e)=>n(function(){return e||(0,t[Je(t)[0]])((e={exports:{}}).exports,e),e.exports},"__require"),"__commonJS"),O=n((t,e)=>{for(var r in e)Xt(t,r,{get:e[r],enumerable:!0})},"__export"),Do=n((t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Je(e))!Pn.call(t,i)&&i!==r&&Xt(t,i,{get:n(()=>e[i],"get"),enumerable:!(s=Ao(e,i))||s.enumerable});return t},"__copyProps"),x=n(t=>Do(Xt({},"__esModule",{value:!0}),t),"__toCommonJS"),St=n((t,e,r)=>new Promise((s,i)=>{var o=n(c=>{try{u(r.next(c))}catch(d){i(d)}},"fulfilled"),a=n(c=>{try{u(r.throw(c))}catch(d){i(d)}},"rejected"),u=n(c=>c.done?s(c.value):Promise.resolve(c.value).then(o,a),"step");u((r=r.apply(t,e)).next())}),"__async");function Lo(...t){let e=new String(t);return Zt.set(e,t),e}n(Lo,"pathspec");function Wt(t){return t instanceof String&&Zt.has(t)}n(Wt,"isPathSpec");function Yr(t){return Zt.get(t)||[]}n(Yr,"toPaths");var Zt,Ot=f({"src/lib/args/pathspec.ts"(){"use strict";Zt=new WeakMap}}),tt,rt=f({"src/lib/errors/git-error.ts"(){"use strict";tt=class extends Error{static{n(this,"GitError")}constructor(t,e){super(e),this.task=t,Object.setPrototypeOf(this,new.target.prototype)}}}}),Rt,gt=f({"src/lib/errors/git-response-error.ts"(){"use strict";rt(),Rt=class extends tt{static{n(this,"GitResponseError")}constructor(t,e){super(void 0,e||String(t)),this.git=t}}}}),On,Rn=f({"src/lib/errors/task-configuration-error.ts"(){"use strict";rt(),On=class extends tt{static{n(this,"TaskConfigurationError")}constructor(t){super(void 0,t)}}}});function An(t){return typeof t=="function"?t:ut}n(An,"asFunction");function Fn(t){return typeof t=="function"&&t!==ut}n(Fn,"isUserFunction");function $n(t,e){let r=t.indexOf(e);return r<=0?[t,""]:[t.substr(0,r),t.substr(r+1)]}n($n,"splitOn");function jn(t,e=0){return Dn(t)&&t.length>e?t[e]:void 0}n(jn,"first");function at(t,e=0){if(Dn(t)&&t.length>e)return t[t.length-1-e]}n(at,"last");function Dn(t){return!!(t&&typeof t.length=="number")}n(Dn,"isArrayLike");function At(t="",e=!0,r=`
48
- `){return t.split(r).reduce((s,i)=>{let o=e?i.trim():i;return o&&s.push(o),s},[])}n(At,"toLinesWithContent");function ze(t,e){return At(t,!0).map(r=>e(r))}n(ze,"forEachLineWithContent");function Ve(t){return(0,te.exists)(t,te.FOLDER)}n(Ve,"folderExists");function _(t,e){return Array.isArray(t)?t.includes(e)||t.push(e):t.add(e),e}n(_,"append");function Ln(t,e){return Array.isArray(t)&&!t.includes(e)&&t.push(e),t}n(Ln,"including");function ee(t,e){if(Array.isArray(t)){let r=t.indexOf(e);r>=0&&t.splice(r,1)}else t.delete(e);return e}n(ee,"remove");function W(t){return Array.isArray(t)?t:[t]}n(W,"asArray");function Mn(t){return t.replace(/[\s-]+(.)/g,(e,r)=>r.toUpperCase())}n(Mn,"asCamelCase");function Bn(t){return W(t).map(String)}n(Bn,"asStringArray");function S(t,e=0){if(t==null)return e;let r=parseInt(t,10);return isNaN(r)?e:r}n(S,"asNumber");function xt(t,e){let r=[];for(let s=0,i=t.length;s<i;s++)r.push(e,t[s]);return r}n(xt,"prefixedArray");function Et(t){return(Array.isArray(t)?Buffer.concat(t):t).toString("utf-8")}n(Et,"bufferToString");function In(t,e){return Object.assign({},...e.map(r=>r in t?{[r]:t[r]}:{}))}n(In,"pick");function Ae(t=0){return new Promise(e=>setTimeout(e,t))}n(Ae,"delay");function Fe(t){if(t!==!1)return t}n(Fe,"orVoid");var ht,ut,Ft,re=f({"src/lib/utils/util.ts"(){"use strict";ht="\0",ut=n(()=>{},"NOOP"),Ft=Object.prototype.toString.call.bind(Object.prototype.toString)}});function H(t,e,r){return e(t)?t:arguments.length>2?r:void 0}n(H,"filterType");function Qe(t,e){let r=Wt(t)?"string":typeof t;return/number|string|boolean/.test(r)&&(!e||!e.includes(r))}n(Qe,"filterPrimitives");function We(t){return!!t&&Ft(t)==="[object Object]"}n(We,"filterPlainObject");function Nn(t){return typeof t=="function"}n(Nn,"filterFunction");var $t,A,Gn,Ht,He,Un=f({"src/lib/utils/argument-filters.ts"(){"use strict";re(),Ot(),$t=n(t=>Array.isArray(t),"filterArray"),A=n(t=>typeof t=="string","filterString"),Gn=n(t=>Array.isArray(t)&&t.every(A),"filterStringArray"),Ht=n(t=>A(t)||Array.isArray(t)&&t.every(A),"filterStringOrStringArray"),He=n(t=>t==null||"number|boolean|function".includes(typeof t)?!1:Array.isArray(t)||typeof t=="string"||typeof t.length=="number","filterHasLength")}}),$e,Mo=f({"src/lib/utils/exit-codes.ts"(){"use strict";$e=(t=>(t[t.SUCCESS=0]="SUCCESS",t[t.ERROR=1]="ERROR",t[t.NOT_FOUND=-2]="NOT_FOUND",t[t.UNCLEAN=128]="UNCLEAN",t))($e||{})}}),Pt,Bo=f({"src/lib/utils/git-output-streams.ts"(){"use strict";Pt=class{static{n(this,"GitOutputStreams")}constructor(t,e){this.stdOut=t,this.stdErr=e}asStrings(){return new Pt(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}}),w,et,Io=f({"src/lib/utils/line-parser.ts"(){"use strict";w=class{static{n(this,"LineParser")}constructor(t,e){this.matches=[],this.parse=(r,s)=>(this.resetMatches(),this._regExp.every((i,o)=>this.addMatch(i,o,r(o)))?this.useMatches(s,this.prepareMatches())!==!1:!1),this._regExp=Array.isArray(t)?t:[t],e&&(this.useMatches=e)}useMatches(t,e){throw new Error("LineParser:useMatches not implemented")}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(t,e,r){let s=r&&t.exec(r);return s&&this.pushMatch(e,s),!!s}pushMatch(t,e){this.matches.push(...e.slice(1))}},et=class extends w{static{n(this,"RemoteLineParser")}addMatch(t,e,r){return/^remote:\s/.test(String(r))&&super.addMatch(t,e,r)}pushMatch(t,e){(t>0||e.length>1)&&super.pushMatch(t,e)}}}});function qn(...t){let e=process.cwd(),r=Object.assign(z({baseDir:e},Jn),...t.filter(s=>typeof s=="object"&&s));return r.baseDir=r.baseDir||e,r.trimmed=r.trimmed===!0,r}n(qn,"createInstanceConfig");var Jn,No=f({"src/lib/utils/simple-git-options.ts"(){"use strict";Jn={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:!1}}});function Ye(t,e=[]){return We(t)?Object.keys(t).reduce((r,s)=>{let i=t[s];return Wt(i)?r.push(i):Qe(i,["boolean"])?r.push(s+"="+i):r.push(s),r},e):e}n(Ye,"appendTaskOptions");function L(t,e=0,r=!1){let s=[];for(let i=0,o=e<0?t.length:e;i<o;i++)"string|number".includes(typeof t[i])&&s.push(String(t[i]));return Ye(Ke(t),s),r||s.push(...Go(t)),s}n(L,"getTrailingOptions");function Go(t){let e=typeof at(t)=="function";return H(at(t,e?1:0),$t,[])}n(Go,"trailingArrayArgument");function Ke(t){let e=Nn(at(t));return H(at(t,e?1:0),We)}n(Ke,"trailingOptionsArgument");function E(t,e=!0){let r=An(at(t));return e||Fn(r)?r:void 0}n(E,"trailingFunctionArgument");var Uo=f({"src/lib/utils/task-options.ts"(){"use strict";Un(),re(),Ot()}});function je(t,e){return t(e.stdOut,e.stdErr)}n(je,"callTaskParser");function B(t,e,r,s=!0){return W(r).forEach(i=>{for(let o=At(i,s),a=0,u=o.length;a<u;a++){let c=n((d=0)=>{if(!(a+d>=u))return o[a+d]},"line");e.some(({parse:d})=>d(c,t))}}),t}n(B,"parseStringResponse");var qo=f({"src/lib/utils/task-parser.ts"(){"use strict";re()}}),zn={};O(zn,{ExitCodes:n(()=>$e,"ExitCodes"),GitOutputStreams:n(()=>Pt,"GitOutputStreams"),LineParser:n(()=>w,"LineParser"),NOOP:n(()=>ut,"NOOP"),NULL:n(()=>ht,"NULL"),RemoteLineParser:n(()=>et,"RemoteLineParser"),append:n(()=>_,"append"),appendTaskOptions:n(()=>Ye,"appendTaskOptions"),asArray:n(()=>W,"asArray"),asCamelCase:n(()=>Mn,"asCamelCase"),asFunction:n(()=>An,"asFunction"),asNumber:n(()=>S,"asNumber"),asStringArray:n(()=>Bn,"asStringArray"),bufferToString:n(()=>Et,"bufferToString"),callTaskParser:n(()=>je,"callTaskParser"),createInstanceConfig:n(()=>qn,"createInstanceConfig"),delay:n(()=>Ae,"delay"),filterArray:n(()=>$t,"filterArray"),filterFunction:n(()=>Nn,"filterFunction"),filterHasLength:n(()=>He,"filterHasLength"),filterPlainObject:n(()=>We,"filterPlainObject"),filterPrimitives:n(()=>Qe,"filterPrimitives"),filterString:n(()=>A,"filterString"),filterStringArray:n(()=>Gn,"filterStringArray"),filterStringOrStringArray:n(()=>Ht,"filterStringOrStringArray"),filterType:n(()=>H,"filterType"),first:n(()=>jn,"first"),folderExists:n(()=>Ve,"folderExists"),forEachLineWithContent:n(()=>ze,"forEachLineWithContent"),getTrailingOptions:n(()=>L,"getTrailingOptions"),including:n(()=>Ln,"including"),isUserFunction:n(()=>Fn,"isUserFunction"),last:n(()=>at,"last"),objectToString:n(()=>Ft,"objectToString"),orVoid:n(()=>Fe,"orVoid"),parseStringResponse:n(()=>B,"parseStringResponse"),pick:n(()=>In,"pick"),prefixedArray:n(()=>xt,"prefixedArray"),remove:n(()=>ee,"remove"),splitOn:n(()=>$n,"splitOn"),toLinesWithContent:n(()=>At,"toLinesWithContent"),trailingFunctionArgument:n(()=>E,"trailingFunctionArgument"),trailingOptionsArgument:n(()=>Ke,"trailingOptionsArgument")});var b=f({"src/lib/utils/index.ts"(){"use strict";Un(),Mo(),Bo(),Io(),No(),Uo(),qo(),re()}}),Vn={};O(Vn,{CheckRepoActions:n(()=>De,"CheckRepoActions"),checkIsBareRepoTask:n(()=>Wn,"checkIsBareRepoTask"),checkIsRepoRootTask:n(()=>Qn,"checkIsRepoRootTask"),checkIsRepoTask:n(()=>Jo,"checkIsRepoTask")});function Jo(t){switch(t){case"bare":return Wn();case"root":return Qn()}return{commands:["rev-parse","--is-inside-work-tree"],format:"utf-8",onError:ne,parser:Xe}}n(Jo,"checkIsRepoTask");function Qn(){return{commands:["rev-parse","--git-dir"],format:"utf-8",onError:ne,parser(e){return/^\.(git)?$/.test(e.trim())}}}n(Qn,"checkIsRepoRootTask");function Wn(){return{commands:["rev-parse","--is-bare-repository"],format:"utf-8",onError:ne,parser:Xe}}n(Wn,"checkIsBareRepoTask");function zo(t){return/(Not a git repository|Kein Git-Repository)/i.test(String(t))}n(zo,"isNotRepoMessage");var De,ne,Xe,Hn=f({"src/lib/tasks/check-is-repo.ts"(){"use strict";b(),De=(t=>(t.BARE="bare",t.IN_TREE="tree",t.IS_REPO_ROOT="root",t))(De||{}),ne=n(({exitCode:t},e,r,s)=>{if(t===128&&zo(e))return r(Buffer.from("false"));s(e)},"onError"),Xe=n(t=>t.trim()==="true","parser")}});function Vo(t,e){let r=new Yn(t),s=t?Xn:Kn;return At(e).forEach(i=>{let o=i.replace(s,"");r.paths.push(o),(Zn.test(o)?r.folders:r.files).push(o)}),r}n(Vo,"cleanSummaryParser");var Yn,Kn,Xn,Zn,Qo=f({"src/lib/responses/CleanSummary.ts"(){"use strict";b(),Yn=class{static{n(this,"CleanResponse")}constructor(t){this.dryRun=t,this.paths=[],this.files=[],this.folders=[]}},Kn=/^[a-z]+\s*/i,Xn=/^[a-z]+\s+[a-z]+\s*/i,Zn=/\/$/}}),Le={};O(Le,{EMPTY_COMMANDS:n(()=>se,"EMPTY_COMMANDS"),adhocExecTask:n(()=>ts,"adhocExecTask"),configurationErrorTask:n(()=>M,"configurationErrorTask"),isBufferTask:n(()=>rs,"isBufferTask"),isEmptyTask:n(()=>ns,"isEmptyTask"),straightThroughBufferTask:n(()=>es,"straightThroughBufferTask"),straightThroughStringTask:n(()=>j,"straightThroughStringTask")});function ts(t){return{commands:se,format:"empty",parser:t}}n(ts,"adhocExecTask");function M(t){return{commands:se,format:"empty",parser(){throw typeof t=="string"?new On(t):t}}}n(M,"configurationErrorTask");function j(t,e=!1){return{commands:t,format:"utf-8",parser(r){return e?String(r).trim():r}}}n(j,"straightThroughStringTask");function es(t){return{commands:t,format:"buffer",parser(e){return e}}}n(es,"straightThroughBufferTask");function rs(t){return t.format==="buffer"}n(rs,"isBufferTask");function ns(t){return t.format==="empty"||!t.commands.length}n(ns,"isEmptyTask");var se,P=f({"src/lib/tasks/task.ts"(){"use strict";Rn(),se=[]}}),ss={};O(ss,{CONFIG_ERROR_INTERACTIVE_MODE:n(()=>Ze,"CONFIG_ERROR_INTERACTIVE_MODE"),CONFIG_ERROR_MODE_REQUIRED:n(()=>tr,"CONFIG_ERROR_MODE_REQUIRED"),CONFIG_ERROR_UNKNOWN_OPTION:n(()=>er,"CONFIG_ERROR_UNKNOWN_OPTION"),CleanOptions:n(()=>Jt,"CleanOptions"),cleanTask:n(()=>is,"cleanTask"),cleanWithOptionsTask:n(()=>Wo,"cleanWithOptionsTask"),isCleanOptionsArray:n(()=>Ho,"isCleanOptionsArray")});function Wo(t,e){let{cleanMode:r,options:s,valid:i}=Yo(t);return r?i.options?(s.push(...e),s.some(Zo)?M(Ze):is(r,s)):M(er+JSON.stringify(t)):M(tr)}n(Wo,"cleanWithOptionsTask");function is(t,e){return{commands:["clean",`-${t}`,...e],format:"utf-8",parser(s){return Vo(t==="n",s)}}}n(is,"cleanTask");function Ho(t){return Array.isArray(t)&&t.every(e=>rr.has(e))}n(Ho,"isCleanOptionsArray");function Yo(t){let e,r=[],s={cleanMode:!1,options:!0};return t.replace(/[^a-z]i/g,"").split("").forEach(i=>{Ko(i)?(e=i,s.cleanMode=!0):s.options=s.options&&Xo(r[r.length]=`-${i}`)}),{cleanMode:e,options:r,valid:s}}n(Yo,"getCleanOptions");function Ko(t){return t==="f"||t==="n"}n(Ko,"isCleanMode");function Xo(t){return/^-[a-z]$/i.test(t)&&rr.has(t.charAt(1))}n(Xo,"isKnownOption");function Zo(t){return/^-[^\-]/.test(t)?t.indexOf("i")>0:t==="--interactive"}n(Zo,"isInteractiveMode");var Ze,tr,er,Jt,rr,os=f({"src/lib/tasks/clean.ts"(){"use strict";Qo(),b(),P(),Ze="Git clean interactive mode is not supported",tr='Git clean mode parameter ("n" or "f") is required',er="Git clean unknown option found in: ",Jt=(t=>(t.DRY_RUN="n",t.FORCE="f",t.IGNORED_INCLUDED="x",t.IGNORED_ONLY="X",t.EXCLUDING="e",t.QUIET="q",t.RECURSIVE="d",t))(Jt||{}),rr=new Set(["i",...Bn(Object.values(Jt))])}});function ta(t){let e=new us;for(let r of as(t))e.addValue(r.file,String(r.key),r.value);return e}n(ta,"configListParser");function ea(t,e){let r=null,s=[],i=new Map;for(let o of as(t,e))o.key===e&&(s.push(r=o.value),i.has(o.file)||i.set(o.file,[]),i.get(o.file).push(r));return{key:e,paths:Array.from(i.keys()),scopes:i,value:r,values:s}}n(ea,"configGetParser");function ra(t){return t.replace(/^(file):/,"")}n(ra,"configFilePath");function*as(t,e=null){let r=t.split("\0");for(let s=0,i=r.length-1;s<i;){let o=ra(r[s++]),a=r[s++],u=e;if(a.includes(`
49
- `)){let c=$n(a,`
50
- `);u=c[0],a=c[1]}yield{file:o,key:u,value:a}}}n(as,"configParser");var us,na=f({"src/lib/responses/ConfigList.ts"(){"use strict";b(),us=class{static{n(this,"ConfigList")}constructor(){this.files=[],this.values=Object.create(null)}get all(){return this._all||(this._all=this.files.reduce((t,e)=>Object.assign(t,this.values[e]),{})),this._all}addFile(t){if(!(t in this.values)){let e=at(this.files);this.values[t]=e?Object.create(this.values[e]):{},this.files.push(t)}return this.values[t]}addValue(t,e,r){let s=this.addFile(t);s.hasOwnProperty(e)?Array.isArray(s[e])?s[e].push(r):s[e]=[s[e],r]:s[e]=r,this._all=void 0}}}});function Ce(t,e){return typeof t=="string"&&Me.hasOwnProperty(t)?t:e}n(Ce,"asConfigScope");function sa(t,e,r,s){let i=["config",`--${s}`];return r&&i.push("--add"),i.push(t,e),{commands:i,format:"utf-8",parser(o){return o}}}n(sa,"addConfigTask");function ia(t,e){let r=["config","--null","--show-origin","--get-all",t];return e&&r.splice(1,0,`--${e}`),{commands:r,format:"utf-8",parser(s){return ea(s,t)}}}n(ia,"getConfigTask");function oa(t){let e=["config","--list","--show-origin","--null"];return t&&e.push(`--${t}`),{commands:e,format:"utf-8",parser(r){return ta(r)}}}n(oa,"listConfigTask");function aa(){return{addConfig(t,e,...r){return this._runTask(sa(t,e,r[0]===!0,Ce(r[1],"local")),E(arguments))},getConfig(t,e){return this._runTask(ia(t,Ce(e,void 0)),E(arguments))},listConfig(...t){return this._runTask(oa(Ce(t[0],void 0)),E(arguments))}}}n(aa,"config_default");var Me,cs=f({"src/lib/tasks/config.ts"(){"use strict";na(),b(),Me=(t=>(t.system="system",t.global="global",t.local="local",t.worktree="worktree",t))(Me||{})}});function ua(t){return ls.has(t)}n(ua,"isDiffNameStatus");var xe,ls,ps=f({"src/lib/tasks/diff-name-status.ts"(){"use strict";xe=(t=>(t.ADDED="A",t.COPIED="C",t.DELETED="D",t.MODIFIED="M",t.RENAMED="R",t.CHANGED="T",t.UNMERGED="U",t.UNKNOWN="X",t.BROKEN="B",t))(xe||{}),ls=new Set(Object.values(xe))}});function ca(...t){return new ms().param(...t)}n(ca,"grepQueryBuilder");function la(t){let e=new Set,r={};return ze(t,s=>{let[i,o,a]=s.split(ht);e.add(i),(r[i]=r[i]||[]).push({line:S(o),path:i,preview:a})}),{paths:e,results:r}}n(la,"parseGrep");function pa(){return{grep(t){let e=E(arguments),r=L(arguments);for(let i of fs)if(r.includes(i))return this._runTask(M(`git.grep: use of "${i}" is not supported.`),e);typeof t=="string"&&(t=ca().param(t));let s=["grep","--null","-n","--full-name",...r,...t];return this._runTask({commands:s,format:"utf-8",parser(i){return la(i)}},e)}}}n(pa,"grep_default");var fs,Tt,Kr,ms,ds=f({"src/lib/tasks/grep.ts"(){"use strict";b(),P(),fs=["-h"],Tt=Symbol("grepQuery"),ms=class{static{n(this,"GrepQuery")}constructor(){this[Kr]=[]}*[(Kr=Tt,Symbol.iterator)](){for(let t of this[Tt])yield t}and(...t){return t.length&&this[Tt].push("--and","(",...xt(t,"-e"),")"),this}param(...t){return this[Tt].push(...xt(t,"-e")),this}}}}),hs={};O(hs,{ResetMode:n(()=>zt,"ResetMode"),getResetMode:n(()=>ma,"getResetMode"),resetTask:n(()=>fa,"resetTask")});function fa(t,e){let r=["reset"];return gs(t)&&r.push(`--${t}`),r.push(...e),j(r)}n(fa,"resetTask");function ma(t){if(gs(t))return t;switch(typeof t){case"string":case"undefined":return"soft"}}n(ma,"getResetMode");function gs(t){return ys.includes(t)}n(gs,"isValidResetMode");var zt,ys,vs=f({"src/lib/tasks/reset.ts"(){"use strict";P(),zt=(t=>(t.MIXED="mixed",t.SOFT="soft",t.HARD="hard",t.MERGE="merge",t.KEEP="keep",t))(zt||{}),ys=Array.from(Object.values(zt))}});function da(){return(0,Yt.default)("simple-git")}n(da,"createLog");function Xr(t,e,r){return!e||!String(e).replace(/\s*/,"")?r?(s,...i)=>{t(s,...i),r(s,...i)}:t:(s,...i)=>{t(`%s ${s}`,e,...i),r&&r(s,...i)}}n(Xr,"prefixedLogger");function ha(t,e,{namespace:r}){if(typeof t=="string")return t;let s=e&&e.namespace||"";return s.startsWith(r)?s.substr(r.length+1):s||r}n(ha,"childLoggerName");function nr(t,e,r,s=da()){let i=t&&`[${t}]`||"",o=[],a=typeof e=="string"?s.extend(e):e,u=ha(H(e,A),a,s);return d(r);function c(p,m){return _(o,nr(t,u.replace(/^[^:]+/,p),m,s))}function d(p){let m=p&&`[${p}]`||"",h=a&&Xr(a,m)||ut,g=Xr(s,`${i} ${m}`,h);return Object.assign(a?h:g,{label:t,sibling:c,info:g,step:d})}}n(nr,"createLogger");var bs=f({"src/lib/git-logger.ts"(){"use strict";b(),Yt.default.formatters.L=t=>String(He(t)?t.length:"-"),Yt.default.formatters.B=t=>Buffer.isBuffer(t)?t.toString("utf8"):Ft(t)}}),Ut,Be,ga=f({"src/lib/runners/tasks-pending-queue.ts"(){"use strict";rt(),bs(),Ut=class{static{n(this,"_TasksPendingQueue")}constructor(t="GitExecutor"){this.logLabel=t,this._queue=new Map}withProgress(t){return this._queue.get(t)}createProgress(t){let e=Ut.getName(t.commands[0]),r=nr(this.logLabel,e);return{task:t,logger:r,name:e}}push(t){let e=this.createProgress(t);return e.logger("Adding task to the queue, commands = %o",t.commands),this._queue.set(t,e),e}fatal(t){for(let[e,{logger:r}]of Array.from(this._queue.entries()))e===t.task?(r.info("Failed %o",t),r("Fatal exception, any as-yet un-started tasks run through this executor will not be attempted")):r.info("A fatal exception occurred in a previous task, the queue has been purged: %o",t.message),this.complete(e);if(this._queue.size!==0)throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}complete(t){this.withProgress(t)&&this._queue.delete(t)}attempt(t){let e=this.withProgress(t);if(!e)throw new tt(void 0,"TasksPendingQueue: attempt called for an unknown task");return e.logger("Starting task"),e}static getName(t="empty"){return`task:${t}:${++Ut.counter}`}},Be=Ut,Be.counter=0}});function ot(t,e){return{method:jn(t.commands)||"",commands:e}}n(ot,"pluginContext");function va(t,e){return r=>{e("[ERROR] child process exception %o",r),t.push(Buffer.from(String(r.stack),"ascii"))}}n(va,"onErrorReceived");function Zr(t,e,r,s){return i=>{r("%s received %L bytes",e,i),s("%B",i),t.push(i)}}n(Zr,"onDataReceived");var Ie,ba=f({"src/lib/runners/git-executor-chain.ts"(){"use strict";rt(),P(),b(),ga(),Ie=class{static{n(this,"GitExecutorChain")}constructor(t,e,r){this._executor=t,this._scheduler=e,this._plugins=r,this._chain=Promise.resolve(),this._queue=new Be}get cwd(){return this._cwd||this._executor.cwd}set cwd(t){this._cwd=t}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(t){return this._queue.push(t),this._chain=this._chain.then(()=>this.attemptTask(t))}attemptTask(t){return St(this,null,function*(){let e=yield this._scheduler.next(),r=n(()=>this._queue.complete(t),"onQueueComplete");try{let{logger:s}=this._queue.attempt(t);return yield ns(t)?this.attemptEmptyTask(t,s):this.attemptRemoteTask(t,s)}catch(s){throw this.onFatalException(t,s)}finally{r(),e()}})}onFatalException(t,e){let r=e instanceof tt?Object.assign(e,{task:t}):new tt(t,e&&String(e));return this._chain=Promise.resolve(),this._queue.fatal(r),r}attemptRemoteTask(t,e){return St(this,null,function*(){let r=this._plugins.exec("spawn.binary","",ot(t,t.commands)),s=this._plugins.exec("spawn.args",[...t.commands],ot(t,t.commands)),i=yield this.gitResponse(t,r,s,this.outputHandler,e.step("SPAWN")),o=yield this.handleTaskData(t,s,i,e.step("HANDLE"));return e("passing response to task's parser as a %s",t.format),rs(t)?je(t.parser,o):je(t.parser,o.asStrings())})}attemptEmptyTask(t,e){return St(this,null,function*(){return e("empty task bypassing child process to call to task's parser"),t.parser(this)})}handleTaskData(t,e,r,s){let{exitCode:i,rejection:o,stdOut:a,stdErr:u}=r;return new Promise((c,d)=>{s("Preparing to handle process response exitCode=%d stdOut=",i);let{error:p}=this._plugins.exec("task.error",{error:o},z(z({},ot(t,e)),r));if(p&&t.onError)return s.info("exitCode=%s handling with custom error handler"),t.onError(r,p,m=>{s.info("custom error handler treated as success"),s("custom error returned a %s",Ft(m)),c(new Pt(Array.isArray(m)?Buffer.concat(m):m,Buffer.concat(u)))},d);if(p)return s.info("handling as error: exitCode=%s stdErr=%s rejection=%o",i,u.length,o),d(p);s.info("retrieving task output complete"),c(new Pt(Buffer.concat(a),Buffer.concat(u)))})}gitResponse(t,e,r,s,i){return St(this,null,function*(){let o=i.sibling("output"),a=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:!0},ot(t,t.commands));return new Promise(u=>{let c=[],d=[];i.info("%s %o",e,r),i("%O",a);let p=this._beforeSpawn(t,r);if(p)return u({stdOut:c,stdErr:d,exitCode:9901,rejection:p});this._plugins.exec("spawn.before",void 0,Ct(z({},ot(t,r)),{kill(h){p=h||p}}));let m=ya(e,r,a);m.stdout.on("data",Zr(c,"stdOut",i,o.step("stdOut"))),m.stderr.on("data",Zr(d,"stdErr",i,o.step("stdErr"))),m.on("error",va(d,i)),s&&(i("Passing child process stdOut/stdErr to custom outputHandler"),s(e,m.stdout,m.stderr,[...r])),this._plugins.exec("spawn.after",void 0,Ct(z({},ot(t,r)),{spawned:m,close(h,g){u({stdOut:c,stdErr:d,exitCode:h,rejection:p||g})},kill(h){m.killed||(p=h,m.kill("SIGINT"))}}))})})}_beforeSpawn(t,e){let r;return this._plugins.exec("spawn.before",void 0,Ct(z({},ot(t,e)),{kill(s){r=s||r}})),r}}}}),ws={};O(ws,{GitExecutor:n(()=>_s,"GitExecutor")});var _s,wa=f({"src/lib/runners/git-executor.ts"(){"use strict";ba(),_s=class{static{n(this,"GitExecutor")}constructor(t,e,r){this.cwd=t,this._scheduler=e,this._plugins=r,this._chain=new Ie(this,this._scheduler,this._plugins)}chain(){return new Ie(this,this._scheduler,this._plugins)}push(t){return this._chain.push(t)}}}});function _a(t,e,r=ut){let s=n(o=>{r(null,o)},"onSuccess"),i=n(o=>{o?.task===t&&r(o instanceof Rt?ka(o):o,void 0)},"onError2");e.then(s,i)}n(_a,"taskCallback");function ka(t){let e=n(s=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${s} should be GitResponseError.git.${s}, this will no longer be available in version 3`),e=ut},"log");return Object.create(t,Object.getOwnPropertyNames(t.git).reduce(r,{}));function r(s,i){return i in t||(s[i]={enumerable:!1,configurable:!1,get(){return e(i),t.git[i]}}),s}}n(ka,"addDeprecationNoticeToError");var Ta=f({"src/lib/task-callback.ts"(){"use strict";gt(),b()}});function tn(t,e){return ts(r=>{if(!Ve(t))throw new Error(`Git.cwd: cannot change to non-directory "${t}"`);return(e||r).cwd=t})}n(tn,"changeWorkingDirectoryTask");var Sa=f({"src/lib/tasks/change-working-directory.ts"(){"use strict";b(),P()}});function Ee(t){let e=["checkout",...t];return e[1]==="-b"&&e.includes("-B")&&(e[1]=ee(e,"-B")),j(e)}n(Ee,"checkoutTask");function Ca(){return{checkout(){return this._runTask(Ee(L(arguments,1)),E(arguments))},checkoutBranch(t,e){return this._runTask(Ee(["-b",t,e,...L(arguments)]),E(arguments))},checkoutLocalBranch(t){return this._runTask(Ee(["-b",t,...L(arguments)]),E(arguments))}}}n(Ca,"checkout_default");var xa=f({"src/lib/tasks/checkout.ts"(){"use strict";b(),P()}});function Ea(){return{count:0,garbage:0,inPack:0,packs:0,prunePackable:0,size:0,sizeGarbage:0,sizePack:0}}n(Ea,"countObjectsResponse");function Pa(){return{countObjects(){return this._runTask({commands:["count-objects","--verbose"],format:"utf-8",parser(t){return B(Ea(),[ks],t)}})}}}n(Pa,"count_objects_default");var ks,Oa=f({"src/lib/tasks/count-objects.ts"(){"use strict";b(),ks=new w(/([a-z-]+): (\d+)$/,(t,[e,r])=>{let s=Mn(e);t.hasOwnProperty(s)&&(t[s]=S(r))})}});function Ra(t){return B({author:null,branch:"",commit:"",root:!1,summary:{changes:0,insertions:0,deletions:0}},Ts,t)}n(Ra,"parseCommitResult");var Ts,Aa=f({"src/lib/parsers/parse-commit.ts"(){"use strict";b(),Ts=[new w(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,(t,[e,r,s])=>{t.branch=e,t.commit=s,t.root=!!r}),new w(/\s*Author:\s(.+)/i,(t,[e])=>{let r=e.split("<"),s=r.pop();!s||!s.includes("@")||(t.author={email:s.substr(0,s.length-1),name:r.join("<").trim()})}),new w(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,(t,[e,r,s])=>{t.summary.changes=parseInt(e,10)||0,t.summary.insertions=parseInt(r,10)||0,t.summary.deletions=parseInt(s,10)||0}),new w(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,(t,[e,r,s])=>{t.summary.changes=parseInt(e,10)||0;let i=parseInt(r,10)||0;s==="-"?t.summary.deletions=i:s==="+"&&(t.summary.insertions=i)})]}});function Fa(t,e,r){return{commands:["-c","core.abbrev=40","commit",...xt(t,"-m"),...e,...r],format:"utf-8",parser:Ra}}n(Fa,"commitTask");function $a(){return{commit(e,...r){let s=E(arguments),i=t(e)||Fa(W(e),W(H(r[0],Ht,[])),[...H(r[1],$t,[]),...L(arguments,0,!0)]);return this._runTask(i,s)}};function t(e){return!Ht(e)&&M("git.commit: requires the commit message to be supplied as a string/string[]")}}n($a,"commit_default");var ja=f({"src/lib/tasks/commit.ts"(){"use strict";Aa(),b(),P()}});function Da(){return{firstCommit(){return this._runTask(j(["rev-list","--max-parents=0","HEAD"],!0),E(arguments))}}}n(Da,"first_commit_default");var La=f({"src/lib/tasks/first-commit.ts"(){"use strict";b(),P()}});function Ma(t,e){let r=["hash-object",t];return e&&r.push("-w"),j(r,!0)}n(Ma,"hashObjectTask");var Ba=f({"src/lib/tasks/hash-object.ts"(){"use strict";P()}});function Ia(t,e,r){let s=String(r).trim(),i;if(i=Ss.exec(s))return new Vt(t,e,!1,i[1]);if(i=Cs.exec(s))return new Vt(t,e,!0,i[1]);let o="",a=s.split(" ");for(;a.length;)if(a.shift()==="in"){o=a.join(" ");break}return new Vt(t,e,/^re/i.test(s),o)}n(Ia,"parseInit");var Vt,Ss,Cs,Na=f({"src/lib/responses/InitSummary.ts"(){"use strict";Vt=class{static{n(this,"InitSummary")}constructor(t,e,r,s){this.bare=t,this.path=e,this.existing=r,this.gitDir=s}},Ss=/^Init.+ repository in (.+)$/,Cs=/^Rein.+ in (.+)$/}});function Ga(t){return t.includes(sr)}n(Ga,"hasBareCommand");function Ua(t=!1,e,r){let s=["init",...r];return t&&!Ga(s)&&s.splice(1,0,sr),{commands:s,format:"utf-8",parser(i){return Ia(s.includes("--bare"),e,i)}}}n(Ua,"initTask");var sr,qa=f({"src/lib/tasks/init.ts"(){"use strict";Na(),sr="--bare"}});function ir(t){for(let e=0;e<t.length;e++){let r=or.exec(t[e]);if(r)return`--${r[1]}`}return""}n(ir,"logFormatFromCommand");function Ja(t){return or.test(t)}n(Ja,"isLogFormat");var or,jt=f({"src/lib/args/log-format.ts"(){"use strict";or=/^--(stat|numstat|name-only|name-status)(=|$)/}}),xs,za=f({"src/lib/responses/DiffSummary.ts"(){"use strict";xs=class{static{n(this,"DiffSummary")}constructor(){this.changed=0,this.deletions=0,this.insertions=0,this.files=[]}}}});function Es(t=""){let e=Ps[t];return r=>B(new xs,e,r,!1)}n(Es,"getDiffParser");var Pe,en,rn,nn,Ps,Os=f({"src/lib/parsers/parse-diff-summary.ts"(){"use strict";jt(),za(),ps(),b(),Pe=[new w(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,(t,[e,r,s=""])=>{t.files.push({file:e.trim(),changes:S(r),insertions:s.replace(/[^+]/g,"").length,deletions:s.replace(/[^-]/g,"").length,binary:!1})}),new w(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,(t,[e,r,s])=>{t.files.push({file:e.trim(),before:S(r),after:S(s),binary:!0})}),new w(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,(t,[e,r])=>{let s=/(\d+) i/.exec(r),i=/(\d+) d/.exec(r);t.changed=S(e),t.insertions=S(s?.[1]),t.deletions=S(i?.[1])})],en=[new w(/(\d+)\t(\d+)\t(.+)$/,(t,[e,r,s])=>{let i=S(e),o=S(r);t.changed++,t.insertions+=i,t.deletions+=o,t.files.push({file:s,changes:i+o,insertions:i,deletions:o,binary:!1})}),new w(/-\t-\t(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,after:0,before:0,binary:!0})})],rn=[new w(/(.+)$/,(t,[e])=>{t.changed++,t.files.push({file:e,changes:0,insertions:0,deletions:0,binary:!1})})],nn=[new w(/([ACDMRTUXB])([0-9]{0,3})\t(.[^\t]*)(\t(.[^\t]*))?$/,(t,[e,r,s,i,o])=>{t.changed++,t.files.push({file:o??s,changes:0,insertions:0,deletions:0,binary:!1,status:Fe(ua(e)&&e),from:Fe(!!o&&s!==o&&s),similarity:S(r)})})],Ps={"":Pe,"--stat":Pe,"--numstat":en,"--name-status":nn,"--name-only":rn}}});function Va(t,e){return e.reduce((r,s,i)=>(r[s]=t[i]||"",r),Object.create({diff:null}))}n(Va,"lineBuilder");function Rs(t=cr,e=As,r=""){let s=Es(r);return function(i){let o=At(i.trim(),!1,ar).map(function(a){let u=a.split(ur),c=Va(u[0].split(t),e);return u.length>1&&u[1].trim()&&(c.diff=s(u[1])),c});return{all:o,latest:o.length&&o[0]||null,total:o.length}}}n(Rs,"createListLogSummaryParser");var ar,ur,cr,As,Fs=f({"src/lib/parsers/parse-list-log-summary.ts"(){"use strict";b(),Os(),jt(),ar="\xF2\xF2\xF2\xF2\xF2\xF2 ",ur=" \xF2\xF2",cr=" \xF2 ",As=["hash","date","message","refs","author_name","author_email"]}}),$s={};O($s,{diffSummaryTask:n(()=>Qa,"diffSummaryTask"),validateLogFormatConfig:n(()=>ie,"validateLogFormatConfig")});function Qa(t){let e=ir(t),r=["diff"];return e===""&&(e="--stat",r.push("--stat=4096")),r.push(...t),ie(r)||{commands:r,format:"utf-8",parser:Es(e)}}n(Qa,"diffSummaryTask");function ie(t){let e=t.filter(Ja);if(e.length>1)return M(`Summary flags are mutually exclusive - pick one of ${e.join(",")}`);if(e.length&&t.includes("-z"))return M(`Summary flag ${e} parsing is not compatible with null termination option '-z'`)}n(ie,"validateLogFormatConfig");var lr=f({"src/lib/tasks/diff.ts"(){"use strict";jt(),Os(),P()}});function Wa(t,e){let r=[],s=[];return Object.keys(t).forEach(i=>{r.push(i),s.push(String(t[i]))}),[r,s.join(e)]}n(Wa,"prettyFormat");function Ha(t){return Object.keys(t).reduce((e,r)=>(r in Ne||(e[r]=t[r]),e),{})}n(Ha,"userOptions");function js(t={},e=[]){let r=H(t.splitter,A,cr),s=!Qe(t.format)&&t.format?t.format:{hash:"%H",date:t.strictDate===!1?"%ai":"%aI",message:"%s",refs:"%D",body:t.multiLine?"%B":"%b",author_name:t.mailMap!==!1?"%aN":"%an",author_email:t.mailMap!==!1?"%aE":"%ae"},[i,o]=Wa(s,r),a=[],u=[`--pretty=format:${ar}${o}${ur}`,...e],c=t.n||t["max-count"]||t.maxCount;if(c&&u.push(`--max-count=${c}`),t.from||t.to){let d=t.symmetric!==!1?"...":"..";a.push(`${t.from||""}${d}${t.to||""}`)}return A(t.file)&&u.push("--follow",Lo(t.file)),Ye(Ha(t),u),{fields:i,splitter:r,commands:[...u,...a]}}n(js,"parseLogOptions");function Ya(t,e,r){let s=Rs(t,e,ir(r));return{commands:["log",...r],format:"utf-8",parser:s}}n(Ya,"logTask");function Ka(){return{log(...r){let s=E(arguments),i=js(Ke(arguments),H(arguments[0],$t)),o=e(...r)||ie(i.commands)||t(i);return this._runTask(o,s)}};function t(r){return Ya(r.splitter,r.fields,r.commands)}function e(r,s){return A(r)&&A(s)&&M("git.log(string, string) should be replaced with git.log({ from: string, to: string })")}}n(Ka,"log_default");var Ne,Ds=f({"src/lib/tasks/log.ts"(){"use strict";jt(),Ot(),Fs(),b(),P(),lr(),Ne=(t=>(t[t["--pretty"]=0]="--pretty",t[t["max-count"]=1]="max-count",t[t.maxCount=2]="maxCount",t[t.n=3]="n",t[t.file=4]="file",t[t.format=5]="format",t[t.from=6]="from",t[t.to=7]="to",t[t.splitter=8]="splitter",t[t.symmetric=9]="symmetric",t[t.mailMap=10]="mailMap",t[t.multiLine=11]="multiLine",t[t.strictDate=12]="strictDate",t))(Ne||{})}}),Qt,Ls,Xa=f({"src/lib/responses/MergeSummary.ts"(){"use strict";Qt=class{static{n(this,"MergeSummaryConflict")}constructor(t,e=null,r){this.reason=t,this.file=e,this.meta=r}toString(){return`${this.file}:${this.reason}`}},Ls=class{static{n(this,"MergeSummaryDetail")}constructor(){this.conflicts=[],this.merges=[],this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){return this.conflicts.length?`CONFLICTS: ${this.conflicts.join(", ")}`:"OK"}}}}),Ge,Ms,Za=f({"src/lib/responses/PullSummary.ts"(){"use strict";Ge=class{static{n(this,"PullSummary")}constructor(){this.remoteMessages={all:[]},this.created=[],this.deleted=[],this.files=[],this.deletions={},this.insertions={},this.summary={changes:0,deletions:0,insertions:0}}},Ms=class{static{n(this,"PullFailedSummary")}constructor(){this.remote="",this.hash={local:"",remote:""},this.branch={local:"",remote:""},this.message=""}toString(){return this.message}}}});function Oe(t){return t.objects=t.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}n(Oe,"objectEnumerationResult");function sn(t){let e=/^\s*(\d+)/.exec(t),r=/delta (\d+)/i.exec(t);return{count:S(e&&e[1]||"0"),delta:S(r&&r[1]||"0")}}n(sn,"asObjectCount");var Bs,tu=f({"src/lib/parsers/parse-remote-objects.ts"(){"use strict";b(),Bs=[new et(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,(t,[e,r])=>{let s=e.toLowerCase(),i=Oe(t.remoteMessages);Object.assign(i,{[s]:S(r)})}),new et(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,(t,[e,r])=>{let s=e.toLowerCase(),i=Oe(t.remoteMessages);Object.assign(i,{[s]:S(r)})}),new et(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,(t,[e,r,s])=>{let i=Oe(t.remoteMessages);i.total=sn(e),i.reused=sn(r),i.packReused=S(s)})]}});function Is(t,e){return B({remoteMessages:new Gs},Ns,e)}n(Is,"parseRemoteMessages");var Ns,Gs,Us=f({"src/lib/parsers/parse-remote-messages.ts"(){"use strict";b(),tu(),Ns=[new et(/^remote:\s*(.+)$/,(t,[e])=>(t.remoteMessages.all.push(e.trim()),!1)),...Bs,new et([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],(t,[e])=>{t.remoteMessages.pullRequestUrl=e}),new et([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],(t,[e,r,s])=>{t.remoteMessages.vulnerabilities={count:S(e),summary:r,url:s}})],Gs=class{static{n(this,"RemoteMessageSummary")}constructor(){this.all=[]}}}});function eu(t,e){let r=B(new Ms,qs,[t,e]);return r.message&&r}n(eu,"parsePullErrorResult");var on,an,un,cn,qs,ln,pr,Js=f({"src/lib/parsers/parse-pull.ts"(){"use strict";Za(),b(),Us(),on=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/,an=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/,un=/^(create|delete) mode \d+ (.+)/,cn=[new w(on,(t,[e,r,s])=>{t.files.push(e),r&&(t.insertions[e]=r.length),s&&(t.deletions[e]=s.length)}),new w(an,(t,[e,,r,,s])=>r!==void 0||s!==void 0?(t.summary.changes=+e||0,t.summary.insertions=+r||0,t.summary.deletions=+s||0,!0):!1),new w(un,(t,[e,r])=>{_(t.files,r),_(e==="create"?t.created:t.deleted,r)})],qs=[new w(/^from\s(.+)$/i,(t,[e])=>void(t.remote=e)),new w(/^fatal:\s(.+)$/,(t,[e])=>void(t.message=e)),new w(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,(t,[e,r,s,i])=>{t.branch.local=s,t.hash.local=e,t.branch.remote=i,t.hash.remote=r})],ln=n((t,e)=>B(new Ge,cn,[t,e]),"parsePullDetail"),pr=n((t,e)=>Object.assign(new Ge,ln(t,e),Is(t,e)),"parsePullResult")}}),pn,zs,fn,ru=f({"src/lib/parsers/parse-merge.ts"(){"use strict";Xa(),b(),Js(),pn=[new w(/^Auto-merging\s+(.+)$/,(t,[e])=>{t.merges.push(e)}),new w(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,(t,[e,r])=>{t.conflicts.push(new Qt(e,r))}),new w(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,(t,[e,r,s])=>{t.conflicts.push(new Qt(e,r,{deleteRef:s}))}),new w(/^CONFLICT\s+\((.+)\):/,(t,[e])=>{t.conflicts.push(new Qt(e,null))}),new w(/^Automatic merge failed;\s+(.+)$/,(t,[e])=>{t.result=e})],zs=n((t,e)=>Object.assign(fn(t,e),pr(t,e)),"parseMergeResult"),fn=n(t=>B(new Ls,pn,t),"parseMergeDetail")}});function mn(t){return t.length?{commands:["merge",...t],format:"utf-8",parser(e,r){let s=zs(e,r);if(s.failed)throw new Rt(s);return s}}:M("Git.merge requires at least one option")}n(mn,"mergeTask");var nu=f({"src/lib/tasks/merge.ts"(){"use strict";gt(),ru(),P()}});function su(t,e,r){let s=r.includes("deleted"),i=r.includes("tag")||/^refs\/tags/.test(t),o=!r.includes("new");return{deleted:s,tag:i,branch:!i,new:!o,alreadyUpdated:o,local:t,remote:e}}n(su,"pushResultPushedItem");var dn,Vs,hn,iu=f({"src/lib/parsers/parse-push.ts"(){"use strict";b(),Us(),dn=[new w(/^Pushing to (.+)$/,(t,[e])=>{t.repo=e}),new w(/^updating local tracking ref '(.+)'/,(t,[e])=>{t.ref=Ct(z({},t.ref||{}),{local:e})}),new w(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/,(t,[e,r,s])=>{t.pushed.push(su(e,r,s))}),new w(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,(t,[e,r,s])=>{t.branch=Ct(z({},t.branch||{}),{local:e,remote:r,remoteName:s})}),new w(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,(t,[e,r,s,i])=>{t.update={head:{local:e,remote:r},hash:{from:s,to:i}}})],Vs=n((t,e)=>{let r=hn(t,e),s=Is(t,e);return z(z({},r),s)},"parsePushResult"),hn=n((t,e)=>B({pushed:[]},dn,[t,e]),"parsePushDetail")}}),Qs={};O(Qs,{pushTagsTask:n(()=>ou,"pushTagsTask"),pushTask:n(()=>fr,"pushTask")});function ou(t={},e){return _(e,"--tags"),fr(t,e)}n(ou,"pushTagsTask");function fr(t={},e){let r=["push",...e];return t.branch&&r.splice(1,0,t.branch),t.remote&&r.splice(1,0,t.remote),ee(r,"-v"),_(r,"--verbose"),_(r,"--porcelain"),{commands:r,format:"utf-8",parser:Vs}}n(fr,"pushTask");var Ws=f({"src/lib/tasks/push.ts"(){"use strict";iu(),b()}});function au(){return{showBuffer(){let t=["show",...L(arguments,1)];return t.includes("--binary")||t.splice(1,0,"--binary"),this._runTask(es(t),E(arguments))},show(){let t=["show",...L(arguments,1)];return this._runTask(j(t),E(arguments))}}}n(au,"show_default");var uu=f({"src/lib/tasks/show.ts"(){"use strict";b(),P()}}),gn,Hs,cu=f({"src/lib/responses/FileStatusSummary.ts"(){"use strict";gn=/^(.+)\0(.+)$/,Hs=class{static{n(this,"FileStatusSummary")}constructor(t,e,r){if(this.path=t,this.index=e,this.working_dir=r,e==="R"||r==="R"){let s=gn.exec(t)||[null,t,t];this.from=s[2]||"",this.path=s[1]||""}}}}});function yn(t){let[e,r]=t.split(ht);return{from:r||e,to:e}}n(yn,"renamedFile");function U(t,e,r){return[`${t}${e}`,r]}n(U,"parser3");function Re(t,...e){return e.map(r=>U(t,r,(s,i)=>_(s.conflicted,i)))}n(Re,"conflicts");function lu(t,e){let r=e.trim();switch(" "){case r.charAt(2):return s(r.charAt(0),r.charAt(1),r.substr(3));case r.charAt(1):return s(" ",r.charAt(0),r.substr(2));default:return}function s(i,o,a){let u=`${i}${o}`,c=Ys.get(u);c&&c(t,a),u!=="##"&&u!=="!!"&&t.files.push(new Hs(a,i,o))}n(s,"data")}n(lu,"splitLine");var vn,Ys,Ks,pu=f({"src/lib/responses/StatusSummary.ts"(){"use strict";b(),cu(),vn=class{static{n(this,"StatusSummary")}constructor(){this.not_added=[],this.conflicted=[],this.created=[],this.deleted=[],this.ignored=void 0,this.modified=[],this.renamed=[],this.files=[],this.staged=[],this.ahead=0,this.behind=0,this.current=null,this.tracking=null,this.detached=!1,this.isClean=()=>!this.files.length}},Ys=new Map([U(" ","A",(t,e)=>_(t.created,e)),U(" ","D",(t,e)=>_(t.deleted,e)),U(" ","M",(t,e)=>_(t.modified,e)),U("A"," ",(t,e)=>_(t.created,e)&&_(t.staged,e)),U("A","M",(t,e)=>_(t.created,e)&&_(t.staged,e)&&_(t.modified,e)),U("D"," ",(t,e)=>_(t.deleted,e)&&_(t.staged,e)),U("M"," ",(t,e)=>_(t.modified,e)&&_(t.staged,e)),U("M","M",(t,e)=>_(t.modified,e)&&_(t.staged,e)),U("R"," ",(t,e)=>{_(t.renamed,yn(e))}),U("R","M",(t,e)=>{let r=yn(e);_(t.renamed,r),_(t.modified,r.to)}),U("!","!",(t,e)=>{_(t.ignored=t.ignored||[],e)}),U("?","?",(t,e)=>_(t.not_added,e)),...Re("A","A","U"),...Re("D","D","U"),...Re("U","A","D","U"),["##",(t,e)=>{let r=/ahead (\d+)/,s=/behind (\d+)/,i=/^(.+?(?=(?:\.{3}|\s|$)))/,o=/\.{3}(\S*)/,a=/\son\s([\S]+)$/,u;u=r.exec(e),t.ahead=u&&+u[1]||0,u=s.exec(e),t.behind=u&&+u[1]||0,u=i.exec(e),t.current=u&&u[1],u=o.exec(e),t.tracking=u&&u[1],u=a.exec(e),t.current=u&&u[1]||t.current,t.detached=/\(no branch\)/.test(e)}]]),Ks=n(function(t){let e=t.split(ht),r=new vn;for(let s=0,i=e.length;s<i;){let o=e[s++].trim();o&&(o.charAt(0)==="R"&&(o+=ht+(e[s++]||"")),lu(r,o))}return r},"parseStatusSummary")}});function fu(t){return{format:"utf-8",commands:["status","--porcelain","-b","-u","--null",...t.filter(r=>!Xs.includes(r))],parser(r){return Ks(r)}}}n(fu,"statusTask");var Xs,mu=f({"src/lib/tasks/status.ts"(){"use strict";pu(),Xs=["--null","-z"]}});function Kt(t=0,e=0,r=0,s="",i=!0){return Object.defineProperty({major:t,minor:e,patch:r,agent:s,installed:i},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:!1,enumerable:!1})}n(Kt,"versionResponse");function du(){return Kt(0,0,0,"",!1)}n(du,"notInstalledResponse");function hu(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:gu,onError(t,e,r,s){if(t.exitCode===-2)return r(Buffer.from(mr));s(e)}})}}}n(hu,"version_default");function gu(t){return t===mr?du():B(Kt(0,0,0,t),Zs,t)}n(gu,"versionParser");var mr,Zs,yu=f({"src/lib/tasks/version.ts"(){"use strict";b(),mr="installed=false",Zs=[new w(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,(t,[e,r,s,i=""])=>{Object.assign(t,Kt(S(e),S(r),S(s),i))}),new w(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,(t,[e,r,s,i=""])=>{Object.assign(t,Kt(S(e),S(r),s,i))})]}}),ti={};O(ti,{SimpleGitApi:n(()=>Ue,"SimpleGitApi")});var Ue,vu=f({"src/lib/simple-git-api.ts"(){"use strict";Ta(),Sa(),xa(),Oa(),ja(),cs(),La(),ds(),Ba(),qa(),Ds(),nu(),Ws(),uu(),mu(),P(),yu(),b(),Ue=class{static{n(this,"SimpleGitApi")}constructor(t){this._executor=t}_runTask(t,e){let r=this._executor.chain(),s=r.push(t);return e&&_a(t,s,e),Object.create(this,{then:{value:s.then.bind(s)},catch:{value:s.catch.bind(s)},_executor:{value:r}})}add(t){return this._runTask(j(["add",...W(t)]),E(arguments))}cwd(t){let e=E(arguments);return typeof t=="string"?this._runTask(tn(t,this._executor),e):typeof t?.path=="string"?this._runTask(tn(t.path,t.root&&this._executor||void 0),e):this._runTask(M("Git.cwd: workingDirectory must be supplied as a string"),e)}hashObject(t,e){return this._runTask(Ma(t,e===!0),E(arguments))}init(t){return this._runTask(Ua(t===!0,this._executor.cwd,L(arguments)),E(arguments))}merge(){return this._runTask(mn(L(arguments)),E(arguments))}mergeFromTo(t,e){return A(t)&&A(e)?this._runTask(mn([t,e,...L(arguments)]),E(arguments,!1)):this._runTask(M("Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings"))}outputHandler(t){return this._executor.outputHandler=t,this}push(){let t=fr({remote:H(arguments[0],A),branch:H(arguments[1],A)},L(arguments));return this._runTask(t,E(arguments))}stash(){return this._runTask(j(["stash",...L(arguments)]),E(arguments))}status(){return this._runTask(fu(L(arguments)),E(arguments))}},Object.assign(Ue.prototype,Ca(),$a(),aa(),Pa(),Da(),pa(),Ka(),au(),hu())}}),ei={};O(ei,{Scheduler:n(()=>ni,"Scheduler")});var bn,ni,bu=f({"src/lib/runners/scheduler.ts"(){"use strict";b(),bs(),bn=(()=>{let t=0;return()=>{t++;let{promise:e,done:r}=(0,ri.createDeferred)();return{promise:e,done:r,id:t}}})(),ni=class{static{n(this,"Scheduler")}constructor(t=2){this.concurrency=t,this.logger=nr("","scheduler"),this.pending=[],this.running=[],this.logger("Constructed, concurrency=%s",t)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger("Schedule attempt ignored, pending=%s running=%s concurrency=%s",this.pending.length,this.running.length,this.concurrency);return}let t=_(this.running,this.pending.shift());this.logger("Attempting id=%s",t.id),t.done(()=>{this.logger("Completing id=",t.id),ee(this.running,t),this.schedule()})}next(){let{promise:t,id:e}=_(this.pending,bn());return this.logger("Scheduling id=%s",e),this.schedule(),t}}}}),si={};O(si,{applyPatchTask:n(()=>wu,"applyPatchTask")});function wu(t,e){return j(["apply",...e,...t])}n(wu,"applyPatchTask");var _u=f({"src/lib/tasks/apply-patch.ts"(){"use strict";P()}});function ku(t,e){return{branch:t,hash:e,success:!0}}n(ku,"branchDeletionSuccess");function Tu(t){return{branch:t,hash:null,success:!1}}n(Tu,"branchDeletionFailure");var ii,Su=f({"src/lib/responses/BranchDeleteSummary.ts"(){"use strict";ii=class{static{n(this,"BranchDeletionBatch")}constructor(){this.all=[],this.branches={},this.errors=[]}get success(){return!this.errors.length}}}});function oi(t,e){return e===1&&qe.test(t)}n(oi,"hasBranchDeletionError");var wn,qe,_n,oe,Cu=f({"src/lib/parsers/parse-branch-delete.ts"(){"use strict";Su(),b(),wn=/(\S+)\s+\(\S+\s([^)]+)\)/,qe=/^error[^']+'([^']+)'/m,_n=[new w(wn,(t,[e,r])=>{let s=ku(e,r);t.all.push(s),t.branches[e]=s}),new w(qe,(t,[e])=>{let r=Tu(e);t.errors.push(r),t.all.push(r),t.branches[e]=r})],oe=n((t,e)=>B(new ii,_n,[t,e]),"parseBranchDeletions")}}),ai,xu=f({"src/lib/responses/BranchSummary.ts"(){"use strict";ai=class{static{n(this,"BranchSummaryResult")}constructor(){this.all=[],this.branches={},this.current="",this.detached=!1}push(t,e,r,s,i){t==="*"&&(this.detached=e,this.current=r),this.all.push(r),this.branches[r]={current:t==="*",linkedWorkTree:t==="+",name:r,commit:s,label:i}}}}});function kn(t){return t?t.charAt(0):""}n(kn,"branchStatus");function ui(t){return B(new ai,ci,t)}n(ui,"parseBranchSummary");var ci,Eu=f({"src/lib/parsers/parse-branch.ts"(){"use strict";xu(),b(),ci=[new w(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,(t,[e,r,s,i])=>{t.push(kn(e),!0,r,s,i)}),new w(new RegExp("^([*+]\\s)?(\\S+)\\s+([a-z0-9]+)\\s?(.*)$","s"),(t,[e,r,s,i])=>{t.push(kn(e),!1,r,s,i)})]}}),li={};O(li,{branchLocalTask:n(()=>Ou,"branchLocalTask"),branchTask:n(()=>Pu,"branchTask"),containsDeleteBranchCommand:n(()=>pi,"containsDeleteBranchCommand"),deleteBranchTask:n(()=>Au,"deleteBranchTask"),deleteBranchesTask:n(()=>Ru,"deleteBranchesTask")});function pi(t){let e=["-d","-D","--delete"];return t.some(r=>e.includes(r))}n(pi,"containsDeleteBranchCommand");function Pu(t){let e=pi(t),r=["branch",...t];return r.length===1&&r.push("-a"),r.includes("-v")||r.splice(1,0,"-v"),{format:"utf-8",commands:r,parser(s,i){return e?oe(s,i).all[0]:ui(s)}}}n(Pu,"branchTask");function Ou(){return{format:"utf-8",commands:["branch","-v"],parser:ui}}n(Ou,"branchLocalTask");function Ru(t,e=!1){return{format:"utf-8",commands:["branch","-v",e?"-D":"-d",...t],parser(r,s){return oe(r,s)},onError({exitCode:r,stdOut:s},i,o,a){if(!oi(String(i),r))return a(i);o(s)}}}n(Ru,"deleteBranchesTask");function Au(t,e=!1){let r={format:"utf-8",commands:["branch","-v",e?"-D":"-d",t],parser(s,i){return oe(s,i).branches[t]},onError({exitCode:s,stdErr:i,stdOut:o},a,u,c){if(!oi(String(a),s))return c(a);throw new Rt(r.parser(Et(o),Et(i)),String(a))}};return r}n(Au,"deleteBranchTask");var Fu=f({"src/lib/tasks/branch.ts"(){"use strict";gt(),Cu(),Eu(),b()}}),fi,$u=f({"src/lib/responses/CheckIgnore.ts"(){"use strict";fi=n(t=>t.split(/\n/g).map(e=>e.trim()).filter(e=>!!e),"parseCheckIgnore")}}),mi={};O(mi,{checkIgnoreTask:n(()=>ju,"checkIgnoreTask")});function ju(t){return{commands:["check-ignore",...t],format:"utf-8",parser:fi}}n(ju,"checkIgnoreTask");var Du=f({"src/lib/tasks/check-ignore.ts"(){"use strict";$u()}}),di={};O(di,{cloneMirrorTask:n(()=>Mu,"cloneMirrorTask"),cloneTask:n(()=>hi,"cloneTask")});function Lu(t){return/^--upload-pack(=|$)/.test(t)}n(Lu,"disallowedCommand");function hi(t,e,r){let s=["clone",...r];return A(t)&&s.push(t),A(e)&&s.push(e),s.find(Lu)?M("git.fetch: potential exploit argument blocked."):j(s)}n(hi,"cloneTask");function Mu(t,e,r){return _(r,"--mirror"),hi(t,e,r)}n(Mu,"cloneMirrorTask");var Bu=f({"src/lib/tasks/clone.ts"(){"use strict";P(),b()}});function Iu(t,e){return B({raw:t,remote:null,branches:[],tags:[],updated:[],deleted:[]},gi,[t,e])}n(Iu,"parseFetchResult");var gi,Nu=f({"src/lib/parsers/parse-fetch.ts"(){"use strict";b(),gi=[new w(/From (.+)$/,(t,[e])=>{t.remote=e}),new w(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.branches.push({name:e,tracking:r})}),new w(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,(t,[e,r])=>{t.tags.push({name:e,tracking:r})}),new w(/- \[deleted]\s+\S+\s*-> (.+)$/,(t,[e])=>{t.deleted.push({tracking:e})}),new w(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,(t,[e,r,s,i])=>{t.updated.push({name:s,tracking:i,to:r,from:e})})]}}),yi={};O(yi,{fetchTask:n(()=>Uu,"fetchTask")});function Gu(t){return/^--upload-pack(=|$)/.test(t)}n(Gu,"disallowedCommand2");function Uu(t,e,r){let s=["fetch",...r];return t&&e&&s.push(t,e),s.find(Gu)?M("git.fetch: potential exploit argument blocked."):{commands:s,format:"utf-8",parser:Iu}}n(Uu,"fetchTask");var qu=f({"src/lib/tasks/fetch.ts"(){"use strict";Nu(),P()}});function Ju(t){return B({moves:[]},vi,t)}n(Ju,"parseMoveResult");var vi,zu=f({"src/lib/parsers/parse-move.ts"(){"use strict";b(),vi=[new w(/^Renaming (.+) to (.+)$/,(t,[e,r])=>{t.moves.push({from:e,to:r})})]}}),bi={};O(bi,{moveTask:n(()=>Vu,"moveTask")});function Vu(t,e){return{commands:["mv","-v",...W(t),e],format:"utf-8",parser:Ju}}n(Vu,"moveTask");var Qu=f({"src/lib/tasks/move.ts"(){"use strict";zu(),b()}}),wi={};O(wi,{pullTask:n(()=>Wu,"pullTask")});function Wu(t,e,r){let s=["pull",...r];return t&&e&&s.splice(1,0,t,e),{commands:s,format:"utf-8",parser(i,o){return pr(i,o)},onError(i,o,a,u){let c=eu(Et(i.stdOut),Et(i.stdErr));if(c)return u(new Rt(c));u(o)}}}n(Wu,"pullTask");var Hu=f({"src/lib/tasks/pull.ts"(){"use strict";gt(),Js(),b()}});function Yu(t){let e={};return _i(t,([r])=>e[r]={name:r}),Object.values(e)}n(Yu,"parseGetRemotes");function Ku(t){let e={};return _i(t,([r,s,i])=>{e.hasOwnProperty(r)||(e[r]={name:r,refs:{fetch:"",push:""}}),i&&s&&(e[r].refs[i.replace(/[^a-z]/g,"")]=s)}),Object.values(e)}n(Ku,"parseGetRemotesVerbose");function _i(t,e){ze(t,r=>e(r.split(/\s+/)))}n(_i,"forEach");var Xu=f({"src/lib/responses/GetRemoteSummary.ts"(){"use strict";b()}}),ki={};O(ki,{addRemoteTask:n(()=>Zu,"addRemoteTask"),getRemotesTask:n(()=>tc,"getRemotesTask"),listRemotesTask:n(()=>ec,"listRemotesTask"),remoteTask:n(()=>rc,"remoteTask"),removeRemoteTask:n(()=>nc,"removeRemoteTask")});function Zu(t,e,r){return j(["remote","add",...r,t,e])}n(Zu,"addRemoteTask");function tc(t){let e=["remote"];return t&&e.push("-v"),{commands:e,format:"utf-8",parser:t?Ku:Yu}}n(tc,"getRemotesTask");function ec(t){let e=[...t];return e[0]!=="ls-remote"&&e.unshift("ls-remote"),j(e)}n(ec,"listRemotesTask");function rc(t){let e=[...t];return e[0]!=="remote"&&e.unshift("remote"),j(e)}n(rc,"remoteTask");function nc(t){return j(["remote","remove",t])}n(nc,"removeRemoteTask");var sc=f({"src/lib/tasks/remote.ts"(){"use strict";Xu(),P()}}),Ti={};O(Ti,{stashListTask:n(()=>ic,"stashListTask")});function ic(t={},e){let r=js(t),s=["stash","list",...r.commands,...e],i=Rs(r.splitter,r.fields,ir(s));return ie(s)||{commands:s,format:"utf-8",parser:i}}n(ic,"stashListTask");var oc=f({"src/lib/tasks/stash-list.ts"(){"use strict";jt(),Fs(),lr(),Ds()}}),Si={};O(Si,{addSubModuleTask:n(()=>ac,"addSubModuleTask"),initSubModuleTask:n(()=>uc,"initSubModuleTask"),subModuleTask:n(()=>ae,"subModuleTask"),updateSubModuleTask:n(()=>cc,"updateSubModuleTask")});function ac(t,e){return ae(["add",t,e])}n(ac,"addSubModuleTask");function uc(t){return ae(["init",...t])}n(uc,"initSubModuleTask");function ae(t){let e=[...t];return e[0]!=="submodule"&&e.unshift("submodule"),j(e)}n(ae,"subModuleTask");function cc(t){return ae(["update",...t])}n(cc,"updateSubModuleTask");var lc=f({"src/lib/tasks/sub-module.ts"(){"use strict";P()}});function pc(t,e){let r=isNaN(t),s=isNaN(e);return r!==s?r?1:-1:r?Ci(t,e):0}n(pc,"singleSorted");function Ci(t,e){return t===e?0:t>e?1:-1}n(Ci,"sorted");function fc(t){return t.trim()}n(fc,"trimmed");function qt(t){return typeof t=="string"&&parseInt(t.replace(/^\D+/g,""),10)||0}n(qt,"toNumber");var Tn,xi,mc=f({"src/lib/responses/TagList.ts"(){"use strict";Tn=class{static{n(this,"TagList")}constructor(t,e){this.all=t,this.latest=e}},xi=n(function(t,e=!1){let r=t.split(`
51
- `).map(fc).filter(Boolean);e||r.sort(function(i,o){let a=i.split("."),u=o.split(".");if(a.length===1||u.length===1)return pc(qt(a[0]),qt(u[0]));for(let c=0,d=Math.max(a.length,u.length);c<d;c++){let p=Ci(qt(a[c]),qt(u[c]));if(p)return p}return 0});let s=e?r[0]:[...r].reverse().find(i=>i.indexOf(".")>=0);return new Tn(r,s)},"parseTagList")}}),Ei={};O(Ei,{addAnnotatedTagTask:n(()=>gc,"addAnnotatedTagTask"),addTagTask:n(()=>hc,"addTagTask"),tagListTask:n(()=>dc,"tagListTask")});function dc(t=[]){let e=t.some(r=>/^--sort=/.test(r));return{format:"utf-8",commands:["tag","-l",...t],parser(r){return xi(r,e)}}}n(dc,"tagListTask");function hc(t){return{format:"utf-8",commands:["tag",t],parser(){return{name:t}}}}n(hc,"addTagTask");function gc(t,e){return{format:"utf-8",commands:["tag","-a","-m",e,t],parser(){return{name:t}}}}n(gc,"addAnnotatedTagTask");var yc=f({"src/lib/tasks/tag.ts"(){"use strict";mc()}}),vc=jo({"src/git.js"(t,e){"use strict";var{GitExecutor:r}=(wa(),x(ws)),{SimpleGitApi:s}=(vu(),x(ti)),{Scheduler:i}=(bu(),x(ei)),{configurationErrorTask:o}=(P(),x(Le)),{asArray:a,filterArray:u,filterPrimitives:c,filterString:d,filterStringOrStringArray:p,filterType:m,getTrailingOptions:h,trailingFunctionArgument:g,trailingOptionsArgument:I}=(b(),x(zn)),{applyPatchTask:q}=(_u(),x(si)),{branchTask:D,branchLocalTask:Y,deleteBranchesTask:ct,deleteBranchTask:le}=(Fu(),x(li)),{checkIgnoreTask:lt}=(Du(),x(mi)),{checkIsRepoTask:yr}=(Hn(),x(Vn)),{cloneTask:yt,cloneMirrorTask:pe}=(Bu(),x(di)),{cleanWithOptionsTask:Lt,isCleanOptionsArray:fe}=(os(),x(ss)),{diffSummaryTask:ji}=(lr(),x($s)),{fetchTask:Di}=(qu(),x(yi)),{moveTask:Li}=(Qu(),x(bi)),{pullTask:Mi}=(Hu(),x(wi)),{pushTagsTask:Bi}=(Ws(),x(Qs)),{addRemoteTask:Ii,getRemotesTask:Ni,listRemotesTask:Gi,remoteTask:Ui,removeRemoteTask:qi}=(sc(),x(ki)),{getResetMode:Ji,resetTask:zi}=(vs(),x(hs)),{stashListTask:Vi}=(oc(),x(Ti)),{addSubModuleTask:Qi,initSubModuleTask:Wi,subModuleTask:Hi,updateSubModuleTask:Yi}=(lc(),x(Si)),{addAnnotatedTagTask:Ki,addTagTask:Xi,tagListTask:Zi}=(yc(),x(Ei)),{straightThroughBufferTask:to,straightThroughStringTask:Q}=(P(),x(Le));function v(l,y){this._plugins=y,this._executor=new r(l.baseDir,new i(l.maxConcurrentProcesses),y),this._trimmed=l.trimmed}n(v,"Git2"),(v.prototype=Object.create(s.prototype)).constructor=v,v.prototype.customBinary=function(l){return this._plugins.reconfigure("binary",l),this},v.prototype.env=function(l,y){return arguments.length===1&&typeof l=="object"?this._executor.env=l:(this._executor.env=this._executor.env||{})[l]=y,this},v.prototype.stashList=function(l){return this._runTask(Vi(I(arguments)||{},u(l)&&l||[]),g(arguments))};function vr(l,y,k,F){return typeof k!="string"?o(`git.${l}() requires a string 'repoPath'`):y(k,m(F,d),h(arguments))}n(vr,"createCloneTask"),v.prototype.clone=function(){return this._runTask(vr("clone",yt,...arguments),g(arguments))},v.prototype.mirror=function(){return this._runTask(vr("mirror",pe,...arguments),g(arguments))},v.prototype.mv=function(l,y){return this._runTask(Li(l,y),g(arguments))},v.prototype.checkoutLatestTag=function(l){var y=this;return this.pull(function(){y.tags(function(k,F){y.checkout(F.latest,l)})})},v.prototype.pull=function(l,y,k,F){return this._runTask(Mi(m(l,d),m(y,d),h(arguments)),g(arguments))},v.prototype.fetch=function(l,y){return this._runTask(Di(m(l,d),m(y,d),h(arguments)),g(arguments))},v.prototype.silent=function(l){return console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"),this},v.prototype.tags=function(l,y){return this._runTask(Zi(h(arguments)),g(arguments))},v.prototype.rebase=function(){return this._runTask(Q(["rebase",...h(arguments)]),g(arguments))},v.prototype.reset=function(l){return this._runTask(zi(Ji(l),h(arguments)),g(arguments))},v.prototype.revert=function(l){let y=g(arguments);return typeof l!="string"?this._runTask(o("Commit must be a string"),y):this._runTask(Q(["revert",...h(arguments,0,!0),l]),y)},v.prototype.addTag=function(l){let y=typeof l=="string"?Xi(l):o("Git.addTag requires a tag name");return this._runTask(y,g(arguments))},v.prototype.addAnnotatedTag=function(l,y){return this._runTask(Ki(l,y),g(arguments))},v.prototype.deleteLocalBranch=function(l,y,k){return this._runTask(le(l,typeof y=="boolean"?y:!1),g(arguments))},v.prototype.deleteLocalBranches=function(l,y,k){return this._runTask(ct(l,typeof y=="boolean"?y:!1),g(arguments))},v.prototype.branch=function(l,y){return this._runTask(D(h(arguments)),g(arguments))},v.prototype.branchLocal=function(l){return this._runTask(Y(),g(arguments))},v.prototype.raw=function(l){let y=!Array.isArray(l),k=[].slice.call(y?arguments:l,0);for(let V=0;V<k.length&&y;V++)if(!c(k[V])){k.splice(V,k.length-V);break}k.push(...h(arguments,0,!0));var F=g(arguments);return k.length?this._runTask(Q(k,this._trimmed),F):this._runTask(o("Raw: must supply one or more command to execute"),F)},v.prototype.submoduleAdd=function(l,y,k){return this._runTask(Qi(l,y),g(arguments))},v.prototype.submoduleUpdate=function(l,y){return this._runTask(Yi(h(arguments,!0)),g(arguments))},v.prototype.submoduleInit=function(l,y){return this._runTask(Wi(h(arguments,!0)),g(arguments))},v.prototype.subModule=function(l,y){return this._runTask(Hi(h(arguments)),g(arguments))},v.prototype.listRemote=function(){return this._runTask(Gi(h(arguments)),g(arguments))},v.prototype.addRemote=function(l,y,k){return this._runTask(Ii(l,y,h(arguments)),g(arguments))},v.prototype.removeRemote=function(l,y){return this._runTask(qi(l),g(arguments))},v.prototype.getRemotes=function(l,y){return this._runTask(Ni(l===!0),g(arguments))},v.prototype.remote=function(l,y){return this._runTask(Ui(h(arguments)),g(arguments))},v.prototype.tag=function(l,y){let k=h(arguments);return k[0]!=="tag"&&k.unshift("tag"),this._runTask(Q(k),g(arguments))},v.prototype.updateServerInfo=function(l){return this._runTask(Q(["update-server-info"]),g(arguments))},v.prototype.pushTags=function(l,y){let k=Bi({remote:m(l,d)},h(arguments));return this._runTask(k,g(arguments))},v.prototype.rm=function(l){return this._runTask(Q(["rm","-f",...a(l)]),g(arguments))},v.prototype.rmKeepLocal=function(l){return this._runTask(Q(["rm","--cached",...a(l)]),g(arguments))},v.prototype.catFile=function(l,y){return this._catFile("utf-8",arguments)},v.prototype.binaryCatFile=function(){return this._catFile("buffer",arguments)},v.prototype._catFile=function(l,y){var k=g(y),F=["cat-file"],V=y[0];if(typeof V=="string")return this._runTask(o("Git.catFile: options must be supplied as an array of strings"),k);Array.isArray(V)&&F.push.apply(F,V);let me=l==="buffer"?to(F):Q(F);return this._runTask(me,k)},v.prototype.diff=function(l,y){let k=d(l)?o("git.diff: supplying options as a single string is no longer supported, switch to an array of strings"):Q(["diff",...h(arguments)]);return this._runTask(k,g(arguments))},v.prototype.diffSummary=function(){return this._runTask(ji(h(arguments,1)),g(arguments))},v.prototype.applyPatch=function(l){let y=p(l)?q(a(l),h([].slice.call(arguments,1))):o("git.applyPatch requires one or more string patches as the first argument");return this._runTask(y,g(arguments))},v.prototype.revparse=function(){let l=["rev-parse",...h(arguments,!0)];return this._runTask(Q(l,!0),g(arguments))},v.prototype.clean=function(l,y,k){let F=fe(l),V=F&&l.join("")||m(l,d)||"",me=h([].slice.call(arguments,F?1:0));return this._runTask(Lt(V,me),g(arguments))},v.prototype.exec=function(l){let y={commands:[],format:"utf-8",parser(){typeof l=="function"&&l()}};return this._runTask(y)},v.prototype.clearQueue=function(){return this},v.prototype.checkIgnore=function(l,y){return this._runTask(lt(a(m(l,p,[]))),g(arguments))},v.prototype.checkIsRepo=function(l,y){return this._runTask(yr(m(l,d)),g(arguments))},e.exports=v}});Ot();rt();var bc=class extends tt{static{n(this,"GitConstructError")}constructor(t,e){super(void 0,e),this.config=t}};rt();rt();var Z=class extends tt{static{n(this,"GitPluginError")}constructor(t,e,r){super(t,r),this.task=t,this.plugin=e,Object.setPrototypeOf(this,new.target.prototype)}};gt();Rn();Hn();os();cs();ps();ds();vs();function wc(t){return t?[{type:"spawn.before",action(s,i){t.aborted&&i.kill(new Z(void 0,"abort","Abort already signaled"))}},{type:"spawn.after",action(s,i){function o(){i.kill(new Z(void 0,"abort","Abort signal received"))}n(o,"kill"),t.addEventListener("abort",o),i.spawned.on("close",()=>t.removeEventListener("abort",o))}}]:void 0}n(wc,"abortPlugin");function _c(t){return typeof t=="string"&&t.trim().toLowerCase()==="-c"}n(_c,"isConfigSwitch");function kc(t,e){if(_c(t)&&/^\s*protocol(.[a-z]+)?.allow/.test(e))throw new Z(void 0,"unsafe","Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol")}n(kc,"preventProtocolOverride");function Tc(t,e){if(/^\s*--(upload|receive)-pack/.test(t))throw new Z(void 0,"unsafe","Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack");if(e==="clone"&&/^\s*-u\b/.test(t))throw new Z(void 0,"unsafe","Use of clone with option -u is not permitted without enabling allowUnsafePack");if(e==="push"&&/^\s*--exec\b/.test(t))throw new Z(void 0,"unsafe","Use of push with option --exec is not permitted without enabling allowUnsafePack")}n(Tc,"preventUploadPack");function Sc({allowUnsafeProtocolOverride:t=!1,allowUnsafePack:e=!1}={}){return{type:"spawn.args",action(r,s){return r.forEach((i,o)=>{let a=o<r.length?r[o+1]:"";t||kc(i,a),e||Tc(i,s.method)}),r}}}n(Sc,"blockUnsafeOperationsPlugin");b();function Cc(t){let e=xt(t,"-c");return{type:"spawn.args",action(r){return[...e,...r]}}}n(Cc,"commandConfigPrefixingPlugin");b();var Sn=(0,dt.deferred)().promise;function xc({onClose:t=!0,onExit:e=50}={}){function r(){let i=-1,o={close:(0,dt.deferred)(),closeTimeout:(0,dt.deferred)(),exit:(0,dt.deferred)(),exitTimeout:(0,dt.deferred)()},a=Promise.race([t===!1?Sn:o.closeTimeout.promise,e===!1?Sn:o.exitTimeout.promise]);return s(t,o.close,o.closeTimeout),s(e,o.exit,o.exitTimeout),{close(u){i=u,o.close.done()},exit(u){i=u,o.exit.done()},get exitCode(){return i},result:a}}n(r,"createEvents");function s(i,o,a){i!==!1&&(i===!0?o.promise:o.promise.then(()=>Ae(i))).then(a.done)}return n(s,"configureTimeout"),{type:"spawn.after",action(i,o){return St(this,arguments,function*(a,{spawned:u,close:c}){var d,p;let m=r(),h=!0,g=n(()=>void(h=!1),"quickClose");(d=u.stdout)==null||d.on("data",g),(p=u.stderr)==null||p.on("data",g),u.on("error",g),u.on("close",I=>m.close(I)),u.on("exit",I=>m.exit(I));try{yield m.result,h&&(yield Ae(50)),c(m.exitCode)}catch(I){c(m.exitCode,I)}})}}}n(xc,"completionDetectionPlugin");b();var Ec="Invalid value supplied for custom binary, requires a single string or an array containing either one or two strings",Cn="Invalid value supplied for custom binary, restricted characters must be removed or supply the unsafe.allowUnsafeCustomBinary option";function Pc(t){return!t||!/^([a-z]:)?([a-z0-9/.\\_-]+)$/i.test(t)}n(Pc,"isBadArgument");function xn(t,e){if(t.length<1||t.length>2)throw new Z(void 0,"binary",Ec);if(t.some(Pc))if(e)console.warn(Cn);else throw new Z(void 0,"binary",Cn);let[s,i]=t;return{binary:s,prefix:i}}n(xn,"toBinaryConfig");function Oc(t,e=["git"],r=!1){let s=xn(W(e),r);t.on("binary",i=>{s=xn(W(i),r)}),t.append("spawn.binary",()=>s.binary),t.append("spawn.args",i=>s.prefix?[s.prefix,...i]:i)}n(Oc,"customBinaryPlugin");rt();function Rc(t){return!!(t.exitCode&&t.stdErr.length)}n(Rc,"isTaskError");function Ac(t){return Buffer.concat([...t.stdOut,...t.stdErr])}n(Ac,"getErrorMessage");function Fc(t=!1,e=Rc,r=Ac){return(s,i)=>!t&&s||!e(i)?s:r(i)}n(Fc,"errorDetectionHandler");function En(t){return{type:"task.error",action(e,r){let s=t(e.error,{stdErr:r.stdErr,stdOut:r.stdOut,exitCode:r.exitCode});return Buffer.isBuffer(s)?{error:new tt(void 0,s.toString("utf-8"))}:{error:s}}}}n(En,"errorDetectionPlugin");b();var jc=class{static{n(this,"PluginStore")}constructor(){this.plugins=new Set,this.events=new $c}on(t,e){this.events.on(t,e)}reconfigure(t,e){this.events.emit(t,e)}append(t,e){let r=_(this.plugins,{type:t,action:e});return()=>this.plugins.delete(r)}add(t){let e=[];return W(t).forEach(r=>r&&this.plugins.add(_(e,r))),()=>{e.forEach(r=>this.plugins.delete(r))}}exec(t,e,r){let s=e,i=Object.freeze(Object.create(r));for(let o of this.plugins)o.type===t&&(s=o.action(s,i));return s}};b();function Dc(t){let e="--progress",r=["checkout","clone","fetch","pull","push"];return[{type:"spawn.args",action(o,a){return r.includes(a.method)?Ln(o,e):o}},{type:"spawn.after",action(o,a){var u;a.commands.includes(e)&&((u=a.spawned.stderr)==null||u.on("data",c=>{let d=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(c.toString("utf8"));d&&t({method:a.method,stage:Lc(d[1]),progress:S(d[2]),processed:S(d[3]),total:S(d[4])})}))}}]}n(Dc,"progressMonitorPlugin");function Lc(t){return String(t.toLowerCase().split(" ",1))||"unknown"}n(Lc,"progressEventStage");b();function Mc(t){let e=In(t,["uid","gid"]);return{type:"spawn.options",action(r){return z(z({},e),r)}}}n(Mc,"spawnOptionsPlugin");function Bc({block:t,stdErr:e=!0,stdOut:r=!0}){if(t>0)return{type:"spawn.after",action(s,i){var o,a;let u;function c(){u&&clearTimeout(u),u=setTimeout(p,t)}n(c,"wait");function d(){var m,h;(m=i.spawned.stdout)==null||m.off("data",c),(h=i.spawned.stderr)==null||h.off("data",c),i.spawned.off("exit",d),i.spawned.off("close",d),u&&clearTimeout(u)}n(d,"stop");function p(){d(),i.kill(new Z(void 0,"timeout","block timeout reached"))}n(p,"kill"),r&&((o=i.spawned.stdout)==null||o.on("data",c)),e&&((a=i.spawned.stderr)==null||a.on("data",c)),i.spawned.on("exit",d),i.spawned.on("close",d),c()}}}n(Bc,"timeoutPlugin");Ot();function Ic(){return{type:"spawn.args",action(t){let e=[],r;function s(i){(r=r||[]).push(...i)}n(s,"append2");for(let i=0;i<t.length;i++){let o=t[i];if(Wt(o)){s(Yr(o));continue}if(o==="--"){s(t.slice(i+1).flatMap(a=>Wt(a)&&Yr(a)||a));break}e.push(o)}return r?[...e,"--",...r.map(String)]:e}}}n(Ic,"suffixPathsPlugin");b();var Nc=vc();function Gc(t,e){var r;let s=new jc,i=qn(t&&(typeof t=="string"?{baseDir:t}:t)||{},e);if(!Ve(i.baseDir))throw new bc(i,"Cannot use simple-git on a directory that does not exist");return Array.isArray(i.config)&&s.add(Cc(i.config)),s.add(Sc(i.unsafe)),s.add(Ic()),s.add(xc(i.completion)),i.abort&&s.add(wc(i.abort)),i.progress&&s.add(Dc(i.progress)),i.timeout&&s.add(Bc(i.timeout)),i.spawnOptions&&s.add(Mc(i.spawnOptions)),s.add(En(Fc(!0))),i.errors&&s.add(En(i.errors)),Oc(s,i.binary,(r=i.unsafe)==null?void 0:r.allowUnsafeCustomBinary),new Nc(i,s)}n(Gc,"gitInstanceFactory");gt();var Pi=Gc;T();var Oi=n((t,e)=>{let r=/^(https:\/\/)?(?<slug>[\w-]+?)(--development)?(\..*)?$/.exec(t)?.groups?.slug;if(r)return r;throw new K(C`
52
- ${e} must be the application's {bold slug} or {bold URL}
53
-
54
- {bold EXAMPLES:}
55
- ${e} my-app
56
- ${e} my-app.gadget.app
57
- ${e} https://my-app.gadget.app
58
- ${e} https://my-app.gadget.app/edit
59
- ${e} https://my-app--development.gadget.app/edit
60
- `)},"AppArg");T();import dr from"node:assert";var ue=class{static{n(this,"Edit")}ctx;#t;constructor(e,r){this.ctx=e.child({name:"edit"}),this.#t=new Dr(this.ctx,r,"/edit/api/graphql")}async query({query:e,variables:r,...s}){let i=/query (\w+)/.exec(e)?.[1];dr(i,"query name not found");let o=this.ctx.child({name:"edit",fields:{edit:{query:i}},devFields:{edit:{query:i,variables:vt(r)}}});o.log.info("executing graphql query");let a=await this.#t.execute(o,{operation:e,variables:r,...s,http:{retry:{methods:["POST"]},...s.http}});if(a.errors)throw new X(e,a.errors);if(!a.data)throw new X(e,"Query response did not contain data");return a.data}async mutate({mutation:e,variables:r,...s}){let i=/mutation (\w+)/.exec(e)?.[1];dr(i,"mutation name not found");let o=this.ctx.child({name:"edit",fields:{edit:{mutation:i}},devFields:{edit:{mutation:i,variables:vt(r)}}});o.log.info("executing graphql mutation");let a=await this.#t.execute(o,{operation:e,variables:r,...s});if(a.errors)throw _r(a.errors)&&a.errors[0]&&a.errors[0]==="Unauthenticated. No authenticated client."?new Fr(e):new X(e,a.errors);if(!a.data)throw new X(e,"Mutation response did not contain data");return a.data}subscribe({onData:e,...r}){let s=/subscription (\w+)/.exec(r.subscription)?.[1];dr(s,"subscription name not found");let i=this.ctx.child({name:"edit",fields:{edit:{subscription:s}},devFields:{edit:{subscription:s,variables:vt(r.variables)}}}),o=n(async u=>{if(u.errors){a(),await r.onError(new X(r.subscription,u.errors));return}if(!u.data){a(),await r.onError(new X(r.subscription,"Subscription response did not contain data"));return}await e(u.data)},"onResponse");i.log.info("subscribing to graphql subscription");let a=this.#t.subscribe(i,{...r,onResponse:o});return{unsubscribe:n(()=>{a()},"unsubscribe"),resubscribe:n(u=>{a(),u!==void 0&&(r.variables=u),i=this.ctx.child({name:"edit",fields:{edit:{subscription:s}},devFields:{edit:{subscription:s,variables:vt(r.variables)}}}),i.log.info("re-subscribing to graphql subscription"),a=this.#t.subscribe(i,{...r,onResponse:o})},"resubscribe")}}async dispose(){await this.#t.dispose()}};var Hp={"--app":{type:Oi,alias:["-a","--application"]},"--env":{type:String,alias:["-e","--environment"]},"--allow-unknown-directory":Boolean,"--allow-different-app":Boolean},gr=class t{constructor(e,r,s,i,o,a){this.ctx=e;this.args=r;this.directory=s;this.environment=i;this.previousEnvironment=o;this.state=a;this.ctx=e.child({name:"sync-json",fields:n(()=>({syncJson:{directory:this.directory.path,branch:this.gitBranch,...this.state}}),"fields")}),this.edit=new ue(this.ctx,this.environment)}static{n(this,"SyncJson")}gitBranch;edit;get filesVersion(){let e=this.state.environments[this.state.environment];return hr(e,"environment must exist in environments"),BigInt(e.filesVersion)}static async load(e,{command:r,args:s,directory:i}){e=e.child({name:"sync-json"});let o=await jr(e,r),a=await ve(e);if(a.length===0)throw new K(C`
61
- You (${o.email}) don't have have any Gadget applications.
62
-
63
- Visit https://gadget.new to create one!
64
- `);let u=await ce.default.readFile(i.absolute(".gadget/sync.json"),"utf8").catch(g=>e.log.warn("failed to read .gadget/sync.json",{error:g}));if(!u)return;let c;try{c=Vc.parse(JSON.parse(u))}catch(g){e.log.warn("failed to parse .gadget/sync.json",{error:g,syncJsonFile:u});return}let d=await Ai({args:s,availableApps:a,state:c}),p=await $i({command:r,args:s,application:d,state:c});if(Rr({application_id:d.id,environment_id:p.id}),c.application!==d.slug){if(s["--allow-different-app"]){let g={application:d.slug,environment:p.name,environments:{[p.name]:{filesVersion:"0"}}},I=p.type==="production"?new Dt(e,s,i,p,void 0,g):new t(e,s,i,p,void 0,g);return await I.loadGitBranch(),I}throw new K(C`
65
- You were about to sync the following app to the following directory:
66
-
67
- ${d.slug} (${p.name}) → ${i.path}
68
-
69
- However, that directory has already been synced with this app:
70
-
71
- ${c.application} (${c.environment})
72
-
73
- If you're sure that you want to sync:
74
-
75
- ${d.slug} (${p.name}) → ${i.path}
76
-
77
- Run "ggt dev" with the {bold --allow-different-app} flag.
78
- `)}let m;c.environment!==p.name&&(p.type!=="production"&&bt({ensureEmptyLineAbove:!0,content:C`
79
- Changing environment.
80
-
81
- ${c.environment} → ${p.name}
82
- `}),m=c.environment,c.environment=p.name,c.environments[p.name]||(c.environments[p.name]={filesVersion:"0"}));let h=p.type==="production"?new Dt(e,s,i,p,m,c):new t(e,s,i,p,m,c);return await h.save(h.filesVersion),await h.loadGitBranch(),h}static async loadOrInit(e,{command:r,args:s,directory:i}){e=e.child({name:"sync-json"});let o=await t.load(e,{command:r,args:s,directory:i});if(o)return o;if(await i.hasFiles()&&!s["--allow-unknown-directory"])throw new Mt({command:r,args:s,directory:i});let a=await Ai({args:s,availableApps:await ve(e)}),u=await $i({command:r,args:s,application:a});await ce.default.ensureDir(i.path);let c={application:a.slug,environment:u.name,environments:{[u.name]:{filesVersion:"0"}}};return o=u.type==="production"?new Dt(e,s,i,u,void 0,c):new t(e,s,i,u,void 0,c),await o.save(o.filesVersion),await o.loadGitBranch(),o}async save(e){let r=this.state.environments[this.state.environment];hr(r,"environment must exist in environments"),r.filesVersion=String(e),this.ctx.log.debug("saving .gadget/sync.json"),await ce.default.outputJSON(this.directory.absolute(".gadget/sync.json"),this.state,{spaces:2})}async loadGitBranch(){this.gitBranch=await Uc(this.ctx,{directory:this.directory})}sprint(e={}){let r=$`
83
- Application ${this.environment.application.slug}
84
- Environment ${this.environment.name}
85
- `;this.gitBranch&&(r+=$({indent:5,content:`Branch ${this.gitBranch}`}));let s=he.domains.app;return ft.isSupported?r+=$({ensureEmptyLineAbove:!0,content:`${ft(kt.link("Preview"),`https://${this.environment.application.slug}--${this.environment.name}.${s}`)} ${ft(kt.link("Editor"),`https://${this.environment.application.primaryDomain}/edit/${this.environment.name}`)} ${ft(kt.link("Playground"),`https://${this.environment.application.primaryDomain}/api/playground/javascript?environment=${this.environment.name}`)} ${ft(kt.link("Docs"),`https://docs.gadget.dev/api/${this.environment.application.slug}`)}`}):r+=$`
86
- ------------------------
87
- Preview https://${this.environment.application.slug}--${this.environment.name}.${s}
88
- Editor https://${this.environment.application.primaryDomain}/edit/${this.environment.name}
89
- Playground https://${this.environment.application.primaryDomain}/api/playground/javascript?environment=${this.environment.name}
90
- Docs https://docs.gadget.dev/api/${this.environment.application.slug}
91
- `,$({...e,content:r})}print(e){e=Pr(e,{ensureEmptyLineAbove:!0}),bt(this.sprint(e))}},Dt=class extends gr{static{n(this,"EphemeralSyncJson")}async save(e){let r=this.state.environments[this.state.environment];return hr(r,"environment must exist in environments"),r.filesVersion=String(e),Promise.resolve()}},Yp=n(async t=>{he.windows&&t.startsWith("~/")&&(t=Or(t.slice(2)));let e=await Er(".gadget/sync.json",{cwd:t});return e&&(t=Ri.join(e,"../..")),t=Ri.resolve(t),await $r.init(t)},"loadSyncJsonDirectory"),Ai=n(async({args:t,availableApps:e,state:r})=>{let s=t["--app"]||r?.application;if(!s){let a=Array.from(Lr(e)).map(([u,c])=>[u,c.map(d=>d.slug)]);s=await be({groupedChoices:a,content:"Which application do you want to develop?"})}let i=e.find(a=>a.slug===s);if(i)return i;let o=ge(s,e.map(a=>a.slug)).slice(0,5);throw new K(C`
92
- Unknown application:
93
-
94
- ${s}
95
-
96
- Did you mean one of these?
97
-
98
- • ${o.join(`
99
- \u2022 `)}
100
- `)},"loadApplication"),Fi=["pull","logs"],$i=n(async({command:t,args:e,application:r,state:s})=>{if(e["--env"]&&!r.multiEnvironmentEnabled)throw new K(C`
101
- You specified an environment but your app doesn't have multiple environments.
102
-
103
- Remove the "--env" flag to sync to the {bold ${r.primaryDomain}} environment.
104
- `);let i=r.environments.filter(c=>c.type===ye.Development);Fi.includes(t)&&i.push(...r.environments.filter(c=>c.type===ye.Production));let o=e["--env"]||s?.environment;if(o||(o=await be({choices:i.map(c=>c.name),content:"Which environment do you want to develop on?"})),o.toLowerCase()==="production"&&!Fi.includes(t))throw new K(C`
105
- You cannot "ggt ${t}" your {bold production} environment.
106
- `);let a=i.find(c=>c.name===o.toLowerCase());if(a)return{...a,application:r};let u=ge(o,i.map(c=>c.name)).slice(0,5);throw new K(C`
107
- Unknown environment:
108
-
109
- ${o}
110
-
111
- Did you mean one of these?
112
-
113
- • ${u.join(`
114
- \u2022 `)}
115
- `)},"loadEnvironment"),Uc=n(async(t,{directory:e})=>{try{return await Pi(e.path).revparse(["--abbrev-ref","HEAD"])}catch(r){t.log.warn("failed to read git branch",{error:r});return}},"loadBranch"),qc=J.object({application:J.string(),environment:J.string(),environments:J.record(J.object({filesVersion:J.string()}))}),Jc=J.object({app:J.string(),filesVersion:J.string(),mtime:J.number()}),zc=J.union([qc,Jc]),Vc=zc.transform(t=>"environment"in t?t:{application:t.app,environment:"development",environments:{development:{filesVersion:t.filesVersion}}});export{Xc as a,we as b,Zc as c,tl as d,el as e,Br as f,Mt as g,Ir as h,Nr as i,ao as j,fl as k,Hp as l,gr as m,Yp as n};
116
- //# sourceMappingURL=chunk-D2R4J557.js.map