@gadgetinc/ggt 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -1
- package/dist/{add-TWLGKL2T.js → add-7MLI3TCY.js} +8 -8
- package/dist/add-7MLI3TCY.js.map +7 -0
- package/dist/agent-plugin-543K6WBH.js +11 -0
- package/dist/agent-plugin-543K6WBH.js.map +7 -0
- package/dist/chunk-2HJS3KFB.js +2 -0
- package/dist/{chunk-T6UHSWMT.js.map → chunk-2HJS3KFB.js.map} +2 -2
- package/dist/{chunk-3OM5WM7E.js → chunk-3WKH3DJL.js} +2 -2
- package/dist/chunk-577KP32Z.js +8 -0
- package/dist/chunk-577KP32Z.js.map +7 -0
- package/dist/{chunk-R6KJLEKY.js → chunk-6FVHOLT7.js} +2 -2
- package/dist/chunk-6FVHOLT7.js.map +7 -0
- package/dist/{chunk-HCULGPBH.js → chunk-72J7X5LR.js} +2 -2
- package/dist/{chunk-HCULGPBH.js.map → chunk-72J7X5LR.js.map} +2 -2
- package/dist/{chunk-JG2QCDK2.js → chunk-ALSXPCRD.js} +5 -5
- package/dist/{chunk-JG2QCDK2.js.map → chunk-ALSXPCRD.js.map} +4 -4
- package/dist/{chunk-SIR6HLN3.js → chunk-CNNOPE5K.js} +22 -22
- package/dist/chunk-CNNOPE5K.js.map +7 -0
- package/dist/chunk-ETKWDO4V.js +2 -0
- package/dist/chunk-ETKWDO4V.js.map +7 -0
- package/dist/{chunk-DR4CXBD6.js → chunk-F6BGQ4LG.js} +2 -2
- package/dist/{chunk-DR4CXBD6.js.map → chunk-F6BGQ4LG.js.map} +2 -2
- package/dist/{chunk-SVWK2NXG.js → chunk-FE5O5VX4.js} +2 -2
- package/dist/chunk-FE5O5VX4.js.map +7 -0
- package/dist/{chunk-F255O64V.js → chunk-GZTHIOXS.js} +2 -2
- package/dist/chunk-GZTHIOXS.js.map +7 -0
- package/dist/chunk-IQSZEOYY.js +283 -0
- package/dist/{chunk-442CSROP.js.map → chunk-IQSZEOYY.js.map} +4 -4
- package/dist/chunk-N5FFICAP.js +9 -0
- package/dist/chunk-N5FFICAP.js.map +7 -0
- package/dist/chunk-TGCJ6TMW.js +10 -0
- package/dist/chunk-TGCJ6TMW.js.map +7 -0
- package/dist/{chunk-XC4F2TLW.js → chunk-ULJYEUQG.js} +19 -19
- package/dist/chunk-ULJYEUQG.js.map +7 -0
- package/dist/{chunk-2742UPMB.js → chunk-UVVKKUYG.js} +2 -2
- package/dist/chunk-UVVKKUYG.js.map +7 -0
- package/dist/{chunk-WB6O2V5D.js → chunk-WZ2PO6H2.js} +2 -2
- package/dist/{chunk-OUIZQC4D.js → chunk-X4XSYLCE.js} +2 -2
- package/dist/{chunk-OUIZQC4D.js.map → chunk-X4XSYLCE.js.map} +2 -2
- package/dist/{configure-UJS7V2JX.js → configure-PYRXYNGZ.js} +2 -2
- package/dist/configure-PYRXYNGZ.js.map +7 -0
- package/dist/{debugger-QN2MCLBL.js → debugger-VKLUEWIN.js} +2 -2
- package/dist/debugger-VKLUEWIN.js.map +7 -0
- package/dist/{deploy-J74PHPQA.js → deploy-JCREEGBA.js} +3 -3
- package/dist/deploy-JCREEGBA.js.map +7 -0
- package/dist/{dev-GGUSOOYP.js → dev-Y2GLI7EH.js} +3 -3
- package/dist/{dev-GGUSOOYP.js.map → dev-Y2GLI7EH.js.map} +3 -3
- package/dist/env-5OPHX3MC.js +135 -0
- package/dist/env-5OPHX3MC.js.map +7 -0
- package/dist/esm-3JVXH7DT.js +37 -0
- package/dist/esm-3JVXH7DT.js.map +7 -0
- package/dist/{eval-L6WHUFLU.js → eval-LZPZ6PBQ.js} +3 -3
- package/dist/{eval-L6WHUFLU.js.map → eval-LZPZ6PBQ.js.map} +2 -2
- package/dist/ggt-KUAF6WUA.js +45 -0
- package/dist/ggt-KUAF6WUA.js.map +7 -0
- package/dist/{list-756D46N5.js → list-IANT7SNF.js} +2 -2
- package/dist/list-IANT7SNF.js.map +7 -0
- package/dist/login-TYRZLN5S.js +2 -0
- package/dist/{logout-LQABTJFD.js → logout-P75XYYZ6.js} +2 -2
- package/dist/logout-P75XYYZ6.js.map +7 -0
- package/dist/{logs-AQZB272X.js → logs-SBMD6JSR.js} +2 -2
- package/dist/logs-SBMD6JSR.js.map +7 -0
- package/dist/main.js +1 -1
- package/dist/{open-OMZWPQ66.js → open-JPAMII4K.js} +2 -2
- package/dist/open-JPAMII4K.js.map +7 -0
- package/dist/problems-EZRSHLZT.js +14 -0
- package/dist/problems-EZRSHLZT.js.map +7 -0
- package/dist/{pull-XYCYN7QN.js → pull-R3PMBVOT.js} +2 -2
- package/dist/pull-R3PMBVOT.js.map +7 -0
- package/dist/push-5XEEESQQ.js +2 -0
- package/dist/{status-PWAXNK5G.js → status-RJN5ES6S.js} +2 -2
- package/dist/status-RJN5ES6S.js.map +7 -0
- package/dist/update-X7YS3MNH.js +2 -0
- package/dist/{var-N4WGGJXZ.js → var-PC6KQUPF.js} +4 -4
- package/dist/var-PC6KQUPF.js.map +7 -0
- package/dist/{version-AJKSJJDC.js → version-GZJOU2CV.js} +2 -2
- package/dist/version-GZJOU2CV.js.map +7 -0
- package/dist/{whoami-KJYDSQSD.js → whoami-GKPGPZ3B.js} +2 -2
- package/dist/whoami-GKPGPZ3B.js.map +7 -0
- package/package.json +6 -6
- package/dist/add-TWLGKL2T.js.map +0 -7
- package/dist/agent-plugin-TN24O7FB.js +0 -10
- package/dist/agent-plugin-TN24O7FB.js.map +0 -7
- package/dist/chunk-2742UPMB.js.map +0 -7
- package/dist/chunk-442CSROP.js +0 -66
- package/dist/chunk-F255O64V.js.map +0 -7
- package/dist/chunk-JKZNSRLU.js +0 -8
- package/dist/chunk-JKZNSRLU.js.map +0 -7
- package/dist/chunk-JYE5LLIF.js +0 -9
- package/dist/chunk-JYE5LLIF.js.map +0 -7
- package/dist/chunk-MW6MXMSN.js +0 -2
- package/dist/chunk-MW6MXMSN.js.map +0 -7
- package/dist/chunk-R6KJLEKY.js.map +0 -7
- package/dist/chunk-SIR6HLN3.js.map +0 -7
- package/dist/chunk-SVWK2NXG.js.map +0 -7
- package/dist/chunk-T6UHSWMT.js +0 -2
- package/dist/chunk-XC4F2TLW.js.map +0 -7
- package/dist/chunk-YFUOXDPK.js +0 -10
- package/dist/chunk-YFUOXDPK.js.map +0 -7
- package/dist/chunk-ZSREFZXV.js +0 -211
- package/dist/chunk-ZSREFZXV.js.map +0 -7
- package/dist/configure-UJS7V2JX.js.map +0 -7
- package/dist/debugger-QN2MCLBL.js.map +0 -7
- package/dist/deploy-J74PHPQA.js.map +0 -7
- package/dist/esm-D77XRR65.js +0 -38
- package/dist/esm-D77XRR65.js.map +0 -7
- package/dist/ggt-5XNRJZSW.js +0 -44
- package/dist/ggt-5XNRJZSW.js.map +0 -7
- package/dist/list-756D46N5.js.map +0 -7
- package/dist/login-GMWQRH7V.js +0 -2
- package/dist/logout-LQABTJFD.js.map +0 -7
- package/dist/logs-AQZB272X.js.map +0 -7
- package/dist/open-OMZWPQ66.js.map +0 -7
- package/dist/problems-FZJKH52E.js +0 -14
- package/dist/problems-FZJKH52E.js.map +0 -7
- package/dist/pull-XYCYN7QN.js.map +0 -7
- package/dist/push-3QM7ZFTC.js +0 -2
- package/dist/status-PWAXNK5G.js.map +0 -7
- package/dist/update-QIQFJFRQ.js +0 -2
- package/dist/var-N4WGGJXZ.js.map +0 -7
- package/dist/version-AJKSJJDC.js.map +0 -7
- package/dist/whoami-KJYDSQSD.js.map +0 -7
- /package/dist/{chunk-3OM5WM7E.js.map → chunk-3WKH3DJL.js.map} +0 -0
- /package/dist/{chunk-WB6O2V5D.js.map → chunk-WZ2PO6H2.js.map} +0 -0
- /package/dist/{login-GMWQRH7V.js.map → login-TYRZLN5S.js.map} +0 -0
- /package/dist/{push-3QM7ZFTC.js.map → push-5XEEESQQ.js.map} +0 -0
- /package/dist/{update-QIQFJFRQ.js.map → update-X7YS3MNH.js.map} +0 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import{b as E}from"./chunk-WZ2PO6H2.js";import{m as D,n as N,o as v,r as P,u as h}from"./chunk-ULJYEUQG.js";import{b as f,c as m}from"./chunk-2HJS3KFB.js";import"./chunk-F6BGQ4LG.js";import"./chunk-ZYDMXS5R.js";import{A as b,B as _,C as O,R as C,T,V as d,W as J,n as U}from"./chunk-IQSZEOYY.js";import"./chunk-GZTHIOXS.js";import{c as l}from"./chunk-72J7X5LR.js";import"./chunk-X4XSYLCE.js";import{K as B,ra as r,ta as g}from"./chunk-ALSXPCRD.js";import"./chunk-GFQYFEEH.js";import{a as c,f as x,h as $}from"./chunk-7DYQUG5M.js";$();var y=x(B(),1);import M from"node:path";var de={"--app":{type:N,alias:["-a","--application"]}},fe={permissive:!0},R=c(()=>r`
|
|
2
|
+
Manage environments for your Gadget application.
|
|
3
|
+
|
|
4
|
+
{gray Usage}
|
|
5
|
+
ggt env <command> [options]
|
|
6
|
+
|
|
7
|
+
{gray Commands}
|
|
8
|
+
list List all environments
|
|
9
|
+
create <name> Create a new environment
|
|
10
|
+
delete <name> Delete an environment
|
|
11
|
+
unpause <name> Unpause a paused environment
|
|
12
|
+
use <name> Switch the active environment
|
|
13
|
+
|
|
14
|
+
{gray Options}
|
|
15
|
+
-a, --app <app_name> Selects the application
|
|
16
|
+
|
|
17
|
+
Run "ggt env <command> -h" for more information about a specific command.
|
|
18
|
+
`,"usage"),j=c(()=>r`
|
|
19
|
+
List all environments.
|
|
20
|
+
|
|
21
|
+
{gray Usage}
|
|
22
|
+
ggt env list [options]
|
|
23
|
+
|
|
24
|
+
{gray Options}
|
|
25
|
+
-a, --app <app_name> Selects the application
|
|
26
|
+
|
|
27
|
+
{gray Examples}
|
|
28
|
+
{cyanBright $ ggt env list --app=myapp}
|
|
29
|
+
`,"listUsage"),L=c(()=>r`
|
|
30
|
+
Create a new environment.
|
|
31
|
+
|
|
32
|
+
{gray Usage}
|
|
33
|
+
ggt env create <name> [options]
|
|
34
|
+
|
|
35
|
+
{gray Options}
|
|
36
|
+
--from <env> Clone from a specific environment (defaults to
|
|
37
|
+
the current sync environment if in a sync directory)
|
|
38
|
+
--use Switch to the new environment after creation
|
|
39
|
+
-a, --app <app_name> Selects the application
|
|
40
|
+
|
|
41
|
+
{gray Examples}
|
|
42
|
+
{cyanBright $ ggt env create staging --app=myapp}
|
|
43
|
+
{cyanBright $ ggt env create staging --from=harry-dev --app=myapp}
|
|
44
|
+
{cyanBright $ ggt env create staging --use --app=myapp}
|
|
45
|
+
`,"createUsage"),I=c(()=>r`
|
|
46
|
+
Delete an environment.
|
|
47
|
+
|
|
48
|
+
{gray Usage}
|
|
49
|
+
ggt env delete <name> [options]
|
|
50
|
+
|
|
51
|
+
{gray Options}
|
|
52
|
+
-f, --force Skip confirmation
|
|
53
|
+
-a, --app <app_name> Selects the application
|
|
54
|
+
|
|
55
|
+
{gray Examples}
|
|
56
|
+
{cyanBright $ ggt env delete staging --app=myapp}
|
|
57
|
+
{cyanBright $ ggt env delete staging --force --app=myapp}
|
|
58
|
+
`,"deleteUsage"),V=c(()=>r`
|
|
59
|
+
Unpause a paused environment.
|
|
60
|
+
|
|
61
|
+
{gray Usage}
|
|
62
|
+
ggt env unpause <name> [options]
|
|
63
|
+
|
|
64
|
+
{gray Options}
|
|
65
|
+
-a, --app <app_name> Selects the application
|
|
66
|
+
|
|
67
|
+
{gray Examples}
|
|
68
|
+
{cyanBright $ ggt env unpause staging --app=myapp}
|
|
69
|
+
`,"unpauseUsage"),F=c(()=>r`
|
|
70
|
+
Switch the active environment for the current sync directory.
|
|
71
|
+
|
|
72
|
+
{gray Usage}
|
|
73
|
+
ggt env use <name> [options]
|
|
74
|
+
|
|
75
|
+
{gray Options}
|
|
76
|
+
-a, --app <app_name> Selects the application
|
|
77
|
+
|
|
78
|
+
{gray Examples}
|
|
79
|
+
{cyanBright $ ggt env use staging}
|
|
80
|
+
{cyanBright $ ggt env use staging --app=myapp}
|
|
81
|
+
`,"useUsage"),q=c(t=>{switch(t){case"list":return j();case"create":return L();case"delete":return I();case"unpause":return V();case"use":return F();default:return R(void 0)}},"subcommandUsage"),G={"--from":{type:String},"--use":{type:Boolean}},W={"--force":{type:Boolean,alias:"-f"}},ve=c(async(t,e)=>{let o={ls:"list"},n=e._.shift();if(n&&(n=o[n]??n),(e._.includes("-h")||e._.includes("--help"))&&(g(q(n)),process.exit(0)),!n){g(R(t));return}if(!["list","create","delete","unpause","use"].includes(n))throw new m(r`
|
|
82
|
+
Unknown subcommand {yellow ${n}}
|
|
83
|
+
|
|
84
|
+
Run {gray ggt env -h} for usage
|
|
85
|
+
`);let{application:s,state:p}=await Y(t,e);switch(n){case"list":z(s);break;case"create":await H(t,s,e._,p);break;case"delete":await K(t,s,e._,p);break;case"unpause":await Q(t,s,e._);break;case"use":await X(t,s,e._);break}},"run"),Y=c(async(t,e)=>{let o=await T(t,"env"),n=await J(t);if(n.length===0)throw new m(r`
|
|
86
|
+
You (${o.email}) don't have any Gadget applications.
|
|
87
|
+
|
|
88
|
+
Visit https://gadget.new to create one!
|
|
89
|
+
`);let i;try{let p=await h(process.cwd()),a=await y.default.readFile(p.absolute(".gadget/sync.json"),"utf8");i=v.parse(JSON.parse(a))}catch{}return{application:await P({args:e,availableApps:n,state:i,selectPrompt:"Which application do you want to manage environments for?"}),state:i}},"resolveApplication"),w=c((t,e)=>{let o=t.environments.find(i=>i.name===e.toLowerCase());if(o)return{...o,application:t};if(t.environments.length===0)throw new m(r`
|
|
90
|
+
No environments found for ${t.slug}.
|
|
91
|
+
`);let n=U(e,t.environments.map(i=>i.name)).slice(0,5);throw new m(r`
|
|
92
|
+
Unknown environment: ${e}
|
|
93
|
+
|
|
94
|
+
Did you mean one of these?
|
|
95
|
+
|
|
96
|
+
• ${n.join(`
|
|
97
|
+
\u2022 `)}
|
|
98
|
+
`)},"findEnvironmentOrThrow"),A=c((t,e,o)=>{let n=o??e.environments.find(i=>i.type===d.Development);if(!n)throw new m(r`
|
|
99
|
+
No development environment found for ${e.slug}.
|
|
100
|
+
`);return new D(t,{...n,application:e})},"getEditForApp"),z=c(t=>{let e=t.environments;if(e.length===0){g("No environments found.");return}E({headers:["Name","Type"],rows:e.map(o=>[o.name,o.type])})},"runList"),k=c(async(t,e)=>{let o;try{o=await h(process.cwd())}catch{}if(o){let s=o.absolute(".gadget/sync.json"),p;try{p=await y.default.readFile(s,"utf8")}catch{}if(p){let a=v.parse(JSON.parse(p));if(a.application!==t.slug)throw new m(r`
|
|
101
|
+
This directory is synced to {yellow ${a.application}}, but you specified {yellow ${t.slug}}.
|
|
102
|
+
|
|
103
|
+
Either run this command from a directory synced to ${t.slug}, or omit the {gray --app} flag.
|
|
104
|
+
`);if(a.environment===e){g(`Already on environment ${e}.`);return}let u=a.environment;a.environment=e,a.environments[e]||(a.environments[e]={filesVersion:"0"}),await y.default.outputJSON(s,a,{spaces:2}),g(`${l.tick} Switched environment: ${u} \u2192 ${e}`);return}}let n=o?o.absolute(".gadget/sync.json"):M.join(process.cwd(),".gadget","sync.json"),i={application:t.slug,environment:e,environments:{[e]:{filesVersion:"0"}}};await y.default.outputJSON(n,i,{spaces:2}),g(`${l.tick} Activated environment ${e}`)},"activateEnvironment"),H=c(async(t,e,o,n)=>{let i=f(G,{argv:o}),s=i._.shift(),p=(i["--from"]??(n?.application===e.slug?n.environment:void 0))?.toLowerCase(),a=i["--use"]??!1;if(!s)throw new m(r`
|
|
105
|
+
Missing required argument: name
|
|
106
|
+
|
|
107
|
+
Run {gray ggt env create -h} for usage
|
|
108
|
+
`);let u=s.toLowerCase();if(a&&n?.application&&n.application!==e.slug)throw new m(r`
|
|
109
|
+
Cannot use {gray --use}: this directory is synced to {yellow ${n.application}}, but you specified {yellow ${e.slug}}.
|
|
110
|
+
|
|
111
|
+
Either run this command from a directory synced to ${e.slug}, or omit the {gray --app} flag.
|
|
112
|
+
`);let S=A(t,e);try{await S.mutate({mutation:b,variables:{environment:{slug:u,...p&&{sourceSlug:p}}}}),g(`${l.tick} Created environment ${u}`)}finally{await S.dispose()}a&&await k(e,u)},"runCreate"),K=c(async(t,e,o,n)=>{let i=f(W,{argv:o}),s=i._.shift(),p=i["--force"]??!1;if(!s)throw new m(r`
|
|
113
|
+
Missing required argument: name
|
|
114
|
+
|
|
115
|
+
Run {gray ggt env delete -h} for usage
|
|
116
|
+
`);let a=w(e,s);if(a.type===d.Production)throw new m(r`
|
|
117
|
+
Cannot delete the {bold production} environment.
|
|
118
|
+
`);p||await C(`Are you sure you want to delete the ${a.name} environment?`);let u=A(t,e);try{await u.mutate({mutation:O,variables:{slug:a.name}}),g(`${l.tick} Deleted environment ${a.name}`)}finally{await u.dispose()}n?.application===e.slug&&n.environment===a.name&&g(r`
|
|
119
|
+
{yellow Warning:} your sync directory was using the ${a.name} environment.
|
|
120
|
+
|
|
121
|
+
Run {gray ggt env use <environment>} to switch to another environment.
|
|
122
|
+
`)},"runDelete"),Q=c(async(t,e,o)=>{let n=o.shift();if(!n)throw new m(r`
|
|
123
|
+
Missing required argument: name
|
|
124
|
+
|
|
125
|
+
Run {gray ggt env unpause -h} for usage
|
|
126
|
+
`);let i=w(e,n),s=A(t,e,i);try{(await s.mutate({mutation:_})).unpauseEnvironment.alreadyActive?g(`Environment ${n} is already active.`):g(`${l.tick} Unpaused environment ${n}`)}finally{await s.dispose()}},"runUnpause"),X=c(async(t,e,o)=>{let n=o.shift();if(!n)throw new m(r`
|
|
127
|
+
Missing required argument: name
|
|
128
|
+
|
|
129
|
+
Run {gray ggt env use -h} for usage
|
|
130
|
+
`);let i=w(e,n);if(i.type===d.Production)throw new m(r`
|
|
131
|
+
Cannot use the {bold production} environment.
|
|
132
|
+
|
|
133
|
+
Use {gray ggt pull --env=production} to pull from production instead.
|
|
134
|
+
`);await k(e,i.name)},"runUse");export{de as args,fe as parseOptions,ve as run,R as usage};
|
|
135
|
+
//# sourceMappingURL=env-5OPHX3MC.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/commands/env.ts"],
|
|
4
|
+
"sourcesContent": ["import path from \"node:path\";\n\nimport fs from \"fs-extra\";\n\nimport { type Application, EnvironmentType, getApplications, type Environment } from \"../services/app/app.js\";\nimport { AppArg } from \"../services/app/arg.js\";\nimport { Edit } from \"../services/app/edit/edit.js\";\nimport { CREATE_ENVIRONMENT_MUTATION, DELETE_ENVIRONMENT_MUTATION, UNPAUSE_ENVIRONMENT_MUTATION } from \"../services/app/edit/operation.js\";\nimport { loadApplication } from \"../services/command/app-identity.js\";\nimport { ArgError, parseArgs, type ArgsDefinition, type ParseArgsOptions } from \"../services/command/arg.js\";\nimport type { Run, Usage } from \"../services/command/command.js\";\nimport type { Context } from \"../services/command/context.js\";\nimport type { Directory } from \"../services/filesync/directory.js\";\nimport { SyncJsonState } from \"../services/filesync/sync-json-state.js\";\nimport { loadSyncJsonDirectory } from \"../services/filesync/sync-json.js\";\nimport { confirm } from \"../services/output/confirm.js\";\nimport { println } from \"../services/output/print.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { symbol } from \"../services/output/symbols.js\";\nimport { printTable } from \"../services/output/table.js\";\nimport { getUserOrLogin } from \"../services/user/user.js\";\nimport { sortBySimilar } from \"../services/util/collection.js\";\n\nexport const args = {\n \"--app\": { type: AppArg, alias: [\"-a\", \"--application\"] },\n} satisfies ArgsDefinition;\n\nexport const parseOptions: ParseArgsOptions = { permissive: true };\n\nexport const usage: Usage = () => {\n return sprint`\n Manage environments for your Gadget application.\n\n {gray Usage}\n ggt env <command> [options]\n\n {gray Commands}\n list List all environments\n create <name> Create a new environment\n delete <name> Delete an environment\n unpause <name> Unpause a paused environment\n use <name> Switch the active environment\n\n {gray Options}\n -a, --app <app_name> Selects the application\n\n Run \"ggt env <command> -h\" for more information about a specific command.\n `;\n};\n\nconst listUsage = (): string => {\n return sprint`\n List all environments.\n\n {gray Usage}\n ggt env list [options]\n\n {gray Options}\n -a, --app <app_name> Selects the application\n\n {gray Examples}\n {cyanBright $ ggt env list --app=myapp}\n `;\n};\n\nconst createUsage = (): string => {\n return sprint`\n Create a new environment.\n\n {gray Usage}\n ggt env create <name> [options]\n\n {gray Options}\n --from <env> Clone from a specific environment (defaults to\n the current sync environment if in a sync directory)\n --use Switch to the new environment after creation\n -a, --app <app_name> Selects the application\n\n {gray Examples}\n {cyanBright $ ggt env create staging --app=myapp}\n {cyanBright $ ggt env create staging --from=harry-dev --app=myapp}\n {cyanBright $ ggt env create staging --use --app=myapp}\n `;\n};\n\nconst deleteUsage = (): string => {\n return sprint`\n Delete an environment.\n\n {gray Usage}\n ggt env delete <name> [options]\n\n {gray Options}\n -f, --force Skip confirmation\n -a, --app <app_name> Selects the application\n\n {gray Examples}\n {cyanBright $ ggt env delete staging --app=myapp}\n {cyanBright $ ggt env delete staging --force --app=myapp}\n `;\n};\n\nconst unpauseUsage = (): string => {\n return sprint`\n Unpause a paused environment.\n\n {gray Usage}\n ggt env unpause <name> [options]\n\n {gray Options}\n -a, --app <app_name> Selects the application\n\n {gray Examples}\n {cyanBright $ ggt env unpause staging --app=myapp}\n `;\n};\n\nconst useUsage = (): string => {\n return sprint`\n Switch the active environment for the current sync directory.\n\n {gray Usage}\n ggt env use <name> [options]\n\n {gray Options}\n -a, --app <app_name> Selects the application\n\n {gray Examples}\n {cyanBright $ ggt env use staging}\n {cyanBright $ ggt env use staging --app=myapp}\n `;\n};\n\nconst subcommandUsage = (subcommand: string | undefined): string => {\n switch (subcommand) {\n case \"list\":\n return listUsage();\n case \"create\":\n return createUsage();\n case \"delete\":\n return deleteUsage();\n case \"unpause\":\n return unpauseUsage();\n case \"use\":\n return useUsage();\n default:\n return usage(undefined!); // oxlint-disable-line\n }\n};\n\nconst createArgs = {\n \"--from\": { type: String },\n \"--use\": { type: Boolean },\n} satisfies ArgsDefinition;\n\nconst deleteArgs = {\n \"--force\": { type: Boolean, alias: \"-f\" },\n} satisfies ArgsDefinition;\n\nexport const run: Run<typeof args> = async (ctx, args) => {\n const subcommandAliases: Record<string, string> = { ls: \"list\" };\n let subcommand = args._.shift();\n if (subcommand) {\n subcommand = subcommandAliases[subcommand] ?? subcommand;\n }\n\n if (args._.includes(\"-h\") || args._.includes(\"--help\")) {\n println(subcommandUsage(subcommand));\n process.exit(0);\n }\n\n if (!subcommand) {\n println(usage(ctx));\n return;\n }\n\n const validSubcommands = [\"list\", \"create\", \"delete\", \"unpause\", \"use\"];\n if (!validSubcommands.includes(subcommand)) {\n throw new ArgError(sprint`\n Unknown subcommand {yellow ${subcommand}}\n\n Run {gray ggt env -h} for usage\n `);\n }\n\n const { application, state } = await resolveApplication(ctx, args);\n\n switch (subcommand) {\n case \"list\":\n runList(application);\n break;\n case \"create\":\n await runCreate(ctx, application, args._, state);\n break;\n case \"delete\":\n await runDelete(ctx, application, args._, state);\n break;\n case \"unpause\":\n await runUnpause(ctx, application, args._);\n break;\n case \"use\":\n await runUse(ctx, application, args._);\n break;\n }\n};\n\nconst resolveApplication = async (\n ctx: Context,\n args: { \"--app\"?: string; _: string[] },\n): Promise<{ application: Application; state?: SyncJsonState }> => {\n const user = await getUserOrLogin(ctx, \"env\");\n const availableApps = await getApplications(ctx);\n\n if (availableApps.length === 0) {\n throw new ArgError(\n sprint`\n You (${user.email}) don't have any Gadget applications.\n\n Visit https://gadget.new to create one!\n `,\n );\n }\n\n // try reading sync.json state for the app slug fallback and environment context\n let state: SyncJsonState | undefined;\n try {\n const directory = await loadSyncJsonDirectory(process.cwd());\n const syncJsonFile = await fs.readFile(directory.absolute(\".gadget/sync.json\"), \"utf8\");\n state = SyncJsonState.parse(JSON.parse(syncJsonFile));\n } catch {\n // no sync.json found or invalid, that's ok\n }\n\n const application = await loadApplication({\n args,\n availableApps,\n state,\n selectPrompt: \"Which application do you want to manage environments for?\",\n });\n\n return { application, state };\n};\n\nconst findEnvironmentOrThrow = (application: Application, name: string): Environment => {\n const environment = application.environments.find((env) => env.name === name.toLowerCase());\n if (environment) {\n return { ...environment, application };\n }\n\n if (application.environments.length === 0) {\n throw new ArgError(sprint`\n No environments found for ${application.slug}.\n `);\n }\n\n const similarEnvs = sortBySimilar(\n name,\n application.environments.map((env) => env.name),\n ).slice(0, 5);\n\n throw new ArgError(sprint`\n Unknown environment: ${name}\n\n Did you mean one of these?\n\n \u2022 ${similarEnvs.join(\"\\n \u2022 \")}\n `);\n};\n\nconst getEditForApp = (ctx: Context, application: Application, targetEnv?: Environment): Edit => {\n const environment = targetEnv ?? application.environments.find((env) => env.type === EnvironmentType.Development);\n\n if (!environment) {\n throw new ArgError(\n sprint`\n No development environment found for ${application.slug}.\n `,\n );\n }\n\n return new Edit(ctx, { ...environment, application });\n};\n\nconst runList = (application: Application): void => {\n const envs = application.environments;\n\n if (envs.length === 0) {\n println(\"No environments found.\");\n return;\n }\n\n printTable({\n headers: [\"Name\", \"Type\"],\n rows: envs.map((env) => [env.name, env.type]),\n });\n};\n\nconst activateEnvironment = async (application: Application, envName: string): Promise<void> => {\n let directory: Directory | undefined;\n try {\n directory = await loadSyncJsonDirectory(process.cwd());\n } catch {\n // no sync.json directory found, we'll create one\n }\n\n if (directory) {\n const syncJsonPath = directory.absolute(\".gadget/sync.json\");\n let syncJsonFile: string | undefined;\n try {\n syncJsonFile = await fs.readFile(syncJsonPath, \"utf8\");\n } catch {\n // sync.json file doesn't exist, we'll create one\n }\n\n if (syncJsonFile) {\n const state = SyncJsonState.parse(JSON.parse(syncJsonFile));\n\n if (state.application !== application.slug) {\n throw new ArgError(sprint`\n This directory is synced to {yellow ${state.application}}, but you specified {yellow ${application.slug}}.\n\n Either run this command from a directory synced to ${application.slug}, or omit the {gray --app} flag.\n `);\n }\n\n if (state.environment === envName) {\n println(`Already on environment ${envName}.`);\n return;\n }\n\n const previousEnv = state.environment;\n state.environment = envName;\n if (!state.environments[envName]) {\n state.environments[envName] = { filesVersion: \"0\" };\n }\n\n await fs.outputJSON(syncJsonPath, state, { spaces: 2 });\n println(`${symbol.tick} Switched environment: ${previousEnv} \u2192 ${envName}`);\n return;\n }\n }\n\n // No sync.json found \u2014 create a new one in the sync root (or cwd if no sync root)\n const newSyncJsonPath = directory ? directory.absolute(\".gadget/sync.json\") : path.join(process.cwd(), \".gadget\", \"sync.json\");\n const newState: SyncJsonState = {\n application: application.slug,\n environment: envName,\n environments: { [envName]: { filesVersion: \"0\" } },\n };\n await fs.outputJSON(newSyncJsonPath, newState, { spaces: 2 });\n println(`${symbol.tick} Activated environment ${envName}`);\n};\n\nconst runCreate = async (ctx: Context, application: Application, positional: string[], state?: SyncJsonState): Promise<void> => {\n const subArgs = parseArgs(createArgs, { argv: positional });\n const rawName = subArgs._.shift();\n const from = (subArgs[\"--from\"] ?? (state?.application === application.slug ? state.environment : undefined))?.toLowerCase();\n const use = subArgs[\"--use\"] ?? false;\n\n if (!rawName) {\n throw new ArgError(sprint`\n Missing required argument: name\n\n Run {gray ggt env create -h} for usage\n `);\n }\n\n const name = rawName.toLowerCase();\n\n // Validate --use before creating the environment to avoid creating an\n // environment on the server that can't be activated locally\n if (use && state?.application && state.application !== application.slug) {\n throw new ArgError(sprint`\n Cannot use {gray --use}: this directory is synced to {yellow ${state.application}}, but you specified {yellow ${application.slug}}.\n\n Either run this command from a directory synced to ${application.slug}, or omit the {gray --app} flag.\n `);\n }\n\n const edit = getEditForApp(ctx, application);\n try {\n await edit.mutate({\n mutation: CREATE_ENVIRONMENT_MUTATION,\n variables: { environment: { slug: name, ...(from && { sourceSlug: from }) } },\n });\n\n println(`${symbol.tick} Created environment ${name}`);\n } finally {\n await edit.dispose();\n }\n\n if (use) {\n await activateEnvironment(application, name);\n }\n};\n\nconst runDelete = async (ctx: Context, application: Application, positional: string[], state?: SyncJsonState): Promise<void> => {\n const subArgs = parseArgs(deleteArgs, { argv: positional });\n const name = subArgs._.shift();\n const force = subArgs[\"--force\"] ?? false;\n\n if (!name) {\n throw new ArgError(sprint`\n Missing required argument: name\n\n Run {gray ggt env delete -h} for usage\n `);\n }\n\n const environment = findEnvironmentOrThrow(application, name);\n\n if (environment.type === EnvironmentType.Production) {\n throw new ArgError(sprint`\n Cannot delete the {bold production} environment.\n `);\n }\n\n if (!force) {\n await confirm(`Are you sure you want to delete the ${environment.name} environment?`);\n }\n\n const edit = getEditForApp(ctx, application);\n try {\n await edit.mutate({\n mutation: DELETE_ENVIRONMENT_MUTATION,\n variables: { slug: environment.name },\n });\n\n println(`${symbol.tick} Deleted environment ${environment.name}`);\n } finally {\n await edit.dispose();\n }\n\n if (state?.application === application.slug && state.environment === environment.name) {\n println(sprint`\n {yellow Warning:} your sync directory was using the ${environment.name} environment.\n\n Run {gray ggt env use <environment>} to switch to another environment.\n `);\n }\n};\n\nconst runUnpause = async (ctx: Context, application: Application, positional: string[]): Promise<void> => {\n const name = positional.shift();\n\n if (!name) {\n throw new ArgError(sprint`\n Missing required argument: name\n\n Run {gray ggt env unpause -h} for usage\n `);\n }\n\n const environment = findEnvironmentOrThrow(application, name);\n\n const edit = getEditForApp(ctx, application, environment);\n try {\n const data = await edit.mutate({\n mutation: UNPAUSE_ENVIRONMENT_MUTATION,\n });\n\n if (data.unpauseEnvironment.alreadyActive) {\n println(`Environment ${name} is already active.`);\n } else {\n println(`${symbol.tick} Unpaused environment ${name}`);\n }\n } finally {\n await edit.dispose();\n }\n};\n\nconst runUse = async (_ctx: Context, application: Application, positional: string[]): Promise<void> => {\n const name = positional.shift();\n\n if (!name) {\n throw new ArgError(sprint`\n Missing required argument: name\n\n Run {gray ggt env use -h} for usage\n `);\n }\n\n const environment = findEnvironmentOrThrow(application, name);\n\n if (environment.type === EnvironmentType.Production) {\n throw new ArgError(sprint`\n Cannot use the {bold production} environment.\n\n Use {gray ggt pull --env=production} to pull from production instead.\n `);\n }\n\n await activateEnvironment(application, environment.name);\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["init_cjs", "import_fs_extra", "path", "args", "AppArg", "parseOptions", "usage", "__name", "sprint", "listUsage", "createUsage", "deleteUsage", "unpauseUsage", "useUsage", "subcommandUsage", "subcommand", "createArgs", "deleteArgs", "run", "ctx", "subcommandAliases", "println", "ArgError", "application", "state", "resolveApplication", "runList", "runCreate", "runDelete", "runUnpause", "runUse", "user", "getUserOrLogin", "availableApps", "getApplications", "directory", "loadSyncJsonDirectory", "syncJsonFile", "fs", "SyncJsonState", "loadApplication", "findEnvironmentOrThrow", "name", "environment", "env", "similarEnvs", "sortBySimilar", "getEditForApp", "targetEnv", "EnvironmentType", "Edit", "envs", "printTable", "activateEnvironment", "envName", "syncJsonPath", "previousEnv", "symbol", "newSyncJsonPath", "path", "newState", "positional", "subArgs", "parseArgs", "rawName", "from", "use", "edit", "CREATE_ENVIRONMENT_MUTATION", "force", "confirm", "DELETE_ENVIRONMENT_MUTATION", "UNPAUSE_ENVIRONMENT_MUTATION", "_ctx"]
|
|
7
|
+
}
|