@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
package/dist/ggt-5XNRJZSW.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import{b as E}from"./chunk-JYE5LLIF.js";import{b as A}from"./chunk-SVWK2NXG.js";import"./chunk-3OM5WM7E.js";import{a as b,b as N}from"./chunk-JKZNSRLU.js";import{a as D,b as m,d as w,e as T,f as J}from"./chunk-T6UHSWMT.js";import"./chunk-DR4CXBD6.js";import{L as O,c as l,d as v,m as S}from"./chunk-442CSROP.js";import"./chunk-F255O64V.js";import"./chunk-HCULGPBH.js";import"./chunk-OUIZQC4D.js";import{b as f,f as y,ga as d,ma as g,ra as h,ta as i}from"./chunk-JG2QCDK2.js";import{a as M}from"./chunk-GFQYFEEH.js";import{a as n,f as u,h as s}from"./chunk-7DYQUG5M.js";s();var I=u(M(),1);s();var R=u(D(),1);var G={"-h":{type:Boolean},"--help":{type:Boolean},"--verbose":{type:R.default.COUNT,alias:["-v","--debug"]},"--telemetry":{type:Boolean},"--json":{type:Boolean}},B=n(()=>h`
|
|
2
|
-
The command-line interface for Gadget.
|
|
3
|
-
|
|
4
|
-
{gray Usage}
|
|
5
|
-
ggt [COMMAND]
|
|
6
|
-
|
|
7
|
-
{gray Commands}
|
|
8
|
-
dev Start developing your application
|
|
9
|
-
deploy Deploy your environment to production
|
|
10
|
-
status Show your local and environment's file changes
|
|
11
|
-
push Push your local files to your environment
|
|
12
|
-
pull Pull your environment's files to your local computer
|
|
13
|
-
var Manage environment variables
|
|
14
|
-
add Add models, fields, actions, routes and environments to your app
|
|
15
|
-
open Open a Gadget location in your browser
|
|
16
|
-
list List your available applications
|
|
17
|
-
login Log in to your account
|
|
18
|
-
logout Log out of your account
|
|
19
|
-
logs Stream your environment's logs
|
|
20
|
-
debugger Connect to the debugger for your environment
|
|
21
|
-
whoami Print the currently logged in account
|
|
22
|
-
configure Configure default execution options
|
|
23
|
-
agent-plugin Install Gadget agent plugins (AGENTS.md + skills)
|
|
24
|
-
version Print this version of ggt
|
|
25
|
-
|
|
26
|
-
{gray Flags}
|
|
27
|
-
-h, --help Print how to use a command
|
|
28
|
-
-v, --verbose Print more verbose output
|
|
29
|
-
--telemetry Enable telemetry
|
|
30
|
-
|
|
31
|
-
{gray Agent plugins}
|
|
32
|
-
Install AGENTS.md and Gadget agent skills for your coding agent:
|
|
33
|
-
{cyanBright ggt agent-plugin install}
|
|
34
|
-
|
|
35
|
-
Run "ggt [COMMAND] -h" for more information about a specific command.
|
|
36
|
-
`,"usage"),x=n(async(e,o)=>{let t=e.child({name:"root"});if(o["--json"]&&(process.env.GGT_LOG_FORMAT="json"),o["--verbose"]&&(process.env.GGT_LOG_LEVEL=d(o["--verbose"]).toString()),await E(t)){let{warnIfUpdateAvailable:p}=await import("./update-QIQFJFRQ.js");await p(t)}let r=o._.shift();if(y(r)&&(i(B(t)),process.exit(0)),r={envs:"var",problem:"problems",log:"logs"}[r]??r,!T(r)){let[p]=S(r,w);i`
|
|
37
|
-
Unknown command {yellow ${r}}
|
|
38
|
-
|
|
39
|
-
Did you mean {blueBright ${p}}?
|
|
40
|
-
|
|
41
|
-
Run {gray ggt --help} for usage
|
|
42
|
-
`,process.exit(1)}let a=await J(r);(o["-h"]??o["--help"])&&((!a.parseOptions?.permissive||o._.length===0)&&(i(a.usage(t)),process.exit(0)),o._.push("-h"));try{await a.run(t.child({name:r}),m(a.args??{},{...a.parseOptions,argv:o._}))}catch(p){await l(t,p)}},"run");s();var _=n(function(){return String(this)},"bigintToJSON"),j=n(function(){return Object.fromEntries(this)},"mapToJSON"),L=n(function(){return Array.from(this)},"setToJSON"),C=n(()=>{Object.prototype.hasOwnProperty.call(BigInt,"toJSON")||(BigInt.prototype.toJSON=_),Object.prototype.hasOwnProperty.call(Map,"toJSON")||(Map.prototype.toJSON=j),Object.prototype.hasOwnProperty.call(Set,"toJSON")||(Set.prototype.toJSON=L)},"installJsonExtensions");var mo=n(async(e=O.init({name:"ggt"}))=>{if(process.env.GADGET_EDITOR_TERMINAL_SESSION_ID)return i("Running ggt in the Gadget editor's terminal is not supported."),process.exit(1);try{let o=m(G,{argv:process.argv.slice(2),permissive:!0}),t=await A(e,!0);o["--telemetry"]??=t.telemetry,o["--json"]??=t.json,C(),await v(e,o),U(e),await x(e,o)}catch(o){await l(e,o)}},"ggt"),U=n(e=>{let o=!1;for(let t of["SIGINT","SIGTERM"])process.on(t,async()=>{if(o)return;o=!0,e.log.trace("received signal",{signal:t}),setTimeout(()=>{process.once(t,()=>{i(" Exiting immediately"),process.exit(1)})},(0,I.default)("100ms")).unref(),g.writeStdout(`
|
|
43
|
-
`),b?.clear(),g.persistFooter();let r=N({successSymbol:"\u{1F44B}",content:`Stopping ${f.gray("Press Ctrl+C again to force")}`});try{e.abort(),await e.done,r.succeed("Goodbye!")}catch(c){r.fail(),await l(e,c)}})},"installSignalHandler");export{mo as ggt};
|
|
44
|
-
//# sourceMappingURL=ggt-5XNRJZSW.js.map
|
package/dist/ggt-5XNRJZSW.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/ggt.ts", "../src/commands/root.ts", "../src/services/util/json.ts"],
|
|
4
|
-
"sourcesContent": ["import chalk from \"chalk\";\nimport ms from \"ms\";\n\nimport * as root from \"./commands/root.js\";\nimport { parseArgs } from \"./services/command/arg.js\";\nimport { Context } from \"./services/command/context.js\";\nimport { loadDefaultsConfig } from \"./services/config/defaults.js\";\nimport { output } from \"./services/output/output.js\";\nimport { println } from \"./services/output/print.js\";\nimport { installErrorHandlers, reportErrorAndExit } from \"./services/output/report.js\";\nimport { activeSpinner, spin } from \"./services/output/spinner.js\";\nimport { installJsonExtensions } from \"./services/util/json.js\";\n\nexport const ggt = async (ctx = Context.init({ name: \"ggt\" })): Promise<void> => {\n if (process.env[\"GADGET_EDITOR_TERMINAL_SESSION_ID\"]) {\n println(\"Running ggt in the Gadget editor's terminal is not supported.\");\n return process.exit(1);\n }\n\n try {\n const rootArgs = parseArgs(root.args, { argv: process.argv.slice(2), permissive: true });\n\n const configData = await loadDefaultsConfig(ctx, true);\n /* If the related arg is specified by the user, then ignore whatever the default is. */\n rootArgs[\"--telemetry\"] ??= configData.telemetry;\n rootArgs[\"--json\"] ??= configData.json;\n\n installJsonExtensions();\n await installErrorHandlers(ctx, rootArgs);\n installSignalHandler(ctx);\n\n await root.run(ctx, rootArgs);\n } catch (error) {\n await reportErrorAndExit(ctx, error);\n }\n};\n\nconst installSignalHandler = (ctx: Context): void => {\n let stopping = false;\n\n for (const signal of [\"SIGINT\", \"SIGTERM\"] as const) {\n // oxlint-disable-next-line no-misused-promises\n process.on(signal, async () => {\n if (stopping) {\n return;\n }\n\n stopping = true;\n ctx.log.trace(\"received signal\", { signal });\n\n setTimeout(() => {\n // when ggt is run with npx, and the user presses ctrl+c, ggt\n // receives SIGINT twice in quick succession. in order to\n // prevent the second SIGINT from triggering the force exit\n // listener, we wait a bit in this setTimeout before adding it\n process.once(signal, () => {\n println(\" Exiting immediately\");\n process.exit(1);\n });\n }, ms(\"100ms\")).unref();\n\n // ctrl+c was pressed, so we need to clear the line\n output.writeStdout(\"\\n\");\n\n // if there was any sticky text, it needs to be persisted now\n activeSpinner?.clear();\n output.persistFooter();\n\n const spinner = spin({\n successSymbol: \"\uD83D\uDC4B\",\n content: `Stopping ${chalk.gray(\"Press Ctrl+C again to force\")}`,\n });\n\n try {\n ctx.abort();\n await ctx.done;\n spinner.succeed(\"Goodbye!\");\n } catch (error) {\n spinner.fail();\n await reportErrorAndExit(ctx, error);\n }\n });\n }\n};\n", "import arg from \"arg\";\n\nimport { parseArgs, type ArgsDefinition, type ArgsDefinitionResult } from \"../services/command/arg.js\";\nimport { Commands, importCommand, isCommand, type Run, type Usage } from \"../services/command/command.js\";\nimport { verbosityToLevel } from \"../services/output/log/level.js\";\nimport { println } from \"../services/output/print.js\";\nimport { reportErrorAndExit } from \"../services/output/report.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { shouldCheckForUpdate } from \"../services/output/update.js\";\nimport { sortBySimilar } from \"../services/util/collection.js\";\nimport { isNil } from \"../services/util/is.js\";\n\nexport type RootArgs = typeof args;\nexport type RootArgsResult = ArgsDefinitionResult<RootArgs>;\n\nexport const args = {\n \"-h\": { type: Boolean },\n \"--help\": { type: Boolean },\n \"--verbose\": { type: arg.COUNT, alias: [\"-v\", \"--debug\"] },\n \"--telemetry\": { type: Boolean },\n \"--json\": { type: Boolean },\n} satisfies ArgsDefinition;\n\nexport const usage: Usage = () => {\n return sprint`\n The command-line interface for Gadget.\n\n {gray Usage}\n ggt [COMMAND]\n\n {gray Commands}\n dev Start developing your application\n deploy Deploy your environment to production\n status Show your local and environment's file changes\n push Push your local files to your environment\n pull Pull your environment's files to your local computer\n var Manage environment variables\n add Add models, fields, actions, routes and environments to your app\n open Open a Gadget location in your browser\n list List your available applications\n login Log in to your account\n logout Log out of your account\n logs Stream your environment's logs\n debugger Connect to the debugger for your environment\n whoami Print the currently logged in account\n configure Configure default execution options\n agent-plugin Install Gadget agent plugins (AGENTS.md + skills)\n version Print this version of ggt\n\n {gray Flags}\n -h, --help Print how to use a command\n -v, --verbose Print more verbose output\n --telemetry Enable telemetry\n\n {gray Agent plugins}\n Install AGENTS.md and Gadget agent skills for your coding agent:\n {cyanBright ggt agent-plugin install}\n\n Run \"ggt [COMMAND] -h\" for more information about a specific command.\n `;\n};\n\nexport const run: Run<RootArgs> = async (parent, args): Promise<void> => {\n const ctx = parent.child({ name: \"root\" });\n\n if (args[\"--json\"]) {\n process.env[\"GGT_LOG_FORMAT\"] = \"json\";\n }\n\n if (args[\"--verbose\"]) {\n process.env[\"GGT_LOG_LEVEL\"] = verbosityToLevel(args[\"--verbose\"]).toString();\n }\n\n if (await shouldCheckForUpdate(ctx)) {\n const { warnIfUpdateAvailable } = await import(\"../services/output/update.js\");\n await warnIfUpdateAvailable(ctx);\n }\n\n let commandName = args._.shift();\n if (isNil(commandName)) {\n println(usage(ctx));\n process.exit(0);\n }\n\n // resolve command aliases\n const commandAliases: Record<string, string> = { envs: \"var\", problem: \"problems\", log: \"logs\" };\n commandName = commandAliases[commandName] ?? commandName;\n\n if (!isCommand(commandName)) {\n const [closest] = sortBySimilar(commandName, Commands);\n println`\n Unknown command {yellow ${commandName}}\n\n Did you mean {blueBright ${closest}}?\n\n Run {gray ggt --help} for usage\n `;\n process.exit(1);\n }\n\n const command = await importCommand(commandName);\n\n if (args[\"-h\"] ?? args[\"--help\"]) {\n if (!command.parseOptions?.permissive || args._.length === 0) {\n println(command.usage(ctx));\n process.exit(0);\n }\n // pass -h through to the command's run function for subcommand-level help\n args._.push(\"-h\");\n }\n\n try {\n await command.run(ctx.child({ name: commandName }), parseArgs(command.args ?? {}, { ...command.parseOptions, argv: args._ }));\n } catch (error) {\n await reportErrorAndExit(ctx, error);\n }\n};\n", "// oxlint-disable consistent-type-definitions\ndeclare global {\n interface BigInt {\n toJSON?(): string;\n }\n interface Map<K, V> {\n toJSON?(): Record<string, V>;\n }\n interface Set<T> {\n toJSON?(): T[];\n }\n}\n\nconst bigintToJSON = function (this: bigint): string {\n return String(this);\n};\n\nconst mapToJSON = function <K, V>(this: Map<K, V>): Record<string, V> {\n // oxlint-disable-next-line no-unsafe-return\n return Object.fromEntries(this);\n};\n\nconst setToJSON = function <T>(this: Set<T>): T[] {\n return Array.from(this);\n};\n\nexport const installJsonExtensions = (): void => {\n if (!Object.prototype.hasOwnProperty.call(BigInt, \"toJSON\")) {\n BigInt.prototype.toJSON = bigintToJSON;\n }\n\n if (!Object.prototype.hasOwnProperty.call(Map, \"toJSON\")) {\n Map.prototype.toJSON = mapToJSON;\n }\n\n if (!Object.prototype.hasOwnProperty.call(Set, \"toJSON\")) {\n Set.prototype.toJSON = setToJSON;\n }\n};\n\nexport const uninstallJsonExtensions = (): void => {\n if (BigInt.prototype.toJSON === bigintToJSON) {\n delete BigInt.prototype.toJSON;\n }\n\n if (Map.prototype.toJSON === mapToJSON) {\n delete Map.prototype.toJSON;\n }\n\n if (Set.prototype.toJSON === setToJSON) {\n delete Set.prototype.toJSON;\n }\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["init_cjs", "import_ms", "init_cjs", "import_arg", "args", "arg", "usage", "__name", "sprint", "run", "parent", "ctx", "verbosityToLevel", "shouldCheckForUpdate", "warnIfUpdateAvailable", "commandName", "isNil", "println", "isCommand", "closest", "sortBySimilar", "Commands", "command", "importCommand", "parseArgs", "error", "reportErrorAndExit", "init_cjs", "bigintToJSON", "__name", "mapToJSON", "setToJSON", "installJsonExtensions", "ggt", "__name", "ctx", "Context", "println", "rootArgs", "parseArgs", "args", "configData", "loadDefaultsConfig", "installJsonExtensions", "installErrorHandlers", "installSignalHandler", "run", "error", "reportErrorAndExit", "stopping", "signal", "ms", "output", "activeSpinner", "spinner", "spin", "source_default"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/list.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Run, Usage } from \"../services/command/command.js\";\n\nimport { getApplications, groupByTeam } from \"../services/app/app.js\";\nimport { output } from \"../services/output/output.js\";\nimport { println } from \"../services/output/print.js\";\nimport { sprint, sprintln } from \"../services/output/sprint.js\";\nimport { printTable } from \"../services/output/table.js\";\nimport { getUserOrLogin } from \"../services/user/user.js\";\n\nexport const usage: Usage = () => sprint`\n List the apps available to the currently logged-in user.\n\n {bold Usage}\n ggt list\n`;\n\nexport const run: Run = async (ctx) => {\n await getUserOrLogin(ctx, \"list\");\n\n const availableApps = await getApplications(ctx);\n if (availableApps.length === 0) {\n println`\n It doesn't look like you have any applications.\n\n Visit https://gadget.new to create one!\n `;\n return;\n }\n\n if (output.isInteractive) {\n for (const [teamName, apps] of groupByTeam(availableApps)) {\n println(sprint`{grey ${teamName}}`);\n printTable({\n json: apps,\n headers: [\"Name\", \"Domain\"],\n rows: apps.map((app) => [app.slug, app.primaryDomain]),\n });\n println(\"\");\n }\n } else {\n let simpleOutput = \"\";\n for (const app of availableApps) {\n simpleOutput += sprintln`${app.slug}\\t${app.primaryDomain}`;\n }\n\n println({ json: availableApps, content: simpleOutput });\n }\n};\n"],
|
|
5
|
-
"mappings": "yTAAAA,IASO,IAAMC,EAAeC,EAAA,IAAMC;AAAA;AAAA;AAAA;AAAA;AAAA,EAAN,SAOfC,EAAWF,EAAA,MAAOG,GAAQ,CACrC,MAAMC,EAAeD,EAAK,MAAM,EAEhC,IAAME,EAAgB,MAAMC,EAAgBH,CAAG,EAC/C,GAAIE,EAAc,SAAW,EAAG,CAC9BE;AAAA;AAAA;AAAA;AAAA,MAKA,MACF,CAEA,GAAIC,EAAO,cACT,OAAW,CAACC,EAAUC,CAAI,IAAKC,EAAYN,CAAa,EACtDE,EAAQN,UAAeQ,CAAQ,GAAG,EAClCG,EAAW,CACT,KAAMF,EACN,QAAS,CAAC,OAAQ,QAAQ,EAC1B,KAAMA,EAAK,IAAKG,GAAQ,CAACA,EAAI,KAAMA,EAAI,aAAa,CAAC,CACvD,CAAC,EACDN,EAAQ,EAAE,MAEP,CACL,IAAIO,EAAe,GACnB,QAAWD,KAAOR,EAChBS,GAAgBC,IAAWF,EAAI,IAAI,KAAKA,EAAI,aAAa,GAG3DN,EAAQ,CAAE,KAAMF,EAAe,QAASS,CAAa,CAAC,CACxD,CACF,EA/BwB",
|
|
6
|
-
"names": ["init_cjs", "usage", "__name", "sprint", "run", "ctx", "getUserOrLogin", "availableApps", "getApplications", "println", "output", "teamName", "apps", "groupByTeam", "printTable", "app", "simpleOutput", "sprintln"]
|
|
7
|
-
}
|
package/dist/login-GMWQRH7V.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{u as a,v as b,w as c}from"./chunk-442CSROP.js";import"./chunk-F255O64V.js";import"./chunk-HCULGPBH.js";import"./chunk-OUIZQC4D.js";import"./chunk-JG2QCDK2.js";import"./chunk-GFQYFEEH.js";import"./chunk-7DYQUG5M.js";export{c as login,b as run,a as usage};
|
|
2
|
-
//# sourceMappingURL=login-GMWQRH7V.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/logout.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Run, Usage } from \"../services/command/command.js\";\n\nimport { println } from \"../services/output/print.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { readSession, writeSession } from \"../services/user/session.js\";\n\nexport const usage: Usage = () => sprint`\n Log out of your account.\n\n {bold Usage}\n ggt logout\n`;\n\nexport const run: Run = (ctx) => {\n const token = readSession(ctx);\n if (token) {\n writeSession(ctx, undefined);\n println(\"Goodbye\");\n } else {\n println(\"You are not logged in\");\n }\n};\n"],
|
|
5
|
-
"mappings": "2KAAAA,IAMO,IAAMC,EAAeC,EAAA,IAAMC;AAAA;AAAA;AAAA;AAAA;AAAA,EAAN,SAOfC,EAAWF,EAACG,GAAQ,CACjBC,EAAYD,CAAG,GAE3BE,EAAaF,EAAK,MAAS,EAC3BG,EAAQ,SAAS,GAEjBA,EAAQ,uBAAuB,CAEnC,EARwB",
|
|
6
|
-
"names": ["init_cjs", "usage", "__name", "sprint", "run", "ctx", "readSession", "writeSession", "println"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/logs.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Run, Usage } from \"../services/command/command.js\";\n\nimport { AppIdentity, AppIdentityArgs } from \"../services/command/app-identity.js\";\nimport { ArgError, type ArgsDefinition, type ArgsDefinitionResult } from \"../services/command/arg.js\";\nimport { loadSyncJsonDirectory } from \"../services/filesync/sync-json.js\";\nimport { subscribeToEnvironmentLogs } from \"../services/logs/subscribeToEnvironmentLogs.js\";\nimport { LoggingArgs } from \"../services/output/log/structured.js\";\nimport { sprint } from \"../services/output/sprint.js\";\n\nexport type LogsArgs = typeof args;\nexport type LogsArgsResult = ArgsDefinitionResult<LogsArgs>;\n\nexport const args = {\n ...AppIdentityArgs,\n ...LoggingArgs,\n} satisfies ArgsDefinition;\n\nexport const usage: Usage = (_ctx) => {\n return sprint`\n Streams the logs for an application to.\n\n {gray Usage}\n ggt logs [options]\n\n {gray Options}\n -ll, --log-level <level> Sets the log level for incoming application logs (default: info)\n --my-logs Only outputs user sourced logs and exclude logs from the Gadget framework\n --json Output logs in JSON format\n -a, --app <app_name> Selects the app to pull your environment changes from. Defaults to the app synced to the current directory, if there is one.\n -e, --env, --from <env_name> Selects the environment to pull changes from. Defaults to the environment synced to the current directory, if there is one.\n\n {gray Examples}\n Stream all user logs from your development environment\n {cyanBright $ ggt logs --env development --my-logs}\n\n Stream all logs from your production environment in JSON format\n {cyanBright $ ggt logs --env production --json}\n `;\n};\n\nexport const run: Run<LogsArgs> = async (ctx, args) => {\n if (args._.length > 0) {\n throw new ArgError(sprint`\n \"ggt logs\" does not take any positional arguments.\n\n If you are trying to print logs for an app in specific directory,\n you must \"cd\" to that directory and then run \"ggt logs\".\n\n Run \"ggt logs -h\" for more information.\n `);\n }\n\n const directory = await loadSyncJsonDirectory(process.cwd());\n const appIdentity = await AppIdentity.load(ctx, { command: \"pull\", args, directory });\n\n const logsSubscription = subscribeToEnvironmentLogs(appIdentity.edit, args, {\n onError: (error) => {\n ctx.abort(error);\n },\n });\n\n ctx.onAbort((reason) => {\n ctx.log.info(\"stopping\", { reason });\n logsSubscription.unsubscribe();\n });\n};\n"],
|
|
5
|
-
"mappings": "0cAAAA,IAYO,IAAMC,EAAO,CAClB,GAAGC,EACH,GAAGC,CACL,EAEaC,EAAeC,EAACC,GACpBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADmB,SAuBfC,EAAqBH,EAAA,MAAOI,EAAKR,IAAS,CACrD,GAAIA,EAAK,EAAE,OAAS,EAClB,MAAM,IAAIS,EAASH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOlB,EAGH,IAAMI,EAAY,MAAMC,EAAsB,QAAQ,IAAI,CAAC,EACrDC,EAAc,MAAMC,EAAY,KAAKL,EAAK,CAAE,QAAS,OAAQ,KAAAR,EAAM,UAAAU,CAAU,CAAC,EAE9EI,EAAmBC,EAA2BH,EAAY,KAAMZ,EAAM,CAC1E,QAASI,EAACY,GAAU,CAClBR,EAAI,MAAMQ,CAAK,CACjB,EAFS,UAGX,CAAC,EAEDR,EAAI,QAASS,GAAW,CACtBT,EAAI,IAAI,KAAK,WAAY,CAAE,OAAAS,CAAO,CAAC,EACnCH,EAAiB,YAAY,CAC/B,CAAC,CACH,EAzBkC",
|
|
6
|
-
"names": ["init_cjs", "args", "AppIdentityArgs", "LoggingArgs", "usage", "__name", "_ctx", "sprint", "run", "ctx", "ArgError", "directory", "loadSyncJsonDirectory", "appIdentity", "AppIdentity", "logsSubscription", "subscribeToEnvironmentLogs", "error", "reason"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/open.ts"],
|
|
4
|
-
"sourcesContent": ["import open from \"open\";\n\nimport type { Run, Usage } from \"../services/command/command.js\";\n\nimport { getModels } from \"../services/app/app.js\";\nimport { AppIdentity, AppIdentityArgs } from \"../services/command/app-identity.js\";\nimport { ArgError } from \"../services/command/arg.js\";\nimport { loadSyncJsonDirectory } from \"../services/filesync/sync-json.js\";\nimport { println } from \"../services/output/print.js\";\nimport { select } from \"../services/output/select.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { sortBySimilar } from \"../services/util/collection.js\";\nimport { isNever } from \"../services/util/is.js\";\n\nexport type OpenArgs = typeof args;\n\nexport const args = {\n ...AppIdentityArgs,\n \"--show-all\": { type: Boolean },\n};\n\nexport const usage: Usage = (_ctx) => {\n return sprint`\n This command opens a specific Gadget page in your browser, allowing you to directly access\n various parts of your application's interface such as logs, permissions, data views, or\n schemas.\n\n {gray Usage}\n ggt open [LOCATION] [model_name] [--show-all] [options]\n\n LOCATION: specifies the part of Gadget to open, by default it'll open the apps home page:\n\n + logs Opens logs\n + permissions Opens permissions\n + data Opens data editor for a specific model\n + schema Opens schema editor for a specific model\n\n {gray Options}\n -a, --app <app_name> Selects the application to open in your browser. Defaults to the app synced to the current directory, if there is one.\n -e, --env <env_name> Selects the environment to open in your browser. Defaults to the environment synced to the current directory, if there is one.\n --show-all Shows all schema, or data options by listing your available models\n\n {gray Examples}\n Opens editor home\n {cyanBright $ ggt open}\n\n Opens logs\n {cyanBright $ ggt open logs}\n\n Opens permissions\n {cyanBright $ ggt open permissions}\n\n Opens data editor for the 'post' model\n {cyanBright $ ggt open data post}\n\n Opens schema for 'post' model\n {cyanBright $ ggt open schema post}\n\n Shows all models available in the data editor\n {cyanBright $ ggt open data -show-all}\n\n Shows all models available in the schema viewer\n {cyanBright $ ggt open schema --show-all}\n\n Opens data editor for 'post' model of app 'myBlog' in the 'staging' environment\n {cyanBright $ ggt open data post --app myBlog --env staging}\n `;\n};\n\nexport const run: Run<OpenArgs> = async (ctx, args) => {\n const directory = await loadSyncJsonDirectory(process.cwd());\n const appIdentity = await AppIdentity.load(ctx, { command: \"open\", args, directory });\n\n const location = args._[0] as Location | undefined;\n if (!location) {\n await open(`https://${appIdentity.environment.application.primaryDomain}/edit/${appIdentity.environment.name}`);\n println`\n Opened editor for environment {cyanBright ${appIdentity.environment.name}}.\n `;\n return;\n }\n\n if (!Locations.includes(location)) {\n const [closest] = sortBySimilar(location, Locations);\n throw new ArgError(sprint`\n Unknown location {yellow ${location}}\n\n Did you mean {blueBright ${closest}}?\n\n Run \"ggt open --help\" for usage\n `);\n }\n\n switch (location) {\n case \"logs\": {\n await open(`https://${appIdentity.environment.application.primaryDomain}/edit/${appIdentity.environment.name}/logs`);\n println`\n Opened log viewer for environment {cyanBright ${appIdentity.environment.name}}.\n `;\n break;\n }\n case \"permissions\": {\n await open(`https://${appIdentity.environment.application.primaryDomain}/edit/${appIdentity.environment.name}/settings/permissions`);\n println`\n Opened permissions settings for environment {cyanBright ${appIdentity.environment.name}}.\n `;\n break;\n }\n case \"data\":\n case \"schema\": {\n const view = args._[0];\n const remoteModelApiIdentifiers = (await getModels(ctx, appIdentity.environment)).map((e) => e.apiIdentifier);\n\n let modelApiIdentifier = args._[1];\n if (!modelApiIdentifier) {\n if (args[\"--show-all\"]) {\n modelApiIdentifier = await select({ choices: remoteModelApiIdentifiers, content: \"Which model do you wish to open?\" });\n } else {\n throw new ArgError(sprint`\n \"ggt open ${view}\" requires a model to be specified.\n\n Run with \"--show-all\" to choose from available models.\n\n ggt open ${view} --show-all\n `);\n }\n }\n\n if (!remoteModelApiIdentifiers.includes(modelApiIdentifier)) {\n const [closest] = sortBySimilar(modelApiIdentifier, remoteModelApiIdentifiers);\n throw new ArgError(sprint`\n Unknown model {yellow ${modelApiIdentifier}}\n\n Did you mean {blueBright ${closest}}?\n\n Run with \"--show-all\" to choose from available models.\n\n ggt open ${view} --show-all\n `);\n }\n\n await open(\n `https://${appIdentity.environment.application.primaryDomain}/edit/${appIdentity.environment.name}/model/${modelApiIdentifier}/${view}`,\n );\n println`\n Opened ${view} viewer for environment {cyanBright ${appIdentity.environment.name}} for model {cyanBright ${modelApiIdentifier}}.\n `;\n break;\n }\n default:\n isNever(location);\n }\n};\n\nconst Locations = [\"logs\", \"permissions\", \"data\", \"schema\"] as const;\n\ntype Location = (typeof Locations)[number];\n"],
|
|
5
|
-
"mappings": "0aAAAA,IAgBO,IAAMC,EAAO,CAClB,GAAGC,EACH,aAAc,CAAE,KAAM,OAAQ,CAChC,EAEaC,EAAeC,EAACC,GACpBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADmB,SAgDfC,EAAqBH,EAAA,MAAOI,EAAKP,IAAS,CACrD,IAAMQ,EAAY,MAAMC,EAAsB,QAAQ,IAAI,CAAC,EACrDC,EAAc,MAAMC,EAAY,KAAKJ,EAAK,CAAE,QAAS,OAAQ,KAAAP,EAAM,UAAAQ,CAAU,CAAC,EAE9EI,EAAWZ,EAAK,EAAE,CAAC,EACzB,GAAI,CAACY,EAAU,CACb,MAAMC,EAAK,WAAWH,EAAY,YAAY,YAAY,aAAa,SAASA,EAAY,YAAY,IAAI,EAAE,EAC9GI;AAAA,kDAC8CJ,EAAY,YAAY,IAAI;AAAA,MAE1E,MACF,CAEA,GAAI,CAACK,EAAU,SAASH,CAAQ,EAAG,CACjC,GAAM,CAACI,CAAO,EAAIC,EAAcL,EAAUG,CAAS,EACnD,MAAM,IAAIG,EAASb;AAAA,iCACUO,CAAQ;AAAA;AAAA,iCAERI,CAAO;AAAA;AAAA;AAAA,KAGnC,CACH,CAEA,OAAQJ,EAAU,CAChB,IAAK,OAAQ,CACX,MAAMC,EAAK,WAAWH,EAAY,YAAY,YAAY,aAAa,SAASA,EAAY,YAAY,IAAI,OAAO,EACnHI;AAAA,wDACkDJ,EAAY,YAAY,IAAI;AAAA,QAE9E,KACF,CACA,IAAK,cAAe,CAClB,MAAMG,EAAK,WAAWH,EAAY,YAAY,YAAY,aAAa,SAASA,EAAY,YAAY,IAAI,uBAAuB,EACnII;AAAA,kEAC4DJ,EAAY,YAAY,IAAI;AAAA,QAExF,KACF,CACA,IAAK,OACL,IAAK,SAAU,CACb,IAAMS,EAAOnB,EAAK,EAAE,CAAC,EACfoB,GAA6B,MAAMC,EAAUd,EAAKG,EAAY,WAAW,GAAG,IAAKY,GAAMA,EAAE,aAAa,EAExGC,EAAqBvB,EAAK,EAAE,CAAC,EACjC,GAAI,CAACuB,EACH,GAAIvB,EAAK,YAAY,EACnBuB,EAAqB,MAAMC,EAAO,CAAE,QAASJ,EAA2B,QAAS,kCAAmC,CAAC,MAErH,OAAM,IAAIF,EAASb;AAAA,wBACLc,CAAI;AAAA;AAAA;AAAA;AAAA,yBAIHA,CAAI;AAAA,WAClB,EAIL,GAAI,CAACC,EAA0B,SAASG,CAAkB,EAAG,CAC3D,GAAM,CAACP,CAAO,EAAIC,EAAcM,EAAoBH,CAAyB,EAC7E,MAAM,IAAIF,EAASb;AAAA,kCACOkB,CAAkB;AAAA;AAAA,qCAEfP,CAAO;AAAA;AAAA;AAAA;AAAA,uBAIrBG,CAAI;AAAA,SAClB,CACH,CAEA,MAAMN,EACJ,WAAWH,EAAY,YAAY,YAAY,aAAa,SAASA,EAAY,YAAY,IAAI,UAAUa,CAAkB,IAAIJ,CAAI,EACvI,EACAL;AAAA,iBACWK,CAAI,uCAAuCT,EAAY,YAAY,IAAI,2BAA2Ba,CAAkB;AAAA,QAE/H,KACF,CACA,QACEE,EAAQb,CAAQ,CACpB,CACF,EAnFkC,OAqF5BG,EAAY,CAAC,OAAQ,cAAe,OAAQ,QAAQ",
|
|
6
|
-
"names": ["init_cjs", "args", "AppIdentityArgs", "usage", "__name", "_ctx", "sprint", "run", "ctx", "directory", "loadSyncJsonDirectory", "appIdentity", "AppIdentity", "location", "open_default", "println", "Locations", "closest", "sortBySimilar", "ArgError", "view", "remoteModelApiIdentifiers", "getModels", "e", "modelApiIdentifier", "select", "isNever"]
|
|
7
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import{n as l}from"./chunk-ZSREFZXV.js";import{c as m,d as a,n as g,o as u,r as y}from"./chunk-XC4F2TLW.js";import{c as p}from"./chunk-T6UHSWMT.js";import"./chunk-DR4CXBD6.js";import"./chunk-ZYDMXS5R.js";import"./chunk-442CSROP.js";import"./chunk-F255O64V.js";import"./chunk-HCULGPBH.js";import"./chunk-OUIZQC4D.js";import{ra as o,ta as e}from"./chunk-JG2QCDK2.js";import"./chunk-GFQYFEEH.js";import{a as r,h as i}from"./chunk-7DYQUG5M.js";i();var R=g,S=r(()=>o`
|
|
2
|
-
Shows any problems (errors, warnings) found in your Gadget application.
|
|
3
|
-
|
|
4
|
-
{gray Usage}
|
|
5
|
-
ggt problems
|
|
6
|
-
`,"usage"),U=r(async(c,t)=>{if(t._.length>0)throw new p(o`
|
|
7
|
-
"ggt problems" does not take any positional arguments.
|
|
8
|
-
|
|
9
|
-
If you are trying to see the problems of a specific directory,
|
|
10
|
-
you must "cd" to that directory and then run "ggt problems".
|
|
11
|
-
|
|
12
|
-
Run "ggt problems -h" for more information.
|
|
13
|
-
`);let d=await y(process.cwd()),s=await u.load(c,{command:"problems",args:t,directory:d}),{publishIssues:n}=await s.edit.query({query:l});n.length===0?e({ensureEmptyLineAbove:!0,content:o`{green No problems found.}`}):(e({ensureEmptyLineAbove:!0,content:o`{bold.yellow !} {bold Problems found in your app}`}),m({problems:a(n)})),await s.edit.dispose()},"run");export{R as args,U as run,S as usage};
|
|
14
|
-
//# sourceMappingURL=problems-FZJKH52E.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/problems.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Run, Usage } from \"../services/command/command.js\";\n\nimport { PUBLISH_ISSUES_QUERY } from \"../services/app/edit/operation.js\";\nimport { AppIdentity, AppIdentityArgs } from \"../services/command/app-identity.js\";\nimport { ArgError, type ArgsDefinitionResult } from \"../services/command/arg.js\";\nimport { loadSyncJsonDirectory } from \"../services/filesync/sync-json.js\";\nimport { println } from \"../services/output/print.js\";\nimport { printProblems, publishIssuesToProblems } from \"../services/output/problems.js\";\nimport { sprint } from \"../services/output/sprint.js\";\n\nexport type ProblemsArgs = typeof args;\nexport type ProblemsArgsResult = ArgsDefinitionResult<ProblemsArgs>;\n\nexport const args = AppIdentityArgs;\n\nexport const usage: Usage = () => {\n return sprint`\n Shows any problems (errors, warnings) found in your Gadget application.\n\n {gray Usage}\n ggt problems\n `;\n};\n\nexport const run: Run<ProblemsArgs> = async (ctx, args) => {\n if (args._.length > 0) {\n throw new ArgError(sprint`\n \"ggt problems\" does not take any positional arguments.\n\n If you are trying to see the problems of a specific directory,\n you must \"cd\" to that directory and then run \"ggt problems\".\n\n Run \"ggt problems -h\" for more information.\n `);\n }\n\n const directory = await loadSyncJsonDirectory(process.cwd());\n const appIdentity = await AppIdentity.load(ctx, { command: \"problems\", args, directory });\n\n const { publishIssues } = await appIdentity.edit.query({ query: PUBLISH_ISSUES_QUERY });\n\n if (publishIssues.length === 0) {\n println({ ensureEmptyLineAbove: true, content: sprint`{green No problems found.}` });\n } else {\n println({ ensureEmptyLineAbove: true, content: sprint`{bold.yellow !} {bold Problems found in your app}` });\n printProblems({ problems: publishIssuesToProblems(publishIssues) });\n }\n\n await appIdentity.edit.dispose();\n};\n"],
|
|
5
|
-
"mappings": "wbAAAA,IAaO,IAAMC,EAAOC,EAEPC,EAAeC,EAAA,IACnBC;AAAA;AAAA;AAAA;AAAA;AAAA,IADmB,SASfC,EAAyBF,EAAA,MAAOG,EAAKN,IAAS,CACzD,GAAIA,EAAK,EAAE,OAAS,EAClB,MAAM,IAAIO,EAASH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOlB,EAGH,IAAMI,EAAY,MAAMC,EAAsB,QAAQ,IAAI,CAAC,EACrDC,EAAc,MAAMC,EAAY,KAAKL,EAAK,CAAE,QAAS,WAAY,KAAAN,EAAM,UAAAQ,CAAU,CAAC,EAElF,CAAE,cAAAI,CAAc,EAAI,MAAMF,EAAY,KAAK,MAAM,CAAE,MAAOG,CAAqB,CAAC,EAElFD,EAAc,SAAW,EAC3BE,EAAQ,CAAE,qBAAsB,GAAM,QAASV,6BAAmC,CAAC,GAEnFU,EAAQ,CAAE,qBAAsB,GAAM,QAASV,oDAA0D,CAAC,EAC1GW,EAAc,CAAE,SAAUC,EAAwBJ,CAAa,CAAE,CAAC,GAGpE,MAAMF,EAAY,KAAK,QAAQ,CACjC,EAzBsC",
|
|
6
|
-
"names": ["init_cjs", "args", "AppIdentityArgs", "usage", "__name", "sprint", "run", "ctx", "ArgError", "directory", "loadSyncJsonDirectory", "appIdentity", "AppIdentity", "publishIssues", "PUBLISH_ISSUES_QUERY", "println", "printProblems", "publishIssuesToProblems"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/pull.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Run, Usage } from \"../services/command/command.js\";\n\nimport { ArgError, type ArgsDefinition } from \"../services/command/arg.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 { sprint } from \"../services/output/sprint.js\";\n\nexport type PullArgs = typeof args;\n\nexport const args = {\n ...SyncJsonArgs,\n \"--env\": { type: String, alias: [\"-e\", \"--environment\", \"--from\"] },\n \"--force\": { type: Boolean, alias: \"-f\" },\n} satisfies ArgsDefinition;\n\nexport const usage: Usage = (_ctx) => {\n return sprint`\n Pulls your environment files to your local directory.\n\n This command first tracks changes in your local directory since the last sync. If changes are\n detected, you will be prompted to discard them or abort the pull.\n\n {gray Usage}\n ggt pull [options]\n\n {gray Options}\n -a, --app <app_name> Selects the app to pull your environment changes from. Defaults to the app synced to the current directory, if there is one.\n -e, --env, --from <env_name> Selects the environment to pull changes from. Defaults to the environment synced to the current directory, if there is one.\n --force Forces a pull by discarding any changes made on your local directory since last sync\n --allow-different-directory Pulls changes from any environment directory, even if the directory hasn't been synced before\n --allow-different-app Pulls changes to a different app using --app command, instead of the most recently synced one in the current directory\n\n {gray Examples}\n Pull all development environment changes by discarding any changes made locally\n {cyanBright $ ggt pull --env development --force}\n `;\n};\n\nexport const run: Run<PullArgs> = async (ctx, args) => {\n if (args._.length > 0) {\n throw new ArgError(sprint`\n \"ggt pull\" does not take any positional arguments.\n\n If you are trying to pull changes to a specific directory,\n you must \"cd\" to that directory and then run \"ggt pull\".\n\n Run \"ggt pull -h\" for more information.\n `);\n }\n\n const directory = await loadSyncJsonDirectory(process.cwd());\n const syncJson = await SyncJson.loadOrAskAndInit(ctx, { command: \"pull\", args, directory });\n const filesync = new FileSync(syncJson);\n const hashes = await filesync.hashes(ctx);\n\n if (hashes.environmentChangesToPull.size === 0) {\n println({ ensureEmptyLineAbove: true, content: \"Nothing to pull.\" });\n return;\n }\n\n if (hashes.localChangesToPush.size > 0) {\n // show them the local changes they will discard\n await filesync.print(ctx, { hashes });\n }\n\n await filesync.pull(ctx, { hashes, force: args[\"--force\"] });\n};\n"],
|
|
5
|
-
"mappings": "0hBAAAA,IAUO,IAAMC,EAAO,CAClB,GAAGC,EACH,QAAS,CAAE,KAAM,OAAQ,MAAO,CAAC,KAAM,gBAAiB,QAAQ,CAAE,EAClE,UAAW,CAAE,KAAM,QAAS,MAAO,IAAK,CAC1C,EAEaC,EAAeC,EAACC,GACpBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADmB,SAuBfC,EAAqBH,EAAA,MAAOI,EAAKP,IAAS,CACrD,GAAIA,EAAK,EAAE,OAAS,EAClB,MAAM,IAAIQ,EAASH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOlB,EAGH,IAAMI,EAAY,MAAMC,EAAsB,QAAQ,IAAI,CAAC,EACrDC,EAAW,MAAMC,EAAS,iBAAiBL,EAAK,CAAE,QAAS,OAAQ,KAAAP,EAAM,UAAAS,CAAU,CAAC,EACpFI,EAAW,IAAIC,EAASH,CAAQ,EAChCI,EAAS,MAAMF,EAAS,OAAON,CAAG,EAExC,GAAIQ,EAAO,yBAAyB,OAAS,EAAG,CAC9CC,EAAQ,CAAE,qBAAsB,GAAM,QAAS,kBAAmB,CAAC,EACnE,MACF,CAEID,EAAO,mBAAmB,KAAO,GAEnC,MAAMF,EAAS,MAAMN,EAAK,CAAE,OAAAQ,CAAO,CAAC,EAGtC,MAAMF,EAAS,KAAKN,EAAK,CAAE,OAAAQ,EAAQ,MAAOf,EAAK,SAAS,CAAE,CAAC,CAC7D,EA5BkC",
|
|
6
|
-
"names": ["init_cjs", "args", "SyncJsonArgs", "usage", "__name", "_ctx", "sprint", "run", "ctx", "ArgError", "directory", "loadSyncJsonDirectory", "syncJson", "SyncJson", "filesync", "FileSync", "hashes", "println"]
|
|
7
|
-
}
|
package/dist/push-3QM7ZFTC.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a,b,c}from"./chunk-R6KJLEKY.js";import"./chunk-SIR6HLN3.js";import"./chunk-JKZNSRLU.js";import"./chunk-WB6O2V5D.js";import"./chunk-L2XBSR7G.js";import"./chunk-ZSREFZXV.js";import"./chunk-XC4F2TLW.js";import"./chunk-T6UHSWMT.js";import"./chunk-DR4CXBD6.js";import"./chunk-ZYDMXS5R.js";import"./chunk-442CSROP.js";import"./chunk-F255O64V.js";import"./chunk-HCULGPBH.js";import"./chunk-OUIZQC4D.js";import"./chunk-JG2QCDK2.js";import"./chunk-GFQYFEEH.js";import"./chunk-7DYQUG5M.js";export{a as args,c as run,b as usage};
|
|
2
|
-
//# sourceMappingURL=push-3QM7ZFTC.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/status.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Run, Usage } from \"../services/command/command.js\";\n\nimport { ArgError, type ArgsDefinitionResult } from \"../services/command/arg.js\";\nimport { getConflicts, printConflicts } from \"../services/filesync/conflicts.js\";\nimport { getDevStatus } from \"../services/filesync/dev-lock.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 { sprint } from \"../services/output/sprint.js\";\n\nexport type StatusArgs = typeof args;\nexport type StatusArgsResult = ArgsDefinitionResult<StatusArgs>;\n\nexport const args = SyncJsonArgs;\n\nexport const usage: Usage = () => {\n return sprint`\n Shows file changes since last sync (e.g. $ggt dev, push, deploy etc.)\n\n {gray Usage}\n ggt status\n `;\n};\n\nexport const run: Run<StatusArgs> = async (ctx, args) => {\n if (args._.length > 0) {\n throw new ArgError(sprint`\n \"ggt status\" does not take any positional arguments.\n\n If you are trying to see the status of a specific directory,\n you must \"cd\" to that directory and then run \"ggt status\".\n\n Run \"ggt status -h\" for more information.\n `);\n }\n\n const directory = await loadSyncJsonDirectory(process.cwd());\n const syncJson = await SyncJson.load(ctx, { command: \"status\", args, directory });\n if (!syncJson) {\n throw new UnknownDirectoryError({ command: \"status\", args, directory });\n }\n\n syncJson.print();\n\n const devStatus = await getDevStatus(syncJson.directory);\n if (devStatus.running) {\n println({\n ensureEmptyLineAbove: true,\n content: sprint`{green ggt dev} is running (PID ${String(devStatus.pid)}, started ${devStatus.startedAt})`,\n });\n } else {\n println({ ensureEmptyLineAbove: true, content: sprint`{gray ggt dev} is not running.` });\n }\n\n const filesync = new FileSync(syncJson);\n const hashes = await filesync.hashes(ctx);\n await filesync.print(ctx, { hashes });\n\n const conflicts = getConflicts({ localChanges: hashes.localChanges, environmentChanges: hashes.environmentChanges });\n if (conflicts.size > 0) {\n ctx.log.debug(\"conflicts detected\", { conflicts });\n printConflicts({ conflicts });\n }\n};\n"],
|
|
5
|
-
"mappings": "klBAAAA,IAcO,IAAMC,EAAOC,EAEPC,EAAeC,EAAA,IACnBC;AAAA;AAAA;AAAA;AAAA;AAAA,IADmB,SASfC,EAAuBF,EAAA,MAAOG,EAAKN,IAAS,CACvD,GAAIA,EAAK,EAAE,OAAS,EAClB,MAAM,IAAIO,EAASH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOlB,EAGH,IAAMI,EAAY,MAAMC,EAAsB,QAAQ,IAAI,CAAC,EACrDC,EAAW,MAAMC,EAAS,KAAKL,EAAK,CAAE,QAAS,SAAU,KAAAN,EAAM,UAAAQ,CAAU,CAAC,EAChF,GAAI,CAACE,EACH,MAAM,IAAIE,EAAsB,CAAE,QAAS,SAAU,KAAAZ,EAAM,UAAAQ,CAAU,CAAC,EAGxEE,EAAS,MAAM,EAEf,IAAMG,EAAY,MAAMC,EAAaJ,EAAS,SAAS,EACnDG,EAAU,QACZE,EAAQ,CACN,qBAAsB,GACtB,QAASX,oCAAyC,OAAOS,EAAU,GAAG,CAAC,aAAaA,EAAU,SAAS,GACzG,CAAC,EAEDE,EAAQ,CAAE,qBAAsB,GAAM,QAASX,iCAAuC,CAAC,EAGzF,IAAMY,EAAW,IAAIC,EAASP,CAAQ,EAChCQ,EAAS,MAAMF,EAAS,OAAOV,CAAG,EACxC,MAAMU,EAAS,MAAMV,EAAK,CAAE,OAAAY,CAAO,CAAC,EAEpC,IAAMC,EAAYC,EAAa,CAAE,aAAcF,EAAO,aAAc,mBAAoBA,EAAO,kBAAmB,CAAC,EAC/GC,EAAU,KAAO,IACnBb,EAAI,IAAI,MAAM,qBAAsB,CAAE,UAAAa,CAAU,CAAC,EACjDE,EAAe,CAAE,UAAAF,CAAU,CAAC,EAEhC,EAvCoC",
|
|
6
|
-
"names": ["init_cjs", "args", "SyncJsonArgs", "usage", "__name", "sprint", "run", "ctx", "ArgError", "directory", "loadSyncJsonDirectory", "syncJson", "SyncJson", "UnknownDirectoryError", "devStatus", "getDevStatus", "println", "filesync", "FileSync", "hashes", "conflicts", "getConflicts", "printConflicts"]
|
|
7
|
-
}
|
package/dist/update-QIQFJFRQ.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a,b,c}from"./chunk-JYE5LLIF.js";import"./chunk-3OM5WM7E.js";import"./chunk-442CSROP.js";import"./chunk-F255O64V.js";import"./chunk-HCULGPBH.js";import"./chunk-OUIZQC4D.js";import"./chunk-JG2QCDK2.js";import"./chunk-GFQYFEEH.js";import"./chunk-7DYQUG5M.js";export{a as getDistTags,b as shouldCheckForUpdate,c as warnIfUpdateAvailable};
|
|
2
|
-
//# sourceMappingURL=update-QIQFJFRQ.js.map
|
package/dist/var-N4WGGJXZ.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/var.ts"],
|
|
4
|
-
"sourcesContent": ["import fs from \"fs-extra\";\n\nimport type { Run, Usage } from \"../services/command/command.js\";\nimport type { Context } from \"../services/command/context.js\";\n\nimport { Edit } from \"../services/app/edit/edit.js\";\nimport {\n DELETE_ENVIRONMENT_VARIABLE_MUTATION,\n ENVIRONMENT_VARIABLES_QUERY,\n SET_ENVIRONMENT_VARIABLE_MUTATION,\n} from \"../services/app/edit/operation.js\";\nimport { ClientError } from \"../services/app/error.js\";\nimport { AppIdentity, AppIdentityArgs } from \"../services/command/app-identity.js\";\nimport { ArgError, parseArgs, type ArgsDefinition, type ParseArgsOptions } from \"../services/command/arg.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\";\n\nexport const args = {\n ...AppIdentityArgs,\n} satisfies ArgsDefinition;\n\nexport const parseOptions: ParseArgsOptions = { permissive: true };\n\nexport const usage: Usage = () => {\n return sprint`\n Manage environment variables for your Gadget application.\n\n {gray Usage}\n ggt var <command> [options]\n\n {gray Commands}\n list List all environment variables\n get <key> Get the value of an environment variable\n set <key=value> Set one or more environment variables\n delete <key> Delete one or more environment variables\n import Import environment variables from another environment or file\n\n {gray Options}\n -a, --app <app_name> Selects the application\n -e, --env <env_name> Selects the environment\n\n Run \"ggt var <command> -h\" for more information about a specific command.\n `;\n};\n\nconst listUsage = (): string => {\n return sprint`\n List all environment variables.\n\n {gray Usage}\n ggt var list [options]\n\n {gray Options}\n -a, --app <app_name> Selects the application\n -e, --env <env_name> Selects the environment\n\n {gray Examples}\n {cyanBright $ ggt var list --app=myapp --env=development}\n `;\n};\n\nconst getUsage = (): string => {\n return sprint`\n Get the value of an environment variable.\n\n {gray Usage}\n ggt var get <key> [options]\n\n {gray Options}\n -a, --app <app_name> Selects the application\n -e, --env <env_name> Selects the environment\n\n {gray Examples}\n {cyanBright $ ggt var get DATABASE_URL --app=myapp --env=development}\n `;\n};\n\nconst setUsage = (): string => {\n return sprint`\n Set one or more environment variables.\n\n {gray Usage}\n ggt var set <key=value> [key=value ...] [options]\n\n {gray Options}\n --secret Mark the variable(s) as secret\n -a, --app <app_name> Selects the application\n -e, --env <env_name> Selects the environment\n\n {gray Examples}\n {cyanBright $ ggt var set API_KEY=abc123 --app=myapp --env=development}\n {cyanBright $ ggt var set SECRET_KEY=xyz --secret --app=myapp --env=development}\n {cyanBright $ ggt var set KEY1=val1 KEY2=val2}\n `;\n};\n\nconst deleteUsage = (): string => {\n return sprint`\n Delete one or more environment variables.\n\n {gray Usage}\n ggt var delete <key> [key ...] [options]\n\n {gray Options}\n -f, --force Skip confirmation and suppress not-found errors\n --all Delete all environment variables\n -a, --app <app_name> Selects the application\n -e, --env <env_name> Selects the environment\n\n {gray Examples}\n {cyanBright $ ggt var delete API_KEY --app=myapp --env=development}\n {cyanBright $ ggt var delete --all --force --app=myapp --env=development}\n `;\n};\n\nconst importUsage = (): string => {\n return sprint`\n Import environment variables from another environment or a file.\n\n {gray Usage}\n ggt var import [options] [key ...]\n\n {gray Options}\n --from <env> Import from another environment\n --from-file <path> Import from a .env file\n --include-values Copy values when importing from another environment\n --all Import all variables (instead of specifying keys)\n -a, --app <app_name> Selects the target application\n -e, --env <env_name> Selects the target environment\n\n {gray Examples}\n Import all vars from staging as placeholders\n {cyanBright $ ggt var import --from=staging --all --app=myapp --env=development}\n\n Import specific vars with values from staging\n {cyanBright $ ggt var import --from=staging --include-values API_KEY DATABASE_URL}\n\n Import from a .env file\n {cyanBright $ ggt var import --from-file=.env.example --all}\n `;\n};\n\nconst subcommandUsage = (subcommand: string | undefined): string => {\n switch (subcommand) {\n case \"list\":\n return listUsage();\n case \"get\":\n return getUsage();\n case \"set\":\n return setUsage();\n case \"delete\":\n return deleteUsage();\n case \"import\":\n return importUsage();\n default:\n // usage() doesn't use ctx, but satisfies the Usage type signature\n return usage(undefined!); // oxlint-disable-line\n }\n};\n\nconst setArgs = {\n \"--secret\": { type: Boolean },\n} satisfies ArgsDefinition;\n\nconst deleteArgs = {\n \"--force\": { type: Boolean, alias: \"-f\" },\n \"--all\": { type: Boolean },\n} satisfies ArgsDefinition;\n\nconst importArgs = {\n \"--from\": { type: String },\n \"--from-file\": { type: String },\n \"--include-values\": { type: Boolean },\n \"--all\": { type: Boolean },\n} satisfies ArgsDefinition;\n\nexport const run: Run<typeof args> = async (ctx, args) => {\n const subcommand = args._.shift();\n\n // handle -h/--help for subcommand-specific help\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\", \"get\", \"set\", \"delete\", \"import\"];\n if (!validSubcommands.includes(subcommand)) {\n throw new ArgError(sprint`\n Unknown subcommand {yellow ${subcommand}}\n\n Run {gray ggt var -h} for usage\n `);\n }\n\n const directory = await loadSyncJsonDirectory(process.cwd());\n const appIdentity = await AppIdentity.load(ctx, { command: \"var\", args, directory });\n\n switch (subcommand) {\n case \"list\":\n await runList(appIdentity);\n break;\n case \"get\":\n await runGet(appIdentity, args._);\n break;\n case \"set\":\n await runSet(appIdentity, args._);\n break;\n case \"delete\":\n await runDelete(appIdentity, args._);\n break;\n case \"import\":\n await runImport(ctx, appIdentity, args._);\n break;\n }\n};\n\nconst runList = async (appIdentity: AppIdentity): Promise<void> => {\n const data = await appIdentity.edit.query({ query: ENVIRONMENT_VARIABLES_QUERY });\n const vars = data.environmentVariables;\n\n if (vars.length === 0) {\n println(\"No environment variables found.\");\n return;\n }\n\n for (const v of vars) {\n println(v.key);\n }\n};\n\nconst runGet = async (appIdentity: AppIdentity, positional: string[]): Promise<void> => {\n const key = positional.shift();\n if (!key) {\n throw new ArgError(sprint`\n Missing required argument: key\n\n Run {gray ggt var get -h} for usage\n `);\n }\n\n const data = await appIdentity.edit.query({ query: ENVIRONMENT_VARIABLES_QUERY });\n const envVar = data.environmentVariables.find((v) => v.key === key);\n\n if (!envVar) {\n throw new ArgError(sprint`\n Environment variable not found: ${key}\n `);\n }\n\n if (envVar.isSecret) {\n throw new ArgError(sprint`\n ${key} is a secret and its value cannot be read\n `);\n }\n\n println(envVar.value ?? \"\");\n};\n\nconst runSet = async (appIdentity: AppIdentity, positional: string[]): Promise<void> => {\n const subArgs = parseArgs(setArgs, { argv: positional });\n const pairs = subArgs._;\n const isSecret = subArgs[\"--secret\"] ?? false;\n\n if (pairs.length === 0) {\n throw new ArgError(sprint`\n Missing required argument: key=value\n\n Run {gray ggt var set -h} for usage\n `);\n }\n\n const parsed: { key: string; value: string }[] = [];\n for (const pair of pairs) {\n const eqIndex = pair.indexOf(\"=\");\n if (eqIndex === -1) {\n throw new ArgError(sprint`\n Invalid format: ${pair}\n\n Expected format: KEY=value\n `);\n }\n const key = pair.slice(0, eqIndex);\n if (!key) {\n throw new ArgError(sprint`\n Invalid format: ${pair}\n\n Expected format: KEY=value\n `);\n }\n parsed.push({\n key,\n value: pair.slice(eqIndex + 1),\n });\n }\n\n for (const { key, value } of parsed) {\n await appIdentity.edit.mutate({\n mutation: SET_ENVIRONMENT_VARIABLE_MUTATION,\n variables: { input: { key, value, isSecret } },\n });\n }\n\n const keys = parsed.map((p) => p.key).join(\", \");\n println(`${symbol.tick} Set ${keys}`);\n};\n\nconst runDelete = async (appIdentity: AppIdentity, positional: string[]): Promise<void> => {\n const subArgs = parseArgs(deleteArgs, { argv: positional });\n const keys = subArgs._;\n const force = subArgs[\"--force\"] ?? false;\n const all = subArgs[\"--all\"] ?? false;\n\n let keysToDelete: string[];\n\n if (all) {\n const data = await appIdentity.edit.query({ query: ENVIRONMENT_VARIABLES_QUERY });\n const vars = data.environmentVariables;\n\n if (vars.length === 0) {\n println(\"No environment variables to delete.\");\n return;\n }\n\n keysToDelete = vars.map((v) => v.key);\n\n if (!force) {\n println`\n The following environment variables will be deleted:\n\n ${keysToDelete.map((k) => `\u2022 ${k}`).join(\"\\n \")}\n `;\n await confirm(\"Are you sure you want to delete all environment variables?\");\n }\n } else {\n if (keys.length === 0) {\n throw new ArgError(sprint`\n Missing required argument: key\n\n Run {gray ggt var delete -h} for usage\n `);\n }\n\n keysToDelete = keys;\n\n if (!force) {\n await confirm(`Are you sure you want to delete ${keysToDelete.join(\", \")}?`);\n }\n }\n\n for (const key of keysToDelete) {\n try {\n await appIdentity.edit.mutate({\n mutation: DELETE_ENVIRONMENT_VARIABLE_MUTATION,\n variables: { key },\n });\n } catch (error) {\n const isNotFound =\n error instanceof ClientError &&\n Array.isArray(error.cause) &&\n error.cause.every((e: unknown) => typeof e === \"object\" && e !== null && \"message\" in e && /not found/i.test(String(e.message)));\n\n if (force && isNotFound) {\n // suppress not-found errors when --force is used\n continue;\n }\n throw error;\n }\n }\n\n println(`${symbol.tick} Deleted ${keysToDelete.join(\", \")}`);\n};\n\nconst runImport = async (ctx: Context, appIdentity: AppIdentity, positional: string[]): Promise<void> => {\n const subArgs = parseArgs(importArgs, { argv: positional });\n const from = subArgs[\"--from\"];\n const fromFile = subArgs[\"--from-file\"];\n const includeValues = subArgs[\"--include-values\"] ?? false;\n const all = subArgs[\"--all\"] ?? false;\n const specifiedKeys = subArgs._;\n\n if (!from && !fromFile) {\n throw new ArgError(sprint`\n Either --from or --from-file is required.\n\n Run {gray ggt var import -h} for usage\n `);\n }\n\n if (from && fromFile) {\n throw new ArgError(sprint`\n Cannot use both --from and --from-file.\n\n Run {gray ggt var import -h} for usage\n `);\n }\n\n if (!all && specifiedKeys.length === 0) {\n throw new ArgError(sprint`\n Specify keys to import or use --all to import all variables.\n\n Run {gray ggt var import -h} for usage\n `);\n }\n\n if (from) {\n await importFromEnvironment(ctx, appIdentity, from, specifiedKeys, all, includeValues);\n } else if (fromFile) {\n await importFromFile(appIdentity, fromFile, specifiedKeys, all);\n }\n};\n\nconst importFromEnvironment = async (\n ctx: Context,\n appIdentity: AppIdentity,\n sourceName: string,\n specifiedKeys: string[],\n all: boolean,\n includeValues: boolean,\n): Promise<void> => {\n const sourceEnvironment = appIdentity.application.environments.find((env) => env.name === sourceName.toLowerCase());\n if (!sourceEnvironment) {\n throw new ArgError(sprint`\n Unknown environment: ${sourceName}\n\n Available environments:\n ${appIdentity.application.environments.map((e) => `\u2022 ${e.name}`).join(\"\\n \")}\n `);\n }\n\n const sourceEdit = new Edit(ctx, { ...sourceEnvironment, application: appIdentity.application });\n\n try {\n const data = await sourceEdit.query({ query: ENVIRONMENT_VARIABLES_QUERY });\n let vars = data.environmentVariables;\n\n if (!all) {\n const missing = specifiedKeys.filter((k) => !vars.some((v) => v.key === k));\n if (missing.length > 0) {\n throw new ArgError(sprint`\n The following keys were not found in the ${sourceName} environment:\n\n ${missing.map((k) => `\u2022 ${k}`).join(\"\\n \")}\n `);\n }\n vars = vars.filter((v) => specifiedKeys.includes(v.key));\n }\n\n if (vars.length === 0) {\n println(`No environment variables found in ${sourceName}.`);\n return;\n }\n\n const imported: string[] = [];\n const skipped: string[] = [];\n\n for (const v of vars) {\n if (includeValues) {\n if (v.isSecret) {\n // can't copy secret values (they come back as null)\n skipped.push(v.key);\n continue;\n }\n await appIdentity.edit.mutate({\n mutation: SET_ENVIRONMENT_VARIABLE_MUTATION,\n variables: { input: { key: v.key, value: v.value ?? \"\", isSecret: v.isSecret } },\n });\n } else {\n // import as placeholder (empty value, non-secret)\n await appIdentity.edit.mutate({\n mutation: SET_ENVIRONMENT_VARIABLE_MUTATION,\n variables: { input: { key: v.key, value: \"\", isSecret: false } },\n });\n }\n imported.push(v.key);\n }\n\n if (imported.length > 0) {\n println(`${symbol.tick} Imported ${imported.join(\", \")} from ${sourceName}`);\n }\n\n if (skipped.length > 0) {\n println(`Skipped secret variables (values not accessible): ${skipped.join(\", \")}`);\n }\n } finally {\n await sourceEdit.dispose();\n }\n};\n\nconst importFromFile = async (appIdentity: AppIdentity, filePath: string, specifiedKeys: string[], all: boolean): Promise<void> => {\n const content = await fs.readFile(filePath, \"utf8\");\n const entries = parseEnvFile(content);\n\n if (entries.length === 0) {\n println(\"No environment variables found in file.\");\n return;\n }\n\n let filtered: { key: string; value: string }[];\n if (all) {\n filtered = entries;\n } else {\n const missing = specifiedKeys.filter((k) => !entries.some((e) => e.key === k));\n if (missing.length > 0) {\n throw new ArgError(sprint`\n The following keys were not found in the file:\n\n ${missing.map((k) => `\u2022 ${k}`).join(\"\\n \")}\n `);\n }\n filtered = entries.filter((e) => specifiedKeys.includes(e.key));\n }\n\n for (const { key, value } of filtered) {\n await appIdentity.edit.mutate({\n mutation: SET_ENVIRONMENT_VARIABLE_MUTATION,\n variables: { input: { key, value, isSecret: false } },\n });\n }\n\n const keys = filtered.map((e) => e.key).join(\", \");\n println(`${symbol.tick} Imported ${keys} from ${filePath}`);\n};\n\nconst parseEnvFile = (content: string): { key: string; value: string }[] => {\n const entries: { key: string; value: string }[] = [];\n\n for (const rawLine of content.split(\"\\n\")) {\n const line = rawLine.trim();\n\n // skip blank lines and comments\n if (!line || line.startsWith(\"#\")) {\n continue;\n }\n\n // strip optional \"export \" prefix\n const stripped = line.startsWith(\"export \") ? line.slice(7) : line;\n\n const eqIndex = stripped.indexOf(\"=\");\n if (eqIndex === -1) {\n continue;\n }\n\n const key = stripped.slice(0, eqIndex).trim();\n let value = stripped.slice(eqIndex + 1).trim();\n\n // strip surrounding quotes\n if ((value.startsWith('\"') && value.endsWith('\"')) || (value.startsWith(\"'\") && value.endsWith(\"'\"))) {\n value = value.slice(1, -1);\n }\n\n if (key) {\n entries.push({ key, value });\n }\n }\n\n return entries;\n};\n"],
|
|
5
|
-
"mappings": "mfAAAA,IAAA,IAAAC,EAAe,SAoBR,IAAMC,GAAO,CAClB,GAAGC,CACL,EAEaC,GAAiC,CAAE,WAAY,EAAK,EAEpDC,EAAeC,EAAA,IACnBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADmB,SAsBtBC,EAAYF,EAAA,IACTC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADS,aAgBZE,EAAWH,EAAA,IACRC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADQ,YAgBXG,EAAWJ,EAAA,IACRC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADQ,YAmBXI,EAAcL,EAAA,IACXC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADW,eAmBdK,EAAcN,EAAA,IACXC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADW,eA2BdM,EAAkBP,EAACQ,GAA2C,CAClE,OAAQA,EAAY,CAClB,IAAK,OACH,OAAON,EAAU,EACnB,IAAK,MACH,OAAOC,EAAS,EAClB,IAAK,MACH,OAAOC,EAAS,EAClB,IAAK,SACH,OAAOC,EAAY,EACrB,IAAK,SACH,OAAOC,EAAY,EACrB,QAEE,OAAOP,EAAM,MAAU,CAC3B,CACF,EAhBwB,mBAkBlBU,EAAU,CACd,WAAY,CAAE,KAAM,OAAQ,CAC9B,EAEMC,EAAa,CACjB,UAAW,CAAE,KAAM,QAAS,MAAO,IAAK,EACxC,QAAS,CAAE,KAAM,OAAQ,CAC3B,EAEMC,EAAa,CACjB,SAAU,CAAE,KAAM,MAAO,EACzB,cAAe,CAAE,KAAM,MAAO,EAC9B,mBAAoB,CAAE,KAAM,OAAQ,EACpC,QAAS,CAAE,KAAM,OAAQ,CAC3B,EAEaC,GAAwBZ,EAAA,MAAOa,EAAKjB,IAAS,CACxD,IAAMY,EAAaZ,EAAK,EAAE,MAAM,EAQhC,IALIA,EAAK,EAAE,SAAS,IAAI,GAAKA,EAAK,EAAE,SAAS,QAAQ,KACnDkB,EAAQP,EAAgBC,CAAU,CAAC,EACnC,QAAQ,KAAK,CAAC,GAGZ,CAACA,EAAY,CACfM,EAAQf,EAAMc,CAAG,CAAC,EAClB,MACF,CAGA,GAAI,CADqB,CAAC,OAAQ,MAAO,MAAO,SAAU,QAAQ,EAC5C,SAASL,CAAU,EACvC,MAAM,IAAIO,EAASd;AAAA,mCACYO,CAAU;AAAA;AAAA;AAAA,KAGxC,EAGH,IAAMQ,EAAY,MAAMC,EAAsB,QAAQ,IAAI,CAAC,EACrDC,EAAc,MAAMC,EAAY,KAAKN,EAAK,CAAE,QAAS,MAAO,KAAAjB,EAAM,UAAAoB,CAAU,CAAC,EAEnF,OAAQR,EAAY,CAClB,IAAK,OACH,MAAMY,EAAQF,CAAW,EACzB,MACF,IAAK,MACH,MAAMG,EAAOH,EAAatB,EAAK,CAAC,EAChC,MACF,IAAK,MACH,MAAM0B,EAAOJ,EAAatB,EAAK,CAAC,EAChC,MACF,IAAK,SACH,MAAM2B,EAAUL,EAAatB,EAAK,CAAC,EACnC,MACF,IAAK,SACH,MAAM4B,EAAUX,EAAKK,EAAatB,EAAK,CAAC,EACxC,KACJ,CACF,EA3CqC,OA6C/BwB,EAAUpB,EAAA,MAAOkB,GAA4C,CAEjE,IAAMO,GADO,MAAMP,EAAY,KAAK,MAAM,CAAE,MAAOQ,CAA4B,CAAC,GAC9D,qBAElB,GAAID,EAAK,SAAW,EAAG,CACrBX,EAAQ,iCAAiC,EACzC,MACF,CAEA,QAAWa,KAAKF,EACdX,EAAQa,EAAE,GAAG,CAEjB,EAZgB,WAcVN,EAASrB,EAAA,MAAOkB,EAA0BU,IAAwC,CACtF,IAAMC,EAAMD,EAAW,MAAM,EAC7B,GAAI,CAACC,EACH,MAAM,IAAId,EAASd;AAAA;AAAA;AAAA;AAAA,KAIlB,EAIH,IAAM6B,GADO,MAAMZ,EAAY,KAAK,MAAM,CAAE,MAAOQ,CAA4B,CAAC,GAC5D,qBAAqB,KAAMC,GAAMA,EAAE,MAAQE,CAAG,EAElE,GAAI,CAACC,EACH,MAAM,IAAIf,EAASd;AAAA,wCACiB4B,CAAG;AAAA,KACtC,EAGH,GAAIC,EAAO,SACT,MAAM,IAAIf,EAASd;AAAA,QACf4B,CAAG;AAAA,KACN,EAGHf,EAAQgB,EAAO,OAAS,EAAE,CAC5B,EA1Be,UA4BTR,EAAStB,EAAA,MAAOkB,EAA0BU,IAAwC,CACtF,IAAMG,EAAUC,EAAUvB,EAAS,CAAE,KAAMmB,CAAW,CAAC,EACjDK,EAAQF,EAAQ,EAChBG,EAAWH,EAAQ,UAAU,GAAK,GAExC,GAAIE,EAAM,SAAW,EACnB,MAAM,IAAIlB,EAASd;AAAA;AAAA;AAAA;AAAA,KAIlB,EAGH,IAAMkC,EAA2C,CAAC,EAClD,QAAWC,KAAQH,EAAO,CACxB,IAAMI,EAAUD,EAAK,QAAQ,GAAG,EAChC,GAAIC,IAAY,GACd,MAAM,IAAItB,EAASd;AAAA,0BACCmC,CAAI;AAAA;AAAA;AAAA,OAGvB,EAEH,IAAMP,EAAMO,EAAK,MAAM,EAAGC,CAAO,EACjC,GAAI,CAACR,EACH,MAAM,IAAId,EAASd;AAAA,0BACCmC,CAAI;AAAA;AAAA;AAAA,OAGvB,EAEHD,EAAO,KAAK,CACV,IAAAN,EACA,MAAOO,EAAK,MAAMC,EAAU,CAAC,CAC/B,CAAC,CACH,CAEA,OAAW,CAAE,IAAAR,EAAK,MAAAS,CAAM,IAAKH,EAC3B,MAAMjB,EAAY,KAAK,OAAO,CAC5B,SAAUqB,EACV,UAAW,CAAE,MAAO,CAAE,IAAAV,EAAK,MAAAS,EAAO,SAAAJ,CAAS,CAAE,CAC/C,CAAC,EAGH,IAAMM,EAAOL,EAAO,IAAKM,GAAMA,EAAE,GAAG,EAAE,KAAK,IAAI,EAC/C3B,EAAQ,GAAG4B,EAAO,IAAI,QAAQF,CAAI,EAAE,CACtC,EA9Ce,UAgDTjB,EAAYvB,EAAA,MAAOkB,EAA0BU,IAAwC,CACzF,IAAMG,EAAUC,EAAUtB,EAAY,CAAE,KAAMkB,CAAW,CAAC,EACpDY,EAAOT,EAAQ,EACfY,EAAQZ,EAAQ,SAAS,GAAK,GAC9Ba,EAAMb,EAAQ,OAAO,GAAK,GAE5Bc,EAEJ,GAAID,EAAK,CAEP,IAAMnB,GADO,MAAMP,EAAY,KAAK,MAAM,CAAE,MAAOQ,CAA4B,CAAC,GAC9D,qBAElB,GAAID,EAAK,SAAW,EAAG,CACrBX,EAAQ,qCAAqC,EAC7C,MACF,CAEA+B,EAAepB,EAAK,IAAKE,GAAMA,EAAE,GAAG,EAE/BgB,IACH7B;AAAA;AAAA;AAAA,YAGM+B,EAAa,IAAKC,GAAM,UAAKA,CAAC,EAAE,EAAE,KAAK;AAAA,WAAc,CAAC;AAAA,QAE5D,MAAMC,EAAQ,4DAA4D,EAE9E,KAAO,CACL,GAAIP,EAAK,SAAW,EAClB,MAAM,IAAIzB,EAASd;AAAA;AAAA;AAAA;AAAA,OAIlB,EAGH4C,EAAeL,EAEVG,GACH,MAAMI,EAAQ,mCAAmCF,EAAa,KAAK,IAAI,CAAC,GAAG,CAE/E,CAEA,QAAWhB,KAAOgB,EAChB,GAAI,CACF,MAAM3B,EAAY,KAAK,OAAO,CAC5B,SAAU8B,EACV,UAAW,CAAE,IAAAnB,CAAI,CACnB,CAAC,CACH,OAASoB,EAAO,CACd,IAAMC,EACJD,aAAiBE,GACjB,MAAM,QAAQF,EAAM,KAAK,GACzBA,EAAM,MAAM,MAAOG,GAAe,OAAOA,GAAM,UAAYA,IAAM,MAAQ,YAAaA,GAAK,aAAa,KAAK,OAAOA,EAAE,OAAO,CAAC,CAAC,EAEjI,GAAIT,GAASO,EAEX,SAEF,MAAMD,CACR,CAGFnC,EAAQ,GAAG4B,EAAO,IAAI,YAAYG,EAAa,KAAK,IAAI,CAAC,EAAE,CAC7D,EAhEkB,aAkEZrB,EAAYxB,EAAA,MAAOa,EAAcK,EAA0BU,IAAwC,CACvG,IAAMG,EAAUC,EAAUrB,EAAY,CAAE,KAAMiB,CAAW,CAAC,EACpDyB,EAAOtB,EAAQ,QAAQ,EACvBuB,EAAWvB,EAAQ,aAAa,EAChCwB,EAAgBxB,EAAQ,kBAAkB,GAAK,GAC/Ca,EAAMb,EAAQ,OAAO,GAAK,GAC1ByB,EAAgBzB,EAAQ,EAE9B,GAAI,CAACsB,GAAQ,CAACC,EACZ,MAAM,IAAIvC,EAASd;AAAA;AAAA;AAAA;AAAA,KAIlB,EAGH,GAAIoD,GAAQC,EACV,MAAM,IAAIvC,EAASd;AAAA;AAAA;AAAA;AAAA,KAIlB,EAGH,GAAI,CAAC2C,GAAOY,EAAc,SAAW,EACnC,MAAM,IAAIzC,EAASd;AAAA;AAAA;AAAA;AAAA,KAIlB,EAGCoD,EACF,MAAMI,EAAsB5C,EAAKK,EAAamC,EAAMG,EAAeZ,EAAKW,CAAa,EAC5ED,GACT,MAAMI,EAAexC,EAAaoC,EAAUE,EAAeZ,CAAG,CAElE,EArCkB,aAuCZa,EAAwBzD,EAAA,MAC5Ba,EACAK,EACAyC,EACAH,EACAZ,EACAW,IACkB,CAClB,IAAMK,EAAoB1C,EAAY,YAAY,aAAa,KAAM2C,GAAQA,EAAI,OAASF,EAAW,YAAY,CAAC,EAClH,GAAI,CAACC,EACH,MAAM,IAAI7C,EAASd;AAAA,6BACM0D,CAAU;AAAA;AAAA;AAAA,UAG7BzC,EAAY,YAAY,aAAa,IAAKkC,GAAM,UAAKA,EAAE,IAAI,EAAE,EAAE,KAAK;AAAA,SAAY,CAAC;AAAA,KACtF,EAGH,IAAMU,EAAa,IAAIC,EAAKlD,EAAK,CAAE,GAAG+C,EAAmB,YAAa1C,EAAY,WAAY,CAAC,EAE/F,GAAI,CAEF,IAAIO,GADS,MAAMqC,EAAW,MAAM,CAAE,MAAOpC,CAA4B,CAAC,GAC1D,qBAEhB,GAAI,CAACkB,EAAK,CACR,IAAMoB,EAAUR,EAAc,OAAQV,GAAM,CAACrB,EAAK,KAAME,GAAMA,EAAE,MAAQmB,CAAC,CAAC,EAC1E,GAAIkB,EAAQ,OAAS,EACnB,MAAM,IAAIjD,EAASd;AAAA,qDAC0B0D,CAAU;AAAA;AAAA,cAEjDK,EAAQ,IAAKlB,GAAM,UAAKA,CAAC,EAAE,EAAE,KAAK;AAAA,aAAgB,CAAC;AAAA,SACxD,EAEHrB,EAAOA,EAAK,OAAQE,GAAM6B,EAAc,SAAS7B,EAAE,GAAG,CAAC,CACzD,CAEA,GAAIF,EAAK,SAAW,EAAG,CACrBX,EAAQ,qCAAqC6C,CAAU,GAAG,EAC1D,MACF,CAEA,IAAMM,EAAqB,CAAC,EACtBC,EAAoB,CAAC,EAE3B,QAAWvC,KAAKF,EAAM,CACpB,GAAI8B,EAAe,CACjB,GAAI5B,EAAE,SAAU,CAEduC,EAAQ,KAAKvC,EAAE,GAAG,EAClB,QACF,CACA,MAAMT,EAAY,KAAK,OAAO,CAC5B,SAAUqB,EACV,UAAW,CAAE,MAAO,CAAE,IAAKZ,EAAE,IAAK,MAAOA,EAAE,OAAS,GAAI,SAAUA,EAAE,QAAS,CAAE,CACjF,CAAC,CACH,MAEE,MAAMT,EAAY,KAAK,OAAO,CAC5B,SAAUqB,EACV,UAAW,CAAE,MAAO,CAAE,IAAKZ,EAAE,IAAK,MAAO,GAAI,SAAU,EAAM,CAAE,CACjE,CAAC,EAEHsC,EAAS,KAAKtC,EAAE,GAAG,CACrB,CAEIsC,EAAS,OAAS,GACpBnD,EAAQ,GAAG4B,EAAO,IAAI,aAAauB,EAAS,KAAK,IAAI,CAAC,SAASN,CAAU,EAAE,EAGzEO,EAAQ,OAAS,GACnBpD,EAAQ,qDAAqDoD,EAAQ,KAAK,IAAI,CAAC,EAAE,CAErF,QAAE,CACA,MAAMJ,EAAW,QAAQ,CAC3B,CACF,EA3E8B,yBA6ExBJ,EAAiB1D,EAAA,MAAOkB,EAA0BiD,EAAkBX,EAAyBZ,IAAgC,CACjI,IAAMwB,EAAU,MAAM,EAAAC,QAAG,SAASF,EAAU,MAAM,EAC5CG,EAAUC,EAAaH,CAAO,EAEpC,GAAIE,EAAQ,SAAW,EAAG,CACxBxD,EAAQ,yCAAyC,EACjD,MACF,CAEA,IAAI0D,EACJ,GAAI5B,EACF4B,EAAWF,MACN,CACL,IAAMN,EAAUR,EAAc,OAAQV,GAAM,CAACwB,EAAQ,KAAMlB,GAAMA,EAAE,MAAQN,CAAC,CAAC,EAC7E,GAAIkB,EAAQ,OAAS,EACnB,MAAM,IAAIjD,EAASd;AAAA;AAAA;AAAA,YAGb+D,EAAQ,IAAKlB,GAAM,UAAKA,CAAC,EAAE,EAAE,KAAK;AAAA,WAAc,CAAC;AAAA,OACtD,EAEH0B,EAAWF,EAAQ,OAAQlB,GAAMI,EAAc,SAASJ,EAAE,GAAG,CAAC,CAChE,CAEA,OAAW,CAAE,IAAAvB,EAAK,MAAAS,CAAM,IAAKkC,EAC3B,MAAMtD,EAAY,KAAK,OAAO,CAC5B,SAAUqB,EACV,UAAW,CAAE,MAAO,CAAE,IAAAV,EAAK,MAAAS,EAAO,SAAU,EAAM,CAAE,CACtD,CAAC,EAGH,IAAME,EAAOgC,EAAS,IAAKpB,GAAMA,EAAE,GAAG,EAAE,KAAK,IAAI,EACjDtC,EAAQ,GAAG4B,EAAO,IAAI,aAAaF,CAAI,SAAS2B,CAAQ,EAAE,CAC5D,EAjCuB,kBAmCjBI,EAAevE,EAACoE,GAAsD,CAC1E,IAAME,EAA4C,CAAC,EAEnD,QAAWG,KAAWL,EAAQ,MAAM;AAAA,CAAI,EAAG,CACzC,IAAMM,EAAOD,EAAQ,KAAK,EAG1B,GAAI,CAACC,GAAQA,EAAK,WAAW,GAAG,EAC9B,SAIF,IAAMC,EAAWD,EAAK,WAAW,SAAS,EAAIA,EAAK,MAAM,CAAC,EAAIA,EAExDrC,EAAUsC,EAAS,QAAQ,GAAG,EACpC,GAAItC,IAAY,GACd,SAGF,IAAMR,EAAM8C,EAAS,MAAM,EAAGtC,CAAO,EAAE,KAAK,EACxCC,EAAQqC,EAAS,MAAMtC,EAAU,CAAC,EAAE,KAAK,GAGxCC,EAAM,WAAW,GAAG,GAAKA,EAAM,SAAS,GAAG,GAAOA,EAAM,WAAW,GAAG,GAAKA,EAAM,SAAS,GAAG,KAChGA,EAAQA,EAAM,MAAM,EAAG,EAAE,GAGvBT,GACFyC,EAAQ,KAAK,CAAE,IAAAzC,EAAK,MAAAS,CAAM,CAAC,CAE/B,CAEA,OAAOgC,CACT,EAjCqB",
|
|
6
|
-
"names": ["init_cjs", "import_fs_extra", "args", "AppIdentityArgs", "parseOptions", "usage", "__name", "sprint", "listUsage", "getUsage", "setUsage", "deleteUsage", "importUsage", "subcommandUsage", "subcommand", "setArgs", "deleteArgs", "importArgs", "run", "ctx", "println", "ArgError", "directory", "loadSyncJsonDirectory", "appIdentity", "AppIdentity", "runList", "runGet", "runSet", "runDelete", "runImport", "vars", "ENVIRONMENT_VARIABLES_QUERY", "v", "positional", "key", "envVar", "subArgs", "parseArgs", "pairs", "isSecret", "parsed", "pair", "eqIndex", "value", "SET_ENVIRONMENT_VARIABLE_MUTATION", "keys", "p", "symbol", "force", "all", "keysToDelete", "k", "confirm", "DELETE_ENVIRONMENT_VARIABLE_MUTATION", "error", "isNotFound", "ClientError", "e", "from", "fromFile", "includeValues", "specifiedKeys", "importFromEnvironment", "importFromFile", "sourceName", "sourceEnvironment", "env", "sourceEdit", "Edit", "missing", "imported", "skipped", "filePath", "content", "fs", "entries", "parseEnvFile", "filtered", "rawLine", "line", "stripped"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/version.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Run, Usage } from \"../services/command/command.js\";\n\nimport { println } from \"../services/output/print.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { packageJson } from \"../services/util/package-json.js\";\n\nexport const usage: Usage = () => sprint`\n Print this version of ggt.\n\n {gray Usage}\n ggt version\n\n {gray Updating ggt}\n When there is a new release of ggt, running ggt will show you a message letting you\n know that an update is available.\n`;\n\nexport const run: Run = (_ctx) => {\n println(packageJson.version);\n};\n"],
|
|
5
|
-
"mappings": "uGAAAA,IAMO,IAAMC,EAAeC,EAAA,IAAMC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAN,SAWfC,EAAWF,EAACG,GAAS,CAChCC,EAAQC,EAAY,OAAO,CAC7B,EAFwB",
|
|
6
|
-
"names": ["init_cjs", "usage", "__name", "sprint", "run", "_ctx", "println", "packageJson"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/whoami.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Run, Usage } from \"../services/command/command.js\";\n\nimport { println } from \"../services/output/print.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { getUser } from \"../services/user/user.js\";\n\nexport const usage: Usage = () => sprint`\n Show the name and email address of the currently logged in user.\n\n {gray Usage}\n ggt whoami\n`;\n\nexport const run: Run = async (ctx) => {\n const user = await getUser(ctx);\n if (!user) {\n println(\"You are not logged in\");\n return;\n }\n\n if (user.name) {\n println(`You are logged in as ${user.name} (${user.email})`);\n } else {\n println(`You are logged in as ${user.email}`);\n }\n};\n"],
|
|
5
|
-
"mappings": "wPAAAA,IAMO,IAAMC,EAAeC,EAAA,IAAMC;AAAA;AAAA;AAAA;AAAA;AAAA,EAAN,SAOfC,EAAWF,EAAA,MAAOG,GAAQ,CACrC,IAAMC,EAAO,MAAMC,EAAQF,CAAG,EAC9B,GAAI,CAACC,EAAM,CACTE,EAAQ,uBAAuB,EAC/B,MACF,CAEIF,EAAK,KACPE,EAAQ,wBAAwBF,EAAK,IAAI,KAAKA,EAAK,KAAK,GAAG,EAE3DE,EAAQ,wBAAwBF,EAAK,KAAK,EAAE,CAEhD,EAZwB",
|
|
6
|
-
"names": ["init_cjs", "usage", "__name", "sprint", "run", "ctx", "user", "getUser", "println"]
|
|
7
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|